Заняття 4 і 5 цикли в с, навчання програмуванню

Цикл - це постійно повторювані фрагмент програми.

Існує два типи циклів: типу «поки» і типу «n-раз».

Перший тип «поки» призначений для повторення деяких дій до тих пір, поки виконується деяка умова. Приклад: збільшувати число на 5 доти, поки воно не стане тризначним.

Другий тип «n-раз» призначений для повторення деяких дій заздалегідь відоме кількість разів. Приклад: помножити число саме на себе 4 рази.

Цикл типу «поки» (оператори while і do ... while)

Оператор while повторює зазначені дії до тих пір, поки його параметр має справжнє значення.

Наприклад, такий цикл виконається 4 рази, а на екран буде виведено «1 2 3 4»:

Такий цикл не виконається жодного разу і на екран нічого не виведеться:

Такий цикл буде виконуватися нескінченно, а на екран виведеться «1 2 3 4 5 6 7 ...»:

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

Буває цикл типу «поки» з постпроверкой умови. Для його записи використовується конструкція з операторів do ... while.

Такий цикл виконається 4 рази, а на екран буде виведено «2 3 4 5»:

Такий цикл виконається 1 раз, а на екран буде виведено «2»:

Тіло циклу do ... while виконується принаймні один раз. Цей оператор зручно використовувати, коли певна дія в програмі потрібно виконати принаймні один раз, але за деяких умов доведеться повторювати його багаторазово.

Цикл типу «n-раз» (оператор for)

Оператор for містить три параметри. Перший називається ініціалізацією, другий - умовою повторення, третій - итерацией.

У першому параметрі зазвичай вибирають якусь змінну, за допомогою якої буде обчислюватися кількість повторень циклу. Її називають лічильником. Лічильнику задають деяке початкове значення (вказують, починаючи з якого значення він буде змінюватися).

У другому параметрі вказують деяке обмеження на лічильник (вказують, до якого значення він буде змінюватися).

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

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

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

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

Представлена ​​програма виводить на екран числа від 1 до 100:

Представлена ​​програма виводить на екран числа від 10 до -10:

Представлена ​​програма виводить на екран непарні числа від 1 до 33:

Представлена ​​програма обчислить суму елемнтов фрагмента послідовності 2, 4, 6, 8, ... 98, 100. Отже:

Представлена ​​програма буде зводити число з змінної a в натуральну ступінь з змінної n:

Представлена ​​програма виведе на екран 10 перших елементів послідовності 2n + 2, де n = 1, 2, 3 ...:

Представлена ​​програма виведе на екран 10 перших елементів послідовності 2an-1 +3, де a1 = 3:

В одному циклі можна задавати відразу декілька лічильників. При цьому кілька виразів в ітерації і в ініціалізації розділяються комами. Умова повторення можна задавати тільки одне, але воно може бути виразом, що містить відразу кілька лічильників.

Представлена ​​програма виведе на екран 10 перших елементів послідовності 2an-1 -2, де a1 = 3:

Представлена ​​програма виведе на екран таку послідовність «0 -1 -4 -9 -16 -25»:

Дострокове завершення циклу (оператор break)

Як цикл типу «поки» так і цикл типу «n-раз» можна завершити достроково, якщо всередині тіла циклу викликати оператор break. При цьому відбудеться моментальний вихід з циклу, що не буде закінчений навіть поточний крок (т. Е. Якщо після break були присутні якісь ще оператори, то вони не виконаються).

В результаті роботи такого прикладу на екран будуть виведені тільки числа «1 2 3 4 Кінець»:

Коли програма буде виконувати цикл в п'ятий раз (увійде в цикл з лічильником рівним 5), відразу ж буде перевірено і виявиться істинним умова при якому виконається оператор break. Частина, що залишилася тіла циклу (висновок на екран) вже проводиться не буде: програма відразу перейде до виконання операцій зазначених після циклу і далі.

C допомогою оператор break можна перервати свідомо нескінченний цикл. Приклад (на екран виведеться «100 50 25 12 6 3 1 0» і після цього цикл зупиниться):

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

У представленому вище прикладі виведення в циклі на екран не відбудеться жодного разу, а коли змінна a виведеться на екран після циклу, то виявиться, що її значення жодного разу не змінювалася, т. Е. Виведено буде «a = 25» (і нічого більше ).

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

Створіть програму, що виводить на екран всі чотиризначні числа послідовності 1000 1003 1006 1009 1012 1015 ....

Створіть програму, що виводить на екран перші 55 елементів послідовності 1 3 5 7 9 11 13 15 17 ....

Створіть програму, що виводить на екран всі невід'ємні елементи послідовності 90 85 80 75 70 65 60 ....

Створіть програму, що виводить на екран перші 20 елементів послідовності 2 4 8 16 32 64 128 ....

Виведіть на екран всі члени послідовності 2an-1 -1, де a1 = 2, які менше 10000.

Виведіть на екран всі двозначні члени послідовності 2an-1 +200, де a1 = -166.

Створіть програму, яка обчислює факторіал натурального числа n, яке користувач введе з клавіатури.

Виведіть на екран всі позитивні подільники натурального числа, введеного користувачем з клавіатури.

Перевірте, чи є введене користувачем з клавіатури натуральне число - простим. Постарайтеся не виконувати зайвих дій (наприклад, після того, як ви знайшли хоча б один нетривіальний дільник вже ясно, що число складене і перевірку продовжувати не потрібно). Також врахуйте, що найменший дільник натурального числа n, якщо він взагалі є, обов'язково розташовується в відрізку [2; √n].

Створіть програму, що виводить на екран 12 перших елементів послідовності 2an-2 -2, де a1 = 3 і a2 = 2.

Виведіть на екран перші 11 членів послідовності Фібоначчі. Нагадуємо, що перший і другий члени послідовності рівні одиницям, а кожен наступний - сумою двох попередніх.

Для введеного користувачем з клавіатури натурального числа порахуйте суму всіх його цифр (заздалегідь не відомо скільки цифр буде в числі).

У місті N проїзд в трамваї здійснюється по паперовим відривним квитках. Щотижня трамвайне депо замовляє в місцевій друкарні рулон квитків з номерами від 000001 до 999999. «Щасливим» вважається квиток у якого сума перших трьох цифр номера дорівнює сумі останніх трьох цифр, як, наприклад, в квитках з номерами 003 102 або 567576. Трамвайне депо вирішило подарувати сувенір власникові кожного щасливого квитка і тепер роздумує, як багато сувенірів буде потрібно. За допомогою програми підрахуйте скільки щасливих квитків в одному рулоні?

Електронний годинник показує час в форматі від 00:00 до 23:59. Підрахувати скільки разів за добу трапляється так, що зліва від двокрапки показується симетрична комбінація для тієї, що праворуч від двокрапки (наприклад, 2:20, 11:11 або 15:51).

В американській армії вважається нещасливим число 13, а в японській - 4. Перед міжнародними навчаннями штаб російської армії вирішив виключити номера бойової техніки, що містять числа 4 або 13 (наприклад, 40123, 13313, 12345 або 13040), щоб не бентежити іноземних колег. Якщо в розпорядженні армії є 100 тис. Одиниць бойової техніки і кожна бойова машина має номер від 00001 до 99999, то скільки всього номерів доведеться виключити?

Користувач вводить з клавіатури послідовність з 10 натуральних чисел. Програма повинна повідомити будь чисел зустрілося більше: парних, непарних, або їх порівну. Якщо впровадженою не натуральне число, то програма повинна повідомити про некоректне введення і попросити знову ввести відповідне натуральне число.

Користувач вводить з клавіатури послідовність з 8 цілих чисел. Програма повинна вивести на екран довжину максимальної строго зростаючої підпослідовності. Якщо така відсутня, то повідомити про це.

Користувач вводить з клавіатури послідовність ненульових цілих чисел. Програма повинна вивести на екран середнє арифметичне елементів цієї послідовності відразу після того, як користувач введе 0 (тобто заздалегідь довжина послідовності невідома).

Користувач вводить з клавіатури послідовність ненульових цілих чисел. Програма повинна вивести на екран максимальний і мінімальний елементи послідовності відразу після того, як користувач введе 0 (тобто заздалегідь довжина послідовності невідома).

Користувач вводить з клавіатури арифметичний приклад в такому форматі «2 + 3.5» або «3.14 * 8», програма повинна обчислити і вивести правильну відповідь на екран. У прикладі повинні бути допустимі операції додавання, множення, віднімання, ділення (із залишком). Після виведення відповіді програма повинна запитати користувача, потрібно вирішити ще один приклад? Якщо користувач введе «y» програма повинна запуститися повторно, інакше - завершитися.

Схожі статті