-
Автор темы
- #1
Проблема состоит в том, что математические функции не работают.
И как починить это:
И как починить это:
C++:
#include <iostream> // подкючаем библиотеку
#include <cmath> // подкючаем библиотеку
#include <math.h> // подкючаем библиотеку
using namespace std; // пишем для того чтобы потом не писать кучу раз
long double fact(int N)
{
if (N < 0) // если пользователь ввел отрицательное число
return 0; // возвращаем ноль
if (N == 0) // если пользователь ввел ноль,
return 1; // возвращаем факториал от нуля - единицу
// Вычисляем факториал в цикле
long double result = 1;
for (int i = 1; i <= N; i++) // создаём цикл
{
result *= i;
}
return result;
}
float a, b, c, d;
double kg, gr, cent, mgr, ton, cm, ml, met, km, de;// объявляем глобальные переменные
char action; // переменная для выбора действия
int main() // ну тут всё ясно - скажем начало программы
{
setlocale(LC_ALL, "Russian"); // подключаем русский язык
cout << "*Здравствуй, дорогой плользователь.\n Если хотите произвести действие, то введите: 1 \n Если хотите произвести перевод едениц, то введите: 2 \n\n Ваш выбор: ";
cin >> b;
if (b == 1)
{
system("cls");
cout << "Вы выбрали цифру №1. Прошу, выберите действие, которое хотите произвести:\n\n";
cout << "1. Сложение\n";
cout << "2. Вычитание\n";
cout << "3. Умножение\n";
cout << "4. Деление\n";
cout << "5. Возведение в степень\n";
cout << "6. Корень\n";
cout << "7. Логарифм\n";
cout << "8. Факториал\n";
cout << "9. Синус\n";
cout << "10. Косинус\n";
cout << "11. Квадратное уровнение\n";
cout << "12. Проценты\n";
cout << "13. Тангенс\n";
cout << "14. Котангенс\n";
cout << "Введите номер: \n";
cin >> b;
cin >> action; // читаем переменную для выбора действия
switch (action) // оператор выбора для переменной
{
case 1: // если пользователь выбрал сложение
{
system("cls");
cout << "Введите числа: \n";
cin >> a >> b; // читаем переменные
cout << a + b; // выводим ответ выражения
break;
}
case 2: // если пользователь выбрал вычитание
{
system("cls");
cout << "Введите числа: \n";
cin >> a >> b; // читаем переменные
cout << a - b; // выводим ответ выражения
break;
}
case 3: // если пользователь выбрал умножение
{
system("cls");
cout << "Введите числа: \n";
cin >> a >> b; // читаем переменные
cout << a * b; // выводим ответ выражения
break;
}
case 4: // если пользователь выбрал деление
{
cout << "Введите числа: \n";
cin >> a >> b; // читаем переменные
cout << a / b; // выводим ответ выражения
break;
}
case 5: // если пользователь выбрал степени
{
system("cls");
system("cls");
cout << "Введите число: \n";
cin >> a;
system("cls");
cout << "Введите степень числа: \n";
cin >> c;
system("cls");
d = pow(a, c);
cout << "Ваш ответ: ";
cout << d;
}
case 6: // если пользователь выбрал корень
{
system("cls");
cout << "Введите число: \n";
cin >> a;
system("cls");
sqrt(a);
cout << "Ваш ответ: ";
cout << a;
}
case 7: // если пользователь выбрал логарифмы
{
system("cls");
cout << "Какой логарифм вам нужно найти: \n";
cout << "1 - натуральный логарифм \n 2 - десятичный логарифм \n";
cin >> a;
system("cls");
if (a == 1)
{
cout << "Введите число: \n";
cin >> a;
log(a);
cout << "Ваш ответ: ";
cout << a;
}
if (a == 2)
{
cout << "Введите число: \n";
cin >> a;
log10(a);
cout << "Ваш ответ: ";
cout << a;
}
}
case 8: // если пользователь выбрал факториал
{
int N;
cout << "Введите число для вычисления факториала: ";
cin >> N;
cout << "Факториал для числа " << N << " = " << fact(N) << endl << endl; // fact(N) - функция для вычисления факториала.
break;
}
case 9: // если пользователь выбрал синус
{
cout << "Подсказка: вы выбрали синус, поэтому первое число это катет, второе гипотенуза \n";
cin >> a >> b; // читаем переменные
cout << a / b; // выводим ответ выражения
break;
}
case 10: // если пользователь выбрал косинус
{
cout << "Подсказка: вы выбрали косинус, поэтому первое число это катет, второе гипотенуза \n";
cin >> a >> b; // читаем переменные
cout << a / b; // выводим ответ выражения
break;
}
case 11: // если пользователь выбрал квадратное уровнение
cout << "Подсказка: вы выбрали квадратное уровнение, поэтому пешите по формуле a^2+b+c \n";
{
double a, b, c, d, x1, x2; // объявляем локальные переменные
cin >> a >> b >> c; // читаем переменные
d = b * b - 4 * a * c; // находим дискриминант по формуле
if (d > 0) // если дискриминант больше 0
{
x1 = ((-b) + sqrt(d)) / (2 * a); // не ну это реально нужно объяснять?
x2 = ((-b) - sqrt(d)) / (2 * a); // тут ведь и дураку понятно
cout << "x1 = " << x1 << "\n"; // выводим x1
cout << "x2 = " << x2 << "\n"; // выводим X2
}
if (d == 0) // если d=0
{
x1 = -(b / (2 * a)); // по формуле
cout << "x1 = x2 = " << x1 << "\n"; // выводим
}
if (d < 0) // честно, мне лень писать это
cout << "D < 0, корней не существует"; // что это? Правильно - вывод
break;
}
case 12: // если пользователь выбрал проценты
{
double a, b, c, d; //
cin >> a; //
b = a / 100; //
cout << "Один процент: " << b << "\n" << "Введите кол-во процентов "; //
cin >> c; //
d = b * c; //
cout << c << " процентов ровны: " << d; //
break;
}
case 13: // если пользователь выбрал тангенс
{
cout << "Подсказка: вы выбрали тангенс, поэтому первое число это малый катет, второе большой \n";
double a, b;
cin >> a >> b;
cout << a / b;
}
case 14: // если пользователь выбрал коттангенс
{
cout << "Подсказка: вы выбрали коттангенс, поэтому первое число это большой катет, второе малый \n";
double a, b;
cin >> a >> b;
cout << b / a;
}
}
}
if (b == 2) // если пользователь выбрал переводы единиц измерений
{
system("cls");
cout << "1. Единицы измерения длины\n";
cout << "2. Еденицы измерения массы\n\n";
cout << "Введите номер: \n";
cin >> b;
if (b == 1)
{
system("cls");
cout << "Ваш выбор: 1\n";
cout << "Введите длинну в см: \n";
cin >> cm;
cout << " \n";
ml = cm * 10; // миллиграммы
de = cm / 10; // дециметры
met = cm / 100; // метры
km = cm / 1000; // километры
cout << "1. Миллиметры: " << ml << "\n" << "2. Дециметры: " << de << "\n" << "3. Метры: " << met << "\n" << "4. Километры: " << km << "\n";
}
if (b == 2)
{
system("cls");
cout << "Ваш выбор: 2\n";
cout << "Введите массу в кг: \n";
cin >> kg;
cout << " \n";
mgr = kg * 1000000; // миллиграммы
gr = kg * 1000; // граммы
cent = kg / 100; // центнер
ton = kg / 1000; // тонна
cout << "1. Миллиграммы: " << mgr << "\n" << "2. Граммы: " << gr << "\n" << "3. Центнеры: " << cent << "\n" << "4. Тонны: " << ton << "\n";
}
}
}