Найти скалярное произведение двух строк матрицы - Pascal
Формулировка задачи:
На внешнем носителе (в файле) построчно подготовлены элементы матрицы А(m,n). Для заданных k и l ввести элементы k-й и l-й строк (пропуская промежуточные) и найти их скалярное произведение. матрица слишком велика, чтобы хранить ее в памяти.
Решение задачи: «Найти скалярное произведение двух строк матрицы»
textual
Листинг программы
const n = 500; //ну например... m = 100000; //кто ж знает, какие там у Вас m, n fname = 'big.txt'; var i, j, k, l, t, c: integer; //исправлено r: array[1..n] of real; f: text; begin for i := 1 to n do r[i] := 1; write('k in [1..', m, ']; k = '); readln(k); write('l in [1..', m, ']; l = '); readln(l); c := 0; //исправлено assign(f, fname); reset(f); for i := 1 to m do begin if (i = k) or (i = l) then begin for j := 1 to n do begin read(f, t); r[j] := r[j] * t end; inc(c) end; readln(f); if c >= 2 then break //исправлено end; close(f); for i := 2 to n do r[1] := r[1] + r[i]; write('A[', k, '] * A[', l, ' = ', r[1]); readln end.
Объяснение кода листинга программы
- Устанавливаются константы
n
иm
равные 500 и 100000 соответственно. - Задаётся строковая переменная
fname
и присваивается значениеbig.txt
. - Задаются переменные
i
,j
,k
,l
,t
,c
типа integer. - Создаётся массив
r
с размерностью от 1 доn
элементов типа real. - Открывается файл
big.txt
и считывается с него информация. - Происходит внешний цикл по переменной
i
от 1 доm
. - Внутри внешнего цикла происходит условная конструкция вида
если i равно k или l, то
. - Внутри условной конструкции выполняется вложенный цикл по переменной
j
от 1 доn
. - Считывается значение из файла в переменную
t
и умножается на соответствующий элемент массиваr
. - Увеличивается значение переменной
c
на 1. - Проверяется условие `если c больше или равно 2, то цикл прерывается.
- Файл закрывается.
- Выполняется цикл по переменной
i
от 2 доn
и все элементы массиваr
складываются в первый элемент. - Выводится результат умножения двух строк матрицы
A[k] * A[l]
и значение результата. - Программа ожидает нажатия пользователем любой клавиши, чтобы закрыться.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д