Você está na página 1de 8

Registros e Tipo

Prof. M.Sc. Fabio Alexandre Caravieri


Modesto

Introdução

{ Permite a representação de dados


heterogêneas
{ Representação de dados do mundo
real
{ Tipos de dados diferentes,
logicamente alocados
{ Um exemplo clássico do uso de
Registros é uma agenda telefônica

1
Nome xxxxxxxxxxxxxx
Endereço xxxxxxxxxxxxxxx
Telefone xxxxxxxxxx
E-mail Xxxxxxxxx
dataNasc

Sintaxe

<nome do registro>: Registro


inicio
<campo1>: <tipo>
<campo2>: <tipo>
....
<campoN>: <tipo>
Fim

2
Registro do exemplo anterior

agenda:registro;
nome: cadeia;
endereco:cadeia;
telefone:cadeia;
datanascimento: cadeia;
fim;
5

{ Para se acessar cada campo do


registro usa-se o operador “.”
{ Exemplo
z agenda.nome:='joao';

3
Registro do exemplo anterior
programa registro;
variaveis
agenda:registro;
nome: cadeia;
endereco:cadeia;
telefone:cadeia;
datanascimento: cadeia;
fim;
INICIO
agenda.nome:='joao';
agenda.endereco:='rua xv novembro, 22';
agenda.telefone:='687-5447';
agenda.datanascimento:='22/22/22';

escreva(agenda.nome);
escreva(agenda.endereco);
escreva(agenda.telefone);
escreva(agenda.datanascimento);
FIM
7

Tipo

{ Uma outra situação do uso de


Registros é criação de novos tipos,
o que pode ser chamados tipos
abstratos.
{ Assim temos
z Tipos primitivos
{ Naturais das linguagens de programação
z Tipos abstratos
{ Criados pelos usuários

4
{ Para se criar um tipo abstrato usa-
se a clausula TIPO (quem em cada
linguagem tem um nome especifico)
{ Uso de tipos é associado aos
registros.

Tipo
Agenda=registro;
nome: cadeia;
endereco:cadeia; Novo
Tipo
telefone:cadeia;
datanascimento: cadeia;
fim;

Var
minha_agenda: agenda;

Nome_variavel Tipo da variável


10

5
{ Um exemplo claro do uso do tipo é
por exemplo é a geometria.
{ Na geometria os pontos, como de
um gráfico, podem ser
representados por coordenadas X e
Y.
{ Como representar isso em um
programa?

11

Para um ponto
Programa pontos1;
Tipo
Ponto_tp = registro
x: real;
y: real;
fim;
Var
ponto: ponto_tp;
Inicio
ponto.x:=2.5;
ponto.y:=4.0;
Escreva(“as coordenadas do ponto=“, ponto.x,
ponto.y);
Fim.

12

6
Mais de um ponto
Programa pontos2;
Tipo
Ponto_tp = registro
x: real;
y: real;
fim;
Var
ponto1: ponto_tp;
ponto2: ponto_tp;
Inicio
ponto1.x:=2.5;
ponto1.y:=4.0;
ponto2.x:=3.0;
ponto2.y:=7.0;

Escreva(“as coordenadas do ponto1=“, ponto1.x,


ponto1.y);
Escreva(“as coordenadas do ponto2=“, ponto2.x,
ponto2.y);

Fim. 13

Usando Registro e Vetor

{ Toda vez que for usado vetor


tipo/registro, como pode ser visto
no exemplo (caso anterior)
z leia(ponto[indice].x);

{ O índice do vetor fica sempre a


esquerda do operador “.”
z Entre a variável e o “.”

14

7
Muito Mais pontos de Maneira
inteligente
Programa pontos3;
Tipo
Ponto_tp = registro
x: real;
y: real;
fim;
Var
ponto: vetor[1..100] de ponto_tp;
Inicio
para(indice:=1 até 100)
inicio
leia(ponto[indice].x);
leia(ponto[indice].y);
fim;
para(indice:=1 até 100)
Escreva(“as coordenadas do ponto=“, ponto[i].x,”,”
ponto[i].y);
Fim.
15

Você também pode gostar