- •Оглавление
- •Предисловие
- •Введение
- •1. Общие сведения о языках программирования
- •1.1. Краткая история эвм и языков программирования
- •1.2. Трансляторы
- •1.3. Основные понятия алгоритмических языков
- •2. Интегрированная среда borland pascal
- •2.1. Краткая характеристика. Запуск программы
- •2.2. Основы работы в редакторе
- •2.3. Система меню
- •2.3.1. Меню опции file
- •2.3.2. Меню опции edit
- •2.3.3. Меню опции search
- •2.3.4. Меню опции run
- •2.3.5. Меню опции compile
- •2.3.6. Меню опции debug
- •2.3.7. Меню опции tools
- •2.3.8. Меню опции options
- •2.3.9. Меню опции window
- •2.3.10. Меню опции help
- •3. Синтаксис языка borland pascal
- •3.1. Элементы языка
- •3.2. Служебные (зарезервированные слова), директивы и идентификаторы
- •3.3. Основные элементы программирования
- •3.4. Структура программы
- •4. Типы данных
- •4.1. Простые типы
- •4.1.1. Целые типы.
- •4.1.2. Логический тип
- •4.1.3. Символьный тип
- •4.1.4. Перечисляемый тип
- •4.1.6. Вещественные типы
- •4.2. Структурированные типы
- •4.2.1. Массивы
- •4.2.2. Записи
- •4.2.3. Множества
- •4.2.4. Файловый тип
- •Процедуры и функции ввода-вывода
- •4.3. Указатели
- •4.4. Строки
- •4.5. Совместимость и преобразование типов
- •4.6. Константы и константные выражения
- •5. Операторы и процедуры языка
- •5.1. Поразрядные оператоpы. Логические оператоpы. Опеpатоpы отношения
- •5.2. Оператор присваивания
- •5.3. Процедуры ввода и вывода
- •5.4. Условные операторы
- •5.4.1. Оператор If
- •5.4.2. Оператор case
- •5.5. Операторы цикла
- •5.5.1. Оператор while (цикл с предусловием )
- •5.5.2. Оператор repeat..Until (Цикл с постусловием)
- •5.5.3. Оператор цикла For (цикл с заданным количеством повторений)
- •5.6. Оператор безусловного перехода
- •5.7. Функции и процедуры для работы со строковыми и символьными данными
- •5.8. Комментарии в программе
- •6. Процедуры и функции
- •6.1. Параметры подпрограмм
- •7. Использование графики в borland pascal
- •7.1. Константы модуля Graph
- •7.1.1. Константы цвета
- •7.1.2. Константы типов и толщины линий
- •7.1.3. Константы шаблона штриховки
- •Заключение
- •Библиографический список
- •Решение задач на языке программирования Паскаль
- •Пример 9. Определить, имеются ли в массиве а[5,4] столбцы, состоящие из одних и тех же элементов, если такие есть, выдавать номера одинаковых столбцов, если нет – выдать сообщение.
- •Варианты заданий для самостоятельной работы Вычисление значений выражений
- •Вычислить значение функции с использованием условных операторов
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием
- •Программирование циклических алгоритмов с постусловием
- •Программирование алгоритмов обработки одномерных массивов
- •Программирование алгоритмов обработки двумерных массивов
- •Программирование с использованием функций
- •Программирование с использованием процедур
- •Обработка символьных и строковых данных
- •Графика
- •Оператор
5.5. Операторы цикла
Так же, как могут существовать операторы (или группы операторов), которые необходимо выполнить при выполнении определенного условия, могут быть операторы, которые нужно выполнить несколько раз. Такая конструкция называется циклом.
Имеется три основных вида циклов: цикл while, цикл repeat и цикл for.
5.5.1. Оператор while (цикл с предусловием )
Опеpатоp while имеет следующий фоpмат:
while <выражение> do оператор;
где <выражение> – это булево выражение, а оператор – одиночный или составной оператор.
В цикле while вычисляется выражение. Если оно имеет значение Тrue, то оператор выполняется, и выражение вычисляется заново. Если выражение имеет значение False, то цикл while завершается и выполнение программы продолжается. Следует отметить, что переменная используемая в выражении, должна быть, как правило, определена до цикла и обязательно менять своё значение в цикле (иначе цикл будет выполняться бесконечное число раз). Оператор while используется для проверки некоторого условия в начале цикла. Рассмотрим следующую программу:
program Hello10;
var Count : integer;
begin
Count := 1;
while Count <= 10 do begin
Writeln('Привет!');
Inc(Count)
end;
Writeln('Good by!');
Readln;
end.
Первое, что произойдет при запуске этой программы, – это присваивание Count значения 1, затем следует цикл while. Здесь сначала проверяется, не является ли значение Count меньшим или равным 10. Если да, то выполняется тело цикла (begin..end). При этом на экран выводится сообщение "Hello!", затем значение Count увеличивается на 1. Count проверяется заново, и тело цикла выполняется еще раз. Это продолжается до тех пор, пока значение Count при проверке меньше или равно 10. Как только Count принимает значение 11, цикл завершается, и на экране печатается строка "Good bye!".
5.5.2. Оператор repeat..Until (Цикл с постусловием)
Обобщенный формат для цикла repeat..until имеет вид:
repeat
оператор;
...
оператор
until выражение;
Результат выражения должен быть булевского типа. Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат выражения не примет значение True, т.е. указывается условие при котором необходимо выйти из цикла. Последовательность операторов выполнится, по крайней мере один раз, поскольку вычисление выражения производится после каждого выполнения последовательности операторов.
Program SwapCifr;
Var Number,Cifr : integer;
Begin
Write('Введите натуральное число: ');Readln(Number);
Repeat
Cifr:=Number mod 10;
Number:=Number div 10;
Writeln(Number, ' ',Cifr)
Until Number=0;
Readln;
End.
Приведенная программа печатает все цифры введенного числа в обратном порядке.
5.5.3. Оператор цикла For (цикл с заданным количеством повторений)
Если число повторений заранее известно, то подходящей конструкцией является оператор for.
Структура оператора выглядит следующим образом:
For <переменная цикла>:=<нач.знач> To (DownTo)<кон.знач> Do <оператор>;
где переменная (или параметр) цикла – переменная типа Integer, Boolean, Char; нач.знач. – начальное значение переменной цикла – выражение того же типа, что и переменная цикла; кон.знач. – конечное значение переменной цикла – выражение того же типа, что и переменная цикла; оператор – произвольный оператор.
Первый вариант оператора (For ...To...Do) предполагает увеличение значения переменной цикла на единицу при переходе к следующей итерации, второй (For...DownTo...Do) – уменьшение на единицу.
В обычном случае набор операторов выполняется фиксированное число раз, пока некоторая переменная цикла принимает значения из указанного диапазона. Например, модифицируем приведенную выше программу Hello10 следующим образом:
program Hello10;
var
Count : integer;
begin
for Count := 1 to 10 do
Writeln('Hello!');
Writeln('Good Bye!');
end.
Основным недостатком цикла for является то, что он позволяет увеличивать или уменьшать индекс только на 1. К его основным преимуществам относятся краткость и возможность использования символьного и перечислимого типов в диапазоне значений.
