
- •Содержание
- •Тема 1. Основные понятия
- •1.2. Задача, алгоритм, программа
- •1.2.Структура модуля исходного кода
- •Тема 2. Линейный блок: оператор присваивания, переменная, процедура и функция
- •2.1 Линейный блок
- •2.2. Переменные и константы
- •Синтаксис объявления переменной в ObjectPascal
- •Синтаксис объявления именной константы в ObjectPascal
- •Синтаксис объявления переменных в VisualBasic
- •2.3Типыпеременныхиконстант
- •Var1: type definitions;
- •Var2, var3: type definition4;
- •Var4 : typel;
- •2.4. Простые типы данных
- •2.4.1. Порядковые типы
- •Поддиапазонные типы
- •Перечислимые типы
- •Операции над порядковыми типами
- •2.4.2. Целые переменные
- •Integer Shortint Smallint Longint Byte Word Cardinal
- •Физические целые типы
- •Логические целые типы
- •2.4.3. Вещественные переменные
- •Вещественные типы.
- •2.4.4. Строковые переменные
- •2.4.5. Булевы типы
- •Размеры переменных булевых типов
- •2.5. Процедуры и функции
- •Описание и вызов процедуры
- •Описание и вызов функции
- •Передача параметров
- •2.6 Область видимости переменных, констант, процедур и функций
- •2.7 Стандартные функции
- •Функции преобразования типов
- •Математические функции
- •Функции вещественных типов
- •Функции обработки строк
- •Строковые функции
- •2.8 Операции над данными
- •2.9 Приоритеты операций
- •2.10. Структурные типы
- •2.10.1. Записи
- •1: Variantnamel: varianttype3;
- •2, 3: Variantname2: varianttype4;
- •1: (KinfWorker: String[15];
- •2: (PosAdmin: String[20]);
- •2.10.2. Массивы
- •Var ИмяМассива: array [ТипИндекса1, ...., ТипИндексаN] of БазовыйТип
- •Var MyArray: Array [1..10] of Integer;
- •2.10.3. Множества
- •Var MyAlphaSet: CharSet;
- •2.10.4. Файловый тип
- •2.11. Указательные типы
- •Средства работы с указателями
- •2.12. Процедурные типы
- •2.13. Тип variant
- •Тема 3. Блок принятия решений: операторы ветвления
- •3.1 Оператор if
- •If условие1 then
- •3.3Операторcase
- •Тема 4. Цикличекий блок: операторы повторяющихся действий
- •4.1.Цикл for
- •4.2. Циклы while и repeat
- •4.3. Операторы break и cont inue
- •Тема 5. Работа с текстовыми файлами
- •5.1. Типы доступа к текстовым файлам
- •5.2. Текстовые файлы
- •5.2.2 Бинарные файлы
- •Id : String[12];
- •Тема 6. Работа с классами
- •6.1. Понятие класса
- •6.2. Классы в object pascal
- •6.3. Свойства класса
- •Способ глобальных и локальных переменных
- •Способ процедуры свойств
- •Создание и удалениеобъектов
- •Inherited Create;
- •Inherited Destroy;
- •6.4. Методы класса
- •6.5. Объявление и удаление объектов
- •Литература
2.13. Тип variant
Тип Variant предназначен для представления значений, которые могут динамически изменять свой тип. Если любой другой тип переменной зафиксирован, то в переменные типа Variant можно вносить переменные разных типов. Шире всего тип Variant применяется в случаях, когда фактический тип данных изменяется или неизвестен в момент компиляции.
Тема 3. Блок принятия решений: операторы ветвления
Блок принятия решений предназначен для выполнения или невыполнения определенного кода в зависимости от определенных условий.
3.1 Оператор if
Классической конструкцией условного оператора является If...В этой конструкции действие (оператор или группа операторов) выполняется только при условии, когда содержащееся в конструкции логическое выражение имеет значение True(Истина). В противном случае действие пропускается.
В Object Pascal оператор ifрекомендуется использовать совместно с блокамиbegin-end.Это позволяет избежать многих проблем. Например, если к одному оператору, выполняемому по условиюif, нужно добавить еще один, а блокаbegin-endнет, то программист может не заметить, что он добавляет новый оператор "мимо" оператораif. Если же блокbegin-endесть, то не заметить это трудно. Синтаксис оператораifвObject Pascalимеет следующий вид:
If условие1 then
begin
[операторы1; ]
end
else if условие2 then
begin
[операторы2; ]
end
else if условиеN then
begin
[onepaторN; ]
end
else
begin
[операторыХ; ]
end;
Фрагмент операторы1выполняется, еслиусловие1имеет значениеTrue.Фрагментоператоры2выполняется, еслиусловие1ложно, аусловие2истинно. ФрагментоператорыNвыполняется, если все предыдущие условия ложны, аусловиеNистинно, наконец, фрагментоператорыХвыполняется, если все условия отусловие1доусловиеNложны.
Оператор ifможет содержать произвольное количество предложенийelse if, и только одно предложениеelse.
3.3Операторcase
Для принятия сложных решений (особенно при наличии нескольких условий) можно воспользоваться оператором Case.
Оператор caseязыкаObject Pascalпохож на операторSelect Caseязыка VB. Главное отличие между ними состоит в том, что операторSelect Caseможет проверять строки и вещественные числа, а операторcaseработает только с порядковыми типами, включая целые и символы. Если при программировании наObject Pascalвозникает необходимость проверки строк или вещественных значений, то следует воспользоваться операторомif. Синтаксис оператораcaseвObject Pascal имеет следующий вид:
case УправляющееВыражение of
список1 : begin
операторы1-,
end;
список2 : begin
операторы2;
end;
. . . . . . . . . . . . . . . . . . . . . . . . . .
cnucoкN : begin
опеpaторыN;
end;
else begin
операторыХ;
end;
end;
В этом синтаксисе значение управляющего выражения сравнивается со значениям выражений в списках. Управляющее выражение должно иметь порядковый тип, например Integer,CharилиBoolean. Значение каждого выражения из списков должен иметь порядковый тип, кроме того, оно должно быть вычислимо во время компиляции. Например, 12, True, 4 - 9*5, 'X' иInteger('Z') являются допустимыми выражениями списков, однако использование в этих выражениях переменных и вызовов большинства функций не допускается. Список выражений может также содержать поддиапазон в форме
Первое_выражение .. Последнее_выражение.
Порядковое значение первого выражения должно быть меньше или равно порядковому значению последнего выражения Поддиапазон может входить в список в качестве одного из выражений.
Оператор caseможет содержать произвольное количество списков выражений, но только одно предложениеelse. Операторcaseвыполняется следующим образом. Если значение управляющего выражения совпадает со значением какого-либо выражения списков, то выполняется блок операторов, ассоциированный с этим списком, после чего управление передается оператору, следующему за оператором case. Если значение управляющего выражения совпадает со значениями нескольких выражений списков, то выполняется блок первого (верхнего) списка. Если совпадения значений не произошло ни для одного выражения списков, то выполняются операторы блока else. Предложение else не обязательно, однако его использование гарантирует реакцию оператора case на любое непредвиденное значение управляющего выражения. Если значение управляющего выражения не совпадает ни с одним значением выражений списков и предложения else нет, то не выполняется ни один блок оператора case и управление передается следующему за ним оператору.