Русский язык (Определение главной информации текста)
Результаты теста
Затрачено времени:
09:13:26
Вопрос 1
Найдите значение выражения 8F – 80 в шестнадцатеричной системе счисления. В ответе запишите вычисленное значение в десятичной системе счисления.
Пояснение
Переведём число 8F16 из шестнадцатеричной в десятичную систему счисления:
8F16 = 14310.
Переведём число 8016 из шестнадцатеричной в десятичную систему счисления:
8016 = 12810.
Найдём разность: 143 − 128 = 15.
Ваш ответ:
Вы пропустили вопрос
Вопрос 2
Логическая функция F задаётся выражением ((x → y ) ≡ (z → w)) ∨ (x ∧ w).
Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.
Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.
Переменная 1 | Переменная 2 | Переменная 3 | Переменная 4 | Функция |
??? |
??? |
??? |
??? |
F |
1 |
|
|
|
0 |
1 |
1 |
|
|
0 |
1 |
1 |
1 |
|
0 |
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:
Переменная 1 | Переменная 1 | Функция |
??? |
??? |
F |
0 |
1 |
0 |
Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.
Пояснение
Рассмотрим данное выражение. Преобразуем логическое выражение ((x → y ) ≡ (z → w)) ∨ (x ∧ w) и получим систему, при которой оно ложно:
Заметим, что четвёртый столбец таблицы истинности это w, тогда первый столбец таблицы истинности это переменная z. Из условия следует, что переменная x соответствует третьему столбцу таблицы истинности, а переменная yсоответствует второму столбцу таблицы истинности.
Ваш ответ:
Вы пропустили вопрос
Вопрос 3
Между населёнными пунктами A, B, C, D, E, F построены дороги, протяжённость которых приведена в таблице. Отсутствие числа в таблице означает, что прямой дороги между пунктами нет.
|
A |
B |
C |
D |
E |
F |
A |
|
3 |
4 |
4 |
|
16 |
B |
3 |
|
|
5 |
|
|
C |
4 |
|
|
2 |
|
|
D |
4 |
5 |
2 |
|
6 |
10 |
E |
|
|
|
6 |
|
3 |
F |
16 |
|
|
10 |
3 |
|
Определите длину кратчайшего пути между пунктами A и F при условии, что передвигаться можно только по указанным в таблице дорогам.
Пояснение
Найдём все маршруты, удовлетворяющие условию, посчитаем расстояние и выберем кратчайшее.
A-B-D-F 18
A-B-D-E-F 17
A-C-D-F 16
A-C-D-E-F 15
A-D-F 14
A-D-E-F 13
A-F 16
Кратчайшим является A-D-E-F с длиной 13.
Ваш ответ:
Вы пропустили вопрос
Вопрос 4
В фрагменте базы данных представлены сведения о родственных отношениях. На основании приведённых данных определите ID тёти Рерих Л. А. (тётя — это родная сестра матери или отца).
Таблица 1 |
ID |
Фамилия_И.О. |
Пол |
1465 |
Дядюн М.А. |
Ж |
1493 |
Баль А.П. |
М |
1560 |
Штольц И.Б. |
М |
1625 |
Рерих А.И. |
Ж |
1837 |
Штольц П.И. |
М |
1851 |
Радек П.А. |
Ж |
1885 |
Штольц Б.Ф. |
М |
1983 |
Чиж Д.К. |
Ж |
2216 |
Рерих Л.А. |
М |
2226 |
Штольц А.Б. |
Ж |
2398 |
Малеев К.Г. |
М |
2470 |
Баль П.А. |
М |
2607 |
Штольц Т.И. |
Ж |
2737 |
Панина Р.Г. |
Ж |
2759 |
Тесленко Г.Р. |
Ж |
2788 |
Рерих В.А. |
Ж |
|
Таблица 2 |
ID_Родителя |
ID_Ребенка |
1493 |
1465 |
2226 |
1465 |
1885 |
1560 |
1983 |
1560 |
1560 |
1837 |
2759 |
1837 |
2788 |
1851 |
2788 |
2216 |
1885 |
2226 |
1983 |
2226 |
1493 |
2470 |
2226 |
2470 |
1560 |
2607 |
2759 |
2607 |
1493 |
2788 |
2226 |
2788 |
|
Пояснение
По первой таблице видно, что ID Рериха Л. А. равен 2216. Найдем во второй таблице в графе «ID_ребенка» номер Рериха Л. А. Видно, что его родитель имеет ID 2788. Теперь найдем его в графе «ID_ребенка». Родители обладателя этого номера имеют номера 1493, и 2226. Дети обладателей этих ID имеют ID 1465 и 2470. Так как нам нужна именно тетя, а не дядя, определим пол обладателей этих ID: 1465 — Ж, 2470 — М. ID 1465 соответствует Дядюн М. А.
Ваш ответ:
Вы пропустили вопрос
Вопрос 5
По каналу связи с помощью равномерного двоичного кода передаются сообщения, содержащие только 4 буквы: Ц, Ч, Ш, Щ; для кодировки букв используются кодовые слова длины 5. При этом для набора кодовых слов выполнено такое свойство: любые два слова из набора отличаются не менее чем в трёх позициях . Это свойство важно для расшифровки сообщений при наличии помех. Для кодирования букв Ц, Ч, Ш используются 5-битовые кодовые слова: Ц: 01111, Ч: 00001, Ш: 11000. 5-битовый код для буквы Щ начинается с 1 и заканчивается 0. Определите кодовое слово для буквы Щ.
Пояснение
Заметим, что буква Ш также начинается на 1 и заканчивается на 0, значит, для выполнения условия нужно, чтобы все остальные 3 бита в Ш и Щ отличались. Поскольку в Ш эти три бита — 100, то в Щ они будут 011, соответственно. Тогда Щ: 10110.
Ваш ответ:
Вы пропустили вопрос
Вопрос 6
У исполнителя Удвоитель две команды, которым присвоены номера:
1. прибавь 1
2. умножь на 2.
Первая из них увеличивает число на экране на 1, вторая удваивает его. Например, 2121 – это программа
умножь на 2
прибавь 1
умножь на 2
прибавь 1,
которая преобразует число 1 в число 7.
Запишите порядок команд в программе преобразования числа 3 в число 63, содержащей не более 8 команд, указывая лишь номера команд. Если таких программ более одной, то запишите любую из них.
Пояснение
Умножение обратимо не для любого числа, поэтому пойдём от числа 63 к числу 3, полученную последовательность команд запишем справа налево.
63 − 1 = 62,
62/2 = 31,
31 − 1 = 30,
30/2 = 15,
15 − 1 = 14,
14/2 = 7,
7 − 1 = 6,
6/2 = 3.
Ваш ответ:
Вы пропустили вопрос
Правильный ответ:
21212121
Вопрос 7
Дан фрагмент электронной таблицы. Из одной из ячеек диапазона B1:B4 в одну из ячеек диапазона A1:A4 была скопирована формула. При этом адреса в формуле автоматически изменились и числовое значение в ячейке,
куда производилось копирование, стало равным 42. В какую ячейку была скопирована формула? В ответе укажите только одно число – номер строки, в которой расположена ячейка.
| A | B | C | D | E |
1 |
|
= D$1 + $D1 |
2 |
20 |
100 |
2 |
|
= D$2 + $D2 |
52 |
40 |
200 |
3 |
|
= D$3 + $D3 |
152 |
60 |
300 |
4 |
|
= D$4 + $D4 |
252 |
80 |
400 |
Примечание: знак $ обозначает абсолютную адресацию.
Пояснение
Новая формула будет иметь вид =C$x + $Dy, где x и y — некоторые числа.
Заметим, что в таком случае 42 можно получить, сложив числа в ячейках C1 и D2.
То есть формула была скопирована из ячейки B1, поскольку при копировании число при C не меняется из-за абсолютной адресации.
А так как $D1 превратилось в $D2, понимаем, что скопирована формула была в ячейку A2.
Ваш ответ:
Вы пропустили вопрос
Вопрос 8
Определите, что будет напечатано в результате работы следующего фрагмента программы:
Бейсик | Python |
DIM K, S AS INTEGER
S = 3
K = 1
WHILE K < 25
S = S + K
K = K + 2
WEND
PRINT S
|
s = 3
k = 1
while k < 25:
s += k
k += 2
print(s)
|
Паскаль | Алгоритмический язык |
var k, s: integer;
begin
s:=3;
k:=1;
while k < 25 do begin
s:=s+k;
k:=k+2;
end;
write(s);
end.
|
алг
нач
цел k, s
s := 3
k := 1
нц пока k < 25
s := s + k
k := k + 2
кц
вывод s
кон
|
Си++ |
#include <iostream>
using namespacestd;
int main() {
int s, k;
s = 3, k = 1;
while (k < 25) {
s = s + k;
k = k + 2;
}
cout << s << endl;
return 0;
}
|
Пояснение
Цикл while выполняется до тех пор, пока истинно условие k < 25, т.к. по усл. while k < 25 do begin и k:=k+2. То есть цикл будет выполнен 12 раз.
Аккуратно выпишем все s и k:
s 3 4 7 12 19 28 39 52 67 84 103 124 147
k 1 3 5 7 9 11 13 15 17 19 21 23 25
Ваш ответ:
Вы пропустили вопрос
Вопрос 9
Автоматическая фотокамера производит растровые изображения размером 1024 на 600 пикселей. При этом объём файла с изображением не может превышать 300 Кбайт, упаковка данных не производится. Какое максимальное количество цветов можно использовать в палитре?
Пояснение
Объём растрового изображения находится как произведение количества пикселов в изображении на объём памяти x, необходимый для хранения цвета одного пиксела: 1024 · 600 · x < 300 · 213 бит, откуда x = 4 бит. Значит, в изображении можно использовать не более 24 = 16 цветов.
Ваш ответ:
Вы пропустили вопрос
Вопрос 10
В закрытом ящике находится 32 карандаша, некоторые из них синего цвета. Наугад вынимается один карандаш. Сообщение «этот карандаш – НЕ синий» несёт 4 бита информации. Сколько синих карандашей в ящике?
Пояснение
Формула Шеннона: где x — количество информации в сообщении о событии P, p — вероятность события P.
Вероятность того, что достали НЕ синий где — число синих карандашей.
Воспользовавшись формулой Шеннона, получаем, что
Следовательно,
Ваш ответ:
Вы пропустили вопрос
Вопрос 11
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями:
F(1) = 1;
F(n) = F(n − 1)+n если n>1
Чему равно значение функции F(40)? В ответе запишите только натуральное число.
Пояснение
Преобразуем выражение для F(n):
F(n) = F(n-1) + n = F(n-2) + (n-1) + n = F(1) + 2 + ... + (n-1) + n.
Это выражение для суммы арифметической прогрессии с первым членом 1 и разностью 1. Таким образом, Откуда
Ваш ответ:
Вы пропустили вопрос
Вопрос 12
В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. По заданным IP-адресу узла и маске определите адрес сети.
IP-адрес узла: 224.23.253.138
Маска: 255.255.240.0
При записи ответа выберите из приведённых в таблице чисел четыре элемента IP-адреса и запишите в нужном порядке соответствующие им буквы без использования точек.
A |
B |
C |
D |
E |
F |
G |
H |
255 |
253 |
240 |
224 |
138 |
23 |
8 |
0 |
Пример. Пусть искомый IP-адрес: 192.168.128.0, и дана таблица:
A |
B |
C |
D |
E |
F |
G |
H |
128 |
168 |
255 |
8 |
127 |
0 |
17 |
192 |
В этом случае правильный ответ будет записан в виде: HBAF.
Пояснение
1. Запишем числа маски сети в двоичной системе счисления:
25510 = 111111112, 24010 = 111100002, 010 = 000000002.
2. Адрес сети получается в результате поразрядной конъюнкции чисел маски и чисел адреса узла (в двоичном коде). Так как конъюнкция 0 с чем-либо всегда равна 0, то на тех местах, где числа маски равны 0, в адресе узла стоит 0. Аналогично, там, где числа маски равны 255, стоит само число, так как конъюнкция 1 с любым числом всегда равна этому числу.
3. Рассмотрим конъюнкцию числа 240 с числом 253:
24010 = 111100002, 25310 = 111111012.
Результатом конъюнкции является число 111100002 = 24010.
4. Сопоставим варианты ответа получившимся числам: 224, 23, 240, 0.
Таким образом, ответ: DFCH.
Ваш ответ:
Вы пропустили вопрос
Вопрос 13
При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 15 символов и содержащий только символы из 12-символьного набора: А, В, C, D, Е, F, G, H, К, L, M, N. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего отведено 12 байт на одного пользователя.
Определите объём памяти (в байтах), необходимый для хранения сведений о 50 пользователях. В ответе запишите только целое число — количество байт.
Ваш ответ:
Вы пропустили вопрос
Вопрос 14
Исполнитель КОРАБЛИК «живет» в ограниченном прямоугольном водоеме-лабиринте, разделенном на клетки и изображенном на рисунке (вид сверху). Серые клетки — скалистые берега, светлые — свободное пространство, безопасное для передвижения КОРАБЛИКА. По краю водоема-лабиринта также находятся скалы с нанесенными на них номерами и буквами для удобства идентификации клеток.
Система команд исполнителя КОРАБЛИК:
При выполнении любой из этих команд КОРАБЛИК перемещается на одну клетку соответственно (по отношению к наблюдателю): вверх ↑, вниз ↓, влево ←, вправо →. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится КОРАБЛИК (также по отношению к наблюдателю):
сверху свободно |
снизу свободно |
слева свободно |
справа свободно |
Цикл
ПОКА <условие> команда
выполняется, пока условие истинно, иначе происходит переход на следующую строку.
При попытке передвижения на любую серую клетку КОРАБЛИК разбивается о скалы.
Сколько клеток приведенного лабиринта соответствуют требованию, что, стартовав в ней и выполнив предложенную ниже программу, КОРАБЛИК не разобьется?
НАЧАЛО
ПОКА <справа свободно> вправо
ПОКА <слева свободно> влево
вверх
влево
КОНЕЦ
Пояснение
Разбиться Кораблик может только при выполнении команд "вверх" и "влево". Начав из любой клетки строк 1, 3, 4, 5, 7, столбца А и клеток E6−J6 кораблик разобьётся, выполняя команду влево. Стартовав из клеток С2, E2, G2, I2, K2, M2, O2, O4, O6, O8 кораблик уцелеет.
Ваш ответ:
Вы пропустили вопрос
Вопрос 15
На рисунке изображена схема дорог, связывающих города A, B, C, D, E, F, G, H, K, L, M. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города A в город M?
Пояснение
Начнем считать количество путей с конца маршрута – с города М. NX — количество различных путей из города А в город X, N — общее число путей.
В "М" можно приехать из K, H или L, поэтому N = NM = NK + NH + N L (1)
Аналогично:
NK = NH;
NH = NF + NB + NC + ND + NG + NE;
NL = NH.
Добавим еще вершины:
NF = NB = 2;
NB = NA + NC = 2;
NC = NA = 1;
ND = NA + NC = 2;
NE = ND + NA = 2 + 1 = 3;
NG = NE = 3.
Тогда:
NH = 2 + 2 + 1 + 2 + 3 + 3 = 13;
NK = 13;
NL = 13.
Подставим в формулу (1): N = 3 · NH = 3 · 13 = 39.
Ваш ответ:
Вы пропустили вопрос
Вопрос 16
В системе счисления с некоторым основанием десятичное число 12 записывается в виде 30. Укажите это основание.
Пояснение
Составим уравнение: 30n = 3 · n1 + 0 · n0 = 1210, где n— основание этой системы счисления. Откуда n = 4.
Ответ: 4.
Ваш ответ:
Вы пропустили вопрос
Вопрос 17
В таблице приведены запросы и количество страниц, которые нашел поисковый сервер по этим запросам в некотором сегменте Интернета:
Запрос | Количество страниц (тыс.) |
крейсер | линкор |
7000 |
крейсер |
4800 |
линкор |
4500 |
Сколько страниц (в тыс.) будет найдено по запросу крейсер & линкор
Пояснение
По формуле включений и исключений имеем:
m(крейсер | линкор) = m(крейсер) + m(линкор) - m(крейсер & линкор) = 4800 + 4500 - m(крейсер & линкор) = 7000. => m(крейсер & линкор) = 2300.
Ваш ответ:
Вы пропустили вопрос
Вопрос 18
На числовой прямой даны два отрезка: P = [17, 46] и Q = [22, 57]. Отрезок A таков, что приведённая ниже формула истинна при любом значении переменной х:
¬(x ∈ A) →(((x ∈ P) ⋀ (x ∈ Q)) → (x ∈ A))
Какова наименьшая возможная длина отрезка A?
Пояснение
Введем обозначения: (x ∈А) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.
Применив преобразование импликации, получаем:
A ∨ (¬(P · Q) ∨ A).
Применив закон де Моргана и правило упрощения, получаем:
¬P ∨ ¬Q ∨ A.
Логическое ИЛИ истинно, если истинно хоть какое-то из утверждений. Выражение ¬P истинно тогда, когда x∈(−∞,17)U(46,∞), а выражение ¬Q истинно тогда, когда x∈(–∞,22)U(57,∞). Следовательно, A должно быть истинно как минимум на отрезке [22; 46]. Длина отрезка равна 46 − 22 = 24.
Ваш ответ:
Вы пропустили вопрос
Вопрос 19
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 1, 1, 5, 2, 9, 4, 3, 2, 1 (т. е. A[0] = 3, A[1] = 1, …, A[9] = 1). Определите значение переменной sпосле выполнения фрагмента.
Бейсик | Python |
N = 10
s = 0
FOR i = 1 TO N − 1
IF A(i-1) > 2*A(i) THEN
A(i) = 2*A(i)
s = s + A(i)
END IF
NEXT i
|
n = 10
s = 0
for i in range(1,n):
if A[i-1] > 2*A[i]:
A[i] = 2*A[i]
s = s + A[i]
|
Паскаль | Алгоритмический язык |
N := 10;
s := 0;
for i:=1 to N-1 do begin
if A[i-1] > 2*A[i] then begin
A[i] := 2*A[i];
s := s + A[i];
end;
end;
|
N := 10
s := 0
нц для i от 1 до N-1
если A[i-1] > 2*A[i] то
A[i] := 2*A[i]
s := s + A[i]
все
кц
|
С++ |
n = 10;
s = 0;
for (i = 1; i < n; ++i) {
if (A[i-1] > 2*A[i]) {
A[i] = 2*A[i];
s = s + A[i];
}
}
|
Пояснение
Данный алгоритм удваивает значение текущего элемнета, если значение предыдущего элемента больше удвоенного значения текущего элемента.
Изначальный порядок значений: 3, 1, 1, 5, 2, 9, 4, 3, 2, 1.
Первое изменение элементов: 3, 2, 1, 5, 2, 9, 4, 3, 2, 1.
Второе изменение элементов: 3, 2, 1, 5, 4, 9, 4, 3, 2, 1.
Третье изменение элементов: 3, 2, 1, 5, 4, 9, 8, 3, 2, 1.
Четвёртое изменение элементов: 3, 2, 1, 5, 4, 9, 8, 6, 2, 1.
Пятое изменение элементов: 3, 2, 1, 5, 4, 9, 8, 6, 4, 1.
Последнее изменение элементов: 3, 2, 1, 5, 4, 9, 8, 6, 4, 2.
Всего изменение элементов массива произошло шесть раз. Теперь к переменной s прибавим значения выделенных элементов. Следовательно, s = 2 + 4 + 8 + 6 + 4 + 2 = 26.
Ваш ответ:
Вы пропустили вопрос
Вопрос 20
Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 10.
Бейсик | Python |
DIM X, L, M AS INTEGER
INPUT X
L = 0
M = 0
WHILE X > 0
L = L + 1
IF M < x THEN
M = (X MOD 10) * 2
ENDIF
X = X 10
WEND
PRINT L
PRINT M
|
x = int(input())
L = 0
M = 0
while x > 0:
L += 1
if M < x:
M = (x % 10) * 2
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 M < x then
M := (x mod 10) * 2;
x := x div 10;
end;
writeln(L);
writeln(M);
end.
|
алг
нач
цел x, L, M
ввод x
L := 0
M := 0
нц пока x > 0
L := L + 1
если M < x
то
M := mod(x,10)*2
все
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(M < x){
M = (x % 10) * 2;
}
x = x / 10;
}
cout << L << endl << M <<endl;
}
|
Пояснение
Рассмотрим цикл, число шагов которого зависит от изменения переменной 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 M < x then begin
M:= (x mod 10) * 2;
end;
Оператор mod оставляет только остаток от деления, при делении на 10 это последняя цифра x.
Чтобы M приняло значение M = 10 в числе x должно присутствовать цифра 5.
Т. к. мы ищем наибольшее x, сделаем первую цифру исходного числа, равной 9, при этом если вторая цифра 5, тогда на третьем шаге условие M < x не выполняется (10>9), и на экране мы получим нужное нам число.
Осталось определить последнюю цифру исходного числа x. После первого шага x = 95, но максимальный остаток от деления на 10 равен 9, следовательно, M после первого шага не может превысить 9 * 2 = 18, а 18 < 95, значит, будет выполняться нужный нам второй шаг.
Искомое число 959.
Ваш ответ:
Вы пропустили вопрос
Вопрос 21
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Бейсик | Паскаль |
DIM A, B, T, M, R AS INTEGER
A =-5: B = 5
M = A: R = F(А)
FOR T = A TO B
IF F(T) < R THEN
M = T
R = F(T)
END IF
NEXT T
PRINT R
FUNCTION F(x)
F = (x+5)*(1-x)
END FUNCTION
|
var a,b,t,M,R: integer;
Function F(x:integer): integer;
begin
F := (x+5)*(1-x)
end;
begin
a :=-5; b := 5;
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(R)
end.
|
Си++ | Алгоритмический |
#include <iostream>
using namespacestd;
int F(int x)
{
return (x+5)*(1-x);
}
int main()
{
int a, b, t, M, R;
a =-5; b = 5;
M = a; R = F(a);
for (t = a; t <= b; t++) {
if (F(t) < R) {
M = t; R = F(t);
}
}
cout « R « endl;
}
|
алг
нач
цел a, b, t, M, R
a :=-5; b := 5
M := a; R := F(a)
нц для t от a до b
если F(t) < R
то
M := t; R := F(t)
все
кц
вывод R
кон
алг цел F(цел x)
нач
знач := (x+5)*(1-x)
кон
|
Python |
def f(x):
return (x+5)*(1-x)
a =-5
b = 5
M = a
R = F(a)
for t in range(a, b+1):
if (f(t) < R):
M = t
R = f(t);
print(R)
|
Пояснение
1. Алгоритм ищет наименьшее значение функции F(t) на интервале от a до b
2. график этой функции – парабола, оси которой направлены вниз, поэтому функция имеет наименьшее значение на одном из концов интервала.
3. Посчитаем значение функции на концах интервала:
4. В программе написано "write(R)", следовательно наименьшее значение из двух получившихся и будет ответом.
Ваш ответ:
Вы пропустили вопрос
Вопрос 22
У исполнителя Накопитель две команды:
1. прибавь 5,
2. прибавь 10.
Первая из них увеличивает число на экране на 5, вторая – увеличивает его на 10.
Программа для Накопителя – это последовательность команд.
Сколько различных чисел можно получить из числа 1 с помощью программы, которая содержит ровно 7 команд?
Пояснение
У исполнителя Накопитель две команды:
1. прибавь 5,
2. прибавь 10.
Первая из них увеличивает число на экране на 5, вторая – увеличивает его на 10.
Программа для Накопителя – это последовательность команд.
Сколько различных чисел можно получить из числа 1 с помощью программы, которая содержит ровно 7 команд?
Пояснение.
Число команд 7, а от перестановки мест слагаемых сумма не меняется. Тогда пусть n - количество команд"1", следовательно конечное число:
1 + 5 * n + (7 - n) * 10 = 1 + 70 + 5n - 10n = 71 - 5n, а n принимает значение от 0 до 7, т. е. 8 значений.
Правильный ответ: 8.
Ваш ответ:
Вы пропустили вопрос
Вопрос 23
Сколько существует различных наборов значений логических переменных x1, x2, x3, x4, x5, x6, x7, которые удовлетворяют всем перечисленным ниже условиям?
(x1≡x2)—>(x2≡x3) = 1
(x2≡x3)—>(x3≡x4) = 1
...
(x5≡x6)—>(x6≡x7) = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, x2, x3, x4, x5, x6, x7, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Пояснение
Запишем переменные в строчку: x1x2x3x4x5x6x7. Импликация ложна только в том случае, когда из истины следует ложь. Условие не выполняется, если в ряду после одинаковых цифр присутствует другая цифра. Например, "11101..." что означает невыполнение второго условия.
Рассмотрим комбинации переменных, удовлетворяющие всем условиям. Выпишем варианты, при которых все цифры чередуются, таких два: 1010101 и 0101010. Теперь для первого варианта, начиная с конца, будем увеличивать количество повторяющихся подряд цифр(настолько, насколько это возможно). Выпишем полученные комбинации: "1010111; 1011111..." таких комбинаций восемь. Аналогично для второго варианта: "0101011; 0101111...". Учтём, что при подсчёте комбинация для второго варианта комбинации 0000000 и 1111111 были учтены дважды. Таким образом, получаем 8 + 8 − 2 = 14 решений.
Ваш ответ:
Вы пропустили вопрос
Вопрос 24
Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x — действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В и D (включая границы). Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
INPUT x
IF x<13 THEN
IF x<=7 THEN
IF x>=1 THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
ENDIF
END
|
var x: real;
begin
readln(x);
if x<13 then
if x<=7 then
if x>=1 then
write('принадлежит')
else
write('не принадлежит')
end.
|
Си++ | Алгоритмический |
int main(void)
{
float x;
cin >> x;
if(x<13)
if(x<=7)
if(x>=1)
cout << "принадлежит";
else
cout << "не принадлежит";
}
|
алг
нач
вещ x
ввод x
если x<13 то
если x<=7 то
если x>=1 то
вывод 'принадлежит'
иначе
вывод 'не принадлежит'
все
все
все
кон
|
Python |
x = int(input())
if x < 13:
if x <= 7:
if x >= 1:
print("принадлежит")
else:
print("не принадлежит")
|
Последовательно выполните следующее.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки 1, 7, 13 и 19) принадлежат заштрихованным областям (B и D соответственно).
Область |
Условие 1 (x<13) |
Условие 2 (x<=7) |
Условие 3 (x>=1) |
Программа
выведет
|
Область обрабатывается верно |
A |
|
|
|
|
|
B |
|
|
|
|
|
C |
|
|
|
|
|
D |
|
|
|
|
|
E |
|
|
|
|
|
В столбцах условий укажите «да», если условие выполнится; «нет», если условие не выполнится; «—» (прочерк), если условие не будет проверяться; «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, поставьте «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет».
2. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Пояснение
1.
Область |
Условие 1
(x<13)
|
Условие 2
(x<=7)
|
Условие 3
(x>=1)
|
Программа
выведет
|
Область
обрабатывается
верно
|
A |
да |
да |
нет |
не принадлежит |
Да |
B |
да |
да |
да |
принадлежит |
Да |
C |
да |
нет |
— |
— |
Нет |
D |
нет |
— |
— |
— |
Нет |
E |
нет |
— |
— |
— |
Нет |
2. Возможная доработка (Паскаль):
if (x>=1) and (x<=7) or (x>=13) and (x<=19) then
write('принадлежит')
else
write('не принадлежит')
Возможны и другие способы доработки. Например:
if x>=1 then
if x<=7 then
write('принадлежит')
else
if x>=13 then
if x<=19 then
write('принадлежит')
else
write('не принадлежит')
else
write('не принадлежит')
else
write('не принадлежит')
Другой пример:
if abs(abs(x-10)-6)<=3 then
write('принадлежит')
else
write('не принадлежит')
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм,
позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, не делящихся на 9. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом не кратно 9, то выведите сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бейсик | Паскаль |
N = 20
DIM A(N) AS INTEGER
DIM I, J, MAX 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, max: 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, max;
for (i = 0; i < N; i++)
cin >> a[i];
...
}
|
алг
нач
цел N = 20
целтаб a[1:N]
цел i, j, max
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Eстественный язык |
Объявляем массив A из 20 элементов.
Объявляем целочисленные переменные I, J, MAX.
В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.
...
|
Python |
# допускается также
# использовать две
# целочисленные переменные j, max
a = []
n = 20
for i in range(0, n):
a.append(int(input()))
...
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
Содержание верного ответа
(допускаются иные формулировки ответа, не искажающие его смысла)
На языке Паскаль
max := 99;
for i := 1 to N do
if (a[i]>=100) and (a[i]<=998) and (a[i] mod 9<>0) and
(a[i]>max) then
max := a[i];
if max > 99 then writeln(max) else writeln(Не найдено);
На алгоритмическом языке
max := 99
нц для i от 1 до N
если a[i]>=100 и a[i]<=998 и mod(a[i],9)<>0 и a[i]>max
то
max := a[i]
все
кц
если max > 99
то
вывод max
иначе
вывод "Не найдено"
все
На языке Бейсик
MAX = 99
FOR I = 1 TO N
IF A(I)>=100 AND A(I)<=999 AND A(I) MOD 9<>0 AND A(I)>MAX THEN
MAX = A(I)
END IF
NEXT I
IF MAX > 99 THEN
PRINT MAX
ELSE
PRINT "Не найдено"
END IF
На языке Си
max = 99;
for (i = 0; i<n; i++)="" <p="">if (a[i]>99 && a[i]<999 && a[i]%9!=0 && a[i]>max)
max = a[i];
if (max>99)
cout << max;
else
cout << "Не найдено";
На естественном языке
Записываем в переменную MAX начальное значение, равное 99. В цикле от 1-ого элемента до 20-ого находим остаток от деления элемента исходного массива на 9. Если значение данного остатка не равно 0 и значение текущего элемента массива больше 99 и меньше 1000, то сравниваем значение текущего элемента массива со значением переменной MAX. Если текущий элемент массива больше MAX, то записываем в MAX значение этого элемента массива.
Переходим к следующему элементу.
После завершения цикла проверяем значение переменной MAX. Если оно больше 99, то выводим его, иначе выводим сообщение «Не найдено»
Ваш ответ:
Вы пропустили вопрос
Вопрос 26
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или два камня или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 17 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее 47. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 47 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 46.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.
Задание 1.
а) При каких значениях числа S Петя может выиграть в один ход?
Укажите все такие значения.
б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани.
Задание 2.
Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём (а) Петя не может выиграть за один ход, но (б) Петя может выиграть своим вторым ходом, независимо от того, как будет ходить Ваня.
Для указанного значения S опишите выигрышную стратегию Пети.
Задание 3.
Укажите значение S, при котором у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, однако у Вани нет стратегии, которая позволит ему гарантированно выиграть 1-м ходом.
Для указанного значения S опишите выигрышную стратегию Вани. Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход, в узлах — количество камней в позиции.
Пояснение
а) При каких значениях числа S Петя может выиграть в один ход?
Укажите все такие значения.
б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани.
Задание 2.
Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём (а) Петя не может выиграть за один ход, но (б) Петя может выиграть своим вторым ходом, независимо от того, как будет ходить Ваня.
Для указанного значения S опишите выигрышную стратегию Пети.
Задание 3.
Укажите значение S, при котором у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, однако у Вани нет стратегии, которая позволит ему гарантированно выиграть 1-м ходом.
Для указанного значения S опишите выигрышную стратегию Вани. Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход, в узлах — количество камней в позиции.
Пояснение.
Задание 1.
а) Петя может выиграть, если S = 24, …, 46. При меньших значениях S за один ход нельзя получить кучу, в которой больше 46 камней. б) Ваня может выиграть первым ходом (как бы ни играл Петя), если исходно в куче будет S = 23 камня. Тогда после первого хода Пети в куче будет 24 камня, или 25 камней, или 46 камней. Во всех случаях Ваня удваивает количество камней и выигрывает первым ходом.
Задание 2.
Возможные значения S: 21, 22. В этих случаях Петя, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 23 камней. Эта позиция разобрана в п. 1б. В ней игрок, который будет ходить (теперь это Ваня), выиграть не может, а его противник (то есть Петя) следующим ходом выиграет.
Задание 3.
Возможное значение S: 20. После первого хода Пети в куче будет 21, 22 или 40 камней. Если в куче станет 40 камней, Ваня удвоит количество камней и выиграет первым ходом. Ситуации, когда в куче 21 или 22 камня, уже разобраны в п. 2. В этих ситуациях игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.
В таблице изображено дерево возможных партий при описанной стратегии Вани. Заключительные позиции (в них выигрывает Ваня) подчеркнуты. На рисунке это же дерево изображено в графическом виде (оба способа изображения дерева допустимы).
Ваш ответ:
Вы пропустили вопрос
Вопрос 27
На вход в программе подаются сведения о сдаче экзаменов учениками 9─х классов, некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, не превосходит 100. Каждая из N строк имеет следующий формат: <Фамилия><Имя><оценки>
где<Фамилия>─строка, состоящая не более чем из 20 символов <Имя>─строка, состоящая не более чем из 15 символов <оценки>─через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия>, <Имя> и <оценки> разделены одним пробелом.
требуется написать программу, которая будет выводить на экран имена 3─х лучших по среднему баллу учеников.
Пояснение
type uchenik =record
Fam:string[20];
name:string[15];
b1,b2,b3:integer;
end;
var
srB:array [1..100] of real;
i,k,l,p,N,m1,m2,m3:integer;
max1,max2,max3,sr:real;
c:char;
a:array[1..100] of uchenik;
begin
read(n); //считали количество учеников
if n>=10 then begin
for I:=1 to n do
begin
a[i].fam:='';
repeat read(c);
a[i].fam:= a[i].fam+c;
until c=' '; //считали фамилию
repeat read(c);
a[i].name:= a[i].name+c;
until c=' '; //считали имя
read(m1); a[i].b1:=m1;
read(m2); a[i].b2:=m2;
read(m3); a[i].b3:=m3;
end; //считали балы
for i:= 1 to n do
srB[i]:= a[i].b1+a[i].b2+a[i].b3; //создали массив, содержащий средние балы
max1:=srB[1]; max2:=0;max3:=0;
for i:= 2 to n do begin //нашли три максимума
if srB[i]>max1 then begin max3:=max2; max2:=max1; max1:=srB[i]; k:=i; end
else if srB[i]>max2 then begin max3:=max2; max2:=srB[i]; l:=i; end
else if srB[i]>max3 then begin max3:=srB[i]; p:=i; end;
end;
for i:=1 to n do
if srB[i]>= max3 then writeln(a[i].fam, a[i].name);
end
else writeln('учеников не может быть меньше 10');
end.
Ваш ответ:
Вы пропустили вопрос