вчителя інформатики та математики
П`ятниця, 03.05.2024, 22:56

Персональний сайт Якима Івана



Меню сайту
Категорії розділу
Методичні статті [1]
Конспекти уроків з математики [0]
Конспекти уроків з інформатики [3]
Тести з інформатики в 9-11 класах [9]
Тестові завдання з інформатики в 9-11 класах по матеріалах базового курсу для самопідготовки учнів до уроків
Тестова частина ДПА 2012 завдання 1-15 [2]
Наше опитування
Оцініть мій сайт
Всього відповідей: 250
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0
Форма входу
Ключові теги
Штучна водойма
Водойма з бетону
Принципи облаштування водойми
Облицювання водойми природнім каменем
Ландшафтні роботи
Виготовлення газону
Виготовлення альпійських гірок
Альпінарій
Дизайн присадибної ділянки
Ціни на послуги ландшафтного дизайну
Ландшафтный дизайн
Искуственный водоем
Водоем из бетона
Отделка природным камнем
Дорожки, альпийские горки
Усторйство газона
Ландшафтний дизайн
Пошук

Погода в Україні

Головна » Статті » Конспекти уроків з інформатики

Поняття основного та допоміжного алгоритму. Алгоритми-процедури і алгоритми-функції. Формальні та фактичні параметри

Тема уроку: "Поняття основного та допоміжного алгоритму.
                       Алгоритми-процедури і алгоритми-функції. Формальні та
                       фактичні параметри"
Мета уроку: Навчальна: Дати поняття про допоміжні алгоритми, типи
               допоміжних алгоритмів, оформлення підпрограм (процедур) мовою                програмування Паскаль, поняття про формальні та фактичні параметри,                області дії змінних.
Виховна: виховувати самостійність, культуру праці та відповідальне
                ставлення під час роботи на комп’ютері.
Розвиваюча: сприяти в розвитку учнів таких особистих якостей, як
               мислення, пам’ять, уваги.
Тип уроку: комбінований.

Обладнання: мультимедійний проектор, комп’ютери.
               Хід уроку.
1. Організаційні питання.
2. Актуалізація опорних знань учнів.
• Що називають алгоритмом
• Які типи алгоритмів ви знаєте
• Що означає структура проходження
• Що означає структура розвилка
• Що означає структура цикл
• Як запустити середовище програмування ABC Pascal
• З яких основних операторів складається програма
3. Теоретичний матеріал:
   Підпрограмою називається іменована, логічно закінчена група операторів мови, яку можна викликати для виконання будь-яку кількість разів із різних місць програми.
У мові Паскаль для організації підпрограм використовуються процедури і функції.
   Процедура - це незалежна поіменована частина програми, призначена для виконання визначених дій. Вона складається з тіла і заголовка. За структурою її можна розглядати як програму в мініатюрі. Після однократного опису процедуру дозволяється викликати за іменем з наступних частин програми. Використання імені процедури в програмі називається викликом процедури. Ім'я процедури не може знаходитися у виразі у якості операнду.
  Функція відрізняється від процедури тим, що, по-перше, передає в точку виклику скалярне значення (результат своєї роботи), а по-друге, ім'я функції може входити у вирази, як операнд. Функція, якщо вона зустрічається у виразі, називається покажчиком функції або звертанням до функції.
Усі процедури і функції мови Паскаль підрозділяються на дві групи:
• вбудовані;
• визначені користувачем.
Вбудовані (стандартні) процедури і функції є частиною мови і можуть викликатися за іменем без попереднього опису в розділі описового блока. З багатьма з них ви вже знайомилися в попередніх розділах.
Процедури і функції користувача організовуються самим програмістом відповідно до синтаксису мови і являють собою локальні блоки. Попередній опис процедур і функцій користувача є обов'язковим.
Функція, визначена користувачем, складається з заголовка і тіла функції. Заголовок містить зарезервоване слово Function, ідентифікатор (ім'я) функції та, укладений у круглі дужки, необов'язковий список формальних параметрів і тип значення, що повертається функцією.
Формат опису:
Function <ім'я> [(формальні параметри)]:<тип результату>;
Ім'я функції - унікальний у межах блока ідентифікатор. Результат, що повертається, може мати будь-який простий тип і тип string.
Тіло функції являє собою локальний блок, за структурою аналогічний програмі:
Function <ім'я> [(формальні параметри)]:<тип результату>;
[<розділи описів>;]
begin
<розділ операторів>
end;

У розділі операторів повинен перебувати хоча б один оператор, що присвоює ідентифікатору функції значення. Якщо таких операторів декілька, то результатом виконання функції буде значення останнього оператора присвоювання.
Звертання до функції здійснюється за іменем з необов'язковою вказівкою списку аргументів. Кожен аргумент повинен відповідати формальним параметрам, зазначеним у заголовку, і мати той же тип.
Формат виклику фунції:
Y:=<ідентифікатор функції > [(фактичні параметри)];
Функції можуть повертати значення цілих, дійсних, булівских, літерних і рядкових типів.
Опис процедури включає заголовок (ім'я) і тіло процедури. Заголовок складається з зарезервованого слова Procedure, ідентифікатора (імені) процедури і необов'язкового списку формальних параметрів із вказівкою їх типу, який укладається в круглі дужки .
Формат опису:
Procedure <ім'я> [(формальні параметри)];
Приклад:
Procedure Korrekt;
Procedure Sort (A:byte);
Ім'я процедури - ідентифікатор, унікальний у межах програми. Тіло процедури являє собою локальний блок, за структурою аналогічний програмі:
Procedure <ім'я> [(формальні параметри)];
[<розділи описів>;]
begin
<розділи операторів>
end;

Зверніть увагу, що як формальні параметри, так і розділ описів у процедурі може бути відсутній.
Щоб звернутися до процедури, треба використати оператор виклику процедури. Він складається з ідентифікатора (імені) процедури і списку фактичних параметрів, що відділені один від одного комами і знаходяться у круглих дужках. Якщо процедурі не передається ніяких параметрів, то фактичні параметри не вказуються.
Формат виклику процедури:
<ідентифікатор> [(фактичні параметри)];
Параметри забезпечують механізм заміни, який дозволяє виконувати процедуру з різними початковими даними. Між фактичними параметрами в операторі виклику процедури і формальними параметрами у заголовку опису процедури встановлюється взаємо-однозначна відповідність у результаті їхнього перебору зліва направо. Фактичні параметри за кількістю і типами повинні дорівнювати кількості і типам формальних параметрів.
  Параметри, за допомогою яких здійснюється обмін значеннями змінних між підпрограмами та програмою, що їх викликає, можуть мати будь-який тип, в тому числі структурований. Існують два типи параметрів:
• параметр-значення;
• параметр-змінна.
  Група параметрів, перед якими відсутнє зарезервоване слово Var, називається параметрами-значеннями.
Наприклад, в описі Procedure Korrect(S,K:real) S і K - параметри-значення. Формальний параметр-значення обробляється, як локальна стосовно процедури або функції, змінна. Зміни формальних параметрів-значень не впливають на відповідні значення фактичних параметрів.
  Група параметрів, перед якими знаходиться ключове слово Var, називається параметрами-змінними. Наприклад, в описі Procedure Obr(Var A,B:integer); А та В - параметри-змінні. Параметр-змінна використовується в тому випадку, якщо значення повинно бути передане з процедури в блок, що її викликає. При активізації процедури або функції формальний параметр-змінна заміщується фактичною змінною, а тому будь-які зміни в значенні формального параметра-змінної відбиваються на фактичному параметрі.
І в тому, і в іншому випадку тип фактичного параметра повинен збігатися з типом формального. Якщо формальний параметр має рядковий тип, йому надається атрибут довжини, рівний 255, а тому і фактичний параметр в цьому випадку повинен також мати рядковий тип з атрибутом довжини, що дорівнює 255. У якості параметра-змінної може використовуватися будь-який тип, в тому числі файловий.

          Область дії ідентифікаторів.
   Для правильного визначення області дії ідентифікаторів при використанні в програмі процедур і функцій необхідно притримуватися наступних правил:
1. Кожний ідентифікатор повинен бути описаний перед тим, як він буде використаний.
2. Ідентифікатор діє у межах блоку, в якому він описаний.
3. Всі ідентифікатори в одному блоці повинні бути унікальними, тобто не повторюватися.
4. Однакові ідентифікатори можуть бути по-різному визначені у кожному окремому блоці, але це вважається поганим стилем програмування і тому не рекомендується в різних блоках програми використовувати змінні з однаковими іменами..
5. Якщо ідентифікатор підпрограми користувача збігається з ім'ям стандартної процедури або функції, то вони стають недоступними в межах області дії підпрограми, оголошеної користувачем, тобто стандартна функція ігнорується, а виконується програма користувача.

4. Запитаннях для самоконтролю.

1. Що таке підпрограма? Які типи підпрограм Ви знаєте?
2. Чим відрізняються процедури від функцій?
3. Формати опису процедур і функцій.
4. Що таке локальні та глобальні параметри? Яка між ними відмінність?
5. Які параметри називаються фактичними, а які формальними?
6. Змінні яких типів можуть використовуватись в якості параметрів процедур та функцій?
7. Чи можуть існувати підпрограми без формальних параметрів?
8. Чим відрізняються параметри-значення від параметрів-змінних?
9. Що можна ставити у відповідність формальним параметрам-значенням, а що параметрам-змінним?

5.Тестові завдання

Задача.
Умова: Нехай в програмі описано такі процедури:
Procedure P(x,y:integer);
Begin
y:=x+1;
End;
Procedure Q(x:integer; var y:integer);
Begin
y:=x+1;
End;
Procedure R(var x,y:integer);
Begin
y:=x+1;
End;
Визначити, що буде надруковано в результаті виконання таких операторів: Оператори Очікувана відповідь
c:=2; d:=1; P(c,d); writeln(d); на екрані буде 1
c:=2; d:=1; Q(c,d); writeln(d); на екрані буде 3
c:=2; d:=1; R(c,d); writeln(d); на екрані буде 3


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

Задача .
Умова: Знайдіть і поясніть помилки в записі функцій:
Function max(n:integer):real:
Var a,max:real;
Begin
Read(max);
For i:=1 to n-1 do
Begin
Read(a);
If a>max then max:=a;
End;
End;


   Очікувана відповідь учнів:
У функції описана внутрішня локальна змінна max, ім'я якої співпадає з іменем функції, а це неприпустимо, тому що вони обидві являються локальними для даної функції і не можуть мати однакові імена.
Якщо все ж таки ім'я функції max, то неможливо використання його у операторах read(max) та if a>max, тому що ми отримуємо самовиклик функції, а це може призвести до помилки.
В операторах read(max) та if a>max помилка, якщо max - ім'я функції, тому що після імені функції в момент її виклику повинні знаходитись в дужках фактичні параметри, кількість та тип яких мають співпадати з кількістю та типом фактичних параметрів даної функції (в даному випадку фактичний параметр повинен бути один).
Якщо в програмі не існує глобальна змінна і, то вона залишається неописаною в підпрограмі.

6.Домашнє завдання:

прочитати сторінки 273-280 підручника « Інформатика» частина 2;
обчислити добуток, використовуючи процедуру Dob з параметрами a I b
(див. ст..276)


Категорія: Конспекти уроків з інформатики | Додав: dizajner65 (22.02.2010) | Автор: Іван Іванович E
Переглядів: 3912 | Коментарі: 6 | Рейтинг: 4.0/1
Всього коментарів: 0
Ім`я *:
Email *:
Код *: