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