ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ
ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»
Факультет физико-математический
Кафедра информатики и вычислительной техники
РЕФЕРАТ
Понятие цикла разработки программы в Pascal: назначение этапов цикла и действия разработчика.
Автор работы __________________________________________ В.Н.Слугина
Направления подготовки 44.03.05 Педагогическое образование
Профиль Информатика. Математика
Руководитель работы
канд. физ.-мат. наук, доцент__________________________ Т.В. Кормилицына
Оценка ___________
Саранск 2021
Содержание
Введение 3
1 Операторы циклов в среде программирования Pascal 4
1.1 Безусловные циклы 6
1.2 Циклы со счетчиком 6
1.3 Цикл с предусловием 8
1.4 Цикл с постусловием 9
2 Примеры разработанных задач с использованием операторов циклов 11
2.1 Разработанная задача с использованием безусловного цикла 11
2.2 Разработанная задача с использованием цикла со счетчиком 12
2.3 Разработанная задача с использованием цикла с предусловием 13
2.4 Разработанная задача с использованием цикла с постусловием 14
Заключение 15
Список использованных источников 16
Введение
Программирование – это процесс написания программного кода на каком-либо языке программирования. В основе многих языков программирования лежит три основных конструкции: присвоение, условие и цикл.
Без понимания описания базовых конструкций на языке программирования вряд ли можно перейти от написания простых программ к достаточно сложным программам, а, тем более, стать успешном программистом.
Создавая программу, программист сталкивается с тем, что часто приходится выполнять одни и те же действия над последовательностью значений. Для решения таких задач, программист использует циклы. Циклические конструкции являются важным компонентом программирования. Программисты редко пишут программы, которые используются только один раз. Большинство из них выполняются многократно, в основном каждый раз делая одни и те же операции, но с достаточными вариациями, в результате чего получаются ценные результаты. Часто непосредственно внутри самой программы используются множество повторений, также с небольшими вариациями. Вышесказанное позволяет сделать вывод, что исследование особенностей циклических конструкций в различных языках программирования остается актуальным, особенно в процессе подготовки IT-специалиста.
1 Операторы циклов в среде программирования Pascal
Цикл - разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода) [13].
Все циклы делятся на две группы: циклы с условием и циклы с параметром (for). Циклы с условием также можно разбить на две группы: циклы с предусловием (while) и циклы с постусловием (repeat – until). Схематично разбиение на типы циклов можно изобразить следующим образом (рисунок 1):
Рисунок 1 Типы циклов
Каждый из них состоит из определенной последовательности операторов [2].
Исполнение любого цикла включает:
Первоначальную инициализацию переменных цикла. Начальные установки служат для того, чтобы до входа в цикл задать значения переменных, которые в нем используются.
Проверку условия продолжения. Проверка условия продолжения цикла выполняется на каждой итерации либо до тела цикла, либо после тела цикла. Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется, надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу.
Исполнение тела цикла. Телом цикла называется блок, ради выполнения которого и организуется цикл. Если тело цикла состоит более чем из одного оператора, оно заключается в операторные скобки begin... end;. Однократное выполнение тела цикла называют его шагом.
Обновление переменной цикла на каждой итерации. Параметром цикла называется переменная, которая используется при проверке условия цикла и принудительно изменяется на каждой итерации, причем, как правило, на одну и ту же величину [4]. Если параметр цикла целочисленный, он называется счетчиком цикла. Количество повторений такого цикла можно определить заранее. Параметр есть не у всякого цикла. В так называемом итеративном цикле условие продолжения содержит переменные, значения которых изменяются в цикле по рекуррентным формулам [15, 6].
Один проход цикла называется итерацией [1].
Цикл завершается, если условие его продолжения не выполняется.
Таким образом, для программирования цикла достаточно определить условие, управляющее числом его повторений и описать операторы, образующие тело цикла. С этой точки зрения, теоретически возможны всего два вида циклов - проверка условия либо предшествует выполнению тела цикла, либо происходит после него [1]. Если в цикле находится всего один оператор, операторные скобки, показывающие начало и конец тела цикла, можно не писать [7].
Таким образом, цикл – это многократно исполняемая последовательность инструкций, организованная любым способом. Существует 3 основных вида циклов. Для программирования цикла достаточно определить условие, управляющее числом его повторений и описать операторы, образующие тело цикла.
1.1 Безусловные циклы
Иногда в программах используются циклы, выход из которых не предусмотрен логикой программы. Такие циклы называются безусловными, или бесконечными. Специальных синтаксических средств для создания бесконечных циклов, ввиду их нетипичности, языки программирования не предусматривают, поэтому такие циклы создаются с помощью конструкций, предназначенных для создания обычных (или условных) циклов. Для обеспечения бесконечного повторения проверка условия в таком цикле либо отсутствует (если позволяет синтаксис, как, например, в цикле LOOP…END LOOP языка Ада), либо заменяется константным значением (while true do … в Паскале). В языке С используется цикл for (;;) с незаполненными секциями [4, 13].
1.2 Циклы со счетчиком
Цикл со счётчиком - цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. В большинстве процедурных языков программирования реализуется оператором for, в котором указывается счётчик (так называемая «переменная цикла»), требуемое количество проходов (или граничное значение счётчика) и, возможно, шаг, с которым изменяется счётчик [5, 6].
Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется) [3].
В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик [9].
Цикл for существует в двух формах:
for счетчик:=значение to конечное_значение do
тело_цикла;
for счетчик:=значение downto конечное_значение do
тело_цикла; [10]
Схематическое изображение работы цикла с параметром for (блок – схема) выглядит следующим образом (рисунок 2):
Рисунок 2 Схема работы цикла с параметром for
Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных [2]. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу [11].
При работе со счетным оператором цикла for следует знать следующие правила:
переменная цикла, начальное и конечное значение должны быть одинакового типа;
нельзя входить в цикл, минуя оператор for, т.к. тогда цикл не будет организован (переменной цикла не присваивается начальное значение, проверка условия окончания цикла не организуется);
Шаг в цикле равен единице [4].
Итак, цикл со счётчиком - цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. Реализуется оператором for. Используется, когда число повторений известно.
1.3 Цикл с предусловием
Цикл while является циклом с предусловием. Оператор цикла с предусловием выполняет действия заранее неизвестное число раз. В заголовке цикла находится некоторое логическое выражение (условие). Если условие истинно, то тело цикла выполняется, если ложно – то нет. Так как верность логического выражения проверяется в начале, тело цикла может не выполнится ни одного разу [7].
Когда тело цикла было выполнено, то ход программы снова возвращается в начало цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение истинно. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в условии цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация, когда логическое выражение окажется ложным. Иначе произойдет зацикливание [9].
Структура цикла while:
While do
Begin
;
End;
Схематическое изображение работы цикла while (блок – схема) выглядит следующим образом (рисунок 3):
Рисунок 3 Схема работы цикла с предусловием while
1.4 Цикл с постусловием
Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием [14].
Этот оператор аналогичен оператору цикла с предусловием while, но отличается от него тем, что проверка условия производится после выполнения тела (операторов) цикла. Это обеспечивает его выполнение хотя бы один раз в отличие от других типов циклов. Причем, в отличие от цикла while, цикл выполняется до тех пор, пока логическое выражение (условие) ложно, а когда оно станет истинным, то произойдет выход из цикла [2].
Как и в цикле while, тело цикла выполнится столько раз, сколько раз логическое выражение ложно. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в условии, таким образом, чтобы когда-нибудь обязательно наступала ситуация, когда логическое выражение окажется истинным. Иначе произойдет зацикливание.
Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, то есть можно выполнять несколько действий, поэтому операторные скобки Begin и End не нужны [7].
Структура цикла repeat – until:
Repeat
;
Until ;
Схематическое изображение работы цикла repeat – until (блок – схема) выглядит следующим образом (рисунок 4):
Рисунок 4 Схема работы цикла с постусловием repeat
2 Примеры задач с использованием операторов циклов
2.1 Примеры задач с использованием безусловного цикла
Задача 1. Написать программу, которая будет показывать на экран квадрат числа, введенного пользователем. Пользователь должен сам решать – выйти из программы или продолжить ввод. (Подсказка – необходимо запустить бесконечный цикл, в котором предусмотреть его прерывание, при наступлении определённого условия).
Решение.
Описание переменных:
a – число;
v – символьная переменная для выбора.
program z1;
var a:integer; v:char;
begin
a:=0;
v:='y';
while true do
begin
writeln('Введите число: ');
readln(a);
writeln('Квадрат ',a,' = ',a*a);
writeln('Продолжить ввод чисел - y, Выйти - n: ');
readln(v);
if (v 'y') then break;
end;
end.
Рисунок 5 Результат работы программы задачи 1
2.2 Примеры задач с использованием цикла со счетчиком
Написать программу, которая вычисляет n-ую степень заданного целого числа.
Program Number;
Var a, n, i, pr: integer;
begin
writeln (‘Введите число');
readln (a);
writeln (‘Введите степень числа');
readln (n);
pr:= 1;
for i:= 1 to n do
begin
pr:= pr * a;
end;
writeln (‘Степень числа равна’,pr);
end [8].
Операторы for могут быть сложенными.
При выполнении вложенных циклов переменной a:=1 присваивается значение равное единице и это значение не меняется до тех пор, пока переменная b изменяется от 1 до 10. Таким образом, в первом цикле a:=1, b:=1; во втором цикле – a:=1, b:=2 и т.д. Выполнение циклов продолжается до
значения переменной a:=10
Рисунок 6 Результат работы программы задачи 2
Задача 3. «Переворот» числа [7].
Вводится число. Преобразовать его в другое число, цифры которого будут следовать в обратном порядке по сравнению с введенным числом.
Решение.
Описание переменных:
n, m - первое и второе числа;
a - хранение очередного разряда.
program z3;
var n,m: longint;
a: byte;
begin
readln(n);
m := 0;
while n0 do
begin
a := n mod 10;
n := n div 10;
m := m*10 + a;
end;
writeln(m);
end.
Рисунок 7 Результат работы программы задачи 3
2.3 Примеры задач с использованием цикла с предусловием
Пример: Вычислить сумму всех черных чисел до 50 [2].
Program Number;
Var sum: integer;
n: integer;
begin
sum:=0;
n:=2;
while n
begin
sum:= sum + n;
n:= n + 2;
end;
writeln ('Сумма равна: ',sum);
end.
2.4 Примеры задач с использованием цикла с постусловием
Пример: Определить сумму первой и последней цифр в числе [8].
Program Number;
Var a,b,c,d: integer;
begin
writeln('введите число');
readln(a);
d:=a mod 10;
repeat
b:=a mod 10;
a:=a div 10;
until a=0;
c:=d+b;
writeln('Сумма первой и последней цифры равна: ',c);
end.
Таким образом, во второй главе было рассмотрено решение задач с использованием всех типов циклов в Pascal. Были приведены примеры решения задач с помощью цикла со счетчиком, цикла с предусловием и цикла с постусловием, а также с помощью безусловного цикла. Рассмотрено решение одной и той же задачи с помощью всех типов циклов. Рассмотрено применение циклов при решении задач с массивами.
Заключение
В первой главе мы рассмотрели понятие цикла, особенности организации цикла, типы циклов. Рассмотрели особенности каждого типа: цикла со счетчиком, цикла с предусловием и цикла с пост условием. Кроме этого в этой главе были описаны этапы решения задач с использованием операторов цикла.
Во второй главе было рассмотрено решение задач с использованием всех типов циклов в Pascal. Были приведены примеры решения задач с помощью цикла со счетчиком, цикла с предусловием и цикла с постусловием, а также с помощью безусловного цикла.
Список использованных источников
Абрамов, С. А. Начала программирования на языке Паскаль / С. А. Абрамов, Е. В. Зима. – Москва : Наука. Главная редакция физико-математической литературы, 2011. – 112 с. – Режим доступа - https://ideafix.name/wp-content/uploads/stuff/book112.pdf (дата обращения: 01.06.2021). - Текст : электронный.
Андреева, Т. А. Программирование на языке Pascal : учебное пособие / Т. А. Андреева. – Москва : Интернет-Университет Информационных Технологий (ИНТУИТ) : Бином. Лаборатория знаний, 2006. – 234 с. – (Основы информационных технологий). – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=232980 (дата обращения: 06.06.2021). – ISBN 5-94774-405-8. – Текст : электронный.
Волкова, Т. И. Введение в программирование : учебное пособие : [16+] / Т. И. Волкова. – Москва ; Берлин : Директ-Медиа, 2018. – 139 с. : ил., схем., табл. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=493677 (дата обращения: 02.06.2021). – Библиогр. в кн. – ISBN 978-5-4475-9723-8. – DOI 10.23681/493677. – Текст : электронный.
Грацианова, Т. Ю. Программирование в примерах и задачах : учебное пособие : [12+] / Т. Ю. Грацианова. – 6-е изд. (эл.). – Москва : Лаборатория знаний, 2020. – 373 с. : ил., табл., граф. – (ВМК МГУ — школе). – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=448048 (дата обращения: 01.06.2021). – ISBN 978-5-00101-927-5. – Текст : электронный.
Гусева, А. И. Учимся программировать: PASCAL 7.0.: задачи и методы их решения / А. И. Гусева. – 2-е изд., испр. и доп. – Москва : Диалог-МИФИ, 2011. – 216 с. : ил.,табл. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=136078 (дата обращения: 06.06.2021). – Библиогр. в кн. – ISBN 5-86404-107-6. – Текст : электронный.
Зайцев, М. Г. Программирование: Структурное программирование, подпрограммы, строки : [16+] / М. Г. Зайцев ; Новосибирский государственный технический университет. – Новосибирск : Новосибирский государственный технический университет, 2016. – 103 с. : ил., табл. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=575676 (дата обращения: 02.06.2021). – Библиогр. в кн. – ISBN 978-5-7782-2938-9. – Текст : электронный.
Зюзьков, В. М. Программирование : учебное пособие / В. М. Зюзьков ; Томский Государственный университет систем управления и радиоэлектроники (ТУСУР). – Томск : Эль Контент, 2013. – 186 с. : ил. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=480616 (дата обращения: 02.06.2021). – Библиогр. в кн. – ISBN 978-5-4332-0141-5. – Текст : электронный.
Кадырова, Г. Р. Информатика: учебно-практическое пособие / Г. Р. Кадырова ; Ульяновский государственный технический университет, Институт дистанционного и дополнительного образования. – 2-е изд., доп. и перераб. – Ульяновск : Ульяновский государственный технический университет (УлГТУ), 2013. – 228 с. : ил., табл., схем. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=363404 (дата обращения: 01.06.2021). – Библиогр. в кн. – ISBN 978-5-9795-1151-1. – Текст : электронный.
Комарова, Е. С. Практикум по программированию на языке Паскаль : учебное пособие : [16+] / Е. С. Комарова. – 2-е изд., стер. – Москва ; Берлин : Директ-Медиа, 2019. – Ч. 1. – 86 с. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=575322 (дата обращения: 01.06.2021). – Библиогр. в кн. – ISBN 978-5-4499-0163-7. – DOI 10.23681/575322.
Комарова, Е. С. Практикум по программированию на языке Паскаль : учебное пособие : [16+] / Е. С. Комарова. – 2-е изд., стер. – Москва ; Берлин : Директ-Медиа, 2019. – Ч. 2. – 124 с. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=575323 (дата обращения: 02.06.2021). – Библиогр. в кн. – ISBN 978-5-4499-0164-4. – DOI 10.23681/575323.
Лубашева, Т. В. Основы алгоритмизации и программирования : учебное пособие : [12+] / Т. В. Лубашева, Б. А. Железко. – Минск : РИПО, 2016. – 378 с. : ил. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=463632 (дата обращения: 06.06.2021). – Библиогр. в кн. – ISBN 978-985-503-625-9. – Текст : электронный.
Нагаева, И. А. Алгоритмизация и программирование: практикум : [12+] / И. А. Нагаева, И. А. Кузнецов. – Москва ; Берлин : Директ-Медиа, 2019. – 168 с. : ил., табл. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=570287 (дата обращения: 06.06.2021). – Библиогр.: с. 163-164. – ISBN 978-5-4499-0314-3. – DOI 10.23681/570287. – Текст : электронный.
Нагаева, И. А. Основы алгоритмизации и программирования: практикум : [12+] / И. А. Нагаева, И. А. Кузнецов. – Москва ; Берлин : Директ-Медиа, 2021. – 169 с. : схем. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=598404 (дата обращения: 01.06.2021). – Библиогр.: с. 162-163. – ISBN 978-5-4499-1612-9. – DOI 10.23681/598404. – Текст : электронный.
Павлова, Т. Ю. Структурное программирование в ИСР «Free Pascal» : учебное пособие / Т. Ю. Павлова. – Кемерово : Кемеровский государственный университет, 2010. – 88 с. – Режим доступа: по подписке. – URL: https://biblioclub.ru/index.php?page=book&id=232450 (дата обращения: 02.06.2021). – ISBN 978-5-8353-1023-4. – Текст : электронный.
Программирование: математическая логика : учебное пособие для вузов / М. В. Швецкий, М. В. Демидов, А. В. Голанова, И. А. Кудрявцева. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2020. — 675 с. — (Высшее образование). — ISBN 978-5-534-11009-8. — Текст : электронный // ЭБС Юрайт [сайт]. — URL: https://urait.ru/bcode/439066 (дата обращения: 02.06.2021).