- •1. Вступ
- •2. Основи мови програмування
- •§ 2.1 Вступ до мови програмування
- •§ 2.2 Алфавіт мови і структура програми
- •§ 2.3 Стандартні типи змінних
- •§ 2.4 Опис констант і змінних
- •§ 2.5 Організація вводу-виводу
- •§ 2.6 Вправи та завдання
- •3. Стандартні операції, процедури та функції
- •§ 3.1 Стандартні математичні операції мови
- •§ 3.2 Стандартні математичні функції
- •§ 3.3 Стандартні операції для роботи з символьною інформацією.
- •§ 3.4 Логічні операції
- •§ 3.5 Вправи та завдання
- •4. Графічна інформація та її обробка на мові Pascal.
- •§ 4.1 Організація відображення графічної інформації
- •§ 4.2 Вправи та завдання
- •5. Поняття розгалуження і вибору.
- •§ 5.1 Структура “якщо... То... Інакше...”
- •§ 5.2 Інструкція If... Then... Else...
- •§ 5.3 Інструкція Case
- •§ 5.4 Організація розгалужень в програмах
- •§ 5.5 Вправи та завдання
- •6. Організація циклів
- •§ 6.1 Цикл з параметром
- •§ 6.2 Цикл з передумовою
- •§ 6.3 Цикл з післяумовою
- •§ 6.4 Який з циклів використовувати?
- •§ 6.5 Приклади використання циклів при розв’язуванні конкретних задач.
- •§ 6.6 Вправи та завдання
- •7. Поняття про процедури та функції
- •§ 7.1 Чи потрібні процедури і функції
- •§ 7.2 Процедури
- •§ 7.3 Функції
- •§ 7.4 Вправи та завдання
- •8. Масиви § 8.1 Поняття масиву
- •§ 8.2 Пошук найбільшого або найменшого елементу масиву
- •§ 8.3 Сортування елементів масиву
- •§ 8.4 Приклади розв’язання задач з використанням масивів
- •§ 8.5 Вправи та завдання
- •9. Робота з літерними та символьними величинами
- •§ 9.1 Основні операції для роботи з літерними величинами
- •§ 9.2 Приклади розв’язування задач з використанням основних операцій для роботи з літерними величинами
- •§ 9.2 Лексикографічний метод генерації перестановок
- •§ 9.4 Вправи та завдання
- •10. Двомірні масиви
- •§ 10.1 Приклади використання двомірних масивів
- •§ 10.2 Вправи та завдання
- •11. Множини, записи, файли § 11.1 Множини
- •§ 11.2 Записи
- •§ 11.3 Файли
- •§ 11.4 Вправи та завдання
- •Побажання тим, хто відчув себе програмістом
- •Додатки Словник деяких зарезервованих слів та основних операцій мови
- •Основні команди оболонки програмування Turbo Pascal 5.5
- •Список рекомендованої літератури
§ 4.2 Вправи та завдання
50 Самостійно придумайте малюнок, виконайте його спочатку на аркуші паперу, а потім намалюйте на екрані ПЕОМ, використовуючи графічні оператори (не забувайте, що початок координат – у верхньому лівому куті екрану!).
5. Поняття розгалуження і вибору.
До даного часу у всіх розглядуваних нами прикладах та задачах всі дії виконувались строго одна за одною, але в реальному житті такі випадки бувають не досить часто. Згадайте, як в дитячій казці братику–Іванку говорила сестриця–Оленка “Не пий з калюжі водиці – козликом станеш!” Тобто, Іванко був поставлений перед можливістю вибору: пити або не пити водичку і необхідністю його здійснити: або послухатись сестричку і не пити водичку, або ж вгамувати спрагу і стати козликом. Ви всі знаєте який вибір здійснив Іванко, але головне, що нам хотілося б підкреслити у наведеному прикладі, це те, що у нашому повсякденному житті з необхідністю здійснювати вибір ми зустрічаємось майже кожної миті, навіть не усвідомлюючи цього. І якщо людина буде робити свій вибір завжди підсвідомо, то вона може наробити такого, що навіть в самій страшній казці не описати. Людина саме тому і є людиною, що вона повинна замислюватись і замислюється над тим, що ж і як їй потрібно зробити, щоб досягнути певного результату, як тимчасового – при вирішені конкретного завдання так і більш довготривалого – ким стати, що робити, на кого бути схожим і т.д.
Відповідно до цього і при розв’язуванні задач з допомогою ПЕОМ може постати необхідність здійснити вибір. Якщо у нас є дві можливості для подальших дій, то кажуть, що має місце розгалуження, а якщо багато можливостей на даному етапі – то має місце вибір.
Наведемо приклад: нехай нам потрібно скласти програму для розв’язання наступної задачі.
Задача 51 Знайти корені квадратного рівняння ax2 + bx + c = 0.
Розв’язання: Опишемо розв’язок математично. Спочатку знаходимо дискримінант квадратного рівняння: . У нас D може набувати трьох значень: більше нуля, дорівнювати нулеві і бути меншим нуля. Якщо дискримінант D>0, то маємо два корені: і інакше, якщо D=0, то один корінь: інакше, якщо D<0, то коренів взагалі не існує. Кінцеву програмну реалізацію ми приведемо трохи пізніше.
§ 5.1 Структура “якщо... То... Інакше...”
Описана вище структура називається структурою розгалуження, або структурою “якщо... то... інакше...” і на алгоритмічній мові описується так:
...
якщо D > 0
то відповідь := “Два корені”
інакше якщо D = 0
то відповідь := “Один корінь”
інакше відповідь := “Коренів не існує”
все
все
...
Дана структура є однією з головних в довільній алгоритмічній мові, а до таких мов, як ви вже знаєте, і відноситься мова Pascal. Як її описувати на розглядуваній мові – трошки пізніше, а поки що пояснимо, як працює дана структура. А працює вона наступним чином: спочатку перевіряється умова, якщо вона виконуються, то виконання алгоритму йде по гілці то, а якщо не виконуються – то виконання йде по гілці інакше. Для кращого засвоєння даного дуже важливого поняття рекомендуємо вам самостійно розв’язати декілька квадратних рівнянь, користуючись даною схемою , а також декілька інших задач (див. задачі в кінці розділу).
Ми ж, використовуючи команди розгалуження, розв’яжемо наступну задачу.
Задача 52 Використовуючи команду розгалуження скласти алгоритм знаходження модуля числа.
Розв’язання : Згадаємо означення модуля числа з математики: модулем числа називається відстань від початку відліку до точки, яка зображує число. Тобто, модулем додатного числа і нуля є саме це число, а від’ємного – йому протилежне. Останнє твердження перефразуємо так: для знаходження модуля числа потрібно знайти протилежне число, а модуля додатного числа – взяти саме це число. З точки зору математичних перетворень у випадку додатного числа з цим числом не потрібно нічого робити, тому логічно записати розв’язок задачі у вигляді такого алгоритму:
алг модуль (дійсн а)
арг а
рез а
поч
якщо а < 0
то а := –a
все
кін
Як бачимо, ми ніби трохи удосконалили і спростили математичне означення, в результаті чого алгоритм має простий і зрозумілий вигляд.
Саме у знаходженні таких простих алгоритмів і полягає мистецтво програмування. Але, мабуть, вже час перейти до реалізації даної структури на мові програмування.