algoritmos - arquivos parte 1
TRANSCRIPT
![Page 1: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/1.jpg)
Eng.Comp.Eng.Comp.
ARQUIVOS
Profª Ms. Engª Elaine Cecília GattoCurso de Bacharelado em Engenharia de ComputaçãoUniversidade do Sagrado Coração – USCBauru/SP
28/11/2013
1
![Page 2: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/2.jpg)
Eng.Comp.
Introdução
• São estruturas de Dados manipuladas forado ambiente do programa.
• Ambiente do programa: memória principalou memória ram.
• Um arquivo é armazenado em umdispositivo de memória secundária
28/11/2013
2
![Page 3: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/3.jpg)
Eng.Comp.
Introdução
• Memória secundária: discos rígidos.
• Discos rídigos:
– Podem ser lidos ou escritos por umprograma
– É formado por uma coleção de caracteresou bytes
28/11/2013
3
![Page 4: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/4.jpg)
Eng.Comp.
Introdução
• Arquivo de texto: coleção de caracteres
• Arquivo binário: bytes armazenados
• Sistema de banco de dados: Composto porum ou vários arquivos de dados 2
8/11/2013
4
![Page 5: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/5.jpg)
Eng.Comp.
Introdução
• Programas de manutenção de um arquivo:
– Inclusão
– Exclusão Lógica
– Exclusão física
– Alteração
– Consulta geral
– Consulta específica
– Relatórios
28/11/2013
5
![Page 6: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/6.jpg)
Eng.Comp.
Introdução
• Exclusão física: após a eliminação de umregistro, os demais são deslocados
• Exclusão lógica: os registros possuem umcampo adicional, identificando se estão ativosou inativos (se foram ou não excluídos)
• CAMPO ATIVO = 0 : o arquivo foi excluído
• CAMPO ATIVO = 1 : o arquivo NÃO foiexcluído
28/11/2013
6
![Page 7: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/7.jpg)
Eng.Comp.
Declaração
• TYPE : palavra chave utilizada para a criação de novos tipos de dados emPASCAL
TYPE nome_do_registro = RECORD
Campo1: tipo_do_campo1;
Campo2: tipo_do_campo2;
...
CampoN: tipo_do_campoN;
END;
nome_do_arquivo = FILE OF nome_do_registro;
VAR
variavel_do_arquivo: nome_do_arquivo;
variavel_do_registro: nome_do_registro;
28/11/2013
7
![Page 8: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/8.jpg)
Eng.Comp.
EXEMPLO 1
//definindo um registro
TYPE registro = RECORD
nome : string[30];
endereco : string[20];
telefone : string[10];
END;
//variável capaz de referenciar arquivos que armazenam dados no
formato registro
arquivo = FILE OF registro;
//as informações geradas pelo programa serão armazenadas em REG.
A variável REG será gravada no arquivo referenciado por AGENDA.
VAR
agenda: arquivo;
reg : registro;
28/11/2013
8
![Page 9: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/9.jpg)
Eng.Comp.
EXEMPLO 2
//definindo um registro
TYPE registro = RECORD
placa: string[7];
marca : string[20];
ano : integer;
END;
//variável capaz de referenciar arquivos que armazenam dados no
formato registro
frota = FILE OF registro;
//as informações geradas pelo programa serão armazenadas em
CARROS. A variável CARROS será gravada no arquivo referenciado
por DETRAN.
VAR
detran: arquivo;
carros : registro;
28/11/2013
9
![Page 10: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/10.jpg)
Eng.Comp.
Associando variáveis a arquivos
• ASSIGN:
– Comando usado para associar nomes dearquivos físicos a variáveis de umprograma.
–Uma ligação é estabelecida entre aexecução de um programa na memóriaprincipal e os dados armazenados namemória secundária
28/11/2013
10
![Page 11: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/11.jpg)
Eng.Comp.
Associando variáveis a arquivos
ASSIGN(nome_da_variável_do_tipo_arquivo,
’caminho do arquivo no disco’);
ASSIGN(AGENDA,‘AGENDA.DAT’);
• A variável AGENDA permite acesso ao arquivoAGENDA.DAT
• Neste exemplo, o arquivo AGENDA.DAT serágravado no mesmo local do arquivo que estiversendo executado.
28/11/2013
11
![Page 12: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/12.jpg)
Eng.Comp.
Associando variáveis a arquivos
ASSIGN(DETRAN,’C:\EXEMPLO\CARROS.DAT’);
• A variável DETRAN permite acesso ao arquivoCARROS.DAT
• CARROS.DAT será armazenado no caminhoC:\EXEMPLOS
28/11/2013
12
![Page 13: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/13.jpg)
Eng.Comp.
Criando um novo Arquivo
• REWRITE
• Comando para criar novos arquivos;
• Posiciona o seu ponteiro no primeiro registro,apagando todo o conteúdo do arquivo;
• Se o arquivo referenciado na criação existir,ele perderá todo o seu conteúdo
• Se o arquivo referenciado na criação NÃOexistir, o comando forçará a sua criação.
28/11/2013
13
![Page 14: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/14.jpg)
Eng.Comp.
Criando um novo Arquivo
REWRITE(nome_da_variavel_do_tipo
_arquivo);
REWRITE(AGENDA);
REWRITE(DETRAN); 28/11/2013
14
![Page 15: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/15.jpg)
Eng.Comp.
Abrindo arquivos já existentes
• RESET
• Usado para abrir arquivos;
• Posiciona o ponteiro no primeiro registro,SEM destruir os dados já existentes; 2
8/11/2013
15
![Page 16: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/16.jpg)
Eng.Comp.
Abrindo arquivos já existentes
RESET(nome_da_variavel_do_tipo_
arquivo);
RESET(AGENDA);
RESET(DETRAN); 28/11/2013
16
![Page 17: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/17.jpg)
Eng.Comp.
Fechando um arquivo
• CLOSE
• Usado para fechar arquivos abertos pelocomando REWRITE ou RESET;
• Todas as mudanças feitas em um arquivo sósão efetivadas quando ele for fechado;
• Nenhuma mudança poderá ser feita em umarquivo fechado
28/11/2013
17
![Page 18: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/18.jpg)
Eng.Comp.
Fechando um arquivo
CLOSE(nome_da_variavel_do_tipo_ar
quivo);
CLOSE(AGENDA);
CLOSE(DETRAN); 28/11/2013
18
![Page 19: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/19.jpg)
Eng.Comp.
Lendo dados de um arquivo
• READ
• Comando para leitura de arquivos;
• Para ler dados de um arquivo, devemosexecutar uma leitura no disco; 2
8/11/2013
19
![Page 20: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/20.jpg)
Eng.Comp.
Lendo dados de um arquivo
READ(nome_da_variavel__do_tipo_arquivo,
nome_da_variavel_do_tipo_registro);
//os dados lidos no arquivo associado à variável
AGENDA serão copiados para a variável de programa
REG, que será tratada pelo programna como um
registro qualquer
READ(AGENDA, REG);
//os dados lidos no arquivo associado à variável
DETRAN serão copiados para a variável de programa
CARROS, que será tratada pelo programna como um
registro qualquer
READ(DETRAN, CARROS);
28/11/2013
20
![Page 21: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/21.jpg)
Eng.Comp.
Gravando dados em um arquivo
WRITE: Permite a gravação de dados
WRITE(nome_da_variável_do_tipo_arquivo,
nome_da_variavel_do_tipo_registro);
//Os dados contidos na variável de programa REG
serão copiados para o arquivo associado à
variável AGENDA
WRITE(AGENDA, REG);
//Os dados contidos na variável de programa
CARROS serão copiados para o arquivo associado à
variável AGENDA
WRITE(AGENDA, CARROS);
28/11/2013
21
![Page 22: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/22.jpg)
Eng.Comp.
Movimentando o ponteiro em um arquivo
• SEEK:
• Usado para posicionar o ponteiro no registrodesejado;
• O primeiro registro do arquivo é sempre o denúmero zero;
28/11/2013
22
![Page 23: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/23.jpg)
Eng.Comp.
Movimentando o ponteiro em um arquivo
SEEk(nome_da_variavel_do_tipo_arquivo,
numero_do_registro);
//O ponteiro do arquivo DETRAN está na
posição dois, no início do terceiro
registro gravado no arquivo
SEEK(AGENDA, 2);
//O ponteiro do arquivo DETRAN está na
posição zero, no início do primeiro
registro gravado no arquivo
SEEK(DETRAN, 0);
28/11/2013
23
![Page 24: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/24.jpg)
Eng.Comp.
Obtendo o número de registros de um arquivo
• FILESIZE: Usado para retornar o número deregistros existentes em um arquivo
FILESIZE(nome_da_variavel_do_tipo_arquivo);
//retorna a quantidade de registros gravados
no arquivo AGENDA
Tamanho := FILESIZE(AGENDA);
//retorna a quantidade de registros gravados
no arquivo DETRAN
Tamanho := FILESIZE(DETRAN);
28/11/2013
24
![Page 25: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/25.jpg)
Eng.Comp.
Verificando o final do arquivo
• EOF:
• Verifica se o ponteiro chegou ao final do arquivo;
• Retorno verdadeiro: o final do arquivo foiencontrado;
• Retorno falso: o final do arquivo não foiencontrado
28/11/2013
25
![Page 26: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/26.jpg)
Eng.Comp.
Verificando o final do arquivo
WHILE NOT EOF(nome_da_variavel_do_tipo_arquivo) DO
BEGIN
comandos;
END;
//percorre todos os registros de um arquivo. A cada
leitura feita no arquivo DETRAN, o ponteiro movimenta-se
para o registro seguinte. Enquanto foram obtidas
informações no arquivo, a repetição continuará. Quando o
ponteiro chegar ao final do arquivo DETRAN, o WHILE será
finalizado.
WHILE NOT EOF(DETRAN) DO
BEGIN
READ(DETRAN, REG);
END;
28/11/2013
26
![Page 27: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/27.jpg)
Eng.Comp.
Exemplo
PROGRAM EX1;
USES CRT;
TYPE aluno = RECORD
numero : INTEGER;
nome : STRING[20];
curso: STRING[15];
nota1, nota2 : REAL;
END;
classe = FILE OF aluno;
VAR ALUNOS: classe;
A: aluno;
BEGIN
CLRSCR;
ASSIGN(ALUNOS, 'C:\Dev-Pas\ALUNOS.TXT');
REWRITE(ALUNOS);
CLOSE(ALUNOS);
WRITELN('Arquivo de ALUNOS criado com sucesso!!!');
READLN;
END.
28/11/2013
27
![Page 28: Algoritmos - Arquivos Parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022013122/55aae5f11a28ab831b8b4816/html5/thumbnails/28.jpg)
Eng.Comp.
Exemplo
Pegar no syllabus
28/11/2013
28