Н Н Бровченко, Л Г Загоровська - Алгоритмізація і програмування - страница 1

Страницы:
1  2  3 

Міністерство освіти і науки України Національний ніверситет харчових технологій

Алгоритмізація і програмування

Методичні вказівки До виконання курсової роботи для студентів спеціальностей 6.092501, 6.092502 "Автоматизоване управління технологічними процесами", "Комп'ютерно -інтегровані технологічні процеси і виробництва" заочної форми навчання на тему " Створення інформаційно- довідкової системи із використанням процедур та функцій на мові Turbo-Pascal"

СХВАЛЕНО на засіданні кафедри інформаційних систем Протокол № 12 Від 16.06.04

Київ 2004 р.

Алгоритмізація і програмування. Метод. вказівки до виконання курсової роботи з дисципліни "Алгоритмізація і програмування" для студ. спец. 6.092501, "Автоматизоване управління технологічними процесами", та 6.092502 "Комп'ютерно - інтегровані тезнологічні процеси і виробництва" заоч. форми навч. на тему " Створення інформаційно- довідкової системи із використанням процедур та функцій на мові Turbo-Pascal" /Уклад.: Бровченко Н.Н., Загоровська Л.Г. канд. техн. наук, Грибков С.В. - К.: НУХТ. 2004- 16с.

Укладачі: Н.Н. Бровченко

Л.Г. Загоровська Л.Г. , канд. техн. наук, С.В. Грибков С.В.

Відповідальний за випуск. В.В.Самсонов, канд. техн. наук

Передмова

Система програмування Турбо Паскаль, розроблена американською корпорацією Borland, є однією з найпопулярніших систем програмування у світі. Цьому сприяє простота мови програмування Паскаль, що є основою системи. Розроблена швейцарським вченим Никласом Виртом як засіб для навчання студентів прогрмуванню, мова Паскаль перетворилася у протужну сучасну професіональну систему програмування, що спроможна розв'язати будь-які задачі - від створення простих програм до розробки складних реляційних систем управління базами даних. На основі мови Турбо Паскаль розроблені інструментальні засоби Borland Pascal та Delphi, що дозволяють розробляти програми у Windows.

Система програмування Турбо Паскаль являє собою єдність двох компонент: компілятора з мови програмування Паскаль і інструментальної програмної оболонки, яка сприяє підвищенню ефективності створення програм. Різноманітні сервісні послуги, які надає програмна оболонка називається середовищем Турбо Паскаля.

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

1. Мета і завдання курсової роботи

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

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

Виконання курсової роботи з дисципліни "Алгоритмізація і програмування" базується на знаннях з дисципліни "Комп'ютерна техніка і організація обчислювальних робіт".

1.2.   Завдання   курсової   роботи   формується   відповідно   до змісту дисципліни та задач, які визначаються об'єктами комп'ютерізації.

Курсова робота має виконуватись з використанням сучасної мови програмування Turbo Pascal.

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

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

Підпрограми підвищують продуктивність програм, економлять пам'ять,

економлять пам'ть, роблять всю програму більш наочною, спрощують розробку

великих програм.

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

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

Глобальні змінні не є фактичними параметрами і можуть використовуватися як у головній програмі, так і у підпрограмах.

Локальні змінні описуються тільки всередені підпрограмі і можуть використовуватися в цій самій підпрограмі.

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

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

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

Приклад.

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

Структура функції

Function ім'я функції [(список формальних параметрів та їх типів)]: тип результату;

Label мітки;

Const список констант;

Var список змінних;

Begin

тіло функції;

ім'я функції : = результат обчислень; End;

Звертання до функції має вигляд

ім'я функції [(список фактичних параметрів)];

Z _   Ln3 (K + 2) - Ln4 (K + 2) + 2 * Ln (K + 2) Ln3(K + K) - Ln4(K + K) + 2* Ln (K + K)

2 2 2

Приклад 1.

Обчислити значення виразу де K=l,l

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

F = Ln3x - Ln4x + 2 * Lnx

Позначення

Формальні параметри

Фактичні параметри

Призначення параметрів

X

K + 2, K + — 2

Аргументи функції Ln

Блок-схема головної програми

Початок

К

Блок-схема функції F

Початок

F=

Кінець

Ln3x - Ln4x + 2 * Lnx

Program Funkl; {Початок головної програми} Var Z, K: real;

Function F(x: real): real; {Початок функції} Begin

F: = EXP (3*Ln (Ln (x))) - EXP (4*Ln ( Ln (x))) + 2* Ln(x); END; {Кінець функції} Begin {Головна програма} READ (K);

Z:= F(K+2)/F(K+K72); {Звертання до функції} WRITELN (Z);

END.  {Кінець головної програми} Структура процедури

PROCEDURE ім'я процедури [(список формальних параметрів та їх типів)];

Label мітки;

Const список констант;

Var список змінних;

Begin

Тіло процедури

END;

Звертання до процедури має вигляд

Ім'я процедури [(список фактичних параметрів)];

Формальні параметри у процедурі поділяються на

- параметри - значення, які задаються ім'ям і не можуть бути змінені у процедурі;

- параметри-змінні (описуються параметром Var) передаються у процедуру своєю адресою і їх можна змінювати у цій процедурі.

Приклад 2

Задано 3 одновимірних масива А(8), В(10) і С(12). Обчислити величину

D   A max + B max + C max =       Ka + Kb + Kc '

де Ашах, Вшах, Qnax - максимальні елементи масивів А, В та С, а Ка, Кв та Кс - їх індекси. Обчислення максимального елемента та його індекса виконати у процедурі.

Позначення

Фактичні параметри

Формальні параметри

Призначення параметрів

Ашах, Вшах, Qnax

Max

Максимальний елемент

Ка, Кв та Кс

K

Номер максимального елемента

8, 10, 12

n

Розмірність масива

А, В, С

x

Ім'я масива

Блок-схема головної програми Початок

Блок-схема процедури PR оловної програми}

Type mas=array[1..12] of integer; {Визначення типу масива}

Var

a, b, c :mas; {Опис масивів} Amax, bmax, cmax, ka, kb, kc , i :integer; D:real;

Procedure pr(x:mas; n:integer; var max:integer; var k:integer); {Початок процедури} Begin

Max:=x[l];k:=l; For i:=2 to n do If x[i]>max then begin Max:=x[i]; k:=i; End;

End; {Кінець процедури} Begin {Головна програма} Writeln('Bвeдiть масив А'); For i:=l to 8 do read(a[i]); Pr(A,8,Amax,Ka); {Звертання до процедури} Writeln('В ведіть масив В'); For i:=l to 10 do read(b[i]); Pr(B,10,Bmax,Kb); {Звертання до процедури} Write 1п('Ввєдіть масив С'); For i:=l to 12 do read(c[i]); Pr(C, 12, Cmax, Kc); {Звертання до процедури} D:=(Amax+Bmax+Cmax)/(Ka+Kb+Kc); Writeln(lD=',D);

End. {Кінець головної програми}

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

Program MenuFunkProc;

Uses Crt;

Var Vidp:Integer;

{ Процедура виконання обчислень з допомогою функцїї F} Procedure VukFunc; Var Z, K: real;

Function F(x: real): real; {Початок функції} Begin

F:= EXP (3*Ln (Ln (x))) - EXP (4*Ln ( Ln (x))) + 2* Ln(x); END; {Кінець функції F} Begin ClrScr;

Writeln('Введiть К');

Read(K);

Z:= F(K+2)/F(K+K/2); {Звертання до функції F}

Write(Z:3:3);

readkey;

END; {Кінєць процедури VukFunc}

{ Процедура роботи з масивами з допомогою процедури PR} Procedure VukProc;

Type mas=array[1..12] of integer; {Визначення типу масива}

Var

a, b, c :mas; {Опис масивів}

Amax, bmax, cmax, ka, kb, kc , i :integer;

D:real;

Procedure pr(x:mas; n:integer; var max:integer; var k:integer);

{Початок процедури PR - знаходження максимуму та його індексу}

Var i:integer;

Begin

Max:=x[1];

k:=1;

For i:=2 to n do If x[i]>max then

begin

Max:=x[i];

k:=i;

end;

end; {Кінець процедури PR} Begin

ClrScr;

Writeln('Bвeдiть масив А(8)');

For i:=1 to 8 do read(a[i]);

Pr(A,8,Amax,Ka); {Звертання до процедури}

Writeln('Введiть масив В(10)');

For i:=1 to 10 do read(b[i]);

Pr(B,10,Bmax,Kb); {Звертання до процедури}

Writeln('Введiть масив С(12)');

For i:=1 to 12 do read(c[i]);

Pr(C, 12, Cmax, Kc); {Звертання до процедури}

D:=(Amax+Bmax+Cmax)/(Ka+Kb+Kc);

Write('D=',D:3:3);

readkey;

End; {Кінець процедури VukProc} { Обчислювальний блок головної програми }

Begin

ClrScr;

GotoXY(20,11); { Встановлення курсору у вказану позицію } Writeln('1. Виконати обчислення функції'); GotoXY(20,12);

Writeln('2. Виконати обчислення процедури'); GotoXY(20,13);

Writeln('3. Кінець'); GotoXY(20,14);

Write('Зробiть вибір :');

Read(Vidp);

if Vidp=1 then VukFunc; if Vidp=2 then VukProc; End.

{ Кінець головної програми }

3. Тематика курсових робіт та організація їх виконання . Завдання курсових робіт: Створити   інформаційно-довідкову   систему,   що   містить   меню, яке складається з трьох пунктів. В першому пункті потрібно виконати обчислення із застосуванням створеної процедури, в другому пункті - виконати обчислення із застосуванням створеної функції, в третьому пункті - вийти із програми.

Варіанти підпрограм

1. Обчислити кількість додатних елементів заданих масивів V1(6),V 2(12), V 3(13), і вивести їх окремо на екран.

2. Обчислити кількість нульових елементів заданих масивів A(12), 5(14), С(17), і вивести їх окремо на екран.

3. Обчислити кількість від'ємних елементів заданих масивів Z1(9), Z 2(13), Z 3(17), і вивести їх окремо на екран.

4. Обчислити суми від'ємних елементів заданих масивів С1(11), С2(13), С3(14), і вивести їх окремо на екран.

5. Обчислити суми додатних елементів заданих масивів £1(9), £2(12), £3(15), і вивести їх окремо на екран.

6. Обчислити суми елементів заданих масивів £1(12), £2(14), £3(15), і вивести їх окремо на екран.

7. Обчислити середні квадратичні значення від'ємних елементів заданих масивів £1(16), £2(18), £3(20), і вивести їх окремо на екран.

8. Обчислити середні арифметичні значення додатних елементів заданих масивів £1(14), £2(16), £3(17), і вивести їх окремо на екран.

9. Обчислити середні арифметичні значення від'ємних елементів заданих масивів £1(12), £2(15), £3(16), і вивести їх окремо на екран.

10. Обчислити середні квадратичні значення додатних елементів заданих масивів £1(9), K 2(11), K 3(13), і вивести їх окремо на екран.

11. Обчислити середні квадратичні значення елементів заданих масивів Л (13), J 2(15), J 3(17), і вивести їх окремо на екран.

12. Обчислити середні арифметичні значення елементів заданих масивів £1(10), £2(12), £3(14), і вивести їх окремо на екран.

13. Обчислити середні геометричні значення додатних елементів заданих масивів Я1(15), H 2(20), Я3(25), і вивести їх окремо на екран.

14. Обчислити середні геометричні значення елементів заданих масивів G(10),G2(15),G3(20),і вивести їх роздільно на екран.

15.Обчислити середні геометричні значення від'ємних елементів заданих масивів 11(17),12(19),13(21) і їх роздільно на екран.

16.Обчислити добуток від'ємних елементів заданих масивів D(18),E(14),G(15)4 вивести їх окремо на екран.

17.Задано дві матриці-С(5,5) і D(7,7).Обчислити та вивести суми і добуток елементів,розташованих на головних діагоналях матриць.

18.Задано дві матриці-Е(4,8) і F(5,3).Обчислити та вивести мінімальні елементи та індекси рядків і стовпчиків,де вони розташовані.

19.Визначити останні додатні елементи заданих масивів V1(19),V2(16),V3(21),і вивести їх на екран.

20.Визначити останні від'ємні елементи заданих масивів Х1(8),Х2(12),Х3(13),і вивести їх на екран.

21.Визначити перші додатні елементи заданих масивів Ш(7),и2(13),Ш(17),і вивести їх на екран.

22.Визначити мінімальні елементи AQ1,AQ2,AQ3, заданих масивів Q1(6), Q2(18),Q3(14) та найменший елемент MIN серед мінімальних.Вивести на екран AQ1,AQ2,AQ3 та MIN.

23.Визначити максимальні елементи заданих масивів М1(21),М2(23),М3(25), і вивести їх на екран.

24.Визначити мінімальні елементи з від'ємних елементів заданих масивів Т1(23),Т2(19),Т3(17), і вивести їх на екран.

25.Визначити максимальні елементи з від'ємних елементів заданих масивів Р1(7),Р2(13),Р3(14), і вивести їх на екран.

26.Визначити мінімальні елементи з додатних елементів заданих масивів R1(9),

R2(27),R3(23).

27.Визначити максимальні елементи FN1,FN2,FN3, з додатніх елементів заданих масивів N1(9),N2(21),N3(24), та знайти найменший з них елемент FMIN.Вивести величини FMIN,FN1,FN2 та FN3.

28.Задано два масива-А(9) і В(12).Обчислити величину Z,in() дорівнює сумі сум додатних елементів масивів,поділеній на подвійний добуток добутків від'ємних елементів масивів.Вивести суму додатних елементів,добутків від'ємних елементів та значення величини Z.

29.Задано два масива-Х1(10) і Х2(13).Обчислити величину Z,inc> дорівнює половині різниці між максимальним елементом масиву Х1 і мінімальним елементом Х2.Вивести обчислені мінімальний і максимальний елементи та величину Z.

ЗО.Задано два масива-Х(10) і У(12).Обчислити величину Z,що дорівнює сумі мінімальних елементів масивів поділеній на подвійний добуток індексів мінімальних елементів.Вивести мінімальні елементи,їх індекси та значення величини Z.

Варіанти функцій

1. Сформувати масив R, елементи якого обчислюються за формулою

Jsin xy + cos xy +"J sin x + cos x L

R = --       , -, де x = -3,41; 32,2 < y < 33,4,; Ay = 0,2

фіп y + cos y + 2,1

Вивести сформований масив.

2. Сформувати масив P, елементи якого обчислюються за формулою

р = sin xix2 - е^Я2 + xix2 + 3,14 - z + е2 - sin z, де xi = 2,13; x2 = 35,7; 3 < z < 7 ; Az = 0,5.

Страницы:
1  2  3 


Похожие статьи

Н Н Бровченко, Л Г Загоровська - Алгоритмізація і програмування