Назад Вперёд
Загрузить презентацию (329 кБ)
Цель: изучение алгоритмической структуры циклы, создание моделей и алгоритмов для решения практических задач.
Ход урока
I. Актуализация знаний
- Повторить понятие алгоритма, основные конструкции алгоритмического языка.
- Уметь разрабатывать математическую модель, алгоритм и блок схему решения задачи.
- Иметь понятие о языках программирования и их назначении.
- Уметь работать в среде программирования.
- Знать структуры программы.
- Уметь записывать выражения, содержащие числовые и символьные величины.
- Знать структуры операторов и особенности их работы.
- Уметь применять операторы при написании программ с линейными и ветвящимися структурами.
- Уметь на компьютере создавать и запускать программы на отладку.
II. Теоретический материал урока
Большинство практических задач требует многократного повторения одних и тех же действий, т. е. повторного использования одного или нескольких операторов. (Презентация)
Лекция 3 Построение цикла кондиционера на диаграмме
Пусть требуется ввести и обработать последовательность чисел. Если чисел всего пять, можно составить линейный алгоритм. Если их тысяча, записать линейный алгоритм можно, но очень утомительно и нерационально. Если количество чисел к моменту разработки алгоритма неизвестно, то линейный алгоритм принципиально невозможен.
Другой пример. Чтобы найти фамилию человека в списке, надо проверить первую фамилию списка, затем вторую, третью и т.д. до тех пор, пока не будет найдена нужная или не будет достигнут конец списка. Преодолеть подобные трудности можно с помощью циклов.
Циклом называется многократно исполняемый участок алгоритма (программы). Соответственно циклический алгоритм — это алгоритм, содержащий циклы.
Различают два типа циклов: с известным числом повторений и с неизвестным числом повторений. При этом в обоих случаях имеется в виду число повторений на стадии разработки алгоритма.
Существует 3 типа циклических структур:
- Цикл с предусловием;
- Цикл с послеусловием;
- Цикл с параметром;
Иначе данные структуры называют циклами типа «Пока», «До», «Для».
Графическая форма записи данных алгоритмических структур:
Цикл с предусловием (иначе цикл пока) имеет вид:
Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
Пока (условие) нц серия команд кц |
while условие do begin серия команд; end; |
условие – выражение логического типа.
Цикл может не выполняться ни разу, если значение логического выражения сразу же оказывается ложь.
Работы нулевого цикла на сложном участке
Серия команд, находящихся между begin и end, выполняются до тех пор, пока условие истинно.
Для того чтобы цикл завершился, необходимо, чтобы последовательность инструкций между BEGIN и END изменяла значение переменных, входящих в условие.
Цикл с постусловием (иначе цикл до) имеет вид:
Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
В алгоритмическом языке нет команды которая могла бы описать данную структуру, но ее можно выразить с помощью других команд (Например, ветвления). | repeat серия команд until условие |
условие – выражение логического типа.
Последовательность инструкций между repeat и until всегда будет выполнено хотя бы один раз;
Для того чтобы цикл завершился, необходимо, чтобы последовательность операторов между repeat и until изменяла значения переменных, входящих в выражение условие.
Инструкция repeat, как и инструкция while, используется в программе, если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторов заранее не известно и определяется самим ходом вычисления.
Цикл с параметром (иначе цикл для) имеет вид:
Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
Для i от а до b шаг h делай Нц Серия команд кц |
h = +1 for i:= a to b do begin серия команд end; h = -1 for i:= b downto a do begin Cерия команд; end; |
i – параметр цикла;
a – начальное значение цикла;
b – конечное значение цикла;
h – шаг изменения параметра.
Структура данного цикла иначе называют циклом i раз.
Эта команда выполняется таким образом: параметру i присваивается начальное значение а, сравнивается с конечным значением b и, если оно меньше или равно конечному значению b, выполняется серия команд. Параметру присваивается значение предыдущего, увеличенного на величину h – шага изменения параметра и вновь сравнивается с конечным значением b.
На языке программирования Паскаль шаг изменения параметра может быть равным одному или минус одному.
Если между begin и end находится только один оператор, то операторные скобки можно не писать. Это правило работает для цикла типа «Пока» и «Для».
Рассмотрим пример решения задач с использованием данных структур
Пример.
Вычислить произведение чисел от 1 до 5 используя различные варианты цикла
Составим алгоритм в виде блок-схемы.
Для проверки правильности алгоритма заполним трассировочную таблицу.
Шаг | Операция | Р | i | Проверка условия |
1 | P:=1 | 1 | ||
2 | i:=1; | 1 | 1 | |
3 | i P:=P*I i:=i+1 |
1 | 1 | 1 |
4 | i P:=P*I i:=i+1 |
2 | 2 | 2 |
5 | i P:=P*I i:=i+1 |
6 | 3 | 3 |
6 | i P:=P*I i:=i+1 |
24 | 4 | 4 |
7 | i P:=P*I i:=i+1 |
120 | 5 | 5 |
8 | i P:=P*I i:=i+1 |
6 |
Проверка условия происходит в несколько шагов: проверка условия и выполнение команд на одной из ветвей. Поэтому в трассировочной таблице записываются не команды алгоритма, а отдельные операции, выполняемые компьютером на каждом шаге.
Шаг первый: Р присваивается значение один.
Шаг второй: i присваивается значение один.
Шаг третий: при i равном единице проверяем условие один меньше или равен пяти, да, условие истинно, значит Р присваивается значение один умноженное на один, будет два. Для i: один плюс один, будет два.
Шаг четвертый: при i равном двум проверяем условие два меньше или равен пяти, да, условие истинно, значит Р присваивается значение 2 умноженное на один, будет 2. Для i: два плюс один, будет три.
Шаг пятый: при i равном трем проверяем условие три меньше или равен пяти, да, условие истинно, значит Р присваивается значение два умноженное на три, будет шесть. Для i: три плюс один, будет четыре.
Шаг шестой: при i равном четырем проверяем условие четыре меньше или равен пяти, да, условие истинно, значит Р присваивается значение шесть умноженное на четыре, будет двадцать четыре. Для i: четыре плюс один, будет пять.
Шаг седьмой: при i равном пяти проверяем условие пять меньше или равен пяти, да ,условие истинно, значит Р присваивается значение двадцать четыре умноженное на пять, будет сто двадцать. Для i: пять плюс один, будет шесть.
Шаг восьмой: при i равном шести проверяем условие шесть меньше или равен пяти, нет, условие ложно, тогда мы выходим из цикла, а в результате получаем последнее значение равное сто двадцати.
Program Pr1;
Var i: integer;
Begin
P:=1;
i:=1;
While i
begin
P:=P*i;
i:=i+1;
end;
Write (‘P=’, P);
end.
Для цикла с постусловием построим блок-схему и трассировочную таблицу. (слайд16)
В результате получаем последнее значение равное сто двадцати на седьмом шаге
И для Цикла с параметром построим блок-схему и трассировочную таблицу. (слайд17)
В результате получаем последнее значение равное сто двадцати на шестом шаге
Задача:
Вывести на экран числа от 1 до 5 в:
- прямом порядке;
- обратном порядке.
Математическая модель:
Блок-схема и программа решения задачи представлена для чисел в прямом порядке и обратном порядке.
Источник: urok.1sept.ru
Циклы в языке программирования 1С
В этой статье рассмотрим такую конструкцию языка прогрммирования 1С как Циклы.
Существует три способа организации циклов.
- Циклы с использованием переменной — счетчика цикла
- Циклы с использование логического выражения (выполняются до тех пор пока логическое выражение истинно)
- Обход коллекций в цикле
Рассмотрим каждый из этих способов.
Циклы с использованием переменной — счетчика цикла
При таком способе организации циклов переменной-счетчику присваивается некое начальное значение и выполняется он до тех пор пока значение переменной-счетчика меньше или равно указанного конечного значения.
С каждой итерацией значение счетчика увеличивается на единицу. Вот самый элементарный пример такого цикла:
В отиличие от многих других языков программирования в 1С не предусматривается возможность указания шага в цикле. При необходимости это можно сделать прибавлением к счетчику нужного значения внутри цикла
Циклы с использование логического выражения
То есть цикл будет выполняться до тех пор пока не будет сгенерировано случайное число больше пяти.
Обход коллекций в цикле
В языке программирования 1С существует такое понятие как коллекция. Она представляет собой набор элементов, содержащихся внутри какого-то объекта.
К коллекции мы можем отнести такие объекты как: массив, таблица значений, выборка из результата запроса, метаданные и т.д. Понятие это достаточно условное, но в синтакс-помощнике встречается на каждом шагу. Очень часто встречается задача, когда нам надо последовательно перебрать все элементы коллекции, чтобы совершить над ними какие-то действия. Для этого и существует синтаксическая конструкция:
Здесь — это переменная в которую последовательно помещаются элементы из коллекции. И внутри цикла она соответствующим образом обрабатывается.
В качестве примера приведу обход в цикле строк таблицы значений. Пусть она называется ТаблицаТовары и выглядит вот таким образом:
Яблоки | 50.00 |
Апельсины | 100.00 |
Обойдем в цикле эту таблицу и для каждой строки выведем сообщение с наименованием и ценой товара:
На самом деле то же самое можно проделать и воспользовавшись первым вариантом, т.е в цикле с использованием счетчика:
Но как видим использовать обход элементов коллекции гораздо проще и удобней
Вспомогательные операторы
Часто встречается ситуация, когда в зависимости от какого-то условия необходимо прервать выполнение цикла, либо перейти с следующей итерации.
Прерывание осуществляется с помощью оператора Прервать. В этом случае выполнение цикла прерывается и управление передается следующей за циклом конструкции языка. Если же нужно перейти к следующей итерации, необходимо использовать оператор Продолжить. Тогда управление передается на начало цикла. Проиллюстрируем небольшим примером:
Ноль пропускаем, т.к. на ноль делить нельзя. И всего цикл выполниться пять раз, для значений переменной Счетчик от 0 до 4
Источник: professia1c.ru