Арифметические операции и математические функции языка С

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

Арифметические операции и математические функции языка С

1. Цель работы

Целью лабораторной работы является получение практических навыков в программировании алгебраических выражений и использовании математических функций библиотеки языка C.

2. Темы для предварительной проработки

· стандартные математические функции ([1], 3.3;

[1], Приложение А. Стандартная библиотека)

3. Задания для выполнения

Составьте программу, которая подсчитывает и выводит значение t1 и t2 по формулам, которые приведены в Вашем варианте индивидуального задания. Определите области допустимых значений параметров формул и задайте произвольные значения из этих областей. Параметры, которые имеют имена: n и m - целые, остальные параметры - с плавающей точкой. Значения параметров с именами x и y должны вводиться с клавиатуры, значения остальных - задаваться как начальные значения при объявлении соответствующих переменных. Допускается (и даже желательно) упростить/разложить формулы для того, чтобы обеспечить минимизацию объема вычислений.

4. Варианты заданий

Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8

Вариант 9

Вариант 10

5. Пример решения задачи

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

1. Основной алгоритм
Алгоритм решения задачи - линейный и состоит из:

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

Выражение ax встречается один раз в первой формуле и дважды - во второй. Следовательно, можно один раз произвести умножение a*x, а потом… Во второй формуле дважды встречается умножение квадратного корня на тангенс -… Выражение c2-b2 можно разложить на (c+b)(c-b). До разложения в выражении было две операции умножения (возведение в…

1.3. Ограничения на значения параметров

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

a * x + b > 0; y * x + d > 0

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

c2 - b2 >= 0

В знаменателе выражения не может быть 0, отсюда:

 

кроме того:

 

5.2. Определение переменных программы

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

5.3. Разработка текста программы

в которых находятся описания функций ввода- вывода и математических функций соответственно. Далее открываем главную функцию: 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;…

4. Отладка программы

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

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

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

Введите x, y >3.3 1.1 t1 = 0.348897t2 = 0.0133405

6. Выводы

При выполнении лабораторной работы изучены следующие темы:


Приложение.

Операторы С++, применяемые в лабораторной работе

Операция Назначение Пример
Арифметические операторы
+ Сложение x=x+z
- Вычитание x=y-z
*. Умножение x=y*z
/ Деление x=y/z
% Взятие по модулю или остаток; возвращает остаток целочисленного деления x=y%z
Операторы присваивания
= Присваивание x=10
+= Сложение с присваиванием x+=10 (то же, что x=x+10)
-= Вычитание с присваиванием x-=10 (то же, что x=x-10)
*= Умножение с присваиванием x*=10 (то же, что x=x*10)
/= Деление с присваиванием x/=10 (то же, что x=x/10)
Логические операторы
&& Логическое И if ( (x<4) &&(y==7))
|| Логическое ИЛИ if ( (x<4) ||(x==7))
Операторы отношения
== Равно if (x==10){…}
!= Не равно if (x!=10){…}
< Меньше if (x<10){…}
> Больше if (x>10){…}
<= Меньше или равно if (x<=10){…}
>= Больше или равно if (x>=10){…}
Унарные операторы
++ Инкремент (операция увеличения) x++(то же, что x=x+1)
-- Декремент (операция уменьшения) x--(то же, что x=x-1)
       

Для выполнения математических операций в программах используются арифметические операторы C++. Программы могут выполнять арифметические операции с константами (например, 3*5) или с переменными (например, payment — total).

Операция увеличения обеспечивает быстрый способ прибавления единицы к значению переменной. Следующие операторы, например, увеличивают значение переменной n на 1:

n = n + 1; n++;

Когда C++ встречает операцию увеличения, он сначала выбирает значение переменной, добавляет к этому значению единицу, а затем записывает результат обратно в переменную. При использовании операций увеличения программы могут размещать оператор увеличения до или после переменной, как показано ниже:

++n; n++;

Так как первый оператор появляется до переменной, он называется префиксным оператором увеличения. Аналогично этому, второй оператор появляется после переменной и называется постфиксным оператором увеличения. C++ трактует эти два оператора по-разному. Например, рассмотрим следующий оператор присваивания:

nnn = n++; —постфиксный оператор увеличения, сначала присваивает переменной nnn значение n, а затем увеличивает n на единицу.

nnn = ++ n; —префиксный оператор увеличения, сначала увеличивает n на единицу n, а затем присваивает переменной nnn значение n.

Аналогичным образом двойной знак минус (--) соответствует оператору уменьшения C++. Префиксный и постфиксный операторы уменьшения C++ работают так же, как и соответствующие операторы увеличения, с той лишь разницей, что они уменьшают значение переменной на 1.

 

Выражения

Каждый операнд является, в свою очередь, выражением или одним из его частных случаев — константой или переменной. Арифметические выражения на С++ должны быть записаны в одну строку. Круглые… Для гарантированной последовательности операций, операции выполняются в соответствии с приоритетами —правилами…

Математические библиотечные функции

Функция записывается путем записи имени функции, после которого записывается левая круглая скобка, затем аргумент функции (или список аргументов,… Аргументами функции могут быть константы, переменные или выражения.  

Некоторые стандартные математические функции.

abs - абсолютное значение целого числа - |x| int abs(int x); labs - абсолютне значення "длинного" целого числа - |x|: long… fabs - абсолютное значение числа с плавающей точкой - |x|: double fabs(double x);