KNOWLEDGE HYPERMARKET


Тема 37. Команди розгалуження та присвоювання

Гіпермаркет Знань>>Інформатика>>Інформатика 7 клас>>Інформатика: Команди розгалуження та присвоювання

Команди розгалуження та присвоювання


1. Наведіть приклади ситуацій, у яких виконуються різні дії в залежності від результату перевірки певної умови.
2. З яких команд складається і як виконується розгалуження в алгоритмі?
3. Чим відрізняється лінійна частина алгоритму від розгалуження?
4. Наведіть приклади розгалужень, з якими ви зустрічалися при вивченні шкільних предметів.
5. Якщо  в алгоритмі використовується  процедура
Малюнок (х, у), то що відбувається по команді Малюнок (3, 4)?

Команди розгалуження


Восьминіжка стоїть перед коридором відомої довжини. У верхній стіні цього коридору в невідомих місцях є одноклітинні виступи. Потрібно зафарбувати клітинки в цих виступах.
Очевидно, Восьминіжка має йти по коридору і перевіряти, чи є зверху перешкода. Якщо перешкоди немає, то зайти у виступ, зафарбувати клітинку, повернутися назад у коридор і рухатися далі. Якщо перешкода є, то просто рухатися далі по коридору.
Отже, маємо ситуацію, коли Восьминіжка має виконати різні дії в залежності від результату перевірки умови. Тобто маємо знайоме нам розгалуження в алгоритмі.
Восьминіжка може виконувати таку команду розгалуження:
Якщо <умова>
< Послідовність команд 1 > Інакше
<Послідовність команд 2> Все
Блок-схемою цю команду можна зобразити так:
 Блок-схемою цю команду можна зобразити так:


Нагадаємо, що виконується ця команда розгалуження таким чином: виконується команда перевірки умови; якщо результат виконання цієї команди Так, то виконується <Послідовність команд 1>, а <Послідовність команд 2> не виконується; якщо ж результат виконання команди перевірки умови Ні, то виконується <Послідовність команд 2>, а <Послідовність команд 1> не виконується. Система команд виконавця Восьминіжка містить такі команди перевірки умови:
 

Восьминіжка містить такі команди перевірки умови:

Крім зазначених команд перевірки умови з системи команд виконавця Восьминіжка, умовами можуть бути звичайні рівності або нерівності. Наприклад, 15 > 7, 5 <0, а >3.
Алгоритм розв'язування поставленої задачі буде такий: Вправо
Повтори 10 разів Якщо Зверху ВІЛЬНО Вгору Зафарбуй Вниз Вправо Інакше
Вправо Все Все

Звертаємо увагу на те, що й у випадку, коли результат перевірки умови Зверху вільні   - Так, і в протилежному випадку повинна виконати команду Вправо. У таких випадках цю команду можна вилучити з команди розгалуження і поставити її після неї. Але тоді після слова Інакше взагалі команди відсутні. Для таких випадків використовується інший вид команди розгалуження:
Якщо <умова>
<Послідовність команд> Все
Блок-схемою цю форму команди розгалуження можна зобразити так:
 Блок-схемою цю форму команди розгалуження можна зобразити так:


Виконується ця команда розгалуження так: виконується команда перевір умови; якщо результат виконання цієї команди , то виконуєть <Послідовність команд ; якщо ж результат виконання команди перевірки умо Ні, то одразу виконується наступна команда алгоритму.
З використанням такої команди розгалуження алгоритм для розв'язування п передньої задачі буде такий: Вправо
Повтори 10 разів Якщо Зверху вільно Вгору Зафарбуй Вниз Все Вправо Все
Перша з розглянутих форм команди розгалуження називається повною, а друга— неповною.

Команда присвоювання

Раніше ви складали алгоритми для різних виконавців, виконуючи які, вони створювали рисунки, саджали дерева, переходили з однієї позиції до іншої. Тепер настав час розглянути алгоритми, у ході виконання яких виконуються певні обчислення.
Нехай Восьминіжка знаходиться перед горизонтальним коридором заданої довжини, деякі клітинки якого зафарбовані. Потрібно підрахувати кількість зафарбованих клітинок.
Очевидно, повинна, виконуючикоманди циклу, йти по коридору і кожну клітинку перевіряти на зафарбованість. Якщо їй зустрінеться зафарбована і клітинка, потрібно збільшити кількість зафарбованих клітинок на 1.
Для підрахунку кількості зафарбованих клітинок використаємо змінну з іменем кількість. Перед початком руху Восьминіжки по коридору присвоїмо Ннадамо) цій змінній значення 0. Це абсолютно логічно, адже Восьминіжка поки що не знайшла в коридорі жодної зафарбованої клітинки. Це можна зробити ко-I пандою: кількість := 0.
Зі змінними ви вже зустрічалися і в 6-му, і в 7-му класах, коли використовували процедури з аргументами. Ці змінні набували своїх значень при кожному виклику такої процедури, і ці значення вказувалися саме в команді виклику.
Взагалі, для того щоб змінній присвоїти (надати) певне значення, використовується спеціальна команда - команда присвоювання. її загальний вигляд такий:
<ім'я змінної> := <число, ім'я змінної або арифметичний вираз>. Знак ":=" називається знаком присвоювання.
Наведемо приклади таких команд:
X := 45;     а :=-496;     ЧИСЛО := а;     у := X;     X := 4 * 5  + 22;
сума := 2 * с + а;    КІЛЬКІСТЬ := 4;    кількість := кількість + 2.
Звертаємо увагу на те, що ім'я змінної може містити літери латинського та українського алфавітів, а також цифри. Але цифра не може бути першим символом імені.
Звертаємо увагу на те, що дія множення, на відміну від математики, позначається значком *, а дія ділення - значком /.
Якщо в правій частині команди присвоювання стоїть число, то в результаті її виконання значення змінної, ім'я якої вказано в лівій частині команди, дорівнюватиме цьому числу. Наприклад, після виконання команди а := -496 змінна а матиме значення - 496.
Якщо в правій частині команди присвоювання стоїть ім'я змінної, то в результаті її виконання змінна, ім'я якої вказано в лівій частині команди, одержує зна-
чення змінної, ім'я якої стоїть у правій частині команди. Наприклад, після виконання команди y:=х змінна матиме значення, що дорівнює значенню змінної на момент виконання цієї команди. Зазначимо, що після виконання цієї команди значення змінної   не змінюється.
Якщо в правій частині команди присвоювання стоїть арифметичний вираз, то спочатку обчислюється значення цього виразу, а потім змінна, ім'я якої вказано в лівій частині команди, одержує значення, що дорівнює обчисленому. Наприклад, після виконання команди х:= 4*5+22 змінна х буде мати значення 42. А при виконанні команди х:= 2*с+а комп'ютер помножить поточне значення змінної с на 2, до результату додасть поточне значення змінної , після чого одержане значення присвоїть змінній х. Так, якщо на момент виконання цієї команди с = 25 і а =55, то після її виконання змінна  х матиме значення 105.
Якщо в результаті виконання команди присвоювання деяка змінна набула певного значення, то вона зберігає його при подальшому виконанні програми до того часу, поки в програмі не виконається інша команда присвоювання, у лівій частині якої буде вказано ім'я цієї змінної.
Звернемо особливу увагу на такі приклади команди присвоювання:
кількість := 4; кількість :=+2 . У першій з них змінна кількість одержує значення 4  , а в другій до цього значення додається 2, у результаті чого змінна одержує нове значення   6. Іншими словами, виконання команди кількість:= кількість+2 збільшує значення змінної кількість на 2. Аналогічно, виконання команди с:= с-1 зменшує значення змінної   на 1, а команда і := і * 4 множить поточне значення змінної і на 4.
Зважаючи на вищесказане, алгоритм для розв'язування поставленої задачі виглядатиме так:
Вправо
кількість := 0
Повтори 9 разів
Якщо Зафарбовано
КІЛЬКІСТЬ := КІЛЬКІСТЬ + 1
Все
Вправо
Все

Повідомлення ("Кількість зафарбованих клітинок у коридорі:"( кількість)
Звертаємо увагу на те, що останній алгоритм містить нову команду - команду виведення повідомлення. За цією командою відкриваєть спеціальне вікно, у якому й виводиться повідомлення. Текст, як узято в лапки, виводиться повністю, як він і записаний у самій ком ді. Потім після коми вказано ім'я змінної, значення якої потріб вивести.

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

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


Плани уроків з інформатики, конспекти, підручники онлайн, електронні видання безкоштовно, реферати


Зміст уроку
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 обговорення


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

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