Файл: Операторы циклов, их виды, особенности и области применения (Основные понятия и определения).pdf
Добавлен: 25.05.2023
Просмотров: 208
Скачиваний: 2
Оператор For, используется только для цикла с пересчётом.
For <v>:= <e1> to <e2> step <шаг>
{Тело цикла}
End.
<v> переменная скалярного типа
<e1>, <e2> выражение того же скалярного типа.
- выполняется <e1> и присваивается <v>
- выполняется<e2>
- проверяется<v> <e2>
- если значение выражения истина, то выход из цикла
- выполняется тело цикла
- модифицируется значение переменной цикла v = v + <шаг>
- переход к 3.
То есть, инструкцию for можно реализовать двумя способами.
Вариант 1 (с увеличением счетчика).
for Счетчик := НачальноеЗначение to КонечноеЗначение do
begin
{ Инструкции }
end;
Ключевые слова for, dо обозначают "для", "выполняй" соответственно. Строка, содержащая for ... do, называется заголовком цикла, оператор, стоящий после do образует его тело. Очень часто тело цикла — составной оператор. Если тело цикла представлено одиночным оператором, то begin и end не пишутся.
Вариант 2 (с уменьшением счетчика).
for Счетчик := НачальноеЗначение downto КонечноеЗначение do
begin
{ Инструкции }
end;
Инструкции между begin и end, выполняются столько раз, сколько определяет выражение [(НачальноеЗначение — КонечноеЗначение) + I].
Если НачальноеЗначение меньше, чем КонечноеЗначение, то инструкции между begin и end не выполняются ни разу.
Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано down to, то значение параметра будет уменьшаться на единицу.
Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.
Таким образом, общий вид структуры цикла For следующий:
For i:= 1 to 5 step 1
{Тело х}
end.
В теле цикла не должно быть команд, которые модифицируют значение i.
Блок - схема цикла с параметром показан на рисунках 4 и 5.
Рисунок 4. Блок-схема цикла с параметром.
Рисунок 5.Детальная схема цикла с параметром
Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица.
Пример: С клавиатуры вводятся 5 чисел, найти их сумму
Var n, s, i: Natural;
Begin
s:= 0;
For i:= 1 to 5 step 1
ReadNat (n);
s:= s+n;
End.
Следует знать:
• оператор (инструкция) for используется для организации циклов с фиксированным, заранее известным или определяемым во время выполнения программы числом повторений;
• количество повторений цикла определяется начальным и конечным значениями переменной-счетчика. Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла: от начального до конечного;
• переменная-счетчик должна быть порядкового типа: чаще — integer, реже — char, boolean или одного из пользовательских типов. Использование вещественного типа недопустимо;
• начальное и конечное значения параметра цикла могут быть константами, переменными, выражениями и должны принадлежать к одному и тому же типу данных. Начальное и конечное значения параметра цикла нельзя изменять во время выполнения цикла;
• после нормального завершения оператора for значение параметра цикла равно конечному значению. Если оператор for не выполнялся, значение параметра цикла не определено;
• параметр цикла for может изменяться (увеличиваться или уменьшаться) каждый раз при выполнении тела цикла только на единицу. Если нужен другой шаг изменения параметра, предпочтительнее циклы repeat и while[7].
1.5 Цикл Loop
Конструкция Loop позволяет проверить условие в любом месте цикла.
Структура цикла
dhjLoop
{Тело х}
exit
end.
Работает следующим образом:
1) выполняется тело цикла
2) управление передаётся на пункт 1
Для выхода из цикла используется Exit
Блок-схема цикла с постусловием показана на рисунке ниже:
Рисунок 6. Схема цикла с постусловием
Пример: Найти сумму первых десяти чисел ряда Фиббоначи
Var
s, i, f, f1, f2: Natural;
Begin
f1:= 1; f2:= 1;
s:= 2;
For i:= 4 to 10 step 1
f:= f1+f2; s:= s+1; f1:= f2; f2:= f;
end; end.
Глава 2. Вложенные циклы
2.1 Вложенные циклы
Часто для решения задач требуется конструкция, когда нужны два или более циклов, которые нужно поместить один внутри другого. Такая конструкция называется вложенными циклами.
Тело цикла, может содержать другой цикл, например:
For (While, Repeat)
For (While, repeat)
End
При использовании вложенных циклов следует соблюдать следующие правила:
- внутренний цикл является одним из операторов тела внешнего цикла;
- имена счетчиков вложенных циклов с параметрами разные;
- следует помнить о количестве повторений тел циклов.
Для организации и внутреннего, и внешнего циклов могут использоваться разные типы алгоритмических структур (цикл с параметром, цикл с предусловием, цикл с постусловием).
На рисунке 7 представлена блок-схема алгоритма с внутренним циклом. В данном случае и внешний и внутренний циклы организованы на базе алгоритмической структуры «цикл с параметром».
Рисунок 7. Блок-схема алгоритма с внутренним циклом
Пример: Определить все трёхзначные числа, которые имеют только три делителя.
Var x, kol, i: Natural;
Begin
For x:= 100 to 999 step 1
kol: =0;
For i:= 1 to x step 1
If x mod i = 0 then kol:= kol+1; end; end;
If kol = 3 then WriteNat (x);
End;
End.
2.2 Рекомендации по выбору цикла
При выборе цикла необходимо оценить необходимость проверки условия при входе в цикл или по завершении прохождения цикла. Если цикл ориентирован на работу с параметром, который меняется в заданных пределах с заданным шагом, то более предпочтительным является параметрический цикл.
Следует и отметить два оператора, которые следует знать – это операторы break и continue.
Эти два ключевых слова очень важны для циклов, они могут управлять повторениями в цикле. Оператор break делает принудительный выход из цикла, даже когда условие цикла — истинно. Оператор break удобно использовать, когда необходимо выйти из цикла при особых обстоятельствах. Оператор continue нужен если необходимо пропустить какой-то блок кода, но при этом не прекращать работу цикла.
Заключение
Цель курсовой работы – изучение циклов.
В результате выполненного исследования литературы по данной теме можно заключить следующее:
- Циклы – это основной элемент в программировании, который нужно не только знать, но и уметь применять;
- Различают несколько видов циклов – циклы с параметром, циклы с предусловием и циклы с посусловием;
- Основное назначение циклов - это экономия памяти отводимой под программные инструкции при необходимости повторять одни и те же действия много раз.
- Цикл с параметром используется переменная, называемая параметром цикла или счётчиком. Перед выполнением цикла параметру (счётчику) устанавливается начальное значение. После выполнения шага цикла значение параметра увеличивается на единицу. Цикл продолжается до тех пор пока параметр не достигнет своего конечного значения, которое указывается после to (downto).
- Цикл с предусловием выполняется до тех пор, пока условие выполнения не станет ложным, и продолжается, если условие истинно.
- Цикл с постусловием выполняется до тех пор, пока условие не станет истинно, если условие ложно, цикл продолжается.
Список использованных источников
- Орлов С. А. Программная инженерия. Учебник для вузов. 5-е издание обновленное и дополненное. Стандарт третьего поколения. — СПб.: Питер, 2016. — 640 с.
- Алгоритмические структуры [онлайн] - URL: https://sites.google.com/site/415ict/textbooks/pascal/alg-struct (дата обращения 11.11.2016)
- Оператор FOR [онлайн] - uRL: http://tat67183862.narod.ru/for.htm (дата обращения 14.11.2016)
- УРОК 10. ОПЕРАТОРЫ ЦИКЛА С УСЛОВИЕМ WHILE И REPEAT [онлайн] - URL:http://gospodaretsva.com/urok-10-cikly-s-usloviem.html (дата обращения 15.11.2016)
- Цикл (программирование) [онлайн]- URL: https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5) (дата обращения 11.11.2016)
- Циклический алгоритм [онлайн] - URL: http://gimn1567.ru/metod/less_qb/172.htm (дата обращения 11.11.2016)
-
Орлов С. А. Программная инженерия. Учебник для вузов. 5-е издание обновленное и дополненное. Стандарт третьего поколения. — СПб.: Питер, 2016. — 640 с. ↑
-
Цикл (программирование) [онлайн]- URL: https://ru.wikipedia.org/wiki/%D0%A6% D0%B8%D0%BA%D0%BB_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5) (дата обращения 11.11.2016) ↑
-
Циклический алгоритм [онлайн] - URL: http://gimn1567.ru/metod/less_qb/172.htm (дата обращения 11.11.2016) ↑
-
УРОК 10. ОПЕРАТОРЫ ЦИКЛА С УСЛОВИЕМ WHILE И REPEAT [онлайн] - URL:http://gospodaretsva.com/urok-10-cikly-s-usloviem.html (дата обращения 15.11.2016) ↑
-
УРОК 10. ОПЕРАТОРЫ ЦИКЛА С УСЛОВИЕМ WHILE И REPEAT [онлайн] - URL:http://gospodaretsva.com/urok-10-cikly-s-usloviem.html (дата обращения 15.11.2016) ↑
-
Алгоритмические структуры [онлайн] - URL: https://sites.google.com/site/415ict/textbooks/pascal/alg-struct (дата обращения 11.11.2016) ↑
-
Оператор FOR [онлайн] - uRL: http://tat67183862.narod.ru/for.htm (дата обращения 14.11.2016) ↑