Вариант 1
1. Исполнитель Муравей перемещается по полю, разделённому на клетки. Размер поля 8x8, строки нумеруются числами, столбцы обозначаются буквами. Муравей может выполнять команды движения:
Вверх N,
Вниз N,
Вправо N,
Влево N
(где N — целое число от 1 до 7), перемещающие исполнителя на N клеток вверх, вниз, вправо или влево соответственно.
Запись
Повтори k раз
Команда1 Команда2 КомандаЗ
Конец
означает, что последовательность команд Команда1 Команда2 КомандаЗ повторится k раз. Если на пути Муравья встречается кубик с буквой, то он перемещает его по ходу движения. Пусть, например, кубик с буквой О находится в клетке Е6. Если Муравей выполнит команды вправо 2 вверх 2, то сам окажется в клетке Е7, а кубик с буквой О в клетке Е8.
Пусть Муравей и кубики расположены так, как указано на рисунке. Муравью был дан для исполнения следующий алгоритм:
Вниз 4
Повтори 3 раз
Вправо 1 вверх 1 влево 1
Конец
Какое слово будет написано в 6 строке после выполнения этого алгоритма?
1) КОМ
2) ЛОМ
3) ДОМ
4) ТОМ
2. В программе «:=» обозначает оператор присваивания, знаки «+», «–», «*» и «/» – соответственно операции сложения, вычитания, умножения и деления. Правила выполнения операций и порядок действий соответствует правилам арифметики.
Определите значение переменной а после исполнения данного алгоритма.
a := 12
b := 8 + a / 2
a := a – b / 2
Порядок действий соответствует правилам арифметики. В ответе укажите одно число — значение переменной а.
3. Запишите значение переменной s, полученное в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Алгоритмический язык | Бейсик | Паскаль |
---|---|---|
алгнач цел s, k s := 0 нц для k от 6 до 12 s := s + 10 кц вывод s кон | DIM k, s AS INTEGERs = 0
FOR к = 6 TO 12
s = s + 10
NEXT k
PRINT s
| Var s,k: integer;
Begin
s := 0;for k := 6 to 12 do s := s + 10; writeln(s);
End.
|
4. В таблице Dat представлены данные о количестве голосов, поданных за 10 исполнителей народных песен (Dat[1] — количество голосов, поданных за первого исполнителя, Dat[2] — за второго и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Алгоритмический язык | Бейсик | Паскаль |
---|---|---|
алгнач
целтаб Dat[1:10] цел к, m
Dat[1] := 56
Dat[2] := 70
Dat[3] := 20
Dat[4] := 41
Dat[5] := 14
Dat[6] := 22
Dat[7] := 30
Dat[8] := 12
Dat[9] := 65
Dat[10] := 35
m := 0нц для к от 1 до 10 если Dat[к] > 25 то m : = m+1 все
КЦ
вывод m
КОН
|
DIM Dat(10) AS INTEGER
DIM k,m AS INTEGER
Dat(1) = 56: Dat(2) = 70
Dat(3) = 20: Dat(4) = 41
Dat(5) = 14: Dat(6) = 22
Dat(7) = 30: Dat(8) = 12
Dat(9) = 65: Dat(10) = 35
m = 0
FOR k := 1 TO 10
IF Dat(k) > 25 THEN
m =m+1
ENDIF
NEXT k
PRINT m
|
Var k, m: integer;
Dat: array[1...10] of integer;
Begin
Dat[1] := 56; Dat[2] := 70;
Dat[3] := 20; Dat[4] := 41;
Dat[5] := 14; Dat[6] := 22;
Dat[7] := 30; Dat[8] := 12;
Dat[9] := 65; Dat[10] := 35;
m := 0;for k := 1 to 10 do if Dat[k] > 25 then begin m := m+1 end; writeln(m);
End.
|
5. У исполнителя Делитель две команды, которым присвоены номера:
1. раздели на 2
2. прибавь 1
Первая из них уменьшает число на экране в 2 раза, вторая увеличивает его на 1. Исполнитель работает только с натуральными числами. Составьте алгоритм получения из числа 89 числа 24, содержащий не более 5 команд. В ответе запишите только номера команд. (Например, 21121 — это алгоритм: прибавь 1, раздели на 2, раздели на 2, прибавь 1, раздели на 2, который преобразует число 75 в 10.) Если таких алгоритмов более одного, то запишите любой из них.
6. Автомат получает на вход четырёхзначное десятичное число. По полученному числу строится новое десятичное число по следующим правилам.
1. Вычисляются два числа — сумма первой и второй цифр и сумма третьей и четвертой цифр заданного числа.
2. Полученные два числа записываются друг за другом в порядке неубывания (без разделителей).
Пример. Исходное число: 2177. Поразрядные суммы: 3, 14. Результат: 314.
Определите, сколько из приведённых ниже чисел может получиться в результате работы автомата.
1915 10 110 1516 1211 316 1519 116 1515
В ответе запишите только количество чисел.
7. Выберите ОДНО из предложенных ниже заданий: 20.1 или 20.2.
Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды — это команды-приказы:
При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑ вниз ↓, влево ← , вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.
Ещё четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:
Эти команды можно использовать вместе с условием «если», имеющим следующий вид:
если условие топоследовательность команд
все
Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов. Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм:
если справа свободно товправо
закрасить
все
В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:
если (справа свободно) и (не снизу свободно) товправо
все
Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:
нц пока условиепоследовательность команд
кц
Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:
нц пока справа свободновправо
кц
Выполните задание.
На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с верхним концом вертикальной стены. Длины стен неизвестны. В вертикальной стене есть ровно один проход, точное место прохода и его ширина неизвестны.Робот находится в клетке, расположенной непосредственно под горизонтальной стеной у её левого конца.На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно левее и правее вертикальной стены. Проход должен остаться незакрашенным. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).
При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера проходов внутри стен. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в текстовом файле.
20.2 Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, оканчивающихся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 3. Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести одно число — сумму чисел, оканчивающихся на 3.
Пример работы программы:
Входные данные | Выходные данные |
3 13 23 24 | 36 |
2 Вариант
1. Исполнитель Черепашка перемещается на экране компьютера, оставляя след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n — целое число), вызывающая передвижение Черепашки на n шагов в направлении движения; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 КомандаЗ] означает, что последовательность команд в скобках повторится k раз.
Черепашке был дан для исполнения следующий алгоритм: Повтори 5 [Вперёд 100 Направо 120] Какая фигура появится на экране?
1) правильный пятиугольник
2) незамкнутая ломаная линия
3) правильный шестиугольник
4) правильный треугольник
2. В программе «:=» обозначает оператор присваивания, знаки «+», «–», «*» и «/» – соответственно операции сложения, вычитания, умножения и деления. Правила выполнения операций и порядок действий соответствуют правилам арифметики.
Определите значение переменной a после выполнения алгоритма:
a := 4b := 6
a := ( a / 2 ) * ( b / 2 )
a := 2 * a + b
В ответе укажите одно целое число — значение переменной a.
3. Запишите значение переменной s, полученное в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Алгоритмический язык | Бейсик | Паскаль |
---|---|---|
алгнач цел s, k s := 0 нц для k от 7 до 11 s := s + 11 кц вывод s кон | DIM k, s AS INTEGERs = 0
FOR к = 7 TO 11
s = s + 11
NEXT k
PRINT s
| Var s,k: integer;
Begin
s := 0;for k := 7 to 11 do s := s + 11; writeln(s);
End.
|
4. Школьник делал лабораторную работу по физике, в ходе которой измерил 10 раз силу тока и записал показания амперметра в таблицу Tok (Tok[1] — результат первого измерения, Tok[2] — второго и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Алгоритмический язык | Бейсик | Паскаль |
---|---|---|
алгнач
целтаб Tok[1:10] цел k, m Tok[1] := 10; Tok[2] := 14 Tok[3] := 15; Tok[4] := 4 Tok[5] := 12; Tok[6] := 6 Tok[7] := 3; Tok[8] := 5 Tok[9] := 5; Tok[10] := 10 m := 0 нц для k от 1 до 10 если Tok[k] > 6 то m := m + 2 все кц вывод m кон |
DIM Tok(10) AS INTEGER
DIM k,m AS INTEGER Tok(1)= 10: Tok(2)= 14 Tok(3)= 15: Tok(4) = 4 Tok(5)= 12: Tok(6)= 6 Tok(7)= 3: Tok(8)= 5 Tok(9)= 5: Tok(10)= 10 m = 0 FOR k = 1 TO 10 IF Tok(k) > 6 THEN m = m + 2 END IF NEXT k PRINT m |
Var k, m: integer;
Tok: array[1..10] of integer; Begin Tok[1] := 10; Tok[2] := 14; Tok[3] := 15; Tok[4] := 4; Tok[5] := 12; Tok[6] := 6; Tok[7] := 3; Tok[8] := 5; Tok[9] := 5; Tok[10] := 10; m := 0; For k := 1 to 10 Do If Tok[k] > 6 Then Begin m := m + 2; End; Writeln(m); End. |
5. У исполнителя Умножатель две команды, которым присвоены номера:
1. умножь на 3
2. прибавь 2
Первая из них умножает число на 3, вторая — прибавляет к числу 2. Составьте алгоритм получения из числа 2 числа 58, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 21122 — это алгоритм:
прибавь 2
умножь на 3
умножь на 3
прибавь 2
прибавь 2,
который преобразует число 1 в 31).
Если таких алгоритмов более одного, то запишите любой из них.
6. Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов; если она чётна, то удаляется последний символ цепочки, а если нечётна, то в начало цепочки добавляется символ С. В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите (А — на Б, Б — на В и т. д., а Я — на А). Получившаяся таким образом цепочка является результатом работы алгоритма.
Например, если исходной была цепочка НОГА, то результатом работы алгоритма будет цепочка ОПД, а если исходной была цепочка ТОН, то результатом работы алгоритма будет цепочка ТУПО.
Дана цепочка символов ПЛОТ. Какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды (т. е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)? Русский алфавит: АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ.
7. Выберите ОДНО из предложенных ниже заданий: 20.1 или 20.2.
Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды — это команды-приказы:
При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑ вниз ↓, влево ← , вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.
Ещё четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:
Эти команды можно использовать вместе с условием «если», имеющим следующий вид:
если условие топоследовательность команд
все
Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов. Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм:
если справа свободно товправо
закрасить
все
В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:
если (справа свободно) и (не снизу свободно) товправо
все
Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:
нц пока условиепоследовательность команд
кц
Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:
нц пока справа свободновправо
кц
Выполните задание.
На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В горизонтальной стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной рядом с вертикальной стеной справа от её верхнего конца. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно выше и ниже горизонтальной стены. Проход должен остаться незакрашенным. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).
При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера проходов внутри стен. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена.
20.2 Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — максимальное число, оканчивающееся на 3.
Пример работы программы:
Входные данные | Выходные данные |
3 13 23 3 | 23 |
Комментариев нет:
Отправить комментарий