Версия 16:54, 28 июля 2009
ПРОЦЕДУРИ З АРГУМЕНТАМИ
1. Що таке процедура? Які правила її запису в алгоритмі? 2. Як виконується алгоритм з процедурами? 3. У чому полягає суть процедурного методу створення алгоритму?
Процедури з одним аргументом У попередньому пункті ви дізналися, як за допомогою процедур спростити запис алгоритму у випадках, коли малюнок містить рівні між собою об'єкти, але вони розташовані на різних відстанях один від одного.
Підемо ще далі. Розглянемо малюнок, на якому є схожі об'єкти, але нерівні між собою. А саме, три нерівні рівносторонні трикутники, які ще й знаходяться на різних відстанях один від одного.
Очевидно, що для малювання кожного з цих трикутників потрю-но скласти окрему процедуру. Але це, знову ж таки, не раціонально. Тим більше, що таких нерівних рівносторонніх трикутників на малюнку може бути не три, а значно більше.
Спробуємо скласти одну процедуру, за допомогою якої Черепашка могла б намалювати рівносторопній трикутник з будь-якою довжиною сторони. Проаналізуємо, чим відрізняються процедури для малювання першого та другого трикутника:
Проц РівнТр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. Складіть алгоритми для Черепашки, використовуючи процедури з аргументами:
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)
акселеративні методи на уроці національні особливості
виділити головне в уроці - опорний каркас нічого собі уроки
відеокліпи нова система освіти
вправи на пошук інформації підручники основні допоміжні
гумор, притчі, приколи, приказки, цитати презентація уроку
додаткові доповнення реферати
домашнє завдання речовки та вікторизми
задачі та вправи (рішення та відповіді) риторичні питання від учнів
закриті вправи (тільки для використання вчителями) рівень складності звичайний І
знайди інформацію сам рівень складності високий ІІ
ідеальні уроки рівень складності олімпійський III
ілюстрації, графіки, таблиці самоперевірка
інтерактивні технології система оцінювання
календарний план на рік скласти пазл з різних частин інформації
кейси та практикуми словник термінів
комікси статті
коментарі та обговорення тематичні свята
конспект уроку тести
методичні рекомендації шпаргалка
навчальні програми що ще не відомо, не відкрито вченими
|