Циклические алгоритмы с параметром
Презентация к уроку
Цель: изучение алгоритмической структуры циклы, создание моделей и алгоритмов для решения практических задач.
Ход урока
I. Актуализация знаний
II. Теоретический материал урока
Большинство практических задач требует многократного повторения одних и тех же действий, т. е. повторного использования одного или нескольких операторов. (Презентация)
Пусть требуется ввести и обработать последовательность чисел. Если чисел всего пять, можно составить линейный алгоритм. Если их тысяча, записать линейный алгоритм можно, но очень утомительно и нерационально. Если количество чисел к моменту разработки алгоритма неизвестно, то линейный алгоритм принципиально невозможен.
Другой пример. Чтобы найти фамилию человека в списке, надо проверить первую фамилию списка, затем вторую, третью и т.д. до тех пор, пока не будет найдена нужная или не будет достигнут конец списка. Преодолеть подобные трудности можно с помощью циклов.
Циклом называется многократно исполняемый участок алгоритма (программы). Соответственно циклический алгоритм — это алгоритм, содержащий циклы.
Различают два типа циклов: с известным числом повторений и с неизвестным числом повторений. При этом в обоих случаях имеется в виду число повторений на стадии разработки алгоритма.
Существует 3 типа циклических структур:
Иначе данные структуры называют циклами типа «Пока», «До», «Для».
Графическая форма записи данных алгоритмических структур:
Цикл с предусловием (иначе цикл пока) имеет вид:
| Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
| Пока (условие) нц серия команд кц | ![]() | while условие do begin серия команд; end; |
условие – выражение логического типа.
Цикл может не выполняться ни разу, если значение логического выражения сразу же оказывается ложь.
Серия команд, находящихся между begin и end, выполняются до тех пор, пока условие истинно.
Для того чтобы цикл завершился, необходимо, чтобы последовательность инструкций между BEGIN и END изменяла значение переменных, входящих в условие.
Цикл с постусловием (иначе цикл до) имеет вид:
| Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
| В алгоритмическом языке нет команды которая могла бы описать данную структуру, но ее можно выразить с помощью других команд (Например, ветвления). | ![]() | repeat серия команд until условие |
условие – выражение логического типа.
Последовательность инструкций между repeat и until всегда будет выполнено хотя бы один раз;
Для того чтобы цикл завершился, необходимо, чтобы последовательность операторов между repeat и until изменяла значения переменных, входящих в выражение условие.
Инструкция repeat, как и инструкция while, используется в программе, если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторов заранее не известно и определяется самим ходом вычисления.
Цикл с параметром (иначе цикл для) имеет вид:
i – параметр цикла;
a – начальное значение цикла;
b – конечное значение цикла;
h – шаг изменения параметра.
Структура данного цикла иначе называют циклом i раз.
Эта команда выполняется таким образом: параметру i присваивается начальное значение а, сравнивается с конечным значением b и, если оно меньше или равно конечному значению b, выполняется серия команд. Параметру присваивается значение предыдущего, увеличенного на величину h – шага изменения параметра и вновь сравнивается с конечным значением b.
На языке программирования Паскаль шаг изменения параметра может быть равным одному или минус одному.
Если между begin и end находится только один оператор, то операторные скобки можно не писать. Это правило работает для цикла типа «Пока» и «Для».
Рассмотрим пример решения задач с использованием данных структур
Пример.
Вычислить произведение чисел от 1 до 5 используя различные варианты цикла
Составим алгоритм в виде блок-схемы.
Для проверки правильности алгоритма заполним трассировочную таблицу.
Циклические алгоритмы с параметром
Формат записи цикла:
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)
Пример: Программу вычисления факториала числа можно составить, используя этот оператор цикла.
Цикл с параметром в Pascal
Оператор for to do — цикл со счётчиком
В сегодняшней статье разберем самый популярный вид цикла в языках программирования. Это цикл с параметром. У него есть и другие названия: цикл-для, цикл со счетчиком (оператор for to do, оператор цикла с параметром). Особенность данного цикла заключается в том, что использовать его нужно когда заранее известно количество повторений команд.
Посмотрите на рисунок ниже. Там представлена блок схема for (блок-схема цикла с параметром) и его запись на языке программирования Паскаль.

Параметр это целая величина, которая обозначается любой латинской буквой. Чаще всего используют символ — i. Начальные и конечные значения параметра тоже целые числа. Счетчик цикла может работать в двух направлениях: увеличение или уменьшение значения параметра.
Разберемся, как работает for в паскале. Выполнение начинается с получения переменной i начального значения а. Затем проверяется это значение с конечным значением n. Выполнение операторов цикла происходит в случае, когда i меньше или равно n (при положительном шаге счетчика) или i больше или равно n (при отрицательном шаге счетчика).
Задачи на циклы в паскале с решением
Задание 1. Напишите программу, которая выводит на экран 10 строк следующего содержания: «**++==++**»
Циклические алгоритмы. Цикл с параметром.
Новые аудиокурсы повышения квалификации для педагогов
Слушайте учебный материал в удобное для Вас время в любом месте
откроется в новом окне
Выдаем Удостоверение установленного образца:
Описание презентации по отдельным слайдам:
Тема урока Циклические алгоритмы. Цикл с параметром.
Цели урока 1. Вспомнить служебные слова, операторы языка программирования Паскаль. 2. Познакомить с циклическими алгоритмами, циклом с параметром. 3. Разъяснить ход выполнения операторов в программе. 4. Научить использованию цикла с параметром при решении задач программирования.
Актуализация знаний Задание 1. begin var writeln integer if := real readln оператор ввода вещественный тип переменной оператор вывода раздел описаний начало исполняемой части оператор присваивания целый тип переменной часть условного оператора
Актуализация знаний Задание 2. На математическом языке На языке Паскаль 1) z=(2x+y)(y-3) 1) 2) 2) Записать на языке Паскаль следующие математические выражения.
Актуализация знаний Задание 3. Какими будут значения переменных j, k после выполнения условного оператора: if j>k then j:=k-2 else k:=k-2 Если исходные значения переменных равны: Исходные значения Результат j=3, k=5 j=…k=… j=3, k=3 j=…k=… j=3, k=2 j=…k=…
Актуализация знаний Линейные алгоритмы Разветвляющие алгоритмы Переход улицы Фрагмент из сказки Начало Подойти к переходу Дождаться зеленого света Перейти улицу Конец Подъехал Иван Царевич к камню Направо пойдешь? Нет Да Голову сложишь Коня потеряешь
Актуализация знаний Сказка «Золушка». Вспомните, как и по какому принципу искал принц Золушку, сбежавшую прямо с бала. Какой алгоритм поиска Золушки: линейный или разветвляющий? Построим и изобразим блок-схему поиска Золушки.
Актуализация знаний Алгоритм поиска Золушки Начало Встретить девушку Примерить ей туфельку Подошла? Золушка найдена! Конец Распрощаться с девушкой Нет Да
Изучение нового материала Циклические алгоритмы Цикл с параметром Цикл с предусловием Цикл с послеусловием
Решение задач Пример 1. Найти все числа в промежутке от 1 до 30, которые кратны 6. Функция mod – остаток от деления
Решение задач Программа program chisla; var i:integer; begin for i:=1 to 30 do if i mod 6=0 then writeln (i); end.
Решение задач Пример 2. Определите, будет ли выполняться программа и каков будет результат. program summa; var i:integer; s:real; begin s:=0; for i:=4 downto 1 do s:=s+1/i; writeln (s); end.
Решение задач Шаг1 Шаг2 Шаг3 Шаг4 Шаг5 Шаг6
Домашнее задание 1. Каковы значения переменных и сколько раз исполнится цикл: s:=0; for i:=1 to 15 do if i mod 2=1 then s:=s+1; 2. Найти сумму всех чисел на промежутке от 1 до 50, которые кратны 8.
Курс повышения квалификации
Дистанционное обучение как современный формат преподавания
Курс профессиональной переподготовки
Информатика: теория и методика преподавания в образовательной организации
Курс профессиональной переподготовки
Математика и информатика: теория и методика преподавания в образовательной организации
Данная презентация используется в 9 классе при изучении темы «Циклы»
1. Вспомнить служебные слова, операторы языка программирования Паскаль.
2. Познакомить с циклическими алгоритмами, циклом с параметром.
3. Разъяснить ход выполнения операторов в программе.
4. Научить использованию цикла с параметром при решении задач программирования.
В начале урока актуализация знаний:
1 задание- на соответствие служебных слов языка Паскаль с его значением;
2 задание- записать на языке Паскаль следующие математические выражения;
3 задание- вычислить значения переменных j, k после выполнения условного оператора.
Составление алгоритма поиска Золушки.
Этап изучения нового материала.
Этап закрепления состоит из разбора заданий разного типа.
Номер материала: ДБ-1341116
Не нашли то что искали?
Вам будут интересны эти курсы:
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.
В пяти регионах России протестируют новую систему оплаты труда педагогов
Время чтения: 2 минуты
Студент устроил стрельбу в Пермском государственном университете
Время чтения: 1 минута
В России разработали программу содействия занятости молодежи до 2030 года
Время чтения: 1 минута
Instagram может вызывать психические расстройства у подростков
Время чтения: 4 минуты
Учитель математики из Казани вышел в финал Международной премии для учителей
Время чтения: 1 минута
Около 50% россиян поддерживают использование цифровых технологий в школе
Время чтения: 1 минута
Подарочные сертификаты
Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.
Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение администрации может не совпадать с точкой зрения авторов.
Циклические алгоритмы. Цикл с параметром
Урок 10. Основы алгоритмизации и программирования на языке Python
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.
Получите невероятные возможности
Конспект урока «Циклические алгоритмы. Цикл с параметром»
· Принцип работы цикла с параметром.
· Программирование цикла с параметром.
· Функция генерации множества значений из указанного диапазона.
Рассмотрим пример. Допустим, нам необходимо вычислить произведение всех элементов некоторой числовой последовательности А. В этом случае нужно сначала присвоить переменной для хранения произведения p значение один, после чего необходимо перебрать все элементы последовательности А, умножая на них значение переменной p. После выполнения этих действий переменная p будет содержать произведение всех элементов числовой последовательности. Обратим внимание на то, что при описании этого цикла мы не использовали никаких условий.
Для решения такой задачи удобно использовать цикл с параметром. В общем случае его блок-схема выглядит так.
В верхнем блоке записывается имя параметра, например, i, а также указывается множество значений, которые он будет принимать. Часто в качестве множества указывается некоторый диапазон от начального до конечного значения, например, от 1 до 10, с некоторым шагом приращения параметра, например, с шагом, равным 3. В описанном нами цикле параметр i будет принимать значения: 1, 4, 7 и 10. То есть все значения из заданного множества.
Рассмотрим, как такой цикл записывается на языке Python. Вначале записывается служебное слово for, после которого следует имя параметра, а после него записывается служебное слово in и описывается множество значений параметра. После множества записывается двоеточие, а со следующей строки с отступом начинают записываться инструкции, составляющие тело цикла. Буквально на русский язык заголовок этого цикла можно перевести как «Для параметра, принимающего множество значений». Важно, что в теле цикла с параметром нельзя изменять значение параметра внутри тела цикла. Если это сделать, то цикл будет работать неправильно.
Множество значений параметра можно описать по-разному. Так, например, можно в круглых скобках через запятую перечислить все значения. Также в качестве множеств можно использовать списки, которые мы изучим позже, и диапазоны значений с определённым шагом.
Решим простую задачу с использованием цикла с параметром. Написать программу для вывода на экран кубов четырёх целых чисел, введённых пользователем. Для решения задачи нам нужно будет перебирать числа, введённые пользователем, возводить их в куб и выводить полученные значения на экран.
Начнём написание программы для решения задачи. Вначале с помощью инструкции print выведем на экран сообщение о том, что это программа, возводящая в куб четыре числа, и запрос на ввод этих чисел. Дальше считаем числа с клавиатуры в переменные a, b, c и d. Так как в условии задачи не сказано, что числа целые, то при считывании их значения мы будем преобразовывать в вещественный тип float. После того, как мы считали значения чисел, с помощь инструкции print выведем на экран текстовое сообщение «Кубы введённых чисел», заканчивающееся двоеточием. Для перебора четырёх чисел используем цикл для параметра i, принимающего множество значений, которое состоит из переменных a, b, c и d. Внутри заданного цикла запишем единственную инструкцию print, которая выводит на экран значение параметра i, возведённого в куб.
print (‘Программа, возводящая в куб 4 числа. Введите 4 числа.’)
a, b, c, d = float (input ()),float (input ()),float (input ()),float (input ())
print (‘Кубы введённых чисел:’)
Сохраним написанный модуль и запустим его на выполнение. Введём числа 1, 2, 3 и 4. Программа действительно вывела на экран значения кубов введённых чисел: 1, 8, 27 и 64. Программа работает правильно. Задача решена.
Рассмотрим ещё одну задачу. Написать программу, которая вычисляет значение факториала целого положительного числа n!. Факториалом натурального числа n! называется произведение всех целых чисел в диапазоне от 1 до n включительно. Очевидно, что для решения этой задачи необходимо перебрать все целые числа от 1 до n и перемножить их.
Начнём написание программы для решения задачи. Вначале выведем на экран сообщение о том, что это программа, вычисляющая значение n!, и запрос на ввод n. Теперь считаем значение n с клавиатуры. По условию задачи это целое число, поэтому при считывании будем преобразовывать его в целочисленный тип int. Теперь объявим переменную f для расчёта n!. Так как дальше в ней будет рассчитываться значение произведения, присвоим ей единицу. Теперь запишем цикл для вычисления факториала числа. Это будет цикл для параметра i, который будет принимать значения в диапазоне от 1 до n, включая концы с шагом, равным 1. Для генерации множества значений из этого диапазона запишем функцию range с параметрами 1 и n + 1, так как функция генерирует множество значений, не включая конец заданного диапазона. Так как шаг равен 1, то его указывать не требуется. Тело цикла будет содержать единственную инструкцию присваивания переменной f её собственного значения, умноженного на значение параметра i. После цикла с помощью инструкции print выведем на экран поясняющее сообщение о том, что факториал числа n равен значению переменной f.
print (‘Программа, вычисляющая значение n!. Введите n.’)
for i in range (1, n + 1):
Сохраним написанный модуль и запустим его на выполнение. Зададим n = 3. Действительно 3! = 6. Снова запустим программу и зададим n = 5. Действительно 5! = 120. Программа работает правильно. Задача решена.
Рассмотрим задачу посложнее. Написать программу, вычисляющую сумму всех нечётных чисел на промежутке от a до b, где a > b. Для решения задачи мы можем перебрать все целые числа на заданном промежутке, определяя их чётность, при этом нечётные числа мы должны учитывать при вычислении суммы.
Напишем программу для решения задачи. Вначале с помощью инструкции print выведем на экран сообщение о том, что это программа, вычисляющая сумму нечётных чисел на промежутке от a до b, и запрос на ввод a и b. В условии задачи не сказано, что a и b — целые числа, поэтому при считывании будем преобразовывать их в вещественный тип float. Теперь объявим переменную для хранения суммы нечётных чисел – s. Так как мы не учли ещё ни одного числа, присвоим ей значение 0. Теперь мы должны написать цикл для перебора целых чисел на указанном промежутке. Множество значений в заданном диапазоне мы генерируем с помощью функции range, но она принимает на вход целочисленные аргументы, а у нас числа a и b вещественные, поэтому мы должны привести их к целым значениям. Для этого нужно использовать функцию int. Но так как она отбрасывает дробную часть числа, то при переводе числа А мы должны проверить, равна ли его дробная часть нулю. Дробную часть числа можно выделить, вычислив разность его самого и его целой части. Если это условие выполняется, то мы присвоим переменной a значение её целой части. В противном случае, мы можем сократить промежуток, перейдя от a к следующему целому числу, поэтому мы присвоим переменной a значение её целой части, увеличенное на единицу. Для преобразования переменной b нам достаточно взять её целую часть. Так и поступим. Теперь запишем цикл для перебора целых чисел. Это будет цикл для параметра i, изменяющегося в диапазоне от a до b + 1, так как последнее значение не входит в диапазон. В цикле запишем ветвление, определяющее чётность значения i. Если остаток от деления i на 2 равен 1, то мы увеличим значение переменной s на i. Таким образом, по окончании работы цикла переменная s будет содержать значение суммы нечётных чисел на указанном промежутке. С помощью инструкции print выведем на экран сообщение о том, что сумма нечётных чисел на заданном промежутке равна значению переменной s.
print (‘Программа, вычисляющая сумму нечётных чисел на промежутке [a; b]. Введите a и b.’)
a, b = float (input ()),float (input ())
for i in range (a, b + 1):
print (‘Сумма нечётных чисел на заданном промежутке:’, s)
Сохраним написанный модуль и запустим его на выполнение. Зададим промежуток от 1.2 до 7. На этом промежутке нечётные числа: 3, 5 и 7. Их сумма действительно равна 15. Программа работает правильно. Задача решена.
Однако эту же задачу можно решить проще, перебирая в цикле не все числа, а лишь нечётные. Для этого мы должны найти первое нечётное число на промежутке. Для этого перед циклом проверим чётность a с помощью ветвления. Если остаток от деления a на 2 равен 0, то оно является чётным, а нечётным является следующее целое число, поэтому мы увеличим a на 1. Теперь, чтобы в цикле перебирать лишь нечётные числа, так как a – нечётное число, достаточно перебирать значения от a до b + 1 с шагом 2, чтобы пропускать чётные числа. Теперь в цикле нам не нужно проверять чётность числа. Нам достаточно просто на каждом шаге увеличивать значение s на i. Таким образом, вместо проверки на каждом шаге цикла мы делаем всего одну проверку до начала цикла.
print (‘Программа, вычисляющая сумму нечётных чисел на промежутке [a; b]. Введите a и b.’)
a, b = float (input ()),float (input ())
for i in range (a, b + 1, 2):
print (‘Сумма нечётных чисел на заданном промежутке:’, s)
Проверим, верно ли работает модуль. Сохраним и запустим его на выполнение. Зададим промежуток от 4 до 10. На этом промежутке нечётные числа: 5, 7 и 9. Их сумма действительно равна 21. Программа работает правильно.
· В цикле с параметром параметр принимает все значения из заданного множества и для каждого значения выполняется тело цикла.
· Роль множества значений могут выполнять значения, перечисленные в скобках, списки и диапазон значений с заданным шагом.
· Функция range генерирует множество значений в заданном диапазоне с указанным шагом.Она принимает на вход от 1 до 3 целочисленных параметров.


















