Русский язык (Определение главной информации текста)
Результаты теста
Затрачено времени:
10:08:00
Вопрос 1
Переведите в шестнадцатеричную систему счисления двоичное число 110110.
Пояснение
Переведем число в десятичную систему счисления:
110110 = 1 · 25 + 1 · 24 + 1 · 22 + 1 · 21 = 32 + 16 + 4 + 2 = 54.
Десятичное число 54 в шестнадцатеричной системе счисления записывается как 36.
Ваш ответ:
Вы пропустили вопрос
Вопрос 2
Логическая функция F задаётся выражением:
(¬x ∧ y ∧ z) ∨ (¬x ∧ ¬y ∧ z) ∨ (¬x ∧ ¬y ∧ ¬z).
На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.
Перем. 1 | Перем. 2 | Перем. 3 | Функция |
??? |
??? |
??? |
F |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу, затем – буква, соответствующая второму столбцу, и т. д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и таблица истинности:
Перем. 1 | Перем. 2 | Функция |
??? |
??? |
F |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
Тогда 1-му столбцу соответствует переменная y, а 2-му столбцу соответствует переменная x. В ответе нужно написать: yx.
Пояснение
Рассмотрим данное выражение. Оно равно единице в трех случаях: (¬x ∧ y ∧ z) = 1, (¬x ∧ ¬y ∧ z) = 1 или (¬x ∧ ¬y ∧ ¬z) = 1. Каждое из этих равенств выполняется только при одном наборе переменных. Первое: x = 0, y = 1, z = 1. Второе: x = 0, y = 0, z = 1. Третье: x = y = z = 0. Так, из второго значения функции видим, что переменная 1 — z. А из третьего, что переменная 2 — x, тогда переменная 3 — y.
Ваш ответ:
Вы пропустили вопрос
Вопрос 3
На рисунке схема дорог изображена в виде графа, в таблице содержатся сведения о длине этих дорог в километрах.
|
П1 |
П2 |
П3 |
П4 |
П5 |
П6 |
П7 |
П1 |
|
|
3 |
|
7 |
4 |
|
П2 |
|
|
|
|
15 |
|
2 |
П3 |
3 |
|
|
6 |
|
|
|
П4 |
|
|
6 |
|
8 |
|
12 |
П5 |
7 |
15 |
|
8 |
|
9 |
|
П6 |
4 |
|
|
|
9 |
|
|
П7 |
|
2 |
|
12 |
|
|
|
|
|
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину кратчайшего пути из пункта А в пункт Д, если передвигаться можно только по указанным дорогам. В ответе укажите целое число – длину дороги в километрах.
ВНИМАНИЕ. Длины отрезков на схеме не отражают длины дорог.
Пояснение
1) Д — единственная вершина, степень которой 4, значит, Д соответствует П5.
2) Можно заметить, что есть два населённых пунктов с тремя дорогами и четыре с двумя. Из этого можно сделать вывод: П4 и П1 это, либо Б, либо В, а населённые пункты П2, П7, П3 и П6 это Е, Г, А или К. Исходя из таблицы видно, что между П2 и П6 дороги нет, зато есть дорога, идущая вокруг Д(П5): П6—П1—П3—П4—П7—П2. Отсюда получаем: Е и К это, либо П6, либо П2. Из П6 есть дорога в П1, далее, в свою очередь, есть дорога в Д(П5), а из П2 есть дорога в П7, но потом нет дороги в Д(П5).
3) Таким образом, П6 — К, П2 — Е. А если учесть цепочку П6—П1—П3—П4—П7—П2, то можно найти все оставшиеся: Г — П7, Б — П4, А — П3, В — П1.
Тогда ответ: кратчайший путь из A в Д равен 10 км: А(П3)—В(П1)—Д(П5).
Ваш ответ:
Вы пропустили вопрос
Вопрос 4
Ниже представлены две таблицы из базы данных. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите на основании приведённых данных ID племянницы Иваненко М. И. В ответе запишите только цифры ID.
Пояснение: племянницей считается дочь брата или сестры.
Таблица 1 |
ID |
Фамилия_И. О. |
Пол |
1015 |
Иваненко Н. А. |
Ж |
1023 |
Иваненко М. И. |
М |
1033 |
Будай В. С. |
Ж |
1035 |
Будай С. С. |
М |
1043 |
Коладзе Л. А. |
М |
1073 |
Будай М. А. |
Ж |
2022 |
Иваненко И. М. |
М |
2024 |
Иваненко М. М. |
М |
2032 |
Будай А. И. |
Ж |
2042 |
Коладзе А. С. |
Ж |
2044 |
Родэ О. С. |
М |
2046 |
Родэ М. О. |
М |
2052 |
Ауэрман А. М. |
Ж |
... |
... |
... |
|
Таблица 2 |
ID_Родителя |
ID_Ребенка |
1015 |
1035 |
1023 |
2024 |
1023 |
2052 |
1035 |
1033 |
1035 |
2044 |
1073 |
2052 |
1073 |
2024 |
2022 |
1023 |
2022 |
2032 |
2032 |
1033 |
2032 |
2044 |
2042 |
2032 |
2042 |
1023 |
... |
... |
|
Пояснение
По первой таблице видно, что ID Иваненко М. И. равен 1023. Найдем во второй таблице в графе «ID_ребенка» номер Иваненко М. И. Видно, что его родители имеют ID 2022 и 2042. Дети обладателей этих ID имеют ID 1023 и 2032. Обладатель ID 2032 имеет детей, ID которых 1033 и 2044. Поскольку мы ищем племянницу, проверим пол: 1033 — Ж, 2044 — М. ID 1033 соответствует Будай В. С.
Ваш ответ:
Вы пропустили вопрос
Вопрос 5
По каналу связи передаются сообщения, содержащие только семь букв: А, Б, Г, И, М, Р, Я. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны: А — 010, Б — 011, И — 10. Какое наименьшее количество двоичных знаков потребуется для кодирования слова ГРАММ?
Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова.
Пояснение
Для трёх букв кодовые слова уже известны, осталось подобрать для оставшихся четырёх букв такие кодовые слова, которые обеспечат наименьшее количество двоичных знаков для кодирования слова ГРАММ.
Закодируем букву М кодовым словом 00, поскольку буква М повторяется в слове ГРАММ два раза. Для буквы Г возьмём кодовое слово 110. Кодовое слово 111 взять не можем, поскольку для остальных букв не останется кодовых слов, удовлетворяющих условию Фано. Оставшиеся две буквы закодируем кодовыми словами длины 4.
Таким образом, наименьшее количество двоичных знаков, которые потребуются для кодирования слова ГРАММ, равно 3 + 4 + 3 + 2 + 2 = 14.
Ваш ответ:
Вы пропустили вопрос
Вопрос 6
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
1. Складываются первая и вторая, а также вторая и третья цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке возрастания (без разделителей).
Пример. Исходное число: 348. Суммы: 3+4 = 7; 4+8 = 12. Результат: 712.
Укажите наименьшее число, в результате обработки которого автомат выдаст число 1115.
Пояснение
Поскольку числа записаны в порядке возрастания, одна сумма цифр двух разрядов равна 11, другая — 15. Для того , чтобы число было наименьшим, необходимо, чтобы в старших разрядах находилась как можно меньшая цифра, следовательно сумма старших разрядов должна быть меньшей. При разложении 11 на слагаемые необходимо, чтобы одно из них было минимально возможным, поэтому представим 11 как сумму 2 и 9, это — первые две цифры искомого числа. Тода третья цифра 15 − 9 = 6. Следовательно, искомое число — 296.
Ваш ответ:
Вы пропустили вопрос
Вопрос 7
Дан фрагмент электронной таблицы:
|
A |
B |
C |
1 |
7 |
1 |
|
2 |
=(C1–1)/(A1–3) |
=B1/(C1−1) |
=(A1–4*B1)/(C1+3) |
Какое целое число должно быть записано в ячейке C1, чтобы построенная после выполнения вычислений диаграмма по значениям диапазона ячеек A2:С2 соответствовала рисунку? Известно, что все значения диапазона, по которым построена диаграмма, имеют один и тот же знак.
Пояснение
Заполним таблицу:
|
A |
B |
C |
1 |
7 |
1 |
|
2 |
=(C1–1)/4 |
=1/(C1−1) |
=3/(C1+3) |
Из диаграммы ясно, что значения в ячейках равны. Приравняем значения в ячейках A2 и B2: (C1 − 1)/4 = 1/(C1 − 1), (C1 − 1)2 = 4, откуда C1 = −1 и С1 = 3. Подставив найденное значение C1 = 3, убеждаемся, что значения во всех ячейках равны.
Ваш ответ:
Вы пропустили вопрос
Вопрос 8
Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):
Бейсик | Паскаль |
DIM N, S AS INTEGER
N = 0
S = 512
WHILE S >= 0
S = S - 20
N = N + 1
WEND
PRINT N
|
var n, s: integer;
begin
n := 0;
s := 512;
while s >= 0 do
begin
s := s - 20;
n := n + 1
end;
write(n)
end.
|
Си++ | Алгоритмический язык |
#include <iostream>
using namespacestd;
int main()
{
int n, s;
n = 0;
s = 512;
while (s >= 0)
{
s = s - 20;
n = n + 1;
}
cout « n « endl;
}
|
алг
нач
цел n, s
n := 0
s := 512
нц пока s >= 0
s := s - 20
n := n + 1
кц
вывод n
кон
|
Python |
n = 0
s = 512
while s >= 0:
s -= 20
n += 1
print(n)
|
Пояснение
В переменной n записывается сколько раз произошел цикл. Следовательно,
Тот факт, что при n = 25, s будет > 0 означает, что цикл выполнится 26 раз.
Ваш ответ:
Вы пропустили вопрос
Вопрос 9
Скорость передачи данных через ADSL─соединение равна 128000 бит/c. Через данное соединение передают файл размером 625 Кбайт. Определите время передачи файла в секундах.
Пояснение
Время t вычисляется по формуле t = Q / q, где Q — объем файла, q — cкорость передачи данных.
t = 625 * 210 байт / (2 7 * 1000) бит/c = 625 * 210+3 бит / (125 * 2 7+3) бит/c = 5 * 23 с = 40 с.
Ваш ответ:
Вы пропустили вопрос
Вопрос 10
Все 4-буквенные слова, составленные из букв А, И, О, У, Э, записаны в алфавитном порядке и пронумерованы.
Вот начало списка:
1. АААА
2. АААИ
3. АААО
4. АААУ
...
Под каким номером стоит ИААЭ?
Пояснение
Заменим буквы А, И, О, У, Э на 0, 1, 2, 3, 4 соответственно (для них порядок очевиден — по возрастанию).
Выпишем начало списка, заменив буквы на цифры:
1. 0000
2. 0001
3. 0002
4. 0003
...
Полученная запись есть числа, записанные в пятеричной системе счисления в порядке возрастания. Слово ИААЭ можно представить в виде: 10045 = 12910. Так как порядковый номер на единицу больше, получаем ответ: 130.
Ваш ответ:
Вы пропустили вопрос
Вопрос 11
Ниже на пяти языках программирования записаны рекурсивные функции F и G.
Бейсик | Python |
FUNCTION F(n)
IF n > 2 THEN
F = F(n-1)+G(n-1)+F(n-2)
ELSE
F = n
END IF
END FUNCTION
FUNCTION G(n)
IF n > 2 THEN
G = G(n-1)+F(n-1)+G(n-2)
ELSE
G = 3-n
END IF
END FUNCTION
|
def F(n):
if n > 2:
return F(n-1)+G(n-1)+F(n-2)
else: return n
def G(n):
if n > 2:
return G(n-1)+F(n-1)+G(n-2)
else: return 3-n
|
Алгоритмический язык | Паскаль |
алг цел F(цел n)
нач
если n > 2
то
знач := F(n-1)+G(n-1)+F(n-2)
иначе
знач := n
все
кон
алг цел G(цел n)
нач
если n > 2
то
знач := G(n-1)+F(n-1)+G(n-2)
иначе
знач := 3-n
все
кон
|
function F(n: integer): integer;
begin
if n > 2 then
F := F(n-1)+G(n-1)+F(n-2)
else
F := n;
end;
function G(n: integer): integer;
begin
if n > 2 then
G := G(n-1)+F(n-1)+G(n-2)
else
G := 3-n;
end;
|
Си |
int F(int n){
if (n > 2)
return F(n-1)+G(n-1)+F(n-2);
else return n;
}
int G(int n){
if (n > 2)
return G(n-1)+F(n-1)+G(n-2);
else return 3-n;
}
|
Чему будет равно значение, вычисленное при выполнении вызова F(5)?
Пояснение
Промоделируем работу программы: F(5) = F(4) + G(4) + F(3).
F(4) = F(3) + G(3) + F(2)
F(3) = F(2) + G(2) + F(1)
F(2) = 2
F(1) = 1
G(4) = G(3) + F(3) + G(2)
G(3) = G(2) + F(2) + G(1)
G(2) = 1
G(1) = 2
Теперь можно подсчитать G(3) и F(3): G(3) = 1 + 2 + 2 = 5; F(3) = 2 + 1 + 1 = 4.
Найдём значение G(4) и F(4): G(4) = 5 + 4 + 1 = 10; F(4) = 4 + 5 + 2 = 11.
Таким образом, F(5) = 11 + 10 + 4 = 25.
Ваш ответ:
Вы пропустили вопрос
Вопрос 12
На месте преступления были обнаружены четыре обрывка бумаги. Следствие установило, что на них записаны фрагменты одного IP-адреса. Криминалисты обозначили эти фрагменты буквами А, Б, В и Г. Восстановите IP-адрес. В ответе укажите последовательность букв, обозначающих фрагменты, в порядке, соответствующем IP-адресу.
Пояснение
IP-адрес представляет собой числа, разъединенные точками, причем числа эти не больше 255.
Посмотрим внимательнее на данные фрагменты: под буквой А мы видим «.64». Число, на которое указывает этот фрагмент, начинается с 64. Так как числа в IP-адресе не могут быть больше 255, мы не можем добавить в конце этого числа еще один разряд, а фрагментов, начинающихся с точки, больше нет, следовательно, этот фрагмент – последний.
Посмотрим на фрагмент под буквой В. В нем стоит число без точек, значит, это либо последний фрагмент, либо первый. Место последнего фрагмента уже занято, значит фрагмент В на первом месте.
В конце фрагмента Г — число 32, отделенное точкой. Так как в IP-адресе не может быть числа, большего 255, то за фрагментом А должен следовать фрагмент, начинающийся с точки. Значит, фрагмент Г идет перед фрагментом А.
Ваш ответ:
Вы пропустили вопрос
Вопрос 13
В велокроссе участвуют 119 спортсменов. Специальное устройство регистрирует прохождение каждым из участников промежуточного финиша, записывая его номер с использованием минимально возможного количества бит, одинакового для каждого спортсмена. Каков информационный объем сообщения, записанного устройством, после того как промежуточный финиш прошли 70 велосипедистов? (Ответ дайте в битах.)
Пояснение
Известно, что с помощью N бит можно закодировать 2N различных чисел. Поскольку 26 < 119 < 27 и для каждого спортсмена число бит одинаково, то для записи каждого из 119 номеров необходимо 7 бит памяти. Поскольку промежуточный финиш прошли 70 велосипедистов, то информационный объем сообщения составит 70*7 бит=490 бит.
Ваш ответ:
Вы пропустили вопрос
Вопрос 14
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды
заменить (555, 63)
преобразует строку 12555550 в строку 1263550.
Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 1000 идущих подряд цифр 9? В ответе запишите полученную строку.
НАЧАЛО
ПОКА нашлось (999) ИЛИ нашлось (888)
ЕСЛИ нашлось (888)
ТО заменить (888, 9)
ИНАЧЕ заменить (999, 8)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Пояснение
По ходу работы программы строка будет меняться так: 9999... → 89999... → 889999... → 8889999... → 9999...
При этом за каждые 4 итерации цикла будет убираться 3 + 3 + 3 - 1 = 8 девяток.
Тогда после 124 раз по 4 итерации, то есть после 496 итераций, из строки будет убрано девятки и она примет вид 99999999. После чего цикл отработает ещё пару раз: 99999999 → 899999 → 8899.
Ваш ответ:
Вы пропустили вопрос
Вопрос 15
На рисунке изображена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, И, К, Л, М, Н. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Сколько существует различных путей из города А в город Н, проходящих через город Д?
Пояснение
Количество путей до города Х = количество путей добраться в любой из тех городов, из которых есть дорога в Х.
При этом, если путь не должен проходить через какой-то город, нужно просто не учитывать этот город при подсчёте сумм. А если город, наоборот, обязательно должен лежать на пути, тогда для городов, в которые из нужного города идут дороги, в суммах нужно брать только этот город.
С помощью этого наблюдения посчитаем последовательно количество путей до каждого из городов:
А = 1.
Б = А = 1.
В = А + Б = 2.
Г = А + В = 3.
Д = В + Б = 3.
Е = Д = 3 (В и Г не учитываем, поскольку путь должен проходить через город Д).
Ж = Д + Е = 6.
И = Е = 3.
К = Ж + И = 9.
Л = К = М = 9.
Н = Л + М = 18.
Примечание. Необходимо найти количество различных путей из города А в город Н, проходящих через город Д.
Ваш ответ:
Вы пропустили вопрос
Вопрос 16
Решите уравнение: 356 + x = 357
Ответ запишите в десятичной системе счисления.
Пояснение
Приведем элементы уравнения к десятичному виду:
356 = 3·61 + 5·60 = 2310;
357 = 3·71 + 5·70 = 2610.
Запишем получившееся уравнение: 2310 + x = 2610 ⇔ x = 310.
Ваш ответ:
Вы пропустили вопрос
Вопрос 17
Ниже приведены запросы к поисковому серверу. Расположите номера запросов в порядке возрастания количества страниц, которые найдёт поисковый сервер по каждому запросу. Для обозначения логической операции «ИЛИ» в запросе используется символ |, а для логической операции «И» — &.
1) синий | зелёный | автомобиль | «Форд»
2) синий & «Форд» & автомобиль
3) синий | зелёный | автомобиль
4) (синий & «Форд») | (зелёный & автомобиль)
Пояснение
Логическая операция “И” истинна только тогда, когда истинны оба аргумента. Например, чтобы было истинно «канарейки & содержание» необходимо, чтобы в тексте содержалось и слово «канарейки» и слово «содержание».
Для истинности логической операции “ИЛИ” достаточно истинности лишь одного из ее аргументов. Например, чтобы было истинно «канарейки ∨ содержание» необходимо, чтобы в тексте содержалось или слово «канарейки» или слово «содержание».
Вывод: чем больше «&», тем меньшее количество страниц найдет поисковик, чем больше «|», тем большее.
Ваш ответ:
Вы пропустили вопрос
Вопрос 18
Сколько существует целых значений числа A, при которых формула
((x < A) → (x2 < 81)) ∧ ((y2 ≤ 36) → (y ≤ A))
тождественно истинна при любых целых неотрицательных x и y?
Пояснение
Раскрывая импликацию по правилу A → B = ¬A + B, заменяя логическую сумму совокупностью, а логическое произведение системой соотношений, определим значения параметра А, при котором система совокупностей
будет иметь решения для любых целых неотрицательных чисел.
Заметим, что переменные не связаны между собой уравнением или неравенством, поэтому необходимо и достаточно, чтобы решениями первой совокупности были все неотрицательные х, а решениями второй совокупности были все неотрицательные y.
Решениями неравенства являются числа из отрезка [0; 8]. Чтобы совокупность выполнялась для всех целых неотрицательных чисел, числа из луча должны быть решениями Значит,
Аналогично, решениями неравенства являются числа из луча Следовательно, числа из отрезка [0; 6] должны быть решениями неравенства Поэтому
Тем самым, Искомое количество целых значений параметра равно 4.
Ваш ответ:
Вы пропустили вопрос
Вопрос 19
В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6; 4; 5; 4; 3; 3; 9; 8; 6; 2 соответственно, т.е. A[0] = 6; A[1] = 4 и т.д.
Определите значение переменной c после выполнения следующего фрагмента программы, записанного ниже на разных языках программирования.
Бейсик | Python |
c = 0
FOR i = 1 TO 9
IF A(i - 1) < A(i) THEN
t = A(i)
A(i) = A(i - 1)
A(i - 1) = t
c = c + 1
ENDIF
NEXT i
|
c = 0
for i in range(1, 10):
if A[i - 1] < A[i]:
t = A[i]
A[i] = A[i - 1]
A[i - 1] = t
c = c + 1
|
Алгоритмический язык | Паскаль |
c := 0
нц для i от 1 до 9
если A[i - 1] < A[i] то
t := A[i]
A[i] := A[i - 1]
A[i - 1] := t
c := c + 1
все
кц
|
c := 0;
for i := 1 to 9 do
if A[i - 1] < A[i] then
begin
t := A[i];
A[i] := A[i - 1];
A[i - 1] := t;
c := c + 1;
end;
|
Си++ |
c = 0;
for (i = 1; i <= 9; i++)
if (A[i - 1] < A[i])
{
t = A[i];
A[i] = A[i - 1];
A[i - 1] = t;
c++;
}
|
Пояснение
Промоделируем работу алгоритма:
i = 1: A = { 6, 4, 5, 4, 3, 3, 9, 8, 6, 2 }, c = 0
i = 2: A = { 6, 5, 4, 4, 3, 3, 9, 8, 6, 2 }, c = 1
i = 3: A = { 6, 5, 4, 4, 3, 3, 9, 8, 6, 2 }, c = 1
i = 4: A = { 6, 5, 4, 4, 3, 3, 9, 8, 6, 2 }, c = 1
i = 5: A = { 6, 5, 4, 4, 3, 3, 9, 8, 6, 2 }, c = 1
i = 6: A = { 6, 5, 4, 4, 3, 9, 3, 8, 6, 2 }, c = 2
i = 7: A = { 6, 5, 4, 4, 3, 9, 8, 3, 6, 2 }, c = 3
i = 8: A = { 6, 5, 4, 4, 3, 9, 8, 6, 3, 2 }, c = 4
i = 9: A = { 6, 5, 4, 4, 3, 9, 8, 6, 3, 2 }, c = 4
Ваш ответ:
Вы пропустили вопрос
Вопрос 20
Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 0.
Бейсик | Python |
DIM X, L, M AS INTEGER
INPUT X
L = 0
M = 0
WHILE X > 0
L = L + 1
IF x mod 2 = 0 THEN
M = M + (x mod 10)
ENDIF
x = x 10
PRINT L
PRINT M
|
x = int(input())
L = 0
M = 0
while x > 0:
L = L + 1
if x % 2 == 0:
M = M + (x % 10)
x = x // 10
print(L)
print(M)
|
Паскаль | Алгоритмический язык |
var x, L, M: integer;
begin
readln(x);
L := 0;
M := 0;
while x > 0 do
begin
L := L + 1;
if (x mod 2 = 0) then
M:= M + (x mod 10);
x := x div 10;
end;
writeln(L);
writeln(M);
end.
|
алг
нач
цел x, L, M
ввод x
L := 0
M := 0
нц пока x > 0
L := L + 1
если mod(x,2) = 0 то
M := M + mod(x,10)
все
x := div(x,10)
кц
вывод L, нс, M
кон
|
Си++ |
#include <iostream>
using namespacestd;
int main()
{
int x, L, M;
cin >> x;
L = 0;
M = 0;
while (x > 0){
L = L + 1;
if(x % 2 == 0){
M = M + (x % 10);
}
x = x / 10;
}
cout << L << endl << Mendl;
}
|
Пояснение
Рассмотрим цикл, число шагов которого зависит от изменения переменной x:
while x > 0 do begin
...
x:= x div 10;
end;
Т. к. оператор div оставляет только целую часть от деления, то при делении на 10 это равносильно отсечению последней цифры.
Из приведенного цикла видно, что на каждом шаге от десятичной записи x отсекается последняя цифра до тех пор, пока все цифры не будут отсечены, то есть x не станет равно 0; поэтому цикл выполняется столько раз, сколько цифр в десятичной записи введенного числа, при этом число L столько же раз увеличивается на 1. Следовательно, конечное значение L совпадает с числом цифр в x. Для того, чтобы L стало L=3, x должно быть трёхзначным.
Теперь рассмотрим оператор изменения M:
if x mod 2 = 0 then
M:= M + x mod 10;
end;
Оператор mod оставляет только остаток от деления, при делении на 10 это последняя цифра x.
Чтобы значение M осталось нулевым, нужно, чтобы условие x mod 2 = 0 не выполнялось, либо чтобы выполнялось x mod 10 = 0. А значит, все цифры этого числа могут быть либо нечётными, либо первая цифра нечётная и остльные нули. Но мы ищем максимальое x, поэтому искомое число 999.
Ваш ответ:
Вы пропустили вопрос
Вопрос 21
Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках).
Бейсик | Паскаль |
DIM A, B, T, M, R AS INTEGER
A = -11: B = 11
M = A: R = F(А)
FOR T = A TO B
IF F(T) <= R THEN
M = T
R = F(T)
END IF
NEXT T
PRINT M+25
FUNCTION F(x)
F = (x*x-25)*(x*x-25)+25
END FUNCTION
|
var a,b,t,M,R :integer;
Function F(x:integer):integer;
begin
F := (x*x-25)*(x*x-25)+25
end;
begin
a := -11; b := 11;
M := a; R := F(a);
for t := a to b do begin
if (F(t) <= R) then begin
M := t;
R := F(t)
end
end;
write(M+25)
end.
|
Си++ | Алгоритмический |
#include <iostream>
using namespacestd;
int F(int x)
{
return (x*x-25)*(x*x-25)+25;
}
int main()
{
int a, b, t, M, R;
a = -11; b = 11;
M = a; R = F(a);
for (t = a; t <= b; t++) {
if (F(t) <= R) {
M = t; R = F(t);
}
}
cout << M+25 << endl;
}
|
алг
нач
цел a, b, t, M, R
a := -11; b := 11
M := a; R := F(a)
нц для t от a до b
если F(t) <= R
то
M := t; R := F(t)
все
кц
вывод M+25
кон
алг цел F(цел x)
нач
знач := (x*x-25)*(x*x-25)+25
кон
кон
|
Python |
def f(x):
return (x*x-25)*(x*x-25)+25
a = -11
b = 11
M = a
R = f(a)
for t in range(a, b+1):
if (f(t) <= R):
M = t
R = f(t);
print(M+25)
|
Пояснение
Алгоритм предназначен для поиска точки, в которой функция принимает наименьшее значение на отрезке [a; b]. Функция имеет наименьшее значение равное 25 в точках 5 и −5. Поскольку выполнение условия «F(t) <= R» определяет будет ли присваиваться переменной M значение переменной t, а F(5) = F(−5) = 25, после выполнения цикла в переменной M будет записано значение 5. После выполнения команды «write(M+25)» программа выведет на экран число 30.
Ваш ответ:
Вы пропустили вопрос
Вопрос 22
Исполнитель Май16 преобразует число на экране. У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2.
Программа для исполнителя Май16 — это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является число 13 и при этом траектория вычислений содержит число 7, но не содержит числа 9? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 10, 11.
Пояснение
Заметим, что из числа 7 мы сможем получить только число 8, поскольку 9 запрещено. В свою очередь, из 8 мы сможем получить только 10. Таким образом, искомое количество программ равно произведению количества программ, получающих из числа 1 число 7, на количество программ, получающих из числа 10 число 13. Заметим, что количество способов получить из числа 10 число 13 равно количеству способов получить из числа 1 число 4.
Пусть - количество способов получить из числа 1 число х. Заметим, что для x > 2: .
Ваш ответ:
Вы пропустили вопрос
Вопрос 23
Сколько существует различных наборов значений логических переменных x1, x2,…, x5, y1, y2, ..., y5, которые удовлетворяют всем перечисленным ниже условиям?
(x1 ∨ ¬x2) ∧ (x2 ∨ ¬x3) ∧ (x3 ∨ ¬x4) ∧ (x4 ∨ ¬x5) = 1
(¬y1 ∨ y2) ∧ (¬y2 ∨ y3) ∧ (¬y3 ∨ y4) ∧ (¬y4 ∨ y5) = 1
x1 ∨ y1 = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ..., x5, y1, y2, ..., y5 при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Пояснение
Преобразуем первое и второе уравнения:
(x2→x1) ∧ (x3→x2) ∧ (x4→x3) ∧ (x5→x4) = 1
(y1→y2) ∧ (y2→y3) ∧ (y3→y4) ∧ (y4→y5) = 1
Заметим, что первое и второе уравнения не связаны между собой ни через какие переменные.
Рассмотрим первое уравнение. Для того, чтобы равенство выполнялось, необходимо, чтобы каждая скобка была истинной. Импликация ложна только тогда, когда посылка истинна, а следствие ложно.
Рассмотрим второе уравнение. Для того, чтобы равенство выполнялось, необходимо, чтобы каждая скобка была истинной.
Представим решения последнего уравнения в виде таблицы:
Случай А. Согласно деревьям решений получим 6 наборов решений для переменных x и 6 наборов переменных y, но x1 = 1 и y1 = 1, следовательно из набора решений для x подойдёт пять, а из набора решений для y — 1. Суммарное число наборов: 1 · 5 = 5.
Случай Б. Аналогично случаю А получим 5 наборов переменных x и 5 наборов переменных y, суммарное число наборов 5 · 5 = 25.
Случай В. Аналогично случаю А получим 1 набор переменных x и 1 набор переменных y, суммарное число наборов 1 · 1 = 1.
Таким образом, получаем 25 + 5 + 1 = 31 набор переменных x1, x2, x3, x4, x5, y1, y2, y3, y4, y5, при которых выполнена данная система равенств.
Ваш ответ:
Вы пропустили вопрос
Вопрос 24
Даны натуральные числа A и B. Требуется найти такое минимально возможное натуральное число K ≥ A, что сумма всех чисел от A до K больше или равна B.
Для решения этой задачи ученик написал программу, но, к сожалению, егопрограмма неправильная.
Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
Бейсик | Python |
DIM A,B,S,K AS INTEGER
INPUT A,B
S = 1
K = A
WHILE S <= B
K = K + 1
S = S + K
WEND
PRINT K
END
|
a = int(input())
b = int(input())
s = 1
k = a
while s <= b:
k = k + 1
s = s + k
print(k)
|
Паскаль | Алгоритмический язык |
var a, b, s, k: integer;
begin
read(a,b);
s := 1;
k := a;
while s <= b do begin
k := k+1;
s := s+k;
end;
writeln(k)
end.
|
алг
нач
цел a, b, s, k
ввод a, b
s := 1
k := a
нц пока s <= b
k := k+1
s := s+k
кц
вывод k
кон
|
Си++ |
#include <iostream>
using namespacestd;
int main(){
int a, b, s, k;
scanf("%d %d", &a, &b);
s = 1;
k = a;
while (s <= b) {
k = k+1;
s = s+k;
}
printf("%d", k);
return 0;
}
|
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе чисел 10 и 13.
2. Приведите пример значений A и B, при вводе которых программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
Пояснение
1. При вводе чисел 10 и 13 программа выведет число 12.
2. Примеры чисел, при вводе которых программа выводит верный ответ: 3 и 8 (ответ 5), 10 и 22 (ответ 12), 4 и 16 (ответ 7).
3. Программа содержит две ошибки:
1) неверная инициализация;
2) неверное условие цикла.
Пример исправления для языка Паскаль:
Первая ошибка:
s := 1;
Исправленная строка:
s := a;
Вторая ошибка:
while s<= b do begin
Исправленная строка:
while s< b do begin
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от −1000 до 1000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди положительных элементов массива, не кратных 3. Если в исходном массиве нет элемента, значение которого положительно и не делится на 3, то вывести сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бэйсик | Паскаль |
N = 20
DIM A(N) AS INTEGER
DIM I, J, MIN AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
|
const
N = 20;
var
a: array [1..N] of integer;
i, j, min: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
|
Си++ | Алгоритмический язык |
#include <iostream>
using namespacestd;
#define N 20
int main() {
int a[N];
int i, j, min;
for (i = 0; i < N; i++)
cin >> a[i];
...
}
|
алг
нач
цел N = 20
целтаб a[1:N]
цел i, j, min
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Естественный язык |
Объявляем массив А из 20 элементов.
Объявляем целочисленные переменные I, J, MIN.
В цикле от 1 до 20 вводим элементы массива А с 1-го по 20-й.
|
Python |
// допускается также использовать
// целочисленные переменные j, min
a = []
n = 20
for i in range(0, n):
a.append(int(input()))
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
На языке Паскаль
min := 1001;
for i := 1 tо N do
if (a[i] > 0) and (a[i] mod 3<>0) and (a[i] < min) then min := a[i];
if min < 1001
then writeln(min)
else
writeln('He найдено');
На алгоритмическом языке
min 1001 нц для i от 1 до N
если а[i] > 0 и mod(a[i], 3)<>0 и a[i] < rain то
min := a[i]
все
кц
если min < 1001
то
вывод mm
иначе
вывод "Не найдено"
все
На языке Бейсик
MIN - 1001 FOR I = 1 ТО N
IF А(1)>0 AND А(I) MOD 3<>0 AND A(I)MIN - A(I) END IF NEXT I
IF MIN < 1001 THEN PRINT MIN
ELSE
PRINT "He найдено"
END IF
На языке Си
min = 1001;
for (i - 0; i < N; i++)
if (a[i]>0 && a[i]%3 != 0 && a[i]<min) min="a" [i];<p=""> if (min < 1001)
cout « min « endl;
else
cout << He найдено;
Ваш ответ:
Вы пропустили вопрос
Вопрос 26
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или два камня или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 17 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее 24. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 24 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 23.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.
Выполните следующие задания. Во всех случаях обосновывайте свой ответ.
1. а) Укажите все такие значения числа S, при которых Петя может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S.
б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани.
2. Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём (а) Петя не может выиграть за один ход и (б) Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Для каждого указанного значения S опишите выигрышную стратегию Пети.
3. Укажите значение S, при котором:
— у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и
— у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Для указанного значения S опишите выигрышную стратегию Вани. Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход, в узлах — количество камней в куче.
Пояснение
1. а) Петя может выиграть, если S=12, ..., 23. Во всех этих случаях достаточно удвоить количество камней. При меньших значениях S за один ход нельзя получить кучу, в которой больше 23 камней.
б) Ваня может выиграть первым ходом (как бы ни играл Петя), если исходно в куче будет S = 11 камень. Тогда после первого хода Пети в куче будет 12, 13 или 22 камня. Во всех случаях Ваня удваивает количество камней и выигрывает первым ходом.
2. Возможные значения S: 9, 10. В этих случаях Петя, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 11 камней: в первом случае добавлением двух камней, во втором добавлением одного камня. Эта позиция разобрана в п. 16. В ней отрок, который будет ходить (теперь это Ваня), выиграть не может, а его противник (то есть Петя) следующим ходом выиграет.
3. Возможное значение S: 8. После первого хода Пети в куче будет 9, 10 или 16 камней. Если в куче станет 16 камней. Ваня удвоит количество камней и выиграет первым ходом. Ситуация, когда в куче 9 или 10 камней, уже разобрана в п. 2. В этих ситуациях игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.
В таблице изображено дерево возможных партий при описанной стратегии Ванн. Заключительные позиции (в них выигрывает Ваня) подчёркнуты. На рисунке это же дерево изображено в графическом виде (оба способа изображения дерева допустимы).
Указания по оцениванию.
В задаче от ученика требуется выполнить три задания. Их трудность возрастает. Количество баллов в целом соответствует количеству выполненных задании (подробнее см. ниже). Ошибка в решении, не искажающая основного замысла и не приведшая к неверному ответу, например арифметическая ошибка при вычислении количества камней в заключительной позиции, при оценке решения не учитывается.
Первое задание считается выполненным полностью, если выполнены полностью оба пункта: а) и б). Пункт а) считается выполненным полностью, если правильно указаны все позиции, в которых Петя выигрывает первым ходом, и указано, каким должен быть первый ход. Пункт б) считается выполненным полностью, если правильно указана позиция, в которой Ваня выигрывает первым ходом, и описана стратегия Ванн, то есть показано, как Ваня может получить кучу, в которой содержится нужное количество камней, при любом ходе Пети.
Первое задание считается выполненным частично, если: а) правильно указаны все позиции, в которых Петя выигрывает первым ходом; б) правильно указана позиция, в которой Ваня выигрывает первым ходом, и явно сказано, что при любом ходе Пети Ваня может получить кучу, которая содержит нужное для выигрыша количество камней. Отличие от выполненного полностью задания состоит в том. что не указаны явно ходы, которыми выиграет Петя или Ваня.
Второе задание выполнено, если правильно указаны обе позиции, выигрышные для Пети, и описана соответствующая стратегия Пети - так, как это написано в примере решения, или другим способом, например с помощью дерева всех партий, возможных при выбранной стратегии Пети.
Третье задание выполнено, если правильно указана позиция, выигрышная для Ванн, и построено дерево всех партий, возможных при Васиной стратегии. Должно быть явно сказано, что в этом дереве в каждой позиции, где должен ходить Петя, разобраны все возможные ходы, а для позиций, где должен ходить Ваня, — только ход. соответствующий стратегии, которую выбрал Ваня.
Во всех случаях стратегии могут быть описаны так. как это сделано в примере решения или другим способом.
Ваш ответ:
Вы пропустили вопрос
Вопрос 27
На плоскости задано множество точек с целочисленными координатами. Необходимо найти минимально возможную площадь невырожденного (то есть имеющего ненулевую площадь) треугольника, одна вершина которого расположена в начале координат, а две другие лежат на биссектрисах углов, образованных осями координат, и при этом ринадлежат заданному множеству. Если такого треугольника не существует, необходимо вывести соответствующее сообщение.
Напишите эффективную по времени и по используемой памяти программу для решения этой задачи. Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз. Программа считается эффективной по памяти, если размер памяти для хранения всех необходимых данных не зависит от количества точек и не превышает 1 килобайта. Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию.
Входные данные
В первой строке задаётся N — количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа — координаты очередной точки.
Пример входных данных:
3
6 6
-8 8
9 7
Выходные данные
Если искомый треугольник существует, программа должна напечатать одно число: минимально возможную площадь треугольника, удовлетворяющего условиям. Если искомый треугольник не существует, программа должна напечатать сообщение: «Треугольник не существует».
Пример выходных данных для приведённого выше примера входных данных: 48
Пояснение
Биссектрисами углов, образованных осями координат, служат две прямые: и Очевидно, что вершины невырожденного треугольника должны лежать на разных биссектрисах, их координаты должны иметь вид (a, a) и (b, –b). Площадь такого треугольника равна |a| · |b|. Эта площадь будет минимальной при минимально возможных ненулевых значениях |a| и |b|.
Пример правильной программы на Паскале
program P27;
var
N: integer; {количество точек}
x,y: integer; {координаты очередной точки}
amin, bmin: integer;
s: integer; {площадь}
i: integer;
begin
readln(N);
amin:=0; bmin:=0;
for i:=1 to N do begin
readln(x,y);
if (x=y) and (x<>0) and
((amin=0) or (abs(x)<amin)) then amin:=abs(x);
if (x=-y) and (x<>0) and
((bmin=0) or (abs(x)<bmin)) then bmin:=abs(x);
end;
s:=amin*bmin;
if s=0 then writeln('Треугольник не существует')
else writeln(s)
end.
Пример правильной, но неэффективной программы на языке Паскаль.
var
points: array[1..10000, 1..2] of integer;
N: integer;
mins: integer;
a, b: integer;
i, j: integer;
begin
readln(N);
mins := MaxInt;
a := 0; b := 0;
for i := 1 to N do read(points[i, 1], points[i, 2]);
for i := 1 to N do
for j := 1 to N do begin
if (points[i, 1] = points[i, 2]) and (points[i, 1] <> 0) then a := abs(points[i, 1]);
if (points[j, 1] = -points[j, 2]) and (points[j, 1] <> 0) then b := abs(points[j, 1]);
if (a*b < mins) and (a * b <> 0) then mins := a*b;
end;
if mins = MaxInt then writeln('Треугольник не существует')
else writeln(mins);
end.
Ваш ответ:
Вы пропустили вопрос