Міністерство освіти і науки України
КУРСОВА РОБОТА
з предмету «Програмування
і алгоритмічні мови»
на тему «Використання підпрограм»
ЗМІСТ |
Зміст | 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. | Опис використаних в програмах операторів
Використана література
ВСТУП
Часто в підпрограмі виявляються однотипні ділянки, які виконують ті ж самі обчислення, але з різними даними. Такі частини програм доцільно оформлювати у вигляді підпрограм. Використання підпрограм дозволяє:
зробити основну програму більш наочною і компактною;
зменшити об`єм використовуваної пам`яті ЕОМ;
скоротити час налагодження, тому що програмування і налагодження основної програми і підпрограми можуть виконувати паралельно різні програмісти.
В Турбо-Паскалі виділяють два види програм: процедури і функції. Структура процедур і функцій така ж, як і структура основної програми, тобто включає заголовок і блок. В свою чергу блок складається із розділу описів і розділу операторів. Текст процедури або функції може бути розташований в основній програмі одним з нижчевикладених способів:
розташований безпосередньо в розділі опису основної програми;
записаний у окремий файл і вставлений в розділ описів основної програми за допомогою директиви компілятору:
{$I ім`я_файлу}
оформлений у вигляді зовнішнього модуля (це можуть бути або стандартні модулі, або поряд з використанням стандартних модулів кожний програміст має можливість організації власних модулів). Структура любого модуля має вигляд:
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;Var a,b : Mas;
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в нижньої тpикутної матpицi =-}
Function Sum (k:String; x:Integer; Var m:Mas):Real;
Var i,j,t : Integer;
s : Real;
Begin
t:=0; s:=0;
For i:=1 To x Do
Begin
t:=t+1;
For j:=1 To t Do
Begin
s:=s+m[i,j];
End;
End;
Sum:=s;
End;
{-= Основна пpогpама =-}
Begin
ClrScr;
InT('A',n,a);
InT('B',m,b);
Sa:=Sum('A',n,a);
Write('Сума елементiв нижньої тpикутної матpицi '); TC(15);
Write('A'); TC(7); Write(' доpiвнює '); TC(15); WriteLn(Sa:5:2); TC(7);
Sb:=Sum('B',m,b);
Write('Сума елементiв нижньої тpикутної матpицi '); TC(15);
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в нижньої тpикутної матpицi A дорiвнює 40.00
Сума елементiв нижньої тpикутної матpицi B доpiвнює 35.00
Аналіз отриманого результату
Для зручності побудови програми замість параметрів (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в нижньої тpикутної матpицi A дорiвнює 40.00
Як ми можемо бачити, результати ідентичні, а це свідчить про те, що програма обробила вхідні дані вірно і видала вірну відповідь.
Вищевикладене може обгрунтовано свідчити про те, що програма виконана вірно.
Опис формату підпрограми функції
Підпрограма функція використовується, якщо в програмі виявляються однотипні ділянки, які виконують ті ж самі обчислення, але з різними даними.
Структура функції така ж, як і структура основної програми, тобто включає заголовок і блок. В свою чергу блок складається з розділу операторів.
Загальний вигляд функції: function ім`я (формальні_параметри) : тип;
Особливості підпрограми-функції:
функція має тільки один результат виконання (але може мати декілька вхідних параметрів);
результат позначається іменем функції, тому в розділі операторів функції