Информатика Ключи

advertisement
Ответы и решения
5-7 классы
Задание 1 (4 балла)
На первое место числа поставим наибольшую из возможных цифр 9. На второе
место также можно поставить цифру 9 и ещё останется три цифры. При этом
оставшиеся три цифры должны быть меньше 5, из них хотя бы одна должна быть
нечётная (так как две нечётные цифры уже были записаны). Наибольшая цифра,
которая меньше 5 — это 4, наибольшая нечётная цифра, которая меньше 5 — это 3.
Значит, среди трёх оставшихся цифр можно использовать две цифры 4 и одну цифру
3. Чтобы число было наибольшим, необходимо сначала записать две цифры 4, потом
одну цифру 3.
Ответ — 99443.
Задание 2 (3 балла)
1) Текст, число, график, бумага. Бумага - носитель информации, всё остальное - виды.
2) Клавиатура, джойстик, сканер, принтер. Принтер-устройство вывода данных, всё
остальное - устройства ввода.
3) Монитор, плоттер, принтер, мышь. Мышь - устройство ввода данных, всё остальное
- устройства вывода.
Задание 3 (3 балла)
На первые 9 страниц требуется 9 цифр. С 10-й по 99-ю страницу (90 страниц)
требуется 90х2=180 цифр. С 100-й по 999-ю страницу (900 страниц) требуется
900х3=2700 цифр (по 300 цифр на каждую сотню страниц с трехзначной нумерацией).
Следовательно, на 999 страниц необходимо 2700+180+9=2889 цифр. Лишних страниц
(2889-2775)/3=38 страниц. Итого: 999-38=961 страница была в книге.
Задание 4 (5 баллов)
Выпишем события, происходившие по ходу матча в хронологическом порядке и
укажем счёт после каждого события (Когтевран:Пуффендуй).
7 минута. Забивает Когтевран. 10:0
10 минута. Забивает Когтевран. 20:0
12 минута. Забивает Пуффендуй. 20:10
15 минута. Забивает Пуффендуй. 20:20
20 минута. Забивает Пуффендуй. 20:30
24 минута. Забивает Когтевран. 30:30
27 минута. Забивает Пуффендуй. 30:40
29 минута. Забивает Пуффендуй. 30:50
37 минута. Забивает Когтевран. 40:50
56 минута. Забивает Когтевран. 50:50
63 минута. Пуффендуй поймал снитч. 50:200. Конец матча.
Игра закончилась со счетом 50:200 в пользу Пуффендуя.
Когтевран вел в счете с 7 по 15 минуту.
Пуффендуй вел в счете с 20 по 24 минуту, с 27 по 56 минуту.
Ничья была с начала матча по 7 минуту, с 15 по 20 минуту, с 24 по 27 минуту, с 56
по 63 минуту.
Задание 5 (5 баллов)
Обозначим мужчину, женщину и дочь буквами М1, Ж1, Д1 (первая семья) и М2, Ж2,
Д2 (вторая семья). Возможный алгоритм переправы запишем в таблице:
№
Кто переправляется
1
2
3
4
5
6
7
8
9
10
11
М1, М2
М1
М1, Д1
М2
М2, Ж1
М1, М2
М1, Ж2
М1
М2, Д2
М2
М1, М2
Первый берег
М1, Ж1, Д1, М2, Ж2,
Д2
Ж1, Д1, Ж2, Д2
М1, Ж1, Д1, Ж2, Д2
Ж1, Ж2, Д2
Ж1, М2, Ж2, Д2
Ж2, Д2
М1, М2, Ж2, Д2
М2, Д2
М1, М2, Д2
М1
М1, М2
Второй берег
М1, М2
М2
М1, Д1, М2
М1, Д1
М1, Ж1, Д1, М2
Ж1, Д1
М1, Ж1, Д1, Ж2
Ж1, Д1, Ж2
Ж1, Д1, М2, Д2, Ж2
Ж1, Д1, Д2, Ж2
М1, Ж1, Д1, М2, Д2,
Ж2
Задание 6 (5 баллов)
Пётр Лисицын пошел на олимпиаду по информатике, Андрей Соколов — на
олимпиаду по русскому языку и Василий Журавлёв — на олимпиаду по математике.
Задание 7 (5 баллов)
 Винчестер
 Яндекс
 Ноутбук
 Пиксель
 Программист
Задание 8 (5 баллов)
Задачу можно решить за два взвешивания.
Отложим 14 монет в сторону и разделим оставшиеся 2000 монет на две равные
кучи по 1000 монет и взвесим их на весах.
Если весы оказались в равновесии, то фальшивая монета среди 14 отложенных, а
2000 монет, участвовавших в первом взвешивании, — настоящие. Возьмем из них 14
любых монет и взвесим их с 14 отложенными, тем самым мы определим, легче или
тяжелее фальшивая монета (на одной чашке весов будет 14 настоящих монет, а на
другой — 13 настоящих и одна фальшивая).
Если весы оказались не в равновесии, значит, фальшивая монета где-то среди
тех 2000 монет, которые участвовали в первом взвешивании. Выберем ту кучу из 1000
монет, которая оказалась легче другой. Разделим её на две равные кучи по 500 монет и
взвесим эти две кучи на весах. Если весы оказались в равновесии, то обе кучи по 500
монет имеют равную массу, значит, эти 1000 монет — настоящие, и фальшивая
монета находится среди другой 1000 монет, в более тяжелой куче, то есть фальшивая
монета тяжелее настоящей. Если весы оказались не в равновесии, то фальшивая
монета находится среди этой 1000 монет, а другая (более тяжелая куча) состоит из
1000 настоящих монет, поэтому фальшивая монета легче настоящей.
8-9 классы
Ответ:651423
Ответ: Андрей
Ответ: 18432
Ответ: 64
Ответ: 62
6. Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program p6;
var m,n,t,v:integer;
begin
writeln('Введите m и n');
readln(m,n);
t:=60*m+n;
v:=16*t;
if v<=6144 then writeln('Композиция поместится')
else writeln('Не хватает ',v-6144,' килобайт');
end.
1.
2.
3.
4.
5.
7. Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program p7;
var i,c,s,sum:integer;a:string;
begin
write('введите число a=');
readln(a);{числа как текст}
sum:=0;
for i:=1 to length(a) do
begin
val(a[i],s,c);{Преобразование текста в число}
sum:=sum+s;
end;
write('sum=',sum);
end.
8. Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program p8;
var a,b,x,y,t1,m1,c1,t2,m2,c2 : integer;
begin
write('Старт...'); { ввод данных }
readln(t1,m1,c1);
write('Финиш...');
readln(t2,m2,c2);
if (t1<0) or (t2<0) or (m1<0) or (m2<0) or {проверяем корректность: }
(c1<0) or (c2<0) or (t1>23) or (t2>23) or {часы от 0 до 23,мин,сек- }
(m1>59) or (m2>59) or (c1>59) or (c2>59) { от 0 до 59 }
then writeln('Некорректные данные')
else begin
x:=(c2-c1) div 60;
y:=(c2-c1) mod 60; {секунды}
a:=((m2-m1) mod 60) + x; {минуты}
x:=(m2-m1) div 60;
b:=((t2-t1) mod 60) + x; {часы}
if y<0
then begin
y:=y+60;
a:=a-1;
end;
if a<0
then begin
a:=a+60;
b:=b-1;
end;
if b<0
then b:=b+24;
writeln('Результат ',b,' ч. ',a,' мин. ',y,' сек.');
end;
end.
10-11 классы
1. Ответ:3344
2. Ответ: КОЛЯ, ПРИХОДИ ЗАВТРА КО МНЕ.
3. Ответ: 8
4. Ответ: 19 X
5. Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program p5;
function summ(x:longint):byte; {возвращает сумму цифр числа}
var
k,l:byte;
y:longint;
begin
y:=x;
l:=0;
while (y<>0) do
begin
k:=y mod 10;
y:=y div 10;
l:=l+k
end;
summ:=l;
end;
var
w1,w2,i,j,count:longint;
n,m:byte;
begin
count:=0;
for j:=0 to 999999 do
begin
w1:=j div 1000;
w2:=j mod 1000;
if summ(w1) = summ(w2)
then begin
count:=count+1;
end;
end;
writeln(count);
end.
6 Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program p6;
var x,y,n,k:integer;
begin
writeln('Введите N');
readln(n);
k:=n div 5;
for y:=0 to k do
if (N-5*y) mod 3=0 then
begin
x:=(N-5*y) div 3;
writeln('x=',x,' y=',y);
end;
end.
7.Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program p7;
{ Дан текст. Найти все палиндромы (т.е. слова-перевертыши) в этом тексте}
var
b,a,k: string;
i,j,q,kol, k1: longint;
c: array[1..30] of string;
begin
write('Ведите текст разделенный пробелами: ');
readln(a);
b:='';
j:=1;
k:='';
for i:=1 to length(a) do if (a[i]=' ') then begin {ищем пробелы в тексте}
c[j]:=b; {если есть ' ', то }
inc(j); { запоминаем слово }
b:='';
end else b:=b+a[i]; c[j]:=b;
kol:=0;
for i:=1 to j do begin {проверяем, является ли слово палиндромом}
b:=c[i];
k:='';
for q:=1 to length(b) do k:=b[q]+k;
if b=k then begin writeln(b); kol:=kol+1; end;
end;
Writeln ('Количество слов-перевертышей=', kol)
end.
7.Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program p8;
var n : string;
k,m, i, j, p, st: integer ;
s: string;
l, t: longint;
const d:array[0..35] of char =('0','1', '2', '3', '4', '5', '6','7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f','g','h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p','q','r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z');
function dec(x:longint; y:integer):string;
const dig:array[0..35] of char =('0','1', '2', '3', '4', '5', '6','7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f','g','h', 'i',
'j',
'k', 'l', 'm', 'n', 'o', 'p','q','r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z');
var r: string;
d: byte;
begin
r:='';
while (x<>0) do begin
d:=x mod y;
r:=dig[d]+r;
x:=x div y ;
end;
dec:=r;
end;
begin
readln (n);
readln (m, k);
l:=0;
p:=length (n);
for i:=1 to p do begin
t:=1;
for j:=0 to (m-1) do begin
if n[i]=d[j] then
if i=p then l:=l+j else begin
for st:=1 to (p-i) do
t:=t*m;
l:=t*j+l;
break;
end;
end;
end;
s:=dec(l, k);
writeln(s);
end.
Download