Вопрос задан 08.06.2023 в 08:05. Предмет Информатика. Спрашивает Феофилактов Владислав.

Доброго времени суток. Нужна помощь с написанием функции на языке с++. Надо написать функцию для

умножение целого числа на дробь и деления целого числа дробью. Ещё так же надо сделать функцию деления дроби на целое число. Помогите, пожалуйста! Даю последние баллы ​
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Парнюк Александра.

Функция умножения целого числа на дробь:

// Определение структуры дроби, в которой есть числитель и знаменатель

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;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Доброго времени суток! Конечно, я помогу вам с написанием этих функций на языке C++.

Вот пример реализации требуемых функций:

cpp
#include <iostream> // Функция для умножения целого числа на дробь double multiplyFraction(int numerator, int denominator, double fraction) { return numerator * fraction / denominator; } // Функция для деления целого числа на дробь double divideByFraction(int numerator, int denominator, double fraction) { return numerator / (fraction * denominator); } // Функция для деления дроби на целое число double fractionDividedBy(int numerator, int denominator, int divisor) { return numerator / (denominator * static_cast<double>(divisor)); } int main() { // Пример использования функций int num = 5; int denom = 2; double frac = 0.5; double result1 = multiplyFraction(num, denom, frac); std::cout << num << " * " << frac << " / " << denom << " = " << result1 << std::endl; double result2 = divideByFraction(num, denom, frac); std::cout << num << " / (" << frac << " * " << denom << ") = " << result2 << std::endl; int divisor = 3; double result3 = fractionDividedBy(num, denom, divisor); std::cout << num << " / (" << denom << " * " << divisor << ") = " << result3 << std::endl; return 0; }

В этом примере используются три функции: multiplyFraction для умножения целого числа на дробь, divideByFraction для деления целого числа на дробь, и fractionDividedBy для деления дроби на целое число. Все функции принимают числитель и знаменатель дроби, а также соответствующие числа для операций. Результаты вычислений выводятся на экран.

Надеюсь, это поможет вам! Если у вас возникнут ещё вопросы, не стесняйтесь задавать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос