Системы счисления. Задание: автомат
Бит чётности – это дополнительный контрольный бит,
который добавляется к двоичному коду так,
чтобы количество единиц в полученном двоичном коде стало чётным.
Если в исходном коде было чётное количество единиц, дописывается 0;
если нечётное – дописывается 1.
3.
4.
ТИП №1
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число
R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на 2
дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись
111001;
б) над этой записью производятся те же действия – справа дописывается остаток от
деления суммы цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи
исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число N, после обработки которого с помощью этого
алгоритма получается число, большее, чем 31.
В ответе это число запишите в десятичной системе счисления.
5.
Алгоритм решения.
1. Перевести число в Р=2
это число R 3110 = 111112
2. Отсекаем два последних разряда. 111 это число N ( его обрабатывать
бессмысленно), поэтому
3. к этому числу прибавляем 1. 1000 это тоже число N, которое мы будем
обрабатывать по алгоритму.
4. Проверяем по алгоритму.
a) 1000 10001
b) 10001 100010 =34 это число R оно больше 31,
Получили это число обработкой числа N=1000 (п.4a) и проверили по алгоритму
Ответ: 10002 = 810
6.
Задача №1.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему
новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописывается справа бит чётности: 0, если в двоичном
коде числа N было чётное число единиц, и 1, если нечётное.
3) К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на два разряда больше, чем в
записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число N, после обработки которого с помощью
этого алгоритма получается число, большее, чем 103.
В ответе это число запишите в десятичной системе.
7.
Задача №2.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему
новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописывается справа бит чётности: 0, если в двоичном
коде числа N было чётное число единиц, и 1, если нечётное.
3) К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на два разряда больше, чем в
записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число N, после обработки которого с помощью
этого алгоритма получается число, большее, чем 121.
В ответе это число запишите в десятичной системе.
8.
9.
ТИП №2
На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на 2
дописывается в конец числа (справа).
Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия – справа дописывается остаток
от деления суммы цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи
исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число R, большее, чем 116, которое может быть получено в
результате работы этого алгоритма.
В ответе это число запишите в десятичной системе.
10.
Алгоритм решения.
1. Перевести число в Р=2
11610 = 11101002 это число R
2. Отсекаем два последних разряда. 11101 это число N, при обработке
которого по алгоритму мы получим 116, т.е. R, а нам надо число большее, чем 116.
3. К этому числу прибавляем 1. 11110 это число N, которое мы будем
проверять, даст ли оно при обработке по алгоритму число R >116
4. Проверяем по алгоритму.
a) 11110 111100
б) 111100 1111000 это число R, которое получилось в результате
обработки по алгоритму, и оно >116.
Ответ: 11110002 = 12010
11.
ЕЩЁ одно объяснение той же задачи
12.
Операция над числом выполняется два раза, значит к числу N добавляется два разряда.
Определим, что может быть окончанием числа R, то есть разберем два последних разряда.
1. Если изначально сумма разрядов число нечётное.
— например 10101, то сначала оно будет преобразовано
а) в 101011 (добавили 1), т.к. сумма разрядов равна 3;
б) затем в 1010110 (добавили 0), т.к. сумма разрядов равна 4.
2. Если сумма разрядов число чётное.
— например 10001, то сначала оно будет преобразовано
а) в 110000 (добавили 0), т.к. сумма разрядов равна 2;
б) затем в 1100000 (добавили 0), т.к. сумма разрядов не изменилась.
13.
Теперь рассмотрим число 116.
При этом 11011002 — это число R,
11610 = 11101002
а исходное число N на два разряда меньше, то есть 111012.
Если мы выполним алгоритм для этого числа N (111012), то у нас получится,
11101002 это само число 116.
Поэтому берем N на единицу больше, то есть 111102.
Проверяем.
a)— 11110 — сумма разрядов чётная, добавляем 0 в конец 111100
б)— 111100— сумма разрядов четная, добавляем 0 в конец 1111000
То есть наименьшее число R > 116 — это 1111000 в двоичной или
120 в десятичной.
Ответ:R= 120
14.
Задача №3.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему
новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописывается справа бит чётности: 0, если в двоичном
коде числа N было чётное число единиц, и 1, если нечётное.
3) К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на два разряда больше, чем в
записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число R, большее 96, которое может быть
получено в результате работы этого алгоритма.
В ответе это число запишите в десятичной системе.
15.
Задача №4.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему
новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописывается справа бит чётности: 0, если в двоичном
коде числа N было чётное число единиц, и 1, если нечётное.
3) К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на два разряда больше, чем в
записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число R, большее 130, которое может быть
получено в результате работы этого алгоритма.
В ответе это число запишите в десятичной системе.
16.
Если надо найти N, то полученное число
должно быть всегда < R.
Если надо найти R, то полученное число
должно быть >заданного в условии числа.
17.
18.
Автомат обрабатывает натуральное число N по следующему
алгоритму:
1. Строится двоичная запись числа N.
2. Складываются все цифры полученной двоичной записи. В конец
записи (справа) дописывается остаток от деления полученной суммы
на 2.
3. Предыдущий пункт повторяется для записи с добавленной цифрой.
4. Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом:
1. Двоичная запись числа N: 1101.
2. Сумма цифр двоичной записи 3, остаток от деления на 2 равен 1,
новая запись 11011.
3. Сумма цифр полученной записи 4, остаток от деления на 2 равен 0,
новая запись 110110.
4. На экран выводится число 54.
Сколько различных чисел, принадлежащих отрезку [20; 50], могут
появиться на экране в результате работы автомата?
19.
Решение.
отрезок [20; 50]
Переведём 20 и 50 в Р=2
2010=101002; 5010= 1100102 красным обозначены добавленные биты,
т.е. 1012- это младшее число, которое по алгоритму даст число,
входящее в этот отрезок,
а 11002 — это старшее число, которое по алгоритму даст число,
входящее в этот отрезок.
В десятичной системе счисления это числа 5 и 12, т.е. 5 х 12
X=12-5+1=8
Ответ: 8 чисел
20.
Самостоятельно
№1 Автомат обрабатывает натуральное число N по следующему
алгоритму:
1. Строится двоичная запись числа N.
2. Складываются все цифры полученной двоичной записи. В конец
записи (справа) дописывается остаток от деления полученной суммы на
2.
3. Предыдущий пункт повторяется для записи с добавленной цифрой.
4. Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом:
1. Двоичная запись числа N: 1101.
2. Сумма цифр двоичной записи 3, остаток от деления на 2 равен 1,
новая запись 11011.
3. Сумма цифр полученной записи 4, остаток от деления на 2 равен 0,
новая запись 110110.
4. На экран выводится число 54.
Сколько различных чисел, принадлежащих отрезку [90; 160], могут
появиться на экране в результате работы автомата?
21.
№2. Автомат обрабатывает натуральное число N по следующему
алгоритму:
1. Строится двоичная запись числа N.
2. Складываются все цифры полученной двоичной записи. В конец
записи (справа) дописывается остаток от деления полученной суммы на
2.
3. Предыдущий пункт повторяется для записи с добавленной цифрой.
4. Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом:
1. Двоичная запись числа N: 1101.
2. Сумма цифр двоичной записи 3, остаток от деления на 2 равен 1, новая
запись 11011.
3. Сумма цифр полученной записи 4, остаток от деления на 2 равен 0,
новая запись 110110.
4. На экран выводится число 54.
Сколько различных чисел, меньших 50, могут появиться на экране в
результате работы автомата?
22.
ОТВЕТЫ
№1- 19
№2 — 12
23.
ДРУГИЕ ВАРИАНТЫ ЗАДАНИЯ
24.
Автомат обрабатывает натуральное число N (0 ≤ N ≤ 255) по следующему
алгоритму:
1) Строится восьмибитная двоичная запись числа N.
2) Все цифры двоичной записи заменяются на противоположные (0 на 1,
1 на 0).
3) Полученное число переводится в десятичную запись.
4) Из нового числа вычитается исходное, полученная разность выводится
на экран.
Пример.
Дано число N = 13. Алгоритм работает следующим образом:
1) Восьмибитная двоичная запись числа N: 00001101.
2) Все цифры заменяются на противоположные, новая запись 11110010.
3) Десятичное значение полученного числа 242.
4) На экран выводится число 242 – 13 = 229.
Какое число нужно ввести в автомат, чтобы в результате получилось
113?
25.
Решение.
Речь идет об однобайтовом представлении, которое применяется
только для положительных целых чисел , т.е. в этом формате
отсутствует знаковый разряд и
отрицательные числа.
Когда мы выполняем инверсию в 8 разрядах
(заменяем все 0 на 1 и наоборот), мы фактически вычитаем
исходное число из числа 255.
26.
Т.е. инверсия двоичной восьмибитной записи числа в сумме с
исходным числом дает
11111111, то есть 255.
(В исходном примере(13+242=255)
000011012 + 111100102 = 111111112.)
Следовательно, если исходное число равно N , то
инвертированное число равно 255 − N. Затем автомат
осуществляет вычитание, вычисляя 255 − 2N.
Поэтому, чтобы найти число, которое нужно ввести в автомат для
получения 113,
нужно решить уравнение 255 − 2N = 113. N=71.
Ответ: 71
27.
Автомат обрабатывает натуральное число N по следующему алгоритму::
1) Строится двоичная запись числа N.
2) Запись «переворачивается», то есть читается справа налево. Если
при этом появляются ведущие нули, они отбрасываются.
3) Полученное число переводится в десятичную запись и выводится
на экран.
Какое наибольшее число, не превышающее 100, после обработки
автоматом даёт результат 9?
Решение.
1. Переводим 9 и 100 в Р=2 9=10012; 100= 11001002
2. Число д.б. наибольшим, но меньше 11001002
3. Переворачиваем число 9 10012
• Тогда исходное число должно начинаться на 10012 и далее пойдут
нули, которые отброшены при перевороте числа, т.е. 100100002,
• но 100100002=14410 > 100. Делим на 2, т.е. убираем один 0.
Это число 10010002=7210
Ответ : 72
28.
Автомат обрабатывает натуральное число N по
следующему алгоритму:
1) Строится двоичная запись числа N.
2) Из записи удаляются все нули.
3) Полученное число переводится в десятичную
запись и выводится на экран.
Сколько разных значений будет показано на
экране автомата при последовательном вводе
всех натуральных чисел от 10 до 2500?
29.
Ответ: 11
Решение: посмотрим, что происходит при удалении нулей. Возьмём число 10:
10102 => 11. Ясно, что после удаления нулей мы можем получать только числа,
которые в двоичной записи содержат только единицы. Попробуем узнать,
какое максимальное количество единиц мы можем получить.
2500 > 2048 = 211 . 211 выглядит как 1000000000002 (единица и 11 нулей),
предыдущее число 2047 выглядит как 111111111112 (11 единиц).
12 единиц – это число 212-1 = 4096 – 1 = 4095, его получить мы не можем, т.е. 11
единиц наш максимум.
Если мы начнём с правого края заменять единицы на нули, то получим:
111111111112
111111111102
111111111002
.
100000000002
11 разных чисел. Эти же 11 чисел можно получить и из других исходных чисел
(например, одну единицу можно получить из числа 100000000002
и из числа 100002), но в любом случае количество различных чисел, которые
будут выведены в результате на экран, равно 11.
30.
Автомат обрабатывает натуральное число N (0≤N≤255) по
следующему алгоритму:
1) Строится восьмибитная двоичная запись числа N.
2) Удаляется последняя цифра двоичной записи.
3) Запись «переворачивается», то есть читается справа
налево.
4) Полученное число переводится в десятичную запись и
выводится на экран.
Какое наибольшее число, меньшее 100, не изменится
после обработки автоматом?
31.
Ответ: 90
Решение: посмотрим, что происходит с числом во время работы автомата.
Предположим, исходное число в двоичной системе счисления выглядело как
abcdefgh2
После удаления последней цифры оно превратилось в abcdefg2.
После переворота оно превратилось в gfedcba2. Если оно равно исходному,
то получаем:
abcdefgh2
0gfedcba2
Т.е. а соответствует 0. Тогда число выглядит как 0bcddcb02
Попробуем найти это число.
Если b = 1, то к числу нужно будет прибавить 64 + 2 = 66.
Если c = 1, то к числу нужно будет прибавить 32 + 4 = 36
Если d = 1, то к числу нужно будет прибавить 16 + 8 = 24.
Попробуем набрать максимальную сумму, которая меньше 100. Это 66 + 24 =
90, 010110102. Это и есть ответ.
32.
Автомат обрабатывает натуральное число N по
следующему алгоритму:
1. Строится двоичная запись числа N без ведущих нулей.
2. Если в полученной записи единиц больше, чем нулей,
то справа приписывается единица. Если нулей больше
или нулей и единиц поровну, справа приписывается
ноль.
3. Полученное число переводится в десятичную запись и
выводится на экран.
Какое наименьшее число, превышающее 36, может
получиться в результате работы автомата?
33.
Ответ: 39
Решение: подбором.
Возьмём число 36. В двоичной СС оно выглядит как 1001012. Это –
результат работы алгоритма, т.е.
1001002, где 10010 – число, которое было подано на вход
алгоритму, 0 – что дописал алгоритм. По условию нам нужно
найти число, большее 36. Начнём перебирать числа:
1001012 (37) – не подходит, т.к. на конце должен стоять 0, не 1.
1001102 (38) – не подходит, т.к. на конце должна стоять 1, не 0.
1001112 (39) – подходит.
34.
Автомат обрабатывает натуральное число N по следующему алгоритму.
1. Строится двоичная запись числа N.
2. Удаляются первая слева единица и все следующие непосредственно за
ней нули. Если после этого в числе не остаётся цифр, результат этого
действия считается равным нулю.
3. Полученное число переводится в десятичную запись.
4. Новое число вычитается из исходного, полученная разность выводится на
экран.
Пример. Дано число N = 11. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 1011.
2. Удаляется первая единица и следующий за ней ноль: 11.
3. Десятичное значение полученного числа 3.
4. На экран выводится число 11 – 3 = 8.
Сколько разных значений будет показано на экране автомата при
последовательном вводе всех натуральных чисел от 500 до 5000?
35.
Ответ: 5
Решение: посмотрим, что происходим с числом при работе
автомата.
500 = 1111101002.
Удаляем ведущую 1 и считаем разность:
1111101002 — 0111101002 = 1000000002 (единица и 8 нулей)
Понятно, что в результате работы алгоритма мы всегда будем
получать единицу и далее нули. 1000000002 число, которое можно
получить, максимальное получается после обработки числа 5000:
10011100010002 -> 10000000000002 (единица и 12 нулей).
Все числа:
единица и 8 нулей, единица и 9 нулей, единица и 10 нулей,
единица и 11 нулей, единица и 12 нулей.
Всего 5 различных чисел.
36.
Самостоятельно
1) Автомат обрабатывает целое число N (0 ≤ N ≤ 255) по следующему
алгоритму:
1) Строится восьмибитная двоичная запись числа N.
2) Все цифры двоичной записи заменяются на противоположные (0
на 1, 1 на 0).
3) Полученное число переводится в десятичную запись.
4) Из нового числа вычитается исходное, полученная разность
выводится на экран.
Какое число нужно ввести в автомат, чтобы в результате
получилось 45?
37.
2) Автомат обрабатывает целое число N (0 ≤ N ≤ 255) по следующему
алгоритму:
1) Строится восьмибитная двоичная запись числа N.
2) Все цифры двоичной записи заменяются на противоположные (0
на 1, 1 на 0).
3) Полученное число переводится в десятичную запись.
4) Из нового числа вычитается исходное, полученная разность
выводится на экран.
Какое число нужно ввести в автомат, чтобы в результате
получилось «–21»?
38.
3) Автомат обрабатывает натуральное число N по следующему
алгоритму:
1) Строится двоичная запись числа N.
2) Запись «переворачивается», то есть читается справа
налево. Если при этом появляются ведущие нули, они
отбрасываются.
3) Полученное число переводится в десятичную запись и
выводится на экран.
Какое наибольшее число, не превышающее 500, после
обработки автоматом даёт результат 13?
39.
4) Автомат обрабатывает натуральное число N по следующему
алгоритму:
1) Строится двоичная запись числа N.
2) Запись «переворачивается», то есть читается справа
налево. Если при этом появляются ведущие нули, они
отбрасываются.
3) Полученное число переводится в десятичную запись и
выводится на экран.
Какое наибольшее число, не превышающее 500, после
обработки автоматом даёт результат 13?
40.
5) Автомат обрабатывает натуральное число N (0≤N≤255)
по следующему алгоритму:
1) Строится восьми битная двоичная запись числа N.
2) Удаляются средние 4 цифры.
3) Полученное число переводится в десятичную запись и
выводится на экран.
Какое наименьшее число, большее 130, после
обработки автоматом даёт результат 10?
41.
6) Автомат обрабатывает натуральное число N (0≤N≤255)
по следующему алгоритму:
1) Строится восьми битная двоичная запись числа N.
2) Удаляются средние 4 цифры.
3) Полученное число переводится в десятичную запись и
выводится на экран.
Какое наибольшее число, меньшее 110, после
обработки автоматом даёт результат 7?
42.
7) Автомат обрабатывает натуральное число N < 256 по
следующему алгоритму:
1) Строится восьмибитная двоичная запись числа N.
2) Инвертируются все разряды исходного числа, кроме
последней единицы и стоящих за ней нулей (0
заменяется на 1, 1 на 0).
3) Полученное число переводится в десятичную систему
счисления.
Чему равен результат работы алгоритма для N = 211?
43.
8) Автомат обрабатывает натуральное число N по
следующему алгоритму:
1) Строится двоичная запись числа N.
2) Удаляются две последние цифры.
3) Полученное число переводится в десятичную запись и
выводится на экран.
Сколько разных значений будет показано на экране
автомата при последовательном вводе всех
натуральных чисел от 20 до 600?
44.
ОТВЕТЫ
№1- 105
№5 — 134
№2 — 138
№6 – 107
№3 — 352
№7 – 45
№4 — 112
№8 – 146
45.
№1. Автомат обрабатывает трёхзначное натуральное число N по
следующему алгоритму.
1. Из цифр, образующих десятичную запись N, строятся
наибольшее и наименьшее возможные двузначные числа (числа
не могут начинаться с нуля).
2. На экран выводится разность полученных двузначных чисел.
Пример. Дано число N = 351. Алгоритм работает следующим
образом.
1. Наибольшее двузначное число из заданных цифр – 53,
наименьшее – 13.
2. На экран выводится разность 53 – 13 = 40.
Чему равно количество чисел N на отрезке [100; 200], в
результате обработки которых на экране автомата появится
число 30?
46.
Решение:
Пусть исходное число записывалось как abc (a*100 + b*10 + c).
Предположим, что a >= b >= c. Тогда наибольшее двузначное
число, которое можно составить, выглядит как ab (a*10 + b), а вот
наименьшее – либо cb (если c <> 0), либо b0 (если c = 0), либо a0
(если и b, и c равны 0). Т.к. разность равна 30, наименьшее число
выглядит как cb.
(a*10 + b) — (c*10 + b) = 30
a-c=3
47.
Возможные варианты:
a = 9, c = 6 (6 a = 8, c = 5 (5 a = 7, c = 4 (4 a = 6, c = 3 (3 a = 5, c = 2 (2 a = 4, c = 1 (1 a = 3, c = 0 — вариант невозможен, т.к. в таком случае cb — не двузначное число
В исходном числе a, b и c могут стоять в любом порядке.
Т.к. исходное число должно принадлежать отрезку [100; 200], подходит
только последний вариант: a = 4, c = 1 (1 (т.е. с), a и b могут меняться местами. Всего 4 варианта, когда а стоит на
втором месте (14*), и 4 варианта, когда а стоит на 3-м месте (1*4), но число
144 повторяется дважды, поэтому на самом деле общее количество
вариантов не 4+4=8, а 7.
Ответ: 7
48.
Самостоятельно
№1. Автомат обрабатывает трёхзначное натуральное число N по
следующему алгоритму.
1. Из цифр, образующих десятичную запись N, строятся
наибольшее и наименьшее возможные двузначные числа
(числа не могут начинаться с нуля).
2. На экран выводится разность полученных двузначных чисел.
Пример. Дано число N = 351. Алгоритм работает следующим
образом.
1. Наибольшее двузначное число из заданных цифр – 53,
наименьшее – 13.
2. На экран выводится разность 53 – 13 = 40.
Чему равно количество трёхзначных чисел N, в результате
обработки которых на экране автомата появится число 35?
49.
Ответ: 4
Решение: сперва рассмотрим только числа abc, a>= b >= c. Остальные числа
получим перестановкой a, b, c.
Наибольшее число будет равно ab, а вот наименьшее – либо cb (если
c <> 0), либо b0 (если c = 0), либо a0 (если и b, и c равны 0).
Разность равна 35, единственный вариант, который подходит – это bc.
(a*10 + b) – (b*10 + 0) = 35
(a-b)*10 + b = 35
b = 5, a = 8, c = 0
0 в начале числа стоять не может, поэтому получаем только следующие
комбинации:
850, 805, 580, 508
Всего 4 числа.
50.
Самостоятельно
Автомат обрабатывает трёхзначное натуральное число N по
следующему алгоритму.
1. Из цифр, образующих десятичную запись N, строятся наибольшее
и наименьшее возможные двузначные числа (числа не могут
начинаться с нуля).
2. На экран выводится разность полученных двузначных чисел.
Пример. Дано число N = 351. Алгоритм работает следующим образом.
1. Наибольшее двузначное число из заданных цифр – 53, наименьшее
– 13.
2. На экран выводится разность 53 – 13 = 40.
Чему равно наибольшее возможное трёхзначное число N, в
результате обработки которого на экране автомата появится число 50?
Какое наименьшее число превышающее 100 может получиться в результате работы автомата
Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности
Public user contributions licensed under cc-wiki license with attribution required
Какое наименьшее число превышающее 100 может получиться в результате работы автомата
1 . На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о длине этих дорог (в километрах).
Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите длину дороги из пункта Е в пункт Л. В ответе запишите целое число.
Показать подсказку
Верный ответ: 22
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 19113.
2 . Логическая функция F задаётся выражением
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c.
Показать подсказку
Верный ответ: cab
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18952.
3 . В файле приведён фрагмент базы данных «Родственники» о родственных отношениях между людьми. База данных состоит из двух таблиц. Таблица «Люди» содержит записи о людях — Фамилия ИО, пол («м» или «ж») и город рождения. Таблица «Родственные связи» содержит информацию о родительских связях — ID родителя из таблицы «Люди» и ID ребенка и той же таблицы. На рисунке приведена схема базы данных
Используя информацию из приведённой базы данных, у скольких мужчин есть два ребенка. В ответе запишите только число.
Показать подсказку
Верный ответ: 72
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 19061.
4 . Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для буквы А использовали кодовое слово 001, для буквы Б – кодовое слово 10. Какова наименьшая возможная суммарная длина всех шести кодовых слов?
Показать подсказку
Верный ответ: 16
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18981.
5 . Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:
1. Строится двоичная запись числа N.
2. Складываются все цифры полученной двоичной записи. В конец записи (справа) дописывается остаток от деления полученной суммы на 2.
3. Если количество единиц в двоичной записи числа N больше количества нулей, справа дописывается 0, иначе 1.
4. Результат переводится в десятичную систему счисления и выводится на экран.
Сколько различных чисел, принадлежащих отрезку [50; 80], может получиться в результате работы автомата?
Показать подсказку
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18982.
6 . Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Опусти, принуждающая Черепаху опустить хвост.
Запись Повтори k [Команда1 Команда2. КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 18 [Вперёд 19 Направо 60 Вперёд 30 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
Показать подсказку
Верный ответ: 922
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 21202.
7 . Музыкальный фрагмент был записан в формате моно, оцифрован и сохранён в виде файла без использования сжатия данных. Размер полученного файла –8 Мбайт. Затем тот же музыкальный фрагмент был записан повторно в формате стерео (двухканальная запись) и оцифрован с разрешением в раза 2 выше и частотой дискретизации в 1,25 раз большей, чем в первый раз. Сжатие данных не производилось.
Укажите размер файла в Мбайт, полученного при повторной записи. В ответе запишите только целое число, единицу измерения писать не нужно.
Показать подсказку
Верный ответ: 40
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18930.
8 . Вася составляет 5-буквенные слова, в которых есть только буквы А, Р, Б, У, З, причём буква Р используется в каждом слове хотя бы 2 раза. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?
Показать подсказку
Верный ответ: 821
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18931.
9 . Откройте файл электронной таблицы, содержащей вещественные числа – результаты ежечасного измерения температуры воздуха на протяжении трёх месяцев. Найдите количество дней в мае, когда температура в 09:00 была выше, чем средняя температура в этот день.
Показать подсказку
Верный ответ: 21
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18932.
10 . С помощью текстового редактора определите, сколько раз, не считая сносок, в файле встречается местоимение «кто» (со строчной буквы) в тексте романа А.С. Пушкина «Капитанская дочка». В ответе укажите только число.
Показать подсказку
Верный ответ: 20
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18933.
11 . Каждый сотрудник предприятия получает электронный пропуск, на котором записаны личный код, состоящий из двух частей. Первая часть кода содержит 7 символов, каждый из которых может быть одной из 52 латинских букв(заглавной или строчной). Вторая часть кода содержит 4 символа, каждый из которых может быть одной из десятичных цифр. При этом в базе данных сервера формируется запись, содержащая этот код и дополнительную информацию о пользователе. Для представления кода используют посимвольное кодирование, все символы в пределах одной части кода кодируют одинаковым минимально возможным для этой части количеством битов, а для кода в целом выделяется минимально возможное целое количество байтов. Для хранения данных о 45 пользователях потребовалось 2385 байт. Сколько байтов выделено для хранения дополнительной информации об одном пользователе? В ответе запишите только целое число – количество байтов.
Показать подсказку
Верный ответ: 45
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18907.
12 . Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может
выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
заменить (v, w)
нашлось (v)
Дана программа для исполнителя Редактор:
НАЧАЛО ПОКА нашлось (333) ИЛИ нашлось (555) ЕСЛИ нашлось (555) ТО заменить (555, 3) ИНАЧЕ заменить (333, 5) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ
Какая строка получится в результате применения приведённой выше программы к строке, состоящей из 69 идущих подряд цифр 5? В ответе запишите полученную строку.
Показать подсказку
Верный ответ: 553
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18881.
13 . В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть задана IP-адресом 191.239.130.3 и маской сети 255.255.A.0, где A — некоторое допустимое для записи маски число. Определите минимальное значение A, для которого для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество единиц в левых двух байтах не менее суммарного количества единиц в правых двух байтах.
В ответе укажите только число.
Показать подсказку
Верный ответ: 224
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 21658.
14 . Значение арифметического выражения 103 ⋅ 7 103 − 5 ⋅ 7 57 + 98 записали в системе счисления с основанием 7. Найдите сумму цифр получившегося числа и запишите её в ответе в десятичной системе счисления.
Показать подсказку
Верный ответ: 280
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18910.
15 . Укажите наименьшее целое значение А, при котором выражение (y–x 350)∨(3y–2x>45) истинно для любых целых положительных значений x и y.
Показать подсказку
Верный ответ: 15
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 19019.
16 . Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = n + F(n – 1), если n чётно,
F(n) = 2 × F(n – 2), если n > 1 и при этом n – нечётно.
Чему равно значение функция F(26)?
Показать подсказку
Верный ответ: 4122
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 19209.
17 . В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 1 до 10 000 включительно. Найдите числа, которые делятся на 6 и не делятся на 5, 13, 18, 22. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число(без пробела). Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.
Показать подсказку
Верный ответ: 400 9912
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 19075.
18 . Квадрат разлинован на N × N клеток (2
Показать подсказку
Верный ответ: 4507 3066
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18914.
Для ответа на задания 19-21 изучите предложенный ниже текст.
Петя и Ваня играют в игру «Камни». Первым ход всегда делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 73. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 73 или больше камней. В начальный момент в первой куче было 7 камней, во второй куче – S камней; 1 ≤ S ≤ 65.
19 . Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети.
Укажите минимальное значение S, когда такая ситуация возможна.
Показать подсказку
Верный ответ: 17
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 19131.
20 . Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
− Петя не может выиграть за один ход;
− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.
Показать подсказку
Верный ответ: 2932
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 19132.
21 . Найдите минимальное значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Показать подсказку
Верный ответ: 28
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 19133.
22 . В файле (ods / xls / xlsx) содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы могут выполняться только последовательно.
В файле информация о процессах представлена в виде таблицы. В первой колонке таблицы указан идентификатор процесса (ID), во второй колонке таблицы — время его выполнения в миллисекундах, в третьей колонке перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс является независимым, то в таблице указано значение 0.
Типовой пример организации данных в файле:
Определите минимальное время, через которое завершится выполнение всей совокупности процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно и один процесс может сменять другой завершившийся мгновенно.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
Показать подсказку
Верный ответ: 20
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 21203.
23 . У исполнителя Калькулятор есть три команды, которым присвоены номера:
1. Прибавить 1 2. Прибавить 2 3. Умножить на 3
Сколько существует программ, которые преобразуют исходное число 1 в число 38, и при этом траектория вычислений содержит число 8 и не содержит чисел 10 и 11?
Показать подсказку
Верный ответ: 23374
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18919.
24 . В текстовом файле находится цепочка из символов латинского алфавита A, B, C, D, E. Найдите количество цепочек длины 3, удовлетворяющих следующим условиям:
1-й символ – один из символов B, C или D;
2-й символ – один из символов B, D, E, который не совпадает с первым
3-й символ – один из символов B, C, E, который не совпадает со вторым.
Показать подсказку
Верный ответ: 1280
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18947.
25 . Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [7178551; 7178626], простые числа. Выведите все найденные простые числа в порядке возрастания, через пробел.
Показать подсказку
Верный ответ: 7178609 7178617 7178621 7178623
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18921.
26 . Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше, чем суммарный объём архивируемых файлов.
Известно, какой объём занимает файл каждого пользователя. Системный администратор старается сохранить файлы как можно большего размера. При этом используя выделенную память максимально эффективно – сохраняя файлы меньшего размера, если файлы большего не могут быть сохранены.
В первой строке входного файла находятся два числа: S – размер свободного места на диске (натуральное число, не превышающее 10 000) и N – количество пользователей (натуральное число, не превышающее 1000). В следующих N строках находятся значения объёмов файлов каждого пользователя (все числа натуральные, не превышающие 100), каждое в отдельной строке.
Запишите в ответе два числа: сначала число сохраненных файлов, затем размер наименьшего сохраненного файла. Через пробел.
Пример входного файла:
100 4 70 10 25 3
При таких исходных данных можно сохранить три файла – 70, 25, 3. Поэтому ответ должен содержать два числа – 3 и 3.
Показать подсказку
Верный ответ: 1054 732
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18949.
27 . Имеется набор данных, состоящий из пар положительных целых чисел.
Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 13 и при этом была минимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число – минимально возможную сумму, соответствующую условиям задачи.
Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 10 000.
В ответе укажите два числа: сначала значение искомой суммы для файла А, затем для файла B.
Показать подсказку
Верный ответ: 67089 200157480
P.S. Нашли ошибку в задании? Пожалуйста, сообщите о вашей находке 😉
При обращении указывайте id этого вопроса — 18977.
Досрочный егэ информатика 2022 решение
Скачать pdf демоверсии варианта ->
1 задание. Досрочный ЕГЭ 2022 информатика, ФИПИ:
На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).
П1 | П2 | П3 | П4 | П5 | П6 | П7 |
---|---|---|---|---|---|---|
1 | — | 11 | 10 | 7 | ||
2 | — | 10 | 8 | |||
3 | 11 | 10 | — | 13 | ||
4 | — | 13 | 3 | |||
5 | 10 | 13 | — | 5 | ||
6 | 7 | 8 | 13 | — | ||
7 | 3 | 5 | — |
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе.
В таблице в левом столбце указаны номера пунктов, откуда совершается движение, в первой строке – куда.
Определите сумму длин дорог между пунктом А и пунктом Б, и между пунктом Е и пунктом К.
Ответ: 16
✍ Решение:
- Рядом с каждой вершиной напишем количество ребер для данной вершины и в скобках — количество ребер у соседних вершин:
Вторым соседом Г является вершина А. Т.е., А = П3 .
13 + 3 = 16
Ответ: 16
2 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Логическая функция F задаётся выражением
¬(x → z) ∨ (y ≡ w) ∨ ¬y
На
рисунке приведён частично заполненный фрагмент таблицы истинности
функции F, содержащий неповторяющиеся строки.
переменных x, y, z, w.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из.
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
. | . | . | . | F |
0 | 0 | 0 | ||
0 | 0 | |||
1 | 1 | 0 | 0 |
В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.).
Ответ: xzyw
- ✎ Способ 1. Программирование:
Язык PascalAbc.net:
begin writeln('x':7, 'y':7, 'z':7,'w':7); for var x:=false to true do for var y:=false to true do for var z:=false to true do for var w:=false to true do if not((not (x = y)) or (y=w) or (not y)) then writeln(x:7, y:7, z:7,w:7); end.
begin writeln(‘x’:7, ‘y’:7, ‘z’:7,’w’:7); for var x:=false to true do for var y:=false to true do for var z:=false to true do for var w:=false to true do if not((not (x
Сопоставим полученный результат с исходной таблицей:
x y z w False True False False False True True False True True False False True True True False
1 столбец | 2 столбец | 3 столбец | 4 столбец | F |
0 | 0 | 0 | ||
0 | 0 | |||
1 | 1 | 0 | 0 |
Ответ: xzyw
3 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
В файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады июня 2021 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в
соответствующее поле Количество упаковок, шт. занесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня.
Заголовок таблицы имеет следующий вид.
ID операции | Дата | ID магазина | Артикул | Тип операции | Количество упаковок, шт. | Цена, руб./шт. |
Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.
Артикул | Отдел | Наименование | Ед. изм. | Количество в упаковке | Поставщик |
Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.
ID магазина | Район | Адрес |
На рисунке приведена схема указанной базы данных.
Используя информацию из приведённой базы данных, определите на сколько увеличилось количество упаковок яиц диетических, имеющихся в наличии в магазинах Заречного района, за период с 1 по 8 июня включительно.
В ответе запишите только число.
Ответ: 956
✍ Решение:
- В таблице Товар находим наименование товара — Яйцо диетическое (можно использовать фильтр). Запоминаем его артикул — 15 .
- В таблице Магазин ищем магазины Заречного района, выписываем их ID: M3 , M9 , M11 , M14 .
- В таблице Движение товаров выделяем первую строку и ставим фильтр на всю строку.
- В столбце ID Магазина отмечаем только ID из предыдущего пункта. В столбце Артикул — выбираем 15 .
Проверяем даты — все они входят в указанный диапазон дат.
Выбираем Тип операции — Поступление. выделяем значение столбца и смотрим сумму в столбце Количество упаковок — 1420. Затем выбираем Продажа; количество упаковок — 454.
1420 - 454 = 956
Ответ: 956
4 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Для кодирования некоторой последовательности, состоящей из букв О, Н, Г, К, Р, решили использовать неравномерный двоичный код, гарантирующий однозначное декодирование. Для букв К и Р использовали соответственно кодовые слова 00, 011.
Найдите наименьшую возможную длину кодовой последовательности для слова КОНОГОН.
Ответ: 15
✍ Решение:
К = 2 О = 3*2 = 6 Н = 2*2 = 4 Г = 3 --- итого: 15
Ответ: 15
5 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Автомат обрабатывает натуральное число N по следующему алгоритму:
1. Строится двоичная запись числа N .
2. К полученной записи дописываются разряды. Если число четное справа дописывается 10, если число нечетное – слева дописывается 1 и справа 01.
3. Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом:
1. Двоичная запись числа N: 1101.
2. Число нечетное, следовательно слева дописываем 1, справа 01 – 1+1101+01 = 1110101.
3. На экран выводится число 117.
В результате работы автомата на экране появилось число, большее 516. Для какого наименьшего значения N данная ситуация возможна?
Ответ: 65
- ✎ Решение аналитическим способом:
- Заметим, что после второго пункта условия задачи получаются только четные числа (т.к. если число в двоичной системе заканчивается на 0, то оно четное). Таким образом, нас будут интересовать только четные числа.
- Наименьшим возможным числом, превышающим 77, является число 78. С ним и будем работать.
- Переведем 78 в двоичную систему счисления. Используя компьютер это можно сделать с помощью программистского режима калькулятора. Либо в консоли интерпретатора Python набрать bin(78). Получим:
1001110
int('10011',2)
uses school; begin var n_ := 1; while True do begin var n := n_; var binN := bin(n); if n mod 2 = 0 then binN := binN + '10' // добавили 10, строковое значение в 2-й с.с. else binN := '1' + binN + '01';// добавили слева 1, права 01 n := dec(binN, 2); // перевод из двоичной в 10-ю с.с. if n > 516 then begin println(n_); break end; n_ += 1; end; end.
uses school; begin var n_ := 1; while True do begin var n := n_; var binN := bin(n); if n mod 2 = 0 then binN := binN + ’10’ // добавили 10, строковое значение в 2-й с.с. else binN := ‘1’ + binN + ’01’;// добавили слева 1, права 01 n := dec(binN, 2); // перевод из двоичной в 10-ю с.с. if n > 516 then begin println(n_); break end; n_ += 1; end; end.
Ответ: 65
аналитическое решение Видео на RuTube здесь -> решение с программированием (на Паскале) подобного задания Видео на RuTube здесь —>
6 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Найдите минимальное значение переменной s , подаваемое на вход программе, для которого в результате работы программы на экран будет выведено значение 8? Для Вашего удобства программа представлена на четырёх языках программирования.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
var n, s: integer; begin readln(s); s := (s - 10) div 7; n := 1; while s > 0 do begin n := n * 2; s := s - n; end; write(n) end.
var n, s: integer; begin readln(s); s := (s — 10) div 7; n := 1; while s > 0 do begin n := n * 2; s := s — n; end; write(n) end.
алг нач цел s, n ввод s s = div(s-10, 7) n := 1 нц пока s > 0 n := n * 2 s := s - n кц вывод n кон
s = int(input()) s = (s - 10) // 7 n = 1 while s > 0: n = n*2 s = s – n print(n)
s = int(input()) s = (s — 10) // 7 n = 1 while s > 0: n = n*2 s = s – n print(n)
#include using namespace std; int main() { int n, s; cin >> s; n = 1; s = (s – 10) / 7; while(s > 0) { n = n * 2; s = s - n; } cout n; return 0; }
#include using namespace std; int main() < int n, s; cin >> s; n = 1; s = (s – 10) / 7; while(s > 0) < n = n * 2; s = s - n; >cout
Ответ: 59
- ✎ Способ 1 (программный):
Pascalabc.net:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
begin var s_ := 500; while s_ > -10 do begin var s := s_; s := (s - 10) div 7; var n := 1; while s > 0 do begin n := n * 2; s := s - n; end; if n = 8 then writeln(s_); s_ := s_ - 1; end; end.
begin var s_ := 500; while s_ > -10 do begin var s := s_; s := (s — 10) div 7; var n := 1; while s > 0 do begin n := n * 2; s := s — n; end; if n = 8 then writeln(s_); s_ := s_ — 1; end; end.
Ответ: 59
7 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Для хранения произвольного растрового изображения размером 486×720 пикселей отведено 80 Кбайт памяти без учёта размера заголовка файла. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. После сохранения информации о пискселях изображение сжимается. Размер итогового файла после сжатия на 15% меньше исходного. Какое максимальное количество цветов можно использовать в изображении?
Ответ: 4
✍ Решение:
- ✎ Способ 1 (программный):
Pascalabc.net:
## // I = n * m * i -> // -> i = I / (n * m) var I:=80.0; I:=80*1024*8; // в биты I:=I/0.85; // с учетом сжатия var nm:=486*720; var ipix:= (I / nm).Floor; // отсекаем дробную часть var maxColor:=power(2,ipix); print(maxColor)
## // I = n * m * i -> // -> i = I / (n * m) var I:=80.0; I:=80*1024*8; // в биты I:=I/0.85; // с учетом сжатия var nm:=486*720; var ipix:= (I / nm).Floor; // отсекаем дробную часть var maxColor:=power(2,ipix); print(maxColor)
8 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Петя составляет слова из слова ПАРУС и записывает их в алфавитном
порядке в список. Вот начало списка:
1. ААААА 2. ААААП 3. ААААР 4. ААААС 5. ААААУ 6. АААПА …
Укажите номер первого слова в списке, начинающегося на У, в котором две буквы А не стоят рядом?
Ответ: 2527
✎ Решение с использованием программирования:
1 2 3 4 5 6 7
## var d:='ПАРУС'.Order // сортируем по алфавиту .Cartesian(5) .Numerate // нумерация .where(\(i,w)->w.First = 'У') .where(\(i,w)->w.Pairwise.All(\(a,b)-> not ((a = 'А')and(b = 'А')))) .first[0].print // выводим именно номер
## var d:=’ПАРУС’.Order // сортируем по алфавиту .Cartesian(5) .Numerate // нумерация .where(\(i,w)->w.First = ‘У’) .where(\(i,w)->w.Pairwise.All(\(a,b)-> not ((a = ‘А’)and(b = ‘А’)))) .first[0].print // выводим именно номер
Cartesian(5) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 5-знаковых слов из заданных символов
* LINQ (Language Integrated Query) — язык интегрированных запросов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
begin var n := 1; var str := 'АПРСУ'; foreach var s1 in str do foreach var s2 in str do foreach var s3 in str do foreach var s4 in str do foreach var s5 in str do begin var words := s1 + s2 + s3 + s4 + s5; if (words[1] = 'У') and (not ('АА' in words)) then begin print(n, words); exit; end; n += 1; end; print(n) end.
begin var n := 1; var str := ‘АПРСУ’; foreach var s1 in str do foreach var s2 in str do foreach var s3 in str do foreach var s4 in str do foreach var s5 in str do begin var words := s1 + s2 + s3 + s4 + s5; if (words[1] = ‘У’) and (not (‘АА’ in words)) then begin print(n, words); exit; end; n += 1; end; print(n) end.
9 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел. Определите количество строк таблицы, в которых квадрат суммы максимального и минимального чисел в строке больше суммы квадратов трёх оставшихся.
Ответ: 2640
✍ Решение:
- Добавляем сверху строку для подписей:
=(МАКС(A2:E2)+МИН(A2:E2))^2
=(МАКС(A2:E2)^2+МИН(A2:E2)^2)
=A2^2+B2^2+C2^2+D2^2+E2^2-G2
=ЕСЛИ(F2>H2;1;0)
Ответ: 2640
10 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
С помощью текстового редактора определите, сколько отдельных слов «счастие» в тексте романа Л.Н.Толстого «Анна Каренина». При подсчете учитывать регистр слова.
Ответ: 7
✍ Решение:
- Откройте файл в Miscrosoft Word.
- Включите расширенный поиск.
- Отметьте галочкой пункты Учитывать регистр и Только слово целиком.
- Выберите пункт Выделение при чтении — Выделить всё.
Ответ: 7
11 задание. Досрочный варианта ЕГЭ по информатике 2022, ФИПИ:
При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 250 символов. Идентификатор может содержать десятичные цифры и символы из специального набора из 1560 символов. В базе данных для хранения сведений о каждом идентификаторе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование идентификаторов, все символы кодируют одинаковым и минимально возможным количеством бит.
Определите минимальный объем памяти в Кбайт, который необходимо выделить для хранения идентификаторов для 32768 пользователей.
Ответ: 11008
- Количество бит на один идентификатор:
10 (цифр) + 1560 = 1570 1570 11 11 бит на хранение одного символа 250*11 = 2750 бит на хранение целого идентификатора 2750 / 8344*32768/1024 = 11008Ответ: 11008
12 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w)
Б) нашлось (v)Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w . Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор.
На выполнение Редактору дана следующая программа:
ПОКА нашлось(1111) или нашлось(8888) ЕСЛИ нашлось(1111) ТО заменить(1111, 8) ИНАЧЕ заменить(8888, 11) КОНЕЦ ПОКАНа вход программе подана строка из 86 подряд идущих символов 8. Какая строка будет получена в результате работы алгоритма.
Ответ: 88
✎ Решение с использованием программирования:
PascalABC.NET:
Вариант 1:1 2 3 4 5 6 7 8 9 10 11begin var s := '8'*86; while ('1111' in s) or ('8888' in s) do begin if '111' in s then s := s.Replace('1111', '8', 1) else s := s.Replace('8888', '11', 1); end; print(s); end.begin var s := '8'*86; while ('1111' in s) or ('8888' in s) do begin if '111' in s then s := s.Replace('1111', '8', 1) else s := s.Replace('8888', '11', 1); end; print(s); end.
1 2 3 4 5 6 7s = 86 * '8' while "1111" in s or "8888" in s: if "111" in s: s = s.replace( "1111", "8", 1 ) else: s = s.replace( "8888", "11", 1 ) print(s)s = 86 * '8' while "1111" in s or "8888" in s: if "111" in s: s = s.replace( "1111", "8", 1 ) else: s = s.replace( "8888", "11", 1 ) print(s)
13 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Какова длина самого длинного пути из города А в город М?Ответ: 8
-->14 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
3 ∙ 162018 - 2 ∙ 81028 - 3 ∙ 41100 - 21050 - 2022записали в 4-ричной системе счисления. Сколько троек в полученной записи?
Ответ: 4027
✎ Решение с использованием программирования:
uses school; begin var numb: Biginteger; numb := 3*Biginteger.Pow(16,2018) - 2* Biginteger.Pow(8,1028)-3*Biginteger.Pow(4,1100)-Biginteger.Pow(2,1050)-2022; var n:=numb.ToBase(4).CountOf('3'); print(n) end.uses school; begin var numb: Biginteger; numb := 3*Biginteger.Pow(16,2018) - 2* Biginteger.Pow(8,1028)-3*Biginteger.Pow(4,1100)-Biginteger.Pow(2,1050)-2022; var n:=numb.ToBase(4).CountOf('3'); print(n) end.
Ответ: 4027
15 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m ».
Для какого наименьшего натурального числа А формула(ДЕЛ(x, 3) → ¬ДЕЛ(x, 5)) ∨ (x + A ≥ 70)истинна (т.е. принимает значение 1) при любом целом натуральном значении переменной х .
Ответ: 55
✎ Решение с использованием программирования:
PascalABC.NET:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18begin for var A := 1 to 500 do begin var ok := 1; for var x := 1 to 1000 do begin if ((x mod 3 = 0) = (x mod 5 > 0)) or (x + A >= 70) = false then begin ok := 0; break; end; end; if (ok = 1) then begin print(A); break; end; end; end.begin for var A := 1 to 500 do begin var ok := 1; for var x := 1 to 1000 do begin if ((x mod 3 = 0) 0)) or (x + A >= 70) = false then begin ok := 0; break; end; end; if (ok = 1) then begin print(A); break; end; end; end.
16 задание. Досрочный вариант ЕГЭ по информатике 2021, ФИПИ:
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 2, при n < 3 F(n) = F(n–1) + F(n-2) - n, при n >2 и n - четно F(n) = F(n-2) - F(n-1) + 2n, при n > 2 и n - нечетноЧему равно значение функции F(30)?
Ответ: 58
✎ Решение с использованием программирования:
PascalABC.NET:1 2 3 4 5 6 7 8 9 10 11 12 13function F(n: integer): integer; begin if n < 3 then F := 2; if (n mod 2 = 0) and (n > 2) then F := F(n - 1)+F(n - 2) - n; if (n > 2) and (n mod 2 <> 0) then F := F(n - 2) - F(n - 1) + 2*n end; begin print(F(30)) end.function F(n: integer): integer; begin if n < 3 then F := 2; if (n mod 2 = 0) and (n >2) then F := F(n - 1)+F(n - 2) - n; if (n > 2) and (n mod 2 <> 0) then F := F(n - 2) - F(n - 1) + 2*n end; begin print(F(30)) end.
Ответ: 58
17 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые — значения от 1 до 10 000 включительно. Определите количество пар последовательности, в которых хотя бы одно число кратно минимальному числу в последовательности, кратному 17. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Ответ: 24 17613
✎ Решение с использованием программирования:
1 2 3 4 5 6 7 8## var data := ReadLines('107_17.txt').Select(t -> t.ToInteger).ToArray; var minData17:=data.Where(w->w.Divs(17)).min; // минимальный var twins := data.NWise(2).Select(ar->ar.Order.ToArray) .Where(ar->(ar[0].Divs(minData17)) or (ar[1].Divs(minData17))); twins.Count.Print; var sums:=twins.Select(t->t[0]+t[1]); // массив сумм sums.max.print;## var data := ReadLines('107_17.txt').Select(t -> t.ToInteger).ToArray; var minData17:=data.Where(w->w.Divs(17)).min; // минимальный var twins := data.NWise(2).Select(ar->ar.Order.ToArray) .Where(ar->(ar[0].Divs(minData17)) or (ar[1].Divs(minData17))); twins.Count.Print; var sums:=twins.Select(t->t[0]+t[1]); // массив сумм sums.max.print;
✎ Решение в Excel:
- Запустите программу Excel.
- В меню Файл выберите пункт Открыть и щелкните Обзор.
- Рядом с полем Имя файла выберите в списке Все файлы (*|*) . Откройте файл задания ( 107_17.txt - Далее, Далее, Готово).
- В столбце B найдем числа кратные 17 – в ячейку будем выводить само число, иначе, если число не кратно 17, - будем выводить какое-то большое число, например, 100000 (так как будем потом искать минимум).
B1 =ЕСЛИ(ОСТАТ(A1;17)=0;A1;100000)
С1 =МИН(B:B) ответ: 1003
D1 =ЕСЛИ(ИЛИ(ОСТАТ(A1;C$1)=0;ОСТАТ(A2;C$1)=0);A1+A2;"")
Е1 =МАКС(D:D) 17613
F1 =СЧЁТ(D:D) 24
18 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
Квадрат разлинован на N×N клеток ( 1 ). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю.
Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может.
Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа – сначала максимальную сумму, затем минимальную.
Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.
Пример входных данных:
Для указанных входных данных ответом должна быть пара чисел:
38 22
Ответ: 2174 1145
формула для O31: =O15
Попасть в данную ячейку O15 Робот мог, либо двигаясь из ячейки N15 , либо из O14 .
формула для N31: =N15+O31
формула для O30: =O14+O31
В ячейке N30 Робот собирает монету из текущей ячейки (берем значение из исходной таблицы - N14 ), и затем у него альтернатива движения: либо в ячейку N31 , либо в O30 . В задании необходимо найти, как максимальную, так и минимальную сумму монет. Найдем сначала максимальную. Для этого введите формулу в N30 :
=N14+МАКС(N31;O30)
Заполним формулы для стен. Для ячеек со стеной диапазона C24:F24 значение формул будут такими же, как у соответствующих им ячеек нижней строки - C31:F31 . Скопируйте формулы у этих ячеек и вставьте их для диапазона C24:F24 .
Ответ: 2174 1145
19 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) 1 камень или увеличить количество камней в куче в два раза.
Например, пусть в одной куче 10 камней, а в другой 5 камней, такую позицию в игре будем обозначать (10, 5). Тогда за один ход можно получить любую из четырёх позиций: (11, 5), (10, 6), (20, 10) и (10, 10).
Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 223. В начальный момент в первой куче было 17 камней, во второй куче – S камней, 1 ≤ S ≤ 205 .
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Известно, что Ваня выиграл своим первым ходом после неудачного хода Пети. При каком минимальном значении S такое возможно?
Ответ: 52
Решение подобного задания:
20 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Известно, что Петя имеет выигрышную стратегию. Укажите два значения при которых:
Найденные значения запишите в ответе в порядке возрастания.
Ответ: 94 102
21 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Известно, что Ваня имеет выигрышную стратегию за один или два хода, при этом не имеет выигрышной стратегии в один ход. Найдите минимальное значение S , при котором это возможно.
Ответ: 93
22 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Ниже записана программа. Получив на вход число s , эта программа печатает два числа. При каком наименьшем значении s после выполнения программы на экран будет выведено сначала число 10, затем 19.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
var s, P, Q, K1, K2: longint; begin readln(s); P := 10; Q := 8; K1 := 0; K2 := 0; while s = 100 do begin s := s + P; K1 := K1 + 1; end; while s >= Q do begin s := s - Q; K2 := K2 + 1; end; K2 := K2 + s; K1 := K1 + s; writeln(K1); write(K2); end.
var s, P, Q, K1, K2: longint; begin readln(s); P := 10; Q := 8; K1 := 0; K2 := 0; while s = Q do begin s := s - Q; K2 := K2 + 1; end; K2 := K2 + s; K1 := K1 + s; writeln(K1); write(K2); end.
алг нач цел s, P, Q, K1, K2 P := 10 Q := 8 K1 := 0 K2 := 0 нц пока s = Q s := s - Q K2 := K2 + 1 кц K1 := K1 + s K2 := K2 + s вывод K1 вывод K2 кон
s = int(input()) P = 10 Q = 8 K1 = 0 K2 = 0 while s 100: s = s + P K1 = K1 + 1 while s >= Q: s = s – Q K2 = K2 + 1 K1 += s K2 += s print(K1, K2)
s = int(input()) P = 10 Q = 8 K1 = 0 K2 = 0 while s = Q: s = s – Q K2 = K2 + 1 K1 += s K2 += s print(K1, K2)
#include using namespace std; int main(){ int P = 10, Q = 8, s; int K1 = 0, K2 = 0; cin >> s; while (s 100) { s = s + P; K1 = K1 + 1; } while (s >= Q) { s = s - Q; K2 = K2 + 1; } K1 = K1 + s; K2 = K2 + s; cout K1 endl K2; return 0; }
#include using namespace std; int main()< int P = 10, Q = 8, s; int K1 = 0, K2 = 0; cin >> s; while (s while (s >= Q) < s = s - Q; K2 = K2 + 1; >K1 = K1 + s; K2 = K2 + s; cout
Ответ: 70
✍ Решение:
- ✎ Способ 1. Программирование:
Язык Pascal:
var s, s_, P, Q, K1, K2: longint; begin s_ := -100; while true do begin s := s_; P := 10; Q := 8; K1 := 0; K2 := 0; while s = 100 do begin s := s + P; K1 := K1 + 1; end; while s >= Q do begin s := s - Q; K2 := K2 + 1; end; K2 := K2 + s; K1 := K1 + s; if (k1 = 10) and (k2 = 19) then begin print(s_); break; end; s_ := s_ + 1; end; end.
var s, s_, P, Q, K1, K2: longint; begin s_ := -100; while true do begin s := s_; P := 10; Q := 8; K1 := 0; K2 := 0; while s = Q do begin s := s - Q; K2 := K2 + 1; end; K2 := K2 + s; K1 := K1 + s; if (k1 = 10) and (k2 = 19) then begin print(s_); break; end; s_ := s_ + 1; end; end.
Ответ: 70
23 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 2
2. Умножить на 2
Первая команда увеличивает число на экране на 2, вторая – вдвое. Программа для исполнителя – это последовательность команд.
Сколько существует таких программ, которые исходное число 1 преобразуют в число 52 и при этом траектория вычислений программы содержит число 16?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.
Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.
Ответ: 105
- Сначала найдём количество программ для перехода от числа 1 к числу 16, а затем от числа 16 к 52.
- Напишем программу, реализующую алгоритм поиска результата, вычисления по рекуррентным формулам организуем с помощью рекурсии.
- Рекурсивная функция, которая возвращает количество программ для преобразования числа start в число x :
Паскаль: решение №1 (траектория от 1 к 52)
function f(start, x: integer): integer; begin var k: integer; if start > x then result := 0 else if start = x then result := 1 else begin // обязательные операторные скобки k := k + f(start + 2, x) + f(start *2, x); result := k; end; end; begin writeln(f(1, 16)*f(16, 52)); end.
function f(start, x: integer): integer; begin var k: integer; if start > x then result := 0 else if start = x then result := 1 else begin // обязательные операторные скобки k := k + f(start + 2, x) + f(start *2, x); result := k; end; end; begin writeln(f(1, 16)*f(16, 52)); end.
Паскаль: решение №2 (траектория от 52 к 1)
function func( start, x: integer ): integer; var k: integer; begin if x < start then func := 0 // если число x меньше нач. значения, кол-во программ равно 0 else if x = start then func := 1 // если число x = нач. значению, кол-во программ равно 1 else begin k := func( start, x-2 ); //учитываем кол-во программ предыдущего числа // если число чётное, нужно добавить ещё кол-во программ для числа x//2: if x mod 2 = 0 then k := k + func( start, x div 2 ); func := k; end; end; begin writeln( func(1,16) * func(10,52) ); end.
Ответ: 105
24 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
Текстовый файл состоит из символов A, B и C.
Определите максимальное количество идущих подряд пар символов AB или CB в прилагаемом файле.
Искомая подпоследовательность должна состоять только из пар AB, или только из пар CB, или только из пар AB и CB в произвольном порядке следования этих пар.
Для выполнения этого задания следует написать программу.
Ответ: 65
- Паскаль:
Решение 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
begin assign(input, '107_24.txt'); var s := readstring; var maxLen := 0; var i := 1; var k := 0; while i = Length(s) - 1 do begin if (s[i] = 'A') and (s[i + 1] = 'B') or (s[i] = 'C') and (s[i + 1] = 'B') then begin k := k + 1; i := i + 2; if k > maxLen then maxLen := k; end else begin k := 0; i += 1; end; end; println(maxLen); end.
begin assign(input, '107_24.txt'); var s := readstring; var maxLen := 0; var i := 1; var k := 0; while i maxLen then maxLen := k; end else begin k := 0; i += 1; end; end; println(maxLen); end.
1 2 3 4 5 6 7 8 9 10 11
begin assign(input, '107_24.txt'); var s := readstring; var maxLen := 0; s := s.Replace('CB', 'AB'); for var i := 1 to 100 do if s.Contains('AB' * i) then begin //1 шаг: AB 2 шаг: ABAB . maxLen := i; end; println(maxLen); end.
begin assign(input, '107_24.txt'); var s := readstring; var maxLen := 0; s := s.Replace('CB', 'AB'); for var i := 1 to 100 do if s.Contains('AB' * i) then begin //1 шаг: AB 2 шаг: ABAB . maxLen := i; end; println(maxLen); end.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
f= open("107_24.txt") s = f.read() k=0 m=0 i=0 while ilen(s)-1: if (s[i]=='A' and s[i+1]=='B') or (s[i]=='C' and s[i+1]=='B'): k+=1 i+=2 if k>m: m=k else: k=0 i+=1 print(m)
25 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ « ? » означает ровно одну произвольную цифру;
— символ « * » означает любую последовательность цифр произвольной длины; в том числе « * » может задавать и пустую последовательность.
Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске 12345?6?8 и делящиеся на 17 без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им частные от деления на 17.
Ответ:
123450668 7261804 123451688 7261864 123456618 7262154 123457638 7262214 123458658 7262274 123459678 7262334
1 2 3 4 5 6 7 8 9 10
begin for var i:=123450608 to 123459698 do begin if i mod 17 = 0 then begin if ((i div 100)mod 10 =6) and(i mod 10=8) then println(i, i div 17) end; end; end.
begin for var i:=123450608 to 123459698 do begin if i mod 17 = 0 then begin if ((i div 100)mod 10 =6) and(i mod 10=8) then println(i, i div 17) end; end; end.
вместо диапазона делителей [2; число] использовать диапазон [2; округл(√n)]
Пример: число 8 = 2 * 4 Достаточно рассмотреть цикл от 2 до округл(√8) (=2) если 8 делится на 2 и 8/2 не равно 2, то делители: 2 и 4 (8/2)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
begin var divCount := 2; for var n := 174457 to 174505 do begin var divs := new List; for var d := 2 to round(sqrt(n)) do if n mod d = 0 then begin divs.Add(d); if d <> n div d then divs.Add(n div d); if divs.Count > divCount then break; end; if divs.Count = divCount then Println(divs[0], divs[1]); end; end.
begin var divCount := 2; for var n := 174457 to 174505 do begin var divs := new List; for var d := 2 to round(sqrt(n)) do if n mod d = 0 then begin divs.Add(d); if d <> n div d then divs.Add(n div d); if divs.Count > divCount then break; end; if divs.Count = divCount then Println(divs[0], divs[1]); end; end.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
from math import sqrt for n in range(174457, 174505+1): divs = [] q = int(sqrt(n)) for d in range(2,q+1): # перебор делителей if n % d == 0: if d == n//d: # если точный квадратный корень divs = divs + [d] else: divs = divs + [d, n//d] if len(divs) > 2: break # если превысили кол-во делителей - прерываем цикл if len(divs) == 2: print(divs) # вывод делителей
from math import sqrt for n in range(174457, 174505+1): divs = [] q = int(sqrt(n)) for d in range(2,q+1): # перебор делителей if n % d == 0: if d == n//d: # если точный квадратный корень divs = divs + [d] else: divs = divs + [d, n//d] if len(divs) > 2: break # если превысили кол-во делителей - прерываем цикл if len(divs) == 2: print(divs) # вывод делителей
1 2 3 4
for n in range(174457, 174505+1): divs = [d for d in range(2, n) if n % d == 0] # range(2, n), т.к. два делителя, не считая 1 и самого числа if len(divs) == 2: print( *divs )
for n in range(174457, 174505+1): divs = [d for d in range(2, n) if n % d == 0] # range(2, n), т.к. два делителя, не считая 1 и самого числа if len(divs) == 2: print( *divs )
✎ Решение (оптимизированный вариант 3):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
begin var divs := new integer[2]; var divCount := 2; for var n := 174457 to 174505 do begin var i := 0; // для индекса массива for var d := 2 to n div 2 do begin if n mod d = 0 then begin if i < divCount then // чтобы индекс не выходил за границы массива divs[i] := d; inc(i); end; if i > divCount then break; end; if i = divCount then println(divs) end; end.
begin var divs := new integer[2]; var divCount := 2; for var n := 174457 to 174505 do begin var i := 0; // для индекса массива for var d := 2 to n div 2 do begin if n mod d = 0 then begin if i < divCount then // чтобы индекс не выходил за границы массива divs[i] := d; inc(i); end; if i >divCount then break; end; if i = divCount then println(divs) end; end.
1 2 3 4 5 6 7 8 9
divCount = 2 # нужное количество делителей for n in range(174457,174505+1): divs = [] # чистим список делителей for d in range(2,n//2+1): # перебор делителей if n % d == 0: divs = divs + [d] # добавляем делитель в список if len(divs) > divCount: break if len(divs) == divCount: print( divs )
divCount = 2 # нужное количество делителей for n in range(174457,174505+1): divs = [] # чистим список делителей for d in range(2,n//2+1): # перебор делителей if n % d == 0: divs = divs + [d] # добавляем делитель в список if len(divs) > divCount: break if len(divs) == divCount: print( divs )
26 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
В лесополосе осуществляется посадка деревьев. Причем саженцы высаживают рядами на одинаковом расстоянии.
Через какое-то время осуществляется аэросъемка, в результате которой определяется, какие саженцы прижились. Необходимо определить ряд с максимальным номером, в котором есть подряд ровно 11 неприжившихся саженцев, при условии, что справа и слева от них саженцы прижились.
В ответе запишите сначала наибольший номер ряда, затем наименьший номер из неприжившихся мест.
Входные данные.
В первой строке входного файла 26.txt находится число N - количество занятых мест (натуральное число, не превышающее 10 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: номер ряда и номер занятого места (на котором растет деревце).
Выходные данные:
Два целых неотрицательных числа: максимальный номер ряда, где нашлись обозначенные в задаче места, и минимальный номер подходящего места.
Пример входного файла:
7 40 30 40 34 50 125 50 129 50 64 50 68 50 70
Ответ для примера (при поиске 3 подряд идущих неприжившихся саженцах):
50 65
Ответ: 2261 5087
✎ Способ 1. В Excel:
- Запустите программу Excel.
- В меню Файл выберите пункт Открыть и щелкните Обзор.
- Рядом с полем Имя файла выберите в списке Все файлы(*|*).
- Щёлкните Далее, а затем установите флажок рядом с пунктом Пробел:
=ЕСЛИ(И(A2=A1;B2-B1=12);B1+1;"")
✎ Способ 2. Программирование: Теперь построим алгоритм на языках программирования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
begin var f: text; assign(f, 'proba.txt'); reset(f); var s, n: integer; read(f, s); // 100 read(f, n); //4 var (s, n) := ReadInteger2; var i := 0; var data: array of integer; data := new integer[n]; while not EOF(f) do // begin readln(f, data[i]); // var data:= ReadArrInteger(n); i += 1; end; data.Sort; var summa := 0; var count := 0; for count := 0 to data.Length do begin if summa + data[count] > s then break; summa += data[count]; end; print(count); var itog := 0; var zapas := s - summa; for i := 0 to data.Length do if data[i] - data[count - 1] = zapas then itog := data[i] else break; print(itog) end.
begin var f: text; assign(f, 'proba.txt'); reset(f); var s, n: integer; read(f, s); // 100 read(f, n); //4 var (s, n) := ReadInteger2; var i := 0; var data: array of integer; data := new integer[n]; while not EOF(f) do // begin readln(f, data[i]); // var data:= ReadArrInteger(n); i += 1; end; data.Sort; var summa := 0; var count := 0; for count := 0 to data.Length do begin if summa + data[count] > s then break; summa += data[count]; end; print(count); var itog := 0; var zapas := s - summa; for i := 0 to data.Length do if data[i] - data[count - 1]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
f = open('26.txt') data = f.readlines() # массив строк , readlines s = data[0].split() # ['8200', '970'] s = int(s[0]) # 8200 - объем св места на диске del(data[0]) # первая строка больше не нужна, удаляем ее for i in range(0, len(data)): # цикл для преобразование в int data[i]=int(data[i]) data=sorted(data) # сортируем полученный массив для удобства работы summa = 0 for count in range (0,len(data)): if summa + data[count] > s: break # если сумма больше - прерываем цикл summa += data[count] # формируем сумму, добавляя отсортированные элементы # как только сумма превысила s, произойдёт выход из цикла по оператору break, # а в переменной count останется количество добавленных значений print (count) # макс число файлов в архиве # вычисляем запас, который мы можем уменьшить с помощью замены одного выбранного значения на другое: zapas = s - summa # теперь выбираем из массива данных те значения, которые могут быть выбраны: # разность между таким значением и наибольшим выбранным элементом data[count-1] должна быть не больше, чем zapas: for i in range (0,len(data)): if data[i] - data[count-1] zapas: itog = data[i] print(itog) # максимальный размер файла
f = open('26.txt') data = f.readlines() # массив строк , readlines s = data[0].split() # ['8200', '970'] s = int(s[0]) # 8200 - объем св места на диске del(data[0]) # первая строка больше не нужна, удаляем ее for i in range(0, len(data)): # цикл для преобразование в int data[i]=int(data[i]) data=sorted(data) # сортируем полученный массив для удобства работы summa = 0 for count in range (0,len(data)): if summa + data[count] > s: break # если сумма больше - прерываем цикл summa += data[count] # формируем сумму, добавляя отсортированные элементы # как только сумма превысила s, произойдёт выход из цикла по оператору break, # а в переменной count останется количество добавленных значений print (count) # макс число файлов в архиве # вычисляем запас, который мы можем уменьшить с помощью замены одного выбранного значения на другое: zapas = s - summa # теперь выбираем из массива данных те значения, которые могут быть выбраны: # разность между таким значением и наибольшим выбранным элементом data[count-1] должна быть не больше, чем zapas: for i in range (0,len(data)): if data[i] - data[count-1]