Дробь

Innen: testwiki
Ugrás a navigációhoz Ugrás a kereséshez

Sablon:Ru-noun-table

Sablon:Rusf

  1. Sablon:Rumatek törtszám

Дроби в математике и программировании (C++)

1. Что такое дробь в математике? 📌 Дробь – это число, которое представляет часть целого.

🔹 Виды дробей 1. Обыкновенная дробь ab Где: - a – числитель (сколько частей взято). - b – знаменатель (на сколько частей разделили).

2. Десятичная дробь 0.5,3.14,2.75 ✅ Записывается через запятую (в математике) или точку (в программировании).

3. Смешанная дробь 234 ✅ Можно записать как неправильную дробь: 2×4+34=114

2. Основные операции с дробями # 1️⃣ Сложение дробей 📌 Приводим к общему знаменателю и складываем числители. 13+25=1×5+2×33×5=5+615=1115

2️⃣ Вычитание дробей 📌 Аналогично сложению: 3416=3×61×44×6=18424=1424=712

3️⃣ Умножение дробей 📌 Числители умножаем на числители, знаменатели – на знаменатели. 23×45=2×43×5=815

4️⃣ Деление дробей 📌 Умножаем на обратную дробь: 37÷52=37×25=3×27×5=635

3. Работа с дробями в C++

📌 В C++ можно работать с дробями с помощью типа double или классов.

🔹 Простой калькулятор дробей (double)

#include <iostream>
using namespace std;

int main() {
    double num1, denom1, num2, denom2;
    char op;

    cout << "Введите первую дробь (числитель знаменатель): ";
    cin >> num1 >> denom1;

    cout << "Введите оператор (+, -, *, /): ";
    cin >> op;

    cout << "Введите вторую дробь (числитель знаменатель): ";
    cin >> num2 >> denom2;

    double result;
    switch (op) {
        case '+': result = (num1 / denom1) + (num2 / denom2); break;
        case '-': result = (num1 / denom1) - (num2 / denom2); break;
        case '*': result = (num1 / denom1) * (num2 / denom2); break;
        case '/': result = (num1 / denom1) / (num2 / denom2); break;
        default: cout << "Неверный оператор!"; return 1;
    }

    cout << "Результат: " << result << endl;
    return 0;
}

📌 Пример работы:

Введите первую дробь (числитель знаменатель): 1 3
Введите оператор (+, -, *, /): +
Введите вторую дробь (числитель знаменатель): 2 5
Результат: 0.733333

4. Класс Fraction для работы с дробями

📌 Создадим класс для дробей с сокращением и арифметическими операциями.

#include <iostream>
using namespace std;

// Функция для нахождения НОД (наибольшего общего делителя)
int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}

// Класс дроби
class Fraction {
public:
    int num, denom;

    // Конструктор дроби
    Fraction(int n, int d) {
        if (d == 0) {
            cout << "Ошибка: знаменатель не может быть 0!" << endl;
            exit(1);
        }
        int common = gcd(n, d); // Упрощаем дробь
        num = n / common;
        denom = d / common;
    }

    // Сложение
    Fraction operator+(const Fraction& f) const {
        return Fraction(num * f.denom + f.num * denom, denom * f.denom);
    }

    // Вычитание
    Fraction operator-(const Fraction& f) const {
        return Fraction(num * f.denom - f.num * denom, denom * f.denom);
    }

    // Умножение
    Fraction operator*(const Fraction& f) const {
        return Fraction(num * f.num, denom * f.denom);
    }

    // Деление
    Fraction operator/(const Fraction& f) const {
        return Fraction(num * f.denom, denom * f.num);
    }

    // Вывод дроби
    void print() const {
        cout << num << "/" << denom << endl;
    }
};

int main() {
    Fraction f1(3, 4);
    Fraction f2(2, 5);

    cout << "Сложение: "; (f1 + f2).print();
    cout << "Вычитание: "; (f1 - f2).print();
    cout << "Умножение: "; (f1 * f2).print();
    cout << "Деление: "; (f1 / f2).print();

    return 0;
}

📌 Вывод:

Сложение: 23/20
Вычитание: 7/20
Умножение: 6/20
Деление: 15/8

🔹 Как работает код?
- НОД (GCD) используется для сокращения дроби.
- Операции +, -, *, / перегружены.
- Объекты Fraction можно складывать, вычитать, умножать и делить.



5. Где используются дроби?

Математика (арифметика, алгебра, уравнения).
Физика (ускорение, плотность, сопротивление).
Компьютерная графика (соотношение сторон, координаты).
Финансы (проценты, кредиты, инвестиции).



6. Вывод

🔹 Дробь – это часть целого, записанная в виде числитель/знаменатель.
🔹 В C++ можно использовать double, но класс Fraction позволяет работать с точными дробями.
🔹 Дроби используются в математике, физике, программировании и финансовых расчётах 🚀.

Sablon:Rusl