Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

До розд. 7.2, 7.3) Програмування повторень за допомогою умовного і безумовного операторів



Багаторазово повторювані дії можна запрограмувати без використання операторів циклу, а за допомогою тільки тих операторів, що розглядалися в попередній главі:

· умовного оператора If... Then... Else...;

· безумовного оператора GoTo....

Робиться це так. Допустимо, Ви хочете, щоб після виконання декількох операторів Вашої програми виконавець алгоритму повертався до першого з них і повторно виконував усі ці оператори.

Перед першим з повторюваних операторів треба виставити мітку, а після останнього помістити оператор GoTo — безумовного переходу до оператора за цією міткою.

Повторення будуть забезпечені! Але число їх буде нічим не обмежено і Ви не дочекаєтеся кінця роботи програми. (До речі, це є відповіддю на 1-е питання наприкінці розд. 6.5.)

Щоб у якийсь момент повторення закінчилися, необхідно на початку чи наприкінці групи повторюваних операторів помістити відомий Вам оператор If... Then... Else.... Цей оператор повинен перевіряти умову, виконання (чи невиконання) якої повинне скасувати чергове повернення.

Очевидно, що ця умова повинна спрацювати тільки після останнього з численних повторень. Це означає, що якась величина від повторення до повторення повинна мінятися і зрештою досягти критичного значення. Саме це критичне значення і буде перевірятися умовним оператором.

Взаємодія операторів умовного і безумовного переходу, що дає той же результат, що й оператор циклу, розглянемо на наступному прикладі.

Приклад 7.12. Необхідно запрограмувати креслення за допомогою методу Line решітки на екранній формі. Рештка — це кілька пересічних вертикальних і горизонтальних відрізків.

Будемо вважати, що обидві координати х і у нашого поля змінюються в межах від 2 до 42 умовних одиниць (як у прикладі 7.7 при зображенні шахівниці). Решітки складатимуться з дев'яти горизонтальних і дев'яти вертикальних рівновіддалених один від одного відрізків (таким чином, відстань між ними складе 5 умовних одиниць). Наступна програма успішно вирішує нашу задачу без застосування оператора циклу:

Код 7.11

На мал. 7.10 приведений результат роботи цієї програми — вікно екранної форми, на якому немає ніяких об'єктів (насправді, є командна кнопка, але вона зроблена прихованою, щоб не псувати зображення (так само як і у прикладі 7.7)), а є тільки намальована методом Line решітки розміром 8 x 8 кліток.

Зверніть увагу на те, як робиться масштабування екранної форми. Як і при малюванні шахівниці в прикладі 7.7, значення координат правого нижнього кута форми залежать від значень змінних ni, nj, dx, dy, x1 і y1, заданих раніше. Це означає, що решітки зображатимуться у вікні будь-якого розміру — її розміри «підстроюватимуться» під розміри цього вікна. Крім того, можна без зусиль задати будь-як число горизонталей і вертикалей (у першому рядку процедури встановити значення змінних ni і nj.





Дата публикования: 2014-12-28; Прочитано: 187 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...