воскресенье, 23 декабря 2018 г.

9 класс_КР

1 Вариант. 
1. Мальчики, играя в пиратов, при­ду­ма­ли свой соб­ствен­ный шифр и пе­ре­да­ва­ли с по­мо­щью него друг другу сообщения. Ниже пред­став­ле­но одно из них. В со­об­ще­нии при­сут­ству­ют толь­ко буквы из приведённого фраг­мен­та ко­до­вой таблицы.
ПИРАТ
!!?!!!?????!

Определите, какое со­об­ще­ние за­ко­ди­ро­ва­но в строч­ке !?!!?!???. В от­ве­те за­пи­ши­те по­сле­до­ва­тель­ность букв без за­пя­тых и дру­гих зна­ков препинания.
2. В про­грам­ме «:=» обо­зна­ча­ет опе­ра­тор присваивания, знаки «+», «–», «*» и «/» – со­от­вет­ствен­но опе­ра­ции сложения, вычитания, умно­же­ния и деления. Пра­ви­ла вы­пол­не­ния опе­ра­ций и по­ря­док дей­ствий со­от­вет­ству­ет пра­ви­лам арифметики.
Определите зна­че­ние пе­ре­мен­ной b после вы­пол­не­ния алгоритма:

a := 4
b := 15
a := b-a*3
b := 24/a*4

В от­ве­те ука­жи­те одно целое число — зна­че­ние пе­ре­мен­ной b.
3. Запишите зна­че­ние переменной s, по­лу­чен­ное в ре­зуль­та­те работы сле­ду­ю­щей программы. Текст про­грам­мы приведён на трёх язы­ках программирования.

Алгоритмический языкБейсикПаскаль
алгнач
цел s, i
s := 3
нц для i от 2 до 5
s := s + 2*i
кц
вывод s
кон
DIM i, s AS INTEGERs = 3
FOR i = 2 TO 5
s = s + 2*i
NEXT i
PRINT s
Var s, i: integer;
Begin
s := 3;
For i := 2 to 5 do
s := s + 2*i;
Writeln(s);
End.
4. В таб­ли­це Dat хра­нят­ся оцен­ки (по де­ся­ти­балль­ной шкале) сту­ден­та по про­грам­ми­ро­ва­нию за 8 про­шед­ших с на­ча­ла учёбы се­мест­ров (Dat[1] — оцен­ка за пер­вый семестр, Dat[2] — за вто­рой и т. д.). Определите, что будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния сле­ду­ю­ще­го алгоритма, за­пи­сан­но­го на трёх ал­го­рит­ми­че­ских языках.

Алгоритмический языкБейсикПаскаль
алгнач
целтаб Dat[1:8]
цел к, m, term
Dat[1] := 7
Dat[2] := 7
Dat[3] := 6
Dat[4] := 8
Dat[5] := 4
Dat[6] := 5
Dat[7] := 8
Dat[8] := 7
term:=1; m := Dat[1]
нц для к от 2 до 8
если Dat[к] > m то
m:= Dat[k]
term := k
все
КЦ
вывод term
КОН
DIM Dat(8) AS INTEGER
Dat[1] = 7
Dat[2] = 7
Dat[3] = 6
Dat[4] = 8
Dat[5] = 4
Dat[6] = 5
Dat[7] = 8
Dat[8] = 7
term = 1: m = Dat(1)
FOR k = 2 TO 8
IF Dat(k) > m THEN
m = Dat(k)
term = k
END IF
NEXT k
PRINT term
END
Var k, m, term: integer;
Dat: array[1..8] of integer;
Begin
Dat[1] := 7;
Dat[2] := 7;
Dat[3] := 6;
Dat[4] := 8;
Dat[5] := 4;
Dat[6] := 5;
Dat[7] := 8;
Dat[8] := 7;
term:=1; m := Dat[1];
for k := 2 to 8 do
if Dat[k] > m then
begin
m:= Dat[k];
term := k;
end;
write(term);
End.
5. Некоторый ал­го­ритм из одной це­поч­ки символов по­лу­ча­ет новую це­поч­ку следующим образом. Сна­ча­ла вычисляется длина ис­ход­ной цепочки символов; если она чётна, то в на­ча­ло цепочки сим­во­лов добавляется цифра 1, а если нечётна, то сред­ний символ це­поч­ки удаляется. В по­лу­чен­ной цепочке сим­во­лов каждая цифра за­ме­ня­ет­ся следующей за ней циф­рой (1 — на 2, 2 — на 3 и т. д., а 9 — на 0). По­лу­чив­ша­я­ся таким об­ра­зом цепочка яв­ля­ет­ся результатом ра­бо­ты алгоритма.
Например, если ис­ход­ной была це­поч­ка 2ВМ, то ре­зуль­та­том работы ал­го­рит­ма будет це­поч­ка , а если ис­ход­ной была це­поч­ка П9, то ре­зуль­та­том работы ал­го­рит­ма будет це­поч­ка 2П0.
Дана це­поч­ка символов ГИА13. Какая це­поч­ка символов получится, если к дан­ной цепочке при­ме­нить описанный ал­го­ритм дважды (т. е. при­ме­нить алгоритм к дан­ной цепочке, а затем к ре­зуль­та­ту вновь при­ме­нить алгоритм)?
6. Выберите ОДНО из пред­ло­жен­ных ниже заданий: 20.1 или 20.2.

20.1 Исполнитель Робот умеет пе­ре­ме­щать­ся по лабиринту, на­чер­чен­но­му на плоскости, раз­би­той на клетки. Между со­сед­ни­ми (по сторонам) клет­ка­ми может сто­ять стена, через ко­то­рую Робот прой­ти не может. У Ро­бо­та есть де­вять команд. Че­ты­ре команды — это команды-приказы:

вверх вниз влево вправо
При вы­пол­не­нии любой из этих ко­манд Робот пе­ре­ме­ща­ет­ся на одну клет­ку соответственно: вверх ↑ вниз ↓, влево ← , впра­во →. Если Робот по­лу­чит команду пе­ре­дви­же­ния сквозь стену, то он разрушится. Также у Ро­бо­та есть ко­ман­да закрасить, при ко­то­рой закрашивается клетка, в ко­то­рой Робот на­хо­дит­ся в на­сто­я­щий момент.
Ещё че­ты­ре команды — это ко­ман­ды проверки условий. Эти ко­ман­ды проверяют, сво­бо­ден ли путь для Ро­бо­та в каж­дом из четырёх воз­мож­ных направлений:

сверху свободно  снизу свободно  слева свободно  спра­ва свободно
Эти ко­ман­ды можно ис­поль­зо­вать вместе с усло­ви­ем «если», име­ю­щим следующий вид:
если условие то
последовательность команд
все

Здесь условие — одна из ко­манд проверки условия. Последовательность команд — это одна или не­сколь­ко любых команд-приказов. Например, для пе­ре­дви­же­ния на одну клет­ку вправо, если спра­ва нет стенки, и за­кра­ши­ва­ния клетки можно ис­поль­зо­вать такой алгоритм:
если спра­ва свободно то
вправо
закрасить
все

В одном усло­вии можно ис­поль­зо­вать несколько ко­манд проверки условий, при­ме­няя логические связ­ки и, или, не, например:
если (справа свободно) и (не снизу свободно) то
вправо
все

Для по­вто­ре­ния последовательности ко­манд можно ис­поль­зо­вать цикл «пока», име­ю­щий следующий вид:
нц пока условие
последовательность команд
кц

Например, для дви­же­ния вправо, пока это возможно, можно ис­поль­зо­вать следующий алгоритм:
нц пока спра­ва свободно
вправо
кц


Выполните задание.

На бес­ко­неч­ном поле име­ют­ся 4 стены, рас­по­ло­жен­ные в форме прямоугольника. Длины вер­ти­каль­ных и го­ри­зон­таль­ных стен неизвестны. Робот на­хо­дит­ся в клетке, рас­по­ло­жен­ной в левом верх­нем углу прямоугольника. На ри­сун­ке указан один из воз­мож­ных способов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен буквой «Р»).
Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные с внут­рен­ней стороны пра­вой и ниж­ней стен. Робот дол­жен закрасить толь­ко клетки, удо­вле­тво­ря­ю­щие данному условию. Например, для приведённого выше ри­сун­ка Робот дол­жен закрасить сле­ду­ю­щие клетки (см. рисунок).
При ис­пол­не­нии алгоритма Робот не дол­жен разрушиться, вы­пол­не­ние алгоритма долж­но завершиться. Ко­неч­ное расположение Ро­бо­та может быть произвольным. Ал­го­ритм должен ре­шать задачу для лю­бо­го допустимого рас­по­ло­же­ния стен и лю­бо­го расположения и раз­ме­ра проходов внут­ри стен. Ал­го­ритм может быть вы­пол­нен в среде фор­маль­но­го исполнителя или за­пи­сан в тек­сто­вом редакторе. Со­хра­ни­те алгоритм в тек­сто­вом файле.


20.2 Напишите программу, ко­то­рая в по­сле­до­ва­тель­но­сти натуральных чисел опре­де­ля­ет сумму всех чисел, крат­ных 7 и окан­чи­ва­ю­щих­ся на 2. Про­грам­ма получает на вход на­ту­раль­ные числа, ко­ли­че­ство введённых чисел неизвестно, по­сле­до­ва­тель­ность чисел за­кан­чи­ва­ет­ся числом 0 (0 — при­знак окончания ввода, не вхо­дит в последовательность). Ко­ли­че­ство чисел не пре­вы­ша­ет 1000. Введённые числа не пре­вы­ша­ют 30 000. Про­грам­ма должна вы­ве­сти одно число: сумму всех чисел, крат­ных 7 и окан­чи­ва­ю­щих­ся на 2.

Пример ра­бо­ты программы:


Входные данныеВыходные данные
112
24
42
49
22
0
154
2 Вариант
1. Валя шиф­ру­ет рус­ские слова (последовательности букв), за­пи­сы­вая вме­сто каж­дой буквы её код:


АДКНОС
0110010110111000

Некоторые це­поч­ки можно рас­шиф­ро­вать не одним способом. Например, 00010101 может озна­чать не толь­ко СКА, но и СНК. Даны три ко­до­вые цепочки:

1010110
100000101
00011110001

Найдите среди них ту, ко­то­рая имеет толь­ко одну расшифровку, и за­пи­ши­те в от­ве­те рас­шиф­ро­ван­ное слово.
2. В алгоритме, за­пи­сан­ном ниже, ис­поль­зу­ют­ся пе­ре­мен­ные a и b. Сим­вол «:=» обо­зна­ча­ет опе­ра­тор присваивания, знаки «+», «-», «*» и «/» — соответственно опе­ра­ции сложения, вычитания, умно­же­ния и деления. Пра­ви­ла вы­пол­не­ния опе­ра­ций и по­ря­док дей­ствий со­от­вет­ству­ют пра­ви­лам арифметики. Опре­де­ли­те зна­че­ние пе­ре­мен­ной a после вы­пол­не­ния алгоритма:

а := 100
b := 50
b := а - b/2
а := a/5 + b/3


В от­ве­те ука­жи­те одно целое число — значение пе­ре­мен­ной a.
3. Запишите зна­че­ние переменной s, по­лу­чен­ное в ре­зуль­та­те работы сле­ду­ю­щей программы. Текст про­грам­мы приведён на трёх язы­ках программирования.

Алгоритмический языкБейсикПаскаль
алгнач
цел s, k
s := 0
нц для k от 7 до 12
s := s + 11
кц
вывод s
кон
DIM k, s AS INTEGERs = 0
FOR к = 7 TO 12
s = s + 11
NEXT k
PRINT s
Var s,k: integer;
Begin
s := 0;
for k := 7 to 12 do
s := s + 11;
writeln(s);
End.
4. Садовник, ра­бо­тая в оран­же­рее бо­та­ни­че­ско­го сада, за­пи­сы­вал в таб­ли­цу Flow ко­ли­че­ство видов растений, цве­ту­щих в те­ку­щем месяце. (Flow[1] — ко­ли­че­ство цве­ту­щих рас­те­ний в январе, Flow[2] – в фев­ра­ле и т. д.).
Определите, какое число будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей программы. Текст про­грам­мы приведён на трёх язы­ках программирования.

Алгоритмический языкБейсикПаскаль
алг
нач
цел­таб Flow[1:12]
цел k, m
Flow[1] := 25; Flow[2] := 33
Flow[3] := 45; Flow[4] := 56
Flow[5] := 78; Flow[6] := 112
Flow[7] := 120;Flow[8] := 133
Flow[9] := 97; Flow[10] := 77
Flow[11] := 59;Flow[12] := 34
m := 23
нц для k от 1 до 12
если Flow[k] < 50 то
m := m + 1
все
кц
вывод m
кон
DIM Flow(12) AS INTEGER
DIM k,m AS INTEGER
Flow(1)= 25: Flow(2)= 33
Flow(3)= 45: Flow(4) = 56
Flow(5)= 78: Flow(6)= 112
Flow(7)= 120: Flow(8)= 133
Flow(9)= 97: Flow(10)= 77
Flow(11)= 59: Flow(12)= 34
m = 23
FOR k = 1 TO 12
IF Flow(k) < 50 THEN
m = m + 1
END IF
NEXT k
PRINT m
Var k, m: integer;
Flow: array[1..12] of integer;
Begin
Flow[1] := 25; Flow[2] := 33;
Flow[3] := 45; Flow[4] := 56;
Flow[5] := 78; Flow[6] := 112;
Flow[7] := 120; Flow[8] := 133;
Flow[9] := 97; Flow[10] := 77;
Flow[11] := 59; Flow[12] := 34;
m := 23;
For k := 1 to 12 Do
If Flow[k] < 50 Then
Begin
m := m + 1;
End;
Writeln(m);
End.
5. Некоторый ал­го­ритм из одной це­поч­ки символов по­лу­ча­ет новую це­поч­ку следующим образом. Сна­ча­ла вычисляется длина ис­ход­ной цепочки символов; если она нечётна, то уда­ля­ет­ся средний сим­вол цепочки, а если чётна, то в конец це­поч­ки добавляется сим­вол В. В по­лу­чен­ной цепочке сим­во­лов каждая буква за­ме­ня­ет­ся буквой, сле­ду­ю­щей за ней в рус­ском алфавите (А — на Б, Б — на В и т. д., а Я — на А). По­лу­чив­ша­я­ся таким об­ра­зом цепочка яв­ля­ет­ся результатом ра­бо­ты алгоритма.
Например, если ис­ход­ной была це­поч­ка РУКА, то ре­зуль­та­том работы ал­го­рит­ма будет це­поч­ка СФЛБГ, а если ис­ход­ной была це­поч­ка СОН, то ре­зуль­та­том работы ал­го­рит­ма будет це­поч­ка ТО.
Дана це­поч­ка символов БОТ. Какая це­поч­ка символов получится, если к дан­ной цепочке при­ме­нить описанный ал­го­ритм дважды (т. е. при­ме­нить алгоритм к дан­ной цепочке, а затем к ре­зуль­та­ту вновь при­ме­нить алгоритм)? Рус­ский алфавит: АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ.
6. Выберите ОДНО из пред­ло­жен­ных ниже заданий: 20.1 или 20.2.

20.1 Ис­пол­ни­тель Робот умеет пе­ре­ме­щать­ся по лабиринту, на­чер­чен­но­му на плоскости, раз­би­той на клетки. Между со­сед­ни­ми (по сторонам) клет­ка­ми может сто­ять стена, через ко­то­рую Робот прой­ти не может.
У Ро­бо­та есть де­вять команд. Че­ты­ре команды — это команды-приказы:

вверх вниз влево вправо
При вы­пол­не­нии любой из этих ко­манд Робот пе­ре­ме­ща­ет­ся на одну клет­ку соответственно: вверх ↑ вниз ↓, влево ← , впра­во →. Если Робот по­лу­чит ко­ман­ду пе­ре­дви­же­ния сквозь стену, то он разрушится.
Также у Ро­бо­та есть ко­ман­да закрасить, при ко­то­рой за­кра­ши­ва­ет­ся клетка, в ко­то­рой Робот на­хо­дит­ся в на­сто­я­щий момент.
Ещё че­ты­ре команды —  это ко­ман­ды про­вер­ки условий. Эти ко­ман­ды проверяют, сво­бо­ден ли путь для Ро­бо­та в каж­дом из четырёх воз­мож­ных направлений:

сверху свободно  снизу свободно  слева свободно  спра­ва свободно
Эти ко­ман­ды можно ис­поль­зо­вать вме­сте с усло­ви­ем «если», име­ю­щим сле­ду­ю­щий вид:

если условие то
последовательность команд
все

Здесь условие — одна из ко­манд про­вер­ки условия. Последовательность команд — это одна или не­сколь­ко любых команд-приказов. Например, для пе­ре­дви­же­ния на одну клет­ку вправо, если спра­ва нет стенки, и за­кра­ши­ва­ния клет­ки можно ис­поль­зо­вать такой алгоритм:
если спра­ва сво­бод­но то
вправо
закрасить
все

В одном усло­вии можно ис­поль­зо­вать не­сколь­ко ко­манд про­вер­ки условий, при­ме­няя ло­ги­че­ские связ­ки и, или, не, например:

если (справа свободно) и (не снизу свободно) то
вправо
все

Для по­вто­ре­ния по­сле­до­ва­тель­но­сти ко­манд можно ис­поль­зо­вать цикл «пока», име­ю­щий сле­ду­ю­щий вид:

нц пока условие
последовательность команд
кц

Например, для дви­же­ния вправо, пока это возможно, можно ис­поль­зо­вать сле­ду­ю­щий алгоритм:

нц пока спра­ва сво­бод­но
вправо
кц


Выполните задание.

На бес­ко­неч­ном поле име­ет­ся го­ри­зон­таль­ная стена. Длина стены неизвестна. Робот на­хо­дит­ся свер­ху от стены в левом её конце. На ри­сун­ке при­ве­де­но рас­по­ло­же­ние Ро­бо­та от­но­си­тель­но стены (Робот обо­зна­чен бук­вой «Р»).

Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные выше стены на рас­сто­я­нии одной пу­стой клет­ки от стены, не­за­ви­си­мо от длины стены. Робот дол­жен за­кра­сить толь­ко клетки, удо­вле­тво­ря­ю­щие дан­но­му условию. Например, для приведённого выше ри­сун­ка Робот дол­жен за­кра­сить сле­ду­ю­щие клет­ки (см. рисунок).



Конечное рас­по­ло­же­ние Ро­бо­та может быть произвольным. При ис­пол­не­нии ал­го­рит­ма Робот не дол­жен разрушиться. Ал­го­ритм дол­жен ре­шать за­да­чу для про­из­воль­но­го раз­ме­ра поля и лю­бо­го до­пу­сти­мо­го рас­по­ло­же­ния стен.

Алгоритм может быть вы­пол­нен в среде фор­маль­но­го ис­пол­ни­те­ля или за­пи­сан в тек­сто­вом редакторе.







20.2 На­пи­ши­те про­грам­му для ре­ше­ния сле­ду­ю­щей задачи. Де­вя­ти­класс­ни­ки участ­во­ва­ли в вик­то­ри­не по математике. Не­об­хо­ди­мо было от­ве­тить на 20 вопросов. По­бе­ди­те­лем вик­то­ри­ны счи­та­ет­ся участник, пра­виль­но от­ве­тив­ший на наи­боль­шее ко­ли­че­ство вопросов. На сколь­ко во­про­сов по­бе­ди­тель от­ве­тил правильно? Если есть участ­ни­ки викторины, ко­то­рые не смог­ли дать пра­виль­ный ответ ни на один из вопросов, вы­ве­ди­те YES, иначе вы­ве­ди­те NO. Гарантируется, что есть участники, пра­виль­но от­ве­тив­шие хотя бы на один из вопросов. Про­грам­ма по­лу­ча­ет на вход число участ­ни­ков вик­то­ри­ны N (1 ≤ N ≤ 50), затем для каж­до­го участ­ни­ка вво­дит­ся ко­ли­че­ство вопросов, на ко­то­рые по­лу­чен пра­виль­ный ответ.

Пример ра­бо­ты программы:

Входные данныеВыходные данные
4
15
12
0
17
17
YES

Комментариев нет:

Отправить комментарий