algoritmos - arquivos parte 2

25
ARQUIVOS Prof.ª Ms. Eng.ª Elaine Cecília Gatto Algoritmos e Estruturas de Dados Engenharia de Computação Universidade Sagrado Coração

Upload: elaine-cecilia-gatto

Post on 09-Jun-2015

2.184 views

Category:

Education


0 download

DESCRIPTION

Algoritmos - Arquivos Parte 2

TRANSCRIPT

Page 1: Algoritmos - Arquivos Parte 2

ARQUIVOSProf.ª Ms. Eng.ª Elaine Cecília GattoAlgoritmos e Estruturas de DadosEngenharia de ComputaçãoUniversidade Sagrado Coração

Page 2: Algoritmos - Arquivos Parte 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 = registrointeiro: código, ano, edição;caracter: título, autor, assunto, editora;

fimregistro;tipo arqLivro = arquivo composto de livro;livro: ficha;arqLivro: biblos;

Page 3: Algoritmos - Arquivos Parte 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

tipo livro = registrointeiro: código, ano, edição;caracter: título, autor, assunto, editora;

fimregistro;tipo arqLIvro = arquivo composto de livro;livro: ficha;arqLivro: biblos;

LIVRO é o identificador da estrutura do tipo registro que formará o arquivo;

Page 4: Algoritmos - Arquivos Parte 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

tipo livro = registrointeiro: código, ano, edição;caracter: título, autor, assunto, editora;

fimregistro;tipo arqLIvro = arquivo composto de livro;livro: ficha;arqLivro: biblos;

ARQLIVRO: é o identificador do tipo associado ao arquivo, formado pelos

tipos de registros livro

Page 5: Algoritmos - Arquivos Parte 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

tipo livro = registrointeiro: código, ano, edição;caracter: título, autor, assunto, editora;

fimregistro;tipo arqLIvro = arquivo composto de livro;livro: ficha;arqLivro: biblos;

FICHA é a variável de registro

Page 6: Algoritmos - Arquivos Parte 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

tipo livro = registrointeiro: código, ano, edição;caracter: título, autor, assunto, editora;

fimregistro;tipo arqLIvro = arquivo composto de livro;livro: ficha;arqLivro: biblos;

BIBLOS é a variável de arquivo

Page 7: Algoritmos - Arquivos Parte 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

tipo livro = registrointeiro: código, ano, edição;caracter: título, autor, assunto, editora;

fimregistro;tipo arqLIvro = arquivo composto de livro;livro: ficha;arqLivro: biblos;

BIBLOS e FICHA são as variáveis utilizadas para manipulação do arquivo – são as

que armazenam as informações

Page 8: Algoritmos - Arquivos Parte 2

ARQUIVOS

tipo Socio = registrocaracter = 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;

Page 9: Algoritmos - Arquivos Parte 2

ARQUIVOS• O que podemos fazer com arquivos?

• Consultar• Alterar• Excluir• Modificar • Acrescentar

Page 10: Algoritmos - Arquivos Parte 2

ARQUIVOS• Consultar arquivo:• Abrir arquivo• Achar a informação• Copiar as informações• Fechar o arquivo

• Acrescentar informações• Abrir o arquivo• Achar a posição• Guardar a nova ficha• Fechar o arquivo

• Modificar arquivo• Abrir arquivo• Achar a informação• Alterar a informação• Fechar o arquivo

• Eliminar informações• Abrir o arquivo• Achar a informação• Retirar a informação• Fechar o arquivo

Page 11: Algoritmos - Arquivos Parte 2

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

Page 12: Algoritmos - Arquivos Parte 2

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);• Para• AUX: identificador da variável registro de formato igual àquele

que compõe o arquivo.

• FDA: final do arquivo

Copiam-se as informações da posição do arquivo para o registro especificado no comando – o qual possui um formato idêntico ao do registro que compõe o arquivo.

Page 13: Algoritmos - Arquivos Parte 2

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);• Para• AUX: identificador da variável registro de formato igual àquele

que compõe o arquivo.

• FDA: final do arquivo

Guarda-se sempre alguma informação de dado registro – definido no comando – para a posição atual do arquivo.

Page 14: Algoritmos - Arquivos Parte 2

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

Elimina-se sempre o registro da posição corrente do arquivo especificado – definido no comando

Page 15: Algoritmos - Arquivos Parte 2

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.

Page 16: Algoritmos - Arquivos Parte 2

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 ARQUIVOalgoritmo exemplo1;

iniciotipo pessoa = registro

caracter = nome;inteiro = fone;

fimregistro;

Page 17: Algoritmos - Arquivos Parte 2

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 ARQUIVOalgoritmo exemplo1;

iniciotipo pessoa = registro

caracter = nome;inteiro = fone;

fimregistro;

Declaração do registro PESSOA que contém os campos nome e fone.

Page 18: Algoritmos - Arquivos Parte 2

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.

Page 19: Algoritmos - Arquivos Parte 2

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.

Criação do arquivo que contém os registros do tipo pessoa.

Page 20: Algoritmos - Arquivos Parte 2

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.

Criação de uma variável auxiliar do tipo pessoa (é uma variavel do registro)

Page 21: Algoritmos - Arquivos Parte 2

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.

Variável de arquivo

Page 22: Algoritmos - Arquivos Parte 2

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.

A posição corrente do arquivo é o primeiro registro.

O registro só pode ser guardado depois que estiver completamente preenchido.

Page 23: Algoritmos - Arquivos Parte 2

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.

Percorre o arquivo de registros até chegar ao final do arquivo.

Page 24: Algoritmos - Arquivos Parte 2

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.

Lê o nome e o telefone fornecidos pelo usuário

Page 25: Algoritmos - Arquivos Parte 2

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.

Armazena todas as informações contidas no registro na posição corrente do arquivo.