Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: afernando14 en 17 Febrero 2013, 23:35 pm



Título: Ayuda para un programa en C
Publicado por: afernando14 en 17 Febrero 2013, 23:35 pm
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.


Título: Re: Ayuda para un programa en C
Publicado por: engel lex en 18 Febrero 2013, 02:11 am
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...


Título: Re: Ayuda para un programa en C
Publicado por: Sputnik_ en 18 Febrero 2013, 03:44 am
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.

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main(int argc, char *argv[])
  4. {
  5.    int i1, i2, j1, j2;
  6.  
  7.    cout << "TECLEA EL PRIMER VALOR DE I, Y LUEGO EL DE J " << endl;
  8.    cin >> i1 >> j1;
  9.    cout << endl;
  10.    cout << "TECLEA EL SEGUNDO VALOR DE I, Y LUEGO EL DE J " << endl;
  11.    cin >> i2 >> j2;
  12.  
  13.    cout << "\n\nLA SUMA DE LOS I: " << i1 + i2 << "\nLA SUMA DE LAS J: " << j1 + j2 << endl;
  14.  
  15.    return 0;
  16. }


Saludos.


Título: Re: Ayuda para un programa en C
Publicado por: afernando14 en 18 Febrero 2013, 14:25 pm
Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. struct complejo suma (struct complejo x, struct complejo y);
  6. struct complejo division(struct complejo x, struct complejo y);
  7. struct complejo resta(struct complejo x, struct complejo y);
  8. struct complejo multiplicacion(struct complejo x, complejo y);
  9.  
  10. int main(void)
  11. {
  12.   int opcion;
  13.   printf("OPERACIONES CON NUMEROS COMPLEJOS:\n");
  14.   printf("1) Suma de números complejos\n");
  15.   printf("2) Divison de números complejos\n");
  16.   printf("3) Resta de números complejos\n");
  17.   printf("4) Multiplición de números complejos\n");
  18.   printf("Ingrese una opción:\n");
  19.   scanf("%d",&opcion);
  20.   switch(opcion)
  21.   {
  22.   case 1:
  23.   printf("1) Suma de números complejos:\n\n");
  24.   struct complejo suma1,suma2,csuma;
  25.   printf("Ingrese la parte real del primer numero complejo:");
  26.   scanf("%f",&suma1.a);
  27.   printf("Ingrese la parte imaginaria del primer numero complejo:");  
  28.   scanf("%f",&suma1.b);
  29.   printf("Ingrese la parte real del segundo numero complejo:");
  30.   scanf("%f",&suma2.a);
  31.   printf("Ingrese la parte imaginaria del segundo numero complejo:");
  32.   scanf("%f",&suma2.b);
  33.   csuma = suma (suma1,suma2);
  34.   printf("El resultado es= %f+j%f\n\n",csuma.a,csuma.b);
  35.   system("PAUSE");
  36.   return EXIT_SUCCESS;
  37.   break;
  38.  
  39.   case 2:
  40.   printf("2) Division de dos números complejos:\n\n");
  41.   struct complejo {
  42.   float division1, division2, cdivision;
  43.   };
  44.   printf ("Ingrese el modulo del primer numero complejo:");
  45.   scanf ("%f",&division1.a);
  46.   printf ("Ingrese la fase del primer numero complejo:");
  47.   scanf ("%f",&division1.b);
  48.   printf ("\nIngrese el modulo del segundo numero complejo:");
  49.   scanf ("%f",&division2.a);
  50.   printf ("Ingrese la fase del segundo numero complejo:");
  51.   scanf ("%f",&division2.b);
  52.   cdivision = division (division1, division2);
  53.   printf ("\nEl resultado de la division es= Modulo= %f Fase=%f\n\n", division.a,division.b);
  54.   system("PAUSE");
  55.   return EXIT_SUCCESS;
  56.  
  57.   break;
  58.  
  59.   case 3:
  60.   printf("3) Resta de números complejos\n\n");
  61.   struct complejo {
  62.   float resta1, resta2, cresta;
  63.   };
  64.   printf("Ingrese la parte real del primer numero complejo:");
  65.   scanf("%f",&resta1.a);
  66.   printf("Ingrese la parte imaginaria del primer numero complejo:");  
  67.   scanf("%f",&resta1.b);
  68.   printf("Ingrese la parte real del segundo numero complejo:");
  69.   scanf("%f",&resta2.a);
  70.   printf("Ingrese la parte imaginaria del segundo numero complejo:");
  71.   scanf("%f",&resta2.b);
  72.   cresta = resta (resta1,resta2);
  73.   printf("El resultado es= %f-j%f\n\n",csuma.a,csuma.b);
  74.   system("PAUSE");
  75.   return EXIT_SUCCESS;
  76.   break;
  77.  
  78.   case 4:
  79.   printf("\n4) Multiplicación de dos números complejos: \n\n");
  80.   struct complejo{
  81.   float producto1,product2, producto;
  82. }
  83.   printf("Ingrese el modulo del primer numero complejo:");
  84.   scanf("%f",&producto1.a);
  85.   printf("Ingrese la fase del primer numero complejo:");
  86.   scanf("%f",&producto1.b);  
  87.   printf("\nIngrese el modulo del segundo numero complejo:");
  88.   scanf("%f",&producto2.a);
  89.   printf("Ingrese la fase del segundo numero complejo:");
  90.   scanf("%f",&producto2.b);
  91.   producto = multiplicacion (producto1, producto2);
  92.   printf("\nEl resultado del producto es= Modulo= %f Fase=%f\n\n",  producto.a,producto.b);
  93.   system("PAUSE");
  94.   return EXIT_SUCCESS;
  95.   break;
  96.   default: printf("La opción que ingresaste no es correcta\n");  
  97.   }
  98. }
  99.   struct complejo suma (struct complejo x, struct complejo y)
  100. {
  101.   struct complejo i;
  102.   i.a=x.a+y.a;
  103.   i.b=x.b+y.b;
  104.   return i;
  105. }
  106.   struct complejo division(struct complejo x, struct complejo y)
  107. {
  108.   struct complejo i;
  109.   i.a=x.a/y.a;
  110.   i.b=x.b-y.b;
  111.   return i;
  112. }
  113.   struct complejo resta(struct complejo x, struct complejo y)
  114. {
  115.   struct complejo i;
  116.   i.a=x.a-y.a;
  117.   i.b=x.b-y.b;
  118.   return i;
  119. }
  120.   struct complejo multiplicacion(struct complejo x, struct complejo y)
  121. {
  122.   struct complejo i;
  123.   i.a=x.a * y.a;
  124.   i.b=x.b+y.b;
  125.   return i;
  126. }
  127.  
  128.  
  129.  


Título: Re: Ayuda para un programa en C
Publicado por: amchacon en 18 Febrero 2013, 14:36 pm
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.