SlideShare uma empresa Scribd logo
1 de 23
ARQUIVOS
Prof.ª Ms. Eng.ª Elaine Cecília Gatto
Algoritmos e Estruturas de Dados
Engenharia de Computação
Universidade Sagrado Coração
Pesquisar no arquivo sequencial
inicio
tipo pessoa = registro
caracter: nome;
inteiro: fone;
fimregistro;

repita

tipo pessoal = arquivo composto de
pessoa;
pessoa: aux,
pessoal: agenda;
caracter: nomeprocurado;

se(aux.nome = nomeprocurado)
então escreva(aux.fone);
senão escreva(“telefone não
registrado”);
fimse;

abra(agenda);
leia(nomeprocurado);

feche(agenda);
fim.

copie(agenda, aux);
avance(agenda);
até(aux.nome = nomeprocurado) ou
(fda(agenda));
Pesquisar no arquivo sequencial
inicio
Não é possível apenas
tipo pessoa = registro
avançar pelos registros,
caracter: nome; vez
uma
que
inteiro: precisamos verificar se
fone;
o conteúdo de cada um
fimregistro;

deles é o esperado, por
isso se copia para um
registro auxiliar cada
tipo pessoal = arquivo composto de
dos
registros
pessoa;um
armazenados.

repita
copie(agenda, aux);
avance(agenda);
até(aux.nome = nomeprocurado) ou
(fda(agenda));

pessoa: aux,
pessoal: agenda;
caracter: nomeprocurado;

se(aux.nome = nomeprocurado)
então escreva(aux.fone);
senão escreva(“telefone não
registrado”);
fimse;

abra(agenda);
leia(nomeprocurado);

feche(agenda);
fim.
Alteração - sequencial
inicio
tipo pessoa = registro
caracter: nome;
inteiro: fone;
fimregistro;
tipo pessoal = arquivo composto de
pessoa;
pessoa: aux,
pessoal: agenda;
caracter: nomeprocurado
inteiro: novofone;
abra(agenda);
leia(nomeprocurado);
copie(agenda,aux);
enquanto(aux.nome <> nomeprocurado)
e (não fda(agenda)) faça
avance(agenda);

copie(agenda, aux);
fimenquanto;
se(aux.nome = nomeprocurado)
então inicio
escreva(aux.nome, “possui
fone”, aux.fone);
escreva(“novo telefone”);
leia(novofone);
aux.fona  novofone;
guarde(agenda, aux);
fim;
senão escreva(“telefone não
registrado!”);
fimse;
feche(agenda);
fim.
Alteração - sequencial
inicio
copie(agenda, aux);
É preciso ter o cuidado
tipo pessoa = registro
fimenquanto;
de não avançar a
caracter: nome;
posição se(aux.nome = nomeprocurado)
corrente
inteiro: fone;
depois então ter sido
de inicio
fimregistro;
escreva(aux.nome, “possui
encontrado o registro,
fone”, aux.fone);
pois temos, após a
tipo pessoal = arquivo composto de
pessoa;
escreva(“novo telefone”);
atualização, de regraválo na mesma posição.
pessoa: aux,
leia(novofone);
pessoal: agenda;
aux.fona  novofone;
caracter: nomeprocurado
guarde(agenda, aux);
inteiro: novofone;
fim;
abra(agenda);
senão escreva(“telefone não
registrado!”);
leia(nomeprocurado);
fimse;
copie(agenda,aux);
feche(agenda);
enquanto(aux.nome <> nomeprocurado)
e (não fda(agenda)) faça
fim.
avance(agenda);
Exclusão - sequencial
inicio
tipo pessoa = registro
caracter: nome;
inteiro: fone;
fimregistro;
tipo pessoal = arquivo composto de
pessoa;
pessoa: aux,
pessoal: agenda;
caracter: nomeprocurado, confirmacao;
abra(agenda);
leia(nomeprocurado);
repita
copie(agenda, aux);
avance(agenda);
até(aux.nome = nomeprocurado) ou
(fda(agenda));

se(aux.nome = nomeprocurado)
então inicio
escreva(aux.nome, aux.fone);
escreva(“confirma exclusão
(s/n) ?”);
leia(confirmacao);
se confirmacao = “s”
então elimine(agenda);
fimse;
fim;
senão escreva(“nome não
encontrado”);
fimse;
feche(agenda);
fim.
Exclusão - sequencial

É importante certificarse de que a posição
correntese(aux.nomeé=anomeprocurado)
no arquivo
inicio
correta, então inicio
apresentando
tipo pessoa = registro
os dados queescreva(aux.nome, aux.fone);
nela
caracter: nome;
constam;
inteiro: fone;
escreva(“confirma exclusão
(s/n) ?”);
fimregistro;
Sempre
é
leia(confirmacao);
tipo pessoal = arquivo composto de
recomendável solicitar
pessoa;
se confirmacao = “s”
uma confirmação para
pessoa: aux,
então elimine(agenda);
uma
operação
de
pessoal: agenda;
fimse;
exclusão,
porque
caracter: nomeprocurado, confirmacao;depois de executa não
fim;
abra(agenda);
senão escreva(“nome não
haverá mais volta
encontrado”);
leia(nomeprocurado);
fimse;
repita
copie(agenda, aux);
feche(agenda);
avance(agenda);
fim.
até(aux.nome = nomeprocurado) ou
(fda(agenda));
RANDÔMICO
• É quando a circusntância de armazenamento que perfaz o
algoritmo é a da localização do registro dentro do arquivo ficar
diretamente relacionada a uma informação constituinte desse
arquivo.
• Através de um dos campos do registro podemos determinar o
lugar onde ele está guardado, podendo acessá-lo de modo
instantaneo.
• Podemos acessar um registro específico diretamente, sem nos
preocuparmos com seus antecessores, utilizando nesse acesso
o mesmo campo que determinou sua posição no arquivo no
instante da gravação.
RANDÔMICO
• O campo que determina a posição do registro no arquivo é
denominado CHAVE, pois é a informação capaz de acessar o
registro.
• A CHAVE determinada no algoritmo deve ser única, pois nunca
podemos armazenar dois registros diferentes em uma mesma
localização.
• Em um arquivo randômico os arquivos não ficam localizados
na ordem em que são gravados.
• Cada registro possui um lugar reservado para ser guardado,
identificado através da chave.
Cadastro randômico
inicio
tipo aluno = registro
caracter : nome;
inteiro : numero;
real : n1, n2, n3, n4;
fimregistro;
tipo sala = arquivo composto
de aluno;
aluno : aux;
sala : diario;
abra(diario);
Repita
Leia(aux.numero, aux.n1,
aux.nome);

se(aux.numero>0)
então inicio
aux.n2  0;
aux.n2  0;
aux.n4  0;
posicione(diario,
aux.numero);
guarde(diario, aux);
fim;
fimse;
até aux.numero = 0;
feche(diario);
fim.
Cadastro randômico
inicio
tipo aluno = registro
Precisamos atribuir
caracter : nome; a n1, n2 e n3
o valor zero para que todos os
inteiro : numero; armazenados
campos a serem
realestejamn2, n3, n4;
: n1, preenchido;
fimregistro;
O comando posicione determina
tipoque a localização nocomposto
sala = arquivo arquivo seja
de aluno;
a estabelecida pelo número de
chamada,
aluno : aux; que é a chave de
salaacesso utilizada pelo professor.
: diario;
abra(diario);
Repita
Leia(aux.numero, aux.n1,
aux.nome);

se(aux.numero>0)
então inicio
aux.n2  0;
aux.n2  0;
aux.n4  0;
posicione(diario,
aux.numero);
guarde(diario, aux);
fim;
fimse;
até aux.numero = 0;
feche(diario);
fim.
Acessando registros
diretamente
inicio
tipo aluno = registro
caracter : nome;
inteiro : numero;
real : n1, n2, n3, n4;
fimregistro;
tipo sala = arquivo composto
de aluno;
aluno : aux;
sala : diario;
Inteiro: numeroAluno;

abra(diario);
leia(numeroaluno);
posicione(diario,
numeroaluno);
copie(aux.nome, “possui
nota”, aux.n1);
feche(diario);
fim.
Acessando registros
diretamente
inicio
Após a execução do
tipo aluno = registro
comando
POSICIONE,
o
caracter : nome;
registro que está
inteiro : numero; a
apto
ser
real : n1, n2, manipulado é o
n3, n4;
indicado pela chave
fimregistro; numeroAluno
fornecida
tipo sala = arquivo composto
anteriormente
de aluno;
aluno : aux;
sala : diario;
Inteiro: numeroAluno;

abra(diario);
leia(numeroaluno);
posicione(diario,
numeroaluno);
copie(aux.nome, “possui
nota”, aux.n1);
feche(diario);
fim.
Alteração
inicio
tipo aluno = registro
caracter : nome;
inteiro : numero;
real : n1, n2, n3, n4;
fimregistro;
tipo sala = arquivo composto
de aluno;
aluno : aux;
sala : diario;
inteiro: numeroaluno,
qualnota;
real: nota;

abra(diario);
leia(numeroaluno,
qualnota);
posicione(diario,
numeroaluno);
copie(diario, aux);
escolha qualnota
caso 1: nota  aux.n1;
caso 2: nota  aux.n2;
caso 3: nota  aux.n3;
caso 4: nota  aux.n4;
fimescolha;
Alteração
escreva(aux.nome, “possui
nota”, qualnota, “=”, nota);
escreva(“nova nota: ”);
leia(nota);
escolha qualnota
caso 1 : aux.n1 nota;
caso 2 : aux.n2 nota;
caso 3 : aux.n3 nota;
caso 4 : aux.n4 nota;
fimescolha;

guarde(diario, aux);
feche(diario)
fim.
ARQUIVOS EM PASCAL
type nome_do_registro = record
nome_do_campo : tipo do dado;
end;
nome_do_arquivo = file of nome_do_registro;
var
variável_do_arquivo : nome_do_arquivo;
variável_do_registro : nome_do_registro;
ARQUIVOS EM PASCAL
type registro = record
nome : string;
endereco : string;
telefone : string;
end;
arquivo = file of registro;
var
agenda : arquivo;
reg : registro;
COMANDOS EM PASCAL
• ASSING: associa nomes de arquivos e variáveis locais, do programa
com arquivos de dispositivos de memória secundária, como por
exemplo, disco.
• REWRITE: abre novos arquivos, pois, antes de posicionar o ponteiro
no registro de número zero, o comando rewrite apagará todo o
conteúdo do arquivo.
• RESET: abre arquivos e posiciona o ponteiro no registro de número
zero, sem destruir os dados já existentes no arquivo.

• CLOSE: fecha arquivos que foram abertos pelo comando REWRITE ou
pelo comando RESET. As atualizações só serão efetuadas em um
arquivo assim que ele for fechado.
COMANDOS EM PASCAL
• READ: lê os dados que estão armazenados nos registros de um
arquivo.
• WRITE: grava os dados nos registros de um arquivo.
• SEEK: posiciona o ponteiro no registro desejado. O primeiro registro
do arquivo é sempre o de número zero.
• FILESIZE: retorna o número de registros presentes em um arquivo.
• FILEPOS: retorna o número do registro em que o ponteiro está
localizado.
• NOT EOF: verifica o final do arquivo
ARQUIVOS EM PASCAL
type carro= record
placa: string;
marca: string;
ano: integer;
end;
frota = file of carro;
var
detran: frota;
carros : carro;
Criando um arquivo em Pascal
Program cria;
Uses crt, wincrt;
Type carro = record
Placa : string;
Marca : string;
Ano : integer;
End;
Frota = file of carro;
Var
Detran : frota;
Carros : carro;

Begin
Assing(detran,
‘carros.dat’);
Rewrite(detran);
Close(detran);
End.
Arquivos em Pascal
•
•
•
•
•
•
•
•

Inclusão sequencial de dados em arquivos
Inclusão ordenada de dados em um arquivo
Exclusão física de dados de um arquivo
Exclusão lógica de dados de um arquivo
Alteração de dados de um arquivo
Consulta geral de dados em um arquivo
Consulta específica de dados em um arquivo
Consulta formulada de dados em um arquivo

• Ascencio, A. F. G. Lógica de Programação com Pascal. São
Paulo: Makron Books, 1999. Página 86.
Exercícios

Mais conteúdo relacionado

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdfBlendaLima1
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
AULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobreAULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobremaryalouhannedelimao
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......suporte24hcamin
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 

Último (20)

3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
AULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobreAULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobre
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 

Cadastro de alunos em arquivo randômico

  • 1. ARQUIVOS Prof.ª Ms. Eng.ª Elaine Cecília Gatto Algoritmos e Estruturas de Dados Engenharia de Computação Universidade Sagrado Coração
  • 2. Pesquisar no arquivo sequencial inicio tipo pessoa = registro caracter: nome; inteiro: fone; fimregistro; repita tipo pessoal = arquivo composto de pessoa; pessoa: aux, pessoal: agenda; caracter: nomeprocurado; se(aux.nome = nomeprocurado) então escreva(aux.fone); senão escreva(“telefone não registrado”); fimse; abra(agenda); leia(nomeprocurado); feche(agenda); fim. copie(agenda, aux); avance(agenda); até(aux.nome = nomeprocurado) ou (fda(agenda));
  • 3. Pesquisar no arquivo sequencial inicio Não é possível apenas tipo pessoa = registro avançar pelos registros, caracter: nome; vez uma que inteiro: precisamos verificar se fone; o conteúdo de cada um fimregistro; deles é o esperado, por isso se copia para um registro auxiliar cada tipo pessoal = arquivo composto de dos registros pessoa;um armazenados. repita copie(agenda, aux); avance(agenda); até(aux.nome = nomeprocurado) ou (fda(agenda)); pessoa: aux, pessoal: agenda; caracter: nomeprocurado; se(aux.nome = nomeprocurado) então escreva(aux.fone); senão escreva(“telefone não registrado”); fimse; abra(agenda); leia(nomeprocurado); feche(agenda); fim.
  • 4. Alteração - sequencial inicio tipo pessoa = registro caracter: nome; inteiro: fone; fimregistro; tipo pessoal = arquivo composto de pessoa; pessoa: aux, pessoal: agenda; caracter: nomeprocurado inteiro: novofone; abra(agenda); leia(nomeprocurado); copie(agenda,aux); enquanto(aux.nome <> nomeprocurado) e (não fda(agenda)) faça avance(agenda); copie(agenda, aux); fimenquanto; se(aux.nome = nomeprocurado) então inicio escreva(aux.nome, “possui fone”, aux.fone); escreva(“novo telefone”); leia(novofone); aux.fona  novofone; guarde(agenda, aux); fim; senão escreva(“telefone não registrado!”); fimse; feche(agenda); fim.
  • 5. Alteração - sequencial inicio copie(agenda, aux); É preciso ter o cuidado tipo pessoa = registro fimenquanto; de não avançar a caracter: nome; posição se(aux.nome = nomeprocurado) corrente inteiro: fone; depois então ter sido de inicio fimregistro; escreva(aux.nome, “possui encontrado o registro, fone”, aux.fone); pois temos, após a tipo pessoal = arquivo composto de pessoa; escreva(“novo telefone”); atualização, de regraválo na mesma posição. pessoa: aux, leia(novofone); pessoal: agenda; aux.fona  novofone; caracter: nomeprocurado guarde(agenda, aux); inteiro: novofone; fim; abra(agenda); senão escreva(“telefone não registrado!”); leia(nomeprocurado); fimse; copie(agenda,aux); feche(agenda); enquanto(aux.nome <> nomeprocurado) e (não fda(agenda)) faça fim. avance(agenda);
  • 6. Exclusão - sequencial inicio tipo pessoa = registro caracter: nome; inteiro: fone; fimregistro; tipo pessoal = arquivo composto de pessoa; pessoa: aux, pessoal: agenda; caracter: nomeprocurado, confirmacao; abra(agenda); leia(nomeprocurado); repita copie(agenda, aux); avance(agenda); até(aux.nome = nomeprocurado) ou (fda(agenda)); se(aux.nome = nomeprocurado) então inicio escreva(aux.nome, aux.fone); escreva(“confirma exclusão (s/n) ?”); leia(confirmacao); se confirmacao = “s” então elimine(agenda); fimse; fim; senão escreva(“nome não encontrado”); fimse; feche(agenda); fim.
  • 7. Exclusão - sequencial É importante certificarse de que a posição correntese(aux.nomeé=anomeprocurado) no arquivo inicio correta, então inicio apresentando tipo pessoa = registro os dados queescreva(aux.nome, aux.fone); nela caracter: nome; constam; inteiro: fone; escreva(“confirma exclusão (s/n) ?”); fimregistro; Sempre é leia(confirmacao); tipo pessoal = arquivo composto de recomendável solicitar pessoa; se confirmacao = “s” uma confirmação para pessoa: aux, então elimine(agenda); uma operação de pessoal: agenda; fimse; exclusão, porque caracter: nomeprocurado, confirmacao;depois de executa não fim; abra(agenda); senão escreva(“nome não haverá mais volta encontrado”); leia(nomeprocurado); fimse; repita copie(agenda, aux); feche(agenda); avance(agenda); fim. até(aux.nome = nomeprocurado) ou (fda(agenda));
  • 8. RANDÔMICO • É quando a circusntância de armazenamento que perfaz o algoritmo é a da localização do registro dentro do arquivo ficar diretamente relacionada a uma informação constituinte desse arquivo. • Através de um dos campos do registro podemos determinar o lugar onde ele está guardado, podendo acessá-lo de modo instantaneo. • Podemos acessar um registro específico diretamente, sem nos preocuparmos com seus antecessores, utilizando nesse acesso o mesmo campo que determinou sua posição no arquivo no instante da gravação.
  • 9. RANDÔMICO • O campo que determina a posição do registro no arquivo é denominado CHAVE, pois é a informação capaz de acessar o registro. • A CHAVE determinada no algoritmo deve ser única, pois nunca podemos armazenar dois registros diferentes em uma mesma localização. • Em um arquivo randômico os arquivos não ficam localizados na ordem em que são gravados. • Cada registro possui um lugar reservado para ser guardado, identificado através da chave.
  • 10. Cadastro randômico inicio tipo aluno = registro caracter : nome; inteiro : numero; real : n1, n2, n3, n4; fimregistro; tipo sala = arquivo composto de aluno; aluno : aux; sala : diario; abra(diario); Repita Leia(aux.numero, aux.n1, aux.nome); se(aux.numero>0) então inicio aux.n2  0; aux.n2  0; aux.n4  0; posicione(diario, aux.numero); guarde(diario, aux); fim; fimse; até aux.numero = 0; feche(diario); fim.
  • 11. Cadastro randômico inicio tipo aluno = registro Precisamos atribuir caracter : nome; a n1, n2 e n3 o valor zero para que todos os inteiro : numero; armazenados campos a serem realestejamn2, n3, n4; : n1, preenchido; fimregistro; O comando posicione determina tipoque a localização nocomposto sala = arquivo arquivo seja de aluno; a estabelecida pelo número de chamada, aluno : aux; que é a chave de salaacesso utilizada pelo professor. : diario; abra(diario); Repita Leia(aux.numero, aux.n1, aux.nome); se(aux.numero>0) então inicio aux.n2  0; aux.n2  0; aux.n4  0; posicione(diario, aux.numero); guarde(diario, aux); fim; fimse; até aux.numero = 0; feche(diario); fim.
  • 12. Acessando registros diretamente inicio tipo aluno = registro caracter : nome; inteiro : numero; real : n1, n2, n3, n4; fimregistro; tipo sala = arquivo composto de aluno; aluno : aux; sala : diario; Inteiro: numeroAluno; abra(diario); leia(numeroaluno); posicione(diario, numeroaluno); copie(aux.nome, “possui nota”, aux.n1); feche(diario); fim.
  • 13. Acessando registros diretamente inicio Após a execução do tipo aluno = registro comando POSICIONE, o caracter : nome; registro que está inteiro : numero; a apto ser real : n1, n2, manipulado é o n3, n4; indicado pela chave fimregistro; numeroAluno fornecida tipo sala = arquivo composto anteriormente de aluno; aluno : aux; sala : diario; Inteiro: numeroAluno; abra(diario); leia(numeroaluno); posicione(diario, numeroaluno); copie(aux.nome, “possui nota”, aux.n1); feche(diario); fim.
  • 14. Alteração inicio tipo aluno = registro caracter : nome; inteiro : numero; real : n1, n2, n3, n4; fimregistro; tipo sala = arquivo composto de aluno; aluno : aux; sala : diario; inteiro: numeroaluno, qualnota; real: nota; abra(diario); leia(numeroaluno, qualnota); posicione(diario, numeroaluno); copie(diario, aux); escolha qualnota caso 1: nota  aux.n1; caso 2: nota  aux.n2; caso 3: nota  aux.n3; caso 4: nota  aux.n4; fimescolha;
  • 15. Alteração escreva(aux.nome, “possui nota”, qualnota, “=”, nota); escreva(“nova nota: ”); leia(nota); escolha qualnota caso 1 : aux.n1 nota; caso 2 : aux.n2 nota; caso 3 : aux.n3 nota; caso 4 : aux.n4 nota; fimescolha; guarde(diario, aux); feche(diario) fim.
  • 16. ARQUIVOS EM PASCAL type nome_do_registro = record nome_do_campo : tipo do dado; end; nome_do_arquivo = file of nome_do_registro; var variável_do_arquivo : nome_do_arquivo; variável_do_registro : nome_do_registro;
  • 17. ARQUIVOS EM PASCAL type registro = record nome : string; endereco : string; telefone : string; end; arquivo = file of registro; var agenda : arquivo; reg : registro;
  • 18. COMANDOS EM PASCAL • ASSING: associa nomes de arquivos e variáveis locais, do programa com arquivos de dispositivos de memória secundária, como por exemplo, disco. • REWRITE: abre novos arquivos, pois, antes de posicionar o ponteiro no registro de número zero, o comando rewrite apagará todo o conteúdo do arquivo. • RESET: abre arquivos e posiciona o ponteiro no registro de número zero, sem destruir os dados já existentes no arquivo. • CLOSE: fecha arquivos que foram abertos pelo comando REWRITE ou pelo comando RESET. As atualizações só serão efetuadas em um arquivo assim que ele for fechado.
  • 19. COMANDOS EM PASCAL • READ: lê os dados que estão armazenados nos registros de um arquivo. • WRITE: grava os dados nos registros de um arquivo. • SEEK: posiciona o ponteiro no registro desejado. O primeiro registro do arquivo é sempre o de número zero. • FILESIZE: retorna o número de registros presentes em um arquivo. • FILEPOS: retorna o número do registro em que o ponteiro está localizado. • NOT EOF: verifica o final do arquivo
  • 20. ARQUIVOS EM PASCAL type carro= record placa: string; marca: string; ano: integer; end; frota = file of carro; var detran: frota; carros : carro;
  • 21. Criando um arquivo em Pascal Program cria; Uses crt, wincrt; Type carro = record Placa : string; Marca : string; Ano : integer; End; Frota = file of carro; Var Detran : frota; Carros : carro; Begin Assing(detran, ‘carros.dat’); Rewrite(detran); Close(detran); End.
  • 22. Arquivos em Pascal • • • • • • • • Inclusão sequencial de dados em arquivos Inclusão ordenada de dados em um arquivo Exclusão física de dados de um arquivo Exclusão lógica de dados de um arquivo Alteração de dados de um arquivo Consulta geral de dados em um arquivo Consulta específica de dados em um arquivo Consulta formulada de dados em um arquivo • Ascencio, A. F. G. Lógica de Programação com Pascal. São Paulo: Makron Books, 1999. Página 86.