Городская олимпиада по информатике 8 класс
Задача 1
Тесты (за каждый правильный тест 5 баллов):
Ввод 1
100
Вывод 1
LOCK
Ввод 2
607
Вывод 2
ENTER
Ввод 3
67
Вывод 3
FALSE
Ввод 4
1000
Вывод 4
FALSE
Возможное решение:
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');
readln;
end.
Задача 2
Тесты (за каждый правильный тест 5 баллов):
Ввод 1
1 2 3
Вывод 1
5
Ввод 2
-10 -11 -12
Вывод 2
-21
Ввод 3
200 100 300
Вывод 3
500
Ввод 4
1 1 1
Вывод 4
2
Возможное решение:
program Task2;
var a, b, c, mn, s: integer;
begin
readln(a,b,c);
mn:=a;
if b
if c
s:=a+b+c-mn;
writeln('сумма двух наибольших=',s);
readln
end.
Задача 3
Тесты (за каждый правильный тест 4 балла):
Ввод 1
23 55 31 4
Вывод 1
113 птиц
Ввод 2
23 9 25 6
Вывод 2
63 птицы
Ввод 3
29 6 15 19
Вывод 3
69 птиц
Ввод 4
10 12 26 13
Вывод 4
61 птица
Ввод 5
22 54 31 4
Вывод 5
111 птиц
Возможное решение:
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(‘ы’);
readln;
end.
Задача 4
За правильный ответ 20 баллов. Рекомендация: если ошибка ученика заключается только в количестве повторений цикла (т.е ответ 64 или 256) начислить за задачу 5 баллов.
Ввод
Вывод
128
Возможное решение:
program Task4;
var i,k:integer;
begin
k:=1;
for i:=1 to 7 do k:=k*2;
writeln(k);
readln;
end.
Задача 5
Тесты (за каждый правильный тест 5 баллов):
Ввод 1
4
-23 -55 -31 -4
Вывод 1
0
Ввод 2
5
23 9 25 6 10
Вывод 2
73
Ввод 3
8
1 2 3 4 5 6 7 9
Вывод 3
9
Ввод 4
10
5 0 5 0 5 0 10 0 10 0
Вывод 4
35
Возможное решение:
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);
readln;
end.
Тесты (за каждый правильный тест 5 баллов):
Ввод 1
100
Вывод 1
LOCK
Ввод 2
607
Вывод 2
ENTER
Ввод 3
67
Вывод 3
FALSE
Ввод 4
1000
Вывод 4
FALSE
Возможное решение:
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');
readln;
end.
Задача 2
Тесты (за каждый правильный тест 5 баллов):
Ввод 1
1 2 3
Вывод 1
5
Ввод 2
-10 -11 -12
Вывод 2
-21
Ввод 3
200 100 300
Вывод 3
500
Ввод 4
1 1 1
Вывод 4
2
Возможное решение:
program Task2;
var a, b, c, mn, s: integer;
begin
readln(a,b,c);
mn:=a;
if b
if c
s:=a+b+c-mn;
writeln('сумма двух наибольших=',s);
readln
end.
Задача 3
Тесты (за каждый правильный тест 4 балла):
Ввод 1
23 55 31 4
Вывод 1
113 птиц
Ввод 2
23 9 25 6
Вывод 2
63 птицы
Ввод 3
29 6 15 19
Вывод 3
69 птиц
Ввод 4
10 12 26 13
Вывод 4
61 птица
Ввод 5
22 54 31 4
Вывод 5
111 птиц
Возможное решение:
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(‘ы’);
readln;
end.
Задача 4
За правильный ответ 20 баллов. Рекомендация: если ошибка ученика заключается только в количестве повторений цикла (т.е ответ 64 или 256) начислить за задачу 5 баллов.
Ввод
Вывод
128
Возможное решение:
program Task4;
var i,k:integer;
begin
k:=1;
for i:=1 to 7 do k:=k*2;
writeln(k);
readln;
end.
Задача 5
Тесты (за каждый правильный тест 5 баллов):
Ввод 1
4
-23 -55 -31 -4
Вывод 1
0
Ввод 2
5
23 9 25 6 10
Вывод 2
73
Ввод 3
8
1 2 3 4 5 6 7 9
Вывод 3
9
Ввод 4
10
5 0 5 0 5 0 10 0 10 0
Вывод 4
35
Возможное решение:
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);
readln;
end.
Просмотров: 273 / Дата: 18.01.2025
Комментариев 0