Файл: Операторы циклов, их виды, особенности и области применения (Основные понятия и определения).pdf
Добавлен: 25.05.2023
Просмотров: 207
Скачиваний: 2
Введение
Актуальность исследования.
В информатике, а точнее в программирование есть общее для всех языков программирования – это циклы.
Циклы нужно знать всем тем, что желает связать свою жизнь с программированием. Так как, надо:
- Знать виды циклов, то есть знать и понимать теоретический материал по данной теме;
- Надо уметь их применять при написании программ;
- А так же уметь определиться с выбором цикла в определенной ситуации.
Основное назначение циклов - это экономия памяти отводимой под программные инструкции при необходимости повторять одни и те же действия много раз.
Так же циклы применяются в алгоритмах в которых неизвестно заранее сколько раз придется повторить действие. Но иногда, в специфических случаях, для выигрыша в скорости выполнения, циклы наоборот "разворачивают" - избавляются от затрат времени на ведение счетчика и на команду перехода в начало цикла.
Поэтому данная тема актуальна, и необходима для начинающего студента, который осваивает азы программирования.
Целью курсовой работы является циклов.
Для достижения данной цели необходимо решение следующих задач:
- Дать определения понятия цикл;
- Описать и привести пример следующих циклов While, Repeat, For и Loop;
- Определить вложенный цикл.
Объектом исследования данной курсовой работы циклы. Предметом исследования выступают циклы.
Работа состоит из введения, двух глав («Циклические структуры», «Вложенные циклы»), заключения и списка использованной литературы.
Глава 1. Циклические структуры
1.1. Основные понятия и определения
Алгоритмы это некоторые структуры, которые состоят из отдельных базовых, еще называемых основных элементов.
Логическая структура любого алгоритма может быть представлена с помощью комбинации трех базовых структур:
- следование,
- ветвление,
- цикл.
Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.
В курсовом проекте опишем операторы циклов, их особенности и области их применения.
Цикл — наиболее распространенная конструкция алгоритмов, реализуемых в ПО[1].
Цикл - это последовательность операторов, которая может выполняться один или более раз.
По мнению автора, более точное определение понятия цикл дается на сайте ru.wikipedia.org:
Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода)[2].
Циклический алгоритм - это алгоритм, содержащий один или несколько циклов.
Циклы используются для многократного повторения кусков кода. Возможность повторения определенных фрагментов кода — это одна из основных и в тоже время важных задач, которые приходится решать программисту. Большинство программ или сайтов используют циклы, например — для вывода новостной информации или объявлений. То есть в таких задачах необходимо выполнять постоянно операции чтения и записи, и для того чтобы не дублировать один и тот же код на помощь приходят циклы. Циклы достаточно просто объявляются в коде, однако они выполняют сложные задачи, всего лишь простым повторением.
Чаще всего цикл имеет 2 части:
1) тело цикла
2) условие цикла
1) Тело цикла – это последовательность операций, которые используются при одном выполнении
2) Условие цикла – указывает, сколько раз или до каких пор действует цикл
В других источниках цикл состоит из четырех компонент:
- Подготовка цикла,
- Тело цикла,
- Подготовка данных,
- Проверка условия.
Выполнение любого цикла начинается с подготовки цикла. Последовательность выполнения тела цикла, подготовки данных, проверка условия зависит от структуры цикла[3].
Итерация – однократное исполнение тела цикла.
Существует две разновидности циклических алгоритмов: с предусловием и с постусловием.
Циклический алгоритм с предусловием существует в двух видах: с условием и со счетчиком.
Во многих языках программирования существуют три типа операторов цикла, реализующих циклический алгоритм: циклы со счетчиком, циклы с предусловием, циклы с постусловием.
Когда в алгоритме просматриваются циклы, необходимо обдумать 3 момента:
- определить последовательность операций, которые выполняются при итерации, эта последовательность действий образует тело цикла
- Определить, как долго повторяются эти действия (условие цикла)
- Определить действия, которые нужно выполнить до начала цикла.
Различают четыре типа циклов: простые, вложенные, объединенные, неструктурированные.
На практике используются 4 циклические структуры
- While
- Repeat
- For
- Loop
Таким образом, можно сказать ,что циклические структуры предназначены для массивных вычислений.
При написании условных циклических алгоритмов следует помнить следующее. Во-первых, чтобы цикл имел шанс когда-нибудь закончиться, содержимое его тела должно обязательно влиять на условие цикла. Во-вторых, условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла.
1.2 Цикл While
Данная структура используется и со счётчиком и без него.
Для повторений используется переменная (переменная цикла). В теле цикла эта переменная увеличивается на 1. В условии цикла проверяется, достигла ли переменная определённого значения.
i:= 0;
While i<n do
-
-
-
i:= i+1;
end.
Структура While:
While <условие> do
{тело цикла}
End.
Выполняется условие: если условие истинно, выполняется тело цикла, после чего вновь проверяется условие. Если условие ложно, то передаётся управление на следующую команду после цикла. Т.к. условие проверяется вначале, то цикл может не выполняться ни разу.
То есть, тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.
Блок - схема цикла с предусловием показана на рисунке 1.
Рисунок 1. Блок - схема цикла с предусловием
Где, в прямоугольных блоках показано любое действие, которое выполняется в цикле или после него (шаг цикла), в овалах - начало или конец всей программы или её части. Главную роль в данной блок - схеме играет её центральная часть.
Пример 1: Подсчитать сумму пяти чисел
Algoritm A1
Var i, n, s: integer;
Begin
i:= 0; n:= 5; s:= 0;
While i<n do
s:= s+n; i:= i+1;
End;
WriteInt (s);
End.
Схема программы представлена на рисунке ниже.
Рисунок 2. Блок-схема программы
Но, этот пример цикла нельзя отнести к циклам с пред- или постусловием.
Здесь условие окончания цикла находится в середине.
Хитрость примера состоит в том, чтобы выполнить оператор s:= s+до проверки условия окончания цикла и не нарушить правильности алгоритма. Ведь если поставить s:= s+ после ввода переменной, то введенное отрицательное число добавится к сумме, чего быть не должно.
А если поставить его перед вводом переменной, то что же тогда прибавится к сумме во время первого шага цикла? Ведь переменная еще не введена. Изначально присвоив переменной нулевое значение, решаем эту проблему.
И замечаем, что если использовать циклы алгоритм получается более эффективным, по сравнению с линейными структурами.
Пример 2: Определить сумму из n натуральных чисел
1вариант:
Algoritm A2
Var n, s, i, x: integer;
Begin
WriteString (‘Введите число’);
ReadNat (n);
s:= 0; x:= 1; i:= 0;
While i<n do
s:= s+x;
i:= i+1;
x:= x+1;
End;
WriteNat (s);
Writeln;
End.
Эту же задачу, можно запрограммировать и другим способом, а именно:
2 вариант:
Algoritm A2
ReadNat (n);
s:= 0;
i:= 1;
While i<=n do
s:= s+1;
i:= i+1;
End;
WriteNat (s);
End.
Циклы с условием окончания
Для создания цикла с условием окончания, используется цикл While. Для этого до цикла вводится с клавиатуры значение, после проверяется, если условие цикла выполняется, если да, то обрабатывается введенное значение, затем вводятся следующие. Если условие не выполняется, то происходит выход с цикла. Общая схема циклов с условием окончания:
Var x: …
Begin
Read… (x)
While (x= <условие продолжения цикла>) do
<обработка х>
Read… (x)
end
Пример 3:
С клавиатуры вводятся числа до первого ввода отрицательного. Найти сумму.
Algoritm A17
Var x, s: integer;
Begin
s:= 0;
ReadInt (x);
While x >0 do
s:= s+x;
ReadInt (x);
End;
WriteInt (x);
End.
При использовании цикла надо помнить следующее:
- Начальное значение переменной цикла нужно присвоить до начала выполнения цикла.
- Условие продолжения цикла должно зависеть от значения переменной цикла.
- Переменная цикла должна изменяться при каждом новом выполнении цикла, иначе цикл будет повторяться бесконечное число раз[4].
1.3 Цикл Repeat
Иногда необходимо, чтобы условие цикла проверялось не в начале, а после выполнения итерации. Для этого используется Repeat
Структура Repeat:
Repeat
{ тело цикла}
Until <условие >
End.
Алгоритм цикла:
- выполняется тело цикла
- выполняется условие, если условие ложно, то цикл выполняется заново. Если условие истинно, то осуществляется выход из цикла.
- Тело цикла выполняется до тех пор, пока условие ложь. Т.к. условие проверяется в конце итерации, то тело цикла выполняется хотя бы один раз. С помощью этого цикла можно организовать и циклы с накоплением, и циклы с условием накопления и циклы с условием окончания.
Цикл с пересчетом, используется для последовательных повторений. До входа в цикл данной переменной присваивается начальное значение. Выход из цикла, когда цикл выполняется все n раз.
Блок - схема цикла с постусловием показан на рисунке 3:
Рисунок 3. Блок - схема цикла с постусловием
Оператор цикла repeat аналогичен оператору while, но отличается от него, во-первых, тем, что условие проверяется после очередного выполнения тела цикла (за это и называется циклом с постусловием) и таким образом гарантируется хотя бы однократное выполнение цикла, а во-вторых, тем, что выполнение условия (равенство булевского выражения константе true) является критерием не повторения, а прекращения цикла.
Пример 4:
С клавиатуры вводится 5 целых чисел, вычислить сумму.
Var i, n, s: Natural;
Begin
s:= 0; i:= 0;
Repeat
ReadNat (n);
s:= s+n;
i:= i+1;
Until i=5
WriteNat (s);
End.
Можно заметить, что в цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.
1. Операторы While Repeat используют в тех случаях, когда заранее неизвестно число повторений тела цикла или шаг отличен от 1.
2. При организации циклов с проверкой условия обязательно нужно указать:
начальное значение параметра цикла;
условие, при котором действия должны выполняться;
приращение параметра цикла[5].
Реализация While с помощью Repeat.
While <условие> do If < условие > then
1) {тело цикла} Repeat
End. {тело цикла}
Until not <условие > End.
2) Repeat {тело
{тело цикла} While not < условие >
Until <условие > {тело цикла}
End. End.
1.4 Цикл For
Этот вид оператора пикта называют или циклом с параметром. В нем важную роль играет переменная-параметр, которая на каждом шаге цикла автоматически изменяет свое значение ровно на единицу — поэтому ее и называют счетчиком.
При составлении программ с использованием циклов с параметром необходимо помнить следующее:
- Параметр цикла может быть только дискретного типа (т.е. целого или символьного).
- За пределами цикла использовать значение параметра нельзя, т.к. оно не определено.
- В теле цикла изменять параметр не рекомендуется.
- Параметры циклов в процедурах и функциях должны быть локальными переменными[6].