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);


 

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

21307. Центр обеспечения безопасности (Windows Security Center) в операционной системе Windows XP SP2 1.16 MB
  Лекция: Центр обеспечения безопасности Windows Security Center в операционной системе Windows XP SP2 В этой лекции будет рассмотрен Центр обеспечения безопасности Windows Windows Security Center входящий в состав Windows XP SP2. С помощью этого инструмента пользователь имеет возможность не только контролировать состояние перечисленных выше компонентов но и получать рекомендации по устранению возникающих с этими компонентами проблем В этом занятии будет рассмотрен Центр обеспечения безопасности Windows Windows Security Center входящий...
21308. Средства анализа защищенности 42 KB
  Средства анализа защищенности исследуют сеть и ищут слабые места в ней анализируют полученные результаты и на их основе создают различного рода отчеты. Перечислим некоторые из проблем идентифицируемых системами анализа защищенности: 1. Системы анализа защищенности предназначены для обнаружения только известных уязвимостей описание которых есть у них в базе данных.
21309. Проектирование детали «Вал-шестерня» 354 KB
  По схеме силового нагружения вал-шестерня является двухопорной балкой. Опорными шейками служат: 260k6, которые используются для посадки подшипников поз. 55. Благодаря установке по схеме «враспор» осевой фиксации подшипников не требуется, что упрощает конструкцию шеек вал-шестерни
21310. Технологии межсетевых экранов 202.9 KB
  Основные задачи МЭ: Ограничить доступ пользователей из внешней сети к ресурсам внутренней сети. Обычно внешней сетью является более глобальная относительно внутренней сети например Интернет относительно корпоративной сети или локальная сеть относительно ресурсов локального компьютера. В случае с Интернетом пользователями внешней сети могут быть как удаленные пользователи и партнеры так и хакеры.
21311. Туннелирование 63 KB
  Сложность современных систем такова что без правильно организованного управления они постепенно деградируют как в плане эффективности так и в плане защищенности. Системы управления должны: позволять администраторам планировать организовывать контролировать и учитывать использование информационных сервисов; давать возможность отвечать на изменение требований; обеспечивать предсказуемое поведение информационных сервисов; обеспечивать защиту информации.700 выделяется пять функциональных областей управления: управление конфигурацией...
21312. Основные определения и критерии классификации угроз 87.5 KB
  Попытка реализации угрозы называется атакой а тот кто предпринимает такую попытку злоумышленником. Потенциальные злоумышленники называются источниками угрозы. Отметим что некоторые угрозы нельзя считать следствием какихто ошибок или просчетов; они существуют в силу самой природы современных ИС. Рассмотрим наиболее распространенные угрозы которым подвержены современные информационные системы.
21313. Хакерские атаки 928 KB
  Термин хакер здесь используется в его современном значении человек взламывающий компьютеры. Надо заметить что раньше быть хакером не считалось чемто противозаконным скорее это была характеристика человека умеющего профессионально обращаться с компьютерами. В наши дни хакерами мы называем тех кто ищет пути вторжения в компьютерную систему или выводит ее из строя.
21314. USING CONTEXT DATA IN INFORMATION RETRIEVAL 21 KB
  Proposed approach can be easily included in current search engines. This approach is not a complete alternative to classic methods applied in popular search engines, but it can be treated as an additional improvement that provides more efficient way in positioning on relevant document.
21315. Понятие электронно-цифровой подписи 38 KB
  Эта проблема решается при помощи ЭЦП. ЭЦП связывает содержимое документа и идентификатор подписывающего лица делает невозможным изменение документа без нарушения подлинности подписи и подтверждает принадлежность ЭЦП автору электронного документа. Алгоритмы формирования и проверки ЭЦП реализованы в соответствии с требованиями ГОСТ Р 34. ЭЦП Sign представляет собой вычисляемую по стандартизованному алгоритму математическую функцию хэшфункцию от содержимого подписываемых данных data информации документа и закрытого секретного ключа...