- •Программирование на языке Паскаль
- •Содержание
- •Введение. Структура программы. Типы данных
- •Структура программы в зыке Паскаль
- •Комментарии
- •Раздел описания переменных
- •Имена идентификаторов в языке Паскаль
- •Типы данных в языке Паскаль
- •Целые типы
- •Вещественные типы
- •Раздел описания констант
- •Оператор ввода
- •Составной оператор
- •Условный оператор
- •Выражения
- •Арифметические операции
- •Логические выражения
- •Логические операции
- •Приоритеты операций
- •Стандартные математические и арифметические функции
- •Структурированные операторы
- •Оператор выбораCase
- •Оператор циклаFor
- •Оператор циклаWhile
- •Inc(n); { Увеличение значения пременнойnна 1 }
- •Оператор циклаRepeat
- •Пользовательские порядковые и составные типы. Процедуры и функции
- •Раздел описания типов
- •Интервальный тип
- •Перечислимый тип
- •Тип массив
- •Строковый тип
- •Процедуры и функции для работы со строками
- •Типизированные константы
- •Процедуры и функции
- •Обращение к процедурам и функциям
- •Процедуры и функции. Процедурные типы. Тип указатель
- •МодификаторыVar иConst в описании формальных параметров
- •Локальность и область действия
- •Процедурные типы
- •Тип указатель
- •Нулевой указатель
- •Работа с текстовыми файлами. Тип запись. Алгоритмы сортировки
- •Файловые типы
- •Процедуры и функции для работы с текстовыми файлами
- •Стандартные текстовые файлы
- •Тип запись
- •Обращение к элементам записи
- •Алгоритмы сортировки
- •Алгоритмы сортировки
- •Алгоритмы сортировки сравнениями
- •Объектно-ориентированное программирование. Структура программного модуля
- •Тип данных «объект»
- •Тип данных «класс»
- •Классификация стилей программирования
- •Структура программного модуля
- •Основы визуального программирования
- •Элемент управления «Поле ввода»
- •Элемент управления «Кнопка»
- •Элемент «Метка»
- •Элемент «Группа переключателей»
- •0:ShowMessage('Выбран вариант 1');
- •Виды изображений
- •Класс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 в описательной части функции.