Новости
У попередніх уроках ми розглянули найбільш простий, лінійний тип алгоритмів. Нагадаю, що всього існує три типи: лінійні, розгалужуються і циклічні (алгоритми з повтореннями). У цьому уроці я розповім вам про другий тип алгоритмів - про алгоритми з ветвлениями.
розгалуження
Розгалуження - це команда алгоритму, в якій робиться вибір, виконувати чи не виконувати якусь групу команд в залежності від умов.
Розгалуження використовується в двох випадках:
- Там, де необхідно пропустити певну команду або групу команд.
- Коли потрібно записати вибір тих чи інших дій в залежності від умови.
У блок-схемі умова розгалуження зображується в ромбі, з якого обов'язково виходять ДВІ стрілки - перша (стрілка «Так») вказує на команди, які будуть виконуватися в разі, якщо умова задовольняється; друга (стрілка «Ні») - на команди, які будуть виконані, якщо умова не дотримана. Навіть якщо команда, на яку вказує одна з стрілок (Найчастіше «Ні») відсутня, стрілка все одно має місце бути.
Алгоритм з розгалуженням, представлений у вигляді блок-схеми.
У словесній формулюванні запис розгалуження виглядає так:
ЯКЩО <умова вибору> ТО <команди, що виконуються при дотриманні умови> ІНАКШЕ <команди, що виконуються при недотриманні умови>
Реалізація розгалуження в Паскаль.
Як же реалізувати розгалуження в Паскаль? Простіше, ніж ви думаєте:
if <умова вибору> then <команди, що виконуються при дотриманні умови> else <команди, що виконуються при недотриманні умови>
Запам'ятайте! Перед else ніколи не ставлять крапку з комою!
Давайте поговоримо про умови вибору. Зрозуміло, що це логічне вираз . Якщо воно є правдою, то виконується головна гілка, якщо брехня, то бічна гілка.
Завдання з блоку if.
Розглянемо кілька завдань зі збірки М.Е.Абрамяна «1000 завдань по програмуванню».
If1. Дано ціле число. Якщо воно є позитивним, то додати до нього 1; в іншому разі не змінювати його. Вивести отримане число.
У даній програмі навіть не треба реалізовувати бічну гілку.
program if1; var a: integer; begin read (a); if a> 0 then Inc (a); write (a); end.
If2. Дано ціле число. Якщо воно є позитивним, то додати до нього 1; в іншому випадку відняти від нього 2. Вивести отримане число.
program if2; var a: integer; begin read (a); if a> 0 then Inc (a) else a - = 2; write (a); end.
If3. Дано ціле число. Якщо воно є позитивним, то додати до нього 1; якщо негативним, то відняти від нього 2; якщо нульовим, то замінити його на 10. Вивести отримане число.
Для того щоб вирішити цю задачу ми повинні використовувати вкладений if.
Ми працюємо в PascalABC.NET. Тільки в цій СР є можливість написати а - = 2. program if3; var a: integer; begin read (a); if a> = 0 then if a = 0 then a: = 10 else Inc (a) {перед else немає крапки з комою.} else a - = 2; write (a); end.
If5. Дано три цілих числа. Знайти кількість позитивних і кількість негативних чисел в початковому наборі.
Довжелезна блок-схема. 🙂 program if5; var a, b, c, plus, minus: integer; begin write ( 'Введіть три цілих числа:'); read (a, b, c); plus: = 0; minus: = 0; if a> 0 then Inc (plus) else Inc (minus); if b> 0 then Inc (plus) else Inc (minus); if c> 0 then Inc (plus) else Inc (minus); writeln ( 'Кількість позитивних чисел -', plus); writeln ( 'Кількість негативних чисел -', minus); end.
If30. Дано ціле число, яке лежить в діапазоні 1-999. Вивести його рядок-опис виду «парне двозначне число», «непарне тризначне число» і т. Д.
program if30; var a: integer; begin write ( 'Введіть число:'); read (a); if Odd (a) then write ( 'Непарне') else write ( 'Парне'); if a> = 100 then write ( 'тризначне число') else if a <10 then write ( 'однозначне число') else write ( 'двозначним числом'); end.
От і все! Не забувайте клікати по кнопках і додавати наш сайт в закладки!
Як же реалізувати розгалуження в Паскаль?