KNOWLEDGE HYPERMARKET


ПРОЦЕДУРИ З АРГУМЕНТАМИ

ПРОЦЕДУРИ З АРГУМЕНТАМИ


1. Що таке процедура? Які правила її запису в алгоритмі?
2. Як виконується алгоритм з процедурами?
3. У чому полягає суть процедурного методу створення алгоритму?

Процедури з одним аргументом
 
У попередньому пункті ви дізналися, як за допомогою процедур спростити запис алгоритму у випадках, коли малюнок містить рівні між собою об'єкти, але вони розташовані на різних відстанях один від одного.

Підемо ще далі. Розглянемо малюнок, на якому є схожі об'єкти, але нерівні між собою. А саме, три нерівні рівносторонні трикутники, які ще й знаходяться на різних відстанях один від одного.

Ass19.jpg


Очевидно, що для малювання кожного з цих трикутників потрю-но скласти окрему процедуру. Але це, знову ж таки, не раціонально. Тим більше, що таких нерівних рівносторонніх трикутників на малюнку може бути не три, а значно більше.


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

Проц РівнТр1
Початок

Опусти хвостик

Повтори 3 рази
[
Вперед на 30

Вправо на 120
]
Підніми хвостик

Кінець

Проц РівнТр2
Початок
Опусти хвостик

Повтори 3 рази
[
Вперед на 40

Вправо на 120
]
Підніми хвостик

Кінець


Оскільки самі трикутники відрізняються один від одного тільки довжиною сторони, то й процедури для їх малювання відрізняються одна від одної тільки однією командою. Причому, в цих командах напрям руху Черепашки один і той самий (Вперед), а відмінність полягає лише в кількості кроків, які Черепашка повинна пройти (Вперед на 30 і Вперед на 40). Аналогічну ситуацію маємо і з третім трикутником.


До процедури, за допомогою якої Черепашка зможе намалювати довільний рівносторонпій трикутник, замість команд Вперед на ЗО, Вперед на 40, Вперед на 60 включимо команду Вперед на х (х — змінна). Те, що в процедурі будуть використані команди зі змінними, потрібно вказати в заголовку процедури, і він матиме такий вигляд Проц РівнТр (х).


Тобто, процедура для малювання довільного рівностороннього трикутника виглядатиме так:
Проц РівнТр (х)
Початок
Опусти хвостик
Повтори 3 рази
[
Вперед на х

Вправо на 120
]
Підніми хвостик

Кінець

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


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


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

Початок
Опусти хвостик
Повтори 3 рази
[
Вперед на х

Вправо на 120
]
Підніми хвостик

Кінець


Вправо на ЗО

РівнТр (ЗО)

Вправо на 60

Вперед на 50

Вліво на 60

РівнТр (40)

Вправо на 60

Вперед на 70

Вліво на 60

РівнТр (60)

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


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

Початок
Опусти хвостик
Повтори 3 рази
[
Вперед на х

Вправо на 120
]
Підніми хвостик
Вправо на 60
Вперед на у
Вліво на 60

Кінець

Вправо на ЗО

РівнТрТаПерехід (ЗО, 50)

РівнТрТаПерехід (40, 70)

РівнТрТаПерехід (60, 0)

При виклику процедури РівнТрТаПерехід (х, у) командою РівнТрТаПерехід (ЗО, 50) змінній х надається значення ЗО, а змінній у — значення 50. Відповідно команда Вперед на х набуває вигляду Вперед на ЗО, а команда Вперед на у - Вперед на 50. Виконуючи команди цього алгоритму, Черепашка малює перший з даних рівносторонпіх трикутників і переходить до початку малювання другого.


При виклику процедури РівнТрТаПерехід (х, у) командою РівнТрТаПерехід (40,70) змінній х надається значен ня 40, а змінній у — значення 70. Відповідно команда Вперед на х набуває вигляду Вперед на 40, а команда Вперед на у — Вперед на 70. Викопуючи команди цього алгоритму, Черепашка малює другий з даних рівносторонніх трикутників і переходить до початку малювання третього.

Аналогічним є й третій виклик цієї процедури для малювання третього трикутника. При цьому змінна у набуває значення 0 і команда Вперед на у перетворюється на команду Вперед на 0. При виконанні цієї команди Черепашка залишається на місці. Це цілком відповідає ситуації, коли, намалювавши третій трикутник, Черепашка вже не повинна переходити до малювання наступного трикутника.


Процедуру з двома аргументами можна та кож використовувати, наприклад, для малювання довільного прямокутника. Вона виглядатиме так:
Проц Прямокутник (х, у)

Початок
Опусти хвостик
Повтори 2 рази
[
Вперед на х

Вправо на 90

Вперед на у

Вправо на 90
]
Підніми хвостик Кінець

Виклик цієї процедури може відбутися, наприклад, командою Прямокутник (20, ЗО). Після цього, як і в попередньому прикладі, змінна х набуде значення 20, а змінна у — значення ЗО. Отже, команда Вперед на х перетвориться на команду Вперед на 20, а команда Вперед на у — на команду Вперед на ЗО.


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

Запитання та завдання
1. Що таке процедура з аргументами? Для чого вони використовуються в алгоритмі?
2. Як записуються процедури з аргументами в алгоритмі?
3. Як викликаються і виконуються процедури з аргументами?
4. Складіть алгоритми для Черепашки, використовуючи процедури з аргументами:

Ass20.jpg


Ass21.jpg


5.  Виконайте в зошиті алгоритми, що містять процедури з аргументами:
а) Крон Фігура1 (х)
Початок Опусти хвостик Вперед на х  Вліво на 90 Вперед на х Вліво на 90 Вперед на х
Підніми хвостик Кінець
Вправо на 90 Фігура1 (20) Назад на ЗО Вправо на 90 Назад на 20 Вправо на 90 Фігура1 (30)

б) Проц Фігура2 (х, у) Початок Опусти хвостик Вперед на у Вправо на 90 Вперед на х Вліво на 90 Назад на у Підніми хвостик Кінець
Фігура2 (20, ЗО) Вправо на 90 Вперед на 20 Вліво на 90 Фігура2 (ЗО, 40)

в) Проц ФігураЗ (х) Початок Опусти хвостик Вперед на х Вліво на 120 Вперед на х Підніми хвостик Кінець
Вправо на 90 ФігураЗ (20) Назад на 20 Вправо на 120 Вперед на 10 ФігураЗ (30) Назад на 30 Вправо на 120 Вперед на 20 ФігураЗ (40)


Ломаковська Г.В., Колесніков С.Я., Ривкінд Й.Я. Інформатика 5 клас

Вислано читачаму з інтернет-сайту



1236084776 kr.jpg акселеративні методи на уроці                        1236084776 kr.jpg національні особливості
1236084776 kr.jpg виділити головне в уроці - опорний каркас            1236084776 kr.jpg нічого собі уроки
1236084776 kr.jpg відеокліпи                                           1236084776 kr.jpg нова система освіти
1236084776 kr.jpg вправи на пошук інформації                           1236084776 kr.jpg підручники основні допоміжні
1236084776 kr.jpg гумор, притчі, приколи, приказки, цитати             1236084776 kr.jpg презентація уроку
1236084776 kr.jpg додаткові доповнення                                 1236084776 kr.jpg реферати
1236084776 kr.jpg домашнє завдання                                     1236084776 kr.jpg речовки та вікторизми
1236084776 kr.jpg задачі та вправи (рішення та відповіді)              1236084776 kr.jpg риторичні питання від учнів
1236084776 kr.jpg закриті вправи (тільки для використання вчителями)   1236084776 kr.jpg рівень складності звичайний І
1236084776 kr.jpg знайди інформацію сам                                1236084776 kr.jpg рівень складності високий ІІ 

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