O documento descreve conceitos sobre arquivos e como manipulá-los em algoritmos. Explica que arquivos são conjuntos de registros onde cada registro não ocupa uma posição fixa e define comandos como abrir, fechar, copiar, armazenar e eliminar registros de um arquivo.
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Algoritmos - Arquivos Parte 2
1. ARQUIVOS
Prof.ª Ms. Eng.ª Elaine Cecília Gatto
Algoritmos e Estruturas de Dados
Engenharia de Computação
Universidade Sagrado Coração
2. ARQUIVOS
• DEFINIÇÃO: É um conjunto de registros – é uma estrutura de dados
– no qual cada registro não ocupa uma posição fixa dentro da
estrutura, não possuindo, portanto, tamanho preestabelecido.
• DECLARAÇÃO: exemplo
tipo livro = registro
inteiro: código, ano, edição;
caracter: título, autor, assunto, editora;
fimregistro;
tipo arqLivro = arquivo composto de livro;
livro: ficha;
arqLivro: biblos;
3. ARQUIVOS
• DEFINIÇÃO: É um conjunto de registros – é uma estrutura de dados
– no qual cada registro não ocupa uma posição fixa dentro da
estrutura, não possuindo, portanto, tamanho preestabelecido.
• DECLARAÇÃO
tipo livro = registro
inteiro: código, ano, edição;
caracter: título, autor, assunto, editora;
fimregistro;
tipo arqLIvro = arquivo composto de livro; o identificador da estrutura do
LIVRO é
tipo registro que formará o arquivo;
livro: ficha;
arqLivro: biblos;
4. ARQUIVOS
• DEFINIÇÃO: É um conjunto de registros – é uma estrutura de dados
– no qual cada registro não ocupa uma posição fixa dentro da
estrutura, não possuindo, portanto, tamanho preestabelecido.
• DECLARAÇÃO
tipo livro = registro
inteiro: código, ano, edição;
caracter: título, autor, assunto, editora;
fimregistro;
tipo arqLIvro = arquivo composto de ARQLIVRO: é o identificador do tipo
livro;
associado ao arquivo, formado pelos
livro: ficha;
tipos de registros livro
arqLivro: biblos;
5. ARQUIVOS
• DEFINIÇÃO: É um conjunto de registros – é uma estrutura de dados
– no qual cada registro não ocupa uma posição fixa dentro da
estrutura, não possuindo, portanto, tamanho preestabelecido.
• DECLARAÇÃO
tipo livro = registro
inteiro: código, ano, edição;
caracter: título, autor, assunto, editora;
fimregistro;
tipo arqLIvro = arquivo composto de livro;
FICHA é a variável de registro
livro: ficha;
arqLivro: biblos;
6. ARQUIVOS
• DEFINIÇÃO: É um conjunto de registros – é uma estrutura de dados
– no qual cada registro não ocupa uma posição fixa dentro da
estrutura, não possuindo, portanto, tamanho preestabelecido.
• DECLARAÇÃO
tipo livro = registro
inteiro: código, ano, edição;
caracter: título, autor, assunto, editora;
fimregistro;
tipo arqLIvro = arquivo composto de livro;
BIBLOS é a variável de arquivo
livro: ficha;
arqLivro: biblos;
7. ARQUIVOS
• DEFINIÇÃO: É um conjunto de registros – é uma estrutura de dados
– no qual cada registro não ocupa uma posição fixa dentro da
estrutura, não possuindo, portanto, tamanho preestabelecido.
• DECLARAÇÃO
tipo livro = registro
inteiro: código, ano, edição;
caracter: título, autor, assunto, editora;
fimregistro;
BIBLOS e
tipo arqLIvro = arquivo composto de livro; FICHA são as variáveis utilizadas
para manipulação do arquivo – são as
livro: ficha;
que armazenam as informações
arqLivro: biblos;
8. ARQUIVOS
tipo Socio = registro
caracter = Nome, DN, Naturalidade, Nacionalidade, End,
Bairro, Cidade, Estado, DataAdesao;
inteiro: RG, CPF, Fone, NroDependentes;
logico: Sexo;
fimregistro;
tipo arqSocio = arquivo composto de Socio;
Socio: RegSocio;
arqSocio: Clube;
9. ARQUIVOS
• O que podemos fazer com arquivos?
•
•
•
•
•
Consultar
Alterar
Excluir
Modificar
Acrescentar
10. ARQUIVOS
•
•
•
•
•
Consultar arquivo:
Abrir arquivo
Achar a informação
Copiar as informações
Fechar o arquivo
•
•
•
•
•
Modificar arquivo
Abrir arquivo
Achar a informação
Alterar a informação
Fechar o arquivo
•
•
•
•
•
Acrescentar informações
Abrir o arquivo
Achar a posição
Guardar a nova ficha
Fechar o arquivo
•
•
•
•
•
Eliminar informações
Abrir o arquivo
Achar a informação
Retirar a informação
Fechar o arquivo
11. ARQUIVOS
•
•
•
•
•
Para abrir um arquivo usar: abra(BIBLOS);
Para fechar um arquivo usar: feche(BIBLOS);
Para copiar um registro usar: copie(BIBLOS, AUX);
Para armazenar um registro usar: guarde(BIBLOS, AUX);
Para eliminar um registro usar: elimine(BIBLOS);
• AUX: identificador da variável registro de formato igual àquele
que compõe o arquivo.
• FDA: final do arquivo
12. ARQUIVOS
•
•
•
•
•
•
•
Para abrir um arquivo usar: abra(BIBLOS);
Para fechar um arquivo usar: feche(BIBLOS);
Copiam-se
as
Para copiar um registro usar: copie(BIBLOS, AUX);
informações
da
Para armazenar um registro usar: guarde(BIBLOS, AUX);
posição do arquivo
Para eliminar um registro usar: elimine(BIBLOS);
para o registro
especificado
no
Para
comando – o qual
AUX: identificador da variável registro de formato igual àquele
possui um formato
que compõe o arquivo.
idêntico ao do
registro
que
compõe arquivo.
• FDA: finalodo arquivo
13. ARQUIVOS
•
•
•
•
•
•
•
Para abrir um arquivo usar: abra(BIBLOS);
Para fechar um arquivo usar: feche(BIBLOS);
Para copiar um registro usar: copie(BIBLOS, AUX);
Guarda-se sempre
Para armazenar um registro usar: guarde(BIBLOS, AUX);
alguma informação
Para eliminar um registro usar: elimine(BIBLOS);
de dado registro –
Para
definido
no
AUX: identificadorada variável registro de formato igual àquele
comando – para
posição atual do
que compõe o arquivo.
arquivo.
• FDA: final do arquivo
14. ARQUIVOS
•
•
•
•
•
Para abrir um arquivo usar: abra(BIBLOS);
Para fechar um arquivo usar: feche(BIBLOS);
Para copiar um registro usar: copie(BIBLOS, AUX);
Elimina-se sempre
Para armazenar um registro usar: guarde(BIBLOS, AUX);
o
registro
Para eliminar umda
registro usar: elimine(BIBLOS);
posição corrente
do
arquivo
• AUX: identificador–da variável registro de formato igual àquele
especificado
definido
no
que compõe o arquivo.
comando
• FDA: final do arquivo
15. Concepção sequencial
• É um padrão de comportamento que estabelece o modo pelo
qual os registros serão armazenados no arquivo;
• O algoritmo estabelece a estruturação do arquivo;
• Quando a gravação dos registros – que não estão em ordem –
é feita de forma contínua – um após o outro – então temos
uma gravação sequencial;
• A localização de qualquer um dos registros armazenados é
indeterminada;
• Para acessar um registro em especifico devemos obedecer a
ordem de gravação percorrendo todos os registros anteriores;
• Para armazenar um novo registro, devemos primeiro
identificar onde está o último registro gravado;
• Deve-se, portanto, encontrar o fim do arquivo.
16. Concepção sequencial
• Exemplo: considere uma lista de telefones, particular, na qual
o usuário armazenou nomes e telefones de seus amigos (as) à
medida que os conhecia. Como acrescentar mais um amigo na
lista?
//INCLUINDO UM TELEFONE NO FINAL DO ARQUIVO
algoritmo exemplo1;
inicio
tipo pessoa = registro
caracter = nome;
inteiro = fone;
fimregistro;
17. Concepção sequencial
• Exemplo: considere uma lista de telefones, particular, na qual
o usuário armazenou nomes e telefones de seus amigos (as) à
medida que os conhecia. Como acrescentar mais um amigo na
Declaração do registro
lista?
PESSOA que contém os
campos
//INCLUINDO UM TELEFONE NO FINAL DO ARQUIVO nome e fone.
algoritmo exemplo1;
inicio
tipo pessoa = registro
caracter = nome;
inteiro = fone;
fimregistro;
18. Concepção sequencial
tipo pessoal = arquivo composto de pessoa;
pessoa: aux;
pessoal: agenda;
abra(agenda);
repita
avance(agenda);
até fda(agenda);
leia(aux.nome, aux.fone);
guarde(agenda, aux);
feche(agenda);
fim.
19. Concepção sequencial
tipo pessoal = arquivo composto de pessoa;
pessoa: aux;
pessoal: agenda;
abra(agenda);
Criação do arquivo
repita
que contém os
avance(agenda);
registros do tipo
até fda(agenda);
pessoa.
leia(aux.nome, aux.fone);
guarde(agenda, aux);
feche(agenda);
fim.
20. Concepção sequencial
tipo pessoal = arquivo composto de pessoa;
pessoa: aux;
pessoal: agenda;
abra(agenda);
Criação de uma
repita
variável auxiliar do
avance(agenda);
tipo pessoa (é uma
até fda(agenda);
variavel do registro)
leia(aux.nome, aux.fone);
guarde(agenda, aux);
feche(agenda);
fim.
21. Concepção sequencial
tipo pessoal = arquivo composto de pessoa;
pessoa: aux;
pessoal: agenda;
abra(agenda);
repita
Variável de arquivo
avance(agenda);
até fda(agenda);
leia(aux.nome, aux.fone);
guarde(agenda, aux);
feche(agenda);
fim.
22. Concepção sequencial
tipo pessoal = arquivo composto de pessoa;
pessoa: aux;
pessoal: agenda;
abra(agenda);
A posição corrente do
arquivo é o primeiro
repita
avance(agenda); registro.
até fda(agenda);
leia(aux.nome, aux.fone); O registro só pode ser
guardado
depois
que
guarde(agenda, aux);
estiver
completamente
feche(agenda);
fim.
preenchido.
23. Concepção sequencial
tipo pessoal = arquivo composto de pessoa;
pessoa: aux;
pessoal: agenda;
abra(agenda);
repita
avance(agenda);
até fda(agenda);
Percorre o arquivo de
leia(aux.nome, aux.fone);
registros até chegar ao
guarde(agenda, aux);
final do arquivo.
feche(agenda);
fim.
24. Concepção sequencial
tipo pessoal = arquivo composto de pessoa;
pessoa: aux;
pessoal: agenda;
abra(agenda);
repita
avance(agenda);
até fda(agenda);
leia(aux.nome, aux.fone);
Lê o nome e o telefone
guarde(agenda, aux);
fornecidos pelo usuário
feche(agenda);
fim.
25. Concepção sequencial
tipo pessoal = arquivo composto de pessoa;
pessoa: aux;
pessoal: agenda;
abra(agenda);
repita
Armazena todas as
avance(agenda);
informações
até fda(agenda);
contidas no registro
leia(aux.nome, aux.fone);
na posição corrente
guarde(agenda, aux);
do arquivo.
feche(agenda);
fim.