Hola, como como hago un programa en lenguaje C que sume, reste, multiplique y divida números complejos. Definiendo una estructura para manejar las variables complejas.
Agredecería sus ayudas. Ustedes que todo lo saben.
como siempre repito a los que llegan pidiendo ayuda...
aclara 3 cosas...
1- lo que tienes (publica tu código hecho, usando la etiqueta GeShi)
2- lo que quieres (eso ya lo dijiste)
3- cual problema tienes para lograrlo
si tienes información adicional, agrégala...
Si queres simplificar todo, simplemente hace que el usuario introduzca los valores de i y de j por separados y después los podes manipular como quieras.
te doy un pie, que hice en C++ pero supongo que entenderás.
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i1, i2, j1, j2;
cout << "TECLEA EL PRIMER VALOR DE I, Y LUEGO EL DE J " << endl;
cin >> i1 >> j1;
cout << endl;
cout << "TECLEA EL SEGUNDO VALOR DE I, Y LUEGO EL DE J " << endl;
cin >> i2 >> j2;
cout << "\n\nLA SUMA DE LOS I: " << i1 + i2 << "\nLA SUMA DE LAS J: " << j1 + j2 << endl;
return 0;
}
Saludos.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
struct complejo suma (struct complejo x, struct complejo y);
struct complejo division(struct complejo x, struct complejo y);
struct complejo resta(struct complejo x, struct complejo y);
struct complejo multiplicacion(struct complejo x, complejo y);
int main(void)
{
int opcion;
printf("OPERACIONES CON NUMEROS COMPLEJOS:\n");
printf("1) Suma de números complejos\n");
printf("2) Divison de números complejos\n");
printf("3) Resta de números complejos\n");
printf("4) Multiplición de números complejos\n");
printf("Ingrese una opción:\n");
scanf("%d",&opcion);
switch(opcion)
{
case 1:
printf("1) Suma de números complejos:\n\n");
struct complejo suma1,suma2,csuma;
printf("Ingrese la parte real del primer numero complejo:");
scanf("%f",&suma1.a);
printf("Ingrese la parte imaginaria del primer numero complejo:");
scanf("%f",&suma1.b);
printf("Ingrese la parte real del segundo numero complejo:");
scanf("%f",&suma2.a);
printf("Ingrese la parte imaginaria del segundo numero complejo:");
scanf("%f",&suma2.b);
csuma = suma (suma1,suma2);
printf("El resultado es= %f+j%f\n\n",csuma.a,csuma.b);
system("PAUSE");
return EXIT_SUCCESS;
break;
case 2:
printf("2) Division de dos números complejos:\n\n");
struct complejo {
float division1, division2, cdivision;
};
printf ("Ingrese el modulo del primer numero complejo:");
scanf ("%f",&division1.a);
printf ("Ingrese la fase del primer numero complejo:");
scanf ("%f",&division1.b);
printf ("\nIngrese el modulo del segundo numero complejo:");
scanf ("%f",&division2.a);
printf ("Ingrese la fase del segundo numero complejo:");
scanf ("%f",&division2.b);
cdivision = division (division1, division2);
printf ("\nEl resultado de la division es= Modulo= %f Fase=%f\n\n", division.a,division.b);
system("PAUSE");
return EXIT_SUCCESS;
break;
case 3:
printf("3) Resta de números complejos\n\n");
struct complejo {
float resta1, resta2, cresta;
};
printf("Ingrese la parte real del primer numero complejo:");
scanf("%f",&resta1.a);
printf("Ingrese la parte imaginaria del primer numero complejo:");
scanf("%f",&resta1.b);
printf("Ingrese la parte real del segundo numero complejo:");
scanf("%f",&resta2.a);
printf("Ingrese la parte imaginaria del segundo numero complejo:");
scanf("%f",&resta2.b);
cresta = resta (resta1,resta2);
printf("El resultado es= %f-j%f\n\n",csuma.a,csuma.b);
system("PAUSE");
return EXIT_SUCCESS;
break;
case 4:
printf("\n4) Multiplicación de dos números complejos: \n\n");
struct complejo{
float producto1,product2, producto;
}
printf("Ingrese el modulo del primer numero complejo:");
scanf("%f",&producto1.a);
printf("Ingrese la fase del primer numero complejo:");
scanf("%f",&producto1.b);
printf("\nIngrese el modulo del segundo numero complejo:");
scanf("%f",&producto2.a);
printf("Ingrese la fase del segundo numero complejo:");
scanf("%f",&producto2.b);
producto = multiplicacion (producto1, producto2);
printf("\nEl resultado del producto es= Modulo= %f Fase=%f\n\n", producto.a,producto.b);
system("PAUSE");
return EXIT_SUCCESS;
break;
default: printf("La opción que ingresaste no es correcta\n");
}
}
struct complejo suma (struct complejo x, struct complejo y)
{
struct complejo i;
i.a=x.a+y.a;
i.b=x.b+y.b;
return i;
}
struct complejo division(struct complejo x, struct complejo y)
{
struct complejo i;
i.a=x.a/y.a;
i.b=x.b-y.b;
return i;
}
struct complejo resta(struct complejo x, struct complejo y)
{
struct complejo i;
i.a=x.a-y.a;
i.b=x.b-y.b;
return i;
}
struct complejo multiplicacion(struct complejo x, struct complejo y)
{
struct complejo i;
i.a=x.a * y.a;
i.b=x.b+y.b;
return i;
}
Varias cosas:
- No necesitas la librería matemática math.h. Las sumas, las restas y los productos ya están definidos en el lenguaje por defecto.
- Confundes estructuras con funciones.
- No hay un default en el switch, por lo que hay una posible fuente de errores.
Mi consejo es que repases un manual de C desde cero, te confundes en algunos principios básicos.