Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Constantinoplero en 15 Enero 2012, 14:09 pm



Título: Calculadora con struct
Publicado por: Constantinoplero en 15 Enero 2012, 14:09 pm
Buenas,

Mi universidad está muy bien organizada, y para que yo pudiera ir a la revisión de un examen de cierta asignatura, tuve que perderme la clase de Informática, y justo dieron struct, por lo que ando un poco perdido.

Me han mandado un ejercicio que consiste en admitir dos fracciones de numeros naturales, hacer la suma, resta, división o multiplicación según me pidan, simplificarlas y devolver el valor.

Hasta ahora tengo esto:

VOLVERÉ A PONER EL CÓDIGO ESTA NOCHE. MOTIVO EN EL ÚLTIMO POST.

¿Cómo puedo continuar? No sé cómo hacer para que admita una segunda fracción ni como encarar para hacer las operaciones (funciones aparte?)...

EDITO: Estoy haciendo avances y ya se cómo hacer para pedirme dos.

Gracias.


Título: Re: Calculadora con struct
Publicado por: Constantinoplero en 15 Enero 2012, 18:24 pm
Sigo avanzando... Ahora sólo me falta arreglar que los resultados no me den siempre 0/0... ¿Sabéis por qué es?

VOLVERÉ A PONER A EL CÓDIGO ESTA NOCHE. MOTIVO ABAJO.


Título: Re: Calculadora con struct
Publicado por: rir3760 en 15 Enero 2012, 18:37 pm
La primera recomendación es elegir un lenguaje (C o C++) y enfocarte solo en el, el otro mejor piensa que no existe.

Ello porque así solo tienes que lidiar con un lenguaje, el otro escenario es aprender ambos junto con sus diferencias y si apenas estas empezando lo mejor es lo sencillo.

El programa no funciona correctamente porque (entre otras cosas) comparas el operador con las variables s, r, p y d. Ellas son variables y su valor inicial es "no definido" o "basura" (difícil que haya una coincidencia).

La declaración de la estructura "c" debes colocarla fuera del cuerpo de los condicionales.

Y para comparar el operador debes hacerlo con los caracteres literales 's', 'r', 'p' y 'd'.

Por ejemplo en el primer caso:
Código
  1. struct fraccion c;
  2.  
  3. if (operacion == 's'){
  4.   c.numerador = (a.numerador*b.denominador) +  (b.numerador*a.denominador);
  5.   c.denominador=a.denominador*b.denominador;
  6. }

Por ultimo trata de utilizar nombres descriptivos pero cortos.

Un saludo


Título: Re: Calculadora con struct
Publicado por: Constantinoplero en 15 Enero 2012, 18:47 pm
Oh, ¡gracias!

Lo de las variables entre comillas debería haber caído, aunque lo de poner struct fuera de los condicionales jamás lo sabría...

Gracias. Ahora sólo me falta simplificarlas, que supongo será con el MCD...

PD: Borro el código, que hay gente de mi clase buscando por internet y podrían copiarlo. Lo pongo otra vez a las 00:00 de hoy, que es cuando acaba el plazo.