- Арифметическая и геометрическая прогрессия
- Егэ по информатике 2022 — задание 6 (метод перебора)
- Наибольшее или наименьшее значение переменной s (сумматор)
- Определить, какое число пропущено
- Перестановка в массиве. определить значение переменной
- Поиск наименьшего/наибольшего целого введенного числа d
- Простые задания с двумя линейными непересекающимися функциями
- Решение задания 6 егэ по информатике для 2021
- Сумма или разность двух линейных функций (while s — n или while s n)
- Усложненные задания с двумя линейными функциями
Арифметическая и геометрическая прогрессия
Ответ: 147
✍
Показать решение:
Разберем листинг программы:
- Результатом программы является вывод значения s.
- В цикле s меняется, увеличиваясь на k, при начальном значении s = 3.
- Цикл зависит от k. Выполнение цикла завершится при k >= 25. Начальное значение k = 1.
- В цикле k постоянно увеличивается на 2 -> значит, можно найти количество итераций цикла.
- Количество итераций цикла равно:
n = 25 / 2 ~ 12(т.к. k изначально равнялось 1, то в последнее, 12-е прохождение цикла, k = 25; условие цикла ложно)
s:=0;
k:=1;
while k < 25 do begin ...1 3 5 7 ... количество членов прогрессии - 12, т.к. 12 итераций цикла
s = ((2 * a1 d * (n — 1)) / 2) * n
где a1 — первый член прогрессии,
d — разность,
n — количество членов прогрессии (в нашем случае — кол-во итераций цикла)
(2 * 1 2 * 11) / 2 * 12 = 144
144 3 = 147📹 Видео
Егэ по информатике 2022 — задание 6 (метод перебора)
Сегодня посмотрим 6 задание из ЕГЭ по информатике 2022.
В этом уроке мы будем использовать метод перебора для решения различных задач из 6 заданияЕГЭ по информатике 2022.
Решать задачи будем на языке Python.
Задача (Классическая)
Определите, при каком наименьшем введённом значении переменной s программа выведет число 23. Для Вашего удобства программа представлена на трёх языках программирования.
| Паскаль | Python | C |
|---|---|---|
var s, n: integer;beginreadln(s); n := 50; while s > 0dobegin s := s div 2; n := n - 3end; writeln(n)end. | s = int(input()) n = 50while s > 0: s = s // 2 n = n - 3print(n) | #include <iostream>using namespace std;int main() { int s, n = 50;cin >> s; while (s > 0) { s = s / 2; n = n - 3; }cout << n << endl;return0; } |
Источник задачи:
https://kpolyakov.spb.ru/
Решение:
Решим задачу с помощью перебора.
Будем подставлять каждое число в диапазоне от 1 до 1000 в наш алгоритм с помощью цикла for. Узнаем, при каких значениях на выходе программа будет печатать число 23.
for i inrange(1, 1001): s = i n = 50 while s > 0: s = s // 2 n = n - 3 if n==23: print(i)
Вместо команды input() присваиваем в переменную n очередное число. В конце программы вместо команды print() пишем условие. Печатаем только те значения переменной i, которые приводят к тому, что в переменной n будет нужный результат (число 23).
Программа напечатает следующие числа:
256
257
258
259
260
261
262
263
264
265
266
267
268
и т.д.
Самое маленькое число, которое подходит, это 256.
Ответ:
256
Ещё одна задача-ловушка из 6 задания ЕГЭ по информатике 2022.
Задача (С подвохом)
Определите, сколько существует целых положительных значений, подаваемых на вход программе, при которых программа выведет 27.
| Паскаль | Python | C |
|---|---|---|
var s, n: integer;beginreadln(s); n := 3; while s*n < 243dobegin s := s div 3; n := n * 9end; writeln(n)end. | s = int(input()) n = 3while s*n < 243: s = s // 3 n = n * 9print(n) | #include <iostream>using namespace std;int main() { int s, n = 3;cin >> s; while (s*n < 243) { s = s / 3; n = n * 9; }cout << n << endl;return0; } |
Решение:
В этой программе подвох заключается в том, что, если мы будем перебирать числа от 1 до 1000, то программа зависнет и ничего не напечатает.
В таких случаях можно попробовать перебрать числа с 1000 до 1.
for i inrange(1000, 0, -1): s = i n = 3 while s*n < 243: s = s // 3 n = n * 9 if n==27: print(i)
Третий параметр «-1» для цикла for означает, что мы перебираем числа с 1000 до 1 в обратном порядке.
Программа напечатает числа с 80 до 27.
(80-27) 1=53 1=54
Если проверить на небольших числа, то мы должны прибавить 1 к разнице двух чисел.
Ответ:
54
Закрепим метод перебора в 6 задании из ЕГЭ по информатике 2022.
Задача (Закрепление)
(А.Г. Минак) Определите, при каком введённом значении переменной s программа выведет число 16.
| Паскаль | Python | C |
|---|---|---|
var s, n: integer;beginreadln(s); n := 0; while s*s < 101dobegin s := s 1; n := n 2end; writeln(n)end. | s = int(input()) n = 0while s*s < 101: s = s 1 n = n 2print(n) | #include <iostream>using namespace std;int main() { int s, n = 0;cin >> s; while (s*s < 101) { s = s 1; n = n 2; }cout << n << endl;return0; } |
Источник задачи:
https://kpolyakov.spb.ru/
Решение:
Здесь справляется стандартный перебор от 1 до 1000.
for i inrange(1, 1001): s = i n = 0 while s*s < 101: s = s 1 n = n 2 if n==16: print(i)
Ответ:
3
Счастливых экзаменов!
Наибольшее или наименьшее значение переменной s (сумматор)
Ответ: 202
📹 Видео
Определить, какое число пропущено
6_14:
ЕГЭ по информатике 2020 (Тематические тренировочные задания, 2020 г., Самылкина Н.Н., Синицкая И.В., Соболева В.В., задание № 2):
Сопоставьте формулу:
и программу, предназначенную для расчета по данной формуле. Программа написана правильно, а в формуле допущена ошибка.
Определите, где и какое число в формуле пропущено?
Паскаль:
| Бейсик: | Python: | |
С :
#include <iostream> | ||
Ответ: 3
Перестановка в массиве. определить значение переменной
В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 3, 0, 4, 6, 5, 1, 8, 2, 9, 7 соответственно, т.е. A[0] = 3, A[1] = 0 и т.д.
Определите значение переменной c после выполнения следующего фрагмента этой программы:
Ответ: 5
📹 Видео
Поиск наименьшего/наибольшего целого введенного числа d
Ответ: 67
✍
Показать решение:
Рассмотрим алгоритм программы:
- Цикл зависит от переменной k, которая каждую итерацию цикла увеличивается на значение d (вводимое). Цикл закончит «работу», когда k сравняется с 200 или превысит его (k >= 200).
- Результатом программы является вывод значения переменной s. В цикле s увеличивается на 64.
- Так как по заданию необходимо, чтобы вывелось число 192, то число повторов цикла определим так:
64 * x = 192 число повторов: x = 192 / 64 = 3
3 * d = 200 d = 200/3 ~ 66,66
66 66 66 = 198 (< 200)
т.е. цикл после трех прохождений еще продолжит работу, что нам не подходит.
67 67 67 = 201 (>200)
📹 Видео📹 Видеорешение на RuTube здесь
Простые задания с двумя линейными непересекающимися функциями
Ответ: 24
📹 Видео📹 Видеорешение на RuTube здесь (теоретическое решение)
Решение задания 6 егэ по информатике для 2021
6-е задание: «Программирование: основные конструкции»Уровень сложности — базовый,Требуется использование специализированного программного обеспечения — нет,Максимальный балл — 1,Примерное время выполнения — 4 минуты.
До ЕГЭ 2021 года — это было задание № 8 и задание № 19 ЕГЭ
Сумма или разность двух линейных функций (while s — n или while s n)
Ответ: 22
✍
Показать решение:
- В алгоритме присутствует цикл. Для того, чтобы разобраться в алгоритме, выполним трассировку начальных итераций цикла:
- Видим, что в условии разница между значениями составляет 5:
| № шага | условие цикла | s | n |
|---|---|---|---|
| 1 | 522-400=122 122 > 0 | 522-20=502 | 400-15=385 |
| 2 | 502-385=117 117 > 0 | 502-20=482 | 385-15=370 |
| 3 | 482-370=112 112 > 0 | … | … |
122 - 117 = 5 117 - 112 = 5 ...
122 / 5 = 24,4
24 * 5 = 120 (120 2 = 122)Это значит, что на 24-й итерации цикла переменные s и n получили такие значения, после которых условие еще осталось истинным: 2 > 0. На 25-м шаге выполняется это условие:
| № шага | условие цикла | s | n |
|---|---|---|---|
| 25 | 2 > 0 | s-20=… | n-15=… |
25 * 5 = 125 (125 - 3 = 122)| № шага | условие цикла | s | n |
|---|---|---|---|
| 25 | 2 > 0 | s-20=… | n-15=… |
| 26 | 3 < 0 | не выполняется | не выполняется |
25 * 20 = 500 (за 25 итераций)
522 - 500 = 22 (вычитаем из исходных данных)Результат: 22
📹 Видео
📹 Видеорешение на RuTube здесь (теоретическое решение)
Усложненные задания с двумя линейными функциями
Ответ: 16
✍
Показать решение:
Разберем листинг программы:
- В цикле переменная s постоянно увеличивается на единицу (работает как счетчик), а переменная n в цикле увеличивается на 2.
- В результате работы программы на экран выводится значение n.
- Цикл зависит от s, причем работа цикла завершится когда 2 * s2 >= 123.
- Необходимо определить количество прохождений цикла (итераций цикла): для этого определим такое наименьшее возможное s, чтобы 2 * s2 >= 123:
1 шаг: s = 2*12=2
2 шаг: s = 2*22=8
3 шаг: s = 2*32=18
...
7 шаг: s = 2*72=98 (меньше 123, т.е. цикл еще работает)
8 шаг: s = 2*82=128 (больше 123, цикл не работает! )Либо просто нужно было бы найти такое наименьшее возможное четное число >= 123, которое при делении на 2 возвращало бы вычисляемый корень числа:
s=124/2 = √62 - не подходит! s=126/2 = √63 - не подходит! s=128/2 = √64 = 8 - подходит!
n = 2 * 8 = 16📹 Видео





