Ayuda con codigo en Lenguaje c urgente ;)

Daniel Muñoz Siguiendo
Seguidores
9

1
Pi
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
20 Mar 2009
Mensajes
6.019
Hola amigos, vengo con esto rápido.
Por descuido en la universidad el profesor decidió hacernos un ejercicio sorpresa.

Se trata de numero complejos. / Complex Arithmetic.

Se componen de la siguiente manera.
(<real1>,<imaginario1>) <operador > (<real2>,<imaginario2>)

Entiendo que:
real 1 es: a
real 2 es: b
imaginario 1 es: x
imaginario 2 es: y

Necesito realizar un programa que realice la siguiente operación.

  • (a,b) / (x,y) = ( (ax+by)/(x2+y2),(bx-ay)/(x2-y2) )
  • (a,b) + (x,y) = (a+x,b+y)
  • (a,b) - (x,y) = (a-x,b-y)
  • (a,b) * (x,y) = (ax-by,ay+bx)

Ayuda por favor o si no reprobare la materia =(
 
Última edición por un moderador:

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.102
Podrías explicármelo, ya que debo explicárselo al profesor, esta en ingles :s

en realidad lo que hace es agregar la libreria complex para hacer las operaciones, luego con el printf mostras en pantalla los resultados usando las funciones creal (numer real) y cimag (numero imaginario)... como ves en el ejemplo de ese sitio no son dificil de armar, pero todo esta en prueba y error, aparte si no lo intentas resolver tu, jamas aprenderas nada...
 

Daniel Muñoz

1
Pi
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
20 Mar 2009
Mensajes
6.019
Luego de un poco mas de tres horas googleando y con el famoso prueba error. Pude terminarlo. Dejo el codigo anexo para futuros buscadores jajaja =)

Función complex de lenguaje c para operaciones aritméticas básicas ( multiplicaciones / división / suma / resta)

Insertar CODE, HTML o PHP:
#include <stdio.h>
#include <stdlib.h>


struct ncomplejos {
    int reales;
    int imaginarios;
};
void pausa ();
int main() {
    int opciones, n1, n2, n3;
    struct ncomplejos a, b, x;
    system("clear");
    while(1) {
        printf("Numero complejos\n");
        printf("1. Sumar números\n");
        printf("2. Restar numero\n");
        printf("3. Multiplicar números\n");
        printf("4. Dividir números\n");
        printf("5. Presione para salir\n");
        printf("Seleccione una opción: ");
        scanf("%d", &opciones);
        if( opciones == 5 )
            exit(0);
        if( opciones >= 1 && opciones <= 4 ) {
            system("clear");
            printf("Por favor introduzca el valor de A y B donde (A+iB) es el primer numero complejo\n");
            printf("A: ");
            scanf("%d",&a.reales);
      printf("B: ");
      scanf("%d",&a.imaginarios);
      printf("Por favor introduzca el valor de X y Y donde (X+iY) es el segundo numero complejo.\n");
      printf("X: ");
      scanf("%d", &b.reales);
      printf("Y: ");
      scanf("%d", &b.imaginarios);
        }
      if( opciones == 1) {
          x.reales = a.reales + b.reales;
      x.imaginarios = a.imaginarios + b.imaginarios;
      if( x.imaginarios >= 0 )
      printf("La sumatoria de dos numero complejos es: %d + %di",x.reales,x.imaginarios);
      
      else 
      printf("La sumatoria de dos numero complejos es: %d %di",x.reales,x.imaginarios);
             pausa ();
            }
        else if( opciones == 2) {
            x.reales = a.reales - b.reales;
      x.imaginarios = a.imaginarios - b.imaginarios;
      if( x.imaginarios >= 0 )
      printf("La resta de dos numero complejos es: %d + %di",x.reales,x.imaginarios);
      else 
      printf("La resta de dos numero complejos es: %d %di",x.reales,x.imaginarios);
      pausa ();
      }
       else if( opciones == 3) {
           x.reales = a.reales*b.reales - a.imaginarios*b.imaginarios;
        x.imaginarios = a.imaginarios*b.reales + a.reales*b.imaginarios;
            if( x.imaginarios >= 0) 
            printf("La multiplicación de dos numero complejos es: %d + %di",x.reales,x.imaginarios);
         else 
           printf("La multiplicación de dos numero complejos es: %d %di",x.reales,x.imaginarios);
        pausa ();
           }
       else if( opciones == 4) {
           if( b.reales = 0 && b.imaginarios == 0)
           printf("División de 0 no permitida.");
           else {
               n1 = a.reales*b.reales + a.imaginarios*b.imaginarios;
               n2 = a.imaginarios*b.reales - a.reales+b.imaginarios;
               n3 = b.reales*a.reales + b.imaginarios*b.imaginarios;
               if( n1%n3 == 0 && n2%n3 == 0){
                   if( n2/n3 >=0 )
                   printf("La división de dos numero complejos es: %d + %di",n1/n3,n2/n3);
                   else 
                   printf("La división de dos numero complejos es: %d %di",n1/n3,n2/n3);
                   pausa ();
                   }
           else if( n1%n3 == 0 && n2%n3 != 0 ) {
                   if( n2/n3 >= 0)
                   printf("La división de dos numero complejos es: %d + %d/%di",n1/n3,n2,n3);
                   else 
                   printf("La división de dos numero complejos es: %d %d/%di",n1/n3,n2,n3);
                   pausa ();
                   }
           else if( n1%n3 != 0 && n2%n3 == 0 ) {
                   if( n2/n3 >= 0)
                   printf("La división de dos numero complejos es: %d/%d + %di",n1,n3,n2/n3);
                   else 
                   printf("La división de dos numero complejos es: %d %d/%di",n1,n3,n2/n3);
                   pausa ();
                   }
               else {
                   if( n2/n3 >= 0)
                   printf("La división de dos numero complejos es: %d/%d + %d/%di",n1,n3,n2,n3);
                   else 
                   printf("La división de dos numero complejos es: %d/%d %d/%di",n1,n3,n2,n3);
                   pausa ();
                   }
           }
   }
    else
    printf("Opción invalida.\n");
    printf("Vuelva a seleccionar una opción.\n\n");
}
}
    
void pausa () {
    
    printf("\nPresione ENTER para volver al menú anterior");
  getchar();
  getchar();
  system("clear");
}

Si alguien tiene alguna sugerencia por favor háganla somos betas y estamos para mejorar.
 
Arriba