Читайте также: |
|
Тема. Обчислення значень математичних функцій. Табуляція функцій
Мета:Навчитись писати програми на мові С для обчислення значень математичних функцій, які знаходяться в бібліотечному файлі math.h. Протабулювати задану функцію на заданому проміжку і з заданим кроком.
1 Короткі теоретичні відомості
Бібліотека математичних функцій. Велика частина можливостей мови С міститься в стандартних бібліотечних функціях. Розглядаються наступні класи функцій.
- Математичні функції.
- Функції роботи з часом і датами.
- Функції обробки похибок.
- Функції пошуку і сортування даних.
Математичні функції. Велика частина можливостей мови С міститься в стандартних бібліотечних функціях. Розглядаються наступні класи функцій.
1. Математичні функції.
2. Функції роботи з часом і датами.
3. Функції обробки похибок.
4. Функції пошуку і сортування даних.
Прототипи математичних функцій знаходяться в бібліотечному файлі math.h. Всі вони повертають значення типу double. (дійсні числа з подвійною точністю). Аргументи тригонометричних функцій задаються в радіанах, а не в градусах.
1 рад. = 57.296
360 = 2рі рад.
Прототипи математичних функцій наведено в табл. 1.
Таблиця.1 Прототипи математичних функцій
№ п/п | Функція | Прототип | Значення |
2. Тригонометричні функції | |||
arccosx | double acos(double x) | Повертає арккосинус x. Аргумент знаходиться в межах , значення функції - в інтервалі . | |
arcsinx | double asin(double x) | Повертає арксинус x. Аргумент знаходиться в межах , значення функції - в інтервалі . | |
arctgx | double atan(double x) | Повертає арктангенс x. Аргумент знаходиться в межах , значення функції - в інтервалі . | |
arctg2x | double atan2(double x, double y) | Повертає арктангенс . Аргумент знаходиться в межах , значення в інтервалі . | |
cosx | double cos(double x) | Повертає косинус x. Значення функції знаходиться в інтервалі | |
sinx | double sin(double x) | Повертає синус x. Значення функції знаходиться в інтервалі | |
tgx | double tan(double x) | Повертає тангенс x. Значення функції знаходиться в інтервалі . | |
3. Степеневі і логарифмічні функції | |||
exp() | double exp(double x) | Повертає експоненту аргументу | |
log() | double log(double x) | Повертає натуральний логарифм аргументу, який має бути додатним | |
log10() | double log10(double x) | Повертає логарифм по основі 10 аргументу, який має бути додатним | |
ldexp() | double ldexp(double x, int y) | Повертає | |
4. Інші математичні функції | |||
double sqrt(double x) | Повертає квадратний корінь аргументу x, який має бути додатнім | ||
ceil() | double ceil(double x) | Повертає найменше ціле число, яке перевищує аргумент, 4.5=5, а –4.5=-4 | |
int abs(int x) | Повертає абсолютне значення аргументу цілого типу | ||
long int labs(long int x) | Повертає абсолютне значення аргументу довгого цілого | ||
floor() | double floor(double x) | Повертає найбільше ціле число, яке не перевищує аргумент, -4.5=-5, а 4.5=4 | |
double pow(double x, double y) | Повертає . Якщо , і у 0 або і у не ціле, то помилка | ||
fmod() | double atan2(double x, double y) | Повертає дійсну остачу від ділення , з тим знаком, що в , якщо х=0, функція повертає 0 |
2 Постановка завдання.
Протабулювати функцію, задану у варіанті на проміжку з кроком (b-a)/k, де (k=10). Результати обчислень вивести на екран у вигляді таблиці пар чисел і . Виконати завдання пошуку і обробки даних відповідно до варіанту. Якщо дані не існують, вивести про це повідомлення.
3 Варіанти індивідуальних завдань
№вар. | Функція | Проміжок | Пошук і обробка даних |
1. | Обчислити суму першого і останнього значення функції. Визначити кількість всіх значень функції. | ||
2. | Обчислити суму всіх значень функції, для яких виконується нерівність | ||
3. | Обчислити добуток всіх значень функції, для яких виконується нерівність | ||
4. | Обчислити суму першого і останнього значення функції. Визначити кількість всіх значень функції. | ||
5. | Обчислити середнє арифметичне всіх від’ємних значень функції | ||
6. | Обчислити середнє арифметичне всіх додатних значень функції | ||
7. | Обчислити добуток значень аргументу , для яких досягається мінімальне та максимальне значення функції. | ||
8. | Визначити суму додатних значень функції. | ||
9. | Обчислити суму значень аргументу , для яких досягається мінімальне та максимальне значення функції. | ||
10. | Визначити кількість від’ємних значень функції. | ||
11. | Обчислити модуль першого і останнього значення функції. | ||
12. | Обчислити суму мінімального та максимального значення функції. | ||
13. | Обчислити добуток мінімального та максимального значення функції. |
4 Методичні вказівки
1. Перед написанням програми ще раз переглянути теоретичний матеріал і приклади програм, що ілюструють особливості використання математичних функцій у С-програмах. Окрему увагу звернути на область визначення функцій.
6. Написати відповідну функцію (чи декілька функцій), звертаючи увагу на типи опису параметрів.
7. Підключити бібліотеку математичних функцій.
8. Відкомпілювати програму і виконати її. Зафіксувати результати кожної реалізації.
9. Оформити звіт з лабораторної роботи, дотримуючись вимог щодо його змісту.
5 Приклад виконання лабораторної роботи
Протабулювати функцію на проміжку з кроком (b-a)/k, де (a=-1, b=1, k=10). Результати обчислень вивести на екран у вигляді таблиці пар чисел і . Визначити кількість від’ємних значень функції. Якщо дані не існують, вивести про це повідомлення.
Текс програми мовою С
include <stdio.h>
#include <math.h>
double x, y, a, b, h, z;
int i, k=10, kil=0;
void main()
{
printf ("Programa Lab_5\n");
a=-1;
b=1;
k=10;
h=(b-a)/k;
for (x=a; x<=b; x=x+h)
{z=2*sin((x-7)/2.);
if (z<0)
printf("x=%lf\targument <0\n", x);
else
{
y=-log(2*sin((x-7)/2));
if(y<0) kil=kil+1;
printf("x=%lf\ty=%lf\n", x,y);
}
}
printf("kil=%d\n", kil);
printf ("\n");
}
Результати роботи програми
Programa Lab_5
x=-1.000000 y=-0.414494
x=-0.800000 y=-0.318841
x=-0.600000 y=-0.201892
x=-0.400000 y=-0.057960
x=-0.200000 y=0.122121
x=-0.000000 y=0.354440
x=0.200000 y=0.671225
x=0.400000 y=1.153624
x=0.600000 y=2.147735
x=0.800000 argument <0
x=1.000000 argument <0
kil=4
6 Контрольні запитання
1. Що таке формальні і фактичні параметри?
2. Скільки операторів return може бути в функції?
3. Складові частини функції?.
4. Напишіть на мові С логарифмічні і степеневі функції?
5. Яку бібліотеку необхідно підключити при використанні математичних функцій?
6. Як записується функція ?.
7. Як записується функція ?.
Дата добавления: 2015-07-17; просмотров: 190 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лабораторна робота № 11-12 | | | Лабораторна робота № 15 |