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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/ 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// 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");
}

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 ==========
In your source file:
- 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Archivo DLL principal.
//racional.cpp

#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 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<<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");
}
Topic archived. No new replies allowed.