Você está na página 1de 15

Registros & Ponteiros

Prof. Leandro Magno


www.leandro.pro.br

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
Registros
Registro " um agregado #eterog$neo.
%gregado por guardar &'rios (ampos.
)eterog$neo por*ue estes (ampos de
podem (onter tipos de dados diferentes.
+ampo " uma &ari'&el *ue estar' presente
em todo registro desta estrutura.

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
m Registro
+,digo -./-
Nome Fulano de 0al
!ndereo %&enida Paran'1 222.
+onta /34-/
%g$n(ia 5-/-
6aldo -341/3
0elefone --/78/8.
%ti&o 6IM

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
6inta9e:
TIPO
<NOME_REGISTRO> = REGISTRO
<CAMPO>:<TIPO>;
<CAMPO>:<TIPO>;
<CAMPO>:<TIPO>;
.
.
.
FIM;

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
TIPO {exemplo}
TP_REGISTRO = REGISTRO
CODIGO:INTEIRO
NOME:LITERAL;
ENDEREO:LITERAL;
TELEFONE:INTEIRO;
CONTA:INTEIRO;
AGENCIA:INTEIRO;
SALDO:REAL;
ATI!O:L"GICO;
FIM;

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
!AR
R:TP_REGISTRO;
INICIO
LEIA#R.NOME$;
LEIA#R.ENDERECO$;
LEIA#R.TELEFONE$;
LEIA#R.SALDO$;
.
.
.
FIM.

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
TIPO
!ETOR:ARRAN%O &'..'(()
DE TP_REGISTRO;
!ARIA!EIS !:!ETOR;I:INTEIRO;
INICIO
PARA I:=' AT* '(( FAA
INICIO
LEIA#!&I).NOME$;
LEIA#!&I).SALDO$;
FIM;
FIM.

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
Ponteiros
Ponteiro " uma &ari'&el (u;o &alor " um
endereo de mem,ria.
!ARIA!EIS
PONTEIRO:+TIPO;
E,:
!ARIA!EIS
P:+INTEIRO
-. /ADF:'((0
P
1( /ADF:'((2
'2 /ADF:'((3

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
%lo(ao Din<mi(a de Mem,ria

%s &ari'&eis de(laradas de um
programa t$m o seu endereo fi9ado
durante a (ompilao=

%s &ari'&eis de(laradas de um
subprograma t$m seu endereo fi9ado
durante sua ati&ao=

>s ponteiros permitem1 durante a


e9e(uo do programa1 (riar e desati&ar
outras &ari'&eis1 denominadas
din<mi(as1 *ue no possuem nomes.

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
%lo(ao Din<mi(a de Mem,ria 7 >pera?es
NO!O#P$;
%lo(a uma 'rea de mem,ria e
guarda seu endereo em P=
REMO!E#P$;
Libera a 'rea de mem,ria (u;o
endereo est' em P=
P
> endereo=
P+
> &alor arma@enado na posio
de mem,ria de P
NIL Ponteiro *ue no aponta
para nada ANL> padroB
4A
!ndereo de uma &ari'&el=

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
%lo(ao Din<mi(a de Mem,ria
!9emplo:
Faa um programa que leia um
ponteiro do tipo numrico e mostre o
seu valor

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
Resoluo:
TIPO
PONT_INT = +INTEIRO;
!ARIA!EIS
P:PONT_INT;
5EGIN
NO!O#P$;
P+:='(; {READLN#P+$;}
ESCRE!A#6O 78lo9 :;<P+$;
REMO!A#P$;
FIM;

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
Listas !n(adeadas Din<mi(as
6upon#a *ue agora *ueremos (onstruir
um registro din<mi(o1 e en(ade'7los
numa lista1 desta forma:
Da Pro9 Do Pro9 6 Pro9

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
TIPO
PONTEIRO = +TP_REG;
TP_REG = REGISTRO
DADO:INTEIRO;
PRO,:PONTEIRO;
FIM;
!ARIA!EIS
L<N:PONTEIRO;
DADO:INTEIRO;

Registros & Ponteiros Prof. Leandro Magno Fundamentos de Programao DIN !M
INICIO
REPITA
LEIA#DADO$;
SE DADO <> ( ENT=O
INICIO
NO!O#N$;
N+.PRO,:=L;
N+.DADO:=DADO;
L:=N;
FIM;
AT* >?E DADO=(;
FIM;

Você também pode gostar