Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Додаткові відомості

Питання для роздумів

1. Як Ви думаєте, чому в програмі для циклічного вводу чисел (код 7.9)перевірка умови закінчення циклу повинна бути в його початку? Що може відбутися, якщо перевірку закінчення циклу помістити в його кінець, після слова Loop? (Підказка: користувач може відразу відмовитися від введення, клацнувши кнопку Cancel при першій же появі вікна введення!)

2. А чи можна перенести перевірку умови закінчення стрілянини (код 7.10)з початку в кінець циклу? Як буде виглядати ця умова, якщо замінити слово Until словом While?

3. Як Ви думаєте, з якою метою на початку і наприкінці програми коду 7.10 змінюється значення властивості Visible командної кнопки?

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

· умовного оператора 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.

Мал. 7.10. Результат роботи програми креслення решітки



Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 404; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.