• Domingo 15 de Diciembre de 2024, 22:57

Autor Tema:  Me falta terminarlo  (Leído 1115 veces)

16011991

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Me falta terminarlo
« en: Viernes 11 de Diciembre de 2009, 14:01 »
0
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;
}

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Me falta terminarlo
« Respuesta #1 en: Viernes 11 de Diciembre de 2009, 19:07 »
0
Hola.

Un consejo, cuando publiques codigo usa las etiquetas de code, facilita la lectura.

El error lo tienes en la definicion de tu funcion

Código: C++
  1.  
  2. void Transfomar1 (float real, float imag)
  3. {
  4.     float ang, raiz, modulo;
  5.  
  6.  

Deberia ser:

Código: C++
  1.  
  2. void Transformar1 (float real, float imag)
  3. {
  4.     float ang, raiz, modulo;
  5.  
  6.  

Te comiste una letra r, pusiste Transfomar1 en lugar de Transformar1

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

16011991

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Me falta terminarlo
« Respuesta #2 en: Lunes 14 de Diciembre de 2009, 20:03 »
0
muchas gracias!!