Гіпермаркет Знань>>Інформатика>>Інформатика 6 клас>>Інформатика: Процедури з аргументами
Процедури з аргументами
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)
Ломаковська Г.В., Колесніков С.Я., Ривкінд Й.Я.Інформатика 6 клас
Вислано читачаму з інтернет-сайту
Плани уроків з інформатики. Книги, підручники, конспект на допомогу вчителю та учням.
Зміст уроку
конспект уроку і опорний каркас
презентація уроку
акселеративні методи та інтерактивні технології
закриті вправи (тільки для використання вчителями)
оцінювання
Практика
задачі та вправи,самоперевірка
практикуми, лабораторні, кейси
рівень складності задач: звичайний, високий, олімпійський
домашнє завдання
Ілюстрації
ілюстрації: відеокліпи, аудіо, фотографії, графіки, таблиці, комікси, мультимедіа
реферати
фішки для допитливих
шпаргалки
гумор, притчі, приколи, приказки, кросворди, цитати
Доповнення
зовнішнє незалежне тестування (ЗНТ)
підручники основні і допоміжні
тематичні свята, девізи
статті
національні особливості
словник термінів
інше
Тільки для вчителів
ідеальні уроки
календарний план на рік
методичні рекомендації
програми
обговорення
Если у вас есть исправления или предложения к данному уроку, напишите нам.
Если вы хотите увидеть другие корректировки и пожелания к урокам, смотрите здесь - Образовательный форум.
|