Сколько раз выполнится цикл

от admin

ЕГЭ по информатике 2021 — Задание 6 (Циклы)

Добрый день! В этой статье рассмотрим 6 (шестое) задание из Единого Государственного Экзамена (ЕГЭ) по информатике.

В этом задании из ЕГЭ по информатике обычно даётся задача на понимание цикла в программировании.

Перейдём к примерам!

Задача (Классика, степенная зависимость)

Определите, при каком введённом значении переменной s программа выведет число 160. Для Вашего удобства программа представлена на четырёх языках программирования.

Паскаль Python
С++ Алгоритмический язык

Решение:

Программа написана на 4 языках программирования, но мы будем работать с языком «паскаль».

Рассмотрим «анатомию» нашей программы.

ЕГЭ по информатике - задание 6 (анатомия программы с циклом)

В первой строчке объявляются переменные n и s целого типа данных. В восьмом задании из ЕГЭ по информатике преимущественно даются именно целые числа.

Ключевой слово вegin — обозначает начало программы.

В следующей строчке программа запрашивает число с клавиатуры и кладёт его в переменную s.

В переменную n в начале кладётся значение 1.

Ключевое слово while — задаёт условие цикла. Пока условие верно (истино), выполняется тело цикла! Внутри тела цикла значение переменных изменяются, в результате чего, через некоторое количество повторений уже не будет выполняться условие n s = sнач. + 30 * 5 = 160
sнач. = 160 — 150 = 10

Это значение и было введено пользователем.

Ещё одна классическая задача из тренировочных вариантов ЕГЭ по информатике.

Задача (Классика, линейная зависимость)

Определите, при каком наименьшем введённом значении переменной s программа выведет число 32. Для Вашего удобства программа представлена на четырёх языках программирования.

Паскаль Python
С++ Алгоритмический язык

В переменной k после выполнения цикла должно быть значение 32. Оценим, сколько раз выполнится цикл.

kнач. + 2 * x = 32
0 + 2 * x = 32
x = 32 / 2 = 16

Здесь kнач. = 0. За x обозначили количество повторений цикла.

Т.е. 16 раз должен повторится цикл.

При выполнении последней итерации (16 проход цикла) от переменной s отнимается в последний раз число 15, и после этого, условие s > 0 должно не сработать. Значит, при последнем проходе цикла в переменной s может быть значение от 1 до 15. Нам нужно найти наименьшее возможное значение переменной s. Поэтому после 15 проходов цикла считаем, что переменная s=1.

Тогда 15 итераций назад, переменная s = 1 + 15 * 15 = 226.

Это и будет ответ.

Ещё один частый гость в примерных вариантах ЕГЭ по информатике.

Задача (условие цикла зависит от двух переменных)

Определите, при каком наименьшем введённом значении переменной s программа выведет число 80. Для Вашего удобства программа представлена на пяти языках программирования.

Бейсик Python
Паскаль Алгоритмический язык
Си++

Здесь интересно условие цикла s + n 300 — x * 20 = 80
-x * 20 = -220
x = 220 / 20 = 11

Цикл повторится 11 раз.

За один проход цикла сумма двух переменных (s + n) увеличивается на 10. Значит, сумма после 10 проходов может быть в диапазоне от 491 до 500. Мы выбираем самое маленькое значение 491, потому что, если сумма будет принимать минимальное значение, то и переменная s будет принимать минимальное значение из всех возможных (ведь переменная n жёстко задана).

Переменная n после 10 проходов будет равна 80 + 20 = 100.

Тогда переменная s = 491 — 100 = 391 (После 10 проходов цикла). «Отмотаем» 10 итераций назад, и мы узнаем первоначальное значение переменной s.

sнач. = 391 — 10 * 30 = 91

На этом всё! Успехов на экзамене по информатике при решении 6 задания нового формата 2021.

Урок 3 — Циклы в Pascal

Когда в алгоритме некоторое действие нужно выполнить несколько раз, используются циклы. В программирование цикл — это многократное повторение определенных инструкций. Циклы состоят из заголовка и тела. Заголовок содержит в себе условия, которые определяют работу цикла, а тело – повторяющиеся действия. В этом уроке рассмотрим:

Их алгоритмы выполнения различны, но есть и общее: после выполнения тела цикла, проверяется условие, и в зависимости от него работа цикла заканчивается, либо снова выполняется тело.

1 For — цикл с параметром

Цикл с параметром, известный также как цикл со счетчиком, используется при известном количестве повторений. Он имеет две формы записи. В любом случае он выполняет следующий после него оператор (как правило, это составной оператор заключенный в «операторные скобки» Begin..End), каждый раз изменяя переменную цикла с шагом 1

Счетчик – это переменная порядкового типа. Начальное и конечное значение должны быть того же типа, что и счетчик. Тело выполняется до тех пор пока условие истинно.

Условия выполнения цикла проверяются перед выполнением блока операторов. Если переменная цикла больше максимального значения (при to) или меньше минимального (downto), то цикл FOR не выполняется.

Формы записи, представленные выше, отличаются словами To и Downto . Если Вы используете цикл с To , то значение счетчика с каждым шагом будет увеличиваться на единицу, а если с Downto , то уменьшаться. Из этого следует, что в первом варианте начальное значение не должно превышать конечное, во втором — верно противоположное. В программе ниже, указанное пользователем количество раз, будут выводиться символы.

Здесь тело цикла не заключено в Begin-End , так как оператор всего один. Но если их будет больше, то операторные скобки обязательны. Стоит также отметить, что счетчик по выходу из цикла не будет иметь определенного значения, но если цикл закончиться раньше положенного, то счетчик сохранит последнее, записанное в него значение.

Другой пример — вычисление суммы чисел от A до B:

2 While – цикл с предусловием

Оператор While – начинает описание цикла с предусловием. Такой вид цикла нужен, в тех алгоритмах, где число повторений неизвестно заранее. В общем виде он выглядит так:

While <выражение> Do <тело цикла>;

Если выражение истинно, то тело выполняется, иначе цикл завершается. Поэтому нужно составить такой код, чтобы на какой-то из итераций выражение стало ложным, и цикл не выполнялся бесконечно.

Пример программы написанный с использованием цикла While :

В данном коде использовался составной оператор Begin-End , так как операторов в теле цикла несколько.

3 Repeat – цикл с постусловием

Главной особенностью цикла с постусловием (часто встречается название: цикл-ДО) является выполнение его тела минимум один раз. Это связано с тем, что условие записывается в конце и соответственно вначале выполнится тело, а затем провериться условие. Формально он выглядит так:

В противоположность двум рассмотренным прежде циклам, этот прекращает свое выполнение тогда, когда условие становиться истинным, т. е. чтобы итерации продолжались условие должно быть ложно. Рассмотрим работу цикла с постусловием на примере:

Программа продолжает работать до тех пор, пока пользователь не допустит ошибку в ответе. Думаю, Вы заметили, что в примере (непосредственно в цикле) составной оператор Begin-End , несмотря на количество операторов не поставлен. Просто его роль выполняют слова repeat и until .

Для переходных манипуляций с циклом обычно используются три оператора:

  • Goto – переходит в отмеченную область;
  • Break – производит безусловный выход из цикла;
  • Continue – осуществляет переход к новой итерации.

4 Вложенные циклы

Циклы в паскаль могут вкладываться друг в друга. Житейский пример: например, у нас есть список студентов, у каждого из которых есть оценки — если мы захотим перебрать все оценки для каждого студента то один цикл (внешний) будет перебираться студентов, а второй (вложенный) — оценки конкретного студента. Обрабатывать списки (массивы) мы научимся дальше.

Читать:
Frame buffer location что это

Рассмотрим вложенные циклы на примере цикла с параметром:

Вернувшись к терминологии, отметим, что в таких структурах одни циклы называются внешними, а другие внутренними. Так цикл 2 относительно цикла 1 является внутренним, а для цикла n он внешний.

Принцип работы вложенных циклов заключается в следующем. Сначала один раз выполняется цикл, идущий первым в программе, затем управление передается следующему циклу (№2), и если после него нет никаких других циклов, то он прокручивается до конца и снова единожды выполняется внешний цикл, иначе, если после цикла №2 стоит еще один вложенный цикл, то №2 выполняется один раз, передавая управление циклу идущему после него. Такой алгоритм продолжается до тех пор, пока самый внешний цикл не выполниться необходимое количество раз.

Предположим у нас есть вложенные циклы for :

Количество проходов по первому циклу = m1 , второму = m2*m1 , n-ому = mn*mn-1*mn-2*..*m2*m1 . В качестве доказательства предлагаю разобраться в следующей программе.

Имеются 5 циклов со счётчиками от i до h. В каждом из них при помощи переменных подсчитывается, сколько раз выполняется каждый цикл. Запустив программу на своем компьютере, Вы должны увидеть такой результат:


Результат работы вложенных циклов

Посчитав способом, изложенным выше, получите результат соответствующий величинам, отображенным на скриншоте. Вложенные конструкции аналогично работают в циклах с предусловием и постусловием. В следующей программе с помощью оператора while фигурка выводиться на экран.

При работе с массивами очень часто применяются вложенные циклы, а когда дело доходит до матриц (двумерных массивов), то даже их заполнение, как правило, делается через рассмотренные нами в этой статье конструкции.

Задача №8. Анализ программы с циклами.

Для решения этой задачи нужно знать основные конструкции языка программирования:

Кроме этого, пригодятся математические формулы:

n-го члена арифметической прогрессии ,

суммы n членов геометрической прогрессии.

За­пи­ши­те число, ко­то­рое будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния про­грам­мы. Для Ва­ше­го удоб­ства про­грам­ма пред­став­ле­на на пяти язы­ках про­грам­ми­ро­ва­ния.

Бей­сик

Python

WHILE S > 0

WEND

Пас­каль

Ал­го­рит­ми­че­ский язык

begin

while s > 0 do

begin

end;

writeln(n)

нач

цел s, n

нц пока s > 0

кц

вывод n

Си

void main()

int s, n;

while (s > 0) <

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие s > 0, т. е. пе­ре­мен­ная s опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл. По­сколь­ку из­на­чаль­но s = 47, а затем уменьшается на 9, цикл вы­пол­нит­ся 6 раз, сле­до­ва­тель­но, n = 6 · 4 + 1 = 25.

За­пи­ши­те число, ко­то­рое будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния сле­ду­ю­щей про­грам­мы. Для Ва­ше­го удоб­ства про­грам­ма пред­став­ле­на на пяти язы­ках про­грам­ми­ро­ва­ния.

Бей­сик

Python

WHILE S < 111

WEND

Пас­каль

Ал­го­рит­ми­че­ский язык

begin

while s < 111 do

begin

end;

writeln(n)

нач

цел n, s

нц пока s < 111

кц

вывод n

Си

int main()

while (s < 111) <s = s + 8; n = n + 2; >

return 0;

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие s < 111, т. е. пе­ре­мен­ная s опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл. По­сколь­ку из­на­чаль­но s = 0, а затем увеличивается на 8, цикл вы­пол­нит­ся 14 раз, сле­до­ва­тель­но, n = 2 * 14 = 28.

За­пи­ши­те число, ко­то­рое будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния про­грам­мы. Для Ва­ше­го удоб­ства про­грам­ма пред­став­ле­на на пяти язы­ках про­грам­ми­ро­ва­ния.

Бей­сик

Python

WHILE S > 0

WEND

Пас­каль

Ал­го­рит­ми­че­ский язык

begin

while s > 0 do

begin

end;

writeln(n)

нач

цел n, s

нц пока s > 0

кц

вывод n

Си

int main()

int s = 301, n = 0;

while (s > 0) <

return 0;

За­ме­тим, что после 30 ите­ра­ций цикла s = 1, а n = 60. После 31 ите­ра­ции ста­нет s = -9, n = 62, и цикл пре­кра­тит­ся.

Ты нашел то, что искал? Поделись с друзьями!

Благодарим за то, что пользуйтесь нашими статьями. Информация на странице «Задача №8. Анализ программы с циклами.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ. Чтобы успешно сдать нужные и поступить в ВУЗ или колледж нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий. Также вы можете воспользоваться другими статьями из разделов нашего сайта.

1. Сколько раз выполняется цикл? Чему будет равна переменная? А) а = 1:
for i:=1 to 3 do a =a+1;
B) a:= 1;
for i:=1 to 1 do a:=a+1;
C) a:= 1;
for i:=1 downto 3 do a:= a+1;
D) а = 1;
for i:=3 downto I do a:=a+1;
2. Сколько раз выполнится цикл? Чему будет равна переменная?
А) аз 4; b= 6;
В) а = 4; b= 6;
while a <b do a=a+1; while a<b dо a = a + b;
C) a:= 4; b= 6;
while ab do a := a + 1;
D) a:= 4; b= 6;
while a <b do b=a — b:
3. Сколько раз выполнится цикл? Чему будет равна переменная?
А) ас 4; b6;
repeat as a + 1:
until a >b:
В) а = 4;b:= 6;
repeat a:= a + b:
until a > b;
C) a:= 4; b:= 6;
repeat a := a + b:
until a <b:
D) a:= 4; b= 6;
repeat b = a — b:
until a<b;
Решение обязательно,​

nastikots

1. Сколько раз выполняется цикл? Чему будет равна переменная?

А) а := 1;

for i:=1 to 3 do a := a + 1;

Цикл выполнится 3 раза (1, 2, 3)

B) a:= 1;

for i:=1 to 1 do a := a + 1;

Цикл выполнится 1 раз (1)

C) a:= 1;

for i:=1 downto 3 do a := a + 1;

Цикл выполнится 0 раз ()

D) а := 1;

for i:=3 downto 1 do a := a + 1;

Цикл выполнится 3 раза (3, 2, 1)

2. Сколько раз выполнится цикл? Чему будет равна переменная?

А) а := 4; b := 6;

while a < b do a := a + 1;

4 < 6 a = 4 + 1 = 5

5 < 6 a = 5 + 1 = 6

Цикл выполнится 2 раза

В) а := 4; b := 6;

while a < b do a := a + b;

4 < 6 a = 4 + 6 = 10

Цикл выполнится 1 раз

C) a := 4; b := 6;

while a > b do a := a + 1;

Цикл выполнится 0 раз

D) a := 4; b := 6;

while a < b do b := a — b;

4 < 6 b = 4 — 6 = -2

Цикл выполнится 1 раз

3. Сколько раз выполнится цикл? Чему будет равна переменная?

А) а := 4; b := 6;

Цикл выполнится 3 раза

В) а := 4; b := 6;

Цикл выполнится 1 раз

C) a := 4; b := 6;

Бесконечный цикл, a никогда не будет меньше b.

D) a := 4; b := 6;

Цикл выполнится 2 раза

Объяснение:

for счетчик := начальное значение to конечное значение do

начальное значение <= конечное значение

for счетчик := начальное значение downto конечное значение do

начальное значение >= конечное значение

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.

Цикл repeat является циклом с постусловием. В конце цикла находится логическое выражение. Если оно возвращает true, то происходит выход из цикла, если false – его повторение.

Похожие статьи