Domingo 22 de Diciembre de 2024, 16:28
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
No funciona el programa
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: No funciona el programa (Leído 2335 veces)
samu22893
Nuevo Miembro
Mensajes: 4
No funciona el programa
«
en:
Sábado 30 de Agosto de 2008, 21:14 »
0
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.
Tweet
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: No funciona el programa
«
Respuesta #1 en:
Domingo 31 de Agosto de 2008, 00:25 »
0
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
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
samu22893
Nuevo Miembro
Mensajes: 4
Re: No funciona el programa
«
Respuesta #2 en:
Domingo 31 de Agosto de 2008, 01:46 »
0
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
Moderador
Mensajes: 796
Nacionalidad:
Re: No funciona el programa
«
Respuesta #3 en:
Domingo 31 de Agosto de 2008, 21:10 »
0
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
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
samu22893
Nuevo Miembro
Mensajes: 4
Re: No funciona el programa
«
Respuesta #4 en:
Lunes 1 de Septiembre de 2008, 01:40 »
0
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
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: No funciona el programa
«
Respuesta #5 en:
Lunes 1 de Septiembre de 2008, 09:32 »
0
Sólo unos apuntes si me permites:
1. Una ecuación de segundo grado tiene
2
soluciones, la que mencionas y b
-
sqrt(b*b-4.0*a*c))/(2.0*a)
2. Es cierto que a tiene que ser <> 0, pero si es 0 no es una ecuación de segundo grado, ya que
a
x^2 + bx + c
3. b puede ser negativo puesto que se eleva al cuadrado, y a y c también pueden ser negativos. Lo que no puede ser es que 4ac sea mayor que b^2.
4. Claro que existen las raíces de números negativos, son números imaginarios (i = sqrt(-1)) y son soluciones a ecuaciones de 2º grado.
Fr33k K0mpu73r
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: No funciona el programa
«
Respuesta #6 en:
Lunes 1 de Septiembre de 2008, 19:32 »
0
Tienes razon en todo mosquito, aunque si te fijas, yo solo recalque en donde podia estar el error, no puse todas las reglas de la formula para ecuaciones de segundo grado.
Y respecto a las raices pares de numero negativos, claro que existen, y eso ya se sabe que son los numeros imaginarios, pero a menos que diseñes un tipo especial para manejarlas, el compilador dara error al tratar de hacer sqrt(-1). A eso me referia yo en la explicacion.
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: No funciona el programa
«
Respuesta #7 en:
Martes 2 de Septiembre de 2008, 08:23 »
0
Cierto, Profesor X, pero por eso digo que tan sólo son apuntes.
Fr33k K0mpu73r
eternity
Miembro activo
Mensajes: 78
Nacionalidad:
Re: No funciona el programa
«
Respuesta #8 en:
Viernes 17 de Octubre de 2008, 03:02 »
0
bueno primero no contemplas que si el valor de a es 0, no es una ecuacion de 2do grado, y que si llegaras a ingresarlo en el programa daria error de división por cero, otro tema, si tus variables no son enteras es un error que utilices DIV , tenes que utilizar la '/' para dividir, son cuestiones que se van puliendo!
espero que te sea util!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
No funciona el programa