Количество повторений в цикле с параметром
Количество повторений в цикле с параметром
Как уже отмечалось выше, существует два вида циклов. Циклы, в которых число повторений известно до начала выполнения циклических действий, и циклы, когда число повторений неизвестно, но задано условие, по истинности или ложности которого циклические действия прекращаются. Циклы первого вида называют циклами с параметром (или циклами по количеству повторений), а циклы второго типа называют циклами по условию.
Примеры блок-схем цикла с параметром приведены на Рис. 1.22.
Рис. 1.22. Примеры циклов с параметром
Рис. 1.23. Блок-схема цикла с параметром
Принцип работы цикла с параметром рассмотрим подробнее в следующем разделе ресурса.
Циклы по условию бывают двух основных видов: циклы с предусловием и циклы с постусловием. В циклах с предусловием условие выхода из цикла проверяется всякий раз перед выполнением цикла. В циклах с постусловием сначала выполняются инструкции тела цикла, затем проверяется условие продолжения цикла. Блок-схемы циклов с предусловием и с постусловием показаны на Рис. 1. 24.
Цикл с предусловием
Цикл с постусловием
Рис. 1.24. Блок-схемы циклов с предусловием и с постусловием
Тело цикла с предусловием расположено перед проверкой условия и выполняется до тех пор, пока условие не станет истинным. Очевидно, что вне зависимости от значения условия тело такого цикла один раз всегда выполняется.
Как видно на блок-схеме, тело цикла с предусловием располагается после проверки условия и выполняется до тех пор, пока условие истинно. В этом случае возможна ситуация, когда тело цикла не выполнится ни разу.
Количество повторений в цикле с параметром
Формат записи цикла:
1) for i:= 1 to n do s1;
2) for i:= 3 to 10 do s1;
3) for i := a to b do s1;
4) for i := a to b do
begin
Пример:
Составить программу вывода на экран чисел от 1 до 10.
Program Problem; <Вывод чисел>
var i : integer;
begin
for i:=1 to 10 do
writeln (i);
redaln;
end.
Пример:
Составить программу вычисления факториала числа n, т. е. n!. (0! = 1)
Существует другая форма оператора цикла For:
Формат записи цикла:
Пример:
Возможны такие записи оператора цикла:
1) for i:= n downto 1 do s1;
2) for i:= 10 downto 3 do s1;
3) for i := b downto a do s1; (при условии, что b>a)
4) for i := b downto a do
begin
end; (при условии, что b>a)
Пример: Программу вычисления факториала числа можно составить, используя этот оператор цикла.
#10.1 Цикл For в Паскаль. Цикл с известным числом повторений (цикл с параметром). Тело цикла.
Primary tabs
Forums:
В Паскале можно использовать три конструкции для организации циклов, они известны по именами:
Цикл For также называют циклом с известным числом повторений.
Он обладает следующей структурой (изобразим её на блок-схеме):
Как видим на схеме, в цикле for имеются:
— для каждого из этих значений тело цикла будет повторяться (в данном случае 10 раз). Правая и левая границы всегда должны обладать типом integer.
Сразу же приведём пример кода программы, цикл в которой соответствует блок схеме на рисунке выше:
— здесь в теле программы тоже три операции (но уже конкретные) и тот же диапазон значений счетчика, что и на блок-схеме. Запустите программу и посмотрите на результат.
Далее рассмотрим примеры решения задач, чтобы лучше понять как работает цикл for.
Если правая граница для счётчика цикла меньше чем левая то необходимо использовать вместо конструкции:
Разбор практических примеров
Вывести на экран все числа от 1 до 125.
— так как нам нужно было повторять только действие вывода, то в теле цикла мы разместили одну операцию, а потому операторные скобки для тела цикла не нужны.
Вывести на экран все нечетные числа от 37 до 1025.
— обратите внимание, что здесь тоже не используются операторные скобки для окружения тела цикла. Дело в том, что вложенным в непосредственно в блок цикл for является только один условный оператор if, а вызов стандартной процедуры write() вложен уже в if, а не непосредственно в for, а потому в данном случае считается, что в теле цикла for находится только одна операция (for) и, следовательно, операторные скобки не обязательны.
Задача:
Выведите на экран все число от 133 до 57.
Решение (тут всё просто):
Выведите на экран, все четные числа, делящиеся на 7 нацело, лежащие в диапазоне от 28 до 117.
Решение:
В этой задаче нам необходимо перебрать все числа от 28 до 117 (будем делать это циклом), проверяя каждое число, на соответствие сразу двум условиям:
Решение двумя циклами:
— заметьте, что в этом решении числа выводится не по порядку, что не очень хорошо. В следующем решении мы это исправим.
Решение одним циклом:
— вывести только то, что нам нужно.
Приведём код, решающий задачу одним циклом:
Видео-пояснения
Для этого урока есть следующие видео:
Самостоятельная работа
Вопросы
Задачи
Подсказка: в каждой ветке условного оператора тут должно быть по одному циклу.
Программирование циклов с заданным числом повторений
Урок 30. Информатика 8 класс (ФГОС)
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.
Получите невероятные возможности
Конспект урока «Программирование циклов с заданным числом повторений»
· Организация цикла с заданным числом повторений.
· Цикл с заданным числом повторений в программе.
Рассмотрим алгоритм чтения книги, в которой 100 страниц:
· прочесть 2 страницы,
Так, как количество повторений известно заранее, это пример цикла с заданным числом повторений, который является частным случаем цикла с параметром. Такие циклы организованы так, что для их работы не нужны условия, но нужна дополнительная переменная, которая будет выполнять роль счётчика повторений или параметра.
В начале параметру присваивается начальное значение, а также указывается значение шага изменения параметра и его конечное значение. При каждом выполнении тела цикла значение параметра изменяется, то есть уменьшается или увеличивается на значение шага. Цикл повторяется до тех пор, пока значение параметра не станет, в случае увеличения параметра больше или в случае уменьшения параметра меньше указанного конечного значения.
Блок-схема цикла с параметром.
Как видим в блок-схеме тело цикла размещается под блоком, обозначающим цикл. При этом в блоке указывается параметр, его начальное и конечное значение, а также значение шага. При этом если шаг равен единице, его можно не указывать.
Рассмотрим, как записывается цикл с параметром в языке Паскаль. Для этого используется оператор for, что в переводе на русский язык означает «Для». После этого слова следует название параметра, который должен быть заранее объявлен в разделе описания переменных. Параметр может принадлежать только к одному из целочисленных типов. Далее следует знак присваивания, после него начальное значение параметра. Дальше, через пробел, следует одно из двух служебных слов to или downto. Первое используется, когда конечное значение параметра больше начального, когда конечное значение меньше начального используется второе. После через пробел указывается конечное значение параметра, а после него через пробел служебное слово do. В языке Pascal шаг изменения параметра всегда равен 1, поэтому его указывать не требуется. Дальше со следующей строки, на расстоянии одного пробела от слова for следует тело цикла. Если в нём больше одного оператора, оно записывается между логическими скобками.
Описание цикла с параметром
Задача: Написать программу, которая возводит число k в целую положительную степень n.
Напишем программу по составленной блок-схеме. Назовём её stepen. В разделе описания переменных объявим переменные n и i. n целое по условию задачи, а i – параметр цикла, значит обе они будут целочисленного типа byte. Дальше укажем переменные k и r, так как в условии задачи не сказано, что k целое, они будут принадлежать к вещественному типу real.
Запишем логические скобки. В начале запишем оператор writeln, который будет выводить сообщение о том, что это программа вычисления значения k^n. Дальше будет следовать оператор write, который будет выводить запрос на ввод k, считаем его с помощью оператора readln. Точно также выведем запрос на ввод и считаем n. Теперь запишем оператор присваивания переменной r значения 1. Теперь запишем цикл с параметром i, изменяющимся от 1 до n. Он будет содержать всего один оператор, поэтому логические скобки указывать не требуется. Это будет оператор присваивания r:=r*k. После цикла будет следовать оператор Райт, который будет выводить на экран поясняюще сообщения что значение выражения равно r.
writeln (‘Программа вычисления значения k^n.’);
Исходный код программы
Запустим программу на выполнение. Введём k = 2, а n = 10.
Снова запустим программу и введём k = 0.5, а n = 2.
0.5 2 = 0.25. Программа работает правильно задача решена.
Циклы также, как и ветвления, могут содержать другие циклы. Такие циклы называются вложенными.
Напишем программу по составленной блок-схеме. Назовём её summa. В программе на понадобится 5 переменных. Переменные s и p будут хранить значение итоговой суммы и отдельных слагаемых, они будут принадлежать к целочисленному типу integer. Так как n по условию задачи не превышает 9, а i и j изменяются в диапазоне от 1 до n, для их хранения нам будет достаточно типа byte.
Запишем логические скобки. В начале запишем оператор write, который будет выводить запрос на ввод n. Дальше запишем оператор readln (n). Дальше будет следовать оператор присваивания s:=1. Сразу с помощью оператора write выведем на экран сообщение: «1^1». Теперь запишем цикл для i от 2 до n. Так как в нём будет несколько операторов, они будут замкнуты между логическими скобками, запишем их. В начале цикла запишем оператор write, который будет выводить на экран сообщение, состоящее из знака «+», а также «i^i». Дальше присвоим переменной p значение 1. Теперь запишем вложенный цикл для j от 1 до i, который будет содержать оператор присваивания p:=p*i. После внутреннего цикла будет следовать оператор присваивания s:=s+p. После внешнего цикла запишем оператор write, который будет выводить на экран знак равенства и значение s.
Исходный код программы
Запустим программу на выполнение. Введём n = 5.
1 1 + 2 2 + 3 3 + 4 4 + 5 5 = 3413. Программа работает правильно. Задача решена.
Задача: Написать программу для перевода целых положительных чисел из двоичной системы счисления в десятичную.
Мы помним, что для того, чтобы перевести число из двоичной степени в десятичную нужно представить его в виде суммы его цифр, умноженных на два в степени на единицу меньшей разряда числа.
10102 = 0 × 2 0 + 1 × 2 1 + 0 × 2 2 + 1 × 2 3
Напишем программу по составленной блок-схеме. Назовём её BinToDec. Раздел описания переменных будет содержать строку s, а также переменные d, i, m, c и дополнительную переменную е, принадлежащие к целочисленному типу integer. Запишем логические скобки. В начале запишем оператор writeln, который будет выводить сообщение о том, что это программа перевода чисел и двоичной системы счисления в десятичную и запрос на ввод числа. Дальше будет следовать оператор readln, который будет считывать значение строки s. Запишем операторы присваивания: d:=0 и m:=1. Теперь запишем цикл для i от длины s до 1. В этом цикле после слова for будет следовать присваивания i значения функции определяющей длины строки, которая записывается словом length, в качестве параметра зададим ей строку s. Далее, так как параметр цикла будет уменьшаться, будет следовать служебное слово downto. Конечным значением i будет 1. Дальше в логических скобках запишем тело цикла. Оно будет начинаться с функции преобразования i-того символа строки s в число c. Она записывается служебным словом val, после которого в скобках через запятую указывается символьное или строковое значение, в нашем случае i-тый символ строки s, числовая переменная, в нашем случае c, и дополнительная целочисленная переменная, в которую в случае ошибки будет сохранён номер некорректного символа, в нашем случае e. Теперь увеличим значение переменной d на произведение c и m, а также увеличим значение m в 2 раза. После цикла запишем оператор write, который будет выводить значение d и сообщение о том, что это введённое число в десятичной системе счисления.
writeln (‘Программа перевода чисел из двоичной системы счисления в десятичную. Введите двоичное число.’);
Урок 9. Операторы цикла с параметром for
Урок из серии: «Язык программирования Паскаль«
На предыдущем уроке Вы познакомились с оператором выбора Select Case.
В этом уроке будет описано использование оператора цикла с параметром For.
Циклический процесс, или просто цикл, это повторение одних и тех же действий.
Операторы, предназначенные для организации повторения одних и тех же действий, называются операторами цикла.
Они всегда имеют заголовок цикла, определяющий число повторений, и тело цикла — повторяющиеся действия.
Переменная, которая изменяются внутри цикла и влияют на его окончание, называется параметром цикла.
Величина, на которую изменяется переменная цикла, называется шагом цикла.
Различают два вида циклов: циклы с известным числом повторений (циклы с параметром) и циклы с неизвестным числом повторений (циклы с условием).
Опишем первый из них.
Оператор цикла for
Оператор цикла с параметром (цикл for) применяется тогда, когда заранее известно количество повторений одного и того же действия.
Для записи оператора цикла с параметром в языке Паскаль используется две формы записи.
В первом операторе, с ключевым словом to в заголовке, параметр цикла изменяется от начального значения до конечного значения, увеличиваясь всякий раз на единицу.
Во втором операторе, с ключевым словом downto, параметр цикла уменьшаясь на единицу.
— переменная цикла (счетчик цикла);
— начальное значение переменной цикла;
— конечное значение переменной цикла.
В языке Паскаль шаг цикла всегда равен единице.
Если тело цикла состоит из нескольких операторов, то оно заключается в операторные скобки Begin — End.
Рассмотрим пример с использованием оператора цикла For.
Пример. Из чисел от 10 до 99 вывести те, сумма цифр которых равна n (0
Коротко о главном
1. Если нужно многократно повторять одни и те же действия, то в программе организуют цикл.
3. Оператор for имеет две формы записи. Если в заголовке цикла используется ключевое слово to, значение переменной цикла увеличивается на 1, если слово downto — переменная цикла уменьшается на 1.
4. Количество повторений цикла определяется по формуле:
— +1.
5. Нельзя изменять параметр цикла в теле цикла.
На следующем уроке мы рассмотрим циклы с неизвестным числом повторений.