Решение задач по информатике на языке Паскаль 9 класс

Автор: Трофимов Виктор Геннадьевич
Место работы: ГКООУ санаторная школа-интернат №28 г. Ростова-на-Дону
Должность: учитель информатики
Натуральные числа (естественные числа) — числа, возникающие естественным
образом при счёте (как в смысле перечисления, так и в смысле исчисления).
Существуют два подхода к определению натуральных чисел — числа,
используемые при:
- перечислении (нумеровании) предметов (первый, второй, третий, …);
- обозначении количества предметов (нет предметов, один предмет, два
предмета, …).
Отрицательные и нецелые (рациональные, вещественные, …) числа
натуральными не являются.
Википедия
Замечания: некоторые программы написаны без использования библиотеки crt,
поэтому в них не используются функции clrscr (очистка экрана) и readkey (ожидания
нажатия любой неслужебной клавиши), на ход программы это не влияет. В этом
случае readkey заменено на readln (ожидание нажатия Entera). Вызвано тем, что нет
технических требований к настройке языков программирования на компьютерах, за
которыми выпускники будут сдавать работы; если в Паскале будет отсутствовать
библиотека crt (ну мало ли!), то можно обойтись и без нее. Все остальные функции –
родные, встроенные.
Решение задач 20.2 ГИА-9 по информатике на языке Паскаль
Для решения задач типа 20.2 нужно хорошо владеть следующими конструкциями языка Паскаль:
1. Циклы со счетчиком.
2. Операции целоисчисленного деления и нахождения остатка от деления.
3. Условия и логические операции.
4. Циклы с предусловием.
1. Циклы со счетчиком
Цикл со счетчиком имеет вид:
for <переменная-счетчик> := <начальное значение> to <конечное значение> do
где <переменная-счетчик> - переменная целоисчисленного типа (byte, integer);
<начальное значение> - целое число, которое будет начальным значением переменной-
счетчика;
<конечное значение> - целое число, которое должно быть больше <начального значения>.
В данном цикле переменная счетчик будет увеличиваться на единицу каждый раз при выполнении тела
цикла, пока не достигнет конечного значения включительно. Тело цикла – оператор после служебного слова
do. Если необходимо выполнить несколько операторов, то их замыкают между begin и end; (с точкой с
запятой).
Данный цикл выведет 10 раз (первоначальное i равно 1, конечное равно 10) на экран слово «Привет:
for i := 1 to 10 do writeln(‘Привет!’);
Следующий цикл выведет 10 раз слово «Привет!» и посчитает сумму чисел от 1 до 10:
for i := 1 to 10 do
begin
writeln(‘Привет!’);
sum := sum + i;
end;
Два выполняемых в теле цикла оператора (writeln и операция накопления суммы) заключены между
begin и end;.
При необходимости можно воспользоваться следующей конструкцией:
for <переменная-счетчик> := <начальное значение> downto <конечное значение> do
Действие этого цикла равнозначно предыдущему за одним исключением: параметр downto дает команду
процессору уменьшать значение переменной-счетчика на единицу при каждом проходе тела цикла (а не
увеличивать его, как в случае с параметром to). То есть начальное значение всегда должно быть выше
конечного значения.
for i := 10 downto 1 do
begin
writeln(‘Привет!’);
sum := sum + i;
end;
Результат этой конструкции будет аналогичен предыдущему, пользователь не заметит никаких
различий. Но математика алгоритма немного другая. Если при параметре to в переменную sum поступает
цепочка: 1 + 2 + 3 + 4 + … + 9 + 10, то при downto это будет: 10 + 9 + 8 + 7 + … + 3 + 2 + 1.
Задание №4A89EC (с сайта opengia.ru)
Напишите программу, которая по двум данным натуральным
числам a и b, не превосходящим 30000, подсчитывает количество чётных
натуральных чисел на отрезке [a, b] (включая концы отрезка).
Программа получает на вход два натуральных числа a и b, при этом
гарантируется, что 1 a b 30000. Проверять входные данные
на корректность не нужно.
Программа должна вывести одно число: количество чётных чисел на
отрезке [a, b].
Пример работы программы:
Входные данные
Выходные данные
10
20
6
В этой задаче нам требуется составить цикл, началом которого будет служить значение переменной А,
конечное – значение переменной В. Обе переменные вводятся пользователем (или указывается в самой
программе посредством оператора присваивания). Неточность формулировок заданий – бич ГИА и ЕГЭ уже
не первый год.
Итак, часть программного кода будет следующей:
write(‘Введите начало отрезка (А):’);
readln(a);
write(‘Введите конец отрезка (B):’);
readln(b);
for i := a to b do
begin
// Здесь будут находиться наши расчёты
end;
Продолжим решение немного позже.
2. Операции целоисчисленного деления и нахождения остатка от деления.
Из условий предыдущей задачи: «программа должна вывести одно число: количество чётных чисел на
отрезке [a, b]». Как же найти четное число? Или число, которое делится на 3, 4 или 7? Число, которое
оканчивается на заданную цифру? Все это потребуется для решения многих задач из ГИА.
Давайте рассуждать. Почему 33 нечетное число? Потому что 33 / 2 = 16,5, то есть в результате деления
на двойку целого числа не получается. Но 34 / 2 = 17. Наша задача – проконтролировать, делится ли число на 2
нацело.
В Паскале существует возможность использования трех методов определения кратности числа.
1. С помощью оператора div (целоисчисленное деление). Как это работает?
x := 10 div 2 (переменная x получит значение 5; процессор вычисляет пример 10 / 2 и выдает результат
5)
x := 10 div 3 (переменная x получит значение 3; вычисляется 10 / 3 = 3,33 и отбрасывается дробная
часть, такова природа работы оператора div)
x := 10 div 4 (переменная x получит значение 2; 10 / 4 = 2,5 и опять отбрасывается дробная часть).
2. С помощью оператора mod (остаток от деления). Тут и понятно, остаток от деления числа, которое
полностью делится на делитель, будет равен нулю.
x := 10 mod 2 (переменная x получит значение 0; процессор вычисляет по формуле 10 ((10 div 2) * 2) =
0, то есть оператор mod возвращает пользователю остаток, который получится в результаты вычитания из
делимого числа разницы между первым в сторону уменьшения делящимся нацело на делитель… эмм,
надеюсь, понятно. Еще на примерах:
x := 10 mod 3 (переменная x получит значение 1; происходит следующее 10 div 3 = 3 (целое), дальше 10
3 (результат) * 3 (делитель) = 1)
x := 10 mod 4 (переменная x получит значение 2; вычисляется 10 ((10 div 4) * 4)).
Внимательно изучите работу операторов div и mod, они важны для решения задач ГИА-9.
3. С помощью функции отбрасывания дробной части числа (не округления, а именно отбрасывания).
trunc(z), где z вещественное число или математическое выражение.
Примеры:
x := trunc(3.33) (x получит значение 3; «удаляется» дробная часть)
x := trunc(10 / 3) (x получит значение 3, 10 / 3 = 3.33, отбрасываем «,33»)
x := trunc(10 / 2) (x получит значение 5, 10 / 2 = 5 (целое число))
x := trunc(10 / 4) (x получит значение 2, 10 / 4 = 2.5, отбрасываем дробную часть)
Но этот метод не совсем удобен, так как дублирует более понятный в тексте программы div.
Таким же образом можно проверить кратность чисел:
Если ((x mod 3) = 0), то число кратно трем (остаток от деления равен нулю).
Если ((x mod 8) = 0), то число кратно восьми и т.д.
Как найти цифру, на которую оканчивается число? Все просто, надо найти остаток от деления числа
на 10.
Примеры:
Результатом 150 mod 10 будет число 0, т.к. 150 полностью делится на 10. 0 – это последняя цифра числа.
153 mod 10 вернет 3 (153 ((153 div 10) * 10); 3 эта цифра, на которую оканчивается число.
87 mod 10 вернет 7 – последнюю цифру числа.
33 mod 10 вернет 3 и т.д. Попробуйте сами: writeln(33 mod 10);
3. Условия и логические операции.
Вся вышеизложенная теория пригодится для составления «модуля вычисления» по условиям задания.
Итак, обратим взоры на формулировку: «Программа должна вывести одно число: количество чётных чисел на
отрезке [a, b].». То есть мы должны какой-то рыбой найти четное число и именно его «запомнить».
Итак, для этого пригодится условие словный оператор, если следовать зову науки).
Оформляется следующим образом:
if <условие> then <действие1> else <действие2>
Причем действие2 может отсутствовать, если оно не нужно. Тогда убирается и оператор else. Условие
обязательно должно возвращать истину или ложь, то есть условие формулируется таким образом, чтобы
процессор мог «ответить» либо утвердительно, либо отрицательно.
Работает так: если условие возвращает истину, то выполняется действие1, если ложь – то действие2.
То есть «какой сегодня день?» - это не условие, а «сегодня выходной?» - условие, потому как на него
можно ответить только «да» или «нет».
if сегодня выходной then спать, сколько влезет else просыпаться по будильнику.
Перевод: если сегодня выходной, то спать, сколько влезет, иначе подъем. Примерно так все работает и в
Паскале, единственно, что мы должны формулировать математически и логически правильные выражения, а
про «выходной» компьютер просто не сообразит.
Еще немного об условии. Если вы не используете логические переменные (а вы их вряд ли используете),
то составление условия переходит в простую задачу – в составление сравнения. Допустим, (5 > 3) это уже
условие, и оно истинно. Или (3 < 1) тоже условие, но ложно. Мы можем сравнивать все что угодно из мира
математики: выражения, переменные, фиксированные числа, функции. К примеру, можно записать: (a >= b)
и если А будет больше или равно Б, то условие будет истинным, то есть все, что после then выполнится.
Обратите внимание, что знак «больше или равно» или «меньше или равно» записывается следующим образом:
>= или <=.
Или мы можем написать: if (3 + 15 - 20 > 3) then a := 5; - условие ложно, т.к. сами посчитайте и поэтому
переменная а не станет равной 5-ти.
Логические связки, которые мы будем использовать для составления сложного условия (выражения):
AND, OR, этого достаточно. Переводится, соответственно, AND И, OR ИЛИ.
Будет ли условие истинным?
(5 > 2) and (7 > 5) да, будет, т.к. и 5 больше 2, и 7 больше 5.
(5 > 7) and (7 > 5) нет, не будет, т.к. 5 не больше 2. При составлении условия с помощью and мы
должны знать, что оно «сработает» только в том случае, когда каждое звено условия будет истинно. Если не
помните таблицы истинности, то проверку можно осуществлять интуитивно, к примеру:
«Земля – планета» и «Солнце – звезда» – тут два выражения истинны, поэтому мы можем утверждать,
что Земля – это планета и Солнце – это звезда, и это общее выражение будет для нас абсолютно правильным,
истинным.
Но возьмем другое: Я бегаю на стадионе и еду в машине. Такого не может быть, чтобы человек
одновременно и бегал, и ехал. Одно из выражений будет обязательно ложным, поэтому общее сложное
выражение будет ложным. К примеру, мы напишем:
if (я бегаю на стадионе) and (еду в машине) then writeln(‘Ты – Эйнштейн!’);
Это никогда не сработает, потому что см. выше.
Или
if ((a mod 2) = 0) and ((a mod 7) = 0) then writeln(‘Число четное и делится на семь’);
Этот код сработает только в том случае, когда число будет делиться и на 2, и на 7 без остатка: например,
14, 28, 42 и далее.
Но вернемся к нашим заливным лугам. Итак, мы должны найти четное число и, если число четное, то
увеличить счетчик чисел на единицу. Для обозначения переменных будем использовать: ch наше число,
kolvo количество, изначально равное нулю. Вспоминаем про div, mod и trunc. Впрочем, div и trunk
использовать не будем. Только mod, только хардкор.
Тогда условие нахождения четного числа и увеличение счетчика на единицу будет таким:
if (ch mod 2 = 0) then kolvo := kolvo + 1;
Всё.
Тестируем в уме на ряде чисел 4, 5, 6, подставляя числа последовательно:
if (4 mod 2 = 0) then kolvo := kolvo + 1; (4 / 2 = 2, т.е. остаток от деления будет равен нулю и условие
выполнится, переменная kolvo увеличится на единицу и станет равной 1).
if (5 mod 2 = 0) then kolvo := kolvo + 1; (5 / 2 = 2.5, т.е. остаток от деления не будет равен нулю и условие
не выполнится, переменная kolvo останется по прежнему равной 1).
if (6 mod 2 = 0) then kolvo := kolvo + 1; (6 / 2 = 3, т.е. остаток от деления будет равен нулю и условие
выполнится, переменная kolvo увеличится на единицу и станет равной 2).
Итог: после выполнения программы переменная kolvo будет равна 2, остается вывести ее значение на
экран с помощью writeln(‘Количество четных чисел = ‘, kolvo). Считаем: в ряду чисел 4, 5, 6 всего лишь два
четных, что и требовалось доказать, чем и стала равна переменная kolvo. Финал. Пробуем «собрать
программу».
write(‘Введите начало отрезка (А):’);
readln(a);
write(‘Введите конец отрезка (B):’);
readln(b);
for i := a to b do
begin
if ((i mod 2) = 0) then kolvo := kolvo + 1;
end;
writeln(‘Количество четных чисел = ‘, kolvo);
Полная и удивительно рабочая программа представлена дальше, №4A89EC.
Замечание: мы можем сократить запись
for i := a to b do
begin
if ((i mod 2) = 0) then kolvo := kolvo + 1;
end;
до
for i := a to b do if ((i mod 2) = 0) then kolvo := kolvo + 1;
Т.е. убрать «begin» и «end;», т.к. у нас выполняется всего лишь одна строка кода внутри цикла. Но автор
не рекомендует этого делать, потому что программа лишится наглядности при чтении. Этот фактор очень
важен. Особенно, когда вы пишите ГИА, ЕГЭ, следующую версию Battlefield или собственную операционную
систему и в вашем коде много тысяч строк, где малейшая ошибка может нарушить работу всей программы в
целом. «Громоздкий» код, написание многого в одну строку не позволит вам легко и уверенно найти ошибки.
Задание №0E60A9
Напишите программу, которая в последовательности натуральных чисел определяет количество всех
чётных чисел, кратных 7. Программа получает на вход натуральные числа, количество введённых
чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не
входит в последовательность). Количество чисел не превышает 1000. Введённые числа не превышают
30 000.
Программа должна вывести одно число: количество всех чётных чисел, кратных 7.
Пример работы программы:
Входные данные
35
24
14
22
28
0
program gia_0e60a9;
uses crt;
var ch, kolvo: integer;
begin
clrscr;
ch := 1;
while (ch <> 0) do
begin
write('Vvedite chislo. 0 - stop: ');
readln(ch);
if (ch > 0) and ((ch mod 2) = 0) and ((ch mod 7) = 0) then
inc(kolvo); // Можно использовать kolvo := kolvo + 1;
end;
writeln('Kolichestvo chisel = ', kolvo);
readkey;
end.
Задание №159439
Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел,
кратных 5. Программа получает на вход количество чисел в последовательности, а затем сами числа.
В последовательности всегда имеется число, кратное 5.
Количество чисел не превышает 100. Введённые числа не превышают 300.
Программа должна вывести одно число – сумму чисел, кратных 5.
Пример работы программы:
Входные данные
Выходные данные
3
15
25
6
40
program gia_159439;
uses crt;
var i, j: byte;
ch, kolvo: integer;
begin
clrscr;
write('Vvedite kolichestvo chisel ');
readln(j);
for i := 1 to j do
begin
write('Vvedite chislo: ');
readln(ch);
if (ch > 0) and ((ch mod 5) = 0) then
kolvo := kolvo + ch;
end;
writeln('Kolichestvo chisel = ', kolvo);
readkey;
end.
Задание №16CBFB
Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел,
кратных 7 и оканчивающихся на 2. Программа получает на вход натуральные числа, количество
введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 признак
окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые
числа не превышают 30 000.
Программа должна вывести одно число: сумму всех чисел, кратных 7 и оканчивающихся на 2.
Пример работы программы:
Входные данные
Выходные данные
112
24
42
49
22
0
154
program gia_16CBFB;
uses crt;
var ch: integer;
kolvo: longint;
begin
clrscr;
ch := 1;
while (ch <> 0) do
begin
write('Vvedite chislo. 0 - stop: ');
readln(ch);
if (ch > 0) and ((ch mod 10) = 2) and ((ch mod 7) = 0) then
kolvo := kolvo + ch;
end;
writeln('Summa chisel = ', kolvo);
readkey;
end.
Задание №173737
Напишите программу, которая в последовательности натуральных чисел находит среднее
арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа
получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность
чисел заканчивается числом 0 (0 признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 100. Введённые числа не превышают 300.
Программа должна вывести среднее арифметическое чисел, кратных 8, или вывести «NO», если таких
чисел нет. Значение выводить с точностью до десятых.
Пример работы программы:
Входные данные
Выходные данные
8
122
64
16
0
29.3
111
1
0
NO
program gia_173737;
var ch, summa: integer;
kolvo: byte;
srednee: real;
begin
ch := 1;
while (ch <> 0) do
begin
write('Vvedite chislo. 0 - stop: ');
readln(ch);
if (ch > 0) and ((ch mod 8) = 0) then
begin
kolvo := kolvo + 1; // Можно использовать inc(kolvo)
summa := summa + ch;
end;
end;
if (kolvo > 0) then
begin
srednee := summa / kolvo;
writeln('Srednee = ', srednee:3:1);
end
else
writeln('NO');
readln;
end.
Задание №197DE3
Напишите программу для решения следующей задачи.
Ученики 4 класса вели дневники наблюдения за погодой и ежедневно записывали дневную
температуру. Найдите среднюю температуру за время наблюдения. Если количество дней, когда
температура поднималась выше нуля градусов, не менее 5, выведите YES, иначе выведите NO.
Программа получает на вход количество дней, в течение которых проводилось наблюдение N (1 ≤ N ≤
31), затем для каждого дня вводится температура.
Пример работы программы:
Входные данные
Выходные данные
4
4
12
2
8
3.5
NO
program gia_197DE3;
uses crt;
var i, j: byte;
temperatura, summa, kolvo: integer;
srednee: real;
begin
clrscr;
write('Vvedite kolichestvo dney ');
readln(j);
for i := 1 to j do
begin
write('Vvedite temperaturu: ');
readln(temperatura);
if (temperatura > 0) then inc(kolvo);
summa := summa + temperatura;
end;
srednee := summa / j;
writeln('Srednyaya temperatura = ', srednee:2:1);
if (kolvo >= 5) then writeln('YES')
else
writeln('NO');
readkey;
end.
Задание №1AC38D
Напишите программу, которая в последовательности целых чисел определяет количество чисел,
кратных 5 или 9. Программа получает на вход целые числа, количество введённых чисел неизвестно,
последовательность чисел заканчивается числом 0 (0 признак окончания ввода, не входит
в последовательность).
Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000.
Программа должна вывести одно число: количество чисел, кратных 5 или 9.
Пример работы программы:
Входные данные
Выходные данные
15
91
90
0
2
program gia_1AC38D;
var ch, kolvo: integer;
begin
ch := 1;
while (ch <> 0) do
begin
write('Vvedite chislo. 0 - stop: ');
readln(ch);
if (ch > 0) and (((ch mod 5) = 0) or ((ch mod 9) = 0)) then
kolvo := kolvo + 1; // inc(kolvo)
end;
writeln('Kolichestvo chisel = ', kolvo);
readln;
end.
Задание №1ec011
Напишите программу, которая в последовательности целых чисел определяет количество чётных
чисел, кратных 5. Программа получает на вход целые числа, количество введённых чисел неизвестно,
последовательность чисел заканчивается числом 0 (0 признак окончания ввода, не входит
в последовательность).
Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000.
Программа должна вывести одно число: количество чётных чисел, кратных 5.
Пример работы программы:
Входные данные
Выходные данные
32
10
17
0
1
program gia_1ec011;
var ch, kolvo: integer;
begin
ch := 1;
while (ch <> 0) do
begin
write('Vvedite chislo. 0 - stop: ');
readln(ch);
if (ch > 0) and ((ch mod 5) = 0) and ((ch mod 2) = 0) then
kolvo := kolvo + 1;
end;
writeln('Kolichestvo chisel = ', kolvo);
readln;
end.
Задание №25513D
Напишите программу, которая в последовательности натуральных чисел вычисляет сумму
трёхзначных чисел, кратных 4. Программа получает на вход натуральные числа, количество
введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 признак
окончания ввода, не входит в последовательность).
Количество чисел не превышает 1000. Введённые числа не превышают 30 000.
Программа должна вывести одно число: сумму трёхзначных чисел, кратных 4.
Пример работы программы:
Входные данные
Выходные данные
18
192
104
117
0
296
program gia_25513D;
var ch: integer;
summa: longint;
begin
ch := 1;
while (ch <> 0) do
begin
write('Vvedite chislo. 0 - stop: ');
readln(ch);
if (ch > 99) and (ch < 1000) and ((ch mod 4) = 0) then
summa := summa + ch;
end;
writeln('Kolichestvo chisel = ', summa);
readln;
end.
Задание №2DDF87
Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел,
кратных 6 и оканчивающихся на 8. Программа получает на вход натуральные числа, количество
введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 признак
окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые
числа не превышают 300.
Программа должна вывести одно число: сумму всех чисел, кратных 6 оканчивающихся на 8.
Пример работы программы:
Входные данные
18
28
72
34
48
0
program gia_2DDF87;
var ch: integer;
summa: longint;
begin
ch := 1;
while (ch <> 0) do
begin
write('Vvedite chislo. 0 - stop: ');
readln(ch);
if (ch > 0) and ((ch mod 6) = 0) and ((ch mod 10) = 8) then
summa := summa + ch;
end;
writeln('Summa chisel = ', summa);
readln;
end.
Задание №2EA439
Напишите программу, которая в последовательности натуральных чисел определяет минимальное
число, оканчивающееся на 6. Программа получает на вход количество чисел в последовательности, а
затем сами числа. В последовательности всегда имеется число, оканчивающееся на 6.
Количество чисел не превышает 1000. Введённые числа не превышают 30 000.
Программа должна вывести одно число – минимальное число, оканчивающееся на 6.
Пример работы программы:
Входные данные
Выходные данные
3
26
16
36
16
program gia_2EA439;
uses crt;
var i, j: byte;
ch, min: integer;
begin
clrscr;
min := 30001;
write('Vvedite kolichestvo chisel ');
readln(j);
for i := 1 to j do
begin
write('Vvedite chislo: ');
readln(ch);
if ((ch mod 10) = 6) and (ch < min) then
min := ch;
end;
if (min <> 30001) then writeln('Minimalnoe = ', min);
readkey;
end.
Задание №4A89EC
Напишите программу, которая по двум данным натуральным числам a и b, не превосходящим 30000,
подсчитывает количество чётных натуральных чисел на отрезке [a, b] (включая концы отрезка).
Программа получает на вход два натуральных числа a и b, при этом гарантируется, что
1 a b 30000. Проверять входные данные на корректность не нужно.
Программа должна вывести одно число: количество чётных чисел на отрезке [a, b].
Пример работы программы:
Входные данные
Выходные данные
10
20
6
program gia_4A89EC;
uses crt;
var i, a, b, kolvo: integer;
begin
clrscr;
write('Vvedite nachalo otrezka (A): ');
readln(a);
write('Vvedite konec otrezka (B): ');
readln(b);
for i := a to b do
begin
if ((i mod 2) = 0) then
inc(kolvo)
end;
writeln('Kolichestvo chetnih chisel ', kolvo);
readkey;
end.
Задание №304098
Напишите программу, которая в последовательности натуральных чисел определяет минимальное
число, оканчивающееся на 2. Программа получает на вход количество чисел в последовательности, а
затем сами числа. В последовательности всегда имеется число, оканчивающееся на 2.
Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000.
Программа должна вывести одно число: минимальное число, оканчивающееся на 2.
Пример работы программы:
Входные данные
Выходные данные
3
22
12
36
12
Задание №38989A
Напишите программу для решения следующей задачи.
На контрольной работе по алгебре ученикам 9 класса было предложено 10 примеров.
Неудовлетворительная оценка выставляется, если правильно решено менее половины примеров.
Сколько неудовлетворительных оценок было получено учениками? Если хотя бы один из учеников
правильно решил все задачи, выведите YES, иначе выведите NO.
Программа получает на вход количество учеников в классе N (1 ≤ N ≤ 30), затем для каждого ученика
вводится количество правильно решённых примеров.
Пример работы программы:
Входные данные
Выходные данные
4
3
9
2
8
2
NO
Задание №3D8BFA
Напишите программу, которая в последовательности натуральных чисел находит среднее
арифметическое двузначных чисел или сообщает, что таких чисел нет (выводит «NO»). Программа
получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность
чисел заканчивается числом 0 (0 признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 100. Введенные числа не превышают 300.
Программа должна вывести среднее арифметическое двузначных чисел или вывести «NO», если таких
чисел нет. Значение выводить с точностью до десятых.
Пример работы программы:
Входные данные
Выходные данные
10
120
49
0
29.5
111
1
0
NO
Задание №3cf5d6
Напишите программу, которая в последовательности натуральных чисел определяет количество чисел,
оканчивающихся на 9. Программа получает на вход количество чисел в последовательности, а затем
сами числа. В последовательности всегда имеется число, оканчивающееся на 9.
Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000.
Программа должна вывести одно число: количество чисел, оканчивающихся на 9.
Пример работы программы:
Входные данные
Выходные данные
3
19
29
24
2
Задание №4A89ED
Напишите программу, которая по двум данным натуральным числам a и b, не превосходящим 30000,
подсчитывает количество чисел, кратных 3, на отрезке [a, b] (включая концы отрезка).
Программа получает на вход два натуральных числа a и b, при этом гарантируется, что
1 a b 30000. Проверять входные данные на корректность не нужно.
Программа должна вывести одно число: количество чисел, кратных 3, на отрезке [a, b].
Пример работы программы:
Входные данные
Выходные данные
10
21
4
Задание №661C7B
Напишите программу, которая в последовательности натуральных чисел вычисляет сумму всех
однозначных чисел, кратных 3. Программа получает на вход натуральные числа, количество
введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 признак
окончания ввода, не входит в последовательность).
Количество чисел не превышает 1000. Введённые числа не превышают 30 000.
Программа должна вывести одно число: сумму всех однозначных чисел, кратных 3.
Пример работы программы:
Входные данные
Выходные данные
6
6
17
18
0
12
Задание №6BD3EC
Напишите программу, которая в последовательности натуральных чисел находит среднее
арифметическое трёхзначных чисел или сообщает, что таких чисел нет (выводит NO). Программа
получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность
чисел заканчивается числом 0 (0 признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 100. Введённые числа не превышают 300.
Программа должна вывести среднее арифметическое трёхзначных чисел или вывести «NO», если
таких чисел нет.
Пример работы программы:
Входные данные
Выходные данные
10
120
125
0
122.5
11
1
0
NO
Задание №F23D08
Напишите программу, которая в последовательности натуральных чисел определяет максимальное
число, кратное 4. Программа получает на вход количество чисел в последовательности, а затем сами
числа. В последовательности всегда имеется число, кратное 4.
Количество чисел не превышает 1000. Введённые числа не превышают 30 000.
Программа должна вывести одно число – максимальное число, кратное 4.
Пример работы программы:
Входные данные
Выходные данные
3
8
16
11
16
Задание №EFE93E
Напишите программу для решения следующей задачи.
На зачётной работе по физике ученикам 9 класса было предложено 12 задач. Зачёт можно получить,
если правильно решить не менее 8 задач. Сколько учеников получило зачёт? Вычислите среднее
количество правильно решённых задач учащимися, получившими зачёт. Гарантируется, что хотя бы
один ученик сдал зачёт.
Программа получает на вход количество учеников в классе N (1 ≤ N ≤ 30), затем для каждого ученика
вводится количество правильно решённых задач.
Пример работы программы:
Входные данные
Выходные данные
4
3
9
10
6
2
9.5
Задание №C76E40
Напишите программу для решения следующей задачи.
На соревнованиях по бегу на 5000 метров для выхода в финал необходимо показать время не более 18
минут 30 секунд.
Сколько спортсменов по результатам соревнований вышли в финал?
Программа получает на вход количество спортсменов, принимавших участие в соревнованиях (1 N
100), затем для каждого спортсмена вводится два числа: минуты и секунды время, показанное на
дистанции.
Пример работы программы:
Входные данные
Выходные данные
2
17 15
19 20
1