Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab7.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
292.35 Кб
Скачать

I:size;

begin

for i:=1 to n do

read(f,x[i]);

end;

procedure read_matrix(var f:text;var a:matrix;n:size);

var

I,j:size;

begin

for i:=1 to n do

for j:=1 to n do

read(f,a[i,j]);

end;

Для запису інформації в текстовий файл можна скористатися такими процедурами:

procedure write_vector(var f:text;x:vector;n:size;q:byte);

var

I:size;

begin

if q>4 then q:=4;

case q of

0:for i:=1 to n do

write(f,x[i]:8:0,' ');

1:for i:=1 to n do

write(f,x[i]:9:1,' ');

2:for i:=1 to n do

write(f,x[i]:10:2,' ');

3:for i:=1 to n do

write(f,x[i]:11:3,' ');

4:for i:=1 to n do

write(f,x[i]:12:4,' ');

end;

writeln(f);

end;

procedure write_matrix(var f:text;a:matrix;n:size;q:byte);

var

I,j:size;

begin

if q>4 then q:=4;

case q of

0:for i:=1 to n do

for j:=1 to n do

if j<> n then write(f,a[i,j]:8:0,' ')

else writeln(f,a[i,j]:8:0,' ');

1:for i:=1 to n do

for j:=1 to n do

if j<> n then write(f,a[i,j]:9:1,' ')

else writeln(f,a[i,j]:9:1,' ');

2:for i:=1 to n do

for j:=1 to n do

if j<> n then write(f,a[i,j]:10:2,' ')

else writeln(f,a[i,j]:10:2,' ');

3:for i:=1 to n do

for j:=1 to n do

if j<> n then write(f,a[i,j]:11:3,' ')

else writeln(f,a[i,j]:11:3,' ');

4:for i:=1 to n do

for j:=1 to n do

if j<> n then write(f,a[i,j]:12:4,' ')

else writeln(f,a[i,j]:12:4,' ');

end;

writeln(f);

end;

Для роботи з текстовими файлами корисними є стандартні функції eoln(f:text) та eof(f:text), які можуть набувати логічних значень. Функції eoln(f:text) та eof(f:text), набувають значення true, якщо вказівник файла f вказує на символ #13 та #26, відповідно, і false в протилежному випадку.

7.3. Модулі користувача

Для того, щоб константи , типи, змінні, процедури та функції користувача були б доступні в різних програмах необхідно об’єднати в модуль:

init ім’я модуля;

{Заголовок модуля. Ім’я модуля повинно співпадати з іменем файлу з текстом модуля, і тому не повинно мати більше восьми символів}

interface

uses список модулів;

const список пар ім’я константи[тип константи, якщо вона типізована]=значення константи;

label список міток;

список заголовків процедур та функцій із формальними параметрами

var

список1 імен змінних:тип1;

список2 імен змінних:тип2;

. . . . . . . . . . . . . . .

{Інтерфейсна частина модуля. Константи , типи даних, змінні функції та процедури, які є описаними в інтерфейсні частині, а також модулі доступні зовнішнім програмам }

implementation

uses

список модулів;

const

список пар ім’я константи[тип константи, якщо вона

типізована]=значення константи;

label

список міток;

тіла процедур та функцій із інтерфейсної частини

внутрішні процедури та функції модуля

var

список1 імен змінних:тип1;

список2 імен змінних:тип2;

. . . . . . . . . . . . . . .

{реалізаційна частина модуля. Все, що тут описано є доступним всередині модуля і не доступно зовнішнім програмам}

begin

оператори

end.

{Ініціалізаційна частина модуля. <Оператори> ініціалізаційної частини в програмі виконуються першими, до операторів основної програми}

З процедур та функцій матричної алгебри та процедур введення/виведення матриць та векторів можна створити модуль matr_alg, текст якого записаний у файлі matr_alg.pas:

unit matr_alg;

interface

const

nmax=10;

type

size=1..nmax;

vector=array[size] of real;

matrix=array[size,size] of real;

procedure add_vector(x,y:vector;n:size;var z:vector);

procedure sub_vector(x,y:vector;n:size;var z:vector);

procedure mult_number_vector(p:real;x:vector;n:size;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]