Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичні вказівки до лабораторних робіт з дисципліни Алгоритмізація розрахунків в хімічній технології

.pdf
Скачиваний:
6
Добавлен:
03.03.2016
Размер:
875.32 Кб
Скачать

41

Продовження таблиці 2.2

1

2

3

4

5

Сума додатних

 

 

 

 

елементів

sum

sum

Real

масиву

 

 

 

 

Файлова змін-

 

 

 

 

на, пов'язана з

f1

Text

файлом вихід-

 

 

 

 

них даних

 

 

 

 

Файлова змін-

 

 

 

 

на, пов'язана

f2

Text

з файлом

 

 

 

 

результатів

 

 

 

 

2.2.3 Програма на мові Turbo Pascal 7.0

Program lab3_2;

Type Vec=array [1..100] of real; Var a:Vec;

I,j,n:integer;

f1,f2:text;

c,s,sum:real;

Procedure VVID;

Begin

read(f1,n);

 

 

 

for

i:=1 to

n

do

read(f1,a[i]);

End;

 

 

 

 

Function

SUMA:real;

 

Begin

 

 

 

 

s:=0;

 

 

 

for

i:=1 to

n

do

 

if

a[i]>0

then

s:=s+a[i];

SUMA:=s;

End;

42

Procedure UPOR;

Begin

for i:=1 to n-1 do

for

j:=i+1 to n

do

if

a[i]<a[j]

then

begin c:=a[i]; a[i]:=a[j]; a[j]:=c;

end;

End;

Procedure VYVID;

Begin

writeln(f2,' Упорядкований по убуванню вектор А'); for i:=1 to n do write(f2,a[i]:6:1);

writeln(f2);

writeln(f2,' Сума додатних елементів вектора А =',s:4:1); End;

Begin assign(f1,'lab2.dat'); assign(f2,'lab2_2.res'); reset(f1);

rewrite(f2);

VVID;

sum:=SUMA;

UPOR;

VYVID;

close(f1);

close(f2);

End.

43

2.2.4 Вихідні дані

10

12 -45 1 0 25 -64 -9.7 24 -43.1 5

2.2.5 Результати розрахунку

Упорядкований по убуванню вектор А

25.0 24.0 12.0 5.0 1.0 0.0 -9.7 -43.1 -45.0 -64.0

Сума додатних елементів вектора А =67.0

2.3Алгоритм з використанням підпрограм, які мають формальні параметри

2.3.1 Блок-схема алгоритму

2.3.1.1 Блок-схема основної програми

1

Початок

2

VVID(a,n,f1)

3

sum=SUMA(a,n)

4

UPOR(a,n)

5

VYVID(a,n,sum,’A’,f2)

6

Кінець

44

2.3.1.2 Блок-схема процедури VVID ( var b:Vec; var m:integer; var ff1:text )

1

Початок

2

Введення m

3

i=1,m

4

Введення bi

5

Кінець

2.3.1.3 Блок-схема функції SUMA ( const b:Vec; m:integer )

 

1

 

 

Початок

 

 

 

2

 

 

 

S=0

 

 

 

3

 

 

i=1,m

 

Ні

4

bi >0

Так

 

 

5

 

 

 

 

 

 

S=S+bi

 

6

 

 

 

SUMA=S

 

 

7

 

 

 

Кінець

 

45

2.3.1.4 Блок-схема процедури UPOR ( var b:Vec; m:integer )

 

 

1

 

Початок

 

 

2

 

 

i=1,m-1

 

 

3

 

 

j=i+1,m

Ні

4

Так

 

bi < bj

 

 

5

 

 

c = bi

 

 

bi = bj

 

 

bj = c

 

 

6

 

 

Кінець

2.3.1.5Блок-схема процедури VYVID ( const b:Vec; m:integer; ss:real; p:char; var ff2:text )

1

Початок

2

‘Вектор ’,p

3

i=1,m

4

bi

5

‘Сума =’, ss

6

Кінець

46

2.3.2 Ідентифікація змінних

Таблиця 2.3 – Ідентифікація глобальних змінних

Математичний

Ім’я в

Ім’я в

Тип

Початкове

сенс змінної

блок-схемі

програмі

значення

 

 

 

 

 

 

Одновимірний

 

 

Vec =

(12;-45; 1; 0;

а

а

array [1..100]

25;-64;-9.7;

масив

 

 

of real

24; -43.1; 5)

 

 

 

Кількість еле-

n

n

Integer

10

ментів у масиві

 

 

 

 

Параметр

i

i

Integer

циклу

 

 

 

 

Параметр

j

j

Integer

циклу

 

 

 

 

Сума додатних

 

 

 

 

елементів

S

s

Real

масиву

 

 

 

 

Тимчасове

 

 

 

 

сховище

c

с

Real

значення

 

 

 

 

змінної

 

 

 

 

Сума додатних

 

 

 

 

елементів

sum

sum

Real

масиву

 

 

 

 

Файлова змін-

 

 

 

 

на, пов'язана з

f1

Text

файлом вихід-

 

 

 

 

них даних

 

 

 

 

Файлова змін-

 

 

 

 

на, пов'язана

f2

Text

з файлом

 

 

 

 

результатів

 

 

 

 

47

Таблиця 2.4 – Ідентифікація локальних змінних процедури VVID

Математичний сенс

Ім’я в блок-

Ім’я в

Тип

змінної

схемі

програмі

 

 

 

 

 

Одновимірний

 

 

Vec =

b

b

array [1..100]

масив

 

 

of real

 

 

 

Кількість елементів у

m

m

Integer

масиві

 

 

 

Файлова змінна,

 

 

 

пов'язана з файлом

ff1

Text

вихідних даних

 

 

 

Таблиця 2.5 – Ідентифікація локальних змінних функції SUMA і процедури UPOR

Математичний сенс

Ім’я в блок-

Ім’я в

Тип

змінної

схемі

програмі

 

 

 

 

 

Одновимірний

 

 

Vec =

b

b

array [1..100]

масив

 

 

of real

 

 

 

Кількість елементів у

m

m

Integer

масиві

 

 

 

Таблиця 2.6 – Ідентифікація локальних змінних процедури VYVID

Математичний сенс

Ім’я в блок-

Ім’я в

Тип

змінної

схемі

програмі

 

 

 

 

 

Одновимірний

 

 

Vec =

b

b

array [1..100]

масив

 

 

of real

 

 

 

Кількість елементів у

m

m

Integer

масиві

 

 

 

Сума додатних

ss

ss

Real

елементів масиву

 

 

 

Ім’я одновимірного

p

p

Char

масиву

 

 

 

Файлова змінна,

 

 

 

пов'язана з файлом

ff2

Text

результатів

 

 

 

48

2.3.3 Програма на мові Turbo Pascal 7.0

Program

lab3_3;

Type

Vec=array [1..100] of real;

Var

a:Vec;

 

I,j,n:integer;

 

f1,f2:text;

 

c,s,sum:real;

Procedure VVID(var b:Vec; var m:integer; var ff1:text); Begin

read(ff1,m);

for i:=1 to m do read(ff1,b[i]); End;

Function

SUMA(const

b:Vec;

m:integer):real;

Begin

 

 

 

 

s:=0;

 

 

for

i:=1 to m do

 

 

 

if

b[i]>0 then

s:=s+b[i];

SUMA:=s;

 

 

End;

 

 

 

 

Procedure

UPOR(var b:Vec;

m:integer);

Begin

 

 

 

 

for i:=1 to m-1 do

 

 

for

j:=i+1 to m do

 

 

 

if b[i]<b[j]

then

 

 

 

begin

 

 

c:=b[i];

b[i]:=b[j];

b[j]:=c;

end;

End;

49

Procedure VYVID(const b:Vec; m:integer; ss:real; p:char; var ff2:text);

Begin

writeln(ff2,' Упорядкований по убуванню вектор ',p); for i:=1 to m do write(ff2,b[i]:6:1);

writeln(ff2);

writeln(ff2,' Сума додатних елементів вектора ',p,' =', ss:4:1);

End;

Begin assign(f1,'lab2.dat'); assign(f2,'lab2_3.res'); reset(f1);

rewrite(f2);

VVID(a,n,f1);

sum:=SUMA(a,n);

UPOR(a,n);

VYVID(a,n,sum,'A',f2);

close(f1);

close(f2);

End.

2.3.4 Вихідні дані

10 12 -45 1 0 25 -64 -9.7 24 -43.1 5

2.3.5 Результати розрахунку

Упорядкований по убуванню вектор А

25.0 24.0 12.0 5.0 1.0 0.0 -9.7 -43.1 -45.0 -64.0

Сума додатних елементів вектора А =67.0

50

Лабораторна робота № 4

ПРОГРАМУВАННЯ З ВИКОРИСТАННЯМ МОДУЛІВ

Ціль – навчитися складати користувальницькі модулі і використовувати їх як бібліотеки корисних елементів.

Завдання:

-скласти блок-схему алгоритму, яка б містила підпрограми з формальними параметрами;

-скласти програму і два модулі на мові Turbo Pascal 7.0: перший модуль використати як бібліотеку змінних, констант і користувальницьких типів, другий – як бібліотеку підпрограм;

-організувати файлове введення вихідних даних і файлове виведення результатів;

-варіанти завдання взяти з лабораторної роботи № 3, номер варіанту розрахувати за формулою:

41 - N,

де N – номер вашого варіанту.