Pascal/Turbo Pascal - ejercicio incompleto, ayuda!!!

 
Vista:

ejercicio incompleto, ayuda!!!

Publicado por maca (15 intervenciones) el 22/12/2009 17:48:09
Hola estoy haciendo el siguiente ejercicio y no se muy bien si voy bien o no, aparte de que estoy atascada. El ejercicio es el siguiente:

Realiza un programa que pida al usuario que introduzca por teclado una cadena de texto (un string) sin acentos, y calcule y muestre por pantalla la frecuencia de aparición de cada letra, desde la ‘a’ hasta la ‘z’. Solamente deberá aparecer por pantalla la frecuencia de aquellas letras que estén contenidas en la cadena, es decir, aquellas cuya frecuencia sea mayor que cero. Para este ejercicio no es necesario crear ninguna función ni procedimiento.

Este es lo que llevo del programa, alguien me podria echar una mano? Gracias!!

program texto;
uses crt;
var
frase: string;
i: integer;
letra: char;
frecuencia: array [ 'a' .. 'z' ] of integer;

begin
clrscr;
begin
writeln( ' introduce un texto: ' );
read(frase);

for i:= 1 to length(frase) do
letra:= frase[i+1];

writeln(lowercase(frase));
end;
writeln( ' la frecuencia de aparicion de cada letra es: ');
writeln(' pulsa una tecla para salir');
end.
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:ejercicio incompleto, ayuda!!!

Publicado por edwin (71 intervenciones) el 22/12/2009 18:47:38
veamos si es lo que buscas

program Fercuencia;
uses crt;

var
letra:char;
Frase:string;
Frecuencia : array ['a'..'z'] of longint;
contador:integer;
columna:integer;

Begin

clrscr;
gotoxy(1,20);write('pulse . para salir...');

Repeat
Columna:=1;

for contador:=1 to 26 do
begin
gotoxy(1+columna,1);write(chr(96+contador));
gotoxy(1+columna,2);write(Frecuencia[chr(96+contador)]);
inc(columna,3);
end;

gotoxy(1,10);write('Proporcione una Frase :');
Letra:=Readkey;

If letra in ['a'..'z'] then
Begin
Frecuencia[letra]:= Frecuencia[letra] + 1;
End;
Frase:=Frase+letra;
gotoxy(1,11);write(frase);
Until Letra = '.';

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:ejercicio incompleto, ayuda!!!

Publicado por maca (15 intervenciones) el 23/12/2009 00:23:28
gracias edwin, a sido de ayuda aunke tenia algunas dudas, gracias!
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:ejercicio incompleto, ayuda!!!

Publicado por Antonio (74 intervenciones) el 22/12/2009 23:17:30
Hola Maca:
Te inserto el codigo fuente del programa que te resuelve el problema.
Como puedes ver, creando el tipo Letras es mejor que sea en mayusculas; pues de lo contrario no leeria las mayusculas de la frase. Por lo demás creo que se entiende bien:

program frecuencia_de_aparicion_caracteres;
uses crt;
type
letras = 'A'..'Z';
cuentaletras = array[letras] of integer;
var
Frecuencia : cuentaletras;
caracter : char;

begin
clrscr;
for caracter := 'A' to 'Z' do
frecuencia[caracter] := 0;

write('Introducir frase: ');

while not eoln do {lectura hasta el final de una linea}
begin
read(caracter);
caracter := upcase(caracter);{convierte de minuscula a mayuscula}
if ((caracter >= 'A') and (caracter <= 'Z')) then
frecuencia[caracter] := frecuencia[caracter]+1
end;

for caracter := 'A' to 'Z' do
if frecuencia[caracter]>0 then
writeln('Frecuencia de ',caracter,': ',frecuencia[caracter]:3)
end.

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