Hola, mi problema es que no entiendo "funciones", me han dejado un programa con suma, resta, multiplicación y división de números complejos utilizando "estructuras" y "funciones", ése no es el problema, al menos el programa ya está hecho con estructuras (lo hice utilizando, además, un switch), lo que no sé, es cómo pasarlo a funciones, ¿me podrían echar una mano?
si pones el programa aqui te podemos explicar mejor ;)
[youtube=640,360]http://www.youtube.com/watch?v=wmY8zRoQxkE[/youtube]
aqui una explicacion ;)
Cita de: vangodp en 20 Agosto 2013, 05:52 AM
si pones el programa aqui te podemos explicar mejor ;)
Lo siento, ya lo pongo:
#include <stdio.h>
#include <stdlib.h>
struct complejos
{
float r,i;
};
main()
{
int i,op;
float sumar=0,sumai=0;
printf("\t\t\t\tNumeros Complejos\n\n");
printf("Elige una opcion:\n");
printf("1. Suma\n2. Resta\n3. Multiplicacion\n4. Division\n");
scanf("%d",&op);
struct complejos c[2];
switch (op)
{
case 1:
for(i=0;i<2;i++)
{
printf("Dame la parte real del numero %d: ",i+1);
scanf("%f",&c
.r);
printf("Dame la parte imaginaria del numero %d: ",i+1);
scanf("%f",&c.i);
}
for(i=0;i<2;i++)
{
sumar+=c.r;
sumai+=c.i;
}
printf("La suma es: %.2f + %.2fi\n",sumar,sumai);
break;
case 2:
for(i=0;i<2;i++)
{
printf("Dame la parte real del numero %d: ",i+1);
scanf("%f",&c.r);
printf("Dame la parte imaginaria del numero %d: ",i+1);
scanf("%f",&c.i);
}
sumar=c[0].r-c[1].r;
sumai=c[0].i-c[1].i;
printf("La resta es: %.2f + %.2fi\n",sumar,sumai);
break;
case 3:
for(i=0;i<2;i++)
{
printf("Dame la parte real del numero %d: ",i+1);
scanf("%f",&c.r);
printf("Dame la parte imaginaria del numero %d: ",i+1);
scanf("%f",&c.i);
}
sumar+=c[0].r*c[1].r-c[0].i*c[1].i;
sumai+=c[0].r*c[1].i+c[0].i*c[1].r;
printf("La multiplicacion es: %.2f + %.2fi\n",sumar,sumai);
break;
case 4:
for(i=0;i<2;i++)
{
printf("Dame la parte real del numero %d: ",i+1);
scanf("%f",&c.r);
printf("Dame la parte imaginaria del numero %d: ",i+1);
scanf("%f",&c.i);
}
sumar+=(c[0].r*c[1].r + c[0].i*c[1].i)/(c[1].r*c[1].r + c[1].i*c[1].i);
sumai+=(c[0].i*c[1].r - c[0].r*c[1].i)/(c[1].r*c[1].r + c[1].i*c[1].i);
printf("La division es: %.2f + %.2fi\n",sumar,sumai);
break;
default:
break;
}
system("PAUSE");
}
Apenas estoy aprendiendo a programar por lo que tengo algunos errores...
Crea una función para cada operación:
double sumar(double a, double b);
double restar(double a, double b);
double multiplicar(double a, double b);
double dividir(double a, double b);
Mete las instrucciones de los bloques CASE en cada función; después lo único que debes hacer es llamarlas desde dichos bloques.
Guíate con: http://c.conclase.net/curso/index.php?cap=003#inicio
Un saludo.