Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу.docx
Скачиваний:
107
Добавлен:
24.02.2016
Размер:
2.8 Mб
Скачать

9.5. Примеры подпрограмм, оформленных в отдельные библиотеч­ные модули

Модуль для работы с массивами

Unit RabMas;

interface

const mmax=10;

type vek=array[1..nmax] of extended; mat=array[1..nmax] of vek;

//Процедура умножения двух квадратных (nxn) матриц A и B Procedure Pmat(const A,B:mat; Var C:mat; n:Word);

// Процедура вывода матрицы А в текстовый файл Lw Procedure Vivod(const A:mat; n,m:Word; Var Lw:TextFile);

implementation

Procedure Pmat; // повторение заголовка без параметров Var i,j,k:Word; begin

for i:=1 to n do for j:=1 to n do begin c[i,j]:=0; for k:=1 to n do

c[i,j]:=c[i,j]+a[i,k]*b[k,j];

end;

end;

Procedure Vivod; // повторение заголовка Var i,j:Word; begin

for i:=1 to n do begin

for j:=1 to m do

Write(Lw,a[i,j]:8:4); Writeln(Lw); end;

end; end.

Пример программы, использующей модуль RabMas:

Unit P1;

Interface

Implementation Uses RabMas;

Procedure TForm1.Button1Click(Sender:Tobject);

Var x,y,z:mat;

n:word; f:textfile;

begin

n:=. . .

x[i,j]:= . . .//вычисления или ввод матриц x, y

y[i,j]:= . . .

Assignfile(f,'Mass.out');

Rewrite(f);

Writeln(f,'Полученная матрица:'); Pmat(x,y,z,n); // вычисления z=x-y

Vivod(z,n,n,f); // вывод z в файл f

Closefile(f);

End;

Модуль для выдачи таблицы значений функций

Unit Tab;

interface

type Tfun = function(x:extended):extended; Procedure Tabf(a,b:extended; n:word; f:Tfun; var Lw:textFile);

implementation Procedure Tabf;

Var x,h:extended; i:word;

begin h:=(b-a)/n; x:=a; for i:=0 to n do begin

writeln(Lw, x:6:2, f(x):8:4); x:=x+h; end;

end; end.

Пример программы, использующей модуль Tab.

Unit unit1;

interface implementation

Uses Tab; Var M:word;

M n cos nx

n!

// Вычисление s( x) = 2 (-1)

n=0

Function Sum(x:extended):extended, Var s,w:extended; n:word;

begin

w:=1; s:=1; for n:=1 to M do

begin

w:=-w/n;

s:=s+cos(n*x)*w; end; result:=s; end;

Procedure TForm1.Button1Click(Sender:Tobject);

Var f:textFile; begin

Assignfile(f,'P2.out'); Rewrite(f); M:=8;

writeln(f,' x sum(x) ');

Tabf(0,2,5,sum,f);

CloseFile(f);

end;

В результате работы данной программы в текстовом файле Р2.out будет распечатана таблица:

x sum(x)

0.00 0.0508

0.40 0.3254

0.80 0.7122

1.20 0.8676

1.60 1.8711

2.00 2.6998

ЛЕКЦИЯ 10. ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ ТИПА

Множества

10.1. Понятие множества

В математике под множеством понимается неупорядоченный набор

различных однотипных элементов. Весь набор элементов Q={oi, о2, conj

называется пространством элементов. Различные наборы, например:

А={о2, о4, о], о5}, В={а>4, о], а>з}, .... называется множествами.

Пустое множество не содержит ни одного элемента.

Для работы с множествами в Паскале введен специальный тип пере­менных - set of:

Type <имя типа> = set of <базовый тип>;

Var a, b, c : <имя типа>;

здесь <базовый тип> - любой порядковый тип, кроме word, integer, longint, т.е. (перечисляемый, интервальный, char, byte, boolean). Максимальное количество элементов в множестве - 256. Примеры описаний множеств: type bukva=set of ('a'..'z');

simv=set of char;

cifra=set of byte;

Var a, b : bukva; c, d : simv;

e, g : cifra;

// Задать множество из трех букв // Задать множество из 3 чисел // Добавить в множество Е элемент 5 // Пустое множество

Begin

c:=['u', V, 'z']; e:=[1,2,0];

g:=e+[5];

d:=[ ];

End;