Você está na página 1de 2

Linguagens de Programao

MDULO 7 - APONTADORES

FICHA DE TRABALHO N. 1

Objectivos: Compreender o conceito de apontador; Distinguir entre varivel apontadora e varivel referenciada; Distinguir entre variveis estticas e dinmicas; Declarar apontadores; Utilizar as instrues bsicas com apontadores; Utilizar as funes do pascal para manipulao de apontadores. 1. Transcreva os seguintes programas para o Pascal e explique o seu objectivo. Program apontador1; uses wincrt; type ap_real = ^real; ap_str = ^string; var ap1: ap_real; ap2: ap_str; ap3, ap4: ^integer; ap5: ^byte; p: pointer; x: real; begin Writeln ('Exemplo da Declarao de Apontadores'); readln; end. Program Apontador3; Uses wincrt; Type nome = string[30]; ponteiro = ^nome; var p1, p2 : ponteiro; begin new(p1); new(p2); readln(p1^); p2^ := 'Jos Maria'; p1^:= p1^ + ' ' + p2^; writeln(p1^); end. Program apontador2; Uses wincrt; Var p: ^integer; x: integer; begin x:=5; p:=@x; If p= nil then Writeln(Apontador para nada) Else Begin Writeln(Apontador para x); writeln(O contedo : , p^); end; End.
Program Apontador4; Uses Wincrt; Type intptr=^integer; Realptr=^real; Var ip: intptr; Rp: realptr; Begin Randomize; Write (Memria Disponvel= ); Writeln (memavail:10, Bytes); New(rp); New(ip); Repeat Rp^:=random; Ip^:= random(500); Write(RP^= ,rp^:10:5); Writeln( IP^= , ip^:5); Until (rp^<0.5) and (ip^<250); Writeln (Aps criar as variveis: ); Write (Memria Disponvel= ); Writeln (memavail:10, Bytes); Dispose(ip); Dispose(rp); Writeln (Aps destruir as variveis: ); Write (Memria Disponvel= ); Writeln (memavail:10, Bytes); Readln; End.

2. Elabore um programa que apresente as trs solues possveis do exemplo do diapositivo 18. O utilizador deve ter a oportunidade de escolher a situao (A, B ou C) e ver o resultado (valores apontados) dos dois apontadores.

3. Elabore um programa em pascal que crie 3 apontadores (p1, p2, p3) para inteiros e 2 variveis inteiras (x, y). Depois o dever efectuar as seguintes operaes: a) Leitura de valores para as duas variveis criadas (x, y); b) Leitura de um valor para um dos apontadores (p1); c) Atribuio do endereo de memria, das duas variveis (x, y), aos outros apontadores (p2, p3); d) Comparar os trs apontadores (p1, p2, p3) e, indicar qual o apontador que aponta para o maior valor; e) Somar os contedos dos apontadores p2 e p3 e colocar o resultado no contedo do apontador p1; f) Multiplicar o contedo do apontador p2 por 10 e colocar o resultado no mesmo apontador (p2); g) Imprimir no ecr os contedos dos trs apontadores; h) Inicializar os apontadores p1 e p2; i) Libertar a rea de memria reservadapelos apontadores (p1, p2, e p3).

4. Indique o que est errado no programa: Program Erroptr; Uses wincrt; Type intptr = ^integer; Var pt: intptr; Begin intptr^:=2; Writeln (O valor :, intptr); End.

Você também pode gostar