28.02.2023 Views

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.

11 O J Lógica de programação

Va1nos agora apresentar uma aplicação prática n1ais complexa para os arquivos seqüe11-

ciais. Imagine dois arquivos de 1101nes e telefones que são iniciahne11te idênticos, e são entregues

a pessoas diferentes, as quais freqüentemente os vão atualizando, poré1n cada u1na

faz atualizações em regisu·os diferentes. Resultado: pouco ternpo depois os arquivos estão

diferentes, mas deseja-se unificar as alterações, gerando u1n novo arquivo que contemple as

alterações 111ais recentes.

CURIOSIDADE -------------------~

Essa categoria de algoritmo, que visa sincronizar alterações feitas em arquivos seqüenciais de forma

independente, também é conhecida por Balance Line. O Balance Line era muito utilizado na época em que

as atualizações de arquivos era off-line, ou seja, na ausência de linhas de comunicação que permitissem

atualizar diretamente o arquivo principal. Utilizavam-se arquivos secundários, oriundos de diversas localidades,

contendo alterações que seriam submetidas através de um algoritmo de Balance Line ao arquivo

principal.

A estsutura do registro é a que se segue:

Nome:

Telefone:

Tipo de operação:

Data da alteração:

[A-Alteração, E-Exclusão, !-Inserção]

Observan1os que existe u1n campo Tipo de Operação, que vale A para u1n.a Alteração, E

para uma Exclusão e I para uma Inserção. Considere1nos tan1bém que os registros excluídos

não são eliminados (são apenas marcados como excluídos).

\!<=:jamos u,na soluç.ão possível para o proble1na:

ALGORITMO 5.5

Balance Line

1. ;nicio

2. t;po Ficha= registro

3.

4.

5.

6.

7.

8.

9.

10.

11.

13.

14.

15.

caracter: Nome, Telefone, DataAlter, TipoOper;

fimregistro;

tipo ArqAgenda = arquivo composto de Ficha;

Ficha: Fichal, Ficha2, FichaNova;

ArqAgenda: Agendal, Agenda2, AgendaNova;

abra (Agendal);

abra (Agenda2);

abra (AgendaNova);

repita

copie (Agendal, Fichal);

copie (Agenda2, Ficha2);

se (Fichal.TipoOper=''I'')

(Continu<i)

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

Saved successfully!

Ooh no, something went wrong!