Share your repls and programming experiences

← Back to all posts
Desafio Individual 2 - AED 3
PedroHenriqu418 (0)

Descrição sobre o que deve ser implementado:
AS OPERAÇÕES DO CRUD
Para inserir os índices no seu CRUD, você precisará considerar as seguintes modificações ao seu código atual:

CREATE - O método create é o que será menos modificado. Quando você movimentar o ponteiro para o fim do arquivo, ainda antes de escrever o novo registro, deve guardar que endereço é esse, isto é, qual será o endereço do novo registro. Em seguida, você incluirá o par (ID, endereço) no índice.

READ - O método read receberá um ID como parâmetro. Ao invés de percorrer o arquivo sequencialmente, você deverá usar esse ID no índice direto para recuperar o endereço do registro. Em seguida, basta mover o ponteiro do arquivo de dados para o endereço retornado e ler o registro que estiver lá.

UPDATE - Novamente, o update terá duas possibilidades: (1) o registro manter ou diminuir seu tamanho e (2) o registro aumentar de tamanho. Se o registro mantiver ou diminuir o seu tamanho, ele não precisará trocar de lugar. Então, só será necessária uma atualização no próprio local. Lembre-se que, nesses casos, o indicador de tamanho do registro não pode ser alterado. Porém, se o registro aumentar de tamanho, você precisará marcar o registro atual para exclusão e inserir o novo registro no fim do arquivo. Nesse caso, precisará atualizar o endereço desse registro no índice.

DELETE - O método delete também precisa de um ajuste muito simples. Após marcar o registro para exclusão no arquivo de dados, basta você remover a sua chave secundária do índice.

De acordo com o entendimento da máteria, realizei a criação de uma classe chamada Index, que tem como objetivo guardar os dados de ID e do endereço de memória do dado referente aquele ID (Pessoa). Realizei tentativas de implementar o procedimento descrito acima mas não tive sucesso. Revi as aulas diversas vezes e não consegui aplicar os conceitos teóricos na prática de forma efetiva. Sendo assim, mantive o código funcional sem as tentativas realizadas nos métodos CRUD, matendo a criação da nova classe Index.