- •Введение в object pascal
- •Лекция 1. Интегрированная Среда и Состав языка Object Pascal
- •1.1 Работа с окнами
- •1.2 Редактирование в Object Pascal
- •1.3 Команды меню
- •1.4 «Горячие» клавиши в Object Pascal
- •1.5 Состав языка
- •1.5.1 Алфавит и ключевые слова
- •1.5.2 Идентификаторы
- •1.5.3 Знаки операций, разделители, выражения и операторы
- •Лекция 2. Описательная часть программы
- •2.1 Структура программы
- •2.2 Описание констант
- •2.3 Описание и использование меток
- •2.4 Комментарии
- •Лекция 3. Описание переменных
- •3.1 Структура раздела описания переменных
- •3.2 Классификация типов данных
- •3.2.1 Целочисленные типы
- •3.2.2 Логический тип
- •3.2.3 Символьный тип
- •3.2.4 Вещественные типы
- •3.3 Описание типов пользователя
- •Лекция4. Выражения
- •4.1 Порядок выполнения операций
- •4.2 Выражения целого типа
- •4.3 Вещественные выражения
- •4.4 Логические выражения
- •Лекция 5. Программы Линейной структуры
- •5.1 Операторы ввода (Read, Readln)
- •5.2 Операторы вывода (Write, Writeln)
- •5.2.1 Форматирование численных значений
- •5.2.2 Вывод строковых, символьных и логических значений
- •5.2.3 Вывод вещественных значений в экспоненциальном формате
- •5.2.4 Расположение данного в поле вывода. Примеры
- •5.3 Оператор присваивания
- •5.4 Составной оператор
- •5.5 Стандартные процедуры и функции
- •5.5.1 Понятие процедуры и функции
- •5.5.2 Описание некоторых стандартных процедур и функций
- •5.5.3 Примеры программ линейной структуры
- •Лекция 6. Операторы ветвления (выбора)
- •6.1 Оператор ветвления if
- •6.2 Оператор множественного выбора (варианта) - case
- •Лекция 7. Операторы организации циклов
- •7.1 Цикл типа for
- •7.1.1 Прямая форма оператора for
- •7.1.2 Обратная форма оператора for
- •7.1.3 Советы для начинающих и примеры
- •7.2 Цикл типа While
- •7.3 Цикл типа Repeat... Until
- •7.4 Дополнительные операторы при программировании циклов
- •7.4.1 Досрочный выход из цикла - break
- •7.4.2 Переход к следующей итерации цикла - continue
- •Лекция 8. Массивы
- •8.1 Одномерные массивы
- •8.2 Сортировка одномерного массива
- •8.3 Массивы с большей размерностью
- •8.4 Констант-массивы
- •8.5 Генератор случайных чисел
- •8.5.1 Описание функции Random
- •8.5.2 Применение случайных чисел при работе с массивами
- •Лекция 9. Строки
- •9.1 Строковый тип
- •9.2 Операции над строками
- •Лекция 10. Записи и множества
- •10.1 Запись
- •10.2 Множества
- •11 Пользовательские процедуры и функции
- •11.1 Описание функции и процедуры
- •11.2 Понятие формальных и фактических параметров
- •11.3 Способы передачи параметров в подпрограмму через заголовок
- •11.4 Область видимости идентификаторов
- •12 Файлы
- •12.1 Основные понятия
- •12.2 Типизированные файлы
- •12.3 Текстовые файлы
6.2 Оператор множественного выбора (варианта) - case
Ситуация множественного выбора возникает при написании программ достаточно часто: обработка нажатия клавиш, обработка списков, файловых потоков и т. д. В этом случае использование обычного ветвления затруднительно, так как структура программы становиться слишком сложной. Оператор множественного выбора позволяет достаточно компактно решить подобные задачи. Блок-схема выполнения этого оператора представлена на рис. 6.3. На этом рисунке: I - выражение или переменная целого типа; n- количество ветвей. Управление передаётся на ветвь, номер которой совпадает со значением выражения или переменной I.
Форма записи оператора case:
case <выражение порядкового типа I> of
<список значений и диапазонов 1>: <оператор 1>;
<список значений и диапазонов 2>: <оператор 2>;
………………………………………………………..
<список значений и диапазонов n>: <оператор n>;
else <оператор n +1>;
end;
1
n
S1
S2
Sn
2
…..
S1
S2
Sn
…
…
Рис.6.3. Блок-схема оператора множественного выбора
Выполнение оператора case … of начинается с вычисления выражения I, после ключевого слова case. Далее, полученное число сверяется со значениями на ветках. Эти значения на каждой ветви записаны до двоеточия. В случае равенства числа значению на какой-либо из ветвей, будут выполнятся оператор(ы), записанные после двоеточия на этой ветви. В структуре оператора case допускается использование альтернативы else, если во всех списках значений и диапазонов не встретилось значение выражения I, то программа будет выполняться по ветке else.
Примеры:
1)
case A of
1, 2, 3: n:= 75;
4 . . 6: n:= 134;
7 . . 10, 17 . . 23: n:= 247 ;
end;
2)
case chr(M) of
'A', 'Б', 'Е', 'Р’: begin writeln(M); Inc(X); end;
'Л’ , 'K', ‘T’, 'И' : begin
writeln(M-32) ;
Inc(Y);
end;
'Ь’, 'Ю’, 'Э' : begin writeln(M-27) ; Inc (Z) ; end;
end;
3)
case V of
1, 2, 7: Write ('Да') ;
4, 6, 8: Write ('Может быть’);
else Write ( 'Нет' ) ;
end;
Задача. С клавиатуры вводится число 0 ≤ п ≤ 5. Вывести на экран числительное, соответствующее этому числу.
program p6_2 ;
var
n: integer;
begin
Writeln (' Введите число’);
Read ln(n) ;
case n of
1 : write ( ' один' ) ;
2: write (' два ');
: write ( 'три' ) ;
: write ( 'четыре' ) ;
: write ( ' пять ' ) ; else
write ('число не подходит');
end;
end.
Лекция 7. Операторы организации циклов
Object Pascal предлагает три различных оператора цикла, которые применяются в определенных ситуациях.
7.1 Цикл типа for
Этот цикл принято использовать, когда известно количество итераций (повторений), или когда на каждом шаге требуется знать номер итерации. В цикле for используется переменная порядкового типа, которую часто называют счётчиком цикла или параметром цикла. Данная переменная увеличивается или уменьшается автоматически на одну единицу. Существуют две формы цикла — прямая и обратная.
7.1.1 Прямая форма оператора for
Запись прямой формы этого оператора имеет вид:
for <идентификатор переменной порядкового типа> :=
n1 to n2 do <оператор(ы)>;
где <идентификатор переменной порядкового типа> - это счётчик или параметр цикла, который изменяется от начального значения n1 (меньшее значение) до n2 (большее значение соответствующего типа). Параметр цикла при каждой итерации изменяется на единицу. Если n1 > n2, то оператор цикла вообще не выполняется. <оператор> - это один простой или составной оператор языка Pascal. Обычно этот оператор называют телом цикла.
Примеры:
1)
for i:=1 to 100 do S:= S + i*i;
В этом примере i параметр или переменная цикла, которая изменяется от 1 до 100. Телом цикла является оператор присваивания S:= S + i*i , который будет выполняться 100 раз.
2)
for c:= 'A' to 'Z' do Writeln(ord(c), ' - ', c) ;
В этом примере параметром цикла является переменная символьного типа с, которая «пересчитывает» буквы английского алфавита, а в теле цикла выполняется вывод каждой буквы и её кода на экран.
3)
for t:= 300 to 400 do if (t mod 3) = 0 then Writeln(t);
В этом примере параметром цикла является переменная целого типа t , которая изменяется от начального значения 300 до конечного значения 400. В теле цикла выполняется вывод на экран тех значений переменной t , которые кратны трём.