ДИАГНОСТИЧЕСКАЯ ОЛИМПИАДА ПО ИНФОРМАТИКЕ

ДЛЯ УЧАЩИХСЯ 6-8 КЛАССОВ

2009 УЧЕБНЫЙ ГОД

1.     (5 баллов) Поверхность пруда постепенно зарастает кувшинками. Кувшинки растут так быстро, что закрываемая ими площадь ежедневно удваивается. За сколько дней заросла половина пруда, если весь пруд зарос за 30 дней?

 

2.     (5 баллов) В 2001 году отцу исполнится 40 лет, сыну 13 лет. Укажите год, в котором возраст отца в 10 раз больше возраста сына.

 

Для следующих составьте программу на известном Вам языке программирования.

 

3.     (20 баллов) Написать программу, результатом выполнения которой будет изображение, показанное на рисунке из точки с координатами В(х;у).

 

4.     (40 баллов) Назовём натуральное число А интересным, если при вычитании из него числа, состоящего из тех же цифр, но записанных в обратном порядке, получается натуральное число, состоящее из тех же цифр, что и А. Таковым, например является число 1980, так как 1980-891=1089. Найдите все трёхзначные интересные числа.

 

5.     (40 баллов) Подсчитать общее количество 6-значных «счастливых билетов» (счастливым считается билет, у которого сумма первых трех цифр равна сумме вторых трех цифр).

 

6.     (40 баллов) Винни-Пух пришел в магазин, чтобы купить себе горшочек с медом. В продаже имеются 12 горшочков с медом, но денег у него хватит только на самый маленький. Помогите Винни-Пуху определить размер самого маленького горшочка, а также его номер.

НЕ нашли? Не то? Что вы ищете?

 

Входные данные:

a[1] - размер 1-ого горшочка
...
a[12] - размер 12-ого горшочка

Выходные данные:

min - размер самого маленького горшочка
nom - номер самого маленького горшочка

Пример ввода: 11 41 2 4 15 6 7 8 9 10 13 10

Пример вывода:

2

3

 

7.     (50 баллов) В футбольной команде одной из городских школ заболел один из игроков, и стало ясно, что в турнире по футболу среди школ города, который будет проводиться через неделю, он участвовать не будет. Тренер этой команды решил набрать 5 желающих, не считая вратаря, и провести 5 матчей между своей и новой командами. Зная количество забитых мячей каждым игроком новой команды за каждый матч, посчитайте, сколько мячей за все игры забил каждый из игроков этой команды

Входные данные:

А[1,1]
A[1,2]
A[1,3]
...
A[5,5] - где A[i,j] - количество голов, забитых j-тым игроком в i-том матче (0<=A[i,j]<=10]).

Выходные данные:

B[1]
B[2]
...
B[5] - где B[i] - сумма голов, забитых за все матчи i-тым игроком

 

Пример ввода:

1 2 2 2 0

0 0 0 0 1

0 1 0 2 0

0 1 1 1 1

3 2 4 2 0

Пример вывода:

4 6 7 7 2

 


 

Ответы и варианты решения задач:

 

1.     Ответ: за 29 дней.

 

2.     Ответ: в 1991 году.

 

4.     Обозначим цифры трёхзначного числа a,b,c, само число обозначим переменной S, а число, записанное теми же цифрами, но в обратном порядке – N.

Очевидно, что S=100*a+10*b+c.

N=100*c+10*b+a.

Всего существует 6 вариантов расстановки цифр трёхзначного числа:

abc

bac

cab

cba

bca

acb

Далее сравниваем разность S и N с другими четырьмя вариантами.

Программа на языке программирования Паскаль выглядит следующим образом:

var

N,S,A,B,C: INTEGER;

begin

for a:=1 to 9 do

for b:=0 to 9 do

for c:=0 to 9 do

begin

S:= 100*a+10*b+c;

N:= 100*c+10*b+a;

If (S-N= 100*b+10*a+c) or (S-N= 100*c+10*a+b) or

(S-N= 100*b+10*c+a) or (S-N= 100*a+10*c+b)

then writeln(‘Интересное трёхзначное число:’,S);

end;

end.

Одним из интересных трёхзначных чисел является число 954.


 

5.     Последовательность abcdef из 6 цифр (каждая цифра от 0 до 9) называется счастливым билетом, если a+b+c=d+e+f. Определим число таких билетов.

Var a,b,c,d,e,f : byte;

 q : word;

Begin

q:=0 ;

 for a:=0 to 9 do

for b:=0 to 9 do

 for c:=0 to 9 do

for d:=0 to 9 do

for e:=0 to 9 do

for f:=0 to 9 do if a+b+c=d+e+f then q:=q+1 ;

write (q);

 End.

Ответ: 55252

 

6.     Винни-Пух пришел в магазин, чтобы купить себе горшочек с медом. В продаже имеются 12 горшочков с медом, но денег у него хватит только на самый маленький. Помогите Винни-Пуху определить размер самого маленького горшочка, а также его номер.

 

Входные данные:

a[1] - размер 1-ого горшочка
...
a[12] - размер 12-ого горшочка

Выходные данные:

min - размер самого маленького горшочка
nom - номер самого маленького горшочка

Пример ввода: 11 41 2 4 15 6 7 8 9 10 13 10

Пример вывода:

2
3

program min12;

var

a,min,nom,i :integer;

begin

readln(a);

min:=a; nom:=1;

for i:=2 to 12 do

begin

readln(a);

if a<min then begin min:=a; nom:=i; end;

end;

writeln('min=',min);

writeln('nom=',nom);

end.

 

7.     (50 баллов) В футбольной команде одной из городских школ заболел один из игроков, и стало ясно, что в турнире по футболу среди школ города, который будет проводиться через неделю, он участвовать не будет. Тренер этой команды решил набрать 5 желающих, не считая вратаря, и провести 5 матчей между своей и новой командами. Зная количество забитых мячей каждым игроком новой команды за каждый матч, посчитайте, сколько мячей за все игры забил каждый из игроков этой команды

Входные данные:

А[1,1]
A[1,2]
A[1,3]
...
A[5,5] - где A[i,j] - количество голов, забитых j-тым игроком в i-том матче (0<=A[i,j]<=10]).

Выходные данные:

B[1]
B[2]
...
B[5] - где B[i] - сумма голов, забитых за все матчи i-тым игроком

 

Пример ввода: 1 2 2 2 0 0 0 0 0 1 0 1 0 2 0 0 1 1 1 1 3 2 4 2 0

Пример вывода: 4 6 7 7 2

 

 

 

program massiv;

var

a : array [1..5,1..5] of longint;

b : array [1..5] of longint;

i,j : longint;

begin

for i:=1 to 5 do

for j:=1 to 5 do readln(a[i,j]);

for i:=1 to 5 do

begin

b[i]:=0;

for j:=1 to 5 do b[i]:=b[i]+a[j,i];

writeln(b[i]);

end;

end.