Logica_de_Programacao_3_Edicao_Livro
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capítulo 5 Arquivos 1 107
7. pessoa : aux;
8. pessoal: agenda;
9. abra (agenda);
10. repita
11. avance (agenda);
12. até fda (agenda} ;
13. leia (aux.nome, aux.fone};
14. guarde (agenda, aux);
15. feche (agenda) ;
16. fim.
Observa1nos que:
• sempre que o con1ando abra é executado, deparamos con1 o prilneiro conju11to
de inforrnações armazenadas, ou seja, a posição corrente do arquivo é o primeiro
registro;
• sarnente J)Odemos guardar o registro quando ele estiver cornpleta1nente preenchido,
o que nesse caso foi garantido com urn cornando de leitura sobre ambos os carnpos;
• o comando guarde armazenará todas as inforn1ações contidas no registro (registro
co1npleto) na posição corrente do arquivo, a qual foi intencionaln1ente selecio11acla
como a última posição do 1nesmo.
Supondo, agora, que nosso usuá1io precise descob1ir o telefone de alguén1 previamente
arrnazenado, novamente, por desconhecer a posição no arquivo da infor1nação procurada,
teremos de vasculhar o arquivo a partir do início, ern busca do registro que contérn o norne
da pessoa procurada, para descobrir seu respectivo telefone. Todavia, se todos os registros do
arquivo tiverem sido ve1ificados e, cl1egando ao fitn do arquivo, 11ão foi possível e11contrar o
nome procurado, concluímos que ele não existe, ou seja, não foi registrado anterio1mente.
ALGORITMO 5.2
1. inicio
2. tipo
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Pesquisa no arquivo
pessoa - registro
caracter: nome;
inteiro: fo ne;
fimregistro;
tipo pessoal = arquivo composto de
pessoa: aux;
pessoal: agenda;
caracter: nomeProcurado;
abra (agenda};
leia (nomeProcurado};
repita
copie (agenda, aux};
avance (agenda);
até (aux.nome = nomeProcurado)
se (aux.nome = nomeProcurado}
então escreva (aux.fone};
senão escreva (''Telefone não
pessoa;
ou (fda (agenda});
registrado!");
(Continutt)