Доброго времени суток. Нужна помощь с написанием функции на языке с++. Надо написать функцию для умножение целого числа на дробь и деления целого числа дробью. Ещё так же надо сделать функцию деления дроби на целое число. Помогите, пожалуйста! Даю последние баллы
Ответы
Функция умножения целого числа на дробь:
// Определение структуры дроби, в которой есть числитель и знаменатель
struct Fraction {
int numerator;
int denominator;
};
// Функция нахождения наибольшего общего делителя двух чисел
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// Функция умножения целого числа на дробь
Fraction multiplyFractionByInt(Fraction fraction, int integer) {
// Создание новой дроби, которая будет результатом умножения
Fraction result;
// Числитель новой дроби равен произведению числителя и целого числа
result.numerator = fraction.numerator * integer;
// Знаменатель новой дроби равен знаменателю исходной дроби
result.denominator = fraction.denominator;
// Нахождение наибольшего общего делителя числителя и знаменателя новой дроби
int common = gcd(result.numerator, result.denominator);
// Сокращение новой дроби путем деления числителя и знаменателя на наибольший общий делитель
result.numerator /= common;
result.denominator /= common;
// Возврат новой дроби в качестве результата функции
return result;
}
int main() {
// Создание дроби и целого числа, на которые будет производиться умножение
Fraction fraction;
fraction.numerator = 2;
fraction.denominator = 3;
int integer = 4;
// Вызов функции умножения целого числа на дробь и сохранение результата в переменной
Fraction result = multiplyFractionByInt(fraction, integer);
// Вывод результата умножения на экран
std::cout << result.numerator << "/" << result.denominator << std::endl;
return 0;
}
Функция деления целого числа на дробь:
// Определение структуры дроби, в которой есть числитель и знаменатель
struct Fraction {
int numerator;
int denominator;
};
// Функция нахождения наибольшего общего делителя двух чисел
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// Функция деления целого числа на дробь
Fraction divideIntByFraction(int integer, Fraction fraction) {
// Создание новой дроби, которая будет результатом деления
Fraction result;
// Числитель новой дроби равен целому числу
result.numerator = integer;
// Знаменатель новой дроби равен произведению знаменателя исходной дроби и целого числа
result.denominator = fraction.denominator * integer;
// Нахождение наибольшего общего делителя числителя и знаменателя новой дроби
int common = gcd(result.numerator, result.denominator);
// Сокращение новой дроби путем деления числителя и знаменателя на наибольший общий делитель
result.numerator /= common;
result.denominator /= common;
// Возврат новой дроби в качестве результата функции
return result;
}
int main() {
// Создание дроби и целого числа, на которые будет производиться деление
Fraction fraction;
fraction.numerator = 2;
fraction.denominator = 3;
int integer = 4;
// Вызов функции деления целого числа на дробь и сохранение результата в переменной
Fraction result = divideIntByFraction(integer, fraction);
// Вывод результата деления на экран
std::cout << result.numerator << "/" << result.denominator << std::endl;
return 0;
}
Функция деления дроби на целое число:
// Определение структуры дроби, в которой есть числитель и знаменатель
struct Fraction {
int numerator;
int denominator;
};
// Функция нахождения наибольшего общего делителя двух чисел
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// Функция деления дроби на целое число
Fraction divideFractionByInt(Fraction fraction, int integer) {
// Создание новой дроби, которая будет результатом деления
Fraction result;
// Числитель новой дроби равен числителю исходной дроби
result.numerator = fraction.numerator;
// Знаменатель новой дроби равен произведению знаменателя исходной дроби и целого числа
result.denominator = fraction.denominator * integer;
// Нахождение наибольшего общего делителя числителя и знаменателя новой дроби
int common = gcd(result.numerator, result.denominator);
// Сокращение новой дроби путем деления числителя и знаменателя на наибольший общий делитель
result.numerator /= common;
result.denominator /= common;
// Возврат новой дроби в качестве результата функции
return result;
}
int main() {
// Создание дроби и целого числа, на которые будет производиться деление
Fraction fraction;
fraction.numerator = 2;
fraction.denominator = 3;
int integer = 4;
// Вызов функции деления дроби на целое число и сохранение результата в переменной
Fraction result = divideFractionByInt(fraction, integer);
// Вывод результата деления на экран
std::cout << result.numerator << "/" << result.denominator << std::endl;
return 0;
}