Напечатать номера строк матрицы, произведение элементов которых совпадает с суммой элементов последней строки - Pascal
Формулировка задачи:
Дана целочисленная матрица размером MxN. Найти и напечатать номера тех строк матрицы, произведение элементов которых , совпадает с суммой элементов последней строки
Решение задачи: «Напечатать номера строк матрицы, произведение элементов которых совпадает с суммой элементов последней строки»
textual
Листинг программы
const N = 5; const M = 10; type item_t = integer; type line_t = array[1..M] of item_t; type tabl_t = array[1..N] of line_t; procedure printLine( const l: line_t ); var i: integer; begin for i:= 1 to M do write(l[i] :5); writeln; end; procedure printTabl( const t: tabl_t ); var i: integer; begin for i:= 1 to N do printLine(t[i]); end; procedure init_2d( var a: tabl_t ); var x,y: integer; begin for y:=1 to N do for x:=1 to M do a[y][x] := random(-100 , 100); end; function getMulP( const a: line_t ):integer; var r,x: integer; begin r := 1; for x:=1 to M do r := r *a[x]; getMulP := r; end; var a: tabl_t; x,y,sumEndLine: integer; fBreak: boolean; const DEV_MODE = false; begin repeat fBreak := false; init_2d(a); sumEndLine := 0; for x:=1 to M do sumEndLine := sumEndLine + a[N][x]; for y:=1 to N do if getMulP(a[y]) = sumEndLine then begin writeln( 'Sum == Mul; line: ',y ); fBreak := true; end; until (not DEV_MODE) OR fBreak; printTabl(a); Writeln('-------------------------------'); end.
Объяснение кода листинга программы
Этот код написан на языке Pascal и выполняет следующие действия:
- Объявляются необходимые переменные и структуры данных: N, M, item_t, line_t, tabl_t, i, x, y, a, sumEndLine, fBreak.
- Определяются процедуры и функции: printLine, printTabl, init_2d, getMulP.
- В функции init_2d инициализируются случайным образом все элементы двумерного массива a.
- В функции getMulP вычисляется произведение элементов строки, сумма элементов которой совпадает с суммой элементов последней строки.
- В основной части кода:
- Создается экземпляр двумерного массива a.
- Инициализируется переменная sumEndLine суммой элементов последней строки.
- Циклом перебираются строки матрицы.
- Для каждой строки проверяется условие: если произведение элементов этой строки совпадает со значением sumEndLine, то выводится сообщение и переменная fBreak устанавливается в истинное значение, чтобы прервать цикл.
- После проверки всех строк выводится итоговая таблица матрицы.
- Выводится символ
-
для разделения строк результатов. - Конец программы. Обратите внимание, что в этом коде нет вложенных списков.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д