ficha de trabalho mod7_n1
TRANSCRIPT
![Page 1: Ficha de Trabalho Mod7_N1](https://reader030.vdocuments.com.br/reader030/viewer/2022020808/5571ffac49795991699dd22b/html5/thumbnails/1.jpg)
5/14/2018 Ficha de Trabalho Mod7_N1 - slidepdf.com
http://slidepdf.com/reader/full/ficha-de-trabalho-mod7n1 1/3
1
Linguagens deProgramação
MÓDULO 7 - APONTADORES FICHA DE TRABALHO N.º 1
Objectivos: Compreender o conceito de apontador; Distinguir entre variável apontadora e variável referenciada; Distinguir entre variáveis estáticas e dinâmicas; Declarar apontadores; Utilizar as instruções básicas com apontadores; Utilizar as funções do pascal para manipulação 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;
beginWriteln ('Exemplo da Declaração de Apontadores');readln;
end.
Program apontador2;Uses wincrt;Var p: ^integer;
x: integer;begin
x:=5;p:=@x;
If p= nil thenWriteln(‘Apontador para nada’)
ElseBegin
Writeln(‘Apontador para x’); writeln(‘O conteúdo é: ’, p^);
end;End.
Program Apontador3;Uses wincrt;Type
nome = string[30];ponteiro = ̂ nome;
varp1, p2 : ponteiro;
beginnew(p1);new(p2);readln(p1^);p2^ := 'José Maria';
p1^:= p1^ + ' ' + p2^;writeln(p1^);
end.
Program Apontador4;Uses Wincrt;Type intptr=^integer;
Realptr=^real;Var ip: intptr;
Rp: realptr;Begin
Randomize;Write (‘Memória Disponível= ‘); 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 (‘Após criar as variáveis: ‘); Write (‘Memória Disponível= ‘); Writeln (memavail:10, ‘Bytes’); Dispose(ip);Dispose(rp);Writeln (‘Após destruir as variáveis: ‘); Write (‘Memória Disponível= ‘); Writeln (memavail:10, ‘Bytes’); Readln;
End.
![Page 2: Ficha de Trabalho Mod7_N1](https://reader030.vdocuments.com.br/reader030/viewer/2022020808/5571ffac49795991699dd22b/html5/thumbnails/2.jpg)
5/14/2018 Ficha de Trabalho Mod7_N1 - slidepdf.com
http://slidepdf.com/reader/full/ficha-de-trabalho-mod7n1 2/3
2
2. Elabore um programa que apresente as três soluções possíveis do exemplo do diapositivo 18. O utilizador deve ter aoportunidade de escolher a situação (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 variáveis inteiras (x, y). Depoiso deverá efectuar as seguintes operações:
a) Leitura de valores para as duas variáveis criadas (x, y);
b) Leitura de um valor para um dos apontadores (p1);
c) Atribuição do endereço de memória, das duas variáveis (x, y), aos outros apontadores (p2, p3);
d) Comparar os três apontadores (p1, p2, p3) e, indicar qual é o apontador que aponta para o maior valor;
e) Somar os conteúdos dos apontadores p2 e p3 e colocar o resultado no conteúdo do apontador p1;
f) Multiplicar o conteúdo do apontador p2 por 10 e colocar o resultado no mesmo apontador (p2);
g) Imprimir no ecrã os conteúdos dos três apontadores;
h) Inicializar os apontadores p1 e p2;
i) Libertar a área de memória 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.
![Page 3: Ficha de Trabalho Mod7_N1](https://reader030.vdocuments.com.br/reader030/viewer/2022020808/5571ffac49795991699dd22b/html5/thumbnails/3.jpg)
5/14/2018 Ficha de Trabalho Mod7_N1 - slidepdf.com
http://slidepdf.com/reader/full/ficha-de-trabalho-mod7n1 3/3