Ayuda con programa
Publicado por Fran (3 intervenciones) el 19/04/2008 21:42:51
A ver si con vuestra inestimable ayuda me ayudais a terminar una práctica que tengo que hacer en la universidad
Tengo que escribir un programa que me genere de forma aleatoria un array de letras mayúsculas y que cuente el número de veces que aparece cada letra mayúscula en el array.El programa deberá imprimir el array generado y un gráfico de frecuencias de las letras que hayan aparecido alguna vez
Esto es lo que he hecho y no se en que falla pero la verdad que me ejecuta y me salen unas cosas rarísimas
PROGRAM lETRASREPETIDAS;
const max=100;
TYPE
tindice='A'..'Z';
tletras=array [1..max] of char;
tfrecuencias=array[tindice] of integer;
procedure generarletras(numero:integer);
var l:tletras;i,n:integer;
begin
writeln('Introduzca el numero de elementos que quieres aleatorizar');
readln(numero);
if numero>max
then writeln('no se procesan mas de ',max:3,'calificaciones')
else
begin
for i:=1 to numero do
begin
n:=random(25)+1;
l[i]:=chr(ord('A')+n-1);
end;
end;
end;
procedure InicializarFrecuencias (var f:tfrecuencias);
var letra:tindice;
begin
for letra:='A' to 'Z' do f[letra]:=0
end;
procedure ContarApariciones (var f:tfrecuencias);
var car:char;
begin
while not eoln do
begin
read(car);
if car in ['A'..'Z'] then f[car]:=f[car]+1;
end;
readln;
end;
procedure generardiagramadefrecuencias(f:tfrecuencias);
var letra:tindice;
procedure dibujarasteriscos (num:integer);
var i:integer;
begin
for i:=1 to num do write('*');
writeln
end;
begin
for letra:='A' to 'Z' do
begin
write(letra, ':');
dibujarasteriscos(f[letra]);
end;
end;
var numero:integer;frecuencia:tfrecuencias;
begin
generarletras(numero);
contarapariciones(frecuencia);
generardiagramadefrecuencias(frecuencia);
readln;
end.
Muchas gracias por vuestra colaboración. Un saludo
Tengo que escribir un programa que me genere de forma aleatoria un array de letras mayúsculas y que cuente el número de veces que aparece cada letra mayúscula en el array.El programa deberá imprimir el array generado y un gráfico de frecuencias de las letras que hayan aparecido alguna vez
Esto es lo que he hecho y no se en que falla pero la verdad que me ejecuta y me salen unas cosas rarísimas
PROGRAM lETRASREPETIDAS;
const max=100;
TYPE
tindice='A'..'Z';
tletras=array [1..max] of char;
tfrecuencias=array[tindice] of integer;
procedure generarletras(numero:integer);
var l:tletras;i,n:integer;
begin
writeln('Introduzca el numero de elementos que quieres aleatorizar');
readln(numero);
if numero>max
then writeln('no se procesan mas de ',max:3,'calificaciones')
else
begin
for i:=1 to numero do
begin
n:=random(25)+1;
l[i]:=chr(ord('A')+n-1);
end;
end;
end;
procedure InicializarFrecuencias (var f:tfrecuencias);
var letra:tindice;
begin
for letra:='A' to 'Z' do f[letra]:=0
end;
procedure ContarApariciones (var f:tfrecuencias);
var car:char;
begin
while not eoln do
begin
read(car);
if car in ['A'..'Z'] then f[car]:=f[car]+1;
end;
readln;
end;
procedure generardiagramadefrecuencias(f:tfrecuencias);
var letra:tindice;
procedure dibujarasteriscos (num:integer);
var i:integer;
begin
for i:=1 to num do write('*');
writeln
end;
begin
for letra:='A' to 'Z' do
begin
write(letra, ':');
dibujarasteriscos(f[letra]);
end;
end;
var numero:integer;frecuencia:tfrecuencias;
begin
generarletras(numero);
contarapariciones(frecuencia);
generardiagramadefrecuencias(frecuencia);
readln;
end.
Muchas gracias por vuestra colaboración. Un saludo
Valora esta pregunta


0