Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Розробка та реалізація програми з циклічною структурою



Ціль роботи: оволодіння навичками складання програми з циклічною структурою за допомогою операторів циклу while, do while і for та виконання її в IDE Borland C++ 5.0.

Завдання:

Завдання 4.1. Представити математичний запис фрагмента програми за варіантами, які наведені в таблиці 4.1, і обчислити значення змінної x після його виконання. Вказівка: замість n підставити номер варіанта.

Таблиця 4.1

Фрагмент програми Фрагмент програми
1-5 x=1; for(j=n; j>n; j--) x=x*j; x=2*x; 6-10 x=0; j=1; do x=x+j; j=j+2; while(j<=n);
11-15 x=0; for(j=1; j<=n; j++) x=x+2; x=2*x; 16-20 x=1; while(x<=n) x=x+1; x=2*x;
21-25 x=1; j=1; x1=n % 5; do x=x*x1; j=j+1; if(j==4) break; while(j<=5); 26-30 x=n; for(k=1; k<=6; k++){ if(k<3) continue; x=x+1; };

Завдання 4.2. Cклаcти програму табулювання функції з завдання 4.2 при зміні значення x від -1 до 1 з кроком 0,2 та виконати її в IDE Borland C++ 5.0.

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

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

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

while(вираз)оператор;

Виконання оператора циклу з передумовою починається з обчислення значення виразу. Якщо це значення false, то оператор не виконується (управління передається на оператор, який стоїть одразу за циклом). Якщо значення виразу true, оператор виконується, після чого знову обчислюється вираз. Щоб запобігти зациклюванню, слід передбачити зміну значення виразу всередині тіла циклу. Наприклад, після виконання наступного фрагмента програми:

a=true; x=5;

while(a || x<9){ //цикл завершиться, як тільки

a=!a; x=x+2; //вираз набуде значення false

}

змінна x має значення 11, а змінна a - 0 (false).

Оператор циклу з післяумовою do while складається з ключового слова do, за яким іде виконуваний у циклі оператор (послідовність операторів); ключового слова while і виразу логічного типу.

Загальний вигляд оператора циклу з післяумовою:

do оператор while(вираз);

Виконання цього оператора циклу відбувається так. Спочатку виконується оператор, а потім визначається значення виразу логічного типу. Якщо значення виразу false, то виконання циклу припиняється. Якщо це значення true, то виконується оператор, а потім знову обчислюється вираз. Наприклад, після виконання наступного фрагмента програми:



a=true; x=5;

Do

a=!a; x=x+2; //цикл завершиться, як тільки

while(a || x<9); //вираз набуде значення false

змінна x має значення 11, а змінна a - 0 (false).

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

Оператор циклу з параметром for складається з ключового слова for, за яким йдуть вираз1, крапка з комою (;), вираз2, крапка з комою (;), вираз3 у круглих дужках і виконуваний у циклі оператор (простий або складений).

Загальний вигляд оператора циклу for:

for(вираз1; вираз2; вираз3)оператор;

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

Виконання оператора циклу for починається з обчислення виразу1. Потім обчислюється вираз2. Якщо значення виразу2 false, то виконання циклу припиняється і управління передається наступному оператору. Якщо це значення true, то послідовно виконуються оператор і вираз3, а потім знову обчислюється вираз2.

Оператора циклу for еквівалентний наступній послідовності операторів:

вираз1;

while(вираз2){

оператор; вираз3;

}

Якщо немає виразу2, то вважається, що він має значення true. Оператор for(;;); представляє собою нескінченний цикл, який еквівалентний оператору while(true);.

Приклад. Після виконання наступного фрагмента програми:

for(a=true, x=5; a || x<9; a=!a, x+=2);

змінна x має значення 11, а змінна a - 0 (false).

Оператор break припиняє виконання оператора циклу (while, do while або for), в якому був виконан цей оператор. Управління передається на оператор, який стоїть одразу за оператором циклу.



Оператор continue припиняє виконання поточної ітерації оператора циклу (while, do while або for), в якому був виконан цей оператор, і здійснює перехід к виконанню наступної ітерації циклу. Оператор continue по дії протележен оператору break.

Приклад виконання роботи

Завдання 4.1. Представити математичний запис фрагмента програми

for(x=1,j=1; j<5; j++, x*=j);

и обчислити значення змінної x після його виконання.

Розв’язання

Цей фрагмент програми реалізує обчислення x!=1×2×...×5. Після виконання цього фрагмента x=120.

Завдання 4.2. Скласти програму табулювання функції y=ctgx при зміні значення x від a=-1 до b=1 з кроком h=0,5 і виконати її в IDE Borland C++ 5.0.

Розв’язання

1. Постановка задачі

Скласти програму табулювання функції y=ctgx при зміні значення x від a=-1 до b=1 з кроком h=0,5 на мові C++.

2. Методика розв’язання задачі

Методика розв’язання задачі збігається з методикою з приклада завдання 2.2 (при оформленні роботи треба навести методику наново).

3. Алгоритм розв’язання задачі

Алгоритм розв’язання задачі можна представити у вигляді такої послідовності дій:

Дія 1. Ввести значення a, b, h;

Дія 2. Присвоїти x значення a;

Дія 3. Повторювати наступні дії поки xb:

Дія 3.1. Перевірити умову (2.2). Якщо умова істинна, то обчислити значення функції y за формулою (2.1) і вивести x та y, інакше вивести x та повідомлення: ’не існує’;

Дія 3.2. Присвоїти x нове значення, яке дорівнює старому значенню x плюс крок h.

Запишемо алгоритм розв’язання задачі мовою C++, позначив змінні x, y, a, b, hвідповіднояк x, y, a, b, h (усі типу double).

4. Текст програми

#include <iostream.h>

#include <math.h>

voidmain(){

doublea,b,h,x,y;

cout<<" Введіть a,b,h: "; cin>>a>>b>>h;

for(x=a; x<=b; x+=h)

if(sin(x)!=0){

y=cos(x)/sin(x); cout<<" x="<<x<<" y="<<y<<endl;

}

else cout<<" x="<<x<<" y="<<" не існує"<<endl;

}

5. Результати роботи програми

Введіть a,b,h: -1. 1. 0.5

x=-1 y=-0.642093

x=-0.5 y=-1.83049

x= 0 y= не існує

x=0.5 y=1.83049

x=1 y=0.642093

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

1. Як працюють оператори циклу while, do while і for?

2. Чим цикл do while відрізняється від циклу while?

3. Коли у циклах while та for застосовують складений оператор?

4. Якій послідовності операторів еквівалентний оператор циклу for?

5. Як працюють оператори break та continue?


Робота № 5


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!