28.02.2023 Views

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!