Anuncios Google

Alguien que sepa PASCAL ? Tengo una duda en este algoritmo..

Bueno me piden que haga esto en pascal para mi curso de Ing.Informatica...

¿Calcular las raíces de una ecuación de segundo grado (ax²+bx+c=0)?

Yo uso es Dev-Pascal como IDE.

Esto es lo que yo hice:

program raices;
 
uses crt;
 
var
 
a,b,c:integer;
 
x1,x2:real;
 
 
 
begin
 
   x1:=0;
 
   x2:=0;
 
   gotoxy(30,1);writeln('-----------------------');
 
   gotoxy(30,2);writeln('      BIENVENIDO!      ');
 
   gotoxy(30,3);writeln('-----------------------');
 
  	 writeln('Ingrese los datos para sacar las racies a la ecuacion de segundo grado');
 
  	 writeln('de la forma ax^2+bx+c');
 
   	writeln('');
 
   	write('a = ');readln(a);
 
   	write('b = ');readln(b);
 
   	write('c = ');readln(c);
 
   x1:=(-b+sqrt(b*b-4*a*c))/2*a;
 
   x2:=(-b-sqrt(b*b-4*a*c))/2*a;
 
 
 
   clrscr;
 
  	 write('Las raices son: ');
 
   	write('x1 = ',x1);
 
 	write('');
 
 	write('x2 = ',x2);
 
   readkey;
 
end.

 

 

Cuando compilo me compila todo bien pero se me desaparece la pantalla rapido... y me muestra un error en lo que pude hacerle un capture de pantalla..

"Runtime Error 207 at 0x00401281" a ver si me podian ayudar.


Editado: Movido a Tecnicas de programacion y otros lenguajes, postear en el lugar incorrecto incumple las Normas de la Comunidad, antes de volver a postear por favor revíselas.| AORV


Canal de youtube        


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de joserc87

Sin solución

Ten en cuenta que no todas las ecuaciones de segundo grado tienen solución!. Mira la fórmula: si el interior de la raiz cuadrada es negativo, te dará error, puesto que no se puede hacer la raiz cuadrada de un número negativo! Yo le pondría un if tal que así:

program raices;
 
uses crt;
 
var
 
a,b,c:integer;
 
x1,x2:real;
 
 
 
begin
 
   x1:=0;
   x2:=0;
   gotoxy(30,1);writeln('-----------------------');
   gotoxy(30,2);writeln('      BIENVENIDO!      ');
   gotoxy(30,3);writeln('-----------------------'); 
   writeln('Ingrese los datos para sacar las racies a la ecuacion de segundo grado');
   writeln('de la forma ax^2+bx+c');
   writeln('');
   write('a = ');readln(a);
   write('b = ');readln(b);
   write('c = ');readln(c);
   if b*b-4*a*c >= 0 Then
      begin
	 x1:=(-b+sqrt(b*b-4*a*c))/2*a;
	 x2:=(-b-sqrt(b*b-4*a*c))/2*a;
	 clrscr;
	 write('Las raices son: ');
	 write('x1 = ',x1); 
	 write('');
	 write('x2 = ',x2);
      end
      else
      begin
	 clrscr;
	 write ('No hay raices:');
      end;
   readkey;
end.

Saludos

EDIT: Si lo quieres hacer más "pro" puedes cambiar el if por

Si b*b-4*a*c>0 -> mostrar las 2 raices

Si b*b-4*a*c=0 -> mostrar la única raiz

Si b*b-4*a*c<0 -> decir que no hay raices reales


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de Carl&#039;s

Sii muchas gracias ya habia visto eso :P

No me habia fijado en ello...de la discriminante si es <0 .... Ya se lo puse "pro" jajajajaj.. gracias compañero ;)

Imagen de Carl&#039;s

Alguien?

No entiendo cual es el error si todo esta bien :/

Te da error con todos los

Te da error con todos los valores que introduces? o sólo con algunos?

Google dice: Error 207: Invalid floating point operation, así que alguna operación mal estás haciendo (por ejemplo, calcular la raíz cuadrada de un número negativo).

PD. Evita responder a tus comentarios/hilos, debes esperar a que te respondan (si es que alguien puede). También, cuando pidas ayuda sobre programación por favor usa la herramienta para adjuntar code (primer botón del editor, de derecha a izquierda), para facilitar la lectura del mismo.

Imagen de Carl&#039;s

El error me da

Justo despues que introduzco los valores de a,b y c. despues de que los introduzco en la consola MS-DOS se sale el programa solo mostrando ese error, que con un capture de pantalla pude observar cual era, pero no creo que este haciendo algo mal porque dev-pascal me lo compila todo bien sin errores.


Canal de youtube        

Imagen de joserc87

Que algo compile no significa que esté bien.

Sino, depurar un programa sería trivial! De hecho, los errores que son difíciles de encontrar y corregir son todos errores de ejecución, no de compilación.

En este caso Rober Galaga ha vuelto a dar en el clavo. Era cuestión de los números que introduces. Por ejemplo, si pruebas con 0,0,0 o 1,3,2 funciona correctamente. Más arriba te explico que es preferible añadir un IF para que el programa sea seguro, aunque no haya solución.

Saludos!


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de Carl&#039;s

Nadie puede ayudarme? Nadie sabe Pascal ??

Solo diganme cual es el error.. proque me aparece ese error.. yo ejecuto el programa y todo fino... pero despues de que ingreso los 3 valores (a,b y c) me tira el error ese y se sale solo el programa (teniendo el READKEY al final) no entiendo sinceramente.


Canal de youtube        

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.