Вычисление математических выражений
Автор: gr56t • Декабрь 17, 2023 • Лабораторная работа • 856 Слов (4 Страниц) • 139 Просмотры
Цель работы
Целью работы является вычисление сложных математических выражений, а также отладка программы для поиска ошибок.
Задание на лабораторную работу
Написать программу для расчёта двух выражений. Согласно варианту №9 эти выражения:
= - [pic 1][pic 2][pic 3]
= -4[pic 4][pic 5]
Подготовить тестовые примеры по второй формуле с помощью калькулятора. Значения, полученные в выражениях, должны быть равны.
В область допустимых значений входят все действительные числа.
Программа будет запрашивать повторный ввод значения угла в градусах, если пользователь введет некорректное значение, отличное от числа.
Описание созданных функций
Для выполнения программы потребуются следующие функции:
Имя: calculation1
Назначение: вычислить значение z1
Входные данные:
- g_a – значение угла α в градусах
- g_b – значение угла β в градусах
Выходные данные:
- z1 – результат вычисления выражения z1
Побочный эффект: отсутствует
Тестовые данные:
g_a | g_b | z1 |
30° | 150° | 3 |
90° | 90° | 0 |
5° | 120° | ≈1,63 |
Прототип: double calculation1(const double g_a, const double g_b)
Алгоритм:
- псевдокод
//Перевести градусы в радианы
//Вычислить значение по первой формуле
- блок-схема
[pic 6]
Имя: calculation2
Назначение: вычислить значение z2
Входные данные:
- g_a – значение угла α в градусах
- g_b – значение угла β в градусах
Выходные данные:
- z2 – результат вычисления выражения z2
Побочный эффект: отсутствует
Тестовые данные:
g_a | g_b | z2 |
30° | 150° | 3 |
90° | 90° | 0 |
5° | 120° | ≈1,63 |
Прототип: double calculation2(const double g_a, const double g_b)
Алгоритм:
- псевдокод
//Перевести градусы в радианы
//Вычислить значение по второй формуле
- блок-схема
[pic 7]
Текст программы
#include <iostream>
#include <cmath>
#include <clocale>
using namespace std;
const double pi = 3.141592653589793238462;
double calculation1(const double g_a, const double g_b)
{
//Перевести градусы в радианы
const double a = g_a * pi / 180;
const double b = g_b * pi / 180;
//Вычислить значение по первой формуле
return pow(cos(a) - cos(b), 2) - pow(sin(a) - sin(b), 2);
}
double calculation2(const double g_a, const double g_b)
{
//Перевести градусы в радианы
const double a = g_a * pi / 180;
const double b = g_b * pi / 180;
//Вычислить значение по второй формуле
return -4 * pow(sin((a - b) / 2), 2)*cos(a + b);
}
int main()
{
setlocale(LC_ALL, "rus");
...