Anuncios Google

Return en Pascal

Tengo un problema a la hora de cerrar el código. El problemas es que cuando quiero que haga la suma de los datos y los muestre en pantalla lo que hace es desaparecer la pantalla y entonces no muestra el resultado final. Lo que me refiero es que quiero que me devuelva el valor de la suma y no salga de la pantalla automáticamente, sería como un return.

program edad2009;
 
var
 
dato: record
nacimiento: integer;
edad: byte;
año: integer;
end;
 
begin
 
with dato do
 begin
 writeln('Introduce tu año de nacimiento');
 readln(nacimiento);
 writeln('Introduce el año actual');
 readln(año);
 edad := año - nacimiento;
 writeln(edad);
 end;
 end.

El lenguaje es el Pascal.


Image Hosted by ImageShack.us 


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 victor141516

sleep

Tienes que poner un:

sleep(9999999)

O cualquier otro numero, creo que es en milisegundos, es el tiempo que la ventana esta activa

PD: Mira que casoalidad que justo estamos dando Pascal ahora en el colegio


 

 

"El pueblo no debería temer a sus gobernantes, son los gobernantes los que deberían de temer al pueblo"

Imagen de pspgorrister

En pascal hay 2 tipos de

En pascal hay 2 tipos de funciones, si no devuelve valor ,se llama procedimientos (procedures), si devuelven algun valor, son funciones (functions). Dependiendo del pascal que estés usando, puede usar la variable genérica result que guarda el valor devuelto, *creo* que result sólo te funcionará si usas Delphi o con FreePasca si tienes el modo ObjFPC, pones la directiva del compilador "{$H+}" en el código. Si no tuvieras ese modo activo, tendrías que crearte una variable sólo para delvolver el valor, tipo "Return MiVariableLocal". Un ejemplo

{$H+}
program edad2009;
 
 
function calcula_edad(ano_naci, ano_actual: Integer) : Integer;
begin
    Result := ano_actual - ano_naci; //Implicitamente ya hay un "Return Result"
end;
 
var
 
  dato: record
     nacimiento: integer;  //Sangrar lo que va dentro del record, ayuda
     edad: byte;
     año: integer; //¿Con eñe? lol
  end;
 
begin
 
  with dato do  begin
      writeln('Introduce tu año de nacimiento');
      readln(nacimiento);
      writeln('Introduce el año actual');
      readln(año);
      edad := calcula_edad(nacimiento, año);
      writeln(edad);
      readln; //Truco: esta instrucion te puede servir de pausa hasta pulsar INTRO
   end;
end.

Realmente tu duda no se si era por la pausa o la función, pero bueno, no está de más por si alguien no sabia lo de las funciones.

 

Un saludo.

 

PD: Código hecho a burrobarra, no lo he compilado y puede que tenga algún errorcillo por ahí.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de recoco

Gracias

Gracias, me faltaba poner readln;.

Imagen de victor141516

Jue

Tiu, a mi me enseñaron eso, y ahora tu me saltas con esto Llora ains, no tienes sentimientos!!! XD

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.