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