Лабораторная работа 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.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.
4. Отладка программы
При отладке программы можно проверять правильность выполнения каждой операции. Для этого сложные операторы-выражения, разбиваются на последовательность операторов-выражений, в каждом из которых выполняется только одна операция. Результат каждой такой операции выводится на экран или отслеживается в пошаговом режиме.
5. Результаты работы программы
При работе программы на экран было выдано следущее:
Введите x, y >3.3 1.1 t1 = 0.348897t2 = 0.01334056. Выводы
При выполнении лабораторной работы изучены следующие темы:
Приложение.
Операторы С++, применяемые в лабораторной работе
Операция | Назначение | Пример | |
Арифметические операторы | |||
+ | Сложение | 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.