Buscar

Algoritmos2_Aula12-Arquivos3

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

Arquivos – parte 3
Algoritmos II
Prof. Thiago Meirelles Ventura
UFMT – IC – 2012/2
Resolvendo o exercício 3 da aula anterior
Faça um algoritmo que pesquise livros em uma biblioteca.
Deve ser perguntado para o usuário se ele deseja pesquisar por título ou por nome do autor.
O usuário ainda deve escolher se ele quer que apareça nos resultados os arquivos emprestados.
O sistema deve mostrar o código e título de todos os livros que estão de acordo com o filtro do usuário.
registro livro
 codigo: inteiro;
 titulo, autor: literal;
 emprestado: lógico;
fimregistro;
biblioteca: arquivo de livro;
Resolvendo o exercício 3 da aula anterior
Algoritmo Exercicio3
Var
 registro livro
 codigo: inteiro;
 titulo, autor: literal;
 emprestado: lógico;
 fimregistro;
 aux: livro;
 biblioteca: arquivo de livro;
 pesquisa, opcao1, opcao2: literal;
Início
 Escreva (“Pesquisar por (a)utor ou (t)itulo?”);
 Leia (opcao1);
 Escreva (“Termo de pesquisa:”);
 Leia (pesquisa);
 Escreva (“Mostrar livros emprestados? (s/n)”);
 Leia (opcao2);
 abra (biblioteca);
 repita
 copie (biblioteca, aux);
 Se ((opcao1 = “a” E pesquisa = aux.autor) OU
 (opcao1 = “t” E pesquisa = aux.titulo)) E
 (opcao2 = “s” OU não aux.emprestado) então
 Escreva (aux.codigo + “ - ” + aux.titulo);
 Fimse
 avance (biblioteca);
 até (fda (biblioteca))
 feche (biblioteca);
Fim
Resolvendo o exercício 4 da aula anterior
Implemente um algoritmo que crie um segundo arquivo chamado “livrosEmprestados”.
Esse arquivo deve armazenar todos os livros que estão emprestados da biblioteca.
O primeiro arquivo (usado no exercício anterior) deve permanecer inalterado.
Resolvendo o exercício 4 da aula anterior
Algoritmo Exercicio4
Var
 registro livro
 codigo: inteiro;
 titulo, autor: literal;
 emprestado: lógico;
 fimregistro;
 aux: livro;
 biblioteca, livrosEmprestados: arquivo de livro;
 Início
 abra (biblioteca);
 abra (livrosEmprestados);
 repita
 copie (biblioteca, aux);
 Se aux.emprestado então
 guarde (livrosEmprestados, aux);
 avance (livrosEmprestados);
 Fimse
 avance (biblioteca);
 até (fda (biblioteca))
 feche (biblioteca);
 feche (livrosEmprestados);
Fim
Posicionamento direto
Anteriormente, era necessário percorrer registro por registro para localizar um determinado registro.
Entretanto, há uma forma de acessar um registro de forma direta.
Dessa forma, o acesso é muito mais rápido e fácil.
Posicionamento direto
O acesso a um registro é feito através de uma chave.
Essa chave deve ser única para todo o arquivo.
É a chave que determina a posição de um registro no arquivo.
Posicionamento direto
Número: 1
Nome: Thiago
Número: 2
Nome: Rosangela
Número: 3
Nome: Leandro
Número: 4
Nome: Fulano
Número: 5
Nome: Ciclano
chave
Posicionamento direto
Número: 1
Nome: Thiago
Número: 2
Nome: Rosangela
Número: 5
Nome: Ciclano
Cada registro possui um lugar “reservado” pra ser guardado.
Posicionamento direto
Para realizar o posicionamento de forma direta, utilize o comando “posicione”.
Dessa forma o arquivo estará posicionado no registro que possui a chave “valorChave”.
posicione (varDoTipoArquivo, valorChave);
Posicionamento direto
Exemplo de inserção de um registro de forma direta:
Algoritmo ExemploAcessoDireto
Var
 registro livro
 codigo: inteiro;
 titulo, autor: literal;
 emprestado: lógico;
 fimregistro;
 aux: livro;
 biblioteca: arquivo de livro;
Início
 abra (biblioteca);
 Repita
 Escreva (“Digite as informação do livro”);
 Leia (aux.codigo, aux.titulo, aux.autor, aux.emprestado);
 Se aux.codigo > 0 então
 posicione (biblioteca, aux.codigo);
 guarde (biblioteca, aux);
 Fimse
 Até aux.codigo <= 0
 feche (biblioteca);
Fim
Posicionamento direto
Exemplo de acesso a um registro de forma direta:
Algoritmo ExemploAcessoDireto
Var
 registro livro
 codigo: inteiro;
 titulo, autor: literal;
 emprestado: lógico;
 fimregistro;
 aux: livro;
 biblioteca: arquivo de livro;
 codigo: inteiro;
 Início
 Escreva (“Digite o código do livro”);
 Leia (codigo);
 abra (biblioteca);
 posicione (biblioteca, codigo);
 copie (biblioteca, aux);
 Escreva (“Livro: “ + aux.titulo);
 feche (biblioteca);
Fim
Exercício 1
Faça um algoritmo que atualize um registro de um arquivo de forma direta.
O arquivo armazena registros do tipo “livro”.
O programa deve perguntar qual o código do livro que deve ser atualizado (chave).
Todos os outros campos devem ser perguntado para o usuário para que atualize o registro.
Exercício 2
Há dois arquivos existentes:
Um é sobre empréstimos, que guarda registros com estes campos:
data: literal
usuário: literal
codigoLivro: inteiro
O outro é o de livros, que já conhecemos
O campo “codigoLivro” do primeiro arquivo representa o código de um livro do segundo arquivo.
Crie um algoritmo que pergunte o nome de um usuário e mostre os títulos dos livros que foram emprestados por ele.

Teste o Premium para desbloquear

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

Continue navegando