ВСЕРОССИЙСКАЯ ОЛИМПИАДА ШКОЛЬНИКОВ ПО ИНФОРМАТИКЕ ШКОЛЬНЫЙ ЭТАП
ЗАДАНИЯ 7-8 КЛАССЫ
Публикую решения авторов олимпиады.
1. Входной замок Лисы Алисы работает следующим образом: если введено натуральное число, которое меньше 100 или больше 999 – на дисплее устройства появляется надпись «FALSE»; если у введённого числа сумма цифр равна 13 – появляется надпись «ENTER» и можно войти; в остальных случаях появляется надпись «LOCK».
Входные данные: натуральное число N (1<=N<=10000 ).
Выходные данные: необходимо вывести надпись, которая должна быть на дисплее.
Пример:
Ввод 2 Вывод FALSE
Ввод 427 Вывод ENTER
Ввод 318 Вывод LOCK
(20 баллов)
Возможное решение:
program Task1;
var n: integer;
begin
readln(n);
if (n<100) or (n>999)
then writeln (‘FALSE’)
else
if (n mod 10) + (n div100) + (n div 10 mod 10) = 13
then writeln('ENTER')
else writeln('LOCK');
end.
2. Даны три целых числа. Найти сумму двух наибольших из них.
Входные данные: 3 целых числа А,В,C (-1000<= А,В,С <=1000).
Выходные данные: сумма двух наибольших из них.
Пример:
Ввод 5 2 -13 Вывод 7
Ввод 10 10 10 Вывод 20
(20 баллов)
Возможное решение:
program Task2;
var a, b, c, mn, s: integer;
begin
readln(a,b,c);
mn:=a;
if b<mn then mn:=b;
if c<mn then mn:=c;
s:=a+b+c-mn;
writeln('сумма двух наибольших=',s);
end.
3. К кормушке прилетели воробьи, синицы, снегири и вороны. Мальчик посчитал количество птиц каждого вида. Напишите программу, которая запрашивает четыре числа – количество птиц каждого вида, а затем сообщает общее число птиц у кормушки, дописывая к числовому значению слово «птица» в правильной форме. Например, 33 птицы, 11 птиц, 21 птица.
Входные данные: 4 натуральных числа А,В,C,D ( А,В,С,D <=100).
Выходные данные: сумма переменных А,В,C,D и слово «птица» с согласованным окончанием.
Пример:
Ввод 2 5 8 1 Вывод 16 птиц
Ввод 4 2 7 10 Вывод 23 птицы
Ввод 3 1 8 9 Вывод 21 птица
(20 баллов)
program Task3;
var a,b,c,d,s:integer;
begin
writeln('Введите 4 числа:');
readln(a,b,c,d);
s:=a+b+c+d;
write (s, ‘ птиц’);
if (s mod 10 =1) and (s mod 100 div 10 <>1)
then writeln(‘a’)
else
if (s mod 100 div 10 <>1) and ((s mod 10 =2) or (s mod 10 =3) or (s mod 10 =4))
then writeln(‘ы’);
end.
4. Компьютерный вирус размножается, создавая свою копию при каждом включении компьютера. При следующем включении каждая копия снова создаёт свою копию и так далее. В понедельник Петя занёс этот вирус (в одном экземпляре) к себе в компьютер с флэшки, которую ему дал одноклассник. Сколько копий этого вируса будет на Петином компьютере через неделю (в следующий понедельник после включения), если он включает свой компьютер один раз в день.
Входные данные отсутствуют.
Выходные данные: количество компьютерных вирусов через неделю (128). (20 баллов)
program Task4;
var i,k:integer;
begin
k:=1;
for i:=1 to 7 do k:=k*2;
writeln(k);
end.
5. С клавиатуры задается число N не превышающее 20, определяющее количество элементов одномерного целочисленного массива. Затем вручную заполняется сам массив из N элементов. Особым элементом этого массива назовём элемент, значение которого больше своего индекса (порядкового номера). Нумерация индексов начинается с 1. Найти сумму особых элементов массива.
Входные данные: натуральное N и N целочисленных элементов массива.
Выходные данные: число – сумма особых элементов массива.
Пример:
Ввод 7
5 8 1 2 10 6 -3 Вывод 23
Ввод 5
0 1 2 3 4 Вывод 0
(20 баллов)
program Task5;
var A: array[1..20] of integer;
i,N,s: integer;
begin
readln(N);
for i:=1 to N do readln a[i];
s:=0;
for i:=1 to N do
if a[i]>I then s:=s+a[i];
writeln (s);
end.
|