Даша: Спасибо:3
31-05-2023
Читать статью
Санечка: я ничего не учила) но буду надеятся что ..
30-05-2023
Мейнер Сяо: Удачи всем сегодня на экзамене ;)..
Добрый день! В этой статье рассмотрим 6 (шестое) задание из Единого Государственного Экзамена (ЕГЭ) по информатике.
В этом задании из ЕГЭ по информатике обычно даётся задача на понимание цикла в программировании.
Перейдём к примерам!
Определите, при каком введённом значении переменной s программа выведет число 160. Для Вашего удобства программа представлена на четырёх языках программирования.
var n, s: integer; begin readln(s); n := 1; while n <= 100 do begin s := s + 30; n := n * 3 end; write(s) end.
s = int(input()) n = 1 while n <= 100: s = s + 30 n = n * 3 print(s)
#include using namespace std; int main() { int n, s; cin >> s; n = 1; while (n <= 100) { s = s + 30; n = n * 3; } cout « s « endl; }
алг нач цел n, s ввод s n := 1 нц пока n <= 100 s := s + 30 n := n * 3 кц вывод s кон
Программа написана на 4 языках программирования, но мы будем работать с языком "паскаль".
Рассмотрим "анатомию" нашей программы.
В первой строчке объявляются переменные n и s целого типа данных. В восьмом задании из ЕГЭ по информатике преимущественно даются именно целые числа.
Ключевой слово вegin - обозначает начало программы.
В следующей строчке программа запрашивает число с клавиатуры и кладёт его в переменную s.
В переменную n в начале кладётся значение 1.
Ключевое слово while - задаёт условие цикла. Пока условие верно (истино), выполняется тело цикла! Внутри тела цикла значение переменных изменяются, в результате чего, через некоторое количество повторений уже не будет выполняться условие n <= 100. Значение переменной n будет больше 100. И цикл закончится.
После окончание цикла выполнится последняя команда данной программы write(s). Она выведет на экран значение переменной s.
Программа полностью завершается на команде end..
Ключевые слова begin и end в паскале - показывают границу чего-либо. Например, у нас есть пара команд begin и end, которая показывает область нашей программы. Есть пара begin и end, которая показывает границу тела цикла while. В некоторых других языках подобную функциональность выполняют фигурные скобки.
Приступим непосредственно к решению!
Принимаем во внимание, что в начале переменная n=1, переменная s -неизвестно.
Далее, нам нужно оценить: сколько раз повторится цикл ?
После пяти повторений n станет больше 100, значит, цикл прекратится!
Нам нужно узнать, что было в переменной s (sнач.) до начала цикла. Цикл повторился 5 раз.
Следовательно, мы должны прибавить по 30 (тридцать) к первоначальному значению sнач 5 раз. В итоге, должна получится переменная s = 160.
Это значение и было введено пользователем.
Ещё одна классическая задача из тренировочных вариантов ЕГЭ по информатике.
Определите, при каком наименьшем введённом значении переменной s программа выведет число 32. Для Вашего удобства программа представлена на четырёх языках программирования.
var k, s: integer; begin Readln(s); k:=0; while s > 0 do begin s := s - 15; k := k + 2; end; write(k); end.
s = int(input()) k = 0 while s > 0: s = s − 15 k = k + 2 print(k)
#include using namespace std; int main() { int s , k; cin >> s; k = 0; while(s > 0){ s = s − 15; k = k + 2; } cout << k << endl; }
алг нач цел s, k ввод s k := 0 нц пока s > 0 s := s − 15 k := k + 2 кц вывод k кон
В переменной k после выполнения цикла должно быть значение 32. Оценим, сколько раз выполнится цикл.
Здесь kнач. = 0. За x обозначили количество повторений цикла.
Т.е. 16 раз должен повторится цикл.
При выполнении последней итерации (16 проход цикла) от переменной s отнимается в последний раз число 15, и после этого, условие s > 0 должно не сработать. Значит, при последнем проходе цикла в переменной s может быть значение от 1 до 15. Нам нужно найти наименьшее возможное значение переменной s. Поэтому после 15 проходов цикла считаем, что переменная s=1.
Тогда 15 итераций назад, переменная s = 1 + 15 * 15 = 226.
Это и будет ответ.
Ещё один частый гость в примерных вариантах ЕГЭ по информатике.
Определите, при каком наименьшем введённом значении переменной s программа выведет число 80. Для Вашего удобства программа представлена на пяти языках программирования.
DIM S, N AS INTEGER INPUT S N = 300 WHILE S + N <= 500 S = S + 30 N = N − 20 WEND PRINT N
s = int(input()) n = 300 while s + n <= 500: s = s + 30 n = n − 20 print(n)
var s, n: integer; begin Readln(s); n := 300; while s + n <= 500 do begin s := s + 30; n := n − 20; end; writeln(n) end.
алг нач цел s, n ввод s n := 300 нц пока s + n <= 500 s := s + 30 n := n − 20 кц вывод n кон
#include using namespace std; int main() { int s, n; cin >> s; n = 300; while (s + n <= 500) { s = s + 30; n = n − 20; } cout << n; return 0; }
Здесь интересно условие цикла s + n <= 500. Оно зависит сразу от двух переменных.
Переменная n после окончания программы должна равняться 80. Найдём, сколько раз выполнился цикл. Обозначим за x - количество повторений цикла.
Цикл повторится 11 раз.
За один проход цикла сумма двух переменных (s + n) увеличивается на 10. Значит, сумма после 10 проходов может быть в диапазоне от 491 до 500. Мы выбираем самое маленькое значение 491, потому что, если сумма будет принимать минимальное значение, то и переменная s будет принимать минимальное значение из всех возможных (ведь переменная n жёстко задана).
Переменная n после 10 проходов будет равна 80 + 20 = 100.
Тогда переменная s = 491 - 100 = 391 (После 10 проходов цикла). "Отмотаем" 10 итераций назад, и мы узнаем первоначальное значение переменной s.
На этом всё! Успехов на экзамене по информатике при решении 6 задания нового формата 2021.