Operar con fracciones

Juan Condado Peñaranda

Este programa pide al usuario que introduzca dos fracciones x e y, calcula su suma, su producto y su cociente, y muestra por pantalla el resultado en forma de fracción irreducible.


#include <stdio.h>
#include <iostream>
#include <cmath>
using namespace std;

struct racional
{
int numerador;
int denominador;
};

typedef struct racional Racional;

int mcd(int a, int b);
Racional suma(Racional x, Racional y);
Racional producto(Racional x, Racional y);
Racional division(Racional x, Racional y);

int main()
{

Racional x, y;
cout << "Numerador de x: "; cin >> x.numerador;
cout << "Denominador de x: "; cin >> x.denominador;
cout << endl;
cout << "Numerador de y: "; cin >> y.numerador;
cout << "Denominador de y: "; cin >> y.denominador;

cout << endl;

cout << "Suma: " << suma(x,y).numerador << "/" << suma(x,y).denominador; cout << endl;
cout << "Producto: " << producto(x,y).numerador << "/" << producto(x,y).denominador; cout << endl;
cout << "Division: " << division(x,y).numerador << "/" << division(x,y).denominador; cout << endl;

return 0;

}
int mcd(int a, int b)
{
int c;
while(a!=b)
{
if(a>b) a=a-b;
else b=b-a;
}
c=a;
return c;
}

Racional simplificar(Racional h) // Simplifica la fracción
{
int s=mcd(abs(h.numerador), abs(h.denominador));
h.numerador=h.numerador/s;
h.denominador=h.denominador/s;
if((h.numerador<0 && h.denominador <0) || (h.numerador>0 && h.denominador<0))
{
h.numerador=-h.numerador;
h.denominador=-h.denominador;
}

return h;

}

Racional suma(Racional x, Racional y)
{
Racional z;
z.numerador=x.numerador*y.denominador+y.numerador*x.denominador;
z.denominador=x.denominador*y.denominador;
z=simplificar(z);
return z;

}

Racional producto(Racional x, Racional y)
{
Racional z;
z.numerador=x.numerador*y.numerador;
z.denominador=x.denominador*y.denominador;
z=simplificar(z);
return z;

}

Racional division(Racional x, Racional y)
{
Racional z;
z.numerador=x.numerador*y.denominador;
z.denominador=x.denominador*y.numerador;
z=simplificar(z);
return z;
}

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s