FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Donde Esta EL Error??? (Sencillo, Nivel Principiante)
Bien tengo que hacer un "programa" que me de el resultado de la formula general, formula es esta:
entonces hize lo que crei y parece todo andar bien, pero cuando me fijo bien, el resultado que me da es el que pongo en B, pero negativo. osea tengo que poner 3 valores (a,b,c) y en la barra de resultado me pone como respuesta lo mismo que puse en b, pero negativo (si pongo 4, me pone -4) Donde puede estar el problema?? Este es el codigo que tengo: Código:
var a,b,c: integer; x1,x2,x,d: real; begin a:= strtoint (edit1.text); b:= strtoint (edit2.text); c:= strtoint (edit3.text); if a = 0 then ShowMessage('Error!! No se puede Dividir entre 0') else x1:= sqrt (d); x:= (b*b) - 4 *(a*c); d:= x/2*(a); x2:= -b + x1; if x2 > 0 then ShowMessage('Error!! Raiz Negativa Es Imaginario'); edit4.Text := floattostr (x2); end; Última edición por Hitman014 fecha: 06-04-2008 a las 00:06:12. |
#2
|
||||
|
||||
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í:
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 |
#3
|
|||
|
|||
hize todo como me dijiste, pero ahora me sale un error al momento de correrlo
VER IMAGEN hubo una parte que no la puse igual como me dijiste, porque al ser dos resultados lo que voy a hacer es que el resultado de -b + resultado y que en el otro edit, me de el resultado de -b - resultado, haciendo la misma operacion en dos botones diferentes, nada mas cambiando el signo de + & -. Me refiero a esta parte: Cita:
espero ayuda para poder terminarlo ya!! gracias |
#4
|
|||
|
|||
Hola
¿Definiste r como float? Si el discriminante (b**2 - 4*a*c) es mayor que 0 no hay raices imaginarias, eso ocurre en la situación opuesta Salu2 |
#5
|
||||
|
||||
Ese error te sale porque has puesto if r>0 then ShowMessage('Error!! Imaginario'); cunado es r<0. Te sale porque está haciendo la raíz de un número negativo.
Ya que copias, podrías usar Ctrl+C, Ctrl+V Añado: a otra vez no tapes el código con el mensajito de error, o mejor aún, copia el código aquí para que podamos verlo Última edición por ixMike fecha: 06-04-2008 a las 02:49:05. |
#6
|
|||
|
|||
gracias por todo!! ese mismo era el problema "<"
|
|
|
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 |
|