Основы объектно-ориентированного программирования на языке C# book | Page 29

2.1 Класифiкацiя внутрiшнiх структур алгоритмiв 7. Друк . 8. Кiнець. Вихiд: Кiлькiсть цифр . Слiд зважати на те, що за конкретноı̈ реалiзацiı̈ цього алгоритму у середовищi конкретноı̈ мови програмування можна використовувати цикли як з перед-, так i з пост-умовою. Розглянемо алгоритм Евклiда обчислення найбiльшого спiльного дiльника цiлих додатних чисел A та B: НСД(, B). Алгоритм: Вхiд: A, B. 1. Oбчислити U = A. 2. Oбчислити V = B. 3. Поки U 6 = V виконувати 4: 4. Якщо U < V , то Oбчислити V = V − U , Iнакше Oбчислити U = U − V . 5. Oбчислити D = U . Вихiд: D – найбiльший спiльний дiльник i B. У цьому алгоритмi використано команду повторення, яка має ви- гляд Поки <Умова> виконувати <Команда>. Виконуючи команду, спочатку перевiряємо iстиннiсть“Умови”. Якщо “Умова” iстинна, то виконуємо “Команду”, указану пiсля слова “вико- нувати”, i повторюємо перевiрку “Умови”. Виконання “Команди” й пе- ревiрка “Умови” повторюються, доки “Умова” iстинна. Якщо “Умова” хибна, то переходимо до виконання команди, наступноı̈ за командою повторення. У цьому самому алгоритмi використано ще один рiзновид команди розгалуження – команду вигляду Якщо <Умова>, то <Команда1> iнакше <Команда2> Виконуючи ı̈ı̈, спочатку перевiряємо “Умову”. Якщо “Умова” вико- нана, то виконується “Команда1”, iнакше – “Команда2”. Далi перехо- димо до наступноı̈ команди. Зауважимо, що команда повторення, як i команди розгалуження, мiстить у собi iншi команди. 29