Logica_de_Programacao_3_Edicao_Livro
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
108 Lógíca de programação
19. fimse;
20. feche {agenda);
21. fim.
Observamos que:
• não é possível apenas avançar pelos registros, uma vez que precisan1os ve1ificar se o
conteúdo d e cada um deles é o esperado, por isso se copia para u1n registro auxiliar
cada urn dos registros armazenados;
• 1nesmo precisando apenas do non1e armazenado no arquivo para verificar o sucesso
da pesquisa, através do con1ando copie preenchemos todo o registro auxiliar.
Se algum conhecido já cadastrado na agenda 1nudasse de telefone, terían1os de localizar
seu registro con·espondente no arquivo, copiar seu conteúdo em u1n registro auxiliar e, e1n
seguida, alterar o campo fone de rnodo a atribuiI"'-lhe o novo número. Tendo em um registro
auxiliar as informações atualizadas, basta gravá-lo na 1nes1na posição em que se enconu·ava
antes, isto é, gravar o registro atualizado (auxiliar) 'por cima' do antigo (elo arquivo).
ALGORITMO S.3
Alteração de dados
~
1. inicio
2. tipo pessoa - registro
3. caracter: nome;
4. inteiro: fone;
5. fimregistro;
6. tipo pessoal = arquivo composto de pessoa;
7.
8.
pessoa: aux;
pessoal: agenda;
9. caracter: nomeProcurado;
10. inteiro: novoFone;
11. abra (agenda);
12. leia (nomeProcurado);
13. copie (agenda, aux);
14. enquanto (aux.nome<>nomeProcurado) e {não fda (agenda)) faça
15. avance (agenda);
16. copie (agenda, aux);
17. fimenquanto;
18. se (aux.nome = nomeProcurado)
19. então inicio
20. escreva (aux.nome, ''possui fone'', aux.fone);
21. escreva (''Novo Telefone'');
22. leia (novoFone);
23. aux.fone novoFone;
24. guarde (agenda, aux);
25. fim;
26. senão escreva ("Telefone não registrado!");
27. fimse;
28. feche (agenda);
29. fim.