Приклад
Програма роботи
Постановка завдання
Мета роботи
ЛАБОРАТОРНА РОБОТА № 4
ЦИКЛІЧНИЙ ОБЧИСЛЮВАЛЬНИЙ ПРОЦЕС. ТАБУЛЮВАННЯ ФУНКЦІЇ
Дослідити роботу операторів циклу алгоритмічної мови С++, засвоїти ме-тодику складання, налагодження та розрахунку програм циклічних обчислювальних процесів для табулювання функцій на ПЕОМ.
Скласти схему алгоритму, таблицю символічних імен та програму мовою С++ відповідно до заданого варіанта. Налагодити та розв’язати задачу на ПЕОМ.
Теоретичні відомості
Цикли утворюються для того, щоб виконати деякий оператор чи групу операторів кілька разів. В мові С++ існує три оператора циклу: for, while і do while. Перший з них формально записується у вигляді
for (вираз_1; вираз_2; вираз_3) тіло_циклу.
Тіло циклу складається з одного або кількох операторів, об’єднаних фі-гурними дужками { ... } (після блока крапка з комою не ставиться). У виразах 1, 2, 3 фігурує спеціальна змінна, що називається керуючою. За її значенням установлюється необхідність повторения циклу або виходу з нього.
Вираз_1– початкове значення, вираз_2 – кінцеве значення керуючої змінної, а вираз_3 – крок, з яким має змінювати своє значення керуюча змінна з подольшої ітерації.
3.1. Записати запропанований викладачем варіант завдання з п. 5.
Ознайомитись з рекомендованою літературою та конспектом лекцій.
3.2. Програмування задачі:
– скласти таблицю символічних імен;
– скласти схему алгоритму або псевдокод (за вказіквою викладача);
– скласти програму розв’язання задачі мовою С++.
3.3. Розв’язання задачі на ПЕОМ.
На ПЕОМ набрати, відлагодити та розв’язати складену програму.
3.4. Оформлення звіту.
Звіт повинен містити:
– номер лабораторної роботи та її назву;
– умову задачі та дані свого варіанта;
– таблицю символічних імен;
– схему алгоритму (або псевдокод);
– лістинг (або рукопис) програми;
– результати розрахунку задачі;
– висновки.
Побудувати таблицю значень для функції на відрізку [0,3p] з числом розбиття відрізка m=10.
Розв’язання.
Таблиця символічних імен
Математичне ім’я | Ім’я у програмі | Смислове значення | Змінна | |
Тип | Значення | |||
f | f | Функція | double | Результат |
x | x | Аргумент функції | double | З’ясовується у процесі |
a | a | Початкове значення інтервалу | double | Уводиться з клавіатури |
b | b | Кінцеве значення інтервалу | double | Уводиться з клавіатури |
m | m | Число розбиття | int | Уводиться з клавіатури |
step | step | Крок розбиття | double | З’ясовується у процесі |
i | i | Керуюча змінна | int | Змінне значення |
Текст програми мовою С++
для компіляторів Borland C
#include <iostream.h>
#include <math.h>
int main()
{
double f, step, a, b, x;
int i, m;
cout<<”Уведіть початкове значення відрізку”<<endl;
cin>>a;
cout<<”Уведіть кінцеве значення відрізку”<<endl;
cin>>b;
cout<<”Уведіть число розбиття”<<endl;
cin>>m;
step =(b – a)/m; // визначаємо, з яким кроком змінюються значення x
x = a; // задаємо початкове значення x
for ( i = 0; i <=10; i++ )
{
f = x*sin( x ); // присвоюємо значенню y поточне значення x
cout <<"Значення функції f["<<x<<"]="<<f<<endl;
x = x + step; // змінюємо поточне значення аргументу на наступне
}
return 0;
}
5. Варіанти завдань
Кожен студент вибирає варіант завдання за номером у списку групи.
Завдання. Скласти схему алгоритму, таблицю символічних імен та програму для обчислення значень функції відповідно до заданого варіанта.
1. Побудувати таблицю значень для функції на відрізку [a,b] з числом розбивання відрізка m:
Варіант | Функція | Відрізок | Число розбиття |
![]() | [0,p/2] | 10 | |
![]() | [p/4, p/2] | 15 | |
![]() | [p/3,2p/3] | 20 | |
![]() | [0, p/4] | 10 | |
![]() | [p/4,p/2] | 15 | |
![]() | [0,1] | 20 | |
![]() | [0.5,1] | 10 | |
![]() | [2,7] | 15 | |
![]() | [0,p/2] | 20 | |
![]() | [0,3p] | 10 | |
![]() | [p/8,2/p] | 10 | |
![]() | [p/4,4/p] | 20 | |
![]() | [p/6,2p/3] | 10 | |
![]() | [p/3,3p/3] | 15 | |
![]() | [0,p/4] | 20 | |
![]() | [p/4,p/2] | 10 | |
![]() | [0,2p/3] | 15 | |
![]() | [p/2,p] | 20 | |
![]() | [p/4,p/2] | 10 | |
![]() | [p/2,p] | 15 | |
![]() | [1,10] | 20 | |
![]() | [0,1] | 10 | |
![]() | [1,2] | 12 | |
![]() | [10,20] | 20 | |
![]() | [-p/2,p/2] | 25 |
___________________________________________________________________________________________