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

advertisement
Ответы и решения
5-7 классы
1. Текст, число, график, бумага
Клавиатура, джойстик, сканер, принтер
Монитор, плоттер, принтер, мышь
2. …, 29, 31, 37, 41
…, 25, 36, 49, 64
…, 46, 47, 48, 56
3. Решение (один из вариантов рассуждения)
Расположим коробки в ряд так, чтобы число карандашей в них возрастало слева
направо. Заметим, что тогда в самой левой коробке минимум один карандаш, во
второй слева — минимум два, в десятой слева — минимум 10 карандашей. Из
самой левой коробки возьмём любой лежащий в ней карандаш. Поскольку во
второй коробке лежат карандаши минимум двух разных цветов, там найдется
карандаш не того цвета, что мы взяли из первой коробки. Возьмём его. В
третьей коробке лежат карандаши минимум трёх разных цветов. Поэтому там
найдётся карандаш, цвет которого отличается от цветов обоих уже выбранных.
Возьмем его. Продолжая такую процедуру, мы выберем искомые 10 карандашей
разных цветов.
…, 46, 47, 48, 56
4. Решение (один из вариантов рассуждения)
1) спускается принцесса, используя ядро в качестве противовеса.
2) принцесса достигнув земли не вылезает из корзины. Принц занимает место
ядра и спускается вниз, используя принцессу в качестве противовеса.
3) принцесса поднялась вверх и вместе с королем положила в корзину ядро.
в опустившуюся корзину с ядром садится принц, что позволяет опустить короля.
1) когда король оказался на земле, принц с ядром оказался наверху. Принц вылез
из корзины и корзина с ядром опустилась вниз.
2) в пустую корзину у темницы садится принцесса и спускается на землю.
принц вытаскивает ядро из поднявшейся корзины и спускается сам, используя
принцессу как противовес.
3) принцесса опускает в пустой корзине ядро, а сама садится в поднявшуюся и
спускается, используя ядро в качестве противовеса.
…, 46, 47, 48, 56
5. Решение (один из вариантов рассуждения)
Заметим, что в паре рыцарь-лжец каждый должен сказать, что другой лжец:
рыцарь скажет правду, а лжец соврёт, в паре рыцарь-рыцарь оба скажут правду,
а в паре лжец-лжец оба скажут неправду. Значит фраза «Все мои друзья —
лжецы» употребляется только в парах рыцарь-лжец. Минимальное кол-во пар
рыцарь-лжец, когда фразу сказали 100 человек, это 50. Если пар будет меньше,
то и фраз тоже будет меньше.
6.
УТРО
ДЕНЬ
ВЕЧЕР
ДЕД
ОТЧИМ
СЫН
ЗЕМЛЯ
СТОЛ
ОКНО
ЗИМА
ЛЕТО
ОСЕНЬ
З
О
У
Б
М
Д
Ж
М
С
Д
И
С
Утром
–
завтрак
Днем
–
обед
Вечером – ужин (У)
Дед – Баба (Б)
Отчим – Мачеха (М)
Сын – Дочь (Д)
Земля – женский род (Ж)
Стол – мужской род (М)
Окно – средний род (С)
Зима – Декабрь (Д)
Лето – Июнь (И)
Осень – Сентябрь (С)
7. Информатика, Исполнитель, Программирование
(З)
(О)
8-9 классы
1.
2.
3.
4.
3
КГДТ
1023
Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
Program _4;
var g,t,k11,k21,k12,k22,a,b,c,d:integer;
begin
read(a,b,c,d);
k11:=0;
k21:=0;
k12:=0;
k22:=0;
while (k11+1)*c<=a do
begin
k11:=k11+1;
end;
while (k12+1)*d<=b do
begin
k12:=k12+1;
end;
t:=b;
while (k21+1)*c<=a do
begin
k21:=k21+1;
end;
while (k22+1)*d<=b do
begin
k22:=k22+1;
end;
if k11*k12>k22*k21 then write(k11*k12)
else write(k22*k21);
end.
5. Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
Program _5;
var i,j,k,n,o:integer;
a,t:longint;
begin
read(k);
t:=0;
i:=0;
repeat
t:=t+1;
j:=t;
while j>0 do {считаем количество цифр в числе и добавляем к общему
количеству}
begin
j:=j div 10;
i:=i+1; {if i=k then o:=j mod 10;}
end;
until i>=k;
while i>=k do{возвращаемся по цифрам последнего числа до нужной}
begin
o:=t mod 10;
t:=t div 10;
i:=i-1;
end;
writeln(o);
end.
6. Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
Program _6;
var a: array[1..365] of integer;
s: array[1..8] of integer;
l:array[1..8] of string;
i,d,t:integer;
begin
randomize;
for i:=1 to 365 do
begin
a[i]:=random(8)+1;
case a[i] of
1: s[1]:=s[1]+1;
2: s[2]:=s[2]+1;
3: s[3]:=s[3]+1;
4: s[4]:=s[4]+1;
5: s[5]:=s[5]+1;
6: s[6]:=s[6]+1;
7: s[7]:=s[7]+1;
8: s[8]:=s[8]+1;
end;
end;
l[1]:='северном';
l[2]:='южном';
l[3]:='западном';
l[4]:='восточном';
l[5]:='северо-западном';
l[6]:='северо-восточном';
l[7]:='юго-западном';
l[8]:='юго-восточном';
t:=s[1]; d:=1;
for i:=1 to 8 do
if s[i]<t then begin t:= s[i]; d:=i; end;
writeln('Рекомендуем строить в ',l[d] ,' направлении');
end.
10-11 классы
1. 15
2. F(a,b,c) = a&bVc
3. 31
4 Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program z4;
var a,n,i,i3:integer;
mas1:array[1..10000]of integer;
mas2:array[1..10000]of string;
l,i1,k,min,s1,s2,s3:integer;
s,r:string;
f:boolean;
begin
writeln('Введите количество чисел');
readln (n);
for i:=1 to n do begin
a:= random(10000);
if a<100 then a:=100+a;
mas1[i]:=a;
end;
min:=mas1[1];
for i:=2 to n do begin
str(mas1[i],s);
s1:=mas1[i];
if s1<min then min:=s1;
end;
{разложение числа на множители}
for i:=1 to n do begin
s2:= mas1[i];
s3:=s2;
i1:=2; k:=0; r:=''; i3:=1;
while i1<=s2 do begin
while (s2 mod i1=0)and (i1<=s2) do
begin
s2:=s2 div i1;
r:= r+inttostr(i1)+'*';
k:=k+1;
end;
inc(i1);
end;
l:=length(r);
r:=copy(r,1,l-1);
if (s3>min*2) and (k>6) then begin mas2[i3]:=inttostr(s3)+'='+r; i3:=i3+1;end;
end;
for i:=1 to i3 do writeln (mas2[i]);
end.
5 Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
program z5;
{ Дан текст. Найти все палиндромы (т.е. слова-перевертыши) в этом тексте}
Program z5;
var
b,a,k: string;
i,j,q,kol, k1: longint;
c: array[1..30] of string;
var a1:array[0..100]of boolean;
begin
{определяем простые числа}
for i:=0 to 100 do A1[i] := True;
k1:= 2;
while k1 <= 100 do begin
if A1[k1] then begin
i := 2*k1;
while i <= 100 do begin
A1[i] := False;
i := i + k1;
end;
end;
k1 := k1 + 1;
end;
A1[0] := false;
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;
if A1[kol] then Writeln ('Количество слов-перевертышей=', kol,' число простое' )
else Writeln ('Количество слов-перевертышей=', kol,' число не простое' );
end.
6. Один из вариантов реализации решения задачи
(на языке программирования Паскаль)
Program _6;
var a: array[1..100] of integer;
s: array[1..100,1..2] of integer;
i,j,k,t,n,l:integer;
begin
for i:=1 to 100 do
a[i]:=0;
readln(n);
for i:=1 to n do
for j:=1 to 2 do
readln (s[i,j]);
k:=1; l:=1;t:=1;
repeat
for i:=s[k,1] to s[k,2] do
a[i]:=a[i]+t;
t:=t+k;
k:=k+1;
until k>n;
{ for i:=1 to 100 do
write (a[i]:4);
writeln;
for i:=1 to 100 do
write (i:4);
writeln;}
while l=1 do
begin
l:=0;
for i:=1 to 99 do
if a[i]>a[i+1] then
begin
k:=a[i];
a[i]:=a[i+1];
a[i+1]:=k;
l:=1;
end;
end;
t:=a[1];
l:=1;
for i:=1 to 100 do
if a[i]<>t then
begin
l:=l+1;
t:=a[i];
end;
{for i:=1 to 100 do
write (a[i]:4);
writeln;
for i:=1 to 100 do
write (i:4);
writeln;}
writeln( l:4);
end.
Download