Лабораторна робота 2. Програмування задач циклічної структури
For (;1;); // нескінченний цикл Для багатьох обчислювальних задач корисним є використання циклу з постумовою (умовою на виході). В цьому випадку тіло циклу обов`язково виконається як мінімум один раз. В С такий оператор циклу реалізується конструкцією do while. Взагалі цикл має вигляд: Мета роботи Одержання знань і навиків, необхідних для програмування циклічних процесів; придбати та закріпити… Читати ще >
Лабораторна робота 2. Програмування задач циклічної структури (реферат, курсова, диплом, контрольна)
Мета роботи Одержання знань і навиків, необхідних для програмування циклічних процесів; придбати та закріпити на прикладі складання програм елементарні знання алгоритмічної мови С++.
Завдання на лабораторну роботу.
- 1. Ознайомитися з теоретичними відомостями даних методичних вказівок.
- 2. Скласти та виконати на ПЕОМ програми з таблиці 2.1 відповідно до варіанту.
- 3. Оформити звіт та захистити роботу.
Таблиця 2.1 — Індивідуальні завдання до лабораторної роботи 2.
№ варіанта. | Номери задач. | № варіанта. | Номери задач. | |
84б, 143, 106, 755д. | 108, 140, 113а, 119 В. | |||
84 В, 146, 107, 755 г. | 115а, 150, 113б, 119 г. | |||
77 В, 144а, 143 В, 755е. | 115б, 149, 116а, 119е. | |||
77 г, 144б, 116 В, 755ж. | 115 В, 148, 116б, 119б. | |||
77д, 146, 116 г, 753 В. | 116 В, 147, 102, 119а. | |||
77е, 152, 116д, 758а. | 78д, 156б, 103, 758д. | |||
77ж, 153, 116е, 758б. | 80, 157, 104, 758е. | |||
78 В, 155, 115е, 758 В. | 81, 158, 114а, 758ж. | |||
78 г, 156а, 115ж, 758 г. | 82, 166, 114б, 758 В. | |||
85, 145 В, 108, 755 В. | 83а, 161, 114 В, 759а. | |||
114а, 145б, 109, 755б. | 83б, 163, 114 г, 759б. | |||
114б, 145а, 110, 755а. | 84а, 137 В, 114д, 759 В. | |||
114 г, 142, 111, 119е. | 96, 137 г, 114е, 759 г. | |||
107, 141, 112, 119д. | 97, 136о, 114ж, 760б. | |||
Основні теоретичні відомості.
Цикл — це група операторів, що виконуються багаторазово.
Оператор while визначає операції, які циклічно виконуються до того моменту, поки вираз, що стоїть після while, стане хибним. Цей оператор називається оператором циклу з передумовою: спочатку перевіряються умови, і якщо умови виконуються, то потім виконується тіло оператору. Тому можлива ситуація, коли тіло циклу може бути не виконаним жодного разу. Форма запису оператора наступна:
while (вираз) оператор; або while (вираз) {група операторів}.
де вираз — це умова виконання тіла циклу.
Наприклад:
const n=25;
int i=0;
while (i.
При організації циклу, коли його тіло повинно бути виконане фіксовану кількість разів необхідно реалізувати три операції: ініціювання лічильника, порівняння його з повним значенням межі і збільшення (зменшення) лічильника при кожному проходженні циклу. В С є спеціалізований оператор циклу типу for, в якому органічно поєднано організацію цих трьох операцій.
В операторі for використовуються три вирази, що керують роботою цикла. Вони розділені символом;. Початковий вираз обчислюється тільки один раз до початку виконання одного з операторів циклу. Якщо вираз-перевірка буде істинним (не рівним нулю), тіло циклу виконається один раз. Потім обчислюється величина виразу коректування і визначається знову величина виразу-перевірки. Оператор циклу for — оператор з передумовою, отже знову ж може трапитися, що тіло циклу не виконається жодного разу. Він має таку форму:
for (ініціювання; умова_виконання; вирази_корекції) оператор
ініціювання_циклу — послідовність визначень та виразів, розділених комами. Всі вирази, що входять до ініціалізації циклу розраховуються тільки один раз при вході до цикла;
вирази_корекції - розраховуються на кожній ітерації після виконання операторів тіла циклу і до наступної перевірки умови_виконання.
Наприклад:
int i;
for (i=0; i<
Тіло цикла виконується так довго, поки вираз-перевірка не стане хибним (рівним нулю).
Якщо умова_виконання не змінюється або відсутня, то цикл нескінченний.
Наприклад:
for (; ;); // нескінченний цикл
for (;1;); // нескінченний цикл Для багатьох обчислювальних задач корисним є використання циклу з постумовою (умовою на виході). В цьому випадку тіло циклу обов`язково виконається як мінімум один раз. В С такий оператор циклу реалізується конструкцією do while. Взагалі цикл має вигляд:
do оператор while (вираз);
Проілюструємо його виконання таким прикладом:
do
{ ch=getchar ();
putchar (ch);
} while (ch≠` `);
Прикладом використання циклів може стати алгоритми розрахунку сум, добутку та ін.
Алгоритм розрахунку суми Крок 1. Ініціалізація змінної суми (s=0) та змінної циклу (i=0).
Крок 2. Якщо зміна циклу більше кількості ітерацій, перехід на крок 4, інакше перехід на крок 3.
Крок 3. Накопичуємо суму. Збільшуємо оператор циклу (і++), перехід на крок 2.
Крок 4. Кінець Приклад: Розрахувати
int s, i;
s=0;
for (i=0; i<20; i++) s+=i;
Алгоритм розрахунку нескінчених сум Крок 1. Ініціалізація змінної суми. Перехід на крок 2.
Крок 2. Розрахувати доданок на теперішній ітерації. Перехід на крок 3.
Крок 3. Накопичуємо суму. Перехід на крок 4.
Крок 4. Якщо доданок менший за завданну точність, то перехід на крок 5. Якщо ні - крок 2.
Крок 5. Кінець.
Приклад: Розрахувати із заданою точністю е
float s0, s1, t, е;
int i=1;
s1=1.0;
do {
i++;
s0=s1;
t=1.0/i*i;
s1+=t;
} while (fabs (s1-s0)>е);
Контрольні запитання
- 1. Для чого використовують оператори циклу?
- 2. Напишіть блок-схеми алгоритмів опретарів циклів з передумовою, постумовою, ітераційного циклу.
- 3. Наведіть алгоритм розрахунку добутку.
- 4. Наведіть алгоритм розрахунку суми.
- 5. Наведіть приклади використання циклів з постумовою.