Условия и решение
задач по информатике Демо 2005
Успеха при сдаче экзамена!
А1 |
Считая, что каждый
символ кодируется одним байтом, оцените информационный объем следующего
предложения из пушкинского четверостишия:
Певец-Давид был
ростом мал, Но повалил же Голиафа!
1) |
400 бит |
2) |
50 бит |
3) |
400 байт |
4) |
5 байт |
Решение: используем алфавитный подход кодирования информации.
Считаем все символы (буквы , знаки, пробелы). Получаем
40 – букв
3 – знака препинания
7 – пробелов
Итого 50 знаков по 1 байту – 8 бит
I = 50*8 = 400 бит
Верный ответ 1)
А2 |
Сколько существует различных последовательностей из символов «плюс» и «минус», длиной ровно в пять символов?
1) |
64 |
2) |
50 |
3) |
32 |
4) |
20 |
Решение: На каждой позиции два варианта минус или плюс.
Всего вариантов 25 = 32.
Верный ответ 3)
А3 |
Обычный дорожный светофор без дополнительных секций подает шесть видов сигналов (непрерывные красный, желтый и зеленый, мигающие желтый и зеленый, красный и желтый одновременно). Электронное устройство управления светофором последовательно воспроизводит записанные сигналы. Подряд записано 100 сигналов светофора. В байтах данный информационный объем составляет
1) |
37 |
2) |
38 |
3) |
50 |
4) |
100 |
Решение: Найдём информационный объём одного сигнала. 22 < 6 < 23. Значит один сигнал имеет объём 3 бита. Сигналов 100. 100*3 = 300 бит=300/8 байт=37,7байт=38байт.
Верный ответ 2)
А4 |
Как представлено число 8310 в двоичной системе счисления?
1) |
10010112 |
2) |
11001012 |
3) |
10100112 |
4) |
1010012 |
Решение: делим число 83 на 2, потом полученное частное на 2 и т.д.
Получим 83=2*41 + 1= 2*(2*20+1)+1=2*(2*(2*10)+1)+1=2*(2*(2*(2*5))+1)+1=
2*(2*(2*(2*(2*2+1))+1)+1=26+24+2+1=1*26
+ 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20
= =10100112
Верный ответ 3).
А5 |
Вычислите сумму двоичных чисел x и y, если
x=10101012
y=10100112
1) |
101000102 |
2) |
101010002 |
3) |
101001002 |
4) |
101110002 |
Решение: Складываем также как натуральные числа в начальных классах, учитывая, 12 + 12 = 102, 12 + 02 = 12, 02 + 02 = 02
10101012
10100112
101010002
Верный ответ 2).
А6 |
Фрагмент блок-схемы
представляет алгоритм, который содержит две команды ветвления.
1) |
команду ветвления в сокращенной форме, в которую вложена команда ветвления в полной форме |
2) |
две команды ветвления в полной форме, одна из которой вложена в другую |
3) |
две команды ветвления в сокращенной форме, одна из которой вложена в другую |
4) |
команду ветвления в полной форме, в которую вложена команда ветвления в сокращенной форме |
Решение: в полной форме два варианта(да или нет), в данном случае так и есть.
Верный ответ 2).
А7 |
Определите значение целочисленных переменных a и b после выполнения фрагмента программы (ниже представлена одна и та же программа, записанная на разных языках программирования):
Бейсик |
Паскаль |
Алгоритмический |
a=42 \ — стандартная операция,
вычисляющая |
a:=42; b:=14; стандартная операция, вычисляющая результат деления нацело первого аргумента на второй} |
a:=42 b:=14 стандартная функция, вычисляющая результат деления нацело первого аргумента на второй| |
1) |
a =
42, b = 14 |
2) |
a =
1, b = 42 |
3) |
a = 0,
b = 588 |
4) |
a =
14, b = 42 |
Будем определять на Бейсик
a
= a\b = 42\14=3
b = a*b = 3*14 = 42 – окончательный результат
a = b\a = 42\3 = 14 - окончательный результат
Верный ответ 4).
А8 |
Все элементы двумерного массива A размером 10х10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы (ниже представлена одна и та же программа, записанная на разных языках программирования).
Бейсик |
Паскаль |
Алгоритмический |
FOR
n=1 TO 4 FOR
k=n TO 4 A(n,k)=A(n,k)+1 A(k,n)=A(k,n)+1 NEXT
k NEXT
n |
for
n:=1 to 4 do for k:=n to 4 do begin A[n,k]:=A[n,
k]+1; A[k,n]:=A[k,
n]+1; end |
нц для n от 1 до 4 нц для k от n до 4 A[n, k]:=A[n, k]+1 A[k, n]:=A[k, n]+1 кц кц |
Сколько элементов массива в результате будут равны 1?
1) |
0 |
2) |
16 |
3) |
12 |
4) |
4 |
Решение: В результате цикла, значение 1 получат элементы массива A[1,1], A[1,2], A[1,3], A[1,4], A[2,2], A[2,3], A[2,4], A[3,3], A[3,4], A[4,4] после выполнения A[n,k]:=A[n, k]+1;
И после выполнения A[k,n]:=A[k, n]+1; значения 1 будут добавлены к A[1,1], A[2,1], A[3,1], A[4,1], A[2,2], A[3,2], A[4,2], A[3,3], A[4,3], A[4,4], но значение 1 получат те элементы, у которых был значением 0, а у одинаковых с элементами первого ряда будет 2. Сосчитаем все различные элементы. Это все, кроме A[1,1], A[2,2], A[3,3], A[4,4]. Таких элементов 12.
Верный ответ 3).
А9 |
Для какого числа X истинно высказывание
X>1 /\ ((X<5) -> (X<3))
1) |
1 |
2) |
2 |
3) |
3 |
4) |
4 |
Решение: Здесь Выясняем истинность конъюнкции. Конъюнкция двух высказываний истинна, когда истинны оба высказывания. Высказывание X>1 истинно в случаях 2)б, 3), 4), потому что 2, 3, 4 больше чем 1.
Высказывание ((X<5) -> (X<3)) является импликацией, а импликация ложна только тогда, когда посылка истинна, а следствие ложно. В случаях 2), 3), 4) все значения меньше 5, поэтому посылка истинна всегда, значит для истинности импликации необходимо, чтобы было истинно и следствие, из этих значений только 2 < 3 истинно. Это вариант 2).
Верный ответ 2).
А10 |
Укажите, какое логическое выражение равносильно
выражению
¬ (¬А /\ B)
1) |
A \/
¬B |
2) |
¬A
\/ B |
3) |
B /\
¬A |
4) |
A /\
¬B |
Решение: Используя закон де Моргана можно записать ¬ (¬А /\ B) = ¬ (¬А) \/¬( B)=А\/¬B.
Верный ответ 1).
А11 |
Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z.
Дан фрагмент таблицы истинности выражения F:
X |
Y |
Z |
F |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
Чему равно F?
1) |
X/\Y/\Z
|
2) |
¬X\/¬Y\/Z
|
3) |
X/\Y/\¬Z
|
4) |
¬X/\¬Y/\¬Z |
Проверим первую строчку таблицы для 1) 0/\0/\0 = 1 – ложно. Не подходит.
Проверим вторую строчку для 2) ¬0\/¬0\/Z0 = 1\/1\/0 = 1 – истинно , значит проверяем вторую строчку.
¬0\/¬0\/1 = 1\/1\/1 = 0 – ложно. Не подходит.
Проверим для 3) , первую 0/\0/\¬0 = 0/\0/\1 = 1 – ложно. Не вариант.
Осталось 4)
Для первой строчки ¬0/\¬0/\¬0 =1/\1/\1 = 1 – истинно
Для второй строчки ¬0/\¬0/\¬1 = 1/\1/\0 = 0 – истинно
Для третьей строчки ¬0/\¬1/\¬0 = 1/\0/\1 = 0 – истинно
Верный ответ 4).
А12 |
В таблице приведена стоимость перевозок между соседними железнодорожными станциями. Укажите схему, соответствующую таблице.
|
A |
B |
C |
D |
A |
|
4 |
|
5 |
B |
4 |
|
3 |
6 |
C |
|
3 |
|
|
D |
5 |
6 |
|
|
1) |
2) |
3) |
4) |
|
|
|
|
Решение: АВ =4 во всех схемах. AD = 5, только в схеме 4). Проверим для неё ВС = 3 – соответствует, BD = 6 тоже соответствуют.
Верный ответ 4).
А13 |
Для 5 букв латинского алфавита заданы их двоичные коды (для некоторых букв ‑ из двух бит, для некоторых - из трех). Эти коды представлены в таблице:
A |
B |
C |
D |
E |
000 |
01 |
100 |
10 |
011 |
Определить, какой набор букв закодирован двоичной строкой 0110100011000
1) |
EBCEA |
2) |
BDDEA |
3) |
BDCEA |
4) |
EBAEA |
Решение: Пусть первый код 01 – В, Второй код – 10 – D или 101 – такого нет, значит второй 10,третий код может быть или 10 или 100, если третий 10, то четвёртый 00 или 001, но таких нет , выбираем третий 100 – С, то есть начало набора BDC, четвёртый E – 011, пятый А – 000 . Всё подходит.
Верный ответ 3).
А14 |
Для составления цепочек используются бусины, помеченные буквами: A, B, C, D, E. На первом месте в цепочке стоит одна из бусин A, C, E. На втором – любая гласная, если первая буква согласная, и любая согласная, если первая гласная. На третьем месте – одна из бусин C, D, E, не стоящая в цепочке на первом месте.
Какая из перечисленных цепочек создана по этому правилу?
1) |
CBE |
2) |
ADD |
3) |
ECE |
4) |
EAD |
E
Решение: На первом A, C, E – подходят все варианты. На втором может быть A, E, если первая B, C, D – такого варианта нет. На втором может быть B, C, D, если первая A, E, такой вариант 2) ADD, ECE . На третьем C, D, E не стоящая на первом. Такой случай 2).
Верный ответ 2).
А15 |
Какие из перечисленных ниже устройств используются для ввода информации в компьютер?
A) |
Джойстик |
Б) |
Динамики |
В) |
Клавиатура |
Г) |
Мышь |
Д) |
Плоттер |
Е) |
Принтер |
Ж) |
Сканер |
З) |
Стример |
1) |
АВГДЖ |
2) |
АВГЖЗ |
3) |
БВГЖЗ |
4) |
ВГЕЖЗ |
Решение: Для ввода информации используются те, которые дают команды или вводят текст, изображения, звук и т.д.
Это АВГЖЗ.
Верный ответ 2).
А16 |
Ниже перечислено 8 различных программных средств. Какие из них являются операционными системами? (Выберите ответ, в котором перечислены только операционные системы)
A) |
Acrobat
Reader |
Б) |
ASP Linux |
В) |
IBM PC DOS |
Г) |
Macromedia
Dreamweaver |
Д) |
Microsoft
Office |
Е) |
Microsoft
Windows |
Ж) |
Norton SystemWorks |
З) |
RealOne
Player |
1) |
АВЕЗ |
2) |
БВЕ |
3) |
ВДЕ |
4) |
ЕЖ |
Решение: По названиям: АГДЖЗ – программы
БВЕ – операционные системы.
Верный ответ 2).
А17 |
В некотором каталоге хранился файл Задача5. После того, как в этом каталоге создали подкаталог и переместили в созданный подкаталог файл Задача5, полное имя файла стало Е:\Класс9\Физика\Задачник\Задача5. Каково было полное имя этого файла до перемещения?
1) |
Е:\Физика\Задачник\Задача5 |
2) |
Е:\Физика\Задача5 |
3) |
Е:\Класс9\Задачник\Задача5 |
4) |
Е:\Класс9\Физика\Задача5 |
Решение:
Е:\Класс9\Физика\Задача5.
Создали подкаталог Задачник
Верный ответ 4).
А18 |
Сколько записей в нижеследующем фрагменте турнирной таблицы удовлетворяют условию «Место <=4 И (Н>2 ИЛИ О>6)»?
Место |
Участник |
В |
Н |
П |
О |
1 |
Силин |
5 |
3 |
1 |
6 ½ |
2 |
Клеменс |
6 |
0 |
3 |
6 |
3 |
Холево |
5 |
1 |
4 |
5 ½ |
4 |
Яшвили |
3 |
5 |
1 |
5 ½ |
5 |
Бергер |
3 |
3 |
3 |
4 ½ |
6 |
Численко |
3 |
2 |
4 |
4 |
1) |
5 |
2) |
2 |
3) |
3 |
4) |
4 |
Решение: Место <=4 ={ 1,2,3,4}; H>2 = {1,4,5}; О>6 = {1}; => (Н>2 ИЛИ О>6) ={1,4,5} => Место <=4 И (Н>2 ИЛИ О>6) ={ 1,2,3,4}Ç{1,4,5} = {1,4}. Такие записи 1 и 4.
Верный ответ 2).
А19 |
Стандартный алгоритм вычисления среднего арифметического элементов числового массива работает на массиве из миллиона элементов 0,5 сек. Оцените время работы того же алгоритма на том же компьютере, если длина массива 3 миллиона.
1) |
1 сек. |
2) |
1,5 сек. |
3) |
3 сек. |
4) |
4,5 сек. |
Решение: обычная арифметика 3*0,5 = 1,5.
Верный ответ 2).
А20 |
Для хранения растрового изображения размером 128x128 пикселей отвели 4 килобайта памяти. Каково максимально возможное число цветов в палитре изображения?
1) |
8 |
2) |
2 |
3) |
16 |
4) |
4 |
Решение: Объём изображения Ii = 128*128*I (I - глубина цвета) Ii = 4*1024*8 бит = 32768 бит => I = 32768/128*128 = 2 бит
Количество цветов N = 2I = 22 = 4.
Верный ответ 4).
А21 |
В ячейке C2 записана формула $E$3+D2. Какой вид приобретет формула, после того как ячейку C2 скопируют в ячейку B1?
Примечание: знак $ используется для обозначения абсолютной адресации.
1) |
$E$3+C1 |
2) |
$D$3+D2 |
3) |
$E$3+E3 |
4) |
$F$4+D2 |
Решение: Запись такого вида $E$3 не меняется, а В1 будет ссылаться на С1.
Верный ответ 1).
А22 |
Дан фрагмент электронной таблицы:
|
А |
В |
1 |
=B1+1 |
1 |
2 |
=A1+2 |
2 |
3 |
=B2-1 |
|
4 |
=A3 |
|
После выполнения вычислений, была построена диаграмма по значениям диапазона ячеек A1:A4. Укажите получившуюся диаграмму.
1) |
2) |
3) |
4) |
Решение: В ячейках A1, A2, A3, A4 будут значения 2, 4, 1, 1.
Верный ответ 2).
А23 |
Исполнитель Черепашка перемещается на экране компьютера, оставляя след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существуют две команды:
Вперед n, где n ‑ целое число, вызывающая передвижение черепашки на n шагов в направлении движения.
Направо m, где m ‑ целое число, вызывающая изменение направления движения на m градусов по часовой стрелке.
Запись Повтори 5 [Команда1 Команда2 ]означает, что последовательность команд в скобках повторится 5 раз.
Черепашке был дан для исполнения следующий алгоритм:
Повтори 5
[Вперед 10 Направо 72]
Какая фигура появится на экране?
1) |
Незамкнутая ломаная линия |
2) |
Правильный треугольник |
3) |
Квадрат |
4) |
Правильный пятиугольник |
Внешний угол правильного пятиугольника 72° , длины сторон одинаковые.
Правильный ответ 4)
А24 |
Для каждого файла в таблицу записывался исходный размер файла (поле РАЗМЕР), а также размеры архивов, полученных после применения к файлу различных архиваторов: программы WinZIP (поле ZIP), программы WinRAR (поле RAR) и программы StuffIt (поле SIT). Вот начало этой таблицы (все размеры в таблице - в килобайтах):
Имя файла |
РАЗМЕР |
ZIP |
RAR |
SIT |
Аквариум.mw2 |
296 |
124 |
88 |
92 |
Муар.mw2 |
932 |
24 |
20 |
28 |
Нужно отобрать файлы, исходный размер которых больше 1 мегабайта и размер которых при использовании WinZip уменьшился более чем в 2 раза. Для этого достаточно найти в таблице записи, удовлетворяющие условию:
1) |
(РАЗМЕР > 100) ИЛИ (РАЗМЕР / ZIP > 2) |
2) |
(РАЗМЕР > 100) И (ZIP < 50) |
3) |
(РАЗМЕР > 1024) И (РАЗМЕР / ZIP > 2) |
4) |
(РАЗМЕР > 1024) ИЛИ (РАЗМЕР / ZIP > 2) |
Решение: Нужно найти (РАЗМЕР>1мегабайта)И(РАЗМЕР/ZIP>2)=> (РАЗМЕР>1024 килобайт)И(РАЗМЕР/ZIP>2).
Верный ответ 3).
B1 |
Укажите через запятую в порядке возрастания все
основания систем счисления, в которых запись числа 23 оканчивается на 2.
Решение: 2310=101112=2123=1134=435=356=327=278=259=2111=1(11)12=1(10)13=1915=1815=1716=1617=1518=1419=1320=1221=1122=
=1023=1024=…..
Оканчиваются на 2 системе счисления 3, 7,21.
Записать: 3, 7, 21.
B2 |
Сколько различных решений имеет уравнение
(K/\L/\M)\/(¬L/\¬M/\N) = 1
где K, L, M, N - логические переменные?
В ответе не нужно перечислять все различные наборы значений K, L, M и N, при которых выполнено данное равенство. В качестве ответа вам нужно указать только количество таких наборов.
Решение:
Дизъюнкция двух высказываний истинна, если истинно хотя бы одно из высказываний.
1.Высказывание
K/\L/\M истинно, а высказывание ¬L/\¬M/\N ложно
2.Высказывание K/\L/\M ложно, а
высказывание ¬L/\¬M/\N истинно
3.Высказывание K/\L/\M истинно, и высказывание ¬L/\¬M/\N истинно
Вариант1.
Высказывание K/\L/\M истинно, когда K =L=M=1 – один вариант по определению конъюнкции.
Высказывание ¬L/\¬M/\N = 0/\0 /\N – ложно при N = 0 и при N=1 – 2 возможности. Вариант 3. не выполняется никогда.
Вариант 2. Высказывание K/\L/\M ложно (K=0 или L=0 или M=0). Посмотрим, когда будет высказывание ¬L/\¬M/\N истинно – (L=0,M=0,N=1). В этом случае K/\L/\M ложно при К=1 и при K=0 – 2 возможности.
Значит количество наборов равно 4.
Записать: Уравнение имеет 4 решения.
B3 |
У исполнителя Утроитель две команды, которым присвоены номера:
1. вычти 1
2. умножь
на 3
Первая из них уменьшает число на экране на 1, вторая – увеличивает его в три раза.
Запишите порядок команд в программе получения из числа 3 числа 16, содержащей не более 5 команд, указывая лишь номера команд.
(Например,
программа 21211 это программа)
умножь на 3
вычти 1
умножь на 3
вычти 1
вычти 1
которая преобразует число 1 в 4.)
Решение: Например (3-1)*3*3-1-1=2*3*3-2=16. Пять команд.
12211.
Записать ответ: 12211.
B4 |
Мама, прибежавшая на звон разбившейся вазы, застала всех трех своих сыновей в совершенно невинных позах: Саша, Ваня и Коля делали вид, что происшедшее к ним не относится. Однако футбольный мяч среди осколков явно говорил об обратном.
‑ Кто это сделал? ‑ спросила мама.
‑ Коля не бил по мячу, ‑ сказал Саша. ‑ Это сделал Ваня.
Ваня ответил: ‑
Разбил Коля, Саша не играл в футбол дома.
‑ Так я и знала, что вы друг на дружку сваливать будете, ‑
рассердилась мама. ‑ Ну, а ты что скажешь? ‑ спросила она Колю.
‑ Не сердись, мамочка! Я знаю, что Ваня не мог этого сделать. А я сегодня
еще не сделал уроки, ‑ сказал Коля.
Оказалось, что один из мальчиков оба раза солгал, а
двое в каждом из своих заявлений говорили правду.
Кто разбил вазу?
Решение: Решим средствами алгебры логики.
Введём буквенные обозначения
V – «Разбил Коля»
B – «Это сделал Ваня»
A – «Разбил Саша»
Можно высказывания записать формулами:
¬V*B=1
V*¬A=1
¬B=1
По условию задачи два мальчика оба раза сказали правду, а один оба раза сказал неправду. Поэтому среди записанных формул две истинны, а одна ложна. Мы не знаем, какая формула ложна, но можно утверждать, что если образовать из формул парные дизъюнкции, то, поскольку в дизъюнкцию входит одна истинная формула то дизъюнкция будет истинна. Запишем их.
¬V*B + ¬A*V=1 (1)
V*¬A + ¬B =1 (2)
¬V*B + ¬B = 1 (3)
Умножим уравнение (1) на (2)
(¬V*B + ¬A*V)*( V*¬A
+ ¬B)= ¬V*B* V*¬A + ¬A*V *V*¬A+ ¬V*B* ¬B
+¬A*V*¬B= V*¬A+¬A*V*¬B= V*¬A(1+¬B)= =V*¬A
Умножим данное выражение на (3)
(¬V*B + ¬B)* V*¬A=¬V*B* V*¬A+¬B* V*¬A=¬B* V*¬A.
Из последнего выражения делаем вывод.
Записать: разбил вазу Коля.
B5 |
Сколько секунд потребуется модему,
передающему сообщения со скоростью 28800 бит/с, чтобы передать цветное
растровое изображение размером 640х480 пикселей, при условии, что цвет каждого
пикселя кодируется тремя байтами?
Решение: Определим объём изображения Ii = 640*480*3*8 = 7372800 бит.
Определим время передачи изображения. t = 7372800 бит : 28800 бит/с = 256 c.
Записать ответ 256.
B6 |
Записано 7 строк, каждая имеет свой номер – от «0»- до «6»-й.
В начальный момент в строке записана цифра 0 (ноль). На каждом из последующих 6 шагов выполняется следующая операция: в очередную строку записывается удвоенная предыдущая строка, а в конец строки приписывается очередная цифра (на i-м шаге приписывается цифра i).
Для удобства в скобках пишется номер строки (начиная с
0).
Ниже показаны первые строки, сформированные по описанному правилу:
(0) 0
(1) 001
(2) 0010012
(3) 001001200100123
Какая цифра стоит в последней строке на 123-м месте
(считая слева направо)?
Решение: В первой строке 3 элемента.
Во второй строке (3*2+1) = 7 – последняя цифра 2
(3) 7*2+1 = 15– последняя цифра 3
(4) 15*2+1=31– последняя цифра 4
(5) 31*2+1=63– последняя цифра 5
(6) 63*2+1 =127– последняя цифра 6
126 – 5 , 125 – 4, 124 – 3, 123 – 2.
Записать ответ 2.
B7 |
Доступ к файлу http.txt, находящемуся на сервере www.net осуществляется по протоколу ftp. В таблице фрагменты адреса файла закодированы буквами от А до Ж. Запишите последовательность этих букв, кодирующую адрес указанного файла.
A |
:// |
Б |
http |
В |
ftp |
Г |
.net |
Д |
.txt |
Е |
/ |
Ж |
www |
Решение: ftp:// www.net/ http.txt
Записать ответ: ВАЖГЕБД
B8 |
В таблице приведены запросы к поисковому серверу. Расположите обозначения запросов в порядке возрастания количества страниц, которые найдет поисковый сервер по каждому запросу.
Для обозначения логической операции “ИЛИ” в запросе используется символ |, а для логической операции “И” - &.
A |
чемпионы | (бег & плавание) |
Б |
чемпионы & плавание |
В |
чемпионы | бег | плавание |
Г |
чемпионы & Европа & бег & плавание |
Решение: Г(чемпионы & Европа & бег & плавание) – Б (чемпионы & плавание) – А (чемпионы | (бег & плавание)) – В (чемпионы | бег | плавание)
Записать ответ: ГБАВ
C1 |
Рассматривается стандартная шахматная доска размером 8х8. Примем, что i – номер вертикали (может принимать значения от 1 до 8), j – номер горизонтали (также может принимать значения от 1 до 8). В левом нижнем углу, т.е. на поле i =1, j=1 (это поле черного цвета) стоит черный король. Напомним, что король может ходить на 1 клетку в любом направлении (по горизонтали, вертикали или диагонали). В правом нижнем углу, т.е. на поле i =8, j=1 (это поле белого цвета) стоит белый король. Введены обозначения: P(i,j) ‑ минимальное число ходов, за которое черный король может попасть на поле (i,j); V(i,j) ‑ минимальное число ходов, за которое белый король может попасть на поле (i,j).
Программист написал программу, в которой требовалось определить все такие поля (i,j), для которых P(i,j) = V(i,j), и выдать на экран соответствующие значения i,j (текст программы приведен ниже).
1) Выдаст ли программа,
написанная программистом, поле, для которого
i=4, j=5 ?
2) Указать все из перечисленных ниже полей, которые удовлетворяют постановке задачи, т.е. для таких полей должно быть выполнено P(i,j) = V(i,j)
(i=1, j=8), (i=2, j=8), (i=1, j=7), (i=5, j=5), (i=8, j=6)
3) Видно, что программист допустил ошибку в программе. Укажите, какую доработку программы нужно провести, чтобы она соответствовала постановке задачи (такая доработка может быть проведена неединственным образом – годится любой правильный вариант доработки)
Программа на языке Паскаль |
Программа на языке Бейсик |
VAR i,j: integer; BEGIN writeln('искомые поля'); for j:=5 to 8 do for i:=1 to 8 do begin if (i=9-j) OR (i=j) then writeln('i=',i, 'j=',j); end; END. |
PRINT "Искомые поля" FOR J=5 TO 8 FOR I=1 TO 8 IF (I=9-J) OR (I=J) THEN
PRINT "I="; I
PRINT "J="; J ENDIF NEXT I NEXT J END |
Элементы ответа:
1) Поле i=5, j=4 будет выдано приведенной программой
(т.к. i+j=9)
2) (i=1, j=8), (i=2,
j=8), (i=5, j=5) – эти поля удовлетворяют постановке задачи (ответ очевиден,
если нарисовать шахматную доску 8х8 и королей в двух нижних углах)
3) Возможный (самый короткий) способ доработки:
вместо if (i=9-j) OR (i=j)
проверять условие
if (i>=9-j) AND (i<=j)
C2 |
Квадратный массив А размера NxN (где N=5) в программе сначала обнуляется, а затем производится некоторая дальнейшая обработка в соответствии с программой. Текст программы приведен ниже.
Требуется выяснить состояние массива А по окончании работы программы, а именно:
1) Какое число будет стоять в элементе массива А[1,2] ?
2) Сколько всего ненулевых чисел будет в массиве А ?
а также ответить на следующий вопрос:
3) В программе после начального обнуления массив А заполняется с помощью следующих операторов
i:=1; j:=1; A[1,1]:=1; k:=1; while (i<N) OR (j<N) do
begin if (i+j) mod 2 = 0 then
j:=j+1 else i:=i+1;
k:= -k;
A[i,j]:=k;
end;
На какой более короткий фрагмент программы можно заменить приведенную часть программы, обеспечивая такое же заполнение массива А?
Программа на языке Паскаль |
Программа на языке Бейсик |
CONST N=5; VAR i, j: integer;{i - строка j - столбец}
k: integer; A: array[1..N,1..N] of integer; BEGIN for i:=1 to N do for
j:=1 to N do A[i,j]:=0; i:=1; j:=1; A[1,1]:=1; k:=1; while (i<N) OR
(j<N) do begin if (i+j) mod 2 = 0 then
j:=j+1 else i:=i+1; k:=
-k; A[i,j]:=k; end; END. |
N=5 DIM A(N, N) AS INTEGER FOR I=1 TO N FOR J=1 TO N A (I, J) = 0 NEXT J NEXT I I=1 J=1 A(1, 1)=1 K=1 WHILE (I<N) OR (J<N) IF (I+J) MOD 2 = 0 THEN J=J+1 ELSE I=I+1 ENDIF K=-K A(I,J)=K WEND END |
Элементы ответа:
1) A[1,2] = -1
2) В массиве А будет 9 ненулевых элементов
(5 значений
"1" по главной диагонали и 4 значения "-1" над главной
диагональю)
3) Доработку можно провести следующим образом:
for i:=1 to N do
begin A[i,i]:=1; if i<N then A[i,i+1]:=-1;
end;
C3 |
Опишите на русском языке или одном из
языков программирования алгоритм подсчета числа элементов равных максимальному в числовом массиве из 30 элементов.
Введем целочисленную переменную Max, в которую будем заносить максимальный из просмотренных элементов массива, и
целочисленную переменную Num,
в которой будем подсчитывать число повторений максимального элемента в
просмотренной части массива. В цикле до конца массива: сравниваем очередной
элемент массива с текущим значением переменной Max, если он больше, то заносим его
значение в Max и
устанавливаем счетчик Num
в 1, если они равны, то увеличиваем счетчик Num на 1. По окончании цикла
переменная Num
содержит число повторений максимального элемента массива. Пример правильной и эффективной программы (на основе
алгоритма, использующего однократный проход по массиву): |
||
На языке Паскаль |
На языке Бейсик |
|
Const
N=30; Var a:array[1..N] of integer; Max, Num, i:
integer; Begin Max:=a[1]; Num:=1; For i:=2 to N do Begin If a[i]>Max
then begin Max:=a[i]; Num:=1; end else if a[i]=Max
then Num:=Num+1; End; Writeln(Num); End. |
N=30 DIM i, Max, Num, a(N) AS INTEGER Max=a(1) Num=1 FOR i = 2 TO N IF a(i)>Max THEN
Max=a(i) Num=1 ELSE IF a(i)=Max
THEN Num=Num+1 ENDIF ENDIF NEXT i PRINT Num END |
C4 |
Два игрока играют в следующую игру. Перед ними лежат
две кучки камней, в первой из которых 4, а во второй – 3 камня.
У каждого игрока неограниченно много камней. Игроки ходят по очереди.
Ход состоит в том, что игрок или увеличивает в 3 раза число камней в какой-то
куче или добавляет 2 камня в какую-то кучу. Выигрывает игрок, после хода которого общее число камней в двух кучах становится не
менее 24 камней. Кто выигрывает при безошибочной игре обоих игроков – игрок,
делающий первый ход или игрок, делающий второй ход? Каким должен быть первый
ход выигрывающего игрока? Ответ обоснуйте.
Выигрывает второй игрок. Для доказательства рассмотрим неполное дерево игры.
Начальная позиция
1-й ход первого игрока
Выигрывающий ход второго игрока
Пояснение
6,3
6,5
второй игрок выигрывает после любого ответа первого игрока, утроив число камней в самой большой куче
4,3
4,5
6,5
-"-
12,3
36,3
выигрыш второго игрока
4, 9
4,27
-"-
Из таблицы видно, что при любом первом ходе первого игрока у второго игрока имеется выигрывающий ход.
C5 |
На вход программе подаются 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2004 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о месяце (месяцах), среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.
Программа читает входные
данные, сразу подсчитывая в массиве, хранящем 12 вещественных чисел, сумму
температур в каждом из месяцев, одновременно суммируя все температуры в году.
Затем с использованием этого массива ищется минимальное отклонение
среднемесячной температуры от среднегодовой. За
дополнительный просмотр этого массива распечатывается информация об искомых
месяцах. Баллы начисляются только за программу, которая решает задачу хотя бы
для частного случая (например, месяц с минимальным отклонением единственен). |
|
Указания по оцениванию |
|
Программа работает верно,
т.е. определяет все месяцы, в которых среднемесячная температура минимально
отклоняется от среднегодовой, не содержит вложенных циклов, в тексте
программы не анализируется каждый месяц в отдельности. Допускается наличие в
тексте программы одной пунктуационной ошибки. Пример правильной и эффективной
программы на языке Паскаль: Const d:array[1..12] of integer = (31,29,31,30,31,30,31,31,30,31,30,31); var
tm:array[1..12] of real; m:1..12; data:string[5]; min,ty,t:real; i:integer; begin for i:=1 to 12 do tm[i]:=0; ty:=0;{среднегодовая температура} for
i:=1 to 366 do begin readln(data,t); {вычисляем номер месяца} m:=(ord(data[4])-ord('0'))*10 +ord(data[5])-ord('0'); tm[m]:=tm[m]+t; ty:=ty+t; end; for i:=1 to 12 do tm[i]:=tm[i]/d[i]; ty:=ty/366; min:=100; for i:=1 to 12 do if abs(tm[i]-ty)<min then min:=abs(tm[i]-ty); writeln('Среднегодовая температура = ',ty:0:2); for
i:=1 to 12 do if abs(abs(tm[i]-ty)-min)<0.0001 then writeln(i,' ',tm[i]:0:2,' ',abs(tm[i]-ty):0:2); readln end. Пример правильной и эффективной
программы на языке Бейсик: DATA
31,29,31,30,31,30,31,31,30,31,30,31 DIM i, m, d(12) AS INTEGER DIM tm(12) DIM dat AS STRING *5 FOR i = 1 TO 12 tm(i) = 0 READ d(i) NEXT i Ty = 0 'ty – среднегодовая температура FOR i = 1 TO 366 INPUT dat, t 'Вычисляем номер месяца m=(ASC(MID$(dat,4,1))-ASC("0"))*10+ ASC(MID$(dat,5,1))-ASC("0") tm(m) = tm(m) + t ty = ty + t NEXT i FOR i = 1 TO 12 tm(i) = tm(i) / d(i) NEXT i Ty
= ty / 366 Min = 100 FOR i = 1 TO 12 IF ABS(tm(i) - ty) < min THEN min = ABS(tm(i)
- ty) NEXT i PRINT "Среднегодовая температура =
"; PRINT USING
"##.##"; ty FOR i = 1 TO 12 IF ABS(ABS(tm(i)
- ty) - min) < .0001 THEN PRINT i; PRINT USING "##.## "; tm(i);
ABS(tm(i) - ty) END IF NEXT i END |
|
Задания С1 – С5 выполнены как в демонстрационном Варианте.
По остальным, при нахождении ошибки пишите progmat@list.ru