Repeat-until, робота з pascal, статті, програмування - програмування c, delphi, c #

І знову Паскаль. Цього разу ми будемо вивчати новий цикл, так званий цикл REPEAT-UNTIL.

Цей цикл є заключним, він єдиний залишився з трьох наявних в Паскалі - два ми вже пройшли (FOR і WHILE). Хочу також звернути вашу увагу, що в цьому випуску ми знову повернемося до типам. Справа в тому, що в циклі REPEAT-UNTIL дуже часто використовується невідомий вам поки тип даних, так званий логічний, або булевский, або BOOLEAN. Так ось, цей тип дуже зручний у використанні циклів REPEAT-UNTIL, та й взагалі в програмуванні. Він досить простий, але водночас не всі його розуміють. Це нічого: якщо ви не зрозумієте його сьогодні, то обов'язково розберетеся по ходу його використання. Як говоритися, немає нічого кращого практики. Ну що почнемо?

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

Отже, давайте уявимо, що ми пишемо програму, в якій нам необхідно прочитати десять чисел, після чого виконати наступні дії:

1. Якщо серед введених чисел був нуль, то надрукувати "нулі існують".

2. Якщо серед введених чисел нулів не було, то так і пишемо: "немає у нас нулів!".

Завдання поставлене. Думаємо, як же будемо її вирішувати. Заздалегідь не сказано, що введені числа потрібно десь залишати. Розумієте, про що я? Тобто жодне з введених чисел далі нам не буде потрібно, головне знати, чи був серед них нуль. Алгоритмів для вирішення такого завдання безліч. Один із вдалих варіантів (точніше, більш простих) це використання масиву, але такі ми ще не проходили. Відпадає. Інший варіант - безпосередня перевірка введеного числа, тобто після введення перевіряти - число це нуль? Якщо так, виведемо підтвердження. Але і це не дуже гнучке рішення задачі.

Можна здолати інакше - перевіряти число на нуль, і якщо воно таке, змінювати яку-небудь спеціально заведену змінну. Наприклад, Is_zero: Byte. Якщо у нас нуль, то пишемо: Is_zero: = 1;

А після введення перевіряємо, якщо в Is_zero = 1, то нулі були. Вам зрозумілий хід моїх думок? Ми використовуємо як би підтвердження наявності нулів. Ось приклад для наочного відображення:

Бачите, що ми зробили? Якщо перевести роботу змінної BOOLEAN на російську мову, вийти приблизно наступна фраза:

Якщо правда те, що нулі були, то напиши про це;

А ось якщо неправда. то так і напиши, що не було нулів.

Тобто робота BOOLEAN це просто визначення істинності умови або його хибність. Ось власне і все. До речі, зверніть увагу на перевірку:

if Is_zero then.

Ви бачите, що я не пишу If Is_zero = true? BOOLEAN - змінна логічна, тому і не вимагає в перевірках вказівки свого значення. Вона просто перевіряється на істину. Як би за замовчуванням, IF шукає справжність умови.

Зрозуміло, немає? Якщо немає, то запевняю вас, далі розберетеся. Поки про BOOLEAN сказати більше нічого, потрібно пробувати використовувати його і дивитися на результати роботи. Переходимо до циклу.

Цей цикл дуже і дуже часто використовується в програмуванні. Він досить зручний для організації великих структур даних, оформлення цілих блоків програми. Відмітна особливість циклу - це перевірка справжності виконання не на початку, як у інших циклів, а в кінці. Перевірка може бути на що завгодно:

  • На справжність булевою змінної;
  • На наявність якого-небудь умови, наприклад була введена буква "q", що означає вихід з програми;
  • На значення якої-небудь змінної (а не більше вона п'яти?)

    Оформляється цикл теж досить просто.

    Для того, щоб озаглавити цикл REPEAT-UNTIL (до речі, по англійськи repeat - повторювати, а until - поки, до того як) необхідно в будь-якому місці програми вставити службове слово REPEAT. Саме одне слово, не як у всіх інших циклах. Завершується цикл службовим словом UNTIL з подальшою перевіркою якогось умови. Приклад? Будь ласка:

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

    Програмування для чайників.