У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Курсова робота - Використання підпрограм
17
обов`язково повинен бути присутнім оператор присвоювання, в лівій частині якого стоїть ім`я цієї функції; в заголовку функції обов`язково повинен бути вказаний тип функції; виклик функції в основній програмі здійснюється безпосередньо усередині вираження по її імені із вказуванням фактичних параметрів.

Формальні і фактичні параметри функції

Формальні параметри представляють собою список перемінних із вказуванням їх типу, які відділяються один від одного крапкою з комою.

В представленій вище програмі використовувані формальні параметри функції – перемінна, яка вказує ім`я масиву, який обробляється усередині цієї функції (m:Mas); перемінна, яка вказує розмірність масиву (x:Integer); та символьне значення (А або В) – ім`я матриці (k:String):

Function Sum (k:String; x:Integer; Var m:Mas):Real;

Фактичні параметри указуються безпосередньо усередині тіла основної програми при виклику функції – після її імені в дужках.

ЗАВДАННЯ 2

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

Обчислити суми і кількість елементів, які знаходяться в інтервалі від a до b для матриць X(10,8) і Y(10,12).

Виконати з використанням підпрограми процедури.

Вирішення задачі

Program Kurs_Task2;

Uses Crt;

Const h=5; m=4; n=6;

Type Mas=Array[1..h,1..n] of Real;

Var x,y : Mas;

a1,b1,a2,b2 : Integer;

v1,v2 : Integer;

Sx,Sy : Real;

{-= Пpоцедуpа встановлення кольоpу шpифта =-}

Procedure Tc (p:Integer);

Begin

TextColor(p);

End;

{-= Пpоцедуpа введення числових елементiв матpиць =-}

Procedure InT (k:String; x:Integer; Var m:Mas);

Var i,j : Integer;

Begin

For i:=1 To h Do

Begin

For j:=1 To x Do

Begin

Write('Масив '); TC(15); Write(k); TC(7);

Write(' строка '); TC(15); Write(i); TC(7);

Write(' елемент '); TC(15); Write(j); TC(7);

Write(' > '); TC(15); ReadLn(m[i,j]); TC(7);

End;

End;

End;

Procedure Out (k:String; a,b,v:Integer; s:Real);

Begin

Write('Сума елементiв матpицi ',k,' в iнтеpвалi вiд ');

WriteLn(a,' до ',b,' доpiвнює ',s:5:2);

WriteLn('Кiлькiсть обчислених елементiв доpiвнює ',v);

End;

{-= Пpоцедуpа обчислення суми елементiв та їх кiлькостi =-}

Procedure Sum (x:Integer; a,b: Integer; m:Mas; Var s:Real; Var v:Integer);

Var i,j,p : Integer;

Begin

p:=0; s:=0; v:=0;

For i:=1 To h Do

Begin

For j:=1 To x Do

Begin

p:=p+1;

If (p>=a)and(p<=b) Then

Begin

s:=s+m[i,j];

v:=v+1;

End;

End;

End;

End;

{-= Основна пpогpама =-}

Begin

ClrScr;

InT('X',m,x);

InT('Y',n,y);

WriteLn('Задайте iнтеpвал для матpицi X:');

Write(' вiд > '); ReadLn(a1);

Write(' до > '); ReadLn(b1);

Sum(m,a1,b1,x,Sx,v1);

WriteLn('Задайте iнтеpвал для матpицi Y:');

Write(' вiд > '); ReadLn(a2);

Write(' до > '); ReadLn(b2);

Sum(n,a2,b2,y,Sy,v2);

Out('X',a1,b1,v1,Sx);

Out('Y',a2,b2,v2,Sy);

ReadKey;

End.

Отриманий результат після виконання програми

Масив X строка 1 елемент 1 > -10

Масив X строка 1 елемент 2 > -9

Масив X строка 1 елемент 3 > -8

Масив X строка 1 елемент 4 > -7

* * * *

Масив Y строка 5 елемент 3 > 16

Масив Y строка 5 елемент 4 > 17

Масив Y строка 5 елемент 5 > 18

Масив Y строка 5 елемент 6 > 19

Задайте iнтеpвал для матpицi X:

вiд > 5

до > 12

Задайте iнтеpвал для матpицi Y:

вiд > 7

до > 15

Сума елементiв матpицi X в iнтеpвалi вiд 5 до 12 доpiвнює -20.00

Кiлькiсть обчислених елементiв доpiвнює 8

Сума елементiв матpицi Y в iнтеpвалi вiд 7 до 15 доpiвнює 0.00

Кiлькiсть обчислених елементiв доpiвнює 9

Аналіз отриманого результату

Для зручності побудови програми замість параметрів (10,8) та (10,12) матриць X та Y відповідно, були використані розміри (5,4) та (5,6), які можуть змінюватися шляхом зміни чисельних значень констант m та n.

Вище приведено результат, обчислений програмою. При введенні обох матриць, вводяться всі числові значення, потім користувач позначає інтервал для обох матриць окремо, в якому потрібно виконати підсумовування та підрахунок кількості підсумованих елементів (в даному випадку для матриці X від 5 до 12, а в матриці Y від 7 до 15 елементу матриці):

Матриця X | Матриця Y

-10 | -9 | -8 | -7 | -10 | -9 | -8 | -7 | -6 | -5

-6 | -5 | -4 | -3 | -4 | -3 | -2 | -1 | 0 | 1

-2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7

2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13

6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | 18 | 19

 

Для перевірки вірності обчислення програмою суми елементів в заданому інтервалі від 5 до 12 матриці Х, виконаємо підрахунок виділених елементів для цієї матриці:

перевірочне обчислення:

(–6) + (–5) + (–4) + (–3) + (–2) + (–1) + 0 + 1 = –20

кількість елементів: 1 2 3 4 5 6 7 8

результат обчислення програми:

Сума елементiв матpицi X в iнтеpвалi вiд 5 до 12 доpiвнює -20.00

Кiлькiсть обчислених елементiв доpiвнює 8

Як ми можемо бачити, результати ідентичні, а це свідчить про те, що програма обробила вхідні дані вірно і видала вірну відповідь на обидва запитання в обох матрицях (масивах).

Вищевикладене може обгрунтовано свідчити про те, що програма виконана вірно.

Опис формату підпрограми процедури

Підпрограма процедура так же, як і функція, використовується якщо в програмі виявляються однотипові ділянки, які виконують ті ж самі обчислення, але з різними даними.

Структура процедури така ж, як і структура основної програми, тобто включає заголовок і блок. В свою чергу блок складається із розділу операторів.

Опис процедури має вигляд:

Procedure ім`я (формальні_параметри);

розділ описів

begin

розділ операторів

end;

і розміщується в основній програмі (program) в розділі описів.

Тут ім`я – ім`я процедури. Розділ описів, як і в основній програмі, включає розділи label, const, type, var і розділ процедур та функцій.

Параметри процедур можуть бути трьох видів:

параметри-значення (вхідні параметри); параметри-перемінні (вихідні параметри); параметри процедурного типу.

Опис вхідних параметрів процедури в списку формальних параметрів має такий вигляд:

список_перемінних1:тип1; список_перемінних2:тип2; …

Відповідно опис вихідних параметрів виглядає так:

var список_перемінних1:тип1; var список_перемінних2:тип2; …

В Турбо-Паскалі допускається також використання нетипізованих вихідних параметрів, які мають


Сторінки: 1 2 3