ficha de trabalho mod7_n1

3
  1 Linguagens de Programaçã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; begin Writeln ('Exemplo da Declaração de A pontadores'); readln; 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 conteúdo é: ’, p^); end; 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 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.

Upload: abilio-silva

Post on 17-Jul-2015

21 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ficha de Trabalho Mod7_N1

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

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

5/14/2018 Ficha de Trabalho Mod7_N1 - slidepdf.com

http://slidepdf.com/reader/full/ficha-de-trabalho-mod7n1 3/3