Алгоритмізація та програмування. Цикли у мові С

Матеріал з Фізмат Вікіпедії
Перейти до: навігація, пошук

Мета

Повторити і узагальнити знання студентів про цикли у мові програмування С. Освоїти методи роботи з циклами, та продемонструвати відмінність між різними конструкціями циклів, навчитися використовувати цикли для розв'язування задач.

Тип уроку

Комбінований. 

Хід уроку

Привітання, відсічення відсутніх та оголошення теми заняття

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

Повторення теоретичного матеріалу

- Хто може сказати що таке цикл?

Цикл — різновид керівної конструкції, призначеної допомогти організувати багаторазове виконання набору інструкцій (тіла циклу). 

- А що ми розуміємо під ітерацією?

Ітерація — це одноразове виконання тіла циклу.

- Як ви знаєте у мові програмування С цикл можна організувати за допомогою трьох операторів повтору, давайте пригадаємо яких саме.

Цикл з параметром, цикл з умовою та цикл з пост-умовою (після-умовою).

- Цикл з параметром (for) складається з трьох частих: початкової ініціалізація, умови і покрокової корекції. Пригадайте для чого слугують ці частини?

 for (<початкова ініціалізація>; <умова>; <покрокова корекція>) 
   <набір інструкцій>

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

Умова перед початком виконання циклу, перевіряється на істинність, коли умова істинна починає виконуватись ітерація циклу.

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

- Цикл з перед умовою описується, як ви пам’ятаєте, наступним чином:

 while (<умова>)
  <набір інструкцій>

-Розпочинається із службового слова while, після якого у круглих дужках вказується умова, після чого слідує тіло циклу. Хто скаже, яке значення істинності повинна мати умова щоб виконалась ітерація, і коли ця істинність перевіряється?

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

- Цикл з після-умовою описується ж так:

 do
   <набір інструкцій>
 while (<умова>);

Розпочинається із службового слова do, після якого описують набір інструкцій, які необхідно виконати. Після чого слідує службове слово while, у круглих дужках після якого вказується умова. - Яка ж відмінність між циклом з перед умовою і після-умовою? Умова перевіряється після виконання кожної ітерації, істинність умови, як і для циклу з перед умовою, забезпечує виконання наступної ітерації. - Як ви пам’ятаєте у мові С існують спеціальні оператори, які полегшуються роботу з циклами, а саме: break i continue. Виклик оператора break призводить до припинення виконання циклу. Виклик оператора continue призводить до переходу на виконання наступної ітерації.

Розв'язування задач

Перші три задачі за допомогою різних операторів повторів розв’язує та пояснює алгоритм викладач, наступні хтось із студентів з допомогою викладача та аудиторії. Кожна наступна задача розв'язується за допомогою іншого оператора повторення.

Задача 1

Дано натуральне число n. Обрахувати 2^n.

Розв'язання за допомогою циклу з параметром:

 #include <stdio.h>	//Підключення необхідним модулів
 #include <iostream>		
 void main()			//Оголошення функції main
 {
   int n, s  =  1;		//Оголошення змінних n,s та присвоєння s значення 1
   std::cin >> n;	//Зчитування значення з консолі і занесення його у n
   for(int i = 1; i <=N; i++) //опис циклу з оголошенням змінної і, присвоєнням їй значення 1. Цикл виконуватиметься поки значення і буде меншим рівним за значення n, по закінченні ітерації змінна і збільшуватиметься на одиницю
     s *= 2;	//покрокове обрахування результату
   std::cuot << s;	//вивід результату в консоль	
 }				//Завершення виконання програми


Зауваження: у програмі була допущена помилка. Дати студентам хвилину на її відшукання та виправлення. (Помилка в оголошенні циклу, де вказано N, а не n. Нагадати що С — це регістро залежна мова програмування).

Задача 2

Дано натуральне число n. Обрахувати n!. Розв'язання за допомогою циклу з передумовою:

 #include <stdio.h>	//Підключення необхідним модулів
 #include <iostream>		
 using namespace std;	//Дозволить “напряму” використовувати cin, cout
 void main()			//Оголошення функції main
 {
   int n, s  =  1;		//Оголошення змінних n,s та присвоєння s значення 1
   cin >> n;		//Зчитування значення з консолі і занесення його у n
   int i = 1;
   while (i < n) 	//Опис циклу  який виконуватиметься поки значення і буде менше рівне значення n
   {			//Початок тіла циклу
     s *= i;		//На кожному кроці s домножуємо на і
     i++;		//Та збільшуємо і
   }			//Кінець тіла циклу
   cuot << s;		//Вивід результату в консоль	
 }				//Завершення виконання програми

Зауваження: у програмі була допущена помилка. Дати студентам хвилину на її відшукання та виправлення. (Помилка в оголошенні циклу, вказано, що i < n, тобто цикл матиме n -1 ітерацію, тобто знайде лише (n-1)!).

Задача 3

Дано натуральне число n. Обрахувати добуток Formula 1.jpg

Розв'язання за допомогою циклу з після-умовою:

 #include <stdio.h>	//Підключення необхідним модулів
 #include <iostream>		
 using namespace std;	//Дозволить “напряму” використовувати cin, cout
 void main()			//Оголошення функції main
 {
   int n, s  =  1;		//Оголошення змінних n,s та присвоєння s значення 1
   cin >> n;		//Зчитування значення з консолі і занесення його у n
   int i = 1;
   do	//		//Початок опису циклу
   {			//Початок тіла циклу
     s *= 1 + 1 / i * i;		//На кожному кроці s домножуємо на новий добуток. 
     //Зауваження: Звернути увагу на відсутність дужок, та нагадати про пріорітет операцій
     i++;		//Та збільшуємо і
   }while (i <= n) 	//Умова необхідна для виконання наступної ітерації
   cuot << s;		//Вивід результату в консоль	
 }				//Завершення виконання програми

Задача 4

Знайти значення суми Formula 2.jpg, де Formula 3.jpg.

Підказка: необхідно підключити бібліотеку <math.h>, яка містить опис математичних функцій.

Задача 5

Знайти значення виразу Formula 4.jpg, де Formula 3.jpg.

Задача 6

Знайти значення виразу Formula 5.jpg, де Formula 3.jpg.

Підказка: на кожному кроці обраховувати нові значення чисельника та знаменника використовуючи попередні.

Задача 7

Знайти значення виразу Formula 6.jpg, де Formula 7.jpg.

Підказка: крок ітерації 2.

Задача 8

Дано дійсне число а. Знайти серед чисел Formula 8.jpg перше таке, яке більше за а.

Задача 9

Дано ціле число n, визначити скільки цифр у числі n.


Задачі для самостійного розв'язання

Задача 1

Дано дійсне число а, і натуральне число n. Не використовуючи математичні функції знайти a^n.

Задача 2

Дано дійсне число a, Formula 9.jpg. Обрахувати суму Formula 10.jpg, де Formula 3.jpg.

Задача 3

Дано ціле число n. Знайти суму цифр числа n.

--Користувач:Вансач Ігор