Вопрос задан 30.03.2021 в 01:39. Предмет Информатика. Спрашивает Лисина Анастасия.

Подскажите, где ошибка: 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 Заранее спасибо.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Андреев Вадим.
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;

function sred(var x:mas):real;
var
  i:integer;
  s:real;
begin
  s:=0;
  for i:=1 to n do s:=x[i]+s;
  s:=s/5;
  sred:=s
end;

function summa(var x:mas):real;
var
  i:integer;
  su:real;
begin
  su:=0;
  for i:=1 to n do su:=su+x[i];
  summa:=su;
end;

var a:mas;

begin
  vvod_rand(a,n);
  writeln('sum=',summa(a));
  writeln('sred=',sred(a));
end.
0 0
Отвечает Кузнецов Андрей.

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

var

i: integer;

begin

su := 0;

for i := 1 to n do

su := su + x[i];

summa:=su;

writeln('sum=', su);

end;

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

В данном коде есть несколько ошибок. Вот их список:

  1. В процедуре vvod_rand вы используете параметр A в нижнем регистре, а в цикле записи значения вы используете переменную a с заглавной буквы. Правильно будет использовать один и тот же регистр для обеих переменных. Рекомендуется использовать A вместо a в процедуре и в основной программе.

  2. В функции summa вы не возвращаете значение типа real, хотя объявили, что функция должна вернуть real. Необходимо добавить оператор summa := su перед writeln('sum=',sum).

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

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

  5. В процедуре vvod_rand вы объявляете переменную i, хотя она уже объявлена в основной программе. Необходимо удалить объявление переменной i в процедуре vvod_rand.

После внесения этих исправлений ваш код будет выглядеть следующим образом:

pascal
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); 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 / n; 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]; summa := su; end; begin vvod_rand(a, n); writeln('sum=', summa(a, sum)); writeln('
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос