Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
фле / мой курсовой конечный вариант.docx
Скачиваний:
27
Добавлен:
06.06.2015
Размер:
792.67 Кб
Скачать

5.1.4 Використання функцій та динамічного розподілу пам’яті

Функція- це сукупність оголошень і операторів, зазвичай призначена для вирішення певного завдання. Кожна функція повинна мати ім'я, яке використовується для її оголошення, визначення і виклику. У будь-якій програмі на СІ має бути функція з ім'ям main (головна функція) саме з цієї функції, в якому б місці програми вона не знаходилася, починається виконання програми.

При виклику функції їй за допомогою аргументів (формальних параметрів) можуть бути передані деякі значення (фактичні параметри), використовувані під час виконання функції, функція може повертати деяке (одне!) значення. Це значення, що повертається, і є результат виконання функції, який при виконанні програми підставляється в точку виклику функції, де б цей виклик не зустрівся. Допускається також використовувати функції що не мають аргументів і функції що не повертають ніяких значень. Дія таких функцій може полягати, наприклад, в зміні значень деяких змінних, виводі на друк деяких текстів і тому подібне.

З використанням функцій в мові Pascal зв'язано три поняття - визначення функції (опис що виконуються функцією), оголошення функції (завдання форми звернення до функції) виклик функції.

Визначення функції задає тип значення, що повертається, ім'я функції, типи і число формальних параметрів, а також оголошення змінних і оператори, звані тілом функції, і визначальні дію функції. У визначенні функції також може бути заданий клас пам'яті.

У програмах на мові Pascalшироко використовуються, так звані, бібліотечні функції, тобто функції заздалегідь розроблені і записані в бібліотеки. Прототипи бібліотечних функцій знаходяться в спеціальних заголовних файлах, що поставляються разом з бібліотеками у складі систем програмування, і включаються в програму за допомогою директиви.

При статичному розподілі пам'яті вона виділяється при компіляції програми і буде зайнята до завершення програми.

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

5.2 Практична частина

Виконати математичний опис задачі, скласти схему алгоритму, таблицю символічних імен, розробити, набрати і відлагодити С++програму обробки матриці (циклічний обчислювальний процес – вложені цикли) з використанням функцій вводу, виводу та обробки матриць та динамічного розподілу пам’яті.

Варіант 5.

Дано дійсну матрицю , де і,j =1,2,3,…,n. Скласти схему алгоритму і програму визначення перемінної Х, якій присвоїти значення найбільшого з додатних елементів матриці,розташованих на головній діагоналі і нижче ії, і визначити ії координати.

Вихідними даними є:

  1. Значення змінних: n=5.

2.Значенняелементівматриці:

Mатематичнийописзадачі:

  1. Задати n,m;

  2. Ввід матриці

  3. x=max якщо

  4. Вивід матриці А;

  5. Вивід х,хi,xj;

кінець.

Схемний алгоритм

i<=1,n,1

11

j<=1,m,1 j<=1,m,1

12

1

13

Кінець j

14

Кінець i

15

16

17

j<=1,n,1

Кінець jКінець j

Кінець j

Кінець i

i=1,n,1

i<=1,m,1

Таблиця символічних імен

Математичне ім’я

Символьне ім’я

Значення змінної за змістом

Змінна

Тип

Значення

A

A

матриця

дійсний

задається

i, j

i, j

індекси елементів матриці А

цілий

задається

n

n

Кількість рядків,стовпців матриці А

цілий

задається

x

x

Значення найбільшого з додатніх елементів на головній діагоналі і нижче

дійсний

обчислюється

хi,xj

хi,xj

Індекс змінної х

цілий

обчислюється

Розробляю програму:

Program Zavdannya_5;

Uses CRT;

var a:array[1..10,1..10] of real;

i,j,n,xi,xj:byte;

x:real;

Begin

clrscr;

write('vvedit n:');

readln(n);

writeln('vvedite matritzya a:');

for i:=1 to n do

for j:=1 to n do

begin

writeln('a[',i,',',j,']=');

readln(A[i,j])

end;

For i:=2 to n do

For j:=1 to n do

if i>=j then

if a[i,j]>0 then

begin

x:=a[i,j];

xi:=i;

xj:=j;

end;

For i:=2 to n do

For j:=1 to n do

if i>=j then

if a[i,j]>0 then

if x<a[i,j] then

begin

x:=a[i,j];

xi:=i;

xj:=j;

end;

clrscr;

Writeln('laboratorna robota TP_5');

Writeln('studenta gruppi EMgS_11_1');

Writeln('Zuyakova Gleba Igorovicha');

Writeln('Vhidni dani');

Writeln('n=',n:-3);

Writeln('Matrica a:');

for i:=1 to n do

Begin

for j:=1 to n do

Write(' ',a[i,j]:-7:3);

Writeln;

end;

Writeln('Rezultati rihennya naybilhiy element diagonali ta nigche iy');

Writeln('x(',xi,',',xj,')=',x:-7:3);

end.

Результатработипрограми:

Zavdannya_5

studentagruppiEMgS_11_1

Zuyakova Gleba Igorovicha

Vhidni dani

n=5

Matritza a:

Rezultati rihennya naybilhiy element diagonali ta nigche

x[4,4]=8.110

Соседние файлы в папке фле