Поняття циклуЛабораторна робота № 2 ЦИКЛ З ЛІЧИЛЬНИКОМ Мета роботи Отримати практичні навики програмування в середовищі об’єктно орієнтованого програмування Visual Basic та навчитися розв'язувати задачі з циклічними обчислювальними процесами, зокрема з оператором циклу з лічильником. Загальнотеоретичні положення Поняття циклу Існує множина задач, з якими комп'ютери впораються набагато краще за людей. У програмуванні постійно виникають задачі, які потребують для свого розв'язання багаторазового повторення однієї й тієї ж послідовності дій чи одноманітної обробки однорідних об'ємів інформації. Алгоритм розв'язання багатьох задач є циклічним, тобто для досягнення результату визначена послідовність дій повинна бути виконана декілька раз. Наприклад, програма контролю знань задає питання, приймає відповідь, додає оцінку за відповідь до суми балів, потім повторює ці дії ще і ще раз до тих пір, поки не буде отримана відповідь на всі питання. Дійсно, сьогодні виникає багато складних запитань, які може розв'язати тільки комп'ютер. Який середній прибуток на душу населення в Україні? Яка середня тривалість життя в регіоні? Які показники товарообміну? У комп'ютерних програмах, які виконують обробку дуже великого обсягу інформації, використовують оператори, що багаторазово повторюють однакові дії - цикли. Наприклад, для того щоб знайти прізвище людини у списку, необхідно перевірити перше прізвище списку, потім друге, третє і т. д. до тих пір, поки не буде знайдено необхідне прізвище або не буде досягнуто кінця списку. Якщо обчислювальний процес містить багаторазові обчислення за одними й тими самими математичними залежностями, але для різних значень початкових величин (змінних), його називають циклічним. Багаторазово повторювані ділянки обчислення називають циклами, а змінні, які змінюються в циклі,- змінними циклу. Алгоритм циклічної структури в загальному вигляді має вміщувати: 1) підготовку циклу: задавання початкових значень змінних циклу перед першим його виконанням; 2) тіло циклу: дії, що повторюються в циклі для різних значень змінних циклу; 3) модифікацію: зміна значень змінних циклу перед кожним новим його повторенням; 4) управління циклом: перевірка умов продовження (або закінчення) циклу та перехід до початку тіла циклу, якщо виконується умова продовження циклу (або вихід з циклу після його закінчення). На рис.1 показано загальний вигляд циклічного алгоритму.
2. Оператори циклів. Оператор циклу з параметром Visual Basic має різні оператори, за допомогою яких можна запрограмувати повторювані фрагменти програми. Цикли поділяють на цикли з заданою кількістю повторень та цикли з заздалегідь не відомою кількістю повторень. Цикли першого типу називають також циклами з лічильником. Число повторень тіла циклу в цьому випадку рахується за допомогою спеціальної змінної (лічильника), для якої відомі початкові та кінцеві (порогові) значення, а також крок зміни. Управління циклом виконується за допомогою порівняння поточних значень лічильника з заданим порогом. Змінну лічильника часто називають параметром циклу, а сам цикл - циклом з параметром. Для схематичного зображення циклу з параметром використовують спеціальний блок заголовка циклу (блок модифікації), всередині якого вказують закон зміни параметра циклу. Конфігурацію блоку та загальну схему циклічного алгоритму в цьому випадку показано на рис. 2.
Рис. 2. Циклічний алгоритм з лічильником На схемі: вхід 1 у блок і - початковий вхід у цикл; вхід 2 - вхід у цикл при його наступному повторенні; вихід 3 - вихід з циклу по його закінченню. Прикладом циклу з параметром може слугувати задача обчислення значення функції у=f(х) від цілочисельного аргументу. Закон зміни х від хп до хк з кроком ∆х (де хп, хк, ∆х - цілі числа, хп це х початкове, хк - х кінцеве) можна показати у вигляді х= хп, хк, ∆х. Змінна х є параметром циклу. Цикл виконується для значень х= хп, хп + ∆х, хп +2 ∆х,…, хк. Блок модифікації містить у собі підготовку циклу (х:= хn), модифікацію значення параметра циклу(х:= х + ∆х) управління циклом(x≤ хк). Схему алгоритму наведено на рис.3. Для програмування циклів з відомою кількістю повторень слід користуватися оператором циклу з лічильником. Цей оператор передбачає повторне виконання деяких (інших) операторів з одночасною зміною значення керуючої змінної (лічильника, або параметру циклу) за правилом арифметичної прогресії. Оператор циклу з лічильником має такий синтаксис: For лічильник = поч. знач. То кінц. знач. [ Step крок ] оператори Next параметр циклу Тут For (для), То (до), Step (крок), Next (наступний) зарезервовані (службові) слова; лічильник - змінна будь-якого числового типу; поч. знач., кінц. знач. - скалярні вирази того ж типу, що й параметр циклу; оператори - будь-які оператори мови Visual Basic. Наприклад: For і = 1 То 15 s = s*2 Next і Оператор s = s*2 виконується у циклі For для кожного значення змінної і (лічильника), починаючи зі значення 1 (початкового виразу) до значення 15 (кінцевого виразу) включно. При використанні у циклі службового слова Step значення лічильника змінюється на величину крок (збільшується, якщо крок має позитивне значення або зменшується, якщо крок - від'ємна величина). За замовченням (коли службове слово Step відсутнє) лічильник збільшується на 1 (одиницю). При програмуванні циклів з параметром необхідно пам'ятати такі правила організації циклу: 1) параметр циклу, початкове та кінцеве значення повинні бути однакового типу. їх тип може бути будь-яким числовим. Рекомендується використовувати тип Integer або Variant; 2) не рекомендується змінювати всередині (в тілі) циклу значення лічильника, початкового та кінцевого виразів циклу - це може призвести до невизначеності дії циклу; 3) заборонено входити в цикл за допомогою оператора goto,минаючи оператор For,так як значення параметра циклу, а також початкового та кінцевого виразів будуть не визначеними; 4) цикл не виконується зовсім, якщо початковий вираз більший (при від'ємному кроці - менший) за кінцевий; 5) після закінчення виконання циклу значення параметра циклу не визначене та не може бути безпосередньо використане у подальших обчисленнях; 8) із циклу можна вийти до його закінчення за допомогою оператора goto або, Exit For. Тоді останнє значення параметра циклу зберігається. Розглянемо приклад підпрограми обчислення факторіалу числа п. Для цього слід послідовно перемножити всі числа від 1 до п. Більш компактно такі обчислення реалізуються за допомогою оператора циклу.
|