• Asignatura: Informática
  • Autor: arturoaguilar1405
  • hace 2 años

programa en C++ que multiplique dos fracciones​

Respuestas

Respuesta dada por: valeriajeon786
2

Respuesta:

Explicación:Materia: Lenguajes de Programación

Hola compañeros en esta entrada voy a explicarles un código que recuerdo lo hicimos en alguna clase de la materia Taller de Programación, en este código en C utilizo typedef struct, se trata de un programa que suma, resta, multiplica y divide fracciones.

Lo voy a ir explicando bloque por bloque luego ya lo junto todo.

Primero que nada incluyo la librería estándar y defino la estructura de el tipo de dato que se llama FRAC y a su vez contiene dos variables de tipo short que se ve algo así:

#include<stdio.h>

typedef struct {

   short numerador;

   short denominador;

   }FRAC;

después defino una función setvalue que va a regresar un dato tipo FRAC y va a entrar en ella dos variables llamadas a y b que corresponden al numerador y al denominador, esta función sirve para saber si la fracción con la que quiero trabajar es correcta, porque si llegara tener un 0 en el denominador pues no se puede acer ninguna suma, resta multiplicación o division con ella, para esto dentro la función tengo un if que me ayuda a identificar el denominador y si el denominador no es 0 pues devuelve la variable tipo FRAC correctamente pero si es 0 manda un mensaje de error y regresa un valor equivocado.

FRAC setvalue(int a, int b){

FRAC ar;

if(b!=0){

   ar.denominador=b;

   ar.numerador=a;

   return(ar);

}

printf("Entonces el valor no existe");

ar.numerador=-1;

ar.denominador=1;

return(ar);

}

Ahora esta función que aunque es muy pequeña es de gran utilidad para poder mostrar las fracciones de esta forma numero1/numero2, recibe una variable tipo FRAC llamada ar, de ar obtiene el numerador(ar.numerador) y el denominador(ar.denominador) y los coloca de la forma ar.numerador/ar.denominador, la función no regresa nada porque lo único que hace es dar formato a la impresión.

void toprint (FRAC ar){

printf("%d/%d", ar.numerador, ar.denominador);

return;

}

Y ahora viene la parte matemática

Defino la función mult que va a recibir dos tipo FRAC de entrada que son a y b y va a regresar otro tipo FRAC al que llamé ar. Para obtener la multiplicación de una fracción se tiene que multiplicar el numerador1 por el numerador2 y el denominador1 por el denominador2, bueno en código es igualito, tengo que entra FRAC a, en dónde obviamente a tiene su denominador(a.denominador) y su numerador(a.numerador), lo mismo pasa con b(b.numerador y b.denominador), entonces hay que obtener el valor de FRAC ar, es decir el valor de ar.numerador y ar.denominador, para esto se multiplica a.numerador*b.numerador y esto es igual a ar.numerador, y a.denominadorr*b.denominador y esto es igual a ar.denominador, se ve largo pero esto es en realidad muy simple, este es el código:

FRAC mult(FRAC a, FRAC b){

FRAC ar;

ar.numerador=a.numerador*b.numerador;

ar.denominador=a.denominador*b.denominador;

return(ar);

}


arturoaguilar1405: y entonces como queda el código
Preguntas similares