Pascal/Turbo Pascal - Pregunta

   
Vista:

Pregunta

Publicado por Marcos Antonio (4 intervenciones) el 07/02/2010 22:33:25
Muy buenas tardes amigos de la Web del programador, bueno escribo para hacer unas consultas, en la facultad me han mandado a crear una calculadora, la misma tiene que usar solo las cuatro operaciones basicas +,-,*,/, ok hasta alli todo bien, el problema esta en que necesita solo dejar introducir los numeros, los puntos decimales, y los signos, ok me diran usa "Function VAL()", ok lo voy a hacer, mi dilema esta en como hacer que la calculadora cuando este corriendo me muestre en pantalla los numeros que voy escribiendo, asi como una calculadora normal, y que cuando presione = me de el resultado, se que tiene que ver con algo de readkey y keypressed, pero nose como usarlos, ojo tiene que escribir practicamente en tiempo real. y decirme cuando introduzca algo invalido! y ademas quisiera que cuando presione F1 me aparezca un cuadro de dialogo y una opcion para cerrarlo. Agradeciendo sus respuestas se despides de ustedes un muchacho de la secundaria en problemas :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pregunta

Publicado por edwin (71 intervenciones) el 08/02/2010 16:01:08
pues tendrias que idearte algo asi como un editor de numero reales , y tus teclas de salida para procesar serian +*-/ .
Tambien aceptarías todos los caracteres siguientes "0123456789." , y en efecto se utiliza la sentencia readkey.

Te recomiendo que lo manejes como una cadena de caracteres , validandolo con las especificaciones anteriores.

tengo una utileria en esta liga
http://foros.solocodigo.com/viewtopic.php?f=34&t=40724

tiene una funcion que edita numeros reales, podrias basarte para construir tu propio editor de numeros

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta

Publicado por marcos antonio (4 intervenciones) el 09/02/2010 18:54:16
Ok, tomare en cuenta tu ayuda, muchas gracias, aunque ahora me surge otra duda, la calcu necesita que al presionar la tecla F1 me aparesca una pantalla, no se que codigo utiliza esa tecla con readkey, si me puedes ayudar por favor!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta

Publicado por edwin (71 intervenciones) el 10/02/2010 17:31:17
f1
es una tecla especial
antepone un #0 y despues el #59

se lee dos veces con el siguiente codigo para ller teclas especiales

tecla:=readkey;
if Tecla=#0 then
Tecla:=readkey;

case tecla of
#59:begin
{despliegas ayuda}
end;

espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta

Publicado por marcos antonio (4 intervenciones) el 11/02/2010 16:43:51
Muchas Gracias men, una ultima pregunta... Como valido un numero real?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta

Publicado por edwin (71 intervenciones) el 11/02/2010 22:24:22
este ya se babia contestado en otro foro

La función ioResult te sirve para averiguar si en la operación que acabas de realizar ocurrió un error de entrada o salida. Esta la utilizas junto con las directivas de compilación {$I-}{$I+}.Por ejemplo:

var
Numero : Byte;
begin
{$I-} {desactivamos el control de error}
ReadLn(Numero);
{$I+} {activamos el control de error}
{IOResult nos el valor introducido es válido}
if IOResult <> 0 then
WriteLn(´Valor Inválido´)
else
WriteLn(´Valor permitido´);
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pregunta

Publicado por Marco antonio (4 intervenciones) el 12/02/2010 12:00:25
Muchas gracias men. Ahora me toca ver como la término. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar