KNOWLEDGE HYPERMARKET


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

Гіпермаркет Знань>>Інформатика>>Інформатика 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 клас

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


Плани уроків з інформатики. Книги, підручники, конспект на допомогу вчителю та учням.

Зміст уроку
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 ідеальні уроки 
1236084776 kr.jpg календарний план на рік 
1236084776 kr.jpg методичні рекомендації 
1236084776 kr.jpg програми
1236084776 kr.jpg обговорення

 
Если у вас есть исправления или предложения к данному уроку, напишите нам.

Если вы хотите увидеть другие корректировки и пожелания к урокам, смотрите здесь - Образовательный форум.