Turbo Pascal хоч і не є всесвітньо улюбленим додатком для програмування, але творці, які роблять перші кроки в написанні ПО, починають знайомство саме з цим середовищем. Вона дає поняття про розгалуженнях, операторах, функціях і процедурах, а також багатьох інших речах. Наприклад, при вивченні програміст зіткнеться з циклами в Turbo Pascal: While, For і Repeat.
![Turbo pascal (Наступним чином виглядає) Turbo pascal](https://images-on-off.com/images/129-130/turbopascal-334417c5.jpg)
Поняття циклу і його різновиди
Циклом називають багаторазово повторювані дії. В даному середовищі використовуються:
- з параметром (For ... to ... do);
- з передумовою (While ... do);
- з умовою поста (Repeat ... until).
Перший вид використовується, коли заздалегідь відомо, скільки кроків у вирішенні завдання. Однак існує ряд завдань, коли немає інформації про те, скільки разів будуть повторюватися ті чи інші дії. В такому випадку в Pascal While цикл стає незамінним, як, в принципі, і Repeat.
структура циклу
В чому полягає суть роботи в Pascal While, For і Repeat циклів? У таких конструкцій виділяють заголовок і тіло. У першій складової вказуються змінні, які будуть «працювати», задаються умови на перевірку істинності, період, до якого тіло буде виконуватися. У другій складовій прописуються вираження, які повинні використовуватися в разі виконання умови, т. Е. True, а не False.
Коли ітерація виконується на останньому рядку коду, тоді вона повертається до заголовка, де перевіряється умова. У разі істини операції повторюються, а в разі невиконання умови, програма «виходить» з циклу і виконує подальші операції.
Наступним чином виглядає цикл While. Pascal ABC і подібні програми вимагають написання такого коду:
У разі якщо в тілі циклу буде виконуватися 1 оператор (1 дію), тоді «дужки» begin ... end можна опустити.
Блок-схема циклу
В Turbo Pascal While має такі особливості:
- всередині конструкції можна використовувати складні умови;
- після слова do не повинно бути крапки з комою (це вважається помилкою в Turbo Pascal і Pascal ABC);
- змінна, константа або вираз, що служить при отриманні відповіді False виходом їх підпрограми, повинні бути обов'язково логічного типу, т. е. Boolean.
Наступним чином виглядає блок-схема даного різновиду циклу. Вона показує черговість виконання дій.
![Turbo pascal (turbo) Turbo pascal](https://images-on-off.com/images/129-130/turbopascal-e9859ede.jpg)
Алгоритм роботи циклу
У найпростіших середовищах програмування, в т. Ч. І в Pascal ABC, While цикл діє за наступним принципом:
- задані ітерації, т. е. повторення, будуть проходити стільки раз, поки умова буде істинним (True);
- як тільки умова не виконується і дає відповідь False (або інакше «Брехня»), оператор виходить з циклу;
- як тільки це сталося, програма «пішла» в конструкції, що стоять після циклу.
Це є істотною відмінністю While від Repeat, т. Е. Циклу з передумовою від постумови.
Дуже важливо передбачити в тілі циклу кінцеве зміна заданої змінної в заголовку While. У будь-якому випадку повинна коли-небудь наступити ситуація, що дає значення False. Інакше станеться зациклення, і тоді доведеться скористатися додатковими заходами для виходу з компілятора. Такі помилки вважаються грубими і непрощенними.
Як вийти з програми під час зациклення?
Найчастіше відбувається ситуація, коли оператор While Pascal видає зациклення в написаному програмному коді. Що це означає? Ітерація повторюється нескінченне число разів, оскільки умова завжди істинно. Наприклад, ось фрагмент програми:
В такому випадку, щоб перервати виконання завдання, досить натиснути CTRL + F2.
Є ще 2 способи контролювати подібна поведінка програми. Наприклад, якщо вписати в код Continue, яке передасть управління на початок циклової конструкції (тут умова виходу з циклу контролюється, т. Е виконання поточної ітерації буде перервано). Тоді управління передається в циклі While в попередню перевірку.
Оператор Break здатний перервати виконання всього циклу і передати управління наступній ітерації. Тут вихід з конструкції контролюватися не буде. На зображенні показані приклади використання даних операторів.
![Turbo pascal (Наступним чином виглядає) Turbo pascal](https://images-on-off.com/images/129-130/turbopascal-c8ad2e59.jpg)
Вирішення задач
Розглянемо в дії цикл While. Pascal завдання пропонує вирішити найрізноманітніші. Зупинимося поки на найпростіших, щоб зрозуміти принцип роботи. Вирішені завдання в програмі Pascal ABC. Але будуть представлені і зображення класичної середовища Turbo Pascal для порівняння.
Завдання 1: дана функція Y = 5-X ^ 2/2. Скласти таблицю значень з кроком sh = 0,5 на проміжку [-5; 5].
- задати для змінної Х початкове значення рівне -5 (т. е. початок проміжку);
- обчислювати значення Y, поки змінна x не досягне кінця зазначеного відрізка;
- вивести на екран значення функції і абсциси (Х);
- збільшити Х на заданий крок.
Ось так виглядає код в програмі Pascal ABC.
![Turbo pascal (Наступним чином виглядає) Turbo pascal](https://images-on-off.com/images/129-130/turbopascal-5e692863.jpg)
Як виглядає код в програмі Turbo Pascal. Зображення нижче наочно показує це.
![Turbo pascal (turbo) Turbo pascal](https://images-on-off.com/images/129-130/turbopascal-613b3bfe.jpg)
Завдання 2: дан масив А, що складається з цілих позитивних і негативних чисел. У ньому міститься 10 елементів. Необхідно сформувати матрицю В, в якій будуть відображені позитивні елементи масиву А, що мають парний індекс. Відобразити на екрані суму квадратів в числі з нової матриці.
- Необхідно написати підпрограму, яка буде «працювати» тільки з елементами масиву А, що мають парний індекс. У циклі значення змінної, що відповідає за парність індексу, буде збільшуватися на 2.
- Якщо число з парною індексом з матриці А відповідає умові х> 0, тоді лічильник елементів масиву збільшується на 1. Нинішнє значення змінної-лічильника буде індексом копійованого числа в масиві В.
- Спочатку змінної summa, що відповідає за знаходження суми квадратів позитивних чисел, присвоюється 0. Потім буде виконуватися операція: до попередньої суми додається нове значення квадрата.
- Не варто лякатися, якщо не всі позитивні числа перейшли з однієї матриці в іншу. Потрібно бути уважними. Багато починаючі програмісти в паніці переписують код. Слід ретельно вивчити умова: позитивні числа, що знаходяться на парних «місцях», т. Е. Мають індекси, кратні 2.
![Turbo pascal (pascal) Turbo pascal](https://images-on-off.com/images/129-130/turbopascal-bbc26d36.jpg)
Ручне трасування необхідна для того, щоб переконатися у вірності обчислень. Часом за допомогою цього методу можна виявити помилки, які не попадаються на очі при звичайній перевірці написаного коду.
![Turbo pascal (pascal) Turbo pascal](https://images-on-off.com/images/129-130/turbopascal-cb79e109.jpg)
Якщо провести ручні розрахунки, то можна переконатися, що програма правильно працює. Це, в свою чергу, говорить про те, що алгоритм створення коду вірний, послідовність дій призводить до логічного кінця.
![Turbo pascal (Наступним чином виглядає) Turbo pascal](https://images-on-off.com/images/129-130/turbopascal-ded3a2f9.jpg)