Tengo que hacer un programa de numero complejos y lo tengo terminado salvo que me da un error de linker a la hora de compilar, el codigo es este:
#include <iostream>
#include <math.h>
using namespace std;
void Multiplicar (float, float, float, float);
void Dividir (float, float, float, float);
void Transformar1 (float, float);
void Transformar2 (float&, float&);
void Transformar3 (float, float);
int main(void)
{
float real1, imag1, real2, imag2;
int a;
cout << "Numero 1" << endl;
cout << "Dame la parte real: ";
cin >> real1;
cout << "Dame la parte imaginaria: ";
cin >> imag1;
cout << "Numero 2" << endl;
cout << "Dame la parte real: ";
cin >> real2;
cout << "Dame la parte imaginaria: " << endl;
cin >> imag2;
cout << "Multiplicacion pulsa 1, division pulsa2: ";
cin >> a;
switch (a)
{
case 1:
Multiplicar (real1, imag1, real2, imag2);
break;
case 2:
Dividir (real1, imag1, real2, imag2);
break;
default:
cout << "Opcion incorrecta" << endl;
}
}
void Multiplicar (float real1, float imag1, float real2, float imag2)
{
float resulreal, resulimag;
resulreal = (real1 * real2 - imag1 * imag2);
resulimag = (real1 * imag2 + imag1 * real2);
cout << "Resultado en forma cartesiana = " << resulreal << " + " << resulimag << "i" << endl;
Transformar1 (resulreal, resulimag);
}
void Dividir (float real1, float imag1, float real2, float imag2)
{
float modulo, ang;
Transformar2 (real1, imag1);
Transformar2 (real2, imag2);
modulo = real1 / real2;
ang = imag1 - imag2;
cout << "El resultado en forma polar es = " << modulo << " " << ang << "º" << endl;
Transformar3 (modulo, ang);
}
void Transfomar1 (float real, float imag)
{
float ang, raiz, modulo;
raiz = real * real + imag * imag;
modulo = sqrt (raiz);
ang = atan (imag / real);
cout << "El resultado en forma polar es = " << modulo << " " << ang << "º" << endl;
}
void Transformar2 (float& real, float& imag)
{
float raiz;
raiz = real * real + imag * imag;
real = sqrt (raiz);
imag = atan (imag / real);
}
void Transformar3 (float modulo, float ang)
{
float real, imag;
real = modulo * cos (ang);
imag = modulo * sin (ang);
cout << "El resultado en forma polar es = " << real << " + " << imag << "i" << endl;
}