1. Определите, при каком наименьшем введённом значении переменной s программа выведет число 32. Для Вашего удобства программа представлена на четырёх языках программирования.
var s, n: integer; begin readln (s); s := (s − 21) div 10; n := 1; while s > 0 do begin n := n * 2; s := s − n; end; writeln(n) end.
s = int(input()) s = (s − 21) // 10 n = 1 while s > 0: n = n * 2 s = s — n print(n)
алг нач цел n, s ввод s s := div( (s − 21), 10) n := 1 нц пока s > 0 n := n * 2 s := s − n кц вывод n кон
#include iostream> using namespace std; int main() < int s, n; cin >> s; s = (s − 21) / 10; n = 1 ; while (s > 0) < n = n * 2; s = s − n; > cout ; return 0; >
2. Известно, что при вводе некоторых положительных значений переменных s и x данная программа выводит число 15. Определите, при каком наименьшем введённом значении переменной x это возможно. Для Вашего удобства программа представлена на четырёх языках программирования.
s = int(input()) x = int(input()) s = 100*s + x n = 1 while s 2021: s = s + 5*n n = n + 1 print(n)
#include using namespace std; int main() int s, x, n; cin >> s >> x; s = 100*s + x; n = 1; while (s 2021) s = s + 5*n; n = n + 1; > cout ; return 0; >
var s, x, n: integer; begin readln(s, x); s := 100*s + x; n := 1; while s 2021 do begin s := s + 5*n; n := n + 1 end; writeln(n) end.
алг нач цел s, x, n ввод s, x s := 100*s + x n := 1 нц пока s 2021 s := s + 5*n n := n + 1 кц вывод n, нс кон
Источник: mif69.blogspot.com
Задание 14 | ЕГЭ по информатике | ДЕМО-2023
Краткие рекомендации по решению заданий КЕГЭ по информатике с учётом изменений 2022 года
Для построения таблицы истинности лучше написать небольшую программу на Питон for x in range (2): for y in range (2): for w in range (2): for z in range (2): if (((not w or not x) == (not z or y)) and (y or w)): print (x,y,w,z)
not x or y или x
• если перед not стоит операция сравнения, необходимо выражение с not взять в скобки
• если всё выражение истинно, можно не писать в конце «==1:»
• если всё выражение ложно, необходимо взять его в скобки и в конце обязательно написать
3 Знание о технологии хранения, поиска и сортировки информации в реляционных базах данных – задание на поиск в базе данных. Очень часто удобно использовать функцию ВПР.
4 Умение кодировать и декодировать информацию. Как правило, задача на условие Фано и лучше построить двоичное дерево
5 Формальное исполнение алгоритма, записанного на естественном языке, или умение создавать линейный алгоритм для формального исполнителя с ограниченным набором команд.
Как решить задание 12 ЕГЭ по информатике?
1. Если алгоритм предполагает перевод чисел из десятичной системы в двоичную и из двоичной в десятичную, то удобно воспользоваться функциями Excel (категория «Инженерные»): ДВ.В.ДЕС() и ДЕС.В.ДВ().
2. Можно написать небольшую программу на Питон. Например, для задачи с таким условием:
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R cледующим образом.
1. Строится двоичная запись числа 4N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 10000 преобразуется в запись 100001;
б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на 2.
Полученная таким образом запись является двоичной записью искомого числа R. Укажите такое наименьшее число N, для которого результат работы алгоритма больше 241. В ответе это число запишите в десятичной системе счисления.
Программа может выглядеть так: for i in range(10,100): x=i*4 y=bin(x)[2:] for j in range(2): if y.count(‘1’)%2==0:
y+=’0′ else: y+=’1′ r=int(y,2) if r>241: print(i)
6 Знание основных конструкций языка программирования, понятия переменной, оператора присваивания
Для решения этой задачи можно устроить перебор значений (главное определиться с интервалом перебора) Задание из Демо-2020: Определите, при каком наименьшем введённом значении переменной s программа выведет число 64.
Программа: Переборное решение:
s = int(input()) for i in range(10,200):
Задание 2. Дана последовательность операторов. Сколько раз будет повторен цикл и какими будут значения переменных a, b, s?
Ответ: 2 раза будет повторен цикл, a=3, b=6, s=9.
Задание 3. Требовалось написать программу вычисления факториала. Программист написал его неправильно. Ниже представлена программа, в которой содержатся ошибки. Найдите ошибки и внесите исправления.
Задание 4. Проанализируйте следующий цикл. В чём его особенность?
Значение переменной «c» будет типом boolean, то есть значение будет true или false. Выражение c:=a=b проверяет равенство «a» и «b» и будет делать проверку, пока a
Задание 5. Запишите на языке Паскаль программы решения задач № 26-30 из параграфа 2.4. Используйте оператор while.
Задание 6. Дана последовательность операторов. Сколько раз будет повторен цикл и какими будут значения переменных a, b, s?
Ответ: 4 раза будет повторен цикл, a=5, b=16, s=21.
Задание 7. Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введен ноль) и подсчет суммы и среднего арифметического введенных положительных чисел. Используйте оператор repeat.
Задание 8. Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введен ноль) и определение максимального (наибольшего) из введённых чисел. Используйте оператор repeat.
Задание 9. Напишите программы вычисления наибольшего общего делителя НОД двух целых чисел:
Задание 10. Сколько раз будет выполнен цикл?
а) for i:=0 to 15 do s:=s+1;
б) for i:=10 to 15 do s:=s+1;
в) for i:=-l to 1 do s:=s+1;
г) for i:=10 to 10 do s:=s+1;
д) k:=5; for i:=k-1 to k+1 do s:=s+1;
Задание 11. Напишите программу, которая 10 раз выводит на экран ваши имя и фамилию.
Задание 12. Напишите программу, выводящую на экран изображение шахматной доски, где черные клетки изображаются звёздочками, а белые – пробелами.
Задание 13. Напишите программу, которая вычисляет сумму:
а) первых n натуральных чисел;
б) квадратов первых n натуральных чисел;
в) всех чётных чисел в диапазоне от 1 до n;
г) всех двузначных чисел.
Задание 14. Напишите программу, которая генерирует 10 случайных чисел в диапазоне от 1 до 20, выводит эти числа на экран и вычисляет их среднее арифметическое.
Задание 15. Запишите на языке Паскаль программы решения задач 33 и 34 из параграфа 2.4. Используйте оператор for.
В программе мы вводим изначальную численность населения. Далее она считает количество населения в каждый год и итогом будет количество населения через три года.
Задание 16. Напишите программу, которая выводит на экран таблицу степеней двойки (от нулевой до десятой).
Десятую степень не добавили в цикл, она отрабатывает после цикла и выводит эту степень ровно по вертикали.
Задание 17. Напишите программу, которая выводит на экран таблицу умножения на n (n – целое число от 2 до 10, вводимое с клавиатуры).
Задание 18. Какой из трёх рассмотренных операторов цикла является, по вашему мнению, основным, т.е. таким, что им можно заменить два других?
Рассмотренные операторы:
repeat until
while do
for 1 to n do
Я думаю, что циклы «repeat until» и «while do» могут заменить другие циклы. Цикл «for» не сможет заменить других, так как в этом цикле происходит известное количество повторений. А в двух других разница в том, что цикл «repeat until» сначала выполняется тело цикла и потом проверяется условие, а с циклом «while do» наоборот.
Решение заданий из учебника Информатика 8 класс Босова, параграф 3.5 Программирование циклических алгоритмов. Программирование циклов с заданным условием продолжения работы, с заданным условием окончания работы, с фиксированным числом повторений, различные варианты программирования циклического алгоритма.
Проверяемые элементы содержания: Знание основных конструкций языка программирования, понятия переменной, оператора присваивания
Задание демонстрационного варианта 2022 года ФИПИ
Плейлист видеоразборов задания на YouTube:
6_1 new: Определите, при каком наименьшем введённом значении переменной s программа выведет число 256 (с сайта К. Полякова со ссылкой на М.В. Кузнецову):
var k,n,p,l,s,x:integer; var s, n: integer; begin readln (s); n := 1; while s using namespace std; int main() > s; while( s Показать решение:
6_2 new: Определите, при каком наибольшем введённом значении переменной s программа выведет число 96 (с сайта К. Полякова № 68 со ссылкой на М.В. Кузнецову):
var s, n: integer; begin readln (s); n := 3; while s using namespace std; int main() > s; while( s Показать решение:
Сколько существует различных значений d , оканчивающихся на 8, при вводе которых эта приведенная программа выведnет число 50?
var S, N, d: integer; begin readln(d); S := 15; N := 10; while S Показать решение:
begin var counter:=0; var d1:=1; while true do begin var d := d1; // из условия задачи var s := 15; var n := 10; while s
Определите наименьшее и наибольшее введённое значение переменной s , при котором программа выведет число 210. В ответ запишите оба числа в порядке убывания без пробелов и других разделителей
var s, n: integer; begin readln(s); n := 600; while n > s do begin s := s + 3; n := n — 6 end; writeln(n) end.
s = int(input()) n = 600 while n > s: s = s + 3 n = n — 6 print(n)
begin var s_ := -100; while true do begin var n := 600; var s := s_; while n > s do begin s := s + 3; n := n — 6 end; if n = 210 then print(s_); s_ += 1; if s > 1000 then break; end; end.
Определите, при каком наибольшем положительном введённом значении переменной s программа выведет трёхзначное число.
var s, n: integer; begin readln (s); n := 200; while s div n >= 2 do begin s := s + 5; n := n + 5 end; writeln(s) end.
s = int(input()) n = 200 while s // n >= 2: s = s + 5 n = n + 5 print(s)
Получив на вход некоторое натуральное число X , этот алгоритм печатает одно число. Сколько существует чисел Х , для которых алгоритм напечатает число на отрезке [2;500]?
var x, s, n: integer; begin readln(x); s := 6 * (x div 15); n := 1; while s Показать решение:
begin var x := 1; var count := 0; while true do begin var s := 6 * (x div 15); var n := 1; while s = 2) and (n 1000 then break; end; print(count) end.
Решения подобных заданий прошлых лет
Определить, какое число пропущено
6_14: ЕГЭ по информатике 2020 (Тематические тренировочные задания, 2020 г., Самылкина Н.Н., Синицкая И.В., Соболева В.В., задание № 2):
и программу, предназначенную для расчета по данной формуле. Программа написана правильно, а в формуле допущена ошибка.
Определите, где и какое число в формуле пропущено?
var k,n,p,l,s,x:integer; begin writeln(‘введите n=’); readln(n); writeln(‘введите x=’); readln(x); s:=0; p:=1; l:=x; For k:=1 to n do begin p:=p * k; s:=s + 3*l/p; l:=l*x; end; writeln(‘S=’,S:5:2); end.
INPUT «введите n=», n INPUT «введите x=», x s=0: p=1 l=x FOR k:=1 to n p = p * k: s = s + 3*l/p l = l*x NEXT k PRINT «S wp_syntax» style=»position:relative;»>
n = int(input(‘введите n=’)) x = int(input(‘введите x=’)) s=0 p=1 l=x For k in range (1,n+1): p*= k s+=3*l/p l*=x print(‘S=’,S)
Фактически она обозначает: сумма x k / k! для всех k, начиная от 1 до n.
Простые задания с двумя линейными непересекающимися функциями
Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k,s:integer; begin s:=512; k:=0; while s using namespace std; int main() 5 do begin s := s — 2; i := i + 1 end; writeln(i) end.
DIM S, I AS INTEGER I = 1 S = 105 WHILE S > 5 S = S — 2 I = I + 1 WEND PRINT I
i = 1 s = 105 while s > 5: s = s — 2 i = i + 1 print(i)
- Рассмотрим алгоритм. Цикл зависит от переменной s, которая уменьшается каждую итерацию цикла на 2.
- В цикле также присутствует счетчик — переменная i, которая увеличится на единицу ровно столько раз, сколько итераций (проходов) цикла. Т.е. в результате выполнения программы распечатается значение, равное количеству итераций цикла.
- Поскольку условие цикла зависит от s, нам необходимо посчитать, сколько раз сможет s уменьшиться на 2 в цикле. Для удобства подсчета изменим условие цикла на while s > 0 ; так как мы s уменьшили на 5, соответственно, изменим и 4-ю строку на s:=100 (105-5):
- Для того чтобы посчитать, сколько раз выполнится цикл, необходимо 100 разделить на 2, т.к. s каждый шаг цикла уменьшается на 2:
- В 3-й строке видим, что начальным значением i является 1, т.е. в первую итерацию цикла i = 2. Значит, нам необходимо к результату (50) прибавить 1.
- Это значение и будет выведено на экран.
Запишите число, которое будет напечатано в результате выполнения следующей программы.
Паскаль:
var s, n: integer; begin s := 260; n := 0; while s > 0 do begin s := s — 15; n := n + 2 end; writeln(n) end.
DIM S, N AS INTEGER S = 260 N = 0 WHILE S > 0 S = S — 15 N = N + 2 WEND PRINT N
s = 260 n = 0 while s > 0: s = s — 15 n = n + 2 print(n)
10 Тренировочных вариантов экзаменационных работ для подготовки к ЕГЭ по информатике 2017, задание 8, вариант 1 (Ушаков Д.М.):
Определите, что будет напечатано в результате выполнения следующего фрагмента программы:
var k,s: integer; begin k:=1024; s:=50; while s>30 do begin s:=s-4; k:=k div 2; end; write(k) end.
DIM S, K AS INTEGER S = 50 K = 1024 WHILE S > 30 S = S — 4 K = K 2 WEND PRINT K
s = 50 k = 1024 while s > 30: s = s — 4 k = k // 2 print(k)
Решение 6 задания ЕГЭ по информатике 2018 (диагностический вариант экзаменационной работы 2018 года, С.С. Крылов, Д.М. Ушаков, Тренажер ЕГЭ):
Определите значение переменной c после выполнения следующего фрагмента программы. Ответ запишите в виде целого числа.
a:=-5; c:=1024; while a<>0 do begin c:=c div 2; a:=a + 1 end;
A = -5 C = 1024 WHILE A <> 0 C = C 2 A = A + 1 WEND
a = -5 c = 1024 while a != 0: c = c // 2 a = a + 1
int a = -5, c = 1024; while (a != 0)
Определите, что будет напечатано в результате работы следующего фрагмента программы.
var n, s: integer; begin n := 1; s := 0; while s Показать решение:
- с каждым шагом цикла значение s увеличивается на 36, пока не станет больше 365; а значение n увеличивается в 2 раза, так что n=2 k , где k – это число итераций цикла;
- поскольку s увеличивается на 36, конечное значение s должно быть равно 0+36*k , достигается при k=11 (и s=36*11=396);
- тогда n = 2 k = 2 11 = 2048 .
Сумма или разность двух линейных функций (while s — n или while s + n)
Разбор 6 (раньше №8) задания ЕГЭ вариант № 1, 2019 Информатика и ИКТ Типовые экзаменационные варианты (10 вариантов), С.С. Крылов, Т.Е. Чуркина:
Запишите число, которое будет напечатано в результате выполнения следующей программы:
var s, n: integer; begin s := 522; n := 400; while s — n > 0 do begin s := s — 20; n := n — 15 end; write(s) end.
DIM S, N AS INTEGER S = 522 N = 400 WHILE S — N > 0 S = S — 20 N = N — 15 WEND PRINT S
s = 522 n = 400 while s — n > 0: s = s — 20 n = n — 15 print(s)
- В алгоритме присутствует цикл. Для того, чтобы разобраться в алгоритме, выполним трассировку начальных итераций цикла:
№ шагаусловие циклаsn 1 522-400=122
122 > 0522-20=502 400-15=385 2 502-385=117
117 > 0502-20=482 385-15=370 3 482-370=112
112 > 0. . - Видим, что в условии разница между значениями составляет 5:
- Таким образом, чтобы определить количество итераций (шагов) цикла, необходимо значение условия цикла, полученное в первой итерации, разделить на 5:
Это значит, что на 24-й итерации цикла переменные s и n получили такие значения, после которых условие еще осталось истинным: 2 > 0. На 25-м шаге выполняется это условие:
Запишите число, которое будет выведено в результате работы программы:
var s, n: integer; begin s := 10; n := 55; while n > s do begin s := s + 1; n := n — 1 end; writeln(n) end.
DIM S, N AS INTEGER S = 10 N = 55 WHILE N > S S = S + 1 N = N — 1 WEND PRINT N
s = 10 n = 55 while n > s: s = s + 1 n = n — 1 print(n)
- Для условия цикла — перенесем влево:
- Согласно начальным значениям, имеем:
- Запишем, как будет изменяться условие цикла в каждой итерации (в каждом шаге):
- Т.е. условие цикла будет истинным пока возможно вычитать 2. Сколько раз можно вычесть два из 45?
- Соответственно, получили 23 итерации цикла.
- Изначально n = 55. С каждой итерацией выполнялось n-1. Посчитаем n:
Поиск наименьшего/наибольшего целого введенного числа d
При каком наименьшем целом введенном числе d после выполнения программы будет напечатано число 192?
var k,s,d: integer; begin readln (d); s:=0; k:=0; while k using namespace std; int main() > d; while (k Показать решение:
- Цикл зависит от переменной k, которая каждую итерацию цикла увеличивается на значение d (вводимое). Цикл закончит «работу», когда k сравняется с 200 или превысит его (k >= 200).
- Результатом программы является вывод значения переменной s. В цикле s увеличивается на 64.
- Так как по заданию необходимо, чтобы вывелось число 192, то число повторов цикла определим так:
- Так как в цикле k увеличивается на значение d, а повторов цикла 3 (при этом цикл завершается при k>=200), составим уравнение:
- Поскольку число получилось нецелое, то проверим и 66 и 67. Если мы возьмем 66, то:
- Цикл программы зависит от значения переменной s, которая в цикле постоянно увеличивается на значение d (d вводится пользователем в начале программы).
- Кроме того, в цикле переменная n увеличивается на 8. Значение переменной n выводится на экран в конце программы, т.е. по заданию n к концу программы должно n = 153.
- Необходимо определить количество итераций цикла (прохождений). Так как начальное значение n = 33, а в конце оно должно стать 153, в цикле увеличиваясь на 8, то сколько раз 8 «поместится» в 120 (153 — 33)? :
- Как мы определили, цикл зависит от s, которая в начале программы s = 4. Для простоты работы примем, что s = 0, тогда изменим и условие цикла: вместо s сделаем s (1725-1721)
- Найдем d. Так как цикл выполняется 15 раз, то необходимо найти такое целое число, которое при умножении на 15 возвращало бы число большее 1721:
- 115 — это наименьшее d при котором n станет равным 153 (за 15 шагов цикла).
- Найдем наибольшее d. Для этого надо найти такое число, которое соответствует неравенствам:
- Найдем:
- Наибольшее d= 122
Усложненные задания с двумя линейными функциями
Запишите число, которое будет напечатано в результате выполнения следующей программы:
Арифметическая и геометрическая прогрессия
- Panasonic kx dt546 сообщение ожидает
- Сообщение о парке шаркан
- Жд сообщение ульяновск москва
- Сообщение о цунами в японии
- Основные показатели физического развития 5 класс сообщение
Источник: obrazovanie-gid.ru