Програмування циклічних обчислювальних процесів у access. Програмування циклічних обчислювальних процесів

Програмування циклічних обчислювальних процесів у access. Програмування циклічних обчислювальних процесів

У програмуванні часто зустрічаються завдання, що вимагають багаторазового виконання однієї й тієї групи операторів програми з різними значеннями їх операндов. Такі процеси називаються циклічнимиабо просто циклами.Група операторів, що циклічно повторюються, утворює так зване тіло циклу, Яке може бути представлене як простим, так і складовим виразом. Одноразове виконання тіла циклу називатимемо ітерацією.

Тілу циклу у програмі завжди передує заголовок циклу, що містить позначення оператора циклуі вираз, що визначає (прямо чи опосередковано) кількість ітерацій. Зауважимо, що тіло циклу є операндом оператора циклу, отже, заголовок і тіло циклу становлять неподільну структурну одиницю програми. Надалі, використовуючи термін " оператор циклу", Маємо на увазі і заголовок, і тіло циклу.

Для організації циклів у всіх системах програмування існують спеціалізовані оператори циклів, Застосування яких позбавляє програміста необхідності програмувати цикли "вручну". MathCAD підтримує два види таких операторів – цикл із приреченням For (званий також циклом із лічильником) та цикл із передумовою While . Опис структури цих операторів наведено у таблиці 5.

5.4.1 Оператор For

Цей оператор слід використовувати у випадках, коли кількість ітерацій зумовлено, тобто відомо заздалегідь.

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

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

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

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

Список значеньпараметр циклу записується в заголовку циклу після символу " Î ", що позначає приналежність множині (цей символ не потрібно вводити "вручну" – він буде автоматично відображений при введенні оператора") For ). MathCAD допускає використання трьох формзапису цього списку: пряме перерахування- Елементи списку явно вказуються через кому, параметр отримує значення зі списку в порядку їх прямування; у стилі ранжованої змінної –елементи списку утворюють відповідний арифметичний ряд; масив- Елементи списку послідовно отримують значення елементів масиву в порядку прямування їх індексів (спочатку - стовпці зліва направо, потім - рядки зверху вниз).

Три програми, наведені малюнку 21, ілюструють різні варіанти використання оператора For .

Програма Fact(n) обчислює факторіал числа n . Оператор циклу в цій програмі входить до складу складового виразу, який, своєю чергою, є операндом умовного оператора Otherwise. Параметр циклу k отримує значення з цілого арифметичного ряду.

Програма Ch(V,N,p) обробляє вхідний вектор V , замінюючи у ньому значення p елементи, індекси яких задані елементами другого вхідного вектора N . У цьому прикладі перелік значень параметра циклу i заданий безліччю елементів вектора N . Зауважимо, що ці програми здійснюють вхідний контроль даних і блокують виконання основного алгоритму у разі, якщо фактичні аргументи програми задані некоректно.

Програма L(M,z) , наведена у прикладі в ), супроводжується докладними коментарями та не вимагає пояснень. Ця програма ілюструє можливість використання кількох операторів циклу, один із яких включений до числа операторів тілаіншого. Використання вкладених циклів- Типовий прийом, що використовується для обробки багатовимірних масивів.

Рисунок 21 – Приклади програмування циклів For


Малюнок 22 ілюструє використання операторів Break і Continue у тілі циклу. Як правило, ці оператори самі є операндами умовних операторів. If або Otherwise .

Оператор Break ("перервати") перериваєвиконання циклу та передає управління оператору, наступному після перерваного оператора циклу. Зауважимо, що якщо оператором Break перерваний вкладений цикл, виконання зовнішнього циклу буде продовжено.

Оператор Continue ("продовжити") діє інакше - він перериває лише поточну ітерацію циклуі передає керування заголовку цього циклу, після чого виконання циклу продовжуєтьсяз наступної ітерації (якщо, звісно, ​​перервана ітерація була останньої).

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

Рисунок 22 – Приклади використання операторів Break і Continue

Функція SumN(V) підсумовує ті елементи вектора, які містять скалярні дані числового типу, а інші елементи пропускаються. Функція Inverse(V) формує вектор, елементи якого значення, зворотні значенням відповідних елементів вихідного вектора. При цьому якщо черговий елемент містить число "0" або не є скаляром числового типу, цикл переривається. Зауважимо, що оператор Break в останньому прикладі не перериває роботи програми, а передає управління оператору Return , наступному безпосередньо після оператора For .

5.4.3 Оператор While

На відміну від оператора For , заголовок оператора While (в перекладі - " Бувай") не містить явних вказівок на кількість ітерацій - він містить логічний вираз, значення якого автоматично обчислюється перед початкомвиконання кожної чергової ітерації [†]. Поки цей вислів "істинно", ітерації циклу продовжуватимуться; як тільки після завершення чергової ітерації вираз стане "хибним", наступна ітерація циклу не буде виконана, і управління отримає оператор програми, наступний після оператора While .

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

Приклади використання оператора While наведено на малюнку 23. Наведено три варіанти вирішення однієї і тієї ж задачі: кожна з програм F0 , F1 і F2 повертає індекс першого з елементів вихідного вектораV , що перевищує задане значенняz .

Перша програма (приклад а ) додає одиницю до лічильника k у тілі циклу While доки черговий k -й елемент вихідного вектора не перевищить заданого значення z . Після цього цикл завершується, і програма повертає останнє змінене значення змінної k , яке є рішенням задачі. Зазначимо, що на відміну від циклу For , лічильник k тут необхідно обробляти окремими операторами: ініціалізувати (тобто надавати йому початкове значення) перед оператором циклу та змінювати його значення в тілі циклу.

Неважко помітити, що варіант а ) програми має суттєвий недолік: він не запобігає зацикленню програми у разі, коли завдання не має рішення, тобто коли параметр z перевищує значення найбільшого елемента вектора V . У цьому прикладі зациклення в такій ситуації реально не відбудеться – але це заслуга не нашої програми, а системи MathCAD, яка проконтролює вихід індексу вектора V за межі допустимих значень та видасть повідомлення про помилку.

Вільним від цього недоліку є варіант б ) програми, в якому тіло циклу містить додаткову перевірку допустимості чергового значення індексу та примусово перериває цикл оператором Break у відповідній ситуації із видачею текстового повідомлення.

Можливо, найбільш ефективним варіантом вирішення цього завдання є варіант в ), який взагалі не використовує оператор While . У цій програмі змінна k використана тільки для дотримання "чистоти стилю" – щоб унеможливити обробку параметра циклу i поза оператором For .

Рисунок 23 – Приклади програмування циклів While

Завдання №2

Програмування розгалужуваних обчислювальних процесів

Мета роботи

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

Нехай на площині x, y задана область D. Потрібно визначити чи потрапляє точка з координатами (x, y) в область D чи ні. Якщо потрапляє, необхідно обчислити функцію і змінної M, значення якої є ознакою «попадання» чи «непопадання», присвоїти значення M=1. В іншому випадку обчислити та покласти M=2.

Хід роботи

Алгоритм вирішення поставленого завдання:

1. Виписати область D та виписати функції та

2. Записати рівняння, що визначають межі області

3. Підготувати 7 точок, щоб частина точок знаходилася всередині D, а частина - поза нею.

4. Написати програму до виконання поставленої задачи.

5. Для вибраних точок отримати та записати результати рахунку.

f 1= tg(x)/e y f 2 =

(x>0 та y>0 і X**2+Y**2<=9) или (x<0 и y>0 та y<=x+4) или (x<0 и y<0 и x>(-4) та y>(-2))

то точка належить області D

1)(1;1)
2)(3;3)
3)(-1;2)
4)(-5;2)
5)(-2;-1)
6)(-5;-3)

Fortran MathCAD
x y z m c z m c
0.1573E+01 T 1.573
0.0751E+01 F 0.751
-1 -0.1211E+01 T -1.211
-5 0.083E+01 F 0.83
-2 -1 0. 394E+01 T 3.94
-5 -3 0.0282E+01 F 0.282
-3 0. 0271E+01 F 0.271

PRINT *, "X =?, Y =?"; READ *, X, Y

C=(x>0..and. y>0..and.X**2+Y**2<=9).or.(x<0..and.y>0..and.y<=x+4).or.(x<0..and.y<0..and.x>(-4).and.y>(-2))

PRINT 2, X, Y, Z, C, M

2 FORMAT ("X=",F7.3,3X,"Y=",F7.3,3X,"Z=",E11.4,3X,"C=",L2,3X,"M=", I2/)

END PROGRAM LAB2

FUNCTION F1(X,Y)

F1=tan(x)/exp(x)**y

FUNCTION F2(X,Y)

F2= (sqrt(sin(2*x+3*y)**2)**1./3.)

print*,"a,b,c=?";read "(2F7.3)",a,b,c

q=a>b.and.a

a c

w=b>a.and.b

b c

e=c>a.and.c

c b

28.,558.,345. 345.0000


Завдання №3

Програмування циклічних обчислювальних процесів

Мета роботи

Отримати навички програмування циклічних обчислювальних процесів. Вивчити цикли з кроком та цикли з умовою.

1. Записати розрахункові формули для обчислення доданку та кінцевої суми

2. Скласти алгоритм обчислення із заданою точністю суми кінцевого числа членів ряду у вказаному діапазоні зміни параметра x із заданим кроком. Для отримання кроку діапазон зміни x поділити на 10.

3. Скласти програму розв'язання задачі. У програмі для кожного значення x передбачити обчислення як наближеної, так і точної суми відповідного ряду у наведеній у таблиці формулі.

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

Хід роботи

1. Задати x0-початок циклу і xл-кінець циклу

2. Задаємо крок h за формулою

4. Скласти програму розв'язання задач рекурентним способом

5. Побудувати таблицю отриманих даних

Формула ряду:

Формула точного обчислення суми: π/4

1. x0= π/10 xk=9 π/10

3.


real:: a,b,c,eps,h,s,x,x0,xk,y,p

b=(sin*(x)*(2*n)-1+sin*((2*n-1)*x))/4*n-2

if(abs(a)

print 2, x, s, y, n; write(1,2)x,s,y,n

end do 2 format("x=",f6.3,3x,"s=",e10.3,3x,"y=",e10.3,3x,"n=",i5)

end program lab3


x S(x) y
0.314 0.324 0.785
0.565 0.622 0.785
0.817 0.979 0.785
1.068 1.404 0.785
1.319 1.43 0.785
1.57 -19.257 0.785
1.821 -533.961 0.785
2.072 -8.624E+3 0.785
2.324 -9.986E+4 0.785
2.575 -8.928E+5 0.785
2.826 -6.477E+6 0.785

Мета роботи:

Вивчити циклічні оператори for, while, do – while, навчитися складати та програмувати циклічні алгоритми.

Короткі теоретичні відомості

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

Оператор циклу for

Основна форма оператора циклу має вигляд

for (вираз_1; вираз_2; вираз_3)

оператор;

де вираз_1- Початкове значення параметра циклу;

вираз_2- Перевірка умови на продовження циклу;

вираз_3- Зміна параметра циклу (корекція);

оператор- Простий або складовий оператор мови С.

Схема роботи оператора наступна: лише один раз спочатку обчислюється вираз_1, потім перевіряється вираз_2, і якщо воно - «істина», то виконується циклічна ділянка програми, потім проводиться корекція параметра, і так доти, поки вираз_2 не набуде значення «брехня».

Наприклад: for (k=1; k<5; k++)

printf(“\n%d”, k);

Внаслідок виконання цього оператора друкуються у стовпчик цифри від 1 до 4.

Як параметр циклу можна використовувати змінну будь-якого базового типу.

Наприклад:

for(ch='a'; ch<=’z’; ch++) // Вывод на экран букв

printf(“%c”,ch); // Латинський алфавіт

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

Наприклад:

for(k=10; k>6;k++)

printf(“нескінченний цикл \n”);

Вийти із циклудостроково можна наступними способами:

За додатковою умовою;

Використовуючи такі оператори:

break;- вихід із циклу, в якому знаходиться break, управління передається на перший після циклу виконуваний оператор;

exit(int Kod);- вихід із програми;

return;- вихід із функції;

За допомогою оператора безумовного переходу goto<метка>;

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

Передавати керування ззовні всередину циклу забороняється.

Будь-який вираз циклу for у круглих дужках може бути відсутній, але символ «;» опускати не можна.

Наприклад:

for(; i<3; i++)

puts(“Hello!”);

Циклічні оператори while та do–while

Основна форма циклічного оператора while:

While (умова)

оператор;

де оператор

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

Основна форма оператора do – while:

оператор;

while (умова);

де оператор– це простий, складений чи порожній оператор.

Оператор dowhile- Оператор циклу з постумовою, тобто. спочатку виконується оператор, а потім перевіряється умова істинності. Оскільки циклі do–while умова перевіряється наприкінці циклу, цикл буде виконано хоча б один раз.

У циклах типу while і do–while допустимі самі способи дострокового виходу з циклу і дострокове завершення поточного кроку циклу, як й у операторі for, але у разі на відміну циклу for управління передається на перевірку умови. Для запобігання безкінечному циклу всередині циклів while і do–while потрібно передбачити зміну змінних, що входять до умови.

Наприклад:

for (i=1;i<=300;i++) // Печать целых чисел, кратных 5

if (i%5!=0) continue;

printf("%5d",i);

Приклади нескінченних циклів:

оператор;

2) while (число_не_0) // Завжди істинно!

оператор;

оператор;

while(число_не_0); // Завжди істинно!

Серед операторів циклу обов'язково має бути умова виходу.

Вкладені цикли

У разі вкладених циклів один цикл знаходиться всередині іншого, наприклад:

for(i=nn;i

for(j=mn;j

оператор;

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

Приклад:

for(i=1;i<10;i++) // Печать таблицы умножения

for(j=1;j<4;j++)

printf(“\n %d*%d=%2d”, i, j, i*j);

printf(“\n”);

Приклад використання оператора for

Обчислити. На друк програма повинна виводити проміжні та остаточні результати.

Текст програми може мати вигляд

#include

#include

puts(“Введіть N”);

scanf(“%d”,&N);

for (s=0, k=1; k<=N; k++) // В заголовке цикла можно выпол-

( // няти і подвійне присвоєння

printf("\nk=%ds=%f", k,s);

printf("\n ВІДПОВІДЬ: s=%f, Press any key...",s);

Варіанти індивідуальних завдань

Скласти програму визначення таблиці значень функції уу довільному діапазоні [ a,b] зміни аргументу хз довільним кроком h. Значення a, b, hвводяться з клавіатури. Таблиця має містити такі стовпці: порядковий номер, значення аргументу x, значення функції, повідомлення про зростання або зменшення функції, різницю двох сусідніх значень функції.

Визначити максимальне та мінімальне значення функції.

1. a=-p; b = p; h = 0,4.

2. a=0,7; b = 1,8; h = 0,1.

3. a=-0,5; b = 2,5; h = 0,2.

4. a=-0,9; b = 2,7; h = 0,3.

5. a=-2; b = 0,8; h = 0,2.

6. a=-1,9; b = 2,7; h = 0,3.

7. a = -0,4 p; b = 0,4 p; h = 0,5.

8. a=-0,3p; b = 1,3p; h = p/10.

9. a=-p/2; b = p/2; h=p/10.

10. a=-3; b = 3; h = 0,5.

Лабораторна робота №2

"Програмування циклічних обчислювальних процесів"

Мета роботи

Вивчення операторів циклу у мові С++.

Теоретична частина

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

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

Виконання будь-якого циклу включає початкову ініціалізацію змінних циклу, перевірку умови виходу, виконання тіла циклу та оновлення змінної циклу на кожній ітерації. Крім того, більшість мов програмування надають кошти для дострокового керування циклом, наприклад, оператори завершення циклу, тобто виходу з циклу незалежно від істинності умови виходу (у мові Сі – break) та оператори пропуску ітерації (у мові Сі – continue).

Розрізняють такі види циклів.


1. Безумовні цикли.Цикли , вихід із яких не передбачений логікою програми. Спеціальних синтаксичних засобів для створення нескінченних циклів, зважаючи на їх нетиповість, мови програмування не передбачають, тому такі цикли створюються за допомогою конструкцій, призначених для створення звичайних (або умовних) циклів. Наприклад, У мові С використовується цикл for(;;)із незаповненими секціями.

2. Умовні цикли.Це цикли, виконання яких керується деякою умовою, що перевіряється на початку або в кінці тіла циклу. Відповідно, умовні цикли бувають з передумовою та з постумовою. Цикл з передумовою - цикл, який виконується поки що істинно деяка умова, вказана перед його початком. Ця умова перевіряється довиконання тіла циклу, тому тіло може бути не виконано жодного разу (якщо умова від початку помилкова). У більшості процедурних мов програмування реалізується оператором while, Звідси його друга назва - while цикл. На мові С++ такий цикл має вигляд:

while(<условие>)

<тело цикла>

Цикл із постумовою -цикл, у якому умова перевіряється післявиконання тіла циклу. Звідси випливає, що цикл завжди виконується хоча б один раз. У мові Паскаль цей цикл реалізує оператор repeat..until, в Сі - do…while, наприклад:

<тело цикла>

while(<условие продолжения цикла>);

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

Цикл із виходом із середини- Найбільш загальна форма умовного циклу. Синтаксично такий цикл оформляється за допомогою трьох конструкцій: початку циклу, кінця циклу та команди виходу з циклу. Конструкція початку визначає точку програми, де починається тіло циклу, конструкція кінця - точку, де тіло закінчується. Усередині тіла повинна бути присутня команда виходу з циклу, при виконанні якої цикл закінчується і управління передається оператору, що йде за конструкцією кінця циклу. Природно, щоб цикл виконався більше одного разу, команда виходу має викликатися не безумовно, лише при виконанні умови виходу з циклу.

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

Цикл із лічильником - цикл, у якому деяка змінна змінює своє значення від заданого початкового значення до кінцевого значення з деяким кроком, і для кожного значення цієї змінної тіло циклу виконується один раз. У більшості процедурних мов програмування реалізується оператором for, в якому вказується лічильник (так звана «змінна циклу»), необхідна кількість проходів (або граничне значення лічильника) і, можливо, крок, з яким змінюється лічильник.

У деяких мовах, наприклад, Сі та інших, що походять від нього, цикл for, незважаючи на синтаксичну форму циклу зі лічильником, насправді є циклом з передумовою. Тобто в Сі конструкція циклу:


for (i = 0; i< 10; ++i)

Тіло циклу

фактично є іншою формою запису конструкції:

while (i< 10)

Тіло циклу

Тобто в конструкції for спочатку пишеться довільна пропозиція ініціалізації циклу, потім - умова продовження і, нарешті, деяка операція, що виконується після кожного тіла циклу (це не обов'язково має бути зміна лічильника; це може бути правка покажчика або якась зовсім стороння операція). Для мов такого виду вищеописана проблема вирішується дуже просто: змінна-лічильник поводиться абсолютно передбачувано і по завершенні циклу зберігає своє останнє значення.

Організація циклів у мові Сі++

1. Цикл for.

Цикл з використанням оператора for зручно використовувати, коли потрібне число ітерацій заздалегідь відомо. Синтаксис цього оператора має вигляд:

for (дія до початку циклу;

умова продовження циклу;

дії наприкінці кожної ітерації циклу) (

інструкція циклу;

інструкція циклу 2;

інструкція циклу N;

Існує окремий випадок цього запису (з лічильником):

for (лічильник = значення; лічильник< значение; шаг цикла)

тіло циклу;

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

Приклад: підрахунок суми всіх числа від 1 до 1000.

#include

using namespace std;

int i; // лічильник циклу

int sum = 0; / / Сума чисел від 1 до 1000.

setlocale(0, "");

for (i = 1; i<= 1000; i++) // задаем начальное значение 1, конечное 1000 и задаем шаг цикла - 1.

cout<< "Сумма чисел от 1 до 1000 = " << sum << endl;

2. Цикл while.

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

while (Умова) (

Тіло циклу;

Цей цикл буде виконуватися, поки умова, вказана в круглих дужках, є істинною. Приклад реалізації підсумовування чисел від 1 до 1000 за допомогою циклу while:

#include

using namespace std;

setlocale(0, "");

while (i< 1000)

cout<< "Сумма чисел от 1 до 1000 = " << sum << endl;

3. Цикл do while

Цикл do whileвідрізняється від whileтим, що з його виконанні циклу один прохід циклу буде виконаний незалежно від умови. Програма для вирішення задачі на пошук суми чисел від 1 до 1000 із застосуванням циклу do while:

#include

using namespace std;

setlocale(0, "");

int i = 0; // Ініціалізуємо лічильник циклу.

int sum = 0; // ініціалізуємо лічильник суми.

do (// виконуємо цикл.

) while (i< 1000); // пока выполняется условие.

cout<< "Сумма чисел от 1 до 1000 = " << sum << endl;

1. Розробити програму мовою С++ на вирішення завдання, відповідної обраному варианту.

2. Ввести, налагодити та відкомпілювати програму. Перевірити правильність її роботи.

1. Блок-схема алгоритму програми.

2. Лістинг програми з коментарями.

3. Результати контрольних прогонів.

Контрольні питання

1. Дайте визначення циклу, тіла циклу, ітерації.

2. Що така умова виходу із циклу, лічильник ітерацій?

3. Які етапи включає виконання будь-якого циклу?

4. Як працює цикл із постумовою?

5. Як працює цикл із передумовою?

6. Як працює цикл із лічильником?

7. Як реалізується цикл за допомогою оператора for?

8. Як реалізується цикл з допомогою оператора while?

9. Як реалізується цикл за допомогою оператора dowhile?

1. Вивести на екран наступну послідовність символів

2. Вводиться послідовність цілих чисел (0 – кінець послідовності), знайти різницю між найменшим серед позитивних та найбільшим серед негативних чисел.

3. Вводиться послідовність N цілих чисел, знайти різницю між добутком непарних чисел і найбільшим серед негативних чисел.

4. Вводиться послідовність цілих чисел, 0 – кінець послідовності. Визначити, чи послідовність містить хоча б два числа, кратних 3, 5 і 7.

5. Вводиться послідовність N цілих чисел. Визначити найбільше серед кратних 11.

6. Вводиться послідовність цілих чисел, 0 – кінець послідовності. Визначити, чи містить послідовність хоча б три негативні парні числа.

7. Вводиться послідовність N речовинних чисел. Визначити найменше число серед чисел більших 20.

8. Вводиться послідовність цілих чисел, 0 – кінець послідовності. Обчислити кількість позитивних чисел, кратних 7 і кратних 5, і суму негативних елементів послідовності.

9. Вводиться послідовність N речовинних чисел. Визначити середнє арифметичне серед елементів послідовності, кратних 7.

10. Вводиться послідовність чисел, 0 – кінець послідовності. Визначити чи є послідовність строго спадаючою.

12. Вводиться послідовність цілих чисел, 0 – кінець послідовності. Визначити, чи містить послідовність хоча б два позитивних числа, що стоять поруч.

13. Вводиться послідовність N речовинних чисел. Визначити, чи є послідовність знакочередної.

14. Вводиться послідовність N речовинних чисел. Визначити різницю між мінімальним позитивним та максимальним негативним елементами послідовності.

15. Знайти останні три числа кратні чотирьом у діапазоні від 1 до N. Обчислити суму цих чисел.

16. Вивести на екран наступну послідовність символів

18. Обчислити добуток останніх трьох чисел кратних 5 в діапазоні від N1 до N2.

19. Обчислити середнє арифметичне парних чисел, неразових чотирьом у діапазоні від 1 до K.

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

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

Що таке цикл у програмуванні?

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

З поняттям цикл ми зустрічаємося у програмуванні. У багатьох сферах нашого життя існують цикли.

Наприклад - кругообіг води в природі, це природний цикл у нашому житті.

А тепер розглянемо загальні правила та поняття, які використовуються в обчислювальних циклах.

Етапи циклічного процесу

У загальному випадку цикл має бути реалізований за 4 етапи:
  • 1 етап – підготовка циклу (ініціалізація).
    Завдання початкового значення параметру та змінної циклу.
    Параметр циклу- Ця величина, яка вважає число кроків циклу (число повторень циклу).
    Змінна циклу- Це величина, яка змінює своє значення на кожному етапі циклу.
    Ініціалізація– це завдання початкових значень параметра та змінної циклу.
  • 2 етап – тіло циклу.
    Це багаторазове повторення дія в циклі або обчислень за одним і тим самим математичним залежностям з різними значеннями змінних.
  • 3 етап – модифікація (зміна) циклу.
  • 4 етап – управління циклом.
    Це перевірка умови продовження чи початок циклу.
У pascal існує 3 оператори циклу, які можуть реалізувати будь-яку алгоритмічно – циклічну структуру :
  1. Оператор циклу із параметром
  2. Оператор циклу з передумовою
  3. Оператор циклу з постумовою
Детально їх ми розглянемо у наступних статтях.

 

 

Це цікаво: