¿Cómo detecto en un archivo de texto los caracteres que más se repiten con lenguaje Pascal?

Hola lili, quisiera que me ayudaras a resolver este problema:
Se tiene un archivo de textos. Escriba un programa en pascal que permita determinar los tres caracteres que más se repiten en el archivo.El programa tendrá como datos unicamente el nombre del archivo, el programa deberá mostrar cada uno de los caracteres y su frecuencia, las mayúsculas y minúsculas se consideran iguales.
No se podrá usar array ni archivos intermedios.
Gracias y un saludo

1 respuesta

Respuesta
1
Antes que nada por favor disculpa la demora (he andado un poco atareada...)
Verás, te propongo 2 soluciones, que van a depender de los recursos que puedas usar.
1. La primera es el método más tedioso por así decirlo, pero más sencillo, y es crear una variable de contador por cada letra del alfabeto... para que almacenes la cantidad de cada carácter que se encuentre en el archivo y luego puedas calcular los tres mayores.
Aquí te doy el ejemplo de como contar las vocales del archivo, tendrías que adaptarlo porque las letras del alfabeto son más (y considerar mayúsculas y minúsculas):
program cuenta_vocales;
uses crt;
var arch:text;
caracter:char;
a,e,i,o,u:integer;
begin
clrscr;
assign(arch,'texto.txt');
reset(arch);
writeln('Archivo leido:');
writeln('');
while not eof(arch) do
begin
read(arch,caracter);
write(caracter);
case caracter of
'a':a:=a+1;
'e':e:=e+1;
'i':i:=i+1;
'o':o:=o+1;
'u':u:=u+1;
end;
end;
writeln('');
writeln('');
writeln('Cantidad de a: ',a);
writeln('Cantidad de e: ',e);
writeln('Cantidad de i: ',i);
writeln('Cantidad de o: ',o);
writeln('Cantidad de u: ',u);
close(arch);
readkey;
end.
Una vez contabilizado el archivo puedes obtener las tres variables mayores.
2. La segunda idea, más complicada, es que recorras el archivo varias veces, en la primera tomas la primera letra, la buscas en el resto del archivo y la cuentas (a medida que haces esto, vas guardando lo que serian las tres mayores), esa letra tendrías que irla borrando del archivo con un ' ' (esa es la limitación principal de esta solución, el archivo va a quedar modificado). Una vez contabilizada una letra la imprimes. Luego recorres la segunda letra y así sucesivamente, al final tendrás impreso en pantalla la contabilidad general del archivo y podrás haber encontrado las tres letras con mayor incidencia.
Espero te sirva de algo, para darte una idea de tu problema y puedas darle una solución.
Nota: Por favor valora mi esfuerzo calificando mi respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas