Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Janeiro/2014
Introduo
Conhecer uma estrutura de Dados
Heterognea, composio e aplicao.
ANTES:
AGORA :
2 tipos de dados
2 matrizes
Registros
Definio
Registro Simples;
Registro com Matrizes;
Mltiplos Registros;
Aplicao
ICC
Carlos
Flvia
Pedro
Joana
Lucia
ICC
PSC II
Fisica II
Fis Exp I
Clc III
7,50
8,00
7,30
8,25
7,00
Carlos
Disciplina
ICC
Nota1
7,50
Nota 2
8,25
1. Registros Simples
Os tipos so declarados antes da definies das
variveis:.
type CADASTRO = record
NOME:string;
NOTA1:real;
NOTA2:real
NOTA3:real
NOTA4:real;
end;
Var
ALUNO:CADASTRO
Program REGISTRO_SIMPLES;
type CAD_ALUNO=record
NOME:string;
NOTA1:real;
NOTA2:real;
NOTA3:real;
NOTA4:real;
end;
var
ALUNO:CAD_ALUNO;
begin {entrada de dados}
writeln('Cadastro de Alunos');
write('informe o nome......:');readln(ALUNO.NOME);
write('informe a 1a. Nota..:');readln(ALUNO.NOTA1);
write('informe a 2a. Nota..:');readln(ALUNO.NOTA2);
write('informe a 3a. Nota..:');readln(ALUNO.NOTA3);
write('informe a 4a. Nota..:');readln(ALUNO.NOTA4);
writeln; {sada de dados}
writeln('----------------------------');
write('nome......:');writeln(ALUNO.NOME);
write('1a. Nota..:');writeln(ALUNO.NOTA1);
write('2a. Nota..:');writeln(ALUNO.NOTA2);
write('3a. Nota..:');writeln(ALUNO.NOTA3);
write('4a. Nota..:');writeln(ALUNO.NOTA4);
writeln('----------------------------');
readkey;
end.
ICC
Exemplo 1:
Registros Simples
Nome da varivel do tipo registro
Nome do campo correspondente
Carlos
Disciplina
ICC
7,50
8,25
Notas
9,00
Estrutura de dados HETEROGNEA.
ICC
Program REGISTRO_MATRIZ;
type CADASTRO = record
NOME:string;
NOTA:array[1..4] of real; {campo matriz}
end;
var
ALUNO:CADASTRO;
i: integer; {contador}
begin {entrada de dados}
writeln('Cadastro de Alunos');
write('informe o nome......:');
readln(ALUNO.NOME);
for i:=1 to 4 do
begin
write('informe a ');write(i:2);write('a. nota: ');
readln(ALUNO.NOTA[i]);
end;
writeln;
{sada de dados}
writeln('----------------------------');
write('nome......:');
writeln(ALUNO.NOME);
Exemplo 2:
ICC
Program CLASSE;
type CADASTRO = record
NOME : string;
NOTA : array[1..4] of real;
end;
var
ALUNO : array [1..7] of CADASTRO; {conjunto de 7 registros}
i, c : integer;
Exemplo 3:
Mltiplos Registros
10
Aplicao
Com as tcnicas de programao aprendidas, somado a
utilizao de dados heterogneos, passa-se a ter uma
mobilidade de manipular um grande quantidade de informaes.
11
Program APLICACAO;
type
CADASTRO = record
NOME:string;
SEXO:string;
NOTA:array[1..4] of real;
MEDIA:real;
end;
var
ALUNO : array [1..7] of CADASTRO;
i, c, maior, menor :integer;
X:CADASTRO;
soma , aux : real;
begin {entrada de dados}
writeln('Cadastro de Alunos');
writeln;
for c:=1 to 7 do
begin
write('informe o nome......:');readln(ALUNO[c].NOME);
write('informe o sexo......:');readln(ALUNO[c].SEXO);
soma:=0;
for i:=1 to 4 do
begin
write('informe a ');write(i:2);write('a. nota: ');
readln(ALUNO[c].NOTA[i]);
aux:=1*ALUNO[c].NOTA[i];
soma:=soma+aux;
end;
ALUNO[c].MEDIA:=SOMA/4;
writeln;
ICC
end;
Aplicao
for maior:=1 to 6 do {ordenao dos registros
pela mdia}
for menor:= maior+1 to 7 do
if
ALUNO[maior].MEDIA<ALUNO[menor].MEDIA
then
begin
X:=ALUNO[maior];
ALUNO[maior]:=ALUNO[menor];
ALUNO[menor]:=X;
end;
writeln('----------------------------'); {sada de
dados}
for c:=1 to 7 do
begin
write('nome do
aluno:');writeln(ALUNO[c].NOME);
write('sexo do
aluno:');writeln(ALUNO[c].SEXO);
write('mdia do
aluno:');writeln(ALUNO[c].MEDIA:2);
writeln; delay(500);
end;
writeln('----------------------------');
readkey;
12
end.
__Arquivos__
Janeiro/2014
Introduo
BASE :
- matrizes
- registros
Definio:
uma tabela de informaes gravada em um meio fsico
(disquetes, winchesters, fitas magnticas, entre outros),
enquanto que as matrizes so tabelas manipuladas na
memria RAM
14
Diferena
Matrizes: ndice de controle
Arquivos: um ponteiro de registro
PRINCIPAL VANTAGEM:
1) As informaes armazenadas podem ser utilizadas a qualquer momento;
2) Armazena um nmero maior de registros do que em uma tabela de memria
(Limitao: tamanho do meio fsico utilizado para a sua gravao);
ICC
15
Definio de Arquivo
A manipulao de um arquivo usa o tipo file, que uma estrutura formada por
elementos do mesmo tipo, dispostos de forma sequencial, tendo como objetivo
fazer a comunicao entre a memria principal (RAM) e a memria secundria
(meios magnticos).
o nome de um arquivo com tipo
definido
SINTAXE:
type
<arquivo> = [text] [ file [ of <tipo>]];
var
<varivel> : <arquivos>;
a varivel que ser usada para
representar o arquivo
ou
<varivel> = [text] [ file [ of <tipo>]];
ICC
16
ICC
17
ICC
18
Instrues Apropriadas
ICC
19
ICC
20
21
22
Exemplo
O programa de agenda proposto deve solicitar apenas
o nome e o telefone de uma pessoa.
Criar arquivo;
Cadastrar registro;
Exibir registros;
Finalizar o programa.
ICC
23
program AGENDATXT;
uses
Crt;
var
ARQTXT : text;
NOME : string[40];
TELEFONE : string[8];
TECLA : char;
OPCAO : char;
Exemplo
procedure CADASTRA;
begin
clrscr;
line;
center('Cadastramento de Registro');
procedure WRITEXY(X, Y : byte; MENSAGEM : string); line;
begin
append(ARQTXT/);//abre o arquivo para inclusao de um dado
gotoxy(X, Y); write(MENSAGEM);
writexy(10, 5, 'Entre com o Nome ..........: '); readln(NOME
end;
writexy(10, 6, 'Entre com o Telefone ......: '); readln(TELEF
writeln(ARQTXT, NOME);
procedure LINE;
writeln(ARQTXT, TELEFONE);
var
writexy(25,24,'Tecle algo para voltar ao menu');
I : byte;
TECLA := readkey;
begin
close(ARQTXT);//fecha arquivo em uso dentro de um programa
for I := 1 to 80 do
End.
write(#205);
ICC
24
end;
procedure EXIBIR;
var
LINHA : byte;
begin
clrscr;
line;
center('Apresentacao de Registros');
line;
LINHA := 5;
reset(ARQTXT);//abre um arquivo existente,
//colocando p leitura/escrita
while not eof(ARQTXT) do
//(eof) end of file - final do arquivo
begin
readln(ARQTXT, NOME);
readln(ARQTXT, TELEFONE);
gotoxy( 5,LINHA); write(NOME);
gotoxy(50,LINHA); write(TELEFONE);
LINHA := LINHA + 1;
end;
writexy(25,24,'Tecle algo para voltar ao menu');
TECLA := readkey;
close(ARQTXT);
end;
Exemplo
25