Головна

Алгоритмічна структура «цикл». Цикли з лічильником і цикли за умовою.

  1. I-d діаграма вологого повітря, її структура. Характерні випадки зміни стану повітря і їх зображення на I-d діаграмі.
  2. I. Конституційний лад РФ: поняття, структура і базові характеристики.
  3. I. Структура.
  4. I.1. Структура грошової системи
  5. II. Психологічна структура і розподіл функцій в системах "людина - техніка". Ролі та основні функції людини
  6. II. Соціальна структура і правове становище основних груп населення.
  7. II. Структура державного устрою РФ.

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

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

Циклічний алгоритм - опис дій, які повинні повторюватися вказане число раз або поки не виконано задана умова.

Перелік дій, що повторюються називають тілом циклу.

Наприклад, на уроці фізкультури ви повинні пробігти кілька кіл навколо стадіону.

Такі цикли називаються - цикли з лічильником.

Мовою Basic вони записуються в такий спосіб:

FOR Лічильник = НачЗнач TO КонЗнач [STEP крок]
 тіло циклу
 NEXT [Лічильник]

Параметри вказані в квадратних дужках є необов'язковими (їх можна не записувати). За замовчуванням крок циклу дорівнює одному, тобто кожен раз після проходження тіла циклу лічильник збільшується на одиницю.

Приклад: Вивести на екран всі числа від 1 до 100. Для цього можна було б написати таку програму:

REM Висновок чисел від 1 до 100
 PRINT 1
 PRINT 2
 PRINT 3
 PRINT 4
 PRINT 5
 PRINT 6
 PRINT 7
 ...
 PRINT 98
 PRINT 99
 PRINT 100
 END

Всього якихось 102 рядки ;-). Хоча цю ж програму можна написати набагато коротше:

REM Висновок чисел від 1 до 100
 FOR I = 1 TO 100
 PRINT I
 NEXT
 END

Трохи виправивши програму можна зробити, щоб вона виводила все числа від a до b.

REM Висновок чисел від a до b
 a = 55
 b = 107
 FOR I = a TO b
 PRINT I
 NEXT
 END

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

Легко зробити щоб програма виводила числа в зворотному порядку. Для цього крок циклу має дорівнювати -1 (мінус один). У цьому випадку значення лічильника кожен раз після проходження циклу буде зменшено на одиницю.

REM Висновок чисел від b до a
 a = 55
 b = 107
 FOR I = b TO a STEP -1
 PRINT I
 NEXT
 END

Приклад: Обчислити суму двозначних натуральних чисел.

REM Обчислити суму двозначних натуральних чисел
 FOR I = 10 TO 99
 s = s + I
 NEXT
 PRINT "Результат =", s
 END

Програма перебирає числа від 10 до 99 кожен раз виконуючи дії s = s + I. З точки зору математики це абсолютно безглузда запис, але розглянемо її уважніше.
 Процес рішення обчислювальної задачі - це процес послідовної зміни значень змінних. У підсумку - в певних змінних виходить результат. Мінлива отримує певне значення в результаті присвоювання. Ви пам'ятаєте, що присвоювання - це занесення в комірку, відведену під змінну, певного значення в результаті виконання команди.
 В результаті операції а = 5 змінна а отримує значення 5.
 В результаті операції з = a + b змінна с отримує значення рівне сумі значень змінної а и b.
 В результаті операції s = s + I змінна s отримує значення дорівнює загальній кількості попереднього значення змінної s і значення змінної I. Тобто, якщо до операції присвоювання значення s дорівнювало 5, а змінної I дорівнює 3, то після операції значення змінної s дорівнюватиме 8 (5 + 3, старе значення s + значення I).
 Значить після виконання нашої програми в змінної s буде зберігається сума всіх двозначних чисел від 10 до 99.

Приклад: обчислити факторіал числа а (записується так: а!). Факторіал - це твір чисел від 1 до а. Наприклад, 5! (Факторіал п'яти) - це 5! = 1 * 2 * 3 * 4 * 5.

REM Обчислити факторіал числа
 a = 5
 f = 1
 FOR I = 1 TO a
 f = f * I
 NEXT
 PRINT f
 END

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

У суботу ввечері ви дивитеся телевізор. Час від часу дивитесь на годинник і якщо час менше півночі, то продовжуєте дивитися телевізор, якщо це не так, то ви припиняєте перегляд телепередач.

Цикли такого виду називають - цикли з передумовою.

Мовою Basic вони записуються в такий спосіб:



IF <УМОВА> THEN <ОПЕРАТОРИ 1> ELSE <ОПЕРАТОРИ 2> END IF | DO WHILE умова Тіло циклу LOOP

Моделі матеріальні і моделі інформаційні. | Ієрархічні і мережні моделі | Деякі оператори мови Basic. | IF <УМОВА> <ОПЕРАТОР 1> <ОПЕРАТОР 2> ... <ОПЕРАТОР N> END IF | Технологія рішення задач за допомогою комп'ютера (моделювання, формалізація, алгоритмізація, програмування). Показати на прикладі задачі (математичної, фізичної або іншої). | Побудова діаграм і графіків. |

© um.co.ua - учбові матеріали та реферати