Programación General > Pascal

 No funciona el programa

(1/2) > >>

samu22893:
Hola tengo 15 años y ayer empece con el pascal. Hoy he intentado crear un programa para la formula de las ecuaciones de 2º grado y se compila bien pero al ejecutarlo me deja meter los valores de las variables y pero luego se quita sin darme resultado ninguno. Yo creo que el problema puede estar en el tipo de variable y he intentado ponerlo con otros tipo. Seguro que es una tonteria pero como se puede deducir no se casi nada de pascal. Os dejo aqui el codigo:

program ecuacion;
var
a : double;
b : double;
c : double;
begin
writeln('a :');
readln(a);
writeln('b :');
readln(b);
writeln('c :');
readln(c);
writeln((b+sqrt(b**2-4*a*c))div(2*a));
writeln('***** PULSA ENTER PARA SALIR *****');
readln();
end.

Muchas Gracias de antemano. :D

ProfesorX:
Pues no estoy seguro, pero me parece que la division deberia ser con / y no con div.

Tambien viene el problema de la division por cero, no se puede dividir entre cero, ya que da error, faltaria una comprobacion para verificar que 2*A no sea igual a cero. Y tambien no puede haber raices cuadradas de numeros negativos, por lo que tambien debes comprobar que b**2-4*a*c no sea negativa.

Yo creo que por ahi estan los problemas.

Saludos :hola:

samu22893:
Que va ya he probado todo y nada.
He estado mirando la formula por partes y falla en el
sqrt(b**2-4*a*c)

ProfesorX:
Pues veo que no has revisado por todas partes como dices.

Pensaba que tu error era de logica, pero en relidad es de sintaxis

Verifique (no recordaba porque hacia tiempo que no porgramaba en pascal) y resulta que no existe el operador ** en pascal.

Para elevar al cuadrado deberias hacer b*b y no b**2.

otra cosa, al usar double, todos tus numeros deben ser double.

esta sentencia si debe compilar.

b+sqrt(b*b-4.0*a*c))/(2.0*a)

Pero aun asi, faltan las comprobaciones que te comentaba arriba.

Saludos :hola:

samu22893:
Muchas gracias ya se de donde es el problemaya funciona perfectamente. He cambiado el b**2 por b*b pero lo raro es que antes si me compilaba.
El problema de verdad estaba en lo que me dijiste al principio pues no me acordaba de que no se puede hacer la raiz cuadrada de un numero negativo y en programa al meter los valores de a, b y c metia los primeros numeros que me pasaban por la cabeza entonces pues no se ejecutaba.

Muchas gracias  :D

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa