Скачайте в формате документа WORD

Программирование и алгоритмические языки


Мнстерство освти науки кра

Сумський державний нверситет


Кафедра Моделювання складних систем



КУРСОВА РОБОТА

з предмету Програмування

алгоритмчн мови<

на тему Використання пдпрограм



Виконав студент

Коваль к.В.

Група

ЕСЗТ-81с

Факультет

заочний

Переврив викладач

ндрúнко В.

.

Варант роботи

14



Суми - 2001


ЗМ

СТ


Змст

2


Вступ

3

1.

Завдання 1

4

1.1

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

4

1.2

Виршення задач (програма)

4

1.3

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

5

1.4

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

5

1.5

Опис формату пдпрограми функц

6

1.6

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

6

2.

Завдання 2

7

2.1

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

7

2.2

Виршення задач (програма)

7

2.3

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


2.4

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


2.5

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


2.6

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


3.

Опис використаних в програмах операторв



Використана тература







ВСТУП

Часто в пдпрограм виявляються однотипн длянки, як виконують т ж сам обчислення, але з рзними даними. Так частини програм доцльно оформлювати у вигляд пдпрограм. Використання пдпрограм дозволя

:

1)     зробити основну програму бльш наочною компактною;
2)     зменшити об`

м використовувано пам`ят ЕОМ;

3)     скоротити час налагодження, тому що програмування налагодження основно програми пдпрограми можуть виконувати паралельно рзн програмсти.

В Турбо-Паскал видляють два види програм: процедури функцÿ. Структура процедур функцй така ж, як структура основно

1)     розташований безпосередньо в роздл опису основно

2)     записаний у окремий файл вставлений в роздл описв основно

{$I м`я_файлу}


3)     оформлений у вигляд зовншнього модуля (це можуть бути або стандартн модул, або поряд з використанням стандартних модулв кожний програмст ма

можливсть органзацÿ власних модулв). Структура любого модуля ма

вигляд:


unit м`я модуля

interface

uses список_використовуваних_модулв

<{Вдкрит оголошення}

implementation

uses список_використовуваних_модулв

<{Власн оголошення}

<{Процедури та функцÿ}

begin Е end.


ЗАВДАННЯ 1

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

 

Обчислити суми елементв нижнх трикутних матриць для матриць А(15,15) В(20,20).

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


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

Program Kurs_Task1;

Uses Crt;

Const n=4; m=6;

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

ar

Sa,Sb : 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 x 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;


{-= Функцiя обчислення суми елементiв нижньо

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

Var i,j,t : Integer;

Begin

For i:=1 To x Do

Begin

For j:=1 To t Do

Begin

End;

End;

Sum:=s;

End;


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

Begin

ClrScr;

InT('A',n,a);

InT('B',m,b);

Sa:=Sum('A',n,a);

Write('Сума елементiв нижньо

Write('A'); TC(7); Write(' доpiвню

'); TC(15); WriteLn(Sa:5:2); TC(7);

Sb:=Sum('B',m,b);

Write('Сума елементiв нижньо

Write('B'); TC(7); Write(' доpiвню

'); TC(15); WriteLn(Sb:5:2); TC(7);

ReadKey;

End.


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

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

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

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

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

* * * *

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

Масив B строка 6 елемент 2 > 11

Масив B строка 6 елемент 3 > 12

Масив B строка 6 елемент 4 > 13

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

Масив B строка 6 елемент 6 > 15

Сума елементiв нижньо

Сума елементiв нижньо

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

Для зручност побудови програми замсть параметрв (15,15) та (20,20) матриць А В вдповдно, були використан розмри (4,4) та (6,6), як можуть змнюватися шляхом змни чисельних значень констант n та m.

Вище приведено результат, обчислений програмою. При введенн обох матриць, вводяться вс числов значення, потм з створених матриць видля

ться нижня трикутна матриця (за даними завдання):


Матриця А



Матриця В



















-20

-19

-18

-17

-16

-15

-5

-4

-3

-2



-14

-13

-12

-11

-10

-9

-1

0

1

2



-8

-7

-6

-5

-4

-3

3

4

5

6



-2

-1

0

1

2

3

7

8

9

10



4

5

6

7

8

9







10

11

12

13

14

15


Для переврки врност обчислення програмою суми елементв нижньо

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

(Ц5) + (Ц1) + 0 + 3 + 4 + 5 + 7 + 8 + 9 + 10 = 40

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

Сума елементiв нижньо

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

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

 

Опис формату пдпрограми функцÿ


Пдпрограма функця використову

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

Структура функцÿ така ж, як структура основно

Загальний вигляд функцÿ:

Особливост пдпрограми-функцÿ:

1)      функця ма

тльки один результат виконання (але може мати деклька вхдних параметрв);

2)      результат познача

ться менем функцÿ, тому в роздл операторв функцÿ обов`язково повинен бути присутнм оператор присвоювання, в вй частин якого сто

3)      в заголовку функцÿ обов`язково повинен бути вказаний тип функцÿ;

4)      виклик функцÿ в основнй програм здйсню

ться безпосередньо середин вираження по ? мен з вказуванням фактичних параметрв.


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


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

В представленй вище програм використовуван формальн параметри функцÿ - перемнна, яка вказу

м`я масиву, який обробля

ться середин ц㺿 функцÿ (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;

ar

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в та

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

Var i,j,p : Integer;

Begin

For i:=1 To h Do

Begin

For j:=1 To x Do

Begin

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

Begin

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 м`я (формальн_параметри);

роздл описв

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

розмщу

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


Тут м`я - м`я процедури. Роздл описв, як в основнй програм, включа

роздли label, const, type, var роздл процедур та функцй.


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

1)    параметри-значення (вхдн параметри);

2)    параметри-перемнн (вихдн параметри);

3)    параметри процедурного типу.


Опис вхдних параметрв процедури в списку формальних параметрв ма

такий вигляд:

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

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

так:

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

В Турбо-Паскал допуска

ться також використання нетипзованих вихдних параметрв, як мають вигляд:

ar список_перемнних

Виклик процедури в основнй програм вдбува

ться оператором виду:

м`я_процедури (фактичн_параметри);


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


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

При виклику процедури в основнй програм, задаються параметри, як являють собою фактичн параметри, як перелчен через кому (без вказвки

Вхдними фактичними параметрами можуть бути константи, перемнн вирази. Вихдними фактичними параметрами можуть бути тльки перемнн.


Опис використаних в програмах операторв


Program

заголовок програми, в якому вказу

ться м`я програми (утворю

ться так, як мена перемнних).

Uses

слугу

для використання модулв в програм.

Crt

стандартний модуль Турбо-Паскаля, який пдтриму

текстовий режим дозволя

задавати колр фону чи шрифту,

константи для органзацÿ прямо

Const

роздл констант - якщо в програм використовуються константи, як мають достатньо громздкий запис, або змнн константи (для рзних варантв програми).

Type

опис мен типв перемнних, як вдрзняються вд стандартних, тобто перемнн типу перечислення, обмежен перемнн, масиви т.д.

ar

роздл, в якому описуються вс перемнн, як зустрчаються в програм.

Procedure

оператор пдпрограми-процедури (описаний вище).

Function

оператор пдпрограми-функцÿ (описаний вище).

Read

оператор вводу - кожне введене значення послдовно присвою

ться перемнним з списку: Read (список_перемнних);

ReadLn

те ж, що попереднй оператор, тльки псля введення даних вдбува

ться перехд на нову строку (тобто наступний оператор введення буде вводити дан з ново

Write

оператор виводу - виводить послдовно значення перемнних з списку, або виводить текст, занесений в одинарн лапки:

Write (список_перемнних,ТтекстТ);

WriteLn

те ж саме, що попереднй оператор, але псля виводу перемнних здйсню

ться перехд на нову строку (наступний оператор виводу буде виводити дан з початку ново

:=

оператор присвоювання - мен перемнно

For

оператор циклу, який ма

загальний вигляд:

for I:=N1 to N2 do оператор;

тут I - перемнна циклу; N1, N2 - початкове кнцеве значення перемнно

If

оператор мовного переходу, який ма

загальний вигляд:

if логчний_вираз then оператор_1 [else оператор_2];

тут квадратн дужки означають, що конструкця else з оператором 2 може бути вдсутня. Перед else крапка з комою не ставиться. Оператор 1,2 - це прост або складен оператори. Якщо логчний вираз стинний, то викону

ться оператор 1, накше - оператор 2 (або наступний за if оператор, якщо else вдсутн

). В якост операторв 1,2 можуть бути використан нш оператори if, в цьому випадку кожне else вдноситься до найближчого злва if, який не ма

else.

Begin

з цього ключового слова почина

ться частина програми роздлу операторв (почина

ться роздл, або ж вцлому програма).

End

цим ключовим словом закнчу

ться частина програми роздлу операторв (закнчу

ться роздл, або ж вцлому програма).


Використана тература


1.    Borland Pascal 7.0: Резидентная программа-справочник. Москва: ПО лObject Windows +, 1993.

2.    Турбо-Паскаль 5.0: Руководство пользователя. Калинин: НПО Центрпрограммсистем, 1990.

3.    Офицеров Д.В., Старых В.А. Программирование в интегрированной среде Турбо-Паскаль: Справ. пособие. - Мн.: Беларусь, 1992. Ц 240 с.: ил.

4.    Перминов О.Н. Программирование на языке Паскаль, М.: Радио и связь, 1988.

5.    Довдкова система по мовам програмування - електронна верся.