"programar en c++ de deitel "
problema n° 9.6
dice
Cita:
mi code cree una clase llamada racional para realizar operaciones aritmeticas con fracciones escriba un programa para evaluar su clase.
use variables enteras para representar los datos private de la clase:numerador y denominador. Proporcione un constructor que permita a un objeto de esta clase inicializarse cuando se declare. El constructor debe tener valores prederminados en caso de que no se proporcione inicializaodres y debe almacenar una fracion en forma reducida. Por ejemplo la fracion 2/4 se se almacena en el objeto como 1/2.Proporcione funciones mienbro public que realizen cada una de las siguientes tareas sumar restar multiplicar dividir imprimir fraciones en modfo a/b y en forma de punto flotante
use variables enteras para representar los datos private de la clase:numerador y denominador. Proporcione un constructor que permita a un objeto de esta clase inicializarse cuando se declare. El constructor debe tener valores prederminados en caso de que no se proporcione inicializaodres y debe almacenar una fracion en forma reducida. Por ejemplo la fracion 2/4 se se almacena en el objeto como 1/2.Proporcione funciones mienbro public que realizen cada una de las siguientes tareas sumar restar multiplicar dividir imprimir fraciones en modfo a/b y en forma de punto flotante
Código:
y // 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
Código:
el problema me lo da el constructor para reducir una fracion aca los errores // Archivo DLL principal. //racional.cpp #include "stdafx.h" #include "Racional.h" #include<iostream> using std::cout; using std::cin; using std::endl; using std::fixed; #include<iomanip> 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<<endl; system("PAUSE"); } void Racional::miRacional::ImprimirFlotante() { double a; a=static_cast<double>(numerador)/denominador; cout<<"el resultado de la fraccion en decimales es"<< setprecision(5)<<fixed<<a; system("PAUSE"); }
Cita:
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 ==========
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 ==========