
Вопрос задан 30.03.2020 в 06:38.
Предмет Информатика.
Спрашивает Лобачёв Никита.
Помогите исправить программу. Она должна вычислять среднее арифметическое всех чисел в массиве
меньших 50. Вот программа:Program Zadacha;Uses crt;var a:array[1..1000] of integer;c,i,n,s :integer;s1: real;begin;clrscr;writeln("Введите размерность массива);readln(n);writeln('Введите массив');for i:=1 to n do begin a[i]:=random(100);if a[i]<50 then begin inc(c); s:=s+a[i];end;s:=s+a[i];s1:=s/N;writeln('Массив A:');for i:=1 to N do write(a[i]:4);writeln;writeln('Среднее арифметическое равно=',s1);end;end.

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

Отвечает Спивак Марина.
Ошибки:
1) writeln("Введите размерность массива); - здесь опечатка (пропущены кавычки), должно быть writeln('Введите размерность массива');
2) writeln('Введите массив'); - пользователь не вводит массив, здесь надо написать writeln('Создаём массив...');
3) Перед циклом нужно определить начальные значения переменных с и s
c:=0; s:=0;
4) У первого цикла есть begin, но нет end
5) s:=s+a[i]; эта команда повторяется дважды - второй раз (после if) не нужен
6) Лишний end; (предпоследняя строка программы)
И ещё не ошибки, а два совета:
1) пользуйся отступами, тогда лучше видно структуру программы. Когда все команды идут подряд в одной строке, легко запутаться.
2) При выводе среднего арифметического используй формат вывода s1:0:2
тогда результат будет округлён до двух знаков после запятой, и не будет таких монстров вроде 16.65432468734246873435
Исправленная программа:
Program Zadacha;
Uses crt;
var
a:array[1..1000] of integer;
c,i,n,s :integer;
s1: real;
begin;
clrscr;
writeln('Введите размерность массива');
readln(n);
writeln('Создаём массив...');
c:=0; s:=0;
for i:=1 to n do
begin
a[i]:=random(100);
if a[i]<50 then
begin
inc(c);
s:=s+a[i];
end;
end;
s1:=s/n;
writeln('Массив A:');
for i:=1 to n do write(a[i]:4);
writeln;
writeln('Среднее арифметическое равно=',s1:0:2); end.
1) writeln("Введите размерность массива); - здесь опечатка (пропущены кавычки), должно быть writeln('Введите размерность массива');
2) writeln('Введите массив'); - пользователь не вводит массив, здесь надо написать writeln('Создаём массив...');
3) Перед циклом нужно определить начальные значения переменных с и s
c:=0; s:=0;
4) У первого цикла есть begin, но нет end
5) s:=s+a[i]; эта команда повторяется дважды - второй раз (после if) не нужен
6) Лишний end; (предпоследняя строка программы)
И ещё не ошибки, а два совета:
1) пользуйся отступами, тогда лучше видно структуру программы. Когда все команды идут подряд в одной строке, легко запутаться.
2) При выводе среднего арифметического используй формат вывода s1:0:2
тогда результат будет округлён до двух знаков после запятой, и не будет таких монстров вроде 16.65432468734246873435
Исправленная программа:
Program Zadacha;
Uses crt;
var
a:array[1..1000] of integer;
c,i,n,s :integer;
s1: real;
begin;
clrscr;
writeln('Введите размерность массива');
readln(n);
writeln('Создаём массив...');
c:=0; s:=0;
for i:=1 to n do
begin
a[i]:=random(100);
if a[i]<50 then
begin
inc(c);
s:=s+a[i];
end;
end;
s1:=s/n;
writeln('Массив A:');
for i:=1 to n do write(a[i]:4);
writeln;
writeln('Среднее арифметическое равно=',s1:0:2); end.



Отвечает Кот Поля.
Var
a:array[1..1000] of integer;
c,i,n,s :integer;
s1: real;begin;
readln(n);
for i:=1 to n do begin
a[i]:=random(100);
if a[i]<50 then begin
inc(c);
s:=s+a[i];
end;
end;
s1:= s/c;
for i:=1 to N do write(a[i]:4);
writeln;
writeln(s1);
end.
исправила, все работает, только добовьте ваш модуль CRT обратно и поясняющие writeln'ы
a:array[1..1000] of integer;
c,i,n,s :integer;
s1: real;begin;
readln(n);
for i:=1 to n do begin
a[i]:=random(100);
if a[i]<50 then begin
inc(c);
s:=s+a[i];
end;
end;
s1:= s/c;
for i:=1 to N do write(a[i]:4);
writeln;
writeln(s1);
end.
исправила, все работает, только добовьте ваш модуль CRT обратно и поясняющие writeln'ы


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili