Структура программы
Общая структура программы:
Пример описания данных:
Label label 0, 10, 999, Lab2;
описание меток;
Const const Stroc = 10; Stolb= 25; Y_e= ‘y.e.’;
описание констант; Sum = 1.56; Flag = True;
Type type Winter = (January, February, March);
описание типов; M = arry [1.. Strok, 1.. Stolb] of real;
Var var Masl, Mas2 : M;
описание переменных; i, j, k : byte : S!, S2: integer ;
описание процедур и функций;
Begin
операторы программы;
End.
Таблица II3.4. Приоритет операций в выражениях
Операции |
Приоритет |
Тип операции |
@, Not, +, -, ^ |
1-й (высший) |
Унарный |
*, /, Div, Mod, And, Shl, Shr |
2-й |
Мультипликативный |
+, -, Or, Xor |
3-й |
Аддитивный |
=, <>,<, >, <=, >=, ln |
4-й (низший) |
Операции отношения |
Модуль Graph
Константы параметров линий и типов штриховки:
Допустимые значения параметров типа (LineStile) и толщины линии (Thickness):
SolidLn = 0; {Сплошная}
DashedLn = 3; {Пунктирная}
DottedLn = 1; {Точечная}
NormWibth = 1; {Нормальная величина}
CenterLn = 2; {Штрихпунктирная}
ThickWidth = 3; {Тройная толщина}
Константы шаблона штриховки (параметр Pattern):
EmptyFill = 0; {заполнение цветом фона}
SolidFill = 1; {Сплошная штриховка}
LineFill = 2 ; {Горизонтальная штриховка}
LtSlashFill = 3; {/// Штриховка}
SlashFill = 4; {/// Штриховка толстыми линиями}
BkSlashFill = 5; {\\\ Штриховка толстыми линиями}
LtBkSlashFill = 6; {\\\ Штриховка}
HatchFIll = 7; {Заполнение прямой клеткой}
XHatchFill = 8; {Заполнение кривой клеткой}
InterleaveFill = 9; {Заполнение частой клеткой}
WideDotFill = 10 ;{ Заполнение редкими точками}
CloseDotFill = 11 ;{ Заполнение частыми точками}
UserFill = 12 ;{ Тип задается пользователем}
Таблица II3.5. Процедуры модуля Graph
Обращение |
Действие |
Arc (X, Y, A, B, R) |
Чертит дугу окружности:X, Y- координаты центра; A, B – начальный и конечный углы дуги(в градусах); отчет углов ведется против часовой стрелки; R – радиус (в пикселях) |
Ellipse (X, Y, A, B, RX, RY) |
Чертит эллипсную дугу: X,Y – координаты центра; A,B – начальный и конечный углы (в градусах); RX, RY – горизонтальный и вертикальный радиусы |
Sector (X, Y, A, B, RX, RY) |
Рисует и штрихует сектор эллипса радиусами RX и RY с центром в точке X, Y от угла A к углу B |
SetFillStyle (LineStile, Pattern, Thickness) |
Устанавливает образец штриховки и цвет |
SetLineStyle (LineStile, Pattern, Thickness) |
Устанавливает толщину и стиль линии |
SetTextStyle (Font, Direction, CharSize) |
Устанавливает текущий шрифт ( |
FillEllipse (X, Y, RX, RY) |
Рисует закрашенный эллипс |
FloodFill (X, Y, C) |
Заполняет любую замкнутую фигуру, используя текущий стиль заполнения (узор и цвет), X, Y – координаты точки внутри этой области, C – цвет границы |
Fill Poly (N, Coords) |
Обводит линией и закрашивает замкнутый многоугольник; N- количество вершин, Coods- переменная типа PointType, содержащая координаты вершин |
GetImage (X1, Y1, X2,Y2, Buf) |
Помещает в буфер памяти Buf копию прямоугольного фрагмента изображения |
PutImage (X, Y, Buf, Mode Put) |
Выводит в заданное место экрана (Х, У- координаты верхнего левого угла) копию фрагмента изображения из буфера Buf, Mode Put- способ копирования |
ImaigeSize (X1, Y1, X2, Y2) |
Возвращает размер памяти в байтах, необходимый для размещения прямоугольного фрагмента изображения |
GraphResult |
Возвращает 0, если последняя графическая операция выполнена без ошибок |
GraphErrorMsg (Code) |
Возвращает значение типа String с текстовым сообщением об ошибке; Code- код ошибки |
GetGraphMode |
Возвращает значение типа Integer, в котором содержится код текущего режима работы графического адаптера |
GetX |
Возвращает текущую координату указателя по горизонтали / вертикали (тип Integer) |
GetY |
|
GetMaxX |
Возвращает максимальную координату экрана по горизонтали / вертикали (тип Word) в текущем режиме работы |
Таблица П3.6. Процедуры библиотеки модуля Graph
Обращение |
Действие |
IniteGraph (Driver, Mode, F) |
Инициирует графический режим работы адаптера |
CloseGraph |
Завершает работу адаптера в графическом режиме |
RestoreCrtMode |
Служит для кратковременного возврата в текстовый режим |
ClearDevice |
Очищает экран, окрашивает его в цвет фона |
ClearViewPort |
Очищает графическое окно |
SetGraphMode (Mode) |
Устанавливае новый графический режим работы адаптера |
SetViewPort (X1, Y1, X2, Y2, T) |
Устанавливает прямоугольное окно на экране: Х1, У1- координаты левого верхнего, Х2, У2- координаты правого нижнего угла углов окна, Т- выражение типа Boolean, определяющий «отсечку» не уменьшающихся в окне элементов изображения (True- «отсекать») |
SetPalette (Reg, Col) |
Формирует новое значение Col в регистре с номером Reg (установка одного цвета палитры) |
SetAllPalette (Palette) |
Производит смену кодов цветности во всех регистрах палитры |
SetBkColor (Color) |
Устанавливает цвет фона (целое число от 0 до 15) |
SetColor (Color) |
Устанавливает цвет для выводимых символов и линий, Color- выражение типа Word |
PutPixel (X, Y, Color) |
Выводит точку с координатами Х, У цветом Color |
Line (X1, Y1, X2, Y2) |
Рисует отрезок линии по координатам его концов |
LineRel (Xh, Yh) |
Вычеркивает линию от текущего положения указателя до положения, заданного приращениями его координат Xh и Yh (выражения типа Integer) |
LineTo (X, Y) |
Вычеркивает линию от текущего положения указателя до положения, заданного его новыми координатами |
MoveRel (DX, DY) |
Устанавливает новое положение указателя в координатах относительно предыдущего |
MoveTo (X, Y) |
Устанавливает новое положнние указателя |
OutText (T) |
Выводит текст Т (кроме кирилицы), начиная с текущего положения указателя |
OutTextXY (X, Y, T) |
Выводит текст Т начиная с позиции Х строки У |
Circle (X, Y, R) |
Рисует окружность радиуса R типа Word с центром в точке с координатами (Х; У) |
Bar (X1, Y1, X2, Y2) |
Заполняет прямоугольную область экрана, заданную координатами диагонали |
Bar3D (X1, Y1, X2, Y2, D, Top) |
Чертит трехмерное изображение параллелепипеда (D- глубина) и закрашивает его переднюю грань; Top- выражени е типа Boolean, если Top=True, верхняя грань вычеркивается, если False- нет |
Rectangle (X1, Y1, X2, Y2) |
Вычерчивает прямоугольник по координатам левого верхнего и правого нижнего углов |
Типы файлов (файловых переменных)
Текстовый . . . . . . . . . var f : text
Типизированный . . . . var f : file of тип- компонента;
Нетипизированный . . var f : file.
Таблица П3.7. Процедуры и функции для текстовых файлов
Обращение |
Действие |
Append (F) |
Открывает файл для добавления в конец существующего файла |
Read (F, Список Переменных) |
Считывает из файла одно или более значений в одну или более переменных |
ReadLn (F, Список Переменных) |
То же, с переходом к следующей строке файла |
Write (F, Список Вывода) |
Записывает одно / несколько значений в файл, в заранее открытый для вывода |
WriteLn (F, Список Вывода) |
То же, с выводом признака конца строки |
SetTextBuf (F, Буфер [,Размер]) |
Назначает буфер ввода / вывода для файла ( по умолчанию размер буфера равен 128 байт) |
Eoln (F) |
Возвращает признак конца строки |
SeekEoln (F) |
Возвращает признак конца строки, в отличие от Eoln предварительно пропускает все пробелы и символы табуляции |
SeekEof (F) |
Возвращает признак конца файла, предварительно пропускает все пробелы и символы табуляции и признаки конца строки |
Таблица П3.8. Стандартные средства обработки файлов
Обращение |
Действие |
Assing (F,Имя Файла ) |
Связывает файловую переменную F с внешним (физическим)файлом |
Reset (F) |
Открывает существующий файл для чтения
|
Rewrite (F) |
Создает и открывает новый файл; при этом уничтожается существующий файл с таким же именем |
Close (F) |
Закрывает открытый ранее файл |
Rename (Старое Имя Файла, Новое Имя Файла) |
Переименовывает существующий внешний (закрытый) файл |
Erase (F) |
Удаляет внешний (закрытый) файл |
ChDir (S) |
Устанавливает текущий каталог |
MkDir (S) |
Создает подкаталог |
RmDir (S) |
Удаляет пустой каталог |
Seek (Имя Файла ,N) |
Устанавливает текущую позицию файла на компонент с номером N в файле (режим прямого доступа); не используется с текстовыми файлами |
Truncate (F) |
Усекает размер файла до текущей позиции в файле ( не используется с текстовыми файлами) |
EOF (F) |
Проверяет, достигнут ли конец файла (True) или нет (FALSE) |
IOResult |
Возвращает результат последней операции ввода / вывода (0- успех, <> 0- неудача) |
FilePos (F) |
Возвращает текущую позицию в файле (не используется с текстовыми файлами) |
FileSize (F) |
Возвращает текущий размер файла ( не используется с текстовыми файлами) |
Таблица П3.9. Процедуры и функции для работы с символами и строками
Обращение |
Тип результата |
Деиствие |
Str (Выражение, Строка) |
string |
Преобразование целочисленного выражения в строку |
Val (Строка, Число, Код) |
real |
Преобразование строки с числом в число; в случае успеха Код=0 |
Insert (Строка1, Строка 2, N) |
string |
Вставка Строки 1 в Строку 2, начиная с позиции N |
Delete (Строка ,N, M) |
string |
Удаление М-символов, начиная с позуции N |
Length (Строка) |
byte |
Количество исимволов в строке |
Pos (Подстановка, Строка) |
byte |
Позиция подстоновки в строке (0, если не найдено) |
Concat (Строка 1, … , Строка N) |
string |
Объединение N строк в одну |
Copy (Строка ,N, M) |
string |
Копирование из данной строки М-символов, начиная с позиции N. |
UpCase (Символ) |
char |
Преобразование строчной буквы в прописную (кроме русских букв) |
Таблица П3.10. Прочие функции и процедуры
Обращение |
Тип результата |
Действие |
Random (N) |
integer |
Возвращает случайное целое число из интервала [0, N-1], аргумент N- целого типа |
Random |
real |
Возвращает случайное число из интервала (0, 1)
|
Randomize |
|
Генерирует новую последовательность случайных чисел |
Odd (N) |
boolean |
Определяет нечетность числа (нечетное-истина, четное- ложь) |
Pred (X) |
|
Возвращает (извлекает) предыдущее значение из списка значений порядкового типа |
Succ (X) |
|
Возвращает (извлекает) следующее предыдущее значение из списка значений порядкового типа |
Swap |
|
Меняется местами байты двухбайтового аргумента |
Dec (X, Y) |
|
Уменьшает / увеличивает значение переменной Х на величину У (если аргумент один, то У=1) |
Таблица П3.11. Математические функции
Обращение |
Наименование функции |
Abs (Выражение) |
Абсолютное значение аргумента |
Sqr (Выражение) |
Квадрат аргумента |
Sqrt (Выражение) |
Квадратный корень из аргумента |
Sin (Выражение) |
Синус аргумента |
Cos (Выражение) |
Косинус аргумента |
Arctan (Выражение) |
Арктангенс аргумента |
Exp (Выражение) |
Экспонента аргумента |
Ln (Выражение) |
Натуральный логорифм аргумента |
Int (Выражение) |
Целая часть аргумента |
Frac (Выражение) |
Дробная часть аргумента |
Таблица П3.12.Преобразования типов данных
Обращение |
Тип аргумента |
Тип функциии |
Действие |
Trun (Выражение) |
Real |
longint |
Отсекает дробную часть аргумента |
Round (Выражение) |
Real |
longint |
Округляет значение выражения до ближайшего целого |
Ord (X)
|
|
longint |
Возвращает порядковый номер значения переменной порядкового типа Х (для символа- ASCII-код ) |
Модуль Crt
Модуль Сrt содержит константы, переменные и подпрограммы, предназначенные для работы с консолью. Подпрограммы модуля Crt работают непосредственно с видеопамятью.
При работе с экраном через модуль Crt весь экран разбивается на отдельные строки, а строка- на отдельные позиции, в каждую из которых можно поместить один символ. Таким образом, экран представляется прямоугольными элементами, 80 по горизонтали и 25 по вертикали, для которых можно задавать цвет фона и цвет символа.
Таблица П3.13. Процедуры библиотеки Crt
Обращение |
Действие |
Assign Crt(F) |
Связывает текстовый файл F с логическим устройством Crt (Cathod ray tube) |
TextMode(Mode) |
Устанавливает конкретный текстовый режим(по умолчанию, для цветных мониторов Mode=Co80 |
Window(X1, Y1, X2, Y2) |
Отображает текстовое окно по заданным координатам левого верхнего и правого нижнего углов |
ClrScr |
Очищает экран(текстовое окно) и помещает курсор в левый верхний угол экрана(текстового окна) |
GoToXY(X,Y) |
Переводит курсор в точку с заданными координатами |
Delay (N) |
Приостанавливает выполнение программы на указанное в миллисекундах время |
ClrEOL |
Удаляет все символы от позиции курсора до конца строки без перемещения курсора |
DelLine |
Удаляет текущую строку с перемещением всех ниже расположенных строк на одну строку вверх |
InsLine |
Вставляет пустую сторку |
TextBackground(С) |
Устанавливает цвет фона(значения от 0 до 7) |
TextColor(Ct) |
Устанавливает цвет символа |
Sound(G) |
Включает внутренний динамик(звук с заданной частотой в герцах) |
Nosound |
Выключает внутренний динамик |
HighVideo |
Устанавливает повышенную яркость символов |
LowVideo |
Выключает повышенную яркость символов |
NormVideo |
Устанавливает стандартную яркость символов |
ReadKey |
Возвращает символ нажатой клавиши |
KeyPressed |
Определяет, нажата клавиша-TRUE, если нет-FALSE |
WhereX |
Возвращает текущую координату X курсора, относящуюся к текущему окну |
WhereY |
Возвращает текущую координату Y курсора, относящуюся к текущему окну |
Таблица П3.14. Определение констант-названий цветов палитры
Номер |
Цвет(имя константы) |
Номер |
Цвет(имя константы) |
0 |
Black |
8 |
DarkGray |
1 |
Blue |
9 |
LightBlue |
2 |
Green |
10 |
LightGreen |
3 |
Cyan |
11 |
LightCyan |
4 |
Red |
12 |
LightRed |
5 |
Magenta |
13 |
LightMagenta |
6 |
Brown |
14 |
Yellow |
7 |
LightGray |
15 |
White |
Blink=128;{Мерцание символов} |
|||
Примечание. Цвета с кодами от 0 до 7 включительно можно использовать как для символов, так и для фона. Остальные цвета и мерцание-только для символов.
Массивы
Массив-это упорядоченная последовательность однотипных данных, обозначенная одним именем. Положение каждого элемента в массиве определяется его индексом(индексами). Индексы указывают в скобках после имени массива.
Type тип-массив=array[тип-индекса-1,тип-индекса-2,...тип- индекса- n] of тип-элемента.
Модель организации данных одномерного массива: a[1…n]
a[1] |
a[2] |
a[3] |
a[4] |
a[5] |
… |
a[n] |
Модель организации данных двухмерного массива: a[1…m, 1…n]
a[1,1] |
a[1,2] |
a[1,3] |
a[1,4] |
a[1,5] |
… |
… |
… |
… |
a[1,n] |
a[2,1] |
a[2,2] |
a[2,3] |
a[2,4] |
a[2,5] |
… |
… |
… |
… |
a[2,n] |
a[3,1] |
a[3,2] |
a[3,3] |
a[3,4] |
a[3,5] |
… |
… |
… |
… |
a[3,n] |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
a[m,1] |
a[m,2] |
a[m,3] |
a[m,4] |
a[m,5] |
|
|
|
|
a[m,n] |
Динамические структуры данных
Type тип- указатель=^тип- переменной;
