Условие задачи : Ввести n чисел. Определить среднее арифметическое чисел меньше 10 (Язык Pascal)
Сложность : легкая .
Решение задачи :
Для начала продумаем наше решение. Сразу же сделаем цикл от 1 до n (кол-ва чисел).
Нам сказано определить среднее арифметическое чисел меньше 10, т.е. уже нам понадобиться условие которое проверяет какое из введенных нами чисел меньше 10.
Ну а среднее арифметическое — это сумма всех чисел деленная на кол-во чисел. Т.е. в цикле мы сначала введем число потом проверим меньше ли оно 10, если да то прибавляем его к общей сумме и увеличиваем кол-во чисел которые меньше 10.
Затем после цикла мы всю эту сумму разделим на это кол-во .
Теперь подумаем какие переменные нам понадобятся :
- Переменная summa — для суммы всех чисел меньше 10
- Переменная average — для среднего арифметического
- Переменная i — для цикла for
- Переменная n — для кол-ва чисел которое введет пользователь
- Переменная number — для числа которое пользователь вводить и которое мы будем проверять
- Переменная count — для кол-ва чисел меньше 10
Начнем мы с каркаса нашей программы :
var
summa , i , n, number, count : integer;
average : real;
begin
write('Введите кол-во чисел : '); readln(n); // просим пользователя ввести число
end.
Переменная average у нас типа real, т.е. число с запятой(пример 4.56), мы присвоили ей такой тип потому что, чтобы найти среднее арифметическое нам нужно использовать деление.
Ну а теперь цикл, как я и говорил в нем мы сначала введем число, затем проверим его на выполнение условия, если всё ОК, то прибавляем его к общей сумме и кол-во таких чисел увеличиваем на 1 :
for i:=1 to n do
begin
write('Введите ', i , ' число : '); readln(number);
if (number < 10) then
begin
summa := summa + number;
count := count + 1;
end;
end;
Ну вот теперь нам нужно сосчитать среднее арифметическое, после цикла пишем :
average := summa / count ;
Всё решение задачи Pascal :
uses crt;
var
summa , i , n, number , count : integer;
average : real;
begin
clrscr;
write('Введите кол-во чисел : '); readln(n); // просим пользователя ввести число
summa := 0; // чтобы не было ошибок
for i:=1 to n do
begin
write('Введите ', i , ' число : '); readln(number);
if (number < 10) then
begin
summa := summa + number;
count := count + 1;
end;
end;
average := summa / count ;
writeln('Среднее арифметическое чисел меньше 10 = ', average:3:2);
readln; // чтобы программа не закрывалась
end.
