Números racionales

MARCOS ESCARTÍN FERRER

//Programa que dadas dos fracciones calcula su suma, producto
// y división y las simplifica

#include <stdio.h>
#include <stdlib.h>

struct fraccion
{
float x;
float y;
};
typedef struct fraccion Fraccion;

Fraccion suma( Fraccion, Fraccion);
Fraccion producto( Fraccion, Fraccion);
Fraccion division( Fraccion, Fraccion);
Fraccion leer_fraccion (void);
Fraccion MCD(Fraccion);
void escribir_fraccion(Fraccion);

int main()
{
Fraccion z,z1,z2;
z1= leer_fraccion();
z2= leer_fraccion();
z= suma(z1,z2);
z= MCD (z);
printf(“La suma es: \n”);
escribir_fraccion(z);
z=producto (z1,z2);
z=MCD (z);
printf(“El producto es: \n”);
escribir_fraccion(z);
z=division(z1,z2);
z=MCD(z);
printf(“La division es: \n”);
escribir_fraccion(z);
system(“PAUSE”);
return 0;
}

Fraccion leer_fraccion(void)
{
Fraccion z;
printf(“Introduce el numerador: “);
scanf(“%f”,&z.x);
do{
printf(“Introduce el denominador: “);
scanf(“%f”,&z.y);
}while(z.y==0);
return z;
}

void escribir_fraccion(Fraccion z)
{
if(z.y==1) printf (“El numero racional es: %f\n”,z.x);
else printf (“El numero racional es: %f/%f\n”,z.x,z.y);
return;
}

Fraccion suma(Fraccion z1,Fraccion z2)
{
Fraccion z;
z.x =z1.x*z2.y+z2.x*z1.y;
z.y =z1.y*z2.y;
return z;
}

Fraccion producto (Fraccion z1, Fraccion z2)
{
Fraccion z;
z.x=z1.x*z2.x;
z.y=z1.y*z2.y;
return z;
}

Fraccion division (Fraccion z1, Fraccion z2)
{
Fraccion z;
z.x =z1.x*z2.y ;
z.y =z1.y*z2.x ;
return z;
}

Fraccion MCD(Fraccion z)
{
int MAX,MIN,resto;
if(z.x<z.y){
MIN=z.x;
MAX=z.y;
}
else{
MIN=z.y;
MAX=z.x;
}
do{
resto=MAX%MIN;
if(resto!=0){
MAX=MIN;
MIN=resto;
}
}while(MAX%MIN!=0);
if(MAX%MIN==0){
z.x=z.x/MIN;
z.y=z.y/MIN;
}
return z;
}

Anuncios

Acerca de programacion1z

Curso de introducción a la programación en C
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 )

Google photo

Estás comentando usando tu cuenta de Google. 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 )

Conectando a %s