[SP-pm] Duvida com Hashes

"Flávio R. Lopes" flavio.lopes at links.inf.br
Mon Apr 19 09:25:39 PDT 2010


Opa!...e aí Neilson?

Humm...deixa ver se entendi.
Então a Hash é:

_*CONSTRUÍDA*_ nas linhas de 3 a 4

E as REPETIÇÕES DAS PALAVRAS _*CONTADAS*_ nas linhas de 6 a 8 ???


Neilson Lima escreveu:
>
>
> 2010/4/18 "Flávio R. Lopes" <flavio.lopes em links.inf.br 
> <mailto:flavio.lopes em links.inf.br>>
>
>     Pessoal, no livro que estou lendo, mais especificamente no
>     capítulo que trata de Hashes, tem um exercício proposto em que o
>     autor pede para elaborar um programa em que o usuário digita
>     palavras (nomes, por exemplo) e o sistema tem que contar quantas
>     vezes foram digitados as mesmas palavras.
>
>     Abaixo segue a solução apresentada pelo autor:
>
>     1    my(@words, %count, $word);    
>     2    chomp(@words = <STDIN>);
>     3    foreach $word (@words) {
>     4    $count{$word} += 1;         
>     5    }
>     6    foreach $word (keys %count) {
>     7      print "$word was seen $count{$word} times.\n";
>     8    }
>
>
>     Nas linhas de 3 a 5 é "armazenado" o número de vezes que uma
>     palavra aparece, ou seja, é feita uma contagem, certo?
>
>
> Isso mesmo! a hash count tem a chave como sendo a(s) palavra(s) que 
> armazena o numero de vezes que ela apareceu.
>  
>
>
>     Agora é aqui que não entendi direito (nas linhas de 6 a
>     8)....especificamente no trecho *(keys %count)* O que fiquei em
>     dúvida se é aqui que é "montado" o Hash, ou seja, os valores são
>     "captados" nas linhas de 3 a 5 e depois "transportados" ou
>     "armazenados" no Hash *%count* da linha 6 ??, pois os valores
>     digitados pelo usuário são armazenados no Array @words, contados
>     nas linhas de 3 a 6 e "armazenados" no hash *%count* ???
>
>
> A hash é construída na linha 4, quando e feita a atribuição. na linha 
> 6 a 8 $word é a chave(palavra) e $count{$word} o numero de vezes que 
> apalavra aparece. Isso quer dizer que depois da linha 2, é feita uma 
> varredura, em @words, criando a hash, depois disse é feita outra 
> varredura, %count, para imprir os resultado.
>
>  
>
>
>     Não sei se fui claro, mas como é o raciocínio disto?...Vcs poderia
>     me ajudar a ler e entender este código?
>
>     abraço,
>     Flávio
>
>     _______________________________________________
>     SaoPaulo-pm mailing list
>     SaoPaulo-pm em pm.org <mailto:SaoPaulo-pm em pm.org>
>     http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
>
>
> -- 
> Atenciosamente,
> Neilson P. Lima
> ------------------------------------------------------------------------
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm



More information about the SaoPaulo-pm mailing list