текста и т.д.).
Для запуска программы с использованием модуля GRAPH необходимо,
чтобы в рабочем каталоге находились графические драйверы с расширением
*.BGI, также должен быть доступен компилятору модуль GRAPH.TPU.
В начале программы модуль GRAPH должен быть подключен
USES GRAPH;
InitGraph(driver,mode,’путь к BGI’);
driver – определяет тип графического драйвера,
mode – переменная, задающая режим работы графического адаптера;
Процедуры и функции модуля GRAPH
ClearDevice - Очищает экран и помещает курсор в точку (0,0);
SetViewPort(x1,y1,x2,y2:integer; Clip: boolean) - Устанавливает текущее
окно для графического вывода. X1,y1 – координата верхнего левого угла;
x2,y2 - координата нижнего правого угла. Если Clip=true, то все изображения
отсекаются на границах вывода;
Closegraph – закрывает графический режим
ClearViewPort - Очищает текущее окно;
GetMaxX: integer - возвращает максимальную горизонтальную координату
графического экрана;
GetMaxY :integer - возвращает максимальную вертикальную координату
GetX: integer - возвращает координату Х текущего указателя в окне;
GetY: integer - возвращает координату Y курсора в окне;
SetLineStyle(Line, Pattern, Thickness: word) - Устанавливает стиль (0..4),
шаблон штриховки (0..12) и толщину (1-ноpм, 3-утpоенная);
SetFillStyle(Pattern, Color: word) - Устанавливает образец штриховки и цвет
(0..15 и 128-меpцание);
SetGraphMode(Mode: integer) - Устанавливает новый графический режим и
очищает экран;
SetColor(Color: word) - Устанавливает основной цвет, которым выполняется
рисование (0..15);
SetBkColor(Color: word) - Установка цвета фона.
PutPixel(X,Y: integer; Color: word) - Выводит точку цветом Color с
координатой X,Y;
LineTO(X, Y: integer) - Рисует линию от текущего указателя к точке с
координатой Х,У;
LineRel(DX, DY: integer) - Рисует линию от текущего указателя к точке,
заданной приращением координат;
Line(X1,Y1,X2,Y2:integer) - Рисует линию от точки (X1,Y1) к точке с
координатой Х2,У2;
MoveTO(X, Y: integer) - Смещает текущий указатель к точке с координатой
Х,У;
MoveRel(DX, DY: integer) - Смещает текущий указатель к точке, заданной
приращением координат;
Rectangle(X1,Y1,X2,Y2:integer) - Рисует прямоугольник, используя текущий
цвет и тип линии по верхней левой и нижней правой точкам;
Bar(X1,Y1,X2,Y2:integer) - Рисует закрашенный прямоугольник, используя
установку SetFillStyle;
Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:Bolean) - Рисует закрашенный
паpаллелипипед. Depth - глубина в Pixel (1/4 ширины). Если Тор=True, то
рисуется верхняя грань пеpеллелипипеда;
Circle(X,Y:integer;R:word) - Рисует окружность радиуса R, используя X,Y как
координаты центра;
Fillellipse(X,Y: integer; XR,YR: word) - Рисует защтpихованный эллипс,
используя X,Y как центр и XR,YR как горизонтальный и вертикальный радиусы.
RestorCRTMode - Восстанавливает текстовый режим работы экрана;
OutText(Text: string) - Выводит текстовую строку на экран.
OutTextXY(X,Y: integer; Text: string) - Выводит текст в заданное место
экрана.
Модуль CRT
Включает процедуры и функции, которые управляют текстовым режимом
работы дисплея. С помощью подпрограмм модуля можно перемещать курсор по
экрану дисплея, менять цвет выводимых символов и фона, создавать окна на
экране, управлять звуком, работать с клавиатурой.
Функции управления клавиатурой:
KeyPressed: Boolean; - возвращает True, если в текущий момент на
клавиатуре была нажата клавиша, иначе False. Не приостанавливает
выполнение программы. Используется при организации работы циклов.
ReadKey: Char; - читает и возвращает в программу символ с клавиатуры (без
отображения на экране). Приостанавливает исполнение программы до нажатия
на любую клавишу символа. Используется в операторах IF для проверки
символов.
WhereX: Byte; - возвращает горизонтальную координату текущей позиции
курсора относительно окна.
WhereY: Byte; - возвращает вертикальную координату текущей позиции
Процедуры управления дисплеем
ClrEol; - удаляет все символы справа от курсора до конца строки без
перемещения курсора.
ClrScr; - очищает экран (окно на экране) и помещает курсор в верхний
левый угол.
Delay(D: word); - приостанавливает работу программы на D миллисекунд.
GotoXY(X,Y: byte); - перемещает курсор в нужное место экрана (окна). Левый
верхний угол экрана (окна) имеет координаты (1,1). Отсчет координат идет
слева направо и сверху вниз. Количество символов в строке и самих
строк зависит от типа дисплея (обычно 25 строк и 80 символов).
InsLine; - вставляет пустую строку в позицию курсора.
HighVideo; - устанавливает высокую яркость символов.
LowVideo; - устанавливает низкую яркость символов.
NormVideo; - устанавливает нормальную яркость символов.
Window(X1,Y1,X2,Y2:byte); - определяет размеры окна на экране для вывода
текста. X1,Y1 - координаты левого верхнего угла, X2,Y2 - правого нижнего
угла.
TextBackGround(Color: byte); - устанавливает цвет фона экрана (окна) от 0
(черный) до 15 (белый).
TextColor(Color: byte); - устанавливает цвет символа.
TextMode(Mode: word); - устанавливает нужный текстовый режим:0,1,2...
Управление звуковым генератором
Sound(F: word); - включает звук генератора, F - частота звука в
герцах.
Delay(T: word); - устанавливает продолжительность звучания в
миллисекундах.
NoSound; - выключает звук генератора.
5.3 Входные и выходные данные
Входными данными являются записи: номер продукции (n), переходящий
остаток продукции на начало года (e1), приход продукции (e2), расход (e3),
цена за 1 шт (e4). При завершении ввода данных и выборе
соответствующего пункта меню программы, программа выдаст пользователю
итоговые данные в виде таблицы.
Выходными данными, т.е. результатом программы является таблица которая
содержит исходные записи и следующие переменные:
. Остаток на конец года (st);
. Итого (itog) ;
Файл с текстом программы (kurs.pas) имеет размер, равный 12,5 Kb;
Исполняемый файл (kurs.exe) имеет размер 33,3 Kb;
5.4 Описание переменных
В программе используются следующие переменные:
Bas – запись.
type
bas=record
n:integer;
e1,e2,e3:integer;
e4:real;
end;
Где:
n - номер продукции;
e1 - переходящий остаток продукции на начало года ;
e2 - приход продукции;
e3 – расход;
e4 - цена за 1 шт .
menu2 – метка, используется для работы с главным меню программы;
C:char, используется для работы оператора readkay (читает символ с
клавиатуры без эхоповтора на экране);
O:real используется для редактирования записей.
ww, l, nn, q, i, gd, gm:integer;
ww-используется для вывода шапки таблицы (координата по Y).
l-используется для работы с меню и для удаления записи
nn, q- используется в программе для создание новых записей
i-счетчик
gd, gm - для графики:
gd – определяет тип графического драйвера,
gm – переменная, задающая режим работы графического адаптера;
pp,qq,n,mm:integer; - переменные для добавления новой записи;
f,f2:file of bas; - файлы
a,b:bas;
a,b - переменные, содержащие записи типа Bas.
Переменная b используется для удаления записей.
st:real;
st – для вычисления суммы в таблице
Процедуры:
procedure view(w:integer);
- процедура вывода таблицы, где w–координата по Х;
var
itog:real; -для вычисления итогового значения сумма в таблице;
Procedure menu;
- процедура вывода меню;
Procedure zast;
- процедура вывода графической заставки
xm,ym:integer;
xm,ym-координаты для вывода граф. объектов
size:integer; saucer:pointer;
k,kk:integer;
size,saucer,k,kk-для движения
Procedure error;
- процедура вывода сообщения об ошибке
Procedure exitt;
- процедура выхода из программы
5.5 Описание программы
При запуски программы идет подключение дополнительных модулей Crt и Graph:
uses crt, graph;
Описание переменных (см. пункт 5.4)
Описание процедур:
Процедура вывода таблицы на экран - view:
Установка текстового окна на экране для вывода шапки с координатами левого
верхнего угла -1,1 и правого нижнего – 80,6
window(1,1,80,6);
Установка цвета фона и символов
textbackground(5);textcolor(15);
Печать названия таблицы
gotoxy(w,1);write('Реализация продукции за год');
textcolor(9);gotoxy(w-16,2);textbackground(0);
write('--------------------------------------------------------------
');
Установка цвета символов и печать шапки таблицы
textcolor(15);
gotoxy(w-15,4);write('N');
gotoxy(w-13,3);write('Переходящий остаток');
gotoxy(w-10,4);write('продукции на ');
gotoxy(w-10,5);write('начало года');
gotoxy(w+9,3);write('Приход');
gotoxy(w+8,4);write('продукции');
gotoxy(w+11,5);write('шт');
gotoxy(w+18,4);write('Расход');
gotoxy(W+20,5);write('шт');
gotoxy(w+26,4);write('Цена за');
gotoxy(w+27,5);write('1 шт');
gotoxy(w+35,4);write('Остаток на');
gotoxy(w+35,5);writeln('конец года');
textcolor(9); gotoxy(w-16,6);
Установка цвета символов и текстового экрана для вывода данных таблицы
window(1,7,80,25);
Подготовка файла к чтению
reset(f);
Установка координаты y, необходимой для вывода данных таблицы и обнуление
итогового значения таблицы.
Страницы: 1, 2, 3, 4, 5, 6