linguagem pascal

Post on 24-Jan-2016

41 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Linguagem PASCAL. Módulo 3 Estrutura de Dados. Arrays (“Variáveis compostas homogêneas”). Arrays unidimensionais: identificador: array [inicial..final] of tipo; ex : var Nota: array [1..10] of integer;. 7,2. 4,8. 6,4. 5,1. 2,2. 9,2. 8,3. 7,4. 5,9. 8,9. 1. 2. 3. 4. 5. 6. - PowerPoint PPT Presentation

TRANSCRIPT

Linguagem PASCAL 1

Linguagem PASCAL

Módulo 3

Estrutura de Dados.

Linguagem PASCAL 2

Arrays (“Variáveis compostas homogêneas”)

Arrays unidimensionais:identificador: array [inicial..final] of tipo;

ex:

var Nota: array [1..10] of integer;

4,8 6,4 5,17,2 2,2 8,3 7,4 5,99,2 8,91 2 3 4 5 6 7 8 9 10

X:=Nota[3]; { X 6,4 }

Linguagem PASCAL 3

Arrays (“Variáveis compostas homogêneas”)

Exr: Leia cinco elementos e imprima

program Le;

var a: array[1..5] of integer;

i: integer;

begin

for i:=1 to 5 do

read (a[i]);

for i:=1 to 5 do

writeln (a[i]);

end.

Linguagem PASCAL 4

Arrays (“Variáveis compostas homogêneas”)

Exr: Ler e ordenar uma lista de N números

Idéia: Para inserir um número aj supõe-se a1, a2, ..., aj-1 já ordenados, então compara-se aj com aj-1, aj-2, ... até se descobrir que ele deve ser inserido entre ai e ai+1.

Move-se então ai+1 e os elementos seguintes, já ordenados, atribuindo-se a ai+1 o

valor original de aj.

Linguagem PASCAL 5

Arrays (“Variáveis compostas homogêneas”)

Arrays multidimensionais: identificador: array [i1..f1, i2..f2, ..., in..fn] of tipo;

ex:

var Matriz: array [1..4, 1..4] of integer;

14 15 1613

1 2 3 4

10 11 129

6 7 85

2 3 411

2

3

4

X:=Matriz[3,2];

{ X10 }

Linguagem PASCAL 6

Exercício

Implementar um programa em PASCAL que leia duas matrizes A4x4 e B4x4 e imprima a matriz resultado C = A*B.

Linguagem PASCAL 7

Registros (“Variáveis compostas heterogêneas”)

São conjuntos de dados logicamente relacionados, mas de tipos diferentes.

Nom e:

Endereço:

Bairro: Cidade:

CADASTRO PESSOAL

UF:

Data de nascim ento: / / Profissão:

Linguagem PASCAL 8

Registros

Var

cadastro: record

nome: string[40];

endereco: string[100];

bairro: string[40];

cidade: string[40];

uf: string[2];

dia_nasc, mes_nasc, ano_nasc: integer;

profissao: string[40];

end;

Identificador: record

componentes;

end;

Ex: Writeln(´Nome: ´, cadastro.nome);

Linguagem PASCAL 9

Registros dentro de RegistrosVar

cadastro: record

nome: string[40];

endereco: record

rua: string[100];

bairro: string[40];

cidade: string[40];

uf: string[2];

end;

dia_nasc, mes_nasc, ano_nasc: integer;

profissao: string[40];

end;

Ex: Writeln(´Estado: ´, cadastro.endereco.uf);

Linguagem PASCAL 10

Conjunto de Registros

Var

camisas: record

descricao: string[100];

preco: real;

estoque: real;

end;

mercadorias: array[1..100] of camisas;

identificador: array [i1..f1, i2..f2, ..., in..fn] of tipo;

Writeln(´Estoque da camisa cod.55: ´, mercadorias[55].camisas.estoque);

Linguagem PASCAL 11

Registros

Exr:

Implementar um programa em PASCAL que leia uma tabela de profissões composta de código, nome e descrição da profissão. A tabela comporta no máximo 100 profissões. Para terminar o cadastro digite -1 no campo código.

Então, você informa um código e o programa informa o nome e a descricao da profissão.

Linguagem PASCAL 12

Arquivos São estruturas de dados armazenadas fora da

memória principal do computador => memória secundária (HD, disquete, CD-ROM, etc.)

Principais vantagens:– quando a quantidade de informação é muito grande para ficar

em memória;– armazenar para uso futuro.

Tipos de arquivos:– Binários: usam códigos binários para gravar os caracteres – Texto: armazena o código ASCII (arquivo fica maior!)

Linguagem PASCAL 13

Arquivo binário Organização sequêncial em registros (compostos de campos), mas o acesso pode ser

direto através do número do registro.

NOME ENDEREÇO UF0

NOME ENDEREÇO UF1

NOME ENDEREÇO UF2

NOME ENDEREÇO UF3

NOME ENDEREÇO UFN

...

Linguagem PASCAL 14

Arquivo binário Declaração:

var identificador: file of tipo;

Ex1:

var Notas: FILE OF integer; Ex2:

type Pessoa = record

nome: string[40];

telefone: string[30];

endereco_completo: string[200];

end;

var Agenda: file of Pessoa;

Linguagem PASCAL 15

Arquivo binário Associação do identificador (nome interno) ao nome

do arquivo (nome externo):

assign (identificador, ´arquivo.ext´); Cada arquivo possui um ponteiro para a posição do

registro. Para abrir o arquivo e apontar para o início use:

reset (identificador); Para criar um arquivo novo (ou apagar um já

existente), abrir e apontar para o início use:

rewrite (identificador); E para fechar após o uso:

close (identificador);

Linguagem PASCAL 16

Arquivo binárioprogram AbreFecha;type Registro=record

Matricula: real;NomeAluno: string[25];NotaTotal: real;

end; Arquivo = file of Registro;var Notas: Arquivo;begin

assign (Notas, ´NOTAS.DAT´);rewrite (Notas);{

Comandos para gravar no arquivo}close (Notas);

reset (Notas);{

Comandos para ler do arquivo}close (Notas);

end.

Linguagem PASCAL 17

Arquivo binário Leitura de arquivo:

read (identificador, lista-de-registros); Escrita em arquivo:

write (identificador, lista-de-registros); Fim de arquivo

EOF (identificador);

EOF - “End of File” = “Fim de arquivo”

Retorna: true, se atingiu o fim do arquivo

false, cc.

Linguagem PASCAL 18

Arquivo binárioprogram Backup;type Pessoa = record Nome: string[15];

Idade: integer; end;

var A, B: file of Pessoa;T: Pessoa;

beginassign (A, ´dados.dat´);assign (B, ´backup.dat´);reset (A); rewrite (B);while not EOF (A) dobegin

read (A, T);write (B, T);

end;close (A);close (B);

end.

Linguagem PASCAL 19

Arquivo binário Acesso direto a um registro, sem a procura sequencial:

seek (identificador, numero-do-registro);

obs: o primeiro registro é o 0 (zero).

Função que retorna o número total de registros em um arquivo:

FileSize (identificador);

obs: seek (identificador, FileSize(identificador); posiciona o arquivo logo após o último registro gravado, corresponde ao comando append.

Linguagem PASCAL 20

Arquivo binário Exr1: Faça um programa que crie uma base de dados com

10 alunos. O arquivo em disco deve conter:– matrícula do aluno;– nome do aluno;– nota VEsp;– nota VC.

Exr2: Faça um programa que, dado a matrícula do aluno, retorne seu nome e média.

Exr3: Faça um programa que, dado a matrícula do aluno, altere suas notas.

Linguagem PASCAL 21

program exr1;type Registro = record matricula: integer;

nome: string[40];vesp: real;vc: real;

end;Arquivo = file of Registro;

const N=10;var Aluno: Registro;

Turma: Arquivo;i: integer;

beginassign (Turma, 'ALUNOS.DAT');rewrite (Turma);for i:=1 to N dobegin

write (´Entre com a matrícula: ´); readln(Aluno.matricula);write (´Entre com o nome: ´); readln(Aluno.nome);write (´Entre com a nota de VEsp: ´); readln(Aluno.vesp);write (´Entre com a nota de VC: ´); readln(Aluno.vc);

write (Turma, Aluno);end;close (Turma);

end.

Linguagem PASCAL 22

program exr2;type Registro = record matricula: integer;

nome: string[40];vesp: real;vc: real;

end;Arquivo = file of Registro;

var Aluno: Registro;Turma: Arquivo;N, matricula, i: integer;achei: boolean;

beginassign (Turma, 'ALUNOS.DAT');reset (Turma);write (´Digite a matrícula: ´); readln (matricula);

achei:=false; N:=0;while (not achei) and (not EOF(Turma)) dobegin

seek (Turma, N);read (Turma, Aluno);if (Aluno.matricula = matricula) then achei:=true;N:=N+1;

end;close (Turma);

if achei then writeln (´Aluno ´, Aluno.nome, ´ possui média igual a ´, (Aluno.vesp+Aluno.vc)/2:5:2)

else writeln (´Aluno não encontrado !´);end.

Linguagem PASCAL 23

program exr3;...var vesp, vc: real;begin

assign (Turma, 'ALUNOS.DAT');reset (Turma);write (´Digite a matrícula: ´); readln (matricula);write (´Digite a nota de VEsp e VC: ´); readln (vesp, vc);

achei:=false;N:=0;while (not achei) and (not EOF(Turma)) dobegin

seek (Turma, N);read (Turma, Aluno);if (Aluno.matricula = matricula) then begin

achei:=true;Aluno.vesp:= vesp;Aluno.vc:=vc;write (Turma, Aluno);

end;N:=N+1;

end;close (Turma);

if achei then writeln (´Notas alteradas com sucesso !´)else writeln (´Aluno não encontrado !´);

end.

Linguagem PASCAL 24

Arquivo texto A organização de um arquivo texto também é

sequêncial, mas não permite acesso direto.

Declaração:

var identificador: text;• ex: var documento: text;

Associação com o arquivo:

assign (identificador, ‘ARQ.TXT’);• ex: assign (documento, ‘docs.txt’);

Linguagem PASCAL 25

Arquivo texto

Abertura de um arquivo• Exclusivamente para leitura de um arquivo já

existente (erro de execução caso não exista):

reset (identificador);• Exclusivamente para escrita. Cria um novo. Se já

existe apaga e cria de novo:

rewrite (identificador);• Exclusivamente para escrita em um arquivo já

existente. Grava a partir do último registro (erro de execução caso não exista):

append (identificador);

Linguagem PASCAL 26

Arquivo texto Fechamento do arquivo

close (identificador); Comandos de leitura

read (identificador, variáveis);

readln (identificador, variáveis); Comandos de escrita

write (identificador, variáveis);

writeln (identificador, variáveis); Fim de arquivo

EOLn (identificador);

Linguagem PASCAL 27

Arquivo texto Em PASCAL, os dispositivos periféricos são tratados como arquivos texto:

CON: vídeo (console)

LPT1, LPT2, LPT3: impressoras

PRN: mesmo que LPT1

program VideoImpressora;

var dispositivo: text; k: char;

begin

write (´Vídeo ou impressora (V ou I) ? ´); readln(k);

if (k=´V´) then assign (dispositivo, ´CON´);

else assign (dispositivo, ´LPT1´);

rewrite (dispositivo);

writeln (´Olá !!!!´);

close (dispositivo);

end.

Linguagem PASCAL 28

Arquivo texto

Exr: Implemente um sistema criptográfico que leia um arquivo texto escrito por você e embaralhe as letras de acordo com uma senha N. Essa senha irá deslocar o alfabeto de N posições. Use A-Z, a-z e 0-9.

A B C D E ........................................................Z

A B C D E ..............................................W X Y Z

N = - 4

Linguagem PASCAL 29

Trabalho #5

Implementar um “Sistema de Agenda” Requisitos do sistema:

– o sistema deverá ter um menu de inserção, alteração e deleção de cadastros;

– deverá permitir também consulta aos dados por nome, cidade ou estado;

– os dados ficarão gravados em disco;– os cadastros deverão conter: nome,

endereço, bairro, cidade, estado, cep, telefone e celular.

top related