// IG17 2004-05, II17 2005-06 // EjemploRacional.cpp // 12-11-2004 // Ejemplo de uso de la clase Racional. // Esto no es un test para comprobar que todo funciona correctamente. // solo ilustra como se puede hacer uso de los operadores y del constructor. #include using namespace std; #include "Racional.h" int main () { cout << "Probando inicializaciones y operador de salida:" << endl; Racional r1(7,6), r2(1,6), r3(-7), r4(7,9), r5(12,20), r6(-12,20), r7(12,-20), r8(-12,-20), r9(15,5), r10; cout << r1 << endl; cout << r2 << endl; cout << r3 << endl; cout << r4 << endl; cout << r5 << endl; cout << r6 << endl; cout << r7 << endl; cout << r8 << endl; cout << r9 << endl; cout << r10 << endl; cout << "Probando una comparacion:" << endl; if (r5 == r8) cout << "Iguales" << endl; else cout << "Diferentes" << endl; cout << "Probando una suma:" << endl; r3 = r1 + r2; cout << r1 << endl; cout << r2 << endl; cout << r3 << endl; cout << "Probando un producto con asignacion:" << endl; r4 *= r2; cout << r2 << endl; cout << r4 << endl; cout << "Probando un post-incremento:" << endl; r2 = r1++; cout << r1 << endl; cout << r2 << endl; cout << "Probando un pre-incremento:" << endl; r2 = ++r1; cout << r1 << endl; cout << r2 << endl; cout << "Probando un cambio de signo:" << endl; r2 = -r1; cout << r1 << endl; cout << r2 << endl; cout << "Probando a usar el constructor en expresiones:" << endl; cout << Racional(15,20) + Racional(-3,20) << endl; cout << "Probando a usar implicitamente el constructor como conversor" << " de int a Racional en operadores a los que podemos pasarles" << " un int donde esperan un Racional:" << endl; r2 = r1 + 5; // Suma r1 + Racional(5) cout << r2 << endl; r2 = 5 + r1; // Suma Racional(5) + r1 cout << r2 << endl; if (3 == r9) // Compara Racional(3) con el racional r9 cout << "Iguales" << endl; else cout << "Diferentes" << endl; cout << "Probando una expresion que combina varias operaciones:" << endl; r2 = r3 += (r4 + r5 + r6) * r7 * (++r9) + Racional(12,15) + 25; cout << r2 << endl; cout << r3 << endl; cout << "Probando el operador de entrada y la suma de lo que me diga." << endl; cout << "Digame los datos de un racional en formato numerador/denominador: "; cin >> r1; cout << "Leido un racional que normalizado vale " << r1 << endl; cout << "Digame los datos de un racional en formato numerador/denominador: "; cin >> r2; cout << "Leido un racional que normalizado vale " << r2 << endl; cout << "La suma de " << r1 << " y " << r2 << " vale " << r1 + r2 << endl; return 0; }