Напечатать номера строк матрицы, произведение элементов которых совпадает с суммой элементов последней строки - 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 устанавливается в истинное значение, чтобы прервать цикл.
- После проверки всех строк выводится итоговая таблица матрицы.
- Выводится символ
-
для разделения строк результатов. - Конец программы. Обратите внимание, что в этом коде нет вложенных списков.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д