• Предмет: Информатика
  • Автор: danilfrom2015p7dvsf
  • Вопрос задан 1 год назад

А. Среднее арифметическое
1)
Напишите программу, которая в последовательности натуральных чисел находит среднее
арифметическое трѐхзначных чисел или сообщает, что таких чисел нет (выводит NO).
Программа получает на вход натуральные числа, количество введѐнных чисел неизвестно,
последовательность чисел заканчивается числом 0 (0 признак окончания ввода, не
входит в последовательность).
Количество чисел не превышает 20. Введѐнные числа не превышают 1500.
Программа должна вывести среднее арифметическое трѐхзначных чисел или вывести
«NO», если таких чисел нет.
Пример работы программы:
Входные данные Выходные данные
10
120
125
0
122.5
11
1
0
NO


uplmtq: Какой язык программирования?
Аноним: рЕШИМ ВСЕ БЫСТРО
Аноним: https://www.avito.ru/moskva/predlozheniya_uslug/reshenie_zadach_po_matematike_i_fizike_1920524902
coolunnameduser: Значения задаются в одну строку через пробел?
coolunnameduser: А, ладно. Прочитал условия внимательнее
danilfrom2015p7dvsf: Pascal ABC

Ответы

Ответ дал: uplmtq
1

Ответ:

program arithmeticmean;

var

 i, quantity: integer;

 amount: longint;

begin

 quantity := 0;

 amount := 0;

 i := 1;

 while i <> 0 do

 begin

   read(i);

   if (i > 99) and (i < 1000) then

   begin

     amount := amount + i;

     quantity := quantity + 1;

   end

 end;

 if (quantity <> 0) then

   write(amount / quantity)

 else

   write('NO');

end.

Объяснение:

program arithmeticmean;  // Название программы

var

 i, quantity: integer;  // Создание целочисленных переменных

  • i - вводимые с клавиатуры числа;
  • quantity - количество трехзначных чисел.

 amount: longint;  // Создание целочисленной переменной

  • amount - сумма трехзначных чисел

begin  // Начало программы

 quantity := 0;  // Количество трехзначных чисел = 0

 amount := 0;  // Сумма трехзначных чисел = 0

 i := 1;  // Переменная i = 1 (делается это для того, чтобы зайти в цикл (выходит какого-то рода обман))

 while i <> 0 do  // Пока переменная i ≠ 0

 begin  // Начало цикла

   read(i);  // Считываем с клавиатуры значение переменной i

   if (i > 99) and (i < 1000) then  // Если (*значение переменной i* > 99) И (*значение переменной i* < 1000), тогда - проверка, является ли число трехзначным

   begin  // Начало блока

     amount := amount + i;  // К переменной, хранящей сумму, прибавляется значение переменной i

     quantity := quantity + 1;  // К переменной, хранящей количество, прибавляется значение 1

   end  // Конец блока

 end;  // Конец цикла

 if (quantity <> 0) then  // Если количество трехзначных чисел ≠ 0, тогда - проверка, есть ли трехзначные числа в последовательности

   write(amount / quantity)  // Выводим среднее арифметическое - сумма ÷ количество

 else  // Иначе

   write('NO');  // Выводим NO

end. // Конец программы


danilfrom2015p7dvsf: Вопрос один,а почему if (i > 99) and (i < 1000) then ?
danilfrom2015p7dvsf: А не 20 до 1500
uplmtq: Потому что нам нужны трехзначные числа.
uplmtq: 1500 - это ограничение по вводу.
uplmtq: В диапазон (99, 1000) входят все числа между 99 и 1000, не включая их => все трехзначные числа
uplmtq: Трехзначное число - это число, состоящее из трех знаков (цифр)
danilfrom2015p7dvsf: Слушай я проверял,чет не работает
uplmtq: Что не работает?
Вас заинтересует