67973
Обчислення виразів за допомогою математичних функцій
Практическая работа
Информатика, кибернетика и программирование
У стандарті мови C++ визначена стандартна бібліотека функцій, яка складається з великої кількості окремих тематичних бібліотек. Наприклад: стандартні бібліотеки, що залишилися в «спадок» від C; стандартні бібліотеки C++; API – функції, що надаються операційною системою...
Украинкский
2014-09-16
146.5 KB
3 чел.
i: Практична робота №5 до лекції №12.
Практична робота № 5
Обчислення виразів за допомогою математичних функцій.
Мета роботи: програмування обчислювального процесу лінійної структури з використанням арифметичних операцій та математичних функцій на мові С++.
Теми для попереднього опрацювання:
Варіанти індивідуальних завдань. Див. додаток 1.
Приклад розвязання задачі
Функції бібліотеки математичних функцій.
Теоретична частина.
У стандарті мови C++ визначена стандартна бібліотека функцій, яка складається з великої кількості окремих тематичних бібліотек. Наприклад:
Щоб використовувати функцію, потрібно знати:
Математичні функції
Особливості реалізації: підключення заголовного файлу math.h, який містить прототипи функцій.
Приклад: Написати програму, яка обчислення куб дійсного числа за допомогою математичної функції з імям pow.
Прототип функції (файл math.h): double pow(double x, double y);
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double n;
cin>>n;
cout<<"Куб числа "<<n<<" = "<<pow(n,3)<<endl;
cout<<"\n\n";
system("pause");
}
Неправильний варіант реалізації:
int n=5;
cout<<pow(n,3)<<endl;
Компілятор виведе повідомлення про помилку.
error C2668: 'pow' : ambiguous call to overloaded function
Неоднозначний виклик перенавантажуваної функції
Неправильний варіант реалізації:
int n=5;
cout<<pow(n,3.)<<endl;
Приклад: Обчислити висоти трикутника, якщо відомі його сторони
Вхідні дані: сторони трикутника a, b, c, які задаємо з клавіатури.
Вихідні дані: висоти трикутника ha, hb, hc;.
Алгоритм:
Формула обчислення висоти трикутника.
,
, де р= (a+d+с) /2 - півпериметр трикутника.
Квадратний корінь є формулою Герона для обчислення площі трикутника.
Проміжні змінні:
perimeter - периметр трикутника p;
square - площа трикутника
Ми не перевірятимемо значення на допустимість (хоча в реальних програмах обов'язково потрібно це робити) - сторони трикутника не можуть бути відємними або нульовими.
Особливості реалізації: підключення заголовного файлу math.h, який містить прототипи функцій.
double sqrt(double x);
Текст програми:
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double a, b, c; // сторони трикутника
double ha, hb, hc; // висоти трикутника
double perimeter, square;
cout<<"Задайте сторони трикутника: ";
cin>>a>>b>>c;
perimeter = (a+b+c)/2;
square = sqrt(perimeter*(perimeter-a)*(perimeter-b)*(perimeter-c)); ha=2/a*square ;
cout<<"hа ="<<ha<<endl;
hb = 2/b*square ;
cout<<"hb ="<<hb<<endl;
hc = 2/c*square ;
cout<<"hc ="<<hc<<endl;
cout<<endl<<endl;
system("pause");
return;
}
Контрольный тест:
Прямоугольный треугольник:
Задайте стороны треугольника: 3 4 5
hа =4
hb =3
hc =2.4
Равносторонний треугольник.
Задайте стороны треугольника: 1 1 1
hа =0.866025
hb =0.866025
hc =0.866025
Равнобедренный треугольник.
Задайте стороны треугольника: 3 3 2
hа =1.88562
hb =1.88562
hc =2.82843
Перевантаження функцій
Перевантаження функцій - це використання одного імені функції для декількох функцій.
Приклад. Написати дві функції для виконання ділення двох чисел. У першій - параметри цілого типу, у другої - дійсного.
Программа складається з 3-х функцій.
Вхідні дані: два цілих і два дійсні числа ;
Вихідні дані : виведення на екран результату функції ділення двох чисел..
Вхідні дані: цілі числа numbFirst,numbSecond;
Значення, яке повертає функція : частка від ділення.
Прототип функції: int Div(int numbFirst,int numbSecond);
Вхідні дані: дійсні числа numbFirst,numbSecond;
Значення, яке повертає функція : частка від ділення.
Прототип функції: double Div(double numbFirst,double numbSecond);
Текст програми.
#include <iostream>
using namespace std;
int Div(int a, int b); // пртотип функції Div
double Div(double a, double b); // пртотип функції Div
void main()
{
cout<<Div(2,3)<<endl;
cout<<Div(2.,3.);
cout<<endl<<endl;
system("pause");
return;
}
int Div(int numbFirst, int numbSecond)
{
return numbFirst/numbSecond;
}
double Div(double numbFirst, double numbSecond)
{
return numbFirst/numbSecond;
}
Результат
0
0.666667
Приклад розвязання задачі. Назад
Скласти програму, яка підраховує і виводить на екран значення змінних t1 і t2 відповідно до заданих формул. Значення деяких параметрів, можуть бути цілими числами або числами з плаваючою точкою. Вони повинні вводитися з клавіатури. Значення інших - задаватися як початкові значення при оголошенні відповідних змінних. У разі потреби, допускається (і навіть бажано) спростити формули для того, щоб забезпечити мінімізацію об'єму обчислень.
Вхідні дані:
x і y змінні дійсного типу;
a, b, c, d - константи дійсного типу.
Вихідні дані:
t1 і t2 змінні дійсного типу .
Алгоритм.
Алгоритм розвязання задачі - лінійний і складається з:
Оптимізація алгоритму
Проаналізуємо, як в можна зменшити об'єм обчислень.
Текст програми для компілятора Visual Studio 2005
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double x, y;
const double a=12.5,b=1.3,c=14.1,d=2.7;
double t1, t2;
double ax; // робоча змінна
cout<<"Введіть x, y : ";
cin>>x>>y;
ax=a*x;
t1=(b*log(ax+b)/a+d*log(y*x+d)/y)/c;
ax=sqrt((c - b)*(c+b))*tan(ax);
t2=log((ax+2)/(ax - 2))/(2*a*b);
cout<<"\n t1 ="<<t1<<"\n t2 ="<<t2;
cout<<"\n\n";
system("pause");
return;
}
Відладка програми
При відладці програми бажано перевіряти правильність виконання кожної операції. Для цього складні оператори-вирази, розбиваються на послідовність простих операторів-виразів, в кожному з яких виконується тільки одна операція. Результат кожної такої операції виводиться на екран або відстежується в покроковому режимі.
Результат
Введіть x, y : 5 1.2
t1 =0.375863
t2 =-0.0270576
Додаток 1. Бібліотека математичних функцій. Назад
Для використання функцій необхідно підключити заголовний файл math.h.
Імя функції |
Призначення |
Прототип функції |
Приклади |
abs |
абсолютне значення цілого числа - |x| |
int abs(int x); |
|
labs |
абсолютне значення "довгого" цілого числа - |x|: |
long labs(long x); |
|
fabs |
абсолютне значення числа з плаваючою точкою - |x|: |
double fabs(double x); |
если х>0,то fabs(x)=x если х=0,то fabs(x)=0.0 если х<0,то fabs(х)=-x |
sqrt |
витягання квадратного кореня : |
double sqrt(double x); |
sqrt (900.0)= 30.0 sqrt(9.0)= 3.0 |
pow |
піднесення до ступеня: |
double pow(double x, double y); |
pow( 2,7)= 128.0 pow(9,0.5)= 3.0 |
cos |
косинус - x (тут і далі x задається в радіанах) : |
double cos(double x); |
cos(0.0)=1.0 |
sin |
синус - x: |
double sin(double x); |
sin(0.0)=0.0 |
tg |
тангенс X (х в радианах). |
double tan(double x); |
tan(0.0)=0.0 |
arccos |
арккосинус - x: |
double acos(double x); |
|
arcsin |
арксинус - x: |
double asin(double x); |
|
arctg |
арктангенс - x: |
double atan(double x); |
|
arctg |
арктангенс - x/y: |
double atan2(double x, double y); |
|
exp |
експонента: |
double exp(double x); |
ехр(1.0)= 2.718282 ехр(2.0)= 7.389056 |
log |
натуральний логарифм - ln x (основание е) |
double log(double x); |
log(2.718282)=1.0 log(7.38905)= 2.0 |
log10 |
десятковий логарифм - log10x: |
double log10(double x); |
log10(1.0)=0.0 log10(10.0)=1.0 log10(100.0)=2.0 |
ceil |
Повертає найближче ціле, більше х |
double ceil(double x) |
Ceil(9.2)=10 Ceil(-9.8)=-9 |
floor |
Повертає найближче ціле, менше х |
double floor(double x) |
floor(9.2)=9.0 floor(-9.5 )= -10.0 |
Додаток 2. Варіанти індивідуальних завдань Назад
Варіант 1 Практична робота №2 |
Варіант 2 Практична робота №2 |
|
|
Варіант 3 Практична робота №2 |
Варіант 4 Практична робота №2 |
|
|
Варіант 5 Практична робота №2 |
Варіант 6 Практична робота №2 |
|
|
Варіант 7 Практична робота №2 |
Варіант 8 Практична робота №2 |
|
|
Варіант 9 Практична робота №2 |
Варіант 10 Практична робота №2 |
|
|
PAGE 6
FILENAME \p C:\Anna_2013\Ci_2013_2014\Lesson_C_12_Mathematics_Function_Lec_Lab5_Control\Lab\C_LAB_05_Function_Math_L12_Metodichka_st_ukr.doc DATE \@ "M/d/yyyy" 10/26/2013
А также другие работы, которые могут Вас заинтересовать | |||
58562. | Тема революции и любви в творчестве В. Маяковского | 3.98 MB | |
Цель: дать представление учащихся о любовной лирике Маяковского и о теме революции в творчестве поэта; познакомить их с фактами биографии Маяковского... | |||
58563. | Чергування о, е з і у коренях слів | 62 KB | |
Мета: На основі практичних вправ ознайомити учнів із чергуванням голосних у словах спільнокореневих слів; закріплювати знання про будову слова; розвивати вміння зіставляти узагальнювати; формувати навички самостійної роботи з підручником... | |||
58564. | Про що розповідає музика | 57.5 KB | |
Робота над вивченням нової пісні. Показ пісні з попередньо поставленим запитанням. Поміркуйте чи трапляється влітку те що описане в цій пісні. Аналіз пісні Яка ця пісня за характером веселаграйливасвітла В якому темпі виконана жваво. | |||
58565. | Музичний дощик | 239 KB | |
Навчальна: Розучування пісні Ой єсть в лісі калина слухання та розучування пісні Іди іди дощику слухання В.Слухання пісні Іди іди дощику Вчитель: Одним із музикантів у природі є дощик. озучування пісні Іди іди дощику... | |||
58566. | Урок музики та позакласна музично-виховна робота в сільській школі | 81.5 KB | |
Фольклор і повязана з ним система музичних знань умінь і навичок учнів мають визначати основний зміст роботи вчителя музики сільської школи забезпечувати принципи структурної єдності музичного виховання і освіти на етапах: учбовий матеріал діяльність вчителя його художньоестетична орієнтація; 2. Проведення в рамках шкільного уроку музики комплексного вивчення музичних та літературних фольклорних джерел з метою формування в учнів міцних асоціативних звязків між народною музикою літературою і образотворчим мистецтвом;... | |||
58567. | Музичний мультфільм конспект уроку | 51.5 KB | |
Виконання пісні за допомогою графічного зображення Прослухаємо слова пісніа потім будемо рухати сніжинку. Прослухаємо слова Буде ковзанка весела бпроплескати ритмоскладами Проговоримо слова. | |||
58568. | Музичні звуки: голосні та тихі. Розучування пісні «Півникове горе». Слухання музики: Дмитра Кабалевського «Сурмач і луна», Петра Чайковського «Баба-яга» | 46.5 KB | |
Діти називають правила: Сидіти під час співу потрібно рівно руки тримати на колінах; Дихання набираємо спокійно наче нюхаємо квіти не піднімаючи плечей; Розподіляємо повітря так щоб його вистачило на всю музичну фразу; Під час співу слухаємо своїх товаришів не викрикуємо прислухаємось до звучання інструмента; Голосні звуки співаємо округлено виразно чітко. Давайте заспіваємо звук соль.Я граю і співаю Повторюємо разом тільки співаємо протяжно і рівним звучанням. Я граю і співаю Також співаємо дзвінко і протяжно. | |||
58569. | ТЕОРІЯ Й МЕТОДИКА МУЗИЧНОЇ ОСВІТИ В ПОЧАТКОВИХ КЛАСАХ ШКІЛ АДИГЕЇ | 550.5 KB | |
Учителеві варто визначати пізнавальну цінність кожного твору й звязувати це з конкретними завданнями музичного навчання й виховання, що дозволить знайти методично вірні шляхи подачі музичного матеріалу на уроці. | |||