67973

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

Практическая работа

Информатика, кибернетика и программирование

У стандарті мови C++ визначена стандартна бібліотека функцій, яка складається з великої кількості окремих тематичних бібліотек. Наприклад: стандартні бібліотеки, що залишилися в «спадок» від C; стандартні бібліотеки C++; API – функції, що надаються операційною системою...

Украинкский

2014-09-16

146.5 KB

2 чел.

i: Практична робота №5 до лекції №12. 

Практична робота № 5

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

Мета|ціль| роботи: програмування обчислювального процесу лінійної структури з використанням арифметичних операцій та математичних функцій  на мові С++.

Теми для попереднього опрацювання:

  •  арифметичні операції;
  •  порядок|лад| виконання операцій;
  •  стандартні математичні функції.

Варіанти індивідуальних завдань.   Див. додаток 1. 

Приклад розв’язання задачі 

Функції бібліотеки математичних функцій.

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

У стандарті мови C++ визначена  стандартна бібліотека функцій, яка складається з великої кількості окремих тематичних бібліотек.  Наприклад:

  1.  стандартні бібліотеки, що залишилися в "спадок" від C;
  2.  стандартні бібліотеки C++;
  3.  API – функції, що надаються операційною системою;

Щоб використовувати функцію, потрібно знати:

  1.  у якій бібліотеці вона знаходиться,
  2.  як називається функція;
  3.  які параметри передаються на вхід функції;
  4.  який результат повертає функція.

Математичні функції

Особливості реалізації: підключення заголовного файлу 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-х функцій.

  1.  Головна функція:

Вхідні дані:  два цілих і два дійсні числа ;   

Вихідні дані :  виведення на екран результату функції ділення двох  чисел..

  1.  Функція ділення двох цілих чисел.  Ім'я функції -  Div.    

Вхідні дані:      цілі числа numbFirst,numbSecond; 

Значення, яке повертає функція :  частка від ділення.

Прототип функції:    int Div(int numbFirst,int numbSecond);

  1.  Функція ділення двох дійсних  чисел.  Ім'я функції -  Div.    

Вхідні дані:      дійсні числа  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 – змінні дійсного типу .

Алгоритм.

Алгоритм розв’язання задачі - лінійний і|та| складається з|із|:

  •  визначення констант  a, b, c, d .
  •  введення значень x і|та| y.
  •  обчислення|підрахунки| значення t1;
  •  обчислення|підрахунки| значення t2;
  •  виведення значень t1 і|та| t2.

Оптимізація алгоритму

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

  •  Вираз ax зустрічається один раз в першій формулі і|та| двічі в другій. Отже, можна один раз провести множення ax, а потім використовувати цей результат.
  •  У другій формулі двічі зустрічається множення квадратного кореня на тангенс - це обчислення|підрахунок| можна так само зробити один раз.


Текст програми для компілятора 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


 

А также другие работы, которые могут Вас заинтересовать

64887. ІМПЛЕМЕНТАЦІЯ СТАНДАРТІВ КРАЇН ЄВРОСОЮЗУ В МІГРАЦІЙНУ ПОЛІТИКУ УКРАЇНИ 142.5 KB
  Інтегрування України в європейські та світові інституційні структури вимагає приведення її чинного законодавства з питань міграції до європейських та міжнародних стандартів. Із часу становлення України як суверенної держави...
64888. ОСОБЛИВОСТІ ПРИРОДНОГО ВІДТВОРЕННЯ КОРІННИХ ДЕРЕВОСТАНІВ У ГРАБОВИХ ДІБРОВАХ ЗАХІДНОГО РЕГІОНУ УКРАЇНИ 514 KB
  Висока цінність деревини дуба приуроченість дубових лісостанів до високопродуктивних ґрунтів зумовили суттєве зменшення їх площі. Значної актуальності ця проблема набуває в період сучасного поступового потепління зростання сухості клімату та динамічного розширення площ...
64889. ІНФОРМАЦІЙНА ТЕХНОЛОГІЯ УЛЬТРАЗВУКОВОГО ТЕХНІЧНОГО ДІАГНОСТУВАННЯ БУРИЛЬНИХ ТРУБ В ПРОЦЕСІ ЇХ ЕКСПЛУАТАЦІЇ 625.5 KB
  Технічне діагностування ТД труб нафтогазового сортаменту як один із ефективних засобів забезпечення їх експлуатаційної надійності є невідємною складовою частиною технології спорудження й експлуатації глибоких свердловин на нафту і газ.
64890. Теоретичні основи та агроекологічне обґрунтування заходів оптимізації продукційних процесів рослин у зрошуваних агрофітоценозах Південного Степу України 1.72 MB
  Формування продуктивності зрошуваних агрофітоценозів є складним багатофакторним процесом, оскільки залежить від природних (температура і вологість повітря, кількість атмосферних опадів, фотосинтетично активна радіація та ін.) й агротехнологічних...
64891. МЕТОДИКА ФОРМУВАННЯ ПІЗНАВАЛЬНОЇ САМОСТІЙНОСТІ СТУДЕНТІВ АГРОТЕХНІЧНОГО КОЛЕДЖУ У ПРОЦЕСІ ВИВЧЕННЯ ЗАГАЛЬНОТЕХНІЧНИХ ДИСЦИПЛІН 168 KB
  Це неможливо без змін у формуванні пізнавальної самостійності студентів без суттєвих змін змістового організаційного і методичного забезпечення навчального процесу. Проведений аналіз наукової літератури засвідчив що дослідження різних аспектів самостійної навчальної...
64892. МЕТОДИ ПІДТРИМКИ ПРИЙНЯТТЯ РІШЕНЬ НА ОСНОВІ ОРДИНАЛЬНИХ ОЦІНОК З УРАХУВАННЯМ ДОСВІДУ 383 KB
  Експертне оцінювання обєктів альтернатив застосовується в найрізноманітніших галузях людської діяльності. Потреба у експертному відборі найкращого за низкою критеріїв обєкту альтернативи виникає у випадках коли задача прийняття рішення є слабко структурованою...
64893. ПСИХОЛОГІЧНІ ОСОБЛИВОСТІ РОЗУМІННЯ ІНШОМОВНОГО НАУКОВОГО ТЕКСТУ СТУДЕНТАМИ ГУМАНІТАРНИХ СПЕЦІАЛЬНОСТЕЙ 212.5 KB
  Особлива увага приділяється інтерпретації символів іншомовного наукового тексту як складника професійного становлення спеціалістів. Зміст тексту може бути передано як у усній так і письмовій формах. Для подальшого розуміння проблеми інтерпретації наукового іншомовного тексту вагомим є вивчення питання...
64894. МОРФО-ФІЗІОЛОГІЧНІ ОСОБЛИВОСТІ ТА ПРОДУКТИВНІСТЬ МОЛОЧНОЇ ХУДОБИ РІЗНИХ ПОРІД В УМОВАХ ПРИАЗОВ’Я 10.02 MB
  Для проведення науково-господарського досліду сформували три дослідні групи першу з яких укомплектували тваринами місцевої селекції червоної степової породи; а другу і третю імпортними тваринами: червоної литовської породи та чорнорябої литовської породи.
64895. УДОСКОНАЛЕННЯ МЕТОДІВ КОНТРОЛЮ ПОКАЗНИКІВ ЯКОСТІ У ТЕХНОЛОГІЇ ПРИРОДНИХ ТА МОДИФІКОВАНИХ ЖИРІВ 329 KB
  Визначена мета обумовила вирішення наступних наукових задач: систематизувати теоретичні та прикладні аспекти визначення показників складу і якості та методів контролю в технології натуральних і модифікованих жирів...