Вычисление сумммы и среднего арифметичесского чисел - Pascal

Узнай цену своей работы

Формулировка задачи:

Нужно написать программу которая будет вычислять сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры. Дан образец, как должна выглядеть программа при выполнении.
Вычисление средней арифметичесской последовательности положительных чисел. Вводите после стрелки числа. Для завершения введите ноль. -> 45 -> 23 -> 15 -> 0 Введено чисел: 3 Сумма чисел: 83 Среднее арифметическое: 27.67
Поковырявшись с программой, завис.
program math;
 uses crt;
 var a,b,c:integer;
     d:real;
begin
 writeln('Вычисление средней арифметичесской последовательности положительных чисел.');
 writeln('Вводите после стрелки числа. Для завершения введите ноль.');
 c:=0;
 while b<>0 do begin
  write('-> ');readln(b);
  c:=c+1;
 end;
 writeln('Введено чисел: ',c);
end.
Как я понял, мне нужно сделать счётчик, который будет считать количество введёных чисел, пусть это будет '

c

'. Нужно сделать что-то, чтобы при введении нуля,

while

останавливался и программа продолжала свою работу после него. Так же я не пойму, как округлить получившееся число? При делении 83/3 получается 27,666666666666667, в примере написано округлённое число, я знаю что

div

убирает остаток полностью, а просто

"/"

пишет весь остаток.
Немножко продвинулся. Но теперь пишет "Сумма чисел: 0"..
program math;
 uses crt;
 var a,b,c,d:integer;
     e:real;
begin
 writeln('Вычисление средней арифметичесской последовательности положительных чисел.');
 writeln('Вводите после стрелки числа. Для завершения введите ноль.');
 b:=1;
 c:=-1;
 while b<>0 do begin
  write('-> ');readln(a);
  c:=c+1;
  b:=a;
  d:=b+a;
 end;
 writeln('Введено чисел: ',c);
 
 writeln('Сумма чисел:',d);
end.

Решение задачи: «Вычисление сумммы и среднего арифметичесского чисел»

textual
Листинг программы
program math;
 
var a, c, d: integer;
 
begin
  writeln('Вычисление среднего арифметического последовательности положительных чисел.');
  writeln('Вводите после стрелки числа. Для завершения введите ноль.');
  a := -99;
  c := 0;
  d := 0;
  while a <> 0 do 
    begin
      write('-> '); readln(a);
      d := d + a;
      inc(c)
    end;
  writeln('Введено чисел: ', c - 1);
  if c > 1
    then
      begin 
        writeln('Сумма чисел: ', d);
        writeln('Среднее арифметическое чисел: ', d / (c - 1):0:2)
    end
    else writeln('Числа введены не были.');
  readln
end.

Объяснение кода листинга программы

  1. Программа объявляет три переменные типа Integer: a, c и d.
  2. Выводится сообщение о вычислении среднего арифметического последовательности положительных чисел.
  3. Выводится сообщение для ввода чисел после стрелки.
  4. Переменная a инициализируется значением -99.
  5. Переменная c инициализируется значением 0.
  6. Переменная d инициализируется значением 0.
  7. Запускается цикл while, который выполняется до тех пор, пока значение переменной a не станет равным нулю.
  8. Внутри цикла переменная a считывается с помощью функции readln, а переменные c и d обновляются.
  9. После выхода из цикла выводится сообщение с количеством введенных чисел и их суммой.
  10. Если количество чисел больше 1, то вычисляется среднее арифметическое и выводится соответствующее сообщение.
  11. Если количество чисел меньше или равно 1, то выводится сообщение о том, что числа не были введены.
  12. Выводится символ новой строки с помощью функции readln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5
Похожие ответы