Junior_PP 0 Denunciar post Postado Junho 4, 2011 Oi Pessoal! Estava aqui tentando fazer uma tabela que pega as frequencias dos caracteres do alfabeto de um arquivo .txt! Pensei em usar o um while(!EOF(arq)) e dentro do while eu usaria o getch para pegar caractere por caractere! Mas surgiram duas duvidas: 1- O que fazer quando chegar no final da primeira linha do .txt se eu quero percorrer toto o texto 2- Eu vou ter que fazer varios if else aninhados para comparar os caracteres e pegar as frequencias? Agradeço pelo espaço e por que tiver interesse no codigo! Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 5, 2011 ql linguagem? []s Compartilhar este post Link para o post Compartilhar em outros sites
Junior_PP 0 Denunciar post Postado Junho 6, 2011 estou usando linguagem c! Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Junho 6, 2011 Oi Pessoal! Estava aqui tentando fazer uma tabela que pega as frequencias dos caracteres do alfabeto de um arquivo .txt! Pensei em usar o um while(!EOF(arq)) e dentro do while eu usaria o getch para pegar caractere por caractere! Mas surgiram duas duvidas:1- O que fazer quando chegar no final da primeira linha do .txt se eu quero percorrer toto o texto 2- Eu vou ter que fazer varios if else aninhados para comparar os caracteres e pegar as frequencias? Agradeço pelo espaço e por que tiver interesse no codigo! 1 - Se você usar o while(!EOF(arg)), só vai terminar quando chegar ao fim, você vai pegar um caracter '\n' e o while vai continuar. 2 - Prefira um switch. Mas tem uma coisa melhor, se usar a tabela ASCII, você pode comparar o caracter que você pegou com o valor ASCII inteiro para letras maiúsculas e minúsculas. Procure mais no google que você descobre como. Vai ser beeem mais fácil fazer, visto que nem de switch vai precisar, só de um if. Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Junho 7, 2011 Se não me engano, o K&R tem exatamente este exercício (e a solução). Sugiro que compre o livro. Note que as soluções mais inteligentes (como a proposta acima pelo Renato) não são portáveis. Lembre-se de "confiar" em referências diretas à estrutura da tabela ascii somente pra código que não precise ser rodad em qualquer implementação. Se a entrada tiver que vir de um arquivo, você tem 2 opções: ler de stdin, e redirecionar a entrada usando "<" na linha de comando ou inspecionar argc e argv pra abrir o arquivo e percorrê-lo. De qualquer forma, ler letra por letra seria lento demais. Apesar de fazer sentido algoritmicamente (inspecionar o caracter assim que lê-lo), principalmente se houver limitação espacial, é melhor ler a maior quantidade possível por vez. Para arquivos pequenos, faz sentido carregar todo o conteúdo e percorrer o vetor incrementando os contadores depois. Para arquivos maiores, o processo é o mesmo, mas repetido várias vezes (lendo-se determinada quantidade máxima de bytes por iteração). Compartilhar este post Link para o post Compartilhar em outros sites
Junior_PP 0 Denunciar post Postado Junho 7, 2011 Valeu! Voces me ajudaram e ampliaram meu conhecimento! Pode deixar que vou dar uma olhada nesse livro! Depois escrevo o que consgui aqui! Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Junho 7, 2011 Valeu! Voces me ajudaram e ampliaram meu conhecimento! Pode deixar que vou dar uma olhada nesse livro!Depois escrevo o que consgui aqui! Valeu Estamos sempre a dispor! :joia: Boa sorte com o aprendizado aê ;D Caso resolvido? Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites