- •Внимание! Серым цветом выделен необязательный материал! Глава «Введение» - также для общего развития.
- •Курс лекций по программированию на языке Pascal Содержание курса
- •Введение
- •Программное управление компьютером
- •Этапы разработки программного обеспечения. Языки программирования.
- •Языки программирования
- •Трансляция
- •Алгоритмы и структурное программирование
- •Основные структуры алгоритмов. Понятие о структурном подходе к разработке алгоритмов
- •Методы разработки программного обеспечения
- •Структуры данных
- •Сортировка
- •Стратегии распределения памяти
- •Объектно-ориентированное программирование
- •Базовые элементы языка тurbo рascal
- •Алфавит
- •Константы и переменные
- •Выражения и операции
- •Структура программы
- •Типы данных языка тр
- •Простые типы
- •Целые типы
- •Логический тип
- •Символьный тип
- •Перечисляемый тип
- •Вещественный тип
- •Математические функции
- •Математические процедуры
- •Структурированные типы
- •Массивы
- •Множества
- •Процедуры преобразования
- •Совместимость и преобразование типов
- •Управляюшие структуры языка turbo pascal Операторы
- •Простой и составной оператор
- •Условный оператор
- •Оператор множественного выбора
- •Оператор цикла "пока" (с предусловием)
- •Оператор цикла "до" (с постусловием)
- •Оператор цикла с параметром (цикл по счетчику)
- •Оператор безусловного перехода
- •Процедуры и функции
- •Особенности функций
Оператор множественного выбора
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Если варианта всего два, то можно использовать оператор if, если больше, то оптимален оператор case, структура которого имеет вид:
case <ключ выбора> of <список выбора> else <операторы> end
где <ключ выбора> - переменная или выражение любого порядкового типа кроме LongInt,
<список выбора> - одна или несколько констукций вида:
<константа выбора> : <оператор>; где константа выбора - константа того же типа, что и ключ выбора.
Если ключ выбора - выражение, то оно вычисляется при исполнении оператора case. В зависимсти от значения ключа выбора выбирается тот оператор, которому предшествует константа выбора, равная вычисленному значению. Оператор может быть простым или составным. Найденный оператор вычисляется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора управление передается операторам (их может быть несколько), стоящим за словом else. Имеется принциальная возможность опускать часть else <операторы>. В этом случае при отсутствии в списке выбора нужной константы ничего не произойдет, и оператор выбора просто завершит свою работу. По-прежнему, перед end и else точка с запятой не обязательна (если поставить - работать будет). Константы выбора могут перечисляться через запятую, а также записываться в виде диапазона. Значения констант должны быть уникальными в каждом наборе, т.е. они могут появиться только в одном варианте. Пересечение набора значений в разных вариантах является ошибкой. Пример:
case I of {I : Word}
1 : X := X +1;
2,3 : X := X +2;
4..9 : begin
Write(X);
X := X + 3 {м.б. ";"}
end {м.б. «;»}
else
X := X*X;
Writeln(X) {м.б. «;»}
end;
Эффективность оператора case будет максимальным, если размещать наиболее вероятные значений первыми в порядке следования.
Оператор цикла "пока" (с предусловием)
В практике программирования циклы - повторяющиеся выполнения одних и тех же операторов - играют очень важную роль. Один из трех стандартных способов организации циклических вычислений связан с использованием оператора цикла с предусловием. Формат:
while <условие> do <оператор>;
Оператор (простой или составной), стоящий после служебного слова do и называемый телом цикла будет выполняться циклически до тех пор, пока выполняется логическое условие, т.е. пока значение условия равно True. Само условие цикла может быть логической константой, переменной или выражением с логическим результатом.
Условие проверяется до начала выполнения каждой итерации. Поэтому, если условие не выполняется сразу на первом же шаге, то тело цикла игнорируется и будет выполняться оператор, стоящий сразу за телом цикла.
Следует помнить о двух моментах:
чтобы цикл имел шанс когда-либо завершиться, содержимое его тела должно влиять на условие цикла;
условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла.
Пример вычисления 10!
Var
F,N : Integer;
Begin
F := 1; N := 1;
while N <= 10 do
begin
F := F*N;
Inc(N) {N := N + 1}
end;
Writeln(F)
End.
Здесь важно присваивание N := 1 перед началом цикла, без него значение N может быть любым, и условие может быть некорректным.
