Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Процедури і функції користувача та стандартні процедури і функції в Delphi
Пригадайте! 1. Що таке процедура? 2. Що таке обробник події? Як створити обробник події? 3. Який загальний вигляд процедур-обробників подій, які ви створювали в Delphi? 4. Які змінні називаються локальними, а які глобальними? Поясніть різницю між ними. 5. Як у Delphi змінити числовий тип змінної на текстовий і навпаки? Процедури користувача в Delphi У попередніх пунктах ви створювали і використовували процедури, які були пов’язані з певними подіями і були методами певних об’єктів. Заготовки цих процедур середовище розробки створювало автоматично, а ви доповнювали ці заготовки командами і рядком varопису змінних. При створенні програм можна включати до проекту процедури, не пов’язані з подіями. Такі процедури називаються процедурами користувача. Їх найчастіше використовують у випадках, коли потрібно кілька разів при різних значеннях змінних виконувати одні й ті самі операції: обчислювати площу і периметр трикутників або інших геометричних фігур, вибирати більше з двох чисел, визначати, просте число чи ні, та інші. Або коли задачу можна поділити на окремі підзадачі, кожна з яких розв’язується за окремим алгоритмом, тобто при використанні методу покрокової деталізації. Процедура користувача, як й інші процедури – це відокремлена частина програми, яка має своє ім’я і яка може бути викликана для виконання в будь-якій іншій частині програми. Процедури користувача можуть бути: · без аргументів і без результатів; · з аргументами і без результатів; · без аргументів і з результатами; · з аргументами і з результатами. Запам’ятайте! Аргументи процедури – це змінні, які отримують свої значення в команді виклику процедури перед початком виконання команд процедури. Результати процедури – це змінні, які передають свої значення з процедури певним змінним в команді виклику процедури.
Найчастіше використовують процедури останнього типу. Загальний вигляд цих процедур у Delphiтакий: procedure <ім’я> (<списки аргументів з їхніми типами>; var <списки результатів з їхніми типами>); var (<списки локальних змінних процедури з їхніми типами>); Begin <команди> end; Загальний вигляд команди виклику процедури з аргументами і результатами такий: <ім’я> (<списки виразів, значення яких передаються аргументам процедури>, <списки змінних, яким передають свої значення результати процедури>); Звертаємо вашу увагу: у команді виклику процедури порядок виразів, значення яких передаються аргументам процедури, і змінних, яким передають свої значення результати процедури, повинен строго відповідати порядку запису аргументів і результатів процедури в рядку її заголовка. Оформимо як процедуру фрагмент програми, який обчислює НСД двох натуральних чисел. У цієї процедури два аргументи – два натуральні числа, НСД яких потрібно знайти, і один результат – їхній НСД. Виглядатиме ця процедура так: procedure МCD (a, b: Integer; var c: Integer); var r: Integer; Begin r := a mod b; while r <> 0 do Begin a := b; b := r; r := a mod b; end; c := b; end; Викликати на виконання цю процедуру для одержання значення НСД двох конкретних натуральних чисел можна, наприклад, такою командою: МCD (35, 77, х). Виконуватися ця команда буде так: 1. Змінні a і b (аргументи процедури) одержують значення 35 і 77 відповідно. 2. Виконуються команди процедури. 3. Змінна с (результат процедури) передає своє значення змінній х, вказаній у команді виклику процедури. Отже, в результаті виконання вказаної команди виклику процедури змінна х одержить значення 7. У команді виклику цієї процедури в дужках на перших двох місцях, що відповідають аргументам процедури, можуть стояти не тільки константи, а й змінні, які на момент виконання команди виклику мають певні натуральні значення. Тобто при виконанні команди МCD (к, р, х) аргументи процедури a і b одержать значення змінних кірвідповідно. На цих місцях можуть стояти також арифметичні вирази, значення яких будуть обчислені на початку виконання команди виклику процедури і ці значення будуть передані аргументам процедури, наприклад, МCD (2*к+3, 3*р-1, х). Звертаємо вашу увагу: 1. Аргументи та результати процедури можуть бути одними й тими самими змінними, тобто допустима процедура із заголовком Procedure One (var a, b:Integer). У такої процедури змінні aіb є одночасно і аргументами і результатами. Команда виклику цієї процедури виглядатиме так: One (x, y). 2. Процедура може серед своїх команд мати команду виклику іншої процедури. Запам’ятайте! Змінні, які вказані в заголовку процедури, називаються формальними параметрами процедури. Змінні, які вказуються в команді виклику процедури, називаються фактичними параметрами процедури.
Проілюструємо зручність використання процедур користувача (зокрема, процедури знаходження НСД двох натуральних чисел) на прикладі такої задачі.
Задача 1. Знайти суму двох звичайних дробів.
У наведеному тексті проекту (рис. 2.59) процедура викликається двічі. Перший раз для знаходження НСД знаменників дробів. Цей НСД у наступній команді використовується для знаходження найменшого спільного знаменника дробів (НСК (х, у) = х*у/НСД(х, у)). Другий – для знаходження НСД чисельника і знаменника дробу-суми з метою його подальшого скорочення. Без використання процедури текст цього проекту збільшився б, погіршилась би його структурованість. |
|||||||
Последнее изменение этой страницы: 2018-05-30; просмотров: 174. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |