Programa en pascal hecho en clases



HOLA GENTE, LES DEJO UN PROGRAMITA QUE HICE N PASCAL RECIEN EN CLASES, ESPERO QUE LES GUSTE!!!

EL PROBLEMA ERA EL SIGUIENTE:
Problema 18. Dada una lista con los datos de N libros de una biblioteca,
conteniendo la siguiente información:
• Título del libro
• Autor
• Tema
• Número de páginas
• Fecha de edición

Se pide determinar lo siguiente:

a) Frecuencia de letras usadas en los títulos de los libros.
b) Conjunto de consonantes usadas en Autor.
c) Una lista con los títulos cuyas páginas sumadas no superen el valor de 1000


program libreria;
uses crt;
type
fecha=record
dia:1..31;
mes:1..12;
anio:1800..2020;
end;
libros=record
titulo:string[20];
autor:string[20];
temamatematicas,contabilidad,elementos);
paginas:integer;
fecha1:fecha;
end;
vector=array[1..100] of libros;
var
x:vector; n:integer;

procedure carga (var x:vector; var n:integer);
var
i,op:integer;
begin
writeln(' Ingrese cantidad de libros '); readln(n);
for i :=1 to n do
begin
clrscr;
writeln(' Ingrese titulo: '); readln(x.titulo);
writeln(' Ingrese autor: '); readln(x.autor);
writeln(' Ingrese tema: "-1- para matematicas, -2- para contabilidad, -3- para elementos" ');
read(op);
case op of
1: x.tema:= matematicas;
2: x.tema:= contabilidad;
3: x.tema:= elementos;
end;
writeln(' Ingrese cantidad de paginas: '); readln(x.paginas);
writeln(' Ingrese fecha: ');
writeln;
writeln(' DIA: '); readln(x.fecha1.dia);
writeln(' MES: '); readln(x.fecha1.mes);
writeln(' ANIO: '); readln(x.fecha1.anio);
end;
end;

procedure frecuencia( x:vector; n:integer);
var
i,c,j:integer; k:char; pal:string;
begin
c:=0;
for j:=1 to n do
begin
pal:='';
pal:=x[j].titulo;

for k:='A' to 'Z' do
begin
for i:=1 to length (pal) do
begin
if upcase(pal)=k then
c:=c+1;
end;
writeln(' La cantidad de ',k,' es: ',c);
c:=0;
end;
end;
end;
procedure consonantes( x:vector; n:integer);

var
i:integer; conj:set of char; pal:string;
begin
conj:=[];
conj:= ['A'..'Z']-['A','E','I','O','U'];
writeln(' El conjunto de consonantes es: ');
for i:=1 to n do
begin
pal:=''; pal:=x.autor;
for i:=1 to length(pal) do
begin
if upcase(pal) in conj then
write(' ',pal,' ');
end;
end;
end;
procedure titulos( x:vector; n:integer);
var i:integer;
begin
writeln(' La lista de titulos con paginas menor a 1000 es : ');
for i:=1 to n do
begin
if x.paginas <= 1000 then
writeln(x.titulo);

end;
end;
begin
carga(x,n);
frecuencia(x,n);
consonantes(x,n);
titulos(x,n);
readkey;
end.

14 comentarios - Programa en pascal hecho en clases

@nolovuelvoahacer
y como lo ejecuto? o algo asi? (perdona la ignorancia )
@M05K1T0
que hace precisamente?
@nolovuelvoahacer
matiastamaltodo dijo:te dejo el ejecutable man...bajalo y ejecuta nomas!
http://www.megaupload.com/?d=GMKY5WSK


Estoy en Linux....... Imposible ejecutar un .exe amigo
@rafaelputaro -2
Es tan al pedo Pascal.
Se debería arrancar directamente con C o C++
@melist +2
Yo aprendí en Python.
@Tonami
jaja yo tambien tube qe hacerlo donde estudias??
@juanykarina2007 +1
sabes pascal y programas basic cobol , entiendes los nuevos son basados en ellos
Programa en pascal hecho en clasesfuente
@AsefadojFesa
jajaja gracias! porque no lo hice en clases! y porq no lo entendia... te dejo +10 compa!
@RicardSega
Yo en la escuela hacia y hago programas recursivos, con pilas, colas, arboles, etc. Ya pascal no usamos, pasamos al c++ builder
@__EFL__ +2
ar
i,c,j:integer; k:char; pal:string;
begin
c:=0;
for j:=1 to n do
begin
pal:='';
pal:=x[j].titulo;
for k:='A' to 'Z' do
begin
for i:=1 to length (pal) do
begin
if upcase(pal)=k then
c:=c+1;
end;
writeln(' La cantidad de ',k,' es: ',c);
c:=0;
end;
end;
end;
procedure consonantes( x:vector; n:integer);
var
i:integer; conj:set of char; pal:string;
begin
conj:=[];
conj:= ['A'..'Z']-['A','E','I','O','U'];
writeln(' El conjunto de consonantes es: ');
for i:=1 to n do

codigo