Програмування. Цикли з параметром

Програмування. Цикли з параметром

Особливе місце в Turbo Pascal займають цикли. Їх починають вивчати відразу ж після відпрацювання навичок введення-виведення інформації на екран. Адже більшість завдань зводиться до того, що цикли з параметром та інші конструкції допомагають полегшити написання та функціонування певного блоку програми.

Різновиди циклів

Всього розрізняють три різновиди:


  • з параметром,
  • з передумовою,
  • з постумовою.

Цикли з параметром, інакше їх називають For... to … do або For... downto …. do, багато разів повторюють певну послідовність дій. В принципі, й інші різновиди використовуються з цією ж метою, тільки в for-циклі заздалегідь відома кількість кроків.

У двох інших конструкціях (While і Repeat) кількість ітерацій спочатку невідома. Тому при вивченні завдання вже необхідно розуміти, який цикл буде використаний.

Основні визначення теми

Цикли з параметрами - багато разів повторювані ітерації. Лічильник - основний показник, за допомогою якого виконується задана конструкція. Межі проміжку показують, в яких межах будуть виконуватися ті чи інші ітерації. До речі, абсолютно не обов 'язково, щоб початкове значення дорівнювало 1. Користувач самостійно задає обидві межі проміжку. Тіло циклу - набір команд, для яких вже визначено кількість повторень.

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

For … to … do: алгоритм роботи, синтаксис

Як вже було сказано, цикли з параметром використовуються в завданнях, в яких вказано "проміжок", в якому належить працювати. Так, це може бути масив чисел, днів тижня, рядків вірша тощо.

Виділяють 2 види конструкції: на збільшення лічильника і на його зменшення. Перша конструкція буде прописана наступним чином:


for ісх.перемінна:= межа 1 to межа 2 do

begin

тіло циклу;

end;

Тут: змінна оголошується користувачем на початку програми або блоку; межа 1 і межа 2 - початкове і кінцеве значення проміжку; в тілі циклу прописується ряд дій, які повинні виконуватися програмою. Необхідно пам 'ятати, що якщо тіло циклу містить всього 1 команду, тоді операторні дужки begin... end можна опустити. У такому варіанті конструкції лічильник, а саме < ісх.перемінна >, буде збільшуватися з кроком, рівним 1.

for ісх.перемінна:= межа 1 downto межа 2 do

begin


тіло циклу;

end;

Тут же х. змінна буде зменшуватися з кроком, рівним 1.

Схема роботи циклу з параметром For... to … do виглядатиме так:

  • Вказує значення верхньої межі проміжку, тобто межу 2.
  • Ісх.перемінною присвоюється значення параметра межа 1.
  • Проходить перевірка умови: іх.перемінний кордон 2.
  • При отриманні результату True (Істина) виконується тіло циклу.
  • Лічильник збільшується на крок, рівний 1.

Основні вимоги до циклу з параметром

Цикли з параметрами потребують певних умов.


  • Лічильник і межі проміжку (тобто ісх.перемінна, межа 1 і межа 2) повинні належати одному типу даних. Якщо існує лише сумісність між початковим та кінцевим значеннями відрізка та вихідною змінною, програма може повести себе неправильно, оскільки межі будуть перетворені за типом даних вихідного параметра.
  • Тип даних, якому слід належати значення параметрів, повинен бути цілочисельним. Вкрай не рекомендується використовувати речовий тип.
  • Змінювати значення параметра ісх.перемінний в тілі циклу примусово небажано. Інакше користувач насилу зможе відстежити можливі помилки.
  • На відміну від інших видів циклів, у For... to … do або For... downto … do крок не може змінюватися на параметр, відмінний від 1.

Turbo Pascal: як вийти з циклу

Нерідко зустрічаються завдання, в яких відбувається зациклювання, тобто перевірена умова завжди істинна. Процедура Break допомагає вийти з циклів з передумовою, постумовою, параметром. Тобто їхня робота припиняється достроково.

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

Процедура Exit необхідна для того, щоб завершити роботу того чи іншого блоку в програмному коді. Її викликають всередині процедури (функції) і в той же момент, виконання цього "шматка" негайно припиняється. Якщо ж Exit знаходиться в основному блоці програми, тоді вона завершує свою роботу.

Процедура Halt зводить принцип функціонування до такого: повністю закінчується робота програми.

Приклади завдань з розв "язанням

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


Завдання 1

Дано почесний масив натуральних чисел у діапазоні [0.. 199], вибраних випадково. Знайти кількість всіх двозначних чисел, сума цифр яких кратна 2.

Алгоритм дій:

  1. Створити згубний масив.
  2. Перевірити кожне число на відповідність умовам:

a) якщо 9 < Х < 100, то розділити його націло на 10 за допомогою div;

b) виділити другу цифру числа за допомогою поділу через mod;


c) скласти виділені цифри;

d) поділити за допомогою mod задану суму на 2;

e) якщо результат дорівнює 0, то лічильник збільшується на 1.

Завдання 2

Дано одномірний масив цілочисельних елементів. Знайти кількість додатних чисел.

Алгоритм дій:

  1. Створює масив цілочисельних елементів, створених за допомогою randomize.
  2. У цикл з параметром вкласти умовний оператор IF, який перевірятиме вказаний елемент на відповідність умові: Х > 0.
  3. Якщо умова виконується, то лічильник збільшується на 1.
  4. Після циклу слід вивести на екран отримане значення лічильника.

Дані, вказані у дужках {}, є коментарями. У рядку 11 можна вивести масив на екран двома способами: залишити пробіл між числами або відвести під кожен елемент певну кількість комірок (в даному випадку їх 5).

У рядку 12 змінну counter можна збільшити також двома способами: або до попереднього значення додати 1, або скористатися стандартною функцією Inc.

Завдання 3

Дана квадратна матриця. Знайти кількість позитивних елементів, що знаходяться на головній діагоналі.

Пояснення:

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

Алгоритм дій:

  1. Створити квадратну матрицю.
  2. Присвоїти змінній, відповідальній за підрахунок додатних елементів, значення "0".
  3. Скласти цикл зі створення квадратної матриці.
  4. Організувати цикл з перевірки умови: якщо число на головній діагоналі > 0, тоді лічильник збільшується на 1.
  5. Після закінчення дії циклу на екран вивести значення змінної, що зберігає кількість додатних елементів.

Протистояння двох мов програмування: Turbo Pascal

Зазвичай, програміст, який поважає себе, знає кілька мов. Наприклад, це можуть бути С++, Turbo Pascal, Delphi, Java тощо. Протистояння двох з них було яскраво виражено ще в 80-ті рр. (С і турбо паскаль). Наприкінці ХХ століття така ж боротьба спостерігалася між Сі++ і Java.

У віртуальному просторі серед трьох десятків мов програмування можна виділити три найяскравіші пари, протистояння яких вражало найбільші уми кіберпростору: алгол-60 і фортран, Pascal і C, Java і С++. Звичайно, ці відчуття суб 'єктивні, але в той чи інший період один з пари був лідером. Це пояснювалося вимогами промисловості і необхідності в тому чи іншому програмному продукті. У 70-х рр. "керував світом" фортран, у 80-х - Turbo Pascal, у 90-х - С++. Звичайно, жоден з них не "помер". Швидше, вони перетворювалися на вдосконалені програмні продукти.

Під час вивчення мов програмування можна помітити, що в деяких темах синтаксис схожий. Так, цикли з параметром в C аналогічні подібним конструкціям в Pascal, за винятком деяких моментів.

Цікаво, що розробники Turbo Pascal (Старий Світ) користувалися результатами напрацювань американських вчених, в той час як в Новому Світі активно застосовували підсумки досліджень європейських фахівців. У Європі розробники ратують більшою мірою за чистоту і компактність мов програмування, а американські уми схиляються більше до використання новомодних віянь у написанні коду.