Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_rob інформатика.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.89 Mб
Скачать

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

Тема: Turbo Pascal.Алгоритми і програми з використанням підпрограм-процедур.

Мета: Формування умінь створення програм з використанням підпрограм-процедур алгоритмічною мовою високого рівня Turbo Pascal.

1 Теоретичні відомості

Підпрограми призначені для реалізації алгоритмів опрацювання окремих частин (модулів) деякої складної задачі, які можуть взаємодіяти між собою. Кожна підпрограма описується один раз і при необхідності до неї можна багаторазово звертатись. Розрізняють два види підпрограм – підпрограми-процедури і підпрограми-функції. Процедури використовуються для одержання декількох результатів.

Загальний опис процедури:

procedure <назва>(<список формальних параметрів>);

<розділи описів і оголошень процедури>;

begin

<розділ команд процедури>

end;

До процедури звертаються з основної програми за допомогою команди виклику:

<назва процедури>(<список фактичних параметрів>); .

2 Хід роботи

2.1 Постановка задачі

Скласти графічний алгоритм і програму для обчислення функції

,

де s1 і k1 - сума і кількість додатних значень елементів масиву А(А1 , А2 ,…,А10 ) ; s2 і k2 - сума і кількість додатни х значень елементів масиву В(В1 , В2 ,…,В15 ) . Для обчислення суми і кількості додатних елементів масиву використати процедуру.

2.2 Графічний алгоритм показаний на рис. 15.1:

а) графічний алгоритм основної програми;

б) графічний алгоритм підпрограми-процедури SUMKOL .

2.3 Таблиця ідентифікації змінних

Змінна

Ідентифікатор

z

z

x

x

a

a[i]

b

b[i]

NMA

NMA

NMB

NMB

s1

s1

k1

k1

s2

s2

k2

k2

ні

так

б)

а)

Рисунок 15.1 – Графічний алгоритм

2.4 Програма мовою Pascal та результати обчислень

Program PR{Процедура};

Const

x=3.42;

Type

vector=array[1..20] of real;

Var

NMA,NMB,i,k1,k2:integer;

z,s1,s2:real;

a,b:vector;

Procedure SUMKIL(mas:vector;MM:integer;

var s:real;k:integer);

Var

j:integer;

Begin

s:=0;

k:=0;

for j:=1 to MM do

if mas[j]>0 then begin

s:=s+mas[j];

k:=k+1 end;

end;

Begin

writeln('Ведіть кількість елементів масиву А :');

read(NMA);

writeln('Ведіть елементи масиву А :');

for i:=1 to NMA do

read(a[i]);

SUMKIL(a,NMA,s1,k1);

writeln('Ведіть кількість елементів масиву B :');

read(NMB);

writeln('Ведіть елементи масиву B :');

for i:=1 to NMB do

read(b[i]);

SUMKIL(b,NMB,s2,k2);

z:=exp(k1*ln(x))*exp(k2*ln(x))/(s1+s2);

writeln('Результати обчислень :');

writeln('z=',z:6:3);

end.

Результати обчислень :

z=0.713

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