- •Лекція №13. Модулі.
- •Interface
- •Vvod(X,3,3);
- •Vvod(y,3,3);
- •Vivod(z,3,3);
- •7.2. Стандартні модулі.
- •Var X,y,z:integer;
- •Var X,y:integer;
- •Var index, smeh, kolstrok, dlstroki, pam: word;
- •Var I,k:integer;
- •X,y:real;
- •Var n,X,x1,y,y1,x2,y2,z,q,g,V,g1,v1,g2,v2:integer;
- •I,j,k:byte;
- •Var r:string;
- •InitGraph(GraphDriver,GraphMode,PathToDriver);
- •Interface
- •Implementation
- •Var r:string;
Interface
type mas=array [1..10,1..10] of real;
{задаємо тип змінної двовимірного масиву}
procedure vvod(var a:mas; n,m:byte);
{процедура введення матриці, n, m- розміри матриці}
procedure vivod(a:mas; n,m:byte);
{процедура виведення матриці, n, m- розміри матриці}
procedure summa(a,b:mas; n,m:byte; var c:mas);
{процедура додавання матриць, n, m- розміри матриці, с- результуюча матриця}
function dobutok(a:mas; n,m:byte): real;
{функція, за допомогою якої знаходиться добуток елементів матриці}
implementation
procedure vvod;
var i,j: byte;
begin
for i:=1 to n do
begin
for j:=1 to m do
read(a[i,j]);
writeln;
end;
end;
procedure vivod;
var i,j: byte;
begin
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:4:1);
writeln;
end;
end;
procedure summa;
var i,j: byte;
begin
for i:=1 to n do
begin
for j:=1 to m do
c[i,j]:=a[i,j]+b[i,j];
writeln;
end;
end;
function dobutok;
var i,j:byte;
p: real;
begin
p:=1;
for i:=1 to n do
for j:=1 to m do
p:=p*a[i,j];
dobutok:=p;
end;
end.
Піля написаня модуля зберігаємо програму під імям matrica.pas. Далі компілюємо, виставивши опцію Destination на Disk за допомогою клавіші Enter. На диску в поточному каталозі BIN можна побачити новий файл matrica.tpu. Тепер можна описувати основну програму, де використаємо необхідні підалгоритми, описані у нашому модулі.
Program osn_z_mod;
uses matrica;
var x,y,z:mas;
begin
writeln(‘введіть елементи першої матриці по рядкам’);
Vvod(X,3,3);
writeln(‘введіть елементи другої матриці по рядкам’);
Vvod(y,3,3);
summas(x,y,3,3,z);
writeln(‘результуюча матриця’);
Vivod(z,3,3);
writeln(‘добуток елементів першої матриці’, dobutok(x:mas; 3,3));
readln;
end.
7.2. Стандартні модулі.
Механізм модулів використаний у Turbo Pascal для збереження стандартних процедур та функцій. Turbo Pascal містить наступні стандартні модулі:
System - основна бібліотека середовища Turbo Pascal. В нього входять всі процедури та функції стандарту мови Pascal, а також додаткові підпрограми, які дозволяють виконувати різноманітні дії загального призначення (управління введенням - виведенням, робота з рядками, статичною та динамічною пам’яттю та таке інше). Цей модуль автоматично підключається до програми, тому його не треба згадувати в специфікації Uses.
Strings - дозволяє працювати з рядковим типом ASCIIZ. Він використовується, починаючи з версії 7.0. Останній байт таких рядків має символ з кодом 0. Тип ASCIIZ - рядків використовують для сумісності програм , що написані в Turbo Pascal з програмами, які використовують середовище Windows, а також для встановлення відповідності з іншими мовами (наприклад С, асемблер та інші).
Crt - містить константи, змінні та підпрограми, призначені для роботи з клавіатурою та дисплеєм у текстовому режимі.
Graph - містить константи, змінні та підпрограми, призначені для роботи з графічним режимом дисплея.
Dos - дозволяє використовувати можливості операційної системи MS DOS.
WinDos - дозволяє використовувати можливості операційної системи DOS, які не передбачені в стандарті мови Pascal та додатково передбачає використовувати ASCIIZ - рядки. Цей модуль доречно використовувати замість модуля DOS, коли в програмі використовувати такі рядки або коли передбачається використовувати програму в середовищі Windows.
Overlay - призначений для організації оверлейних програм, які завантажуються в оперативну пам’ять окремими частинами - секціями.
Printer - містить в собі змінну LST типу Text, яка зв’язана з принтером, і її можна використовувати як файлову змінну в процедурах Write і Writeln. Ця змінна зв’язується з принтером автоматично та використовується для виведення інформації на друк.
Turbo3 - зв’язок з програмами Turbo Pascal 3.0.
Graph3 - зв’язок з графікою Turbo Pascal 3.0.
Модулі Strings, Graph, WinDos, Turbo3, Graph3 знаходяться у окремих файлах з аналогічними назвами та розширенням .tpu. Інші файли знаходяться у файлі TURBO.TPL.
Декілька модулів розглянемо більш детально.
Використання модуля CRT.
Стандартний модуль CRT використовується для керування процесом виведення інформації на екран дисплея в текстовому режимі, та містить містить константи, змінні та процедури і функції для управління екраном.
Існують декілька режимів відеоадаптера, яким в модулі Crt відповідають наступні константи:
Таблиця 7.1. Таблиця значень режимів відеоадаптера.
-
Ім’я
Значення
Призначення
BW40
0
40x25 ч/б для кольорового адаптера
BW80
2
80x25 ч/б для кольорового адаптера
CO40
1
40x25 кольоровий для кольорового адаптера
CO80
3
80x25 кольоровий для кольорового адаптера
Fount8x8
256
EGA/VGA 43 та 50 рядків
Mono
7
80x25 для монохромного адаптера
C40
CO40
Для сумісності з версією 3.0
C80
CO80
Для сумісності з версією 3.0
Для переходу у відповідний режим використовують процедуру
TextMode(режим);
При цьому є можливість керуванням розмірами символів, які виводяться на екран. Якщо зменшується кількість символів у рядку, то збільшується розмір символів. Іноді потрібно зберегти значення режиму , з яким працює програма в даний момент (наприклад при переході з текстового режиму до графічного і навпаки). Для цього використовують змінну, яка зберігає значення режиму:
LastMode
Треба завважити, що новий текстовий режим працює з усім вікном, вичищаючи його.
Наприклад:
uses CRT;