В последних версиях тренировочных работ ОГЭ по информатике (осень 2014 г.) стала попадаться несколько измененная задача 20.2 на программирование. Если раньше необходимо было найти сумму или количество чисел, удовлетворяющих некоторому условию, то теперь задача имеет следующий вид:
Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 8. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 8.
Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – максимальное число, оканчивающееся на 8.
Рассмотрим решение и напишем программу на языке паскаль.
Шаг 1.
Программа получает на вход количество чисел последовательности:
используем команду readln(n); (т.е. нам необходимо будет ввести n чисел)
Шаг 2.
Если нам известно количество вводимых элементов — используем цикл со счетчиком:
for i:=1 to n do begin тело цикла end;
Шаг 3.
Определимся с тем, что будет выполняться в теле цикла:
- ввод числа readln(a);
- проверяем, удовлетворяет ли число заданному условию (чтобы проверить, оканчивается ли число на 8, нужно выполнить a mod 10 =8)
- если a удовлетворяет условию, то проверяем: больше ли введенное число максимального значения max (присвоим в начале программы переменной max значение 0)
- если введенное число больше значения переменной max, то переопределяем переменную max (max:=a)
Программа примет вид:
var a, i, max, n: integer; begin max:=0; readln(n); //вводим количество вводимых чисел for i:=1 to n do
begin readln(a); // вводим число if a mod 10 =8 then // проверяем: оканчивается ли число на 8 if a>max then max:=a; end; writeln(max); end.
Продолжаем разбирать олимпиадные задачи на программирование школьного тура Всероссийской олимпиады школьников..
Добрый день. как учесть: «не превышает 1000. Введённые числа не превышают 30 000.» ?
Данное условие проверять не нужно. Это ограничения для пользователя и его входных данных