Pascal/Turbo Pascal - ayuda con programa

 
Vista:

ayuda con programa

Publicado por Pirulex (37 intervenciones) el 02/04/2001 06:12:16
mi pregunta es que funcion debo usar para brincar de un lugar en la ejecucion de programa a otro o sea si ya ejecute un proceso pero quiero que en determinado punto se repita todo el proceso hasta ese punto, como le pido que se devuelva al punto deseado.
la otra pregunta es como hacer para que un arreglo grabe la informacion que se le esta dando, o sea como puedo mantener esa informacion una vez que salga de la ejecucion del programa, lo que quiero es que cuando ingrese de nuevo poder contarcon los datos que ya habia ingresado, hasta ahora no he podido hacerlo, cada ves que ingreso al programa se me ha borrado la informacion y tengo que digitarla de nuevo
Gracias...
Pirulex

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:ayuda con programa

Publicado por Diego Romero (282 intervenciones) el 02/04/2001 07:29:02
Para tu primera pregunta la sentencia es GOTO pero tiene sus restricciones.
Primero debes declarar las etiquetas, que son los identificadores a donde se harán los saltos, en la parte de labels. Luego poner esos identificadores (etiquetas) donde queres que salte la ejecución pero dicho salto debe estar en el mismo bloque begin ... end; go la sentencia GOTO.
Ej:
program ...
label salto1, salto2;
begin
...
begin
salto1
...
goto salto1;
end;
end.
pero es una muy mala practica usar la sentencia GOTO en pascal, deberias buscar la forma de evitar en todo lo posible su uso.
Para tu segunda pregunta es muy simple, guarda en un archivo los datos del array antes de salir del programa y vuelve a cargar el array desde el achivo al principio del programa.
¿dudas? tienes mi mail.
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:ayuda con programa

Publicado por Gustavo (6 intervenciones) el 02/04/2001 18:08:46
En pascal se debe evitar en lo posible los saltos
como comentas .
La primera regla del pascal es modular todo usando
procedimientos y funciones. Segundo utilizar las
sentencias While y Repeat.
Por ejemplo
procedure proceso1 ( parametros );
begin
hago algo lindo
end;
procedure proceso2 (parametros );
begin
otra cosa
end;

begin
while ( ocurra algo para el procedo1 ) do proceso1
repeat
proceso2
sigo con otra cosa...
until ya no nesesito el proceso2
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:ayuda con programa(array)

Publicado por Gustavo (6 intervenciones) el 02/04/2001 18:16:06
La información que se almacena en un array es
volatil, es decir que cuando terminas el programa se pierde.
La solucion para almacenar la informacion en un
arreglo permanentemente es guardarlo en disco
Ejemplo
type
miarreglo : array[1..100] of tipodato
procedure Guardoarregloadisco ( arreglo : miarreglo );
var
i :byte;
archivo : file of tipodato;
begin
Assing( archivo , :\midirectorio\miarch.dat );
Rewrite ( archivo );
for i := 1 to 100 do write ( archivo , arreglo[i] );
Close ( archivo );
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:ayuda con programa(array)

Publicado por Pirulex (37 intervenciones) el 02/04/2001 20:23:07
Gustavo, me parece exelente tu sugerencia de guardar los datos en el disco, lo que no entiendo muy bien es como aplicar la funcion Assing, necesito que me des un ejemplo, como lo aplicarias al siguiente procedimiento:

program dato;
uses crt;
var
cont:integer;
nombregallina:array[1..3] of string;
procedure inclusion;
begin
for cont:=1 to 3 do
begin
writeln('digite el nombre de la gallina',cont,' :');
readln(nombregallina[cont]);
end;
end;

como aplicarias esa funcion en este prodedimiento para no perder los nombres que ya se ingresaron y como hago para consultar esos datos cuando reingrese en el programa?
gracias...
Pirulex
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

Las Gallinas al disco

Publicado por Gustavo (6 intervenciones) el 02/04/2001 21:03:00
Para guardar el array en disco se puede utilizar
el siguiente procedimiento :
primeramente en el comienzo del programa
especificamos el tipo acadena que es un arreglo
type
acadena : array[1..3] of string;

procedure GuardarGallina ( datos : acadena );
var
i : byte;
archivo : file of string;
begin
{$I-}
Assign ( archivo , ´C:\gallina.dat´ );
Rewrite ( archivo );
{$I+}
if IOResult = 0 then
begin
for i := 1 to 3 do
write ( archivo , datos[i] );
Close ( archivo );
end;
end;

Assign asocia la variable tipo archivo con
un archivo en el disco , en este caso utilizo
gallinas.dat en el disco C:
Rewrite es un procedimiento que crea el archivo
En IOResult se almacena un codigo de error,
si tiene valor 0 es porque no ha ocurrido ningun
error.

Te paso el procedimento para recuperar el archivo :

procedure LeeGallina ( var Datos : acadena );
var
i : byte;
archivo : file of string ;
begin
{$I-}
Assign ( archivo , ´C:\gallina.dat´ );
Reset ( archivo );
{$I+}
if IOResult = 0 then
begin
for i := 1 to 3 do read ( archivo, datos[i] );
Close ( archivo );
end;
end;

Espero que esto sirva, perdona si hay algun error
lo escribi sin probarlo, cualquier consulta,
ya tienes mi mail . Suerte .


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