"programar en c++ de deitel "
problema n° 9.6
dice
Citar
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
mi code es 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:
// 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:
// 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");
}
el problema me lo da el constructor para reducir una fracion aca los errores
Citar
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 ==========