
- •Любой алгоритм, какой бы он сложный не был, содержит лишь три основных, или, иначе говоря, базовых структуры. Этими базовыми структурами являютия:
- •Любой алгоритм, какой бы он сложный не был, содержит лишь три основных, или, иначе говоря, базовых структуры. Этими базовыми структурами являютия:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Строковый тип данных
- •Описание констант
- •Операция присваивания
- •Приоритет операций
- •Оператор присваивания
- •Совместимость и преобразование типов
- •Элементарный ввод-вывод
- •Лекция 5 Выражения
- •Математические операции
- •Логические операции
- •Операции отношения
- •Приоритет операций
- •Основные математические функции
- •Уменьшает значение числа X на y. Если число y не указано, то уменьшение происходит на 1. Циклы
- •Арифметические циклы
- •Итерационные циклы с предусловием
- •Итерационные циклы с постусловием
- •Операторы завершения цикла
- •Операторы ветвления и цикла Условный оператор if
- •Оператор множественного выбора Case
- •Операторы цикла
- •Операторы ветвления и цикла
- •Условный оператор if
- •Оператор множественного выбора Case
- •Операторы цикла
- •Лекция 7. Подпрограммы: процедуры и функции
- •Пример 27
- •Обмен данными
- •4.2. Множества
- •4.2.1. Объявление типа множества
- •4.2.2. Операции над множествами
- •4.2.3. Пример использования множества
- •Пример 33
- •4.3. Строки
- •4.3.1. Объявление типа String
- •4.3.2. Операции над строковыми переменными
- •4.3.3. Встроенные процедуры и функции обработки строк
- •Пример 34
- •4.1. Матрица
- •4.1.1. Ввод-вывод элементов матрицы
- •4.1.2. Определение индексов элементов матрицы
- •Записи Объявление типа записи
- •Вложенные записи
- •Массивы записей
- •Пример обработки массива записей
- •Определение и особенности файлов
- •Доступ к компонентам файла
- •Текстовый файл
- •Чтение из текстового файла
- •Запись в текстовый файл
- •Файлы в Тубо Паскаль
- •Файловые процедуры и функции
- •Текстовые файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Графика Турбо Паскаля
- •Записи Объявление типа записи
- •Вложенные записи
- •Массивы записей
- •Пример обработки массива записей
- •Статические и динамические памяти переменные
- •Объявление указателей
- •Выделение и освобождение динамической памяти
- •Операции с указателем
- •Пример 41
- •Связанные списки
- •Понятие бинарные деревья. Операции над бинарными деревьями
- •Применение бинарных деревьев
- •Сравнение рекурсии и итерации
- •Пример 51
- •Реализация объектно-ориентированного подхода в турбо-паскале
- •Алгоритмическая и объектная декомпозиция
- •Объектный тип в Турбо-Паскале
- •Способы наследования и переопределения
- •Виртуальные методы
- •Модуль c r t
- •Модуль g r a p h
Итерационные циклы с постусловием
Синтаксис:
repeat
оператор;
оператор;
...
оператор
until выражение
Операторы между словами repeat и until повторяются, пока логическое выражение является ложным (False). Как только логическое выражение становится истинным (True), происходит выход из цикла.
Так как выражение оценивается после выполнения операторов, то в любом случае операторы выполнятся хотя бы один раз.
Пример.
repeat
WriteLn('Введите положительное число');
ReadLn(x);
until x>0;
Операторы завершения цикла
Для всех операторов цикла выход из цикла осуществляется как вследствие естественного окончания оператора цикла, так и с помощью операторов перехода и выхода.
В версии Турбо Паскаль 7.0 определены стандартные процедуры:
Break
Continue
Процедура Break выполняет безусловный выход из цикла. Процедура Continue обеспечивает переход к началу новой итерации цикла.
Заметим, что хотя и существует возможность выхода из цикла с помощью оператора безусловного перехода goto, делать этого не желательно. Во всех случаях можно воспользоваться специально предназначенными для этого процедурами Break и Continue.
Операторы ветвления и цикла Условный оператор if
Условный оператор кодирует базовую структуру Развилка и позволяет проверить некоторое условие. В зависимости от результата проверки выполняется одно действие или другое. Условный оператор применяется в алгоритмах с ветвлением. Структура оператора If может быть представлена следующим образом:
if < условие > then < оператор1> else < оператор2>, |
где < условие > - любое булевское выражение; < оператор1 >, < оператор2 > - простой или составной оператор. Часть оператора: else < оператор2 > может быть опущена. Тогда If выполняет оператор, записанный после Then, или пропускает его. Операторы, указанные после ключевых слов Then и Else, сами могут быть условными операторами. Такой случай называют вложенностью, например:
if A > B then X := A else if B < C then X := B else X := C; |
В Турбо-Паскале принято, что каждый Else относится к ближайшему If. Рассмотрим пример:
if N > 0 then if ( M Div N ) > N then M := M - N else M := M + N; |
Оператор присваивания M := M + N будет выполняться только в том случае, если N > 0 и (M Div N) <= N. Ключевое слово Else является частью второго If, т.е. для N <= 0, никаких действий не производится. Если мы хотим, чтобы оператор M := M + N выполнялся для N <= 0, т.е. чтобы Else относился к первому If, необходимо использовать составной оператор:
if N > 0 then begin {составной оператор} if ( M Div N ) > N then M := M - N end else M := M + N; |
Оператор множественного выбора Case
Данный оператор позволяет выбирать одну из нескольких возможных альтернатив. Причем выбор определяется значением ключа, в качестве которого может использоваться выражение порядкового типа (обычно Integer или Char). Рассмотрим программу, осуществляющую перевод римской цифры в ее десятичный эквивалент.
Оператор Case работает следующим образом. Вначале вычисляется значение ключа R. Затем отыскивается такой оператор (простой или составной), которому предшествует константа, равная значению ключа выбора. Константа отделяется от выполняемого оператора двоеточием. После того, как выбранный оператор выполнится, Case завершает свою работу. Иногда используют Case с ключевым словом Else, после которого может стоять любой оператор. При отсутствии в списке выбора нужной константы осуществляется переход к оператору, следующему за Case, или управление передается оператору, стоящему за ключевым словом Else. Для каждой альтернативы предполагается один оператор (простой или составной). Ветвь Else допускает последовательность операторов, разделенных точкой с запятой. Любому оператору в списке выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми, например:
var I : integer; X : real; . . . case I of 2, 3: X := X * X; 100 : X := Sin(X); end; |
В этом фрагменте для I = 2 и I = 3 выполняется оператор X := X * X.