Подскажите, где ошибка:
program mas2;
const
n=5;
type
mas=array[1..n]of real;
var
sr,sum:real;
i:integer;
x:mas;
procedure vvod_rand(var A:mas; n: integer);
var i:integer;
begin
for i:=1 to n do
begin
a[i]:=random(-10,30);
write(a[i],' ');
end;
writeln;
end;
var a:mas;
function sred(var x:mas; s:real):real;
var i:integer;
begin
s:=0;
for i:=1 to n do
s:=x[i]+s;
s:=s/5;
sred:=s
end;
function summa(var x:mas; su:real):real;
var i:integer;
begin
su:=0;
for i:=1 to n do su:=su+x[i];
writeln('sum=',sum);
end;
begin
vvod_rand(a,n);
writeln('sum=',summa(sum,a));
writeln('sred=',sred(a,sr));
end.
Написал на PascalABC.NET
Заранее спасибо.

3 Окт 2019 в 16:42
223 +1
0
Ответы
1

Основная ошибка в программе заключается в том, что значения переменных sum и sr не передаются в функции summa и sred как параметры. Вместо этого, в строках writeln('sum=',summa(sum,a)); и writeln('sred=',sred(a,sr)); используются значения sum и sr, которые не были вычислены на момент вызова функций.

Чтобы исправить ошибку, необходимо передавать sum и sr в качестве параметров в функции summa и sred. Например, измените строки вызова на следующие:

writeln('sum=',summa(a,sum));

writeln('sred=',sred(a,sr));

Также, исправьте объявления параметров функций summa и sred на:

function sred(var x:mas; var s:real):real;

function summa(var x:mas; var su:real):real;

После внесения этих изменений программа должна работать правильно.

19 Апр 2024 в 18:39
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир