Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
6
Добавлен:
04.03.2016
Размер:
747.62 Кб
Скачать

15. Величини в циклі

Поглянь на малюнки:

Усі вони складаються з квадратиків. Квадратиків багато. Тому доцільно скористатися процедурою. А оскільки сторона квадратика змінюється, то це буде процедура з величиною. Тобто програма для створення малюнку 35а могла б мати такий вигляд:

TO KV :a

REPEAT 4

[ FORWARD 4

RIGHT 90 ]

END

:b=10

KV :b

:b=20

KV :b

:b=30

KV :b

:b=40

KV :b

:b=50

KV :b

:b=60

KV :b

Напевно, ти помітив, що в основній частині програми 6 разів повторюється пара команд Черепашці:

1)поклади певне число в шухлядку з іменем b;

2)зазирни в шухлядку та намалюй квадратик з такою стороною.

На мал. 35а та 35б сторони квадратиків збільшуються кожного разу на 10 кроків, а на мал. 35в – на 20.

Тому змінювати величину bможна в циклі командою :b=:b+10. За цією командою Черепашка повинна зазирнути в шухлядку з іменем b, збільшити її вміст на 10 і покласти нове значення у цю ж шухлядку.

Отже, використовуючи цикл, матимемо такий запис основної частини програми:

:b=10

REPEAT 6

[ KV :b

:b=:b+10 ]

Уяви себе на деякий час Черепашкою і виконай у зошиті цю програму, промовляючи собі вголос кожну команду:

-кладу в шухлядку з іменем b число 10;

-приступаю до виконання циклу:

-малюю квадратик із стороною 10;

-збільшую вміст шухлядки b на 10 (тепер у цій шухлядці лежить число 20);

-приступаю до другого проходу циклу:

-малюю квадратик із стороною 20;

-збільшую вміст шухлядки b на 10 (тепер у цій шухлядці лежить число 30);

………………………………….

-останній раз проходжу цикл:

-малюю квадратик із стороною 60;

-збільшую вміст шухлядки b на 10 (у шухлядці b – число 70).

Зверни увагу на те, що завжди перед роботою з будь-якою шухлядкою до неї необхідно покласти певне число. Без цього програма працювати не буде і на екрані з’явиться повідомлення про помилку!

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

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

Цього не можна сказати про малюнок 35б. Доведеться виходити з цієї ситуації через зміну основної частини програми, яка може мати, наприклад, такий вигляд:

:B=10

REPEAT 5

[ KV :B

RIGHT 90

FORWARD :B

LEFT 90

:B=:B+10 ]

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

:C=1

:B=10

REPEAT 3

[ COLOR :C

DRAW

KV :B

NODRAW

BACK 10

LEFT 90

FORWARD 10

RIGHT 90

:C=:C+1

:B=:B+20 ]

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

Повернемося до малюнка 35. Чи можна застосувати цикл у циклі для створення малюнка 35г?

Для кожного конкретного малюнка тобі треба буде щойно вирішувати: чи можливе для його створення використання.

А чи доцільніше воно у цьому випадку?

Питання та завдання

1.Виконай у зошиті наступну програму, використовуючи процедуру KV:a:

:B=10

:C=1

REPEAT 8

[ COLOR :C

KV :B

RIGHT45

:B=:B+10

:C=:C+1 ]

2.Склади програми для створення наступних малюнків:

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

3.Створи програми для малювання кольорових спіралей:

4.Пригадай, як ми створювали кругові циклічні орнаменти та коло (п. 8,0)

Соседние файлы в папке 19 і 20 вибирай головне