Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 06-04-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Hola. Veo varias errores (despistes).

ShowMessage('Error!! No se puede Dividir entre 0')

Bueno, en realidad, si a=0, entonces deja de ser una ecuación de segundo grado, por lo que es más fácil resolverla: x=-c/b

a·x^2 + b·x + c = 0
si a=0
b·x + c = 0 ; b·x = -c ; x = - c / b


Pero vayamos a la programación.

else
x1:= sqrt (d);
x:= (b*b) - 4 *(a*c);
d:= x/2*(a);


Al principio haces sqrt(d), pero d no tiene ningún valor asignado anteriormente, así que la función sqrt se saca un resultado cero de la manga. Después x2:= -b + x1; pues -b + 0... por eso te falla.

Lo que tienes que hacer es escribir las cosas ordenadamente, pues es así como el compilador interpreta el código. Quedaría algo así:

Código Delphi [-]
var
  a, b, c: Integer;
  x1, x2, r: Real;
begin
  a:= StrToInt (Edit1.Text);
  b:= StrToInt (Edit2.Text);
  c:= StrToInt (Edit3.Text);
  If a = 0 then Edit4.Text:=FloatToStr(-c/b) else
    begin //también te faltó esto, pues sino sólo se ejecuta la
          //siguiente línea con el else, y todas las demás sin condición
    r:= b*b - 4*a*c; //r=lo de dentro de la raíz
    if r<0 then ShowMessage('Error!! Raiz Negativa Es Imaginario') else
      begin
      r:=Sqrt(r); //ahora r=raíz
      x1:=(-b+r)/(2*a);
      x2:=(-b-r)/(2*a); //Te recuerdo que tiene dos soluciones 
      Edit4.Text:= FloatToStr(x1) + ' y ' + FloatToStr(x2);
      end;
    end;
end;

Espero que lo hayas entendido.

Y por favor, la próxima vez elabora un poco más la pregunta. Por ejemplo, coloca el código de forma más ordenada, dinos por qué/para qué utilizas las variables, etc... ayudará a obtener una mejor respuesta

Salu2.

Última edición por ixMike fecha: 06-04-2008 a las 02:07:53. Razón: Un par de errores tipográficos
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
donde esta el error??? UREÑA Conexión con bases de datos 16 28-06-2007 19:45:17
jedi cvs: manejar versiones a nivel módulo y a nivel proyecto pvizcay Varios 3 17-04-2007 16:17:59
Acertijo en PHP. ¿Donde esta el error? papulo PHP 3 30-11-2005 18:47:28
donde está el error? :S jorodgar Varios 7 17-06-2005 15:32:08
Donde esta el error ?? tgsistemas SQL 2 31-01-2005 14:29:34


La franja horaria es GMT +2. Ahora son las 15:08:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi