Asuntos Oficiales > Retos
Re: 25/02/02 - Fácil - Matematico - Ecuacion de segundo grad
tenesor:
Para que no se duerma este foro antes de que empiece en funcionamiento, voy a plantear el primer reto:)
Realizar un programa que calcule las soluciones de una ecuación de segundo grado.
aX2 + bX + c = 0
Nota: el aX2 es a*X al cuadrado.
Como veis, el planteamiento es corto y entendible:). A ver cuantos lo sacan...
(Esta es para ti, EQLucky:D)
[Modificado el 2/25/02 por tenesor]
EQLucky:
JAJAJAJA, pero bueno...
Vale, vale, pongo mi granito de arena:
float segundogrado(float a, float b, float x, float y1, float y2)
{
printf("Introduzca los valores de la ecuaci¢n de segundo grado: ");
printf("n ( )x^2 + ( )x + ( ) = 0");
gotoxy(3,2);
scanf("%f",&a);
gotoxy(16,2);
scanf("%f",&b);
gotoxy(27,2);
scanf("%f",&x);
y1 = ( (-b) + sqrt((b*b)-(4*a*x)) ) / (2*a);
y2 = ( (-b) - sqrt((b*b)-(4*a*x)) ) / (2*a);
printf("ntResultados ===> x1 = %.4f",y1);
printf("nt x2 = %.4fn",y2);
Esto esta sin compilar, pero creo que es correcta, si los cálculos no me fallan.
kenshin:
Bueno, aquí pongo el mío tb. Es más largo, pero contempla todas las posibilidades (creo:)
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main(void)
{
float A, B, C, r, R, discr;
clrscr();
printf("Coeficiente A=");
scanf("%f",&A);
printf("Coeficiente B=");
scanf("%f",&B);
printf("Coeficiente C=");
scanf("%f",&C);
if(A==0 && B!=0){
printf("nLa ecuacion no es de 2o grado,ntr=%f",(-C/B));}
if(A==0 && B==0){
printf("nERROR!");}
if(A!=0){
discr=(B*B)-(4*A*C);
r=(-B/(2*A));
R=sqrt(abs(discr))/(2*A);
if(discr==0)
printf("nLa raiz es doble,ntr1=r2=%f",r);
else if(discr<0)
printf("nLas raices son imaginarias,ntr1=%f+%fitr2=%f%fi",r,R,r,(-R));
else if(discr>0)
printf("nLas raices son reales,ntr1=%ftr2=%f",(r+R),(r-R));
}
getch();
return(0);
}
tenesor:
Hola.
Pues si, he probado los dos y ha funcionado correctamente. Solo he tenido un pequeño problema con el de EQLucky pero ha sido por compiladores.
La funcion "gotoxy" es de Borland, por lo que aquellos usuarios de compiladores como Dev-c++ o GCC les dará error. Solo teneis que quitar las lineas Gotoxy y hacer tres preguntas con el printf (valor de a, de b y de x). Guardarlas en sus correspondientes variables y el programa funcionará a la perfeccion.
Alguna respuesta más? Máñana (27/02/02) cerrare el reto. Espero que colabore mas gente con el proximo reto....
delpa:
Hala hay va otro, si tocais estos temas, yo por mi encantao:
---------------------------------------------
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main(void){
float coef[3],result1[2]={0,0},result2[2]={0,0},aux;
clrscr();
printf("Introduce los coeficientes (aX**2 + bX + C =0)n");
printf("Introduce el coeficiente an");
scanf("%f",&coef[0]);
printf("Introduce el coeficiente bn");
scanf("%f",&coef[1]);
printf("Introduce el coef cn");
scanf("%f",&coef[2]);
aux=coef[1]*coef[1]-4*coef[0]*coef[2];
result1[0]= (-coef[1]/(2*coef[0]));
result2[0]= (-coef[1]/(2*coef[0]));
if(aux<0){ /*hay raices complejas*/
aux=-aux;
result1[1]= ( sqrt(aux) / (2*coef[0]) );
result2[1]= - (sqrt(aux)/(2*coef[0]));
}
else{
result1[0]= result1[0] + sqrt(aux)/(2*coef[0]);
result2[0]= result2[0] - sqrt(aux)/(2*coef[0]);
}
printf("La primera raiz es %f + %f i",result1[0],result1[1]);
printf("La segunda raiz es %f + %f i",result2[0],result2[1]);
return(0);
}
Navegación
[#] Página Siguiente
Ir a la versión completa