- •Алгоритмы.
- •Условие
- •Типы данных.
- •Целые числа.
- •Вещественный тип данных.
- •Символьные и строковые типы данных.
- •Булевские данные.
- •Указатели.
- •Идентификаторы.
- •Операторы.
- •Операторы присваивания.
- •Арифметические операторы.
- •Побитовые операторы.
- •Операторы отношений.
- •Логические операторы.
- •Адресные операторы.
- •Операторы над множествами.
- •Строковые операторы.
- •Создание программ в среде turbo pascal Структура программ.
- •1: WriteLn(' I меньше 10 ');
- •Тип константы компилятор определяет по типу значения. Описание типов используется при создании типов данных, отличных от базовых.
- •Обзор управляющих структур языка pascal
- •Интегрированная среда turbo pascal Назначение и состав среды.
- •Строка статуса
- •Справочник.
- •Работа с блоками текста
- •Компиляция и выполнение
- •Выполнение по шагам и трассировка
- •Управляющие структуры языка Паскаль. Условные операторы.
- •Пустой оператор
- •Условный оператор
- •If Flag then Writeln(‘Истинно’)
- •If not Flag then Writeln(‘Ложно’)
- •Оператор выбора
- •Операторы цикла Оператор цикла с предусловием (while)
- •Оператор цикла с постусловием (repeat…until)
- •Оператор цикла с параметром (for...Do)
- •I : Integer; { описание параметров циклов}
- •Процедуры и функции.
- •Структура процедуры и функции.
- •Локальные и глобальные элементы.
- •I : Integer; {I - глобальная}
- •I : Integer; {I - локальная }
- •Параметры.
- •I : Integer; {I - локальная }
- •Var { описание переменных }
- •Var { описание внутренних переменных}
- •Структурированные типы данных языка паскаль Перечисляемый тип.
- •Структурированные типы
- •Массивы
- •If eq then Write(“Массивы одинаковы”);
- •Множества
- •Совместимость и преобразование типов.
- •Символы и строки Символы:
- •Строки.
- •Строка- это массив символов.
- •Доступ к файлам.
- •Логические устройства
- •Открытие файла
- •Процедуры и функции для работы с файлами.
- •Текстовые файлы.
- •Типизированные файлы.
- •Нетипизированные файлы.
- •Модуль graph.
- •Драйверы.
- •Координатная система.
- •Текущий указатель.
- •Фигуры и стили.
- •Окна и битовые образы.
- •Обработка ошибок.
- •Пример простой программы:
- •Справочник по модулю Graph
- •Модуль crt
- •Ввод данных с клавиатуры. Более подробно о cтандартных операторах ввода.
- •Функции crt.
- •Текстовый вывод на экран.
- •Некоторые процедуры модуля crt.
- •Программирование звукового генератора.
- •Указатели.
- •Динамические переменные.
- •Проблема ограничения памяти.
Управляющие структуры языка Паскаль. Условные операторы.
Составной оператор.
Последовательность операторов, ограниченная словами begin end;.
begin
a := 11;
b := a * a;
Write( a, b )
end;
Последняя точка с запятой перекочевала за слово end.
В структурном программировании составной оператор рассматривается как единая логическая единица.
Пустой оператор
Точка с запятой.
If LogicFunc( x ) then;
Имеет смысл когда например, нужно проигнорировать логическое значение, возвращаемое функцией.
Условный оператор
if Условие then Оператор1 else Оператор 2;
if Условие then Оператор;
Примеры условий:
var
Flag: Boolean;
Ch: Char;
begin
{условие – логическая переменная}
If Flag then Writeln(‘Истинно’)
else Writeln(‘Ложно’);
{условие – логическое выражение}
If not Flag then Writeln(‘Ложно’)
else Writeln(‘Истинно’);
if X > 5 then … {условие – результат сравнения}
if (X > 5) and (X < 10) then …
if Ch in [‘0’..’9’] then …
if not (Ch in [‘0’..’9’]) then …
if (A * B) > 5 then …
if Readkey <> ‘Y’ then …
end.
Вложенные условия
if Условие1 then
if Условие2 then
if Условие3 then Оператор;
Принадлежность else ( ближайшему if, не имеющему else )
if Условие1
then
if Условие2 then Оператор1
else Оператор2;
В данном примере Оператор2 относится к Условию2, с каким-бы отступом он небыл написан.
Оператор выбора
Case Переменная of
Значение 1: Оператор1;
Значение 2: Оператор2;
…
Значение N: ОператорN
else
Оператор
end;
Пример1:
Write('Оценка ? ');
ReadLn(X);
case X of
1: WriteLn('Неуд.');
2: WriteLn('Неуд.');
3: WriteLn('Уд.');
4: WriteLn('Хорошо');
5: WriteLn('Отлично');
end;
Пример2:
Write('?: ');
Ch := ReadKey;
case Ch of
'A'..'Z', 'a'..'z': WriteLn('Letter');
'0'..'9': WriteLn('Digit');
'+', '-', '*', '/': WriteLn('Operator');
else
WriteLn('Special character');
end;
Операторы цикла Оператор цикла с предусловием (while)
В практике программирования циклы — повторяющиеся выполнения одних и тех же простых или составных операторов — играют очень важную роль. Существует три стандартных способа организации циклических вычислений.
Рассмотрим оператор цикла с предусловием, записываемый как
WHILE Условие DO Оператор;
Конструкция WHILE...DO переводится как «пока...делать». Оператор (простой или составной), стоящий после служебного слова DO и называемый телом цикла, будет выполняться циклически, пока выполняется логическое условие, т.е. пока значение "Условия" равно True. Само условие цикла может быть логической константой, переменной или выражением с логическим результатом.
Условие выполнения тела цикла WHILE проверяется до начала выполнения каждой итерации. Поэтому, если условие сразу не выполняется, то тело цикла игнорируется и будет выполняться оператор, стоящий сразу за телом цикла.
При написании циклов с предусловием следует помнить о двух вещах. Во-первых, чтобы цикл имел шанс когда-нибудь завершиться, содержимое его тела должно обязательно влиять на условие цикла. Во-вторых, условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла. Поясним сказанное примером, вычисляющим значение факториала 10!
var
Factorial, N : Integer:
begin
Factorial := 1; { стартовое значение факториала = 1}
N := 1; {стартовое значение для условия цикла)
while N <= 10 do
begin { начало тела цикла WHILE }
Factorial:=Factorial*N;{ вычисление факториала N! }
N := N + 1 { N должно меняться в цикле }
end; { конец тела цикла WHILE }
WriteLn( Factorial ); { вывод результата расчета }
end.
Обратите внимание на присваивание N:=1 перед циклом. Без него значение N может быть любым, и условие может быть некорректным, не говоря уже о самом значении факториала. Значение N меняется внутри цикла. При этом гораздо безопаснее так писать тело цикла, чтобы оператор, влияющий на условие, был последним в теле. Это гарантирует от нежелательных переборов. Если, скажем, в предыдущем примере поставить, строку N:=N+1; перед вычислением значения Factorial, то Результатом программы будет значение 11!. Исправить оплошность можно, заменив стартовое значение N на 0, а условие — на N<10. Но от этого программа вряд ли станет нагляднее.
Поскольку циклу WHILE «все равно», что происходит в его теле, тело может содержать другие, вложенные, циклы.