- •Внимание! Серым цветом выделен необязательный материал! Глава «Введение» - также для общего развития.
- •Курс лекций по программированию на языке Pascal Содержание курса
- •Введение
- •Программное управление компьютером
- •Этапы разработки программного обеспечения. Языки программирования.
- •Языки программирования
- •Трансляция
- •Алгоритмы и структурное программирование
- •Основные структуры алгоритмов. Понятие о структурном подходе к разработке алгоритмов
- •Методы разработки программного обеспечения
- •Структуры данных
- •Сортировка
- •Стратегии распределения памяти
- •Объектно-ориентированное программирование
- •Базовые элементы языка тurbo рascal
- •Алфавит
- •Константы и переменные
- •Выражения и операции
- •Структура программы
- •Типы данных языка тр
- •Простые типы
- •Целые типы
- •Логический тип
- •Символьный тип
- •Перечисляемый тип
- •Вещественный тип
- •Математические функции
- •Математические процедуры
- •Структурированные типы
- •Массивы
- •Множества
- •Процедуры преобразования
- •Совместимость и преобразование типов
- •Управляюшие структуры языка turbo pascal Операторы
- •Простой и составной оператор
- •Условный оператор
- •Оператор множественного выбора
- •Оператор цикла "пока" (с предусловием)
- •Оператор цикла "до" (с постусловием)
- •Оператор цикла с параметром (цикл по счетчику)
- •Оператор безусловного перехода
- •Процедуры и функции
- •Особенности функций
Управляюшие структуры языка turbo pascal Операторы
В этом разделе будут рассмотрены управляющие операторы ТР (условный оператор, операторы циклов, выбора и др.), а также вопросы построения процедур и функций, и принципы построения модулей.
Простой и составной оператор
Оператор в программе - это единое неделимое предложение, выполняющее какое-либо действие. Простой оператор не содержит в себе других операторов. Типичный простой оператор - это оператор присваивания. Другим примером может являться вызов процедуры. Важно, что под любым оператором подразумевается какое-либо действие. В этом смысле составляющие блока описания типов, перменных, констант и т.д. операторами не являются.
Два последовательных оператора должны разделяться точкой с запятой. Этот символ имеет смысл конца оператора, в частности, он разделяет операторы при записи в строку:
a := 11; b:=a*a; Write(a,b);
Если какое-то действие мыслится как единое (например, присваивание значений элементам массива), но реализуется несколькими различными операторами, то эти операторы могут быть представлены как составной оператор. Составной оператор - это последовательность операторов, перед которой стоит слово begin, а после слово - end. Слова begin и end сами не являются операторами, поэтому после begin и перед end точка с запятой не ставится. Чтобы оформить предыдущий пример в один, но составной оператор, необходимо как бы заключить их в операторные скобки begin...end:
begin
a := 11;
b := a*a;
Write(a,b)
end;
Составной оператор может содержать любое допустимое число простых операторов. Кроме того, он допускает вложенность, т.е. может содержать внутри себя другие составные операторы (в этом случае нужно лишь, чтобы внутренний составной оператор открывался позже, чем внешний, а закрывался - раньше).
Пустой оператор не содержит никаких действий, просто в программу добавляется дополнительная точка с запятой (например, в последнем примере перед end). В основном пустой оператор используется для передачи управления в конец составного оператора.
Условный оператор
Условный оператор имеет структуру
if <условие> then <оператор1> else <оператор2>
где if, then, else - зарезервированные слова (если...то...иначе);
<условие> - логическое значение True или False, представленное константой, переменной или логическим выражением.
Если условие представлено значением True, то выполняется <оператор1>, следующий за словом then. Но если условие не выполняется, т.е. представлено значением False, то будет выполняться <оператор2> за словом else. Например,
if K > 5 then
begin
X := X + 5; Y := 1
end
else
Y := -1;
Здесь после then следует составной оператор, перед словом else точки с запятой нет, а затем простой оператор (между ключевыми словами точки с запятой не требуется). Точка с запятой после else обязательна, т.к. она отделяет весь условный оператор от последующего.
Часть else <оператор 2> может быть опущена. При этом если условие дает False оператор пропускается и программа переходит к следующему.
Условные операторы могут быть вложенными друг в друга. При создании такой сложной конструкции самое главное - не запутаться в вариантах сочетаний условий (чему может помочь ступенчатая форма записи). При этом всегда действует правило: альтернатива else считается принадлежащей ближайшему условному оператору if, не имеющему своей ветви else. Пример:
if Условие1 then
if Условие2 then
ОператорA
else
ОператорБ;
Можно предположить, что ОператорБ будет выполнен при невыполнении Условия1. На самом деле, имея в виду введенное правило, ОператорБ будет выполнен при выполнении Условия1 и невыполнения Условия2. Точка с запятой после ОператорА не помогает, т.к. закрывает весь оператор, а else… становится как бы отдельным оператором. Выход - использование составного оператора:
if Условие1 then
begin
if Условие2 then
ОператорA
end
else
ОператорБ;
В условии оператора if может стоять достаточно сложное логическое выражение, в котором может потребоваться учитывать приоритет различных операций.
