lazarus
Publicado por paco (1 intervención) el 20/05/2007 17:21:28
soy estudiante de agricolas y tengo un problema para pasar este programa de pascal a lazarus en modo grafico y como todavia no domino lazarus me gustaria que alguien me eche una mano:
program alumnos_topografia;
uses crt;
type
alumno = record
nombre : string[20];
domicilio : string[30];
telefono : longint;
dni : longint;
repetidor : boolean;
end;
var
alumno_tercero : alumno;
fichero_alumnos, fichero_alumnos_aux : file of alumno;
letra, respuesta : char;
palabra : string;
numero : longint;
num_DNI : longint;
procedure pedir_datos;
begin
write ('Introduce el nombre del alumno: ====> ');
readln(palabra);
alumno_tercero.nombre:=palabra;
Write ('Introduce el domicilio: ============> ');
readln(palabra);
alumno_tercero.domicilio:=palabra;
Write ('Introduce el tel‚fono: =============> ');
readln(numero);
alumno_tercero.telefono:=numero;
Write ('Introduce el DNI: ==================> ');
readln(num_DNI);
alumno_tercero.dni:= num_DNI;
Write ('¨Es repetidor?: ====================> S/N ');
readln(respuesta);
if ((respuesta = 's') OR (respuesta = 'S')) then
begin
alumno_tercero.repetidor:=true;
end
else
begin
alumno_tercero.repetidor:=false;
end;
write(fichero_alumnos, alumno_tercero);
end;
{===============================================================}
procedure inicio;
var
salir:char;
begin
assign(fichero_alumnos, 'fich_al');
rewrite(fichero_alumnos);
clrscr;
repeat
begin
pedir_datos;
clrscr;
write ('¨Desea introducir otro alumno? ==> s/n ');
readln(salir);
writeln;
end;
until ((salir='n') or (salir='N'));
close(fichero_alumnos);
clrscr;
writeln('Hecho');
end;
{===============================================================}
procedure consulta;
begin
assign(fichero_alumnos, 'fich_al');
reset(fichero_alumnos);
clrscr;
repeat
begin
read(fichero_alumnos, alumno_tercero);
writeln('|=====================================================|');
writeln('Nombre del alumno ==========> ',alumno_tercero.nombre);
writeln('Direcci¢n del alumno =======> ',alumno_tercero.domicilio);
writeln('El campo telefono es particular y no se indica');
if alumno_tercero.repetidor then writeln ('Es repetidor ')
else writeln('No es repetidor ');
end;
until eof(fichero_alumnos);
close(fichero_alumnos);
writeln('Para volver al men£, pulse una tecla ');
repeat until keypressed;
end;
{==============================================================}
Procedure aniadir;
begin
assign(fichero_alumnos, 'fich_al');
reset(fichero_alumnos);
assign(fichero_alumnos_aux, 'fich_aux');
rewrite(fichero_alumnos_aux);
while not(eof(fichero_alumnos)) do
begin
read(fichero_alumnos, alumno_tercero);
write(fichero_alumnos_aux, alumno_tercero);
end;
pedir_datos;
close(fichero_alumnos);
close(fichero_alumnos_aux);
end;
{==============================================================}
{ Programa principal}
begin
clrscr;
Writeln('El programa permite generar una peque¤a base de datos sobre alumnos');
repeat
begin
writeln;
Writeln('Escribe la operaci¢n que deseas realizar');
writeln;
writeln('################################################################');
writeln('==========> I : Iniciar base de datos de alumnos ');
writeln('==========> A : A¤adir datos de un alumno ');
writeln('==========> W : escribir la informaci¢n de la base de datos ');
writeln('==========> Q : salir ');
writeln('################################################################');
readln(letra);
case letra of
'I', 'i' : Inicio;
'W', 'w' : consulta;
'A', 'a' : aniadir;
end; {del case}
end;
until ((letra = 'q') or (letra = 'Q'));
end.
program alumnos_topografia;
uses crt;
type
alumno = record
nombre : string[20];
domicilio : string[30];
telefono : longint;
dni : longint;
repetidor : boolean;
end;
var
alumno_tercero : alumno;
fichero_alumnos, fichero_alumnos_aux : file of alumno;
letra, respuesta : char;
palabra : string;
numero : longint;
num_DNI : longint;
procedure pedir_datos;
begin
write ('Introduce el nombre del alumno: ====> ');
readln(palabra);
alumno_tercero.nombre:=palabra;
Write ('Introduce el domicilio: ============> ');
readln(palabra);
alumno_tercero.domicilio:=palabra;
Write ('Introduce el tel‚fono: =============> ');
readln(numero);
alumno_tercero.telefono:=numero;
Write ('Introduce el DNI: ==================> ');
readln(num_DNI);
alumno_tercero.dni:= num_DNI;
Write ('¨Es repetidor?: ====================> S/N ');
readln(respuesta);
if ((respuesta = 's') OR (respuesta = 'S')) then
begin
alumno_tercero.repetidor:=true;
end
else
begin
alumno_tercero.repetidor:=false;
end;
write(fichero_alumnos, alumno_tercero);
end;
{===============================================================}
procedure inicio;
var
salir:char;
begin
assign(fichero_alumnos, 'fich_al');
rewrite(fichero_alumnos);
clrscr;
repeat
begin
pedir_datos;
clrscr;
write ('¨Desea introducir otro alumno? ==> s/n ');
readln(salir);
writeln;
end;
until ((salir='n') or (salir='N'));
close(fichero_alumnos);
clrscr;
writeln('Hecho');
end;
{===============================================================}
procedure consulta;
begin
assign(fichero_alumnos, 'fich_al');
reset(fichero_alumnos);
clrscr;
repeat
begin
read(fichero_alumnos, alumno_tercero);
writeln('|=====================================================|');
writeln('Nombre del alumno ==========> ',alumno_tercero.nombre);
writeln('Direcci¢n del alumno =======> ',alumno_tercero.domicilio);
writeln('El campo telefono es particular y no se indica');
if alumno_tercero.repetidor then writeln ('Es repetidor ')
else writeln('No es repetidor ');
end;
until eof(fichero_alumnos);
close(fichero_alumnos);
writeln('Para volver al men£, pulse una tecla ');
repeat until keypressed;
end;
{==============================================================}
Procedure aniadir;
begin
assign(fichero_alumnos, 'fich_al');
reset(fichero_alumnos);
assign(fichero_alumnos_aux, 'fich_aux');
rewrite(fichero_alumnos_aux);
while not(eof(fichero_alumnos)) do
begin
read(fichero_alumnos, alumno_tercero);
write(fichero_alumnos_aux, alumno_tercero);
end;
pedir_datos;
close(fichero_alumnos);
close(fichero_alumnos_aux);
end;
{==============================================================}
{ Programa principal}
begin
clrscr;
Writeln('El programa permite generar una peque¤a base de datos sobre alumnos');
repeat
begin
writeln;
Writeln('Escribe la operaci¢n que deseas realizar');
writeln;
writeln('################################################################');
writeln('==========> I : Iniciar base de datos de alumnos ');
writeln('==========> A : A¤adir datos de un alumno ');
writeln('==========> W : escribir la informaci¢n de la base de datos ');
writeln('==========> Q : salir ');
writeln('################################################################');
readln(letra);
case letra of
'I', 'i' : Inicio;
'W', 'w' : consulta;
'A', 'a' : aniadir;
end; {del case}
end;
until ((letra = 'q') or (letra = 'Q'));
end.
Valora esta pregunta


0