End.
Begin
End
end;
sum(a,b,a_b);
sum(c,d,c_d);
print(a_b,'A+B');
print(c_d,'C+D');
for i:=1 to n do
for j:=1 to n do begin s:=0;
for k:=1 to n do s:=a_b[i,k]*c_d[k,j];
p[i,j]:=s
end;
print(p,' P');
for i:=1 to n do sled:=sled+p[i,i];
writeln(' sled=',sled:4:1)
Работа с графикой в Турбо Паскале
Множество графических процедур и функций среды программирования Borland Pascal собраны в модуле Graph. Подключение библиотеки графических функций и процедур к программе осуществляется строкой
uses Graph;
приведенной после заголовка программы или в общем списке подключаемых модулей.
Модули, указанные в разделе uses, должны находится или в рабочем каталоге, или в каталоге, указанном в строке UNITS окна диалога Options/Directories. Допустим модуль graph.tpu содержится в подкаталоге
c:\tp70\units,
Тогда именно эту строку следует занести в поле ввода UNITS, не забыв сохранить настройки. Если этого не сделать, то при компиляции программы появится сообщение: Error 15: File not found (Graph.tpu).
Взаимодействие программы и видеосистемы в графических режимах обеспечивают драйверы, в которых применяется графический интерфейс фирмы Borland – Borland Graphics Interface (BGI). Драйверы, поставляемые с Borland Pascal, собраны в файлах, имеющих расширение BGI: CGA.BGI, EGAVGA.BGI, HERC.BGI и др. Каждый из этих драйверов обеспечивает работу в нескольких графических режимах. Поддерживаемые графические режимы группируются в файлах *.BGI по принципу схожести организации видеопамяти.
|
|
Графическая библиотека Borland Pascal обеспечивает все графические режимы, которые были актуальны на время её создания. Для использования наиболее современных режимов, например SVGA, необходимо подключение поставляемых отдельно драйверов. В излагаемом материале мы ограничимся возможностями 16-цветного режима VGA с высоким разрешением.
Инициализация графического режима
В Турбо Паскале предусмотрена процедура
procedure InitGraph(var GraphDriver: Integer; var GraphMode: Integer;
PathToDriver: string);
Аргументы имеют целочисленный тип и определяют графический режим. Чтобы не запоминать целочисленные именаи GraphMode, в модуле предусмотрены константы графического режима, имена которых совпадают с названием режима. Наиболее простой способ выбора необходимого графического драйвера и режима – автоматический. Чтобы графический режим определялся автоматически, номер графического драйвера GraphDriver, передаваемый в процедуру, должен равняться 0 или константе Detect=0. Пример инициализации графического режима:
program graph1;
uses Graph,Crt;
var GraphDriver, GraphMode: integer;
const path='c:\tp70\bgi';
begin
GraphDriver:=detect;
InitGraph(GraphDriver,GraphMode,path);
if GraphResult <> GrOk then begin
writeln('Графический режим не установлен ');
Halt
end;
end.
Установка цвета
Драйвер EGAVGA.BGI позволяет использовать 16 цветов. Каждому цвету присвоен код - целое число, которое используется процедурами и функциями Паскаля. Для того чтобы не запоминать эти коды, определено 16 констант, имена которых говорят сами за себя:
|
|
Black | Черный | DarkGray | Темно-серый | ||
Blue | Синий | LightBlue | Голубой | ||
Green | Зеленый | LightGreen | Светло-зеленый | ||
Cyan | Циан-морская волна | LightCyan | Светлый циан | ||
Red | Красный | LightRed | Ярко-красный | ||
Magenta | Фиолетовый | LightMagenta | Светло-фиолетовый | ||
Brown | Коричневый | Yellow | Желтый | ||
LightGray | Светло-серый | White | Белый |
Цвет выводимых в графическом режиме на экран линий и символов можно задать процедурой
SetColor(Color:word);,
аргумент которой – целое число от 0 до 15 или имя одной из приведенных выше констант. Если процедура SetColor не вызвана, используется белый цвет. Установка цвета действует на те линии и символы, которые выводятся на экран после её вызова, но не меняет цвет объектов, выведенных на экран до её вызова.
Процедура SetBkColor(Color:word), устанавливает цвет фона для всего экрана. Если процедура установки цвета фона не вызвана, экран будет черным.
Пример программы, в которой используются процедуры и функции графического модуля: построение прямоугольника, окружности, вывод текста, прорисовка прямой линии и др.
program Rectan_Circle_Line;