Buscar

Algoritmos2_Aula10-Arquivos

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Arquivos
Algoritmos II
Prof. Thiago Meirelles Ventura
UFMT – IC – 2012/2
Introdução
Em um programa, os dados em variáveis são apenas temporários.
A persistência de informação deve ser realizada em dispositivos secundários.
Discos rígidos, pen drives, dentre outros.
Para isso são utilizados os arquivos.
Introdução
Um arquivo será um conjunto de registros.
Exemplo: registro que armazena dados de uma pessoa.
Algoritmo ExemploRegistro
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 p1: pessoa;
Início
 Escreva (“Digite o seu nome e idade”);
 leia (p1.nome);
 leia (p1.idade);
 Escreva (“Seu nome é: “, p1.nome); 
Fim
Introdução
Um arquivo será um conjunto de registros.
Nome: Thiago
Idade: 27
Nome: Rosangela
Idade: 26
Nome: Leandro
Idade: 0
Nome: Fulano
Idade: 15
Nome: Ciclano
Idade: 38
Manipulação - declaração
Algoritmo ExemploArquivo
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 amigos: arquivo de pessoa;
Início
 ...
Fim
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Algoritmo ExemploArquivo
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 aux: pessoa;
 amigos: arquivo de pessoa;
Início
 abra (amigos);
 ...
 feche (amigos);
Fim
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Um arquivo não deve ser consumido, mas sim consultado.
Copie o conteúdo de interesse em alguma variável 
Trabalhe com esta variável
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Algoritmo ExemploArquivo
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 aux: pessoa;
 amigos: arquivo de pessoa;
Início
 abra (amigos);
 copie (amigos, aux);
 Escreva (“Idade no arquivo: “, aux.idade);
 ...
 feche (amigos);
Fim
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Inserção de informações no arquivo
um registro de mesma estrutura deve ser utilizado.
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Algoritmo ExemploArquivo
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 aux: pessoa;
 amigos: arquivo de pessoa;
Início
 Escreva (“Informe um nome e idade”);
 Leia (aux.nome);
 Leia (aux.idade);
 abra (amigos);
 guarde (amigos, aux);
 feche (amigos);
Fim
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Remoção de informações no arquivo.
Algoritmo ExemploArquivo
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 amigos: arquivo de pessoa;
Início
 abra (amigos);
 elimine (amigos);
 feche (amigos);
Fim
Todo o arquivo será removido?
Não. Mas qual será o registro removido?
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Remoção de informações no arquivo.
Algoritmo ExemploArquivo
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 amigos: arquivo de pessoa;
Início
 abra (amigos);
 elimine (amigos);
 feche (amigos);
Fim
Depende do posicionamento realizado.
Manipulação - funcionamento
Abrir um arquivo
Copiar um registro
Guardar um registro
Remover um registro
Fechar um arquivo
abra (variavelDoTipoArquivo);
feche (variavelDoTipoArquivo);
elimine (variavelDoTipoArquivo);
copie (variavelDoTipoArquivo, variavelDoTipoRegistro);
guarde (variavelDoTipoArquivo, variavelDoTipoRegistro);
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Uma forma de realizar o posicionamento no arquivo é de forma sequencial.
Manipulação - funcionamento
Início
Fim
Abrir arquivo
Realizar o posicionamento
Ler, salvar ou remover
Fechar arquivo
Uma forma de realizar o posicionamento no arquivo é de forma sequencial.
Nome: Thiago
Idade: 27
Nome: Rosangela
Idade: 26
Nome: Leandro
Idade: 0
Nome: Fulano
Idade: 15
Nome: Ciclano
Idade: 38
Posicionamento sequencial
Nessa forma, os registros são armazenados um após o outro, de forma contínua.
Não se sabe a posição de um determinado registro.
Para encontrar um registro, deve ser feito uma busca registro por registro.
Posicionamento sequencial
Para tanto pode ser utilizado dois comandos:
avance: Caminha no arquivo possibilitando acessar o próximo registro.
fda: “Fim do arquivo”. Verifica se a posição corrente é o fim do arquivo ou não.
avance (variavelDoTipoArquivo);
fda (variavelDoTipoArquivo);
Posicionamento sequencial
Inclusão de um registro sobre a pessoa
Algoritmo ExemploArquivoSequencial
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 pessoaAux: pessoa;
 amigos: arquivo de pessoa;
Início
 abra (amigos);
 repita
 avance (amigos);
 até fda (amigos)
 Leia (pessoaAux.nome, pessoaAux.idade);
 guarde (amigos, pessoaAux);
 feche (amigos);
Fim
Exercício
Faça um algoritmo que, com base nos registros mostrados nesta aula, se comporte desta maneira:
Pergunte para o usuário o nome de uma pessoa
Encontre o registro desta pessoa
Mostre a idade desta pessoa
Exercício
Algoritmo ExercicioArquivoSequencial
Var
 registro pessoa
 nome: literal;
 idade: inteiro;
 fimregistro;
 aux: pessoa;
 amigos: arquivo de pessoa;
 nomeProcurado: literal;
Início
 Leia (nomeProcurado);
 abra (amigos);
 repita
 copie (amigos, aux);
 avance (amigos);
 até (aux.nome = nomeProcurado) ou (fda (amigos))
 Se nomeProcurado = aux.nome então
 Escreva (aux.idade);
 Senão
 Escreva (“Registro não encontrado”);
 Fimse
 feche (amigos);
Fim

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando