Introdução Ciência da Computação - Registros

Introdução Ciência da Computação - Registros

(Parte 1 de 4)

9

Introdução à Ciência da Computação - Notas de Aula 7

Capítulo 7 – Registros

0. Sumário

1. Introdução

2. Possibilidades de uso de registros

3. Exemplos de aplicações

1. Introdução

Record é o nome dado na linguagem Pascal para as variáveis compostas heterogêneas, que são variáveis compostas por vários componentes de tipos diferentes entre si. Cada um desses componentes recebe um nome através do qual se pode ter acesso a ele.

Por exemplo:

Type

ficha = record

nome : string [10];

matric : integer;

sexo : char;

disciplina : string [ 3 ];

end;

Var

aluno : ficha;

O formato da ficha definida acima seria:

A variável aluno tem esse padrão, e o acesso a seus campos se faz do seguinte modo:

aluno. nome := ‘fulano’;

aluno. matric := 010123;

aluno. sexo := ‘M’;

aluno. disciplina := ‘icc’;

A variável aluno ficaria então com os seguintes dados:

2. Possibilidades de uso de registros

O tipo record pode dar muita versatilidade à maneira de o programa armazenar os dados na memória.

Seguem alguns exemplos

Exemplo 1: Um record pode ser utilizado como campo de outro record.

Type

data = record

dia : 1..31;

mes : (jan, fev, mar, abr, mai, jun, jul, ago, set, out, nov, dez);

ano : integer;

end;

cadastro = record

nome : string [ 20 ];

nasc : data;

sexo : char;

end;

Var

pessoa : cadastro;

Neste caso, o campo “nasc” do record cadastro é de tipo dada, que por sua vez é outro record. Exemplos de comandos válidos:

.....

pessoa. nome := ‘beltrano’;

pessoa. nasc. mes := jan;

read (pessoa. nasc. ano);

write (pessoa. nasc. dia);

.....

Exemplo 2: Um array pode ser utilizado como campo de um record.

Type

ficha = record

nome : string [ 20 ];

parcela : array [ 1..5 ] of real;

quitacao : boolean;

end;

Var

cliente : ficha;

O campo “parcela” é um array de 5 reais. Exemplos de comandos válidos:

......

cliente.nome := ‘sicrano’;

cliente.parcela [ 3 ] := 34,50;

for i := 1 to 5 do write ( cliente.parcela [ i ]);

if cliente.quitacao

then

(Parte 1 de 4)

Comentários