Enunciado

Combinação de arquivos. O Exercício 11.3 pediu ao leitor que escrevesse uma série de instruções isoladas. Na realidade, essas instruções formam o núcleo de um importante tipo de programa de processamento de arquivo, a saber, um programa de união de arquivo. No processamento de dados comercial, é comum haver vários arquivos em cada sistema. Em um sistema de contas a receber, por exemplo, geralmente existe um arquivo mestre que contém informações detalhadas sobre cada cliente, como seu nome, endereço, número de telefone, saldo pendente, limite de crédito, termos de desconto, acordos contratuais e possivelmente um histórico resumido de compras recentes e pagamentos à vista. À medida que as transações ocorrem (isto é, vendas são feitas e pagamentos são recebidos), elas são incluídas em um arquivo. Ao final de cada período de negócios (para algumas empresas, esse período é de um mês, para outras, uma semana, e ainda, em alguns casos, um dia), o arquivo de transações (chamado “trans.dat” no Exercício 11.3) é aplicado ao arquivo mestre (chamado “oldmast.dat”

no Exercício 11.3), atualizando, assim, o registro de compras e pagamentos de cada conta. Após cada uma dessas rodadas de atualização, o arquivo mestre é regravado como um novo arquivo (“newmast.dat”), que é então usado no final do período seguinte, de negócios para dar início novamente ao processo de atualização. Os programas de combinação de arquivo precisam lidar com certos problemas que não existem nos programas de arquivo único. Por exemplo, uma combinação nem sempre ocorre. Um cliente no arquivo mestre pode não ter feito compras ou pagamentos no período atual de negócios e, portanto, nenhum registro desse cliente aparecerá no arquivo de transação. De modo semelhante, um cliente que não fez compras ou pagamentos poderia ter mudado de endereço, e a empresa pode não ter tido a chance de criar um registro mestre para esse cliente. Use as instruções escritas no Exercício 11.3 como base para um programa completo de contas a receber por combinação de arquivo. Use o número de conta em cada arquivo como chave de registro para fins de combinação. Suponha que cada arquivo seja um arquivo sequencial, com registros armazenados em ordem crescente de número de conta. Quando houver uma combinação (registros com o mesmo número de conta que aparecem no arquivo mestre e no arquivo de transação), some o valor no arquivo de transação ao saldo atual no arquivo mestre e grave o registro de “newmast.dat”. (Suponha que as compras sejam indicadas no arquivo de transação por valores positivos, e os pagamentos sejam indicados por valores negativos.) Quando houver um registro mestre para determinada conta, mas nenhum registro de transação correspondente, simplesmente grave o registro mestre em “newmast.dat”. Quando houver um registro de transação, mas nenhum registro mestre correspondente, imprima a mensagem “Registro de transação sem correspondência para a conta número...” (preencha o número de conta a partir do registro da transação).

Passo 1

Saalve, tranquilo?

Vamos lá programar?!

Passo 2

Vamos escrever um passo a passo pra o que fazer o código:

1. Definimos três arquivos, oldmast.dat, trans.dat e newmast.dat.

2. Oldmast.dat é o arquivo principal contendo as gravações de cada consumidor com conta, nome

3. Trans.dat é o arquivo de transação contendo a conta de transação e balanceia onde a conta de transação é achada com a conta principal.

4. Se encontrada a conta principal, mudanças são feitas no balanço do consumidor e atualizada a gravação no arquivo principal, newmast.dat.

5. Se não é encontrada a conta principal, nenhuma modificação é feita.

Arquivos originais:

Passo 3

O código escrito é o seguinte:

Exercícios de Livros Relacionados

Uma pessoa cujo peso é 5,20 10 2 N está sendo puxada para cima vertica
Uma pequena esfera é pendurada por uma corda no teto de uma van. Quand
Mostre que o comprimento de atenuação Λ é igual à distância média que
Deve-se usar a expressão relativística para a energia cinética do elét
Use os dados da figura 2-17 para calcular a espessura de uma lâmina de