- •Тема I Основные понятия языка pascal 7.0
- •1.1. Алфавит и структура программы
- •Алфавит
- •Структура программы
- •I, j : integer;
- •1.2. Структура данных
- •Простые типы данных
- •Структурированные типы данных
- •Указатели
- •Процедурные типы
- •Объекты
- •Преобразование типов данных
- •1.3. Операторы языка
- •Простые операторы
- •Структурированные операторы
- •1.4. Процедуры ввода-вывода
- •Var I, j : integer;
- •Практические задания
- •Тема 2 Производящие функции и ряды
- •Var n, I: integer;
- •Var I, n, f : integer;
- •Var I, n, f, j, r, m : integer;
- •Var I, n, f, j, r, m : integer;
- •Var I, n, f, j : integer;
- •Var I, n, sum : integer;
- •Var I, n, m, к : integer;
- •If flag then
- •Var I, n, m, k, nod : integer;
- •Var I, n, m, k, nod, nok : integer;
- •Var n, r, m : integer;
- •Var n, r, м, к, I : integer;
- •If f then writeln('число', n, ' he палиндром')
- •Var X, y, z:real; I, n : integer;
- •Var X, y, z : real;
- •Var X,y. Z, е : real;
- •I: integer;
- •Var X, y, z, e : real;
- •I: integer;
- •Var X, y, z : real;
- •Практические задания
- •Тема 3 Обработка числовых последовательностей
- •Var n, X, sum, I: integer;
- •Var n, X, к, I: integer;
- •Var n, X, max, I: integer;
- •Var n, X, max, I: integer;
- •Var X, min1, min2 : integer;
- •Var old, new : real;
- •If f then
- •Var old, new : real; к : integer;
- •Var old, new, f : real;
- •Var old, new : real;
- •If f then
- •Var old, new : real;
- •If f then
- •Var poroda : string;
- •I, к, n : integer;
- •Var pol : string;
- •I, к, n : integer;
- •Практические задания
- •Тема 4 Символьные переменные и строки
- •Var I: char;
- •Var I: char;
- •Var I, l : char;
- •Var str: string;
- •If not(str[I] in m) then write(str[I])
- •Var str : string;
- •If not(str[I] in m) then write(str[I]);
- •Var str : string;
- •If (str[I] - '!') then write(V)
- •Var str : string;
- •Var str : string;
- •Тема 5 Обработка строк
- •Var str, wrd : string;
- •I, l : integer;
- •Var s1, str : string;
- •I: integer;
- •Var s1, str: string;
- •Var s1: string;
- •Var s1 : string;
- •Var s1 : string;
- •X : char;
- •Var s1 : string;
- •Var м, к, I, j : integer;
- •Var I, к : integer;
- •Var I, к : integer;
- •Var I, к : integer;
- •Var I, l : integer;
- •1234567890 Ааааааа .
- •Var I, l : integer;
- •If f then writeln('палиндром')
- •1234567890 Ааааааа .
- •Практические задания
- •Тема 6 Одномерные массивы
- •Var mas : array[1..M] of integer;
- •I, max, k, n : integer;
- •Var mas : array[1..M] of integer;
- •I, k, n : integer;
- •Var mas : array[1..M] of integer;
- •I, k, new, n : integer;
- •Var mas : array[1..M] of integer;
- •I, j, k, new, n : integer;
- •Var mas : array[1..M] of real;
- •I, n : integer;
- •Var mas : array[1..M) of real;
- •I: integer;
- •Var mas, num2, num5 : array[1..M] of integer;
- •Практические задания
- •Тема 2 Двумерные массивы
- •Var a : array[1..T, 1..S] of integer;
- •Var а : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of char;
- •Var a : array[1..T, 1..T] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Практические задания
- •Тема 8 Работа с файлами
- •Var f1, f2 : text;
- •X : char;
- •International
- •Var f1, f2 : text;
- •X : char;
- •International
- •Var Fl : text;
- •X: char;
- •International
- •Var f1 : text;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •I: integer;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Тема 9 Процедуры и функции
- •Var I, j : integer;
- •Var n, m : integer;
- •Var I, j : integer;
- •Var n, m : integer;
- •Var I, j : integer;
- •Var I, j : integer;
- •Var s : string;
- •Var I: integer;
- •Var I, j : integer;
- •Var I, j : integer;
- •Var n : longint;
- •Var s : integer;
- •Var n : longint;
- •Var s : integer;
- •Var а, в, d, к, X, y : integer;
- •Var а, в, d, к, X, y : integer;
- •Var а, в : integer;
- •Var к: integer;
- •Var I : integer;
- •Var n : longint;
- •Var s : integer;
- •Var а, в, X, d, y : integer;
- •Var а, в : integer;
- •Var к: integer;
- •Практические задания
- •Тема 10 Работа с текстом. Модуль crt
- •Var I: char;
- •Var I:integer;
- •Var X, I: integer;
- •Var I: integer;
- •Var X, y, I: integer;
- •Var X, y, I: integer;
- •Var X, y, I: integer;
- •Практические задания
- •Тема 11 Графика. Модуль Graph
- •Initgraph(driver, mode,' ');
- •Var driver, mode : integer;
- •Var driver, mode,
- •X, y : integer;
- •Var driver, mode,
- •X, y : integer;
- •Var driver, mode, X, y : integer ;
- •Var driver, mode, X, y : integer;
- •Var driver, mode, X, y : integer;
- •Var driver, mode, X, y, I: integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t, y0 : integer ;
- •Var driver, mode, X, y, I, t, xo : integer;
- •Var driver, mode, X, y, r : integer;
- •Var driver, mode, X, y, x1, y1, r : integer;
- •Var driver, mode, X, y, r, I: integer ;
- •Var driver, mode, X, y, r, rx, ry, lx, ly, I, size : integer;
- •Var driver, mode, X, y, r : integer;
- •Практические задания
- •Тема I 3 Разные задачи
- •Var f1:file of nn;
- •I:integer;
- •Var I:integer;
- •Var I, min,max:integer;
- •Var I,j:integer;
- •Var I,j:integer;
- •In_metr;
- •I,n:integer;
- •Var I:integer;
- •If I in s1 then
- •Приложение Зарезервированные слова borland pascal 7.0
- •Литература
- •Оглавление
- •1.1. Алфавит и структура программы
- •Тема 13 разные задачи
Указатели
Стандартный тип-указатель (POINTER) состоит из неограниченного множества значений, указывающих на однотипные элементы. Пустой указатель NILL принадлежит всем типам указателей и не указывает ни на один элемент.
Над указателями возможны только операции проверки на равенство и неравенство. Тип-указатель необходим для динамических структур данных. С помощью его становится доступен физический адрес размещения в памяти элементов.
Программист может использовать свой базовый тип и связать его с указателем. Например, для введения указателя на массив из 45 целых чисел можно объявить:
TYPE
MA = ARRAY[ 1..45] OF INTEGER;
POINT = MA;
Процедурные типы
В PASCAL 7.0 процедуры и функции допустимо использовать в качестве переменных. Объявление такого процедурного типа напоминает объявление процедуры или функции: пишется слово PROCEDURE или FUNCTION, за которым в круглых скобках следует список формальных параметров. Для функций необходимо еще указывать тип возвращаемого в основную программу результата, т. е. самой функции. Например:
TYPE
Р1 = PROCEDURE;
Р2 = PROCEDURE(VAR X, Y : INTEGER);
F1 = FUNCTION (VAR A, B : CHAR) : INTEGER;
VAR
SUM: P1;
RES : Р2;
KODE : F1;
При использовании процедурных типов следует помнить о следующих ограничениях:
■ они не должны иметь имена стандартных процедур и функций;
■ они не должны объявляться внутри других процедур и функций;
■ они не должны быть описаны с директивами INLINE и INTERRUPT;
■ они должны иметь директиву FAR или компилироваться с ключом компилятора {$F+}.
Объекты
Объектно-ориентированное программирование является одним из самых современных направлений в создании программного обеспечения. В основе этого понятия лежит понятие объекта, который включает в себя не только данные, но и методы обработки этих данных. PASCAL 7.0 дает широкие возможности по объектно-ориентированному программированию. К сожалению, из-за ограниченного объема они остаются за рамками нашей книги. В одной из ближайших книг мы подробно рассмотрим методы и алгоритмы объектно-ориентированного программирования.
Преобразование типов данных
При использовании различных типов данных часто встает вопрос об их совместимости. Мы различаем идентичные типы, совместимые типы и типы, совместимые для присваивания.
Идентичность типов подразумевает, что истинно одно из следующих утверждений:
■ ТР1 и ТР2 - один и тот же тип;
■ ТУРЕ ТР1 = ТР2 или ТУРЕ ТР2 = ТР1.
Например, определение
TYPE
ТР1 = CHAR;
ТР2 = ТР1;
ТРЗ = CHAR; дает идентичные типы ТР1, ТР2, ТРЗ и CHAR, a
VAR
Ml : ARRAY [ 1..7] OF CHAR;
M2 : ARRAY [ 1..7] OF CHAR; не дает идентичность Ml и M2, хотя их значения одного типа.
Совместимость типов данных дает возможность использовать в программах различные отношения и операции. Для того чтобы типы были совместимыми, необходима истинность одного из следующих утверждений:
■ ТР1 и ТР2 - идентичные типы;
■ ТР1 и ТР2 - целые типы;
■ ТР1 и ТР2 - вещественные типы;
■ ТР1 и ТР2 - типы-диапазоны одного и того же типа или один из них имеет другой тип;
■ один тип вещественный, другой - целый;
■ ТР1 и ТР2 - типы-множества с совместимыми базовыми типами;
■ один тип - строка, другой - строка или символ;
■ один тип - POINTER, другой - любой тип-указатель;
■ ТР1 и ТР2 - процедурные типы с идентичным числом и типом параметров и идентичным типом результата для функции;
■ один тип - PCHAR, другой - массив символов с нулевым символом в последнем элементе массива (при наличии ключа компилятора {$Х+});
■ ТР1 и ТР2 - указатели, привязанные к величинам идентичных типов.
Совместимость для присваивания, т. е. ТР1:= ТР2, возможна, если выполняется одно из условий:
■ ТР1 и ТР2 идентичны, не являются файловыми типами и не содержат компонентов файлового типа;
■ ТР1 и ТР2 - совместимые порядковые или вещественные типы, и значения ТР1 находятся в границах интервала возможных значений ТР2;
■ ТР1 и ТР2 - строки;
■ ТР1 - вещественный, и ТР2 - целый;
■ ТР1 - строка, и ТР2 - символ;
■ ТР1 и ТР2 - совместимые типы-множества, и все значения ТР1 попадают в ТР2;
■ ТР1 и ТР2 - совместимые указатели;
■ ТР1 и ТР2 - совместимые процедурные типы;
■ ТР1 и ТР2 - объектные типы, и ТР1 - потомок ТР2;
■ ТР1 и ТР2 - указатели на объектные типы и ТР1 указатель на потомка ТР2;
■ один тип - PCHAR, другой - массив символов с нулевым символом в последнем элементе массива (при наличии ключа компилятора {$Х+});
■ ТР1 типа PCHAR, и ТР2 - строковая константа.
В ряде случаев, если переменные имеют один размер, возможно преобразования типов.