Códigos Fuente de Pascal/Turbo Pascal

Mostrando del 1 al 10 de 138 registros
<<>>
sin imagen de perfil

Practica


Pascal/Turbo Pascal

Publicado el 1 de Agosto del 2021 por Jose Miguel (9 códigos)
250 visualizaciones desde el 1 de Agosto del 2021
program practica(input, output,f1,fmovi,f2);
type
cadena30 = packed array[1..30] of char;
opcion=(a,m);
tfalant = record
an_nma:1..999;
an_nom:cadena30;
an_dir:cadena30;
an_rva:boolean;
an_nfal:0..365;
an_nsus:0..25;
end;

tmovi = record
mv_nma:1..999;
mv_nom:cadena30;
mv_dir:cadena30;
mv_tip:opcion;
end;

tfalum = record
al_nma:1..999;
al_nom:cadena30;
al_dir:cadena30;
end;

ffalant = file of tfalant;
fmove = file of tmovi;
ffalum = file of tfalum;

var
i:integer;
c:char;
f1:ffalant;
f2:ffalum;
fmovi:fmove;
rfalant:tfalant;
rmovi:tmovi;
rfalum:tfalum;
seguir:boolean;

function continuar(raux:tfalant):boolean;
begin
continuar:= true;
if raux.an_rva=false then
begin
writeln('El alumno,',raux.an_nom,'no tiene reserva.');
continuar:= false;
end;
if raux.an_nfal>50 then
begin
writeln('El alumno, ',raux.an_nom,' tiene mas de 50 faltas.');
continuar:=false;
end;
if raux.an_nsus>3 then
begin
writeln('El alumno, ',raux.an_nom,' tiene mas de 3 asignaturas suspensas');
continuar:= false;
end;
end;

procedure copy_falum(raux:tfalant;var rfalum:tfalum);
begin
rfalum.al_nma:=raux.an_nma;
rfalum.al_nom:=raux.an_nom;
rfalum.al_dir:=raux.an_dir;
end;

procedure copy_falum2(raux2:tfalant;raux:tmovi;var rfalum:tfalum);
begin
rfalum.al_nma:=raux.mv_nma;
if raux.mv_tip=m then
rfalum.al_nom:=raux2.an_nom
else
rfalum.al_nom:=raux.mv_nom;
rfalum.al_dir:=raux.mv_dir;
end;

procedure busqueda(raux:tmovi; var raux2:tfalant;var encontrado:boolean);
var
f1:ffalant;
begin
encontrado:=false;
assign(f1,'falant.dat');
reset(f1);
while (not eof(f1)) and (encontrado=false) do
begin
read(f1,raux2);
if raux2.an_nma=raux.mv_nma then
encontrado:= true;
end;
end;

begin
assign(fmovi,'movi.dat');
rewrite(fmovi);
while not eof do
begin
for i:=1 to 24 do writeln;
write('Escriba el n£mero de matr¡cula del alumno: ');
readln(rmovi.mv_nma);
write('Escriba el nombre y los apellidos del alumno: ');
i:=1;
while not eoln do
begin
read(rmovi.mv_nom[i]);
i:=i+1;
end;
for i:=1 to 30 do rmovi.mv_nom[i]:=' ';
write('Escriba la direcci¢n del alumno: ');
readln;
i:=1;
while not eoln do
begin
read(rmovi.mv_dir[i]);
i:=i+1;
end;
for i:=i to 30 do rmovi.mv_dir[i]:=' ';
write('Tipo de operacion que desea realizar (a/m) :');
c:='w';
while (c<>'a') and (c<>'m') do
read(c);
case c of
'a': rmovi.mv_tip:=a;
'm': rmovi.mv_tip:=m;
end;
write('N£mero de faltas en el curso anterior: ');
readln(rfalant.an_nfal);
write('N£mero de asignaturas suspensas: ');
readln(rfalant.an_nsus);
write('Si no desea introducir otro registro pulse CTRL-Z ');
write(fmovi,rmovi);
readln;

end;
assign(f1,'falant.dat');
reset(f1);
assign(f2,'falum.dat');
rewrite(f2);
reset(fmovi);
read(f1,rfalant);
read(fmovi,rmovi);
writeln;


for i:=1 to 24 do writeln;
while (not eof(fmovi)) and (not eof(f1)) do
begin
if rfalant.an_nma<rmovi.mv_nma then
begin
seguir:=continuar(rfalant);
if seguir=true then
begin
copy_falum(rfalant,rfalum);
write(f2,rfalum);
end;
read(f1,rfalant)
end
else
begin
if rmovi.mv_nma=rfalant.an_nma then
begin
if rmovi.mv_tip=a then
begin
writeln('Error, no se puede dar de alta a',rmovi.mv_nma);
end
else
begin
seguir:=continuar(rfalant);

if seguir=true then
begin
copy_falum2(rfalant,rmovi,rfalum);
write(f2,rfalum);
end;
read(f1,rfalant);
read(fmovi,rmovi);
end;
end
else
begin
if rmovi.mv_tip=a then
begin
copy_falum2(rfalant,rmovi,rfalum);
write(f2,rfalum);
end
else
writeln('Error, no se puede modificar al alumno ',rmovi.mv_nma,'anulado.');
read(fmovi,rmovi);
end;
end;
end;
while not eof(f1) do
begin
seguir:=continuar(rfalant);
if seguir=true then
begin
copy_falum(rfalant,rfalum);
write(f2,rfalum);
end;
read(f1,rfalant);
end;
seguir:=continuar(rfalant);
if seguir=true then
begin
copy_falum(rfalant,rfalum);
write(f2,rfalum);
end;
while not eof(fmovi) do
begin
if rmovi.mv_tip=m then
begin
busqueda(rmovi,rfalant,seguir);
if seguir=false then
writeln('Error, no puede modificarse al alumno ',rmovi.mv_nom, 'ya que no est  matriculado.')
else
end
else
begin
copy_falum2(rfalant,rmovi,rfalum);
write(f2,rfalum);
end;
read(fmovi,rmovi);
end;
if rmovi.mv_tip= m then
begin
busqueda(rmovi,rfalant,seguir);
if seguir=false then
begin
writeln('Error, no puede modificarse al alumno',rmovi.mv_nom);
end
else
begin
copy_falum2(rfalant,rmovi,rfalum);
write(f2,rfalum);
end;
end
else
begin
copy_falum2(rfalant,rmovi,rfalum);
write(f2,rfalum);
end;
close(f1);
close(f2);
close(fmovi);
readln;
end.
sin imagen de perfil
Val: 36
Ha aumentado su posición en 4 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Adivina un numero de 1 al 63 que pensaste


Pascal/Turbo Pascal

Actualizado el 28 de Junio del 2021 por Armando José (9 códigos) (Publicado el 26 de Junio del 2021)
7.511 visualizaciones desde el 26 de Junio del 2021
el programa consiste en:

Piensa en un número entre 1 y 63.
Se mostrará 6 tarjetas, en cada
una de ellas debes teclear la letra
[S] y luego Enter si está el
número que pensaste o
[N] si no está el número.
Teclear Enter para continuar
Imágen de perfil
Val: 12
Ha disminuido su posición en 3 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Suma del 1 al 10


Pascal/Turbo Pascal

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 18 de Febrero del 2021 por Henry
1.152 visualizaciones desde el 18 de Febrero del 2021
Desarrolle un algoritmo que realice la sumatoria de los números enteros comprendidos entre el 1 y el 10, es decir, 1 + 2 + 3 + …. + 10.