Найдите ошибку в программе - Pascal (80699)

Узнай цену своей работы

Формулировка задачи:

Даны двумерные массивы. a[5,5], b[4,4],c[6,6] Найти произведение и сумму элементов не выше главной диагонали.
Program zad1;
Type mas=array[1..6,1..6] of integer;
Var a,b,c:mas;
 n,i,j,S,P:integer;
Procedure full(a:mas; n:integer; S,P:integer);
Var i,j:integer;
Begin
 S:=0;
  P:=1;
  For i:=1 to n do
   For j:=1 to n do
    If (i>=j)then begin
     S:=s+a[i,j];
     P:=P*a[i,j];
end;
end;
Procedure r(a:mas; n:integer);
Var i,j:integer;
Begin
 Randomize;
  For i:=1 to n do
   For j:=1 to n do
    a[i,j]:=random(50);
end;
Begin
n:=5;
r(a,5);
full(a,5,S,P);
Writeln('S=',S);
Writeln('P=',P);
n:=4;
r(b,4);
full(b,4,S,P);
Writeln('S=',S);
Writeln('P=',P);
n:=6;
r(c,6);
full(c,6,S,P);
Writeln('S=',S);
Writeln('P=',P);
end.

Решение задачи: «Найдите ошибку в программе»

textual
Листинг программы
Program zad1;
uses crt;
Type mas=array[1..6,1..6] of integer;
Var a,b,c:mas;
n,i,j,S,P:integer;
 
Procedure full(a:mas; n:integer; var S,P:integer);
Var i,j:integer;
Begin
S:=0;
P:=1;
For i:=1 to n do
For j:=1 to n do
If (i>=j)then begin
S:=s+a[i,j];
P:=P*a[i,j];
end;
end;
Procedure r(var a:mas; n:integer);
Var i,j:integer;
Begin
Randomize;
For i:=1 to n do
For j:=1 to n do
begin
a[i,j]:=random(50);
end;
end;
Begin
n:=5;
r(a,5);
full(a,5,S,P);
Writeln('S=',S);
Writeln('P=',P);
n:=4;
r(b,4);
full(b,4,S,P);
Writeln('S=',S);
Writeln('P=',P);
n:=6;
r(c,6);
full(c,6,S,P);
Writeln('S=',S);
Writeln('P=',P);
readln;
end.

Объяснение кода листинга программы

  1. Объявление и инициализация переменных:
    • a, b, c: типа массив из 6x6 элементов;
    • n, i, j, S, P: целочисленные переменные.
  2. Процедура заполнения массива случайными значениями:
    • Процедура r заполняет переданный массив случайными значениями от 0 до 49 включительно.
  3. Процедура вычисления суммы и произведения элементов массива:
    • Процедура full принимает массив a, его размер n и возвращает сумму (S) и произведение (P) элементов, удовлетворяющих условию i>=j.
  4. Основная часть программы:
    • Инициализация значения n равным 5;
    • Заполнение массива a случайными значениями;
    • Вычисление суммы и произведения элементов массива a с помощью процедуры full;
    • Вывод на экран значений S и P;
    • Инициализация значения n равным 4;
    • Заполнение массива b случайными значениями;
    • Вычисление суммы и произведения элементов массива b с помощью процедуры full;
    • Вывод на экран значений S и P;
    • Инициализация значения n равным 6;
    • Заполнение массива c случайными значениями;
    • Вычисление суммы и произведения элементов массива c с помощью процедуры full;
    • Вывод на экран значений S и P.
  5. Конец программы:
    • Ожидание ввода значения пользователя перед выходом из программы.

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

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