
- •Любой алгоритм, какой бы он сложный не был, содержит лишь три основных, или, иначе говоря, базовых структуры. Этими базовыми структурами являютия:
- •Любой алгоритм, какой бы он сложный не был, содержит лишь три основных, или, иначе говоря, базовых структуры. Этими базовыми структурами являютия:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Строковый тип данных
- •Описание констант
- •Операция присваивания
- •Приоритет операций
- •Оператор присваивания
- •Совместимость и преобразование типов
- •Элементарный ввод-вывод
- •Лекция 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
Операторы ветвления и цикла
В большинстве задач, встречающихся на практике, необходимо производить многократное выполнение некоторого действия. Такой многократно повторяющийся участок вычислительного процесса называется циклом.
Если заранее известно количество необходимых повторений, то цикл называется арифметическим. Если же количество повторений заранее неизвестно, то говорят об итерационном цикле.
В итерационных циклах производится проверка некоторого условия, и в зависимости от результата этой проверки происходит либо выход из цикла, либо повторение выполнения тела цикла. Если проверка условия производится перед выполнением блока операторов, то такой итерационный цикл называется циклом с предусловием (цикл "пока"), а если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл "до").
Особенность этих циклов заключается в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, а тело цикла с предусловием может ни разу не выполниться. В зависимости от решаемой задачи необходимо использовать тот или иной вид итерационных циклов.
Условный оператор 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.