Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 977 ответов!

Помогите исправить программу. Она должна вычислять среднее арифметическое всех чисел в массиве меньших 50. Вот программа:

10-11 класс

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.

иван199810 08 сент. 2013 г., 7:14:32 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Kareta16
08 сент. 2013 г., 7:49:56 (10 лет назад)

Ошибки:

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.

+ 0 -
Kirill186
08 сент. 2013 г., 10:49:06 (10 лет назад)

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'ы

Ответить

Другие вопросы из категории

Напишите программу, которая вычислит еженедельный доход предприятия. Если дано описание:

type Zi = (L, Ma, Mi, J, V, S, D) ;
Venit = array [Zi] of real ;

var v : Venit;

Компонеты переменной v представляют собой ежедневный доход предприятия.

Привет всем. Помогите написать программы на паскале.

Сами задачи во вложении.

Читайте также

Вычислите среднее арифметическое число положительных элементов массива A(N1), B(N2), C(N3)

Помогите пожалуйста очень срочно надо))), заранее спасибо)))

помогите пожалуйста сделать=)))

а) Написать программу, определяющую среднее арифметическое всех чисел от 0 до заданного пользователем.

б)Написать программу, определяющую количество четных чисел от 0 до заданного пользователем числа.



Вы находитесь на странице вопроса "Помогите исправить программу. Она должна вычислять среднее арифметическое всех чисел в массиве меньших 50. Вот программа:", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.