### class racional

Hello friends, I have this problem and if anyone got sick enough I can help out would be great, I program in visual c + + 2012
"Programming in C + + Deitel"
Problem # 9.6
says
 ree a class called Rational for performing arithmetic with fractions write a program to evaluate its class. Use integer variables to represent the private data of the class: numerator and denominator. Provide a constructor that enables an object of this class initialized when declared. The builder should have predetermined value if it is not provided inicializaodres fracion and must store a reduced form. For example the fracion two quarters is stored in the object as 1/2.Proporcione mienbro public functions that you to realize each of the following tasks to add subtract multiply divide in print fraciones modfo a / b as floating point

my code is
 ``12345678910111213141516171819202122232425262728293031`` ``````/ Racional.h #ifndef RACIONAL_H #define RACIONAL_H #pragma once using namespace System; namespace Racional { public ref class miRacional { // TODO: agregar aquí los métodos de la clase. public: miRacional(int , int ); ~miRacional(); //funciones void suma(); void resta(); void multiplicar(); void dividir(); void ImprimirFraccion(); void ImprimirFlotante(); int reducir(int, int); private: int numerador; int denominador; }; } #endif ``````

and
 ``12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394`` ``````// Archivo DLL principal. //racional.cpp #include "stdafx.h" #include "Racional.h" #include using std::cout; using std::cin; using std::endl; using std::fixed; #include using std::setprecision; Racional::miRacional::miRacional(int num, int deno) { numerador=denominador=1; reducir(int num, int deno); } int Racional::miRacional::reducir(int n, int d ) { int i; for (int i = 2; i <= 11; i++) { while ((d%i==0)&&(n%i==0)) { d=d/i; n=n/i; } } return d,n; } void Racional::miRacional::suma() { int n1,d1,n2,d2; cout<<"ingrese numerador y denominador de 1° fraccion"; cin>>n1,d1; cout<<"ingrese numerador y denominador de 2° fraccion"; cin>>n2,d2; numerador=((n1*d2)+(d1*n2)); denominador=(d1*d2); } void Racional::miRacional::resta() { int n1,d1,n2,d2; cout<<"ingrese numerador y denominador de 1° fraccion"; cin>>n1,d1; cout<<"ingrese numerador y denominador de 2° fraccion"; cin>>n2,d2; denominador=(d1*d2); numerador=((d2*n1)-(d1*n2)); } void Racional::miRacional::multiplicar() { int n1,d1,n2,d2; cout<<"ingrese numerador y denominador de 1° fraccion"; cin>>n1,d1; cout<<"ingrese numerador y denominador de 2° fraccion"; cin>>n2,d2; numerador=(n1*n2); denominador=(d1*d2); } void Racional::miRacional::dividir() { int n1,d1,n2,d2; cout<<"ingrese numerador y denominador de 1° fraccion"; cin>>n1,d1; cout<<"ingrese numerador y denominador de 2° fraccion"; cin>>n2,d2; numerador=n1*d2; denominador=d1*n2; } void Racional::miRacional::ImprimirFraccion() { cout<<"el resultado es "<(numerador)/denominador; cout<<"el resultado de la fraccion en decimales es"<< setprecision(5)<

the problem gives me "the constructor" to reduce a fracion errors here
 1>------ Operación Compilar iniciada: proyecto: Racional, configuración: Debug Win32 ------ 1> Racional.cpp 1>Racional.cpp(19): error C2144: error de sintaxis : 'int' debe estar precedido de ')' 1>Racional.cpp(19): error C2660: 'Racional::miRacional::reducir' : la función no acepta 0 argumentos 1>Racional.cpp(19): error C2059: error de sintaxis : ')' ========== Compilar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
- Line 20 is not a function call, though I think you are meaning to do that.
- What is line 35 supposed to do? It doesn't return two values, if that's what you're thinking.
At line 17, you haven't specified a return type for Racional::miRacional::miRacional()
Stupid comment... I wasn't thinking when I wrote that!
Last edited on
I found the solution
 ``1234567891011121314151617181920212223242526272829303132`` ``````// Racional.h #ifndef RACIONAL_H #define RACIONAL_H #pragma once using namespace System; namespace Racional { class miRacional { // TODO: agregar aquí los métodos de la clase. public: miRacional(int =1, int=1); ~miRacional(); //funciones void suma(); void resta(); void multiplicar(); void dividir(); void ImprimirFraccion(); void ImprimirFlotante(); void reducir(int, int); void reducida(int,int); private: int numerador; int denominador; }; } #endif ``````

and
 ``1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798`` ``````// Archivo DLL principal. //racional.cpp #include "Racional.h" #include using std::cout; using std::cin; using std::endl; using std::fixed; #include using std::setprecision; Racional::miRacional::miRacional(int deno, int num) { reducir(deno, num); } void Racional::miRacional::reducir(int de, int nu) { reducida(de, nu); } void Racional::miRacional::reducida(int d, int n) { int i; for (int i = 2; i <= 11; i++) { while ((d%i==0)&&(n%i==0)) { d=d/i; n=n/i; } } denominador=d; numerador=n; } void Racional::miRacional::suma() { int n1,d1,n2,d2; cout<<"ingrese numerador y denominador de 1° fraccion"; cin>>n1,d1; cout<<"ingrese numerador y denominador de 2° fraccion"; cin>>n2,d2; numerador=((n1*d2)+(d1*n2)); denominador=(d1*d2); } void Racional::miRacional::resta() { int n1,d1,n2,d2; cout<<"ingrese numerador y denominador de 1° fraccion"; cin>>n1,d1; cout<<"ingrese numerador y denominador de 2° fraccion"; cin>>n2,d2; denominador=(d1*d2); numerador=((d2*n1)-(d1*n2)); } void Racional::miRacional::multiplicar() { int n1,d1,n2,d2; cout<<"ingrese numerador y denominador de 1° fraccion"; cin>>n1,d1; cout<<"ingrese numerador y denominador de 2° fraccion"; cin>>n2,d2; numerador=(n1*n2); denominador=(d1*d2); } void Racional::miRacional::dividir() { int n1,d1,n2,d2; cout<<"ingrese numerador y denominador de 1° fraccion"; cin>>n1,d1; cout<<"ingrese numerador y denominador de 2° fraccion"; cin>>n2,d2; numerador=n1*d2; denominador=d1*n2; } void Racional::miRacional::ImprimirFraccion() { cout<<"el resultado es "<(numerador)/denominador; cout<<"el resultado de la fraccion en decimales es"<< setprecision(5)<
Topic archived. No new replies allowed.