|
Скачати 75.15 Kb.
|
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 класі на тему: «Твір-опис місцевості... ТЕМА: ПИСЬМОВИЙ ТВІР-ОПИС МІСЦЕВОСТІ (ВУЛИЦІ, СЕЛА, МІСТА) НА ОСНОВІ ОСОБИСТИХ СПОСТЕРЕЖЕНЬ І ВРАЖЕНЬ У ХУДОЖНЬОМУ СТИЛІ |