- •Программирование на языке Паскаль
- •Основы визуального программирования 67
- •Введение. Структура программы. Типы данных
- •Структура программы в зыке Паскаль
- •Комментарии
- •Раздел описания переменных
- •Имена идентификаторов в языке Паскаль
- •Типы данных в языке Паскаль
- •Вещественные типы
- •Целые типы
- •Оператор ввода
- •Составной оператор
- •Условный оператор
- •Выражения
- •Арифметические операции
- •Логические выражения
- •Логические операции
- •Приоритеты операций
- •Стандартные математические и арифметические функции
- •Структурированные операторы
- •Оператор выбора case
- •Оператор цикла for
- •Оператор цикла while
- •Inc(n); { Увеличение значения пременной n на 1 }
- •Оператор цикла repeat
- •Тип массив
- •Строковый тип
- •Процедуры и функции для работы со строками
- •Типизированные константы
- •Процедуры и функции
- •Обращение к процедурам и функциям
- •Процедуры и функции. Процедурные типы. Тип указатель
- •Модификаторы var и const в описании формальных параметров
- •Локальность и область действия
- •Процедурные типы
- •Тип указатель
- •Нулевой указатель
- •Работа с текстовыми файлами. Тип запись. Алгоритмы сортировки
- •Файловые типы
- •Процедуры и функции для работы с текстовыми файлами
- •Стандартные текстовые файлы
- •Тип запись
- •Обращение к элементам записи
- •Алгоритмы сортировки
- •Алгоритмы сортировки
- •Алгоритмы сортировки сравнениями
- •Объектно-ориентированное программирование. Структура программного модуля
- •Тип данных «объект»
- •Тип данных «класс»
- •Классификация стилей программирования
- •Структура программного модуля
- •Основы визуального программирования
- •Элемент управления «Поле ввода»
- •Элемент управления «Кнопка»
- •Элемент «Метка»
- •Элемент «Группа переключателей»
- •0:ShowMessage('Выбран вариант 1');
- •1:ShowMessage('Выбран вариант 2');
- •2:ShowMessage('Выбран вариант 3');
- •Основы визуального программирования
- •Элемент «Изображение»
- •Виды изображений
- •Класс tPicture
- •Класс tBitmap
- •Оператор with
- •Класс tCanvas
- •Библиографический список
- •620002, Екатеринбург, Мира, 19
Тип массив
Синтаксис
ARRAY [<Тип индекса>] OF <Тип элемента>
Тип индекса может быть любым порядковым типом. Тип массив описывает в памяти последовательность переменных указанного типа элемента.
Пример
TYPE
I100=ARRAY [1..100] OF Integer; { Массив из 100 целых чисел}
VAR
A:I100;
B:ARRAY [Char] OF (Letter,Digit);
C:ARRAY [1..10] OF ARRAY [1..20] OF Real;
В приведенном примере переменная C является двумерным массивом. Многомерные массивы можно описывать проще, перечисляя в квадратных скобках типы индексов через запятую.
Пример
VAR
C:ARRAY [1..10,1..20] OF Real;
Обращение к элементам массива
<Имя массива>[<Индекс 1>][<Индекс 2>]…[<Индекс N>]
или
<Имя массива>[<Индекс 1>,<Индекс 2>,…,<Индекс N>]
Пример
A[10]:=5;
FOR Ch:='A' TO 'Z' DO B[Ch]:=Letter;
FOR Ch:='0' TO '9' DO B[Ch]:=Digit;
C[2][3]:=C[2,4]-1;
Строковый тип
Синтаксис
STRING
или
STRING[<Максимальная длина>]
Описывает переменную, которая может содержать текстовую строку. Строковые значения в языке Паскаль записываются, как и символьные, в одиночных кавычках, но могут содержать не только один, но и несколько символов, или даже не содержать ни одного символа (пустые строки). К строковой переменной можно обращаться также как к массиву. При этом строка интерпретируется как массив символов (нумеруемый с 1).
Пример
VAR
S:STRING;
S20:STRING[20]; { Строка максимальной длины 20 символов}
∙ ∙ ∙
S:='Иванов';
IF S[4]<>'н' THEN Writeln('Ошибка');
S20:=S+' ушел в отпуск';
Writeln(S20);
Процедуры и функции для работы со строками
Функция Length(S) возвращает длину (количество символов) строки S. Для пустой строки функция возвращает 0.
Пример
Length('Пример')=6, Length('')=0
Функция Copy(S,<Начало>,<Длина>) возвращает часть строки (подстроку) S указанной длины, начиная с позиции, задаваемой параметром <Начало>.
Пример
Copy('Пример',2,3)='рим', Copy('Пример',4,10)='мер'
Процедура Insert(S1,S2,<Позиция>) вставляет строку S1 в строку S2 в указанной позиции.
Пример
S:='Пер';
Insert('рим',S,2);
Результат выполнения
S='Пример'
Процедура Delete(S,<Начало>,<Длина>) – удаляет часть строки заданной длины из S, начиная с указанной позиции.
Пример
S:='Периметр';
Delete(S,3,4);
Результат выполнения
S='Петр'
Типизированные константы
Типизированные константы, как и обычные, описываются в разделе описания констант, но их описание несколько отличается.
Синтаксис
CONST
<Имя>:<Тип> = <Значение>;
Хотя типизированные константы и называются константами, на самом деле они работают как переменные, т.е. их значение можно изменять в программе, а также их нельзя использовать в выражениях-константах. Однако, в отличие от обычных переменных, при запуске программы типизированные константы уже имеют определенные значения. По способу выделения памяти эти значения являются глобальными, где бы они ни были описаны.
Процедуры и функции
Процедуры и функции позволяют логически разделить программу на более мелкие и понятные фрагменты, а также выделить в отдельные подпрограммы часто выполняющиеся действия. Описание процедур и функций находится в описательной части основной программы.
Синтаксис
Общий вид процедур и функций:
<Заголовок>
<Описательная часть>
BEGIN
<Исполнительная часть>
END;
Заголовок процедуры:
PROCEDURE <Имя>[(Формальные параметры>)];
Заголовок функции:
FUNCTION <Имя>[(Формальные параметры>)]: <Тип результата>;
В списке формальных параметров находятся описания имен и типов параметров процедуры или функции, разделенные точками с запятой.
Синтаксис списка формальных параметров
[{VAR | CONST}] <Список имен 1>:<Тип 1>; [{VAR | CONST}] <Список имен 2>:<Тип 2>; . . .
[{VAR | CONST}] <Список имен N-1>:<Тип N-1>;
[{VAR | CONST}] <Список имен N>:<Тип N>
Тип результата указывает тип значения, возвращаемого функцией.
Пример
PROCEDURE PrintNumber(n:Real);
FUNCTION Sub(CONST S:STRING;St,En:Integer):STRING;
В описательной части процедур и функций, как и в описательной части основной программы, находятся описания переменных, констант, типов, меток, процедур и функций.
Исполнительная часть содержит последовательность операторов, разделенных точками с запятой. В исполнительной части функций для указания возвращаемого функцией значения применяться специальный оператор присваивания.
Синтаксис специального оператора присваивания
<Имя функции> := <Выражение>
Пример
FUNCTION Mul(A,B:Real):Real;
BEGIN
Mul:=A*B;
END;
В Delphi для возврата функциями значений в любой функции определена специальная переменная Result, которая имеет тип результата, указанный в заголовке функции. Присваивание этой переменной значения аналогично ранее рассмотренному специальному оператору присваивания.
Пример
FUNCTION Mul(A,B:Real):Real;
BEGIN
Result:=A*B;
END;
Переменную Result можно использовать и в любых выражениях, как любую обычную переменную. Так как специальная переменная Result неявно описана в любой функции, нельзя описывать формальный параметр функции с именем Result, а также переменные, константы и любые другие описания с именем Result в описательной части функции.
