11720

Арифметичні операції і математичні функції мови C++

Лабораторная работа

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

Лабораторна робота №6 Тема: Арифметичні операції і математичні функції мови C Мета роботи:Отримання практичних навиків в програмуванні алгебраічних виразів і використанні математичних функцій бібліотеки мови С. Теми для попереднього опрацьовування ...

Украинкский

2013-04-10

130.5 KB

50 чел.

Лабораторна робота   №6

Тема: Арифметичні операції і математичні функції мови C++

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

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

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

Завдання для виконання

     Складіть програму, яка підраховує і виводить значення t1 і t2 по формулах, які приведені у Вашому варіанті індивідуального завдання. Визначте області допустимих значень параметрів формул і задайте довільні значення з цих областей. Параметри, які мають імена: n і m - цілі, решта параметрів - з плаваючою крапкою. Значення параметрів з іменами x і у повинні вводитися з клавіатури, значення інших - задаватися як початкові значення при оголошенні відповідних змінних.      

Варіанти індивідуальних завдань

1)

2)

3)

4)

5)

6)

7)

8)

9)

10)

11)

12)

13)

14)

15)

16)

17)

18)

19)

20)

21)

22)

23)

24)

25)

26)

27)

28)

29)

Приклад рішення задачі

    1. Розробка алгоритму рішення.

    1.1. Основний алгоритм

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

  •  введення значень x і у;
  •  обчислення значення t1;
  •  обчислення значення t2;
  •  виводу значень t1 і t2.

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

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

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

   В другій формулі двічі зустрічається множення квадратного кореня на тангенс - це обчислення можна так само зробити один раз.

   Вираз c2-b2 можна розкласти на (c+b)(с-b). До розкладання у виразі було дві операції множення (зведення в ступінь 2) і одна - складання. Після розкладання - два складання і одне множення, що вигідніше для обчислень.

    1.3. Обмеження на значення параметрів

     Аргумент функції, яку обчислює логарифм, не може бути 0 або менше. Звідси витікають вимоги до значень:

    а * x + b > 0; у * x + d > 0

    Аргумент функції обчислення квадратного кореня не може бути менше 0, звідси:

    c2 - b2 >= 0

    В знаменнику виразу не може бути 0, звідси:

    

крім того:

    

    2. Визначення змінних програми

    Для вирішення задачі нам знадобляться змінні для представлення кожного параметра формул - а, b, з, d, x, у і результатів - t1, t2. Крім того, доведеться ввести додаткову змінну ах для зберігання проміжного результату, необхідного для оптимізації. Тип всіх змінних - double.

 

   3. Розробка тексту програми

    Програма починається з включення файлів:

   #include <stdio.h>

   #include <math.h>

в яких знаходяться описи функцій уведення - виведення і математичних функцій відповідно.

    Далі відкриваємо головну функцію:

int main(void)

    Включаємо описи змінних (див. п.5.2):

double x,y;

   double a=12.5,  b=1.3;

   double c=14.1,  d=2.7;

   double t1, t2;

   double ах;

    Вводяться значення для змінних x і у:

   printf("Введіть x, у >");

   scanf("%lf %lf",&x,&y);

    Далі обчислюється перше проміжне значення:

   ax=a*x;

і перший результат:

   t1=(b*log(ax+b)/a+d*log(y*x+d)/у)/з;

    Обчислюється другий проміжний результат:

   ax=sqrt((с-b)*(c+b))*tan(ах);

і обчислюється другий остаточний результат:

   t2=log((ax+b)/(ах-b))/2/a/b;

    Отримані результати виводяться на екран:

   printf("t1 = %lg\n",t1); printf("t2 = %lg\n",t2);

    Повний текст програми приводиться нижче.

/*******************************************************/

/*           Лабораторна  робота №6                   */

/*          Типи даних і уведення-виведення                   */

/*        Приклад виконання. Варіант №30.              */

/*******************************************************/

#include <stdio.h>

#include <math.h>

int main(void){

/* параметри, які вводяться */

double x,y;

/* параметри, які задаються в програмі */

double a=12.5,  b=1.3;

double c=14.1,  d=2.7;

double t1, t2;   /* результати */

double ах;       /* робоча змінна */

 printf("Введіть x, у >");

 scanf("%lf %lf",&x,&y);

 ax=a*x;

 t1=(b*log(ax+b)/a+d*log(y*x+d)/у)/з;

 ax=sqrt((с-b)*(c+b))*tan(ах);

 t2=log((ax+b)/(ах-b))/2/a/b;

 printf("t1 = %lg\n",t1);

 printf("t2 = %lg\n",t2);

 return 0;

}

    

4. Відладка програми

    При відладці програми можна перевіряти правильність виконання кожної операції. Для цього складні оператори-вирази, розбиваються на послідовність операторів-виразів, в кожному з яких виконується тільки одна операція. Результат кожної такої операції виводиться на екран або відстежується в покроковому режимі.

    

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

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

Введіть x, у >3.3 1.1

t1 = 0.348897

t2 = 0.0133405

Додаток. Деякі стандартні математичні функції.

Стандартні математичні функції знаходяться у файлі math.h.

abs - абсолютне значення цілого числа - |x|

   int abs(int x);

labs - абсолютне значення "довгого цілого числа" - |x|:

   long labs(long x);

fabs - абсолютне значення числа з плаваючою крапкою - |x|:

   double fabs(double x);

sqrt - витягання квадратного кореня:

   double sqrt(double x);

роw - зведення в ступінь:

   double роw(double x, double у);

cos - косинус - cos x (тут і далі x задається в радіанах):

   double cos(double x);

sin - синус - sin x:

   double sin(double x);

tan - тангенс - tg x:

   double tan(double x);

асos - арккосинус - arccos x:

   double cos(double x);

asin - арксинус - arcsin x:

   double sin(double x);

atan - арктангенс - arctg x:

   double atan(double x);

atan2 - арктангенс - arctg x/y:

   double atan2(double x, double у);

exp - експонента :

   double exp(double x);

log - натуральний логарифм - ln x:

   double log(double x);

log10 - десятковий логарифм - log10x:

   double log10(double x);


 

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

43843. Моделирование на ARIS бизнес-процессов с учётом требований безопасности 1.08 MB
  Темой дипломной работы является: “Моделирование на RIS бизнеспроцессов с учётом требований безопасности. Объектом исследования являются∙ инструментальная среда RIS регламент Центра сертификации ключей ЗАО Инфраструктура открытых ключей. Цели и задачи исследования ознакомление с принципами работы инструментальной среды RIS способами моделирования бизнеспроцессов. моделирование регламента Центра сертификации ключей ЗАО Инфраструктура открытых ключей с учётом требований безопасности...
43844. Правове регулювання укладання та виконання господарських договорів 649.5 KB
  Загальна характеристика зобов’язальних правовідносин Поняття та склад зобовязання Норми які регулюють зобовязання становлять один із найважливіших інститутів цивільного права зобовязальне право. Норми зобовязального права є найбільш значною частиною цивільного законодавства. Система зобовязального права складається із інститутів Загальної частини та інститутів Особливої частини. Загальна частина включає: поняття зобовязання сторони в зобовязанні; виконання зобовязання; забезпечення виконання зобовязання; припинення...
43845. Пластиковые карты, как один из видов банковского продукта на примере АКБ «Московский залоговый банк» 4.93 MB
  Мировая практика проведения расчетов по кредитным картам свидетельствует о том, что использование карты значительно упрощает процесс покупки товара или услуги, равно как и хранения и защиты своих сбережений. Пластиковая карта позволяет ее владельцу оперативно и без проблем получать наличные в любое время суток, пользоваться разнообразными скидками при покупке товаров и услуг, контролировать свои расходы за определенные периоды времени.
43846. Реконструкция схемы электроснабжения “Черемшанка” Курагинского района 1.38 MB
  Коммунально – бытовой сектор поселка “Черемшанка” обслуживают две трансформаторных подстанций 10/0,38 кВ. Потребительские воздушные линии выполнены проводом АС – 35. Общее количество домов составляет 160 штук и в них проживает 944 человека. Кроме этого, в селе имеются социально – культурные учреждения: клуб, магазины, школа, больница, сельский совет и т. д.
43847. Оптимізація транспортних мереж NGN на основі технології IP/MPLS для боротьби з пульсаціями мультисервісного трафіку та досягнення заданих показників якості обслуговування 1.67 MB
  1 АНАЛІЗ ПОБУДОВИ ТРАНСПОРТНОЇ МЕРЕЖІ НА ОСНОВІ ТЕХНОЛОГІЇ MPLS.2 Особливості побудови транспортної мережі NGN.3 Маршрутизація в мережі з комутацією по міткам. 2 ОБҐРУНТУВАННЯ ВИБОРУ МЕТОДА ОПТИМІЗАЦІЇ ТРАНСПОРТНОЇ МЕРЕЖІ ІР MPLS.
43848. Hасчет характеристик направленности вибраторных антенн в присутствии щелевого экрана 4.46 MB
  Моделирование вибраторных антенны с использованием программного пакета XFDTD. Геометрия исследуемой антенны. Исследование влияния металлического экрана с отверстием на диаграмму направленности антенны. Исследование влияния плоского металлического экрана с отверстием на диаграмму направленности антенны.
43849. Aвтоматизация теплового пункта 1.71 MB
  обеспечивая в каждом помещении наиболее комфортные условия для персонала по температуре влажности воздуха и освещенности; получать объективную информацию о работе и состоянии всех систем и своевременно сообщать диспетчерам о необходимости вызова специалистов по сервисному обслуживанию в случае отклонения параметров любой из систем от штатных показателей; контролируя максимально возможное число параметров оборудования точек контроля в здании и показателей загруженности систем перераспределять энергоресурсы между системами обеспечивая...
43850. Создание информационной базы и программы расчета доходной части бюджета территории на примере города Харьков, Украина 1.04 MB
  В современных условиях местного самоуправления местными органами большое значение имеет правильное и достаточно оптимальное планирование местного бюджета т. Основным принципом создания и ведения бюджета Украины стал бессистемный централизм пришедший на смену жесткой административной системе. Поэтому появилась...
43851. Право собственности 401.5 KB
  Право собственности граждан. Понятие и виды права собственности граждан. Субъекты права собственности граждан. Объекты права собственности граждан.