29. Опис та використання підпрограм


Скачати 75.15 Kb.
Назва29. Опис та використання підпрограм
Дата27.03.2013
Розмір75.15 Kb.
ТипДокументи
bibl.com.ua > Інформатика > Документи
29. Опис та використання підпрограм. Реалізація базових алгоритмічних структур процедурною мовою програмування. Опис процедур та функцій процедурною мовою програмування. Реалізація рекурсивних алгоритмів процедурною мовою програмування. Модульне програмування та його реалізація в системах процедурного програмування
Реалізація базових алгоритмічних структур процедурною мовою програмування.

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

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

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

Загальний вигляд умовного оператора if.

if <вираз>

then <оператор 1>

else <оператор 2>

де <вираз> - будь-який вираз логічного типу (що виробляє в результаті True або False); <оператор 1> і <оператор 2> - оператори мови Паскаль. Якщо вираз набуде значення True, то виконується <оператор 1>, в іншому разі - <оператор 2>.

Цикли

1. Безумовний цикл

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

for <лічильник циклу> : = <вираз 1> to <вираз 2> do <тіло циклу>

де <лічильник циклу> - змінна будь-якого типу, <вираз 1> і <вираз 2> - вирази такого самого типу; <тіло циклу> - будь-яка послідовність операторів, що повторюється доти, доки <лічильник циклу> не набере значення <вираз 2>. <Лічильник циклу> збільшується на 1 після кожного виконання циклу. Для його зменшення на 1 зарезервоване слово to змінене на слово downto.

2. Цикл-поки (з передумовою)

До нього входять як базові такі структури: блок перевірки умови Р і блок S, що називається тілом циклу. Блок перевірки умови розташований раніше тіла циклу і керує роботою циклу. Оскільки тіло циклу S розташоване після перевірки умови Р, то може статися, що за певних умов блок S не буде виконано жодного разу.

Циклічні програми з передумовою мовою Паскаль реалізовані за допомогою оператора циклу while:

while <вираз> do <оператор>

де <вираз> - будь-який вираз логічного типу (що виробляє в результаті True або False); <оператор> - оператор (складений оператор) мови Паскаль. Якщо вираз набуде значення True, то виконується <оператор>, в іншому разі виконання циклу завершується.

3. Цикл-до (з постумовою)

Характеризується тим, що перевірка умови Р стоїть після тіла циклу. Під час роботи циклу з постумовою тіло циклу S виконується принаймі один раз і буде виконуватися доти, доки не справдиться умова Р. Справдження умови Р в цьому випадку – умова закінчення циклу. Циклічні програми з постумовою мовою Паскаль реалізовані за допомогою оператора циклу repeat:

repeat

<тіло циклу>

until

де <тіло циклу> - будь-яка послідовність операторів, що повторюється доти, доки <вираз> не набере значення True.

Опис процедур та функцій процедурною мовою програмування.

Опис процедур та функцій процедурною мовою програмування. Формальнi та фактичнi параметри. Стандартні процедури та функції, локальні та глобальні змiннi.

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

Формальні параметри – це параметри, описані в заголовку процедури. Значення величини, що вказується у виклику процедури, називається фактичним параметром процедури, або параметром виклику процедури. Кількість і тип фактичних параметрів мають суворо відповідати кількості й типам формальних параметрів. Зміст використовуваних фактичних параметрів залежить від того, у якому порядку вони перераховані при виклику процедури. Фактичний параметр є значенням, що замінює собою формальний параметр при виконанні процедури; з цим значенням параметра виконується викликана процедура. Локальні змінні (від лат. – місце) – це змінні, описані в розділі описів підпрограми. Локальні змінні можуть використовуватися й мінятися тільки операторами даної підпрограми. Локальні об’єкти створюються при вході в процедуру і знищуються при виході з неї.

1. Локальні змінні недоступні поза процедурою чи функцією.

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

Глобальні змінні – це змінні, описані в розділі описів головної програми.

1. Глобальні змінні доступні поза процедурою чи функцією.

2. Будь-яка зміна глобальної змінної у процедурі змінює її значення поза процедурою.

Процедури:

1. Стандартні (є частиною ТУРБО-системи і можуть бути викликані без оголошення): процедури для роботи з рядками; процедури для роботи з файлами; процедури розміщення динамічних параметрів; процедури введння-виведення; процедури завершення

2. Які визначаються користувачем (оголошуються у розділі описів)

Для використання процедур у програмі широко розповсюдженою мовою програмування Паскаль їх необхідно описати в розділі описів головної програми. Опис міститься в програмі після розділу опису змінних і складається і з заголовка і тіла процедури. Заголовок процедури складається із службового слова procedure, ідентифікатора процедури і списку формальних параметрів, взятого в круглі дужки. Елементи списку параметрів відокремлюються один від одного комами:

procedure <ім’я процедури> (<параметри>);

Тіло процедури за структурою аналогічне програмі, тобто містить описи об’єктів: міток, констант, типів, змінних, а також розділ операторів. Розглянемо як приклад процедуру обчислення дискримінанта квадратного рівняння:

procedure Discr (A, B, C, D: real);

begin

D:=B*B-4*A*C;

end;

У цій процедурі використано змінні A, B, C, D типу real, що виступають як формальні параметри

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

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

function <ім’я функції> (<параметри>): <тип даних>;

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

Розглянемо як приклад функцію обчислення площі трикутника за формулою Герона:

function Geron (a,b,c: real): real;

var p: real;

begin

p:=(a+b+c)/2;

Geron:=Sqrt(p*(p-a)*(p-b)*(p-c))

end;

Рекурсивнi алгоритми. Реалізація рекурсивних алгоритмів процедурною мовою програмування

Рекурсія – спосіб звернення процедури або функції до самої себе, але із зміненими вхідними даними. Рекурсію зручно використовувати в задачах, що зводяться до розв’язання підзадач одного типу, але різної розмірності. Наприклад, обчислення факторіала числа n можна подати через звертання до обчислення факторіала числа n-1:

n!=n(n-1)!

Рекурентні співвідношення (формули) встановлюють залежність резуль­татів деяких дій (операцій) на n-ому кроці від результатів аналогічних дій, одержаних на попередньому п - 1 кроці.

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

Будь-яка рекурсія містить три елементи: 1) початкове значення проміжного результату (на нульовому кроці) перед початком прямого ходу; 2) спосіб одержання проміжного результату на і-му кроці прямого ходу через проміжний результат, одержаний на (і-1)-му кроці; 3) умова завершення процесу.

Приклад: задача Фібоначчі

fib(1)=1; fib(2)=1;..., fib(n)=fib(n-1)=fib(n-2).

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

function fib (n: integer): integer;

begin

if (n=1) or (n=2)

then fib:=1

else fib(n)=fib(n-1)=fib(n-2)

end;

Модульне програмування та його реалізація в системах процедурного програмування.

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

Структура

Unit <ім’я>;

Interface <інтерфейсна частина>;

Implementation <виконуюча частина>;

Begin <ініціююча частина>;

End.

Огляд стандартних модулів

В ТР є 8 стандартних модулів: system, dos, crt, printer, graph, overlay, turbo3, graph3.

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

printer. Вивід тексту на принтер

crt. Входять процедури і функції, що забезпечують управління текстовим режимом роботи екрана. Можна переміщувати курсор в будь-яку позицію екрана, змінювати колір символів і фону.

Схожі:

Тема. Розробки найпростіших класів. Створення об'єктів Мета
Формування вмінь і навиків створення та використання класів. Закріплення вмінь і навиків використання підпрограм, функцій вводу-виводу...
ВИКОРИСТАННЯ ІГРОВОЇ ТЕРАПІЇ У РОБОТІ З ДІТЬМИ З ОСОБЛИВИМИ ПОТРЕБАМИ
У статті розкрито основні питання використання ігрової терапії у роботі з дітьми дошкільного віку. Дано опис програми корекційно-розвивальних...
ПАМЯТКА ПАМЯТНИК. Розрізняються значенням
Складовими частинами опису місцевості є опис місця та опис предметів, що на цьому місці розташовані
Тема. Засоби вводу/виводу за допомогою діалогових вікон
Формування вмінь і навиків використання підпрограм вводу/виводу з використанням діалогових вікон. Застосування знань структури лінійних...
Тема. Засоби вводу/виводу з використанням командного рядка
Формування вмінь і навиків використання підпрограм вводу/виводу з використанням командного рядка. Застосування знань структури лінійних...
План Вступ. Основна частина. Використання технології укрупнених одиниць
...
Тема. Створення та реалізація програм, що містять звернення до підпрограм
Змінні, що використовуються в підпрограмах, поділяються на глобальні та локальні
Урок з української мови Тема: «Особливості побудови опису»
Дати школярам уявлення про особливості побудови опису; формувати вміння відрізняти опис від інших типів мовлення; навчити розрізняти...
Поняття про бібліографію. Історія бібліографії. Бібліографія в Україні....
Мета: ознайомити учнів з поняттям про бібліографію, її призначенням, історією виникнення бібліографії в Україні; навчити аналізувати...
Конспект уроку української мови у 8 класі на тему: «Твір-опис місцевості...
ТЕМА: ПИСЬМОВИЙ ТВІР-ОПИС МІСЦЕВОСТІ (ВУЛИЦІ, СЕЛА, МІСТА) НА ОСНОВІ ОСОБИСТИХ СПОСТЕРЕЖЕНЬ І ВРАЖЕНЬ У ХУДОЖНЬОМУ СТИЛІ
Додайте кнопку на своєму сайті:
Портал навчання


При копіюванні матеріалу обов'язкове зазначення активного посилання © 2013
звернутися до адміністрації
bibl.com.ua
Головна сторінка