Напечатать номера строк матрицы, произведение элементов которых совпадает с суммой элементов последней строки - 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 и выполняет следующие действия:

  1. Объявляются необходимые переменные и структуры данных: N, M, item_t, line_t, tabl_t, i, x, y, a, sumEndLine, fBreak.
  2. Определяются процедуры и функции: printLine, printTabl, init_2d, getMulP.
  3. В функции init_2d инициализируются случайным образом все элементы двумерного массива a.
  4. В функции getMulP вычисляется произведение элементов строки, сумма элементов которой совпадает с суммой элементов последней строки.
  5. В основной части кода:
    • Создается экземпляр двумерного массива a.
    • Инициализируется переменная sumEndLine суммой элементов последней строки.
    • Циклом перебираются строки матрицы.
    • Для каждой строки проверяется условие: если произведение элементов этой строки совпадает со значением sumEndLine, то выводится сообщение и переменная fBreak устанавливается в истинное значение, чтобы прервать цикл.
    • После проверки всех строк выводится итоговая таблица матрицы.
    • Выводится символ - для разделения строк результатов.
    • Конец программы. Обратите внимание, что в этом коде нет вложенных списков.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы