Sei sulla pagina 1di 7

ESCOLA SECUNDÁRIA DE AMARES

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO

PROGRAMAÇÃO E SISTEMAS DE
INFORMAÇÃO

MÓDULO 6 - ESTRUTURAS DE
DADOS DINÂMICAS

PROF. CARLA LOPES

Curso Profissional

Técnico de Gestão e Programação de Sistemas Informáticos

i
Índice

FICHA DE TRABALHO N.º 1 ................................................................................. 1

APONTADORES .......................................................................................................... 1

FICHA DE TRABALHO N.º 2 ................................................................................. 2

PILHAS .................................................................................................................. 2

FICHA DE TRABALHO N.º 3 ................................................................................. 3

APONTADORES .......................................................................................................... 3

FICHA DE TRABALHO N.º 4 ................................................................................. 5

FILAS .................................................................................................................... 5

i
Programação e Sistemas de Informação Módulo 6 – Estruturas de Dados Dinâmicas

FICHA DE TRABALHO N.º 1

APONTADORES

1. Qual o valor de um apontador que foi apenas declarado?

2. O que acontece se utilizarmos um apontador que foi apenas declarado?

3. Se tivermos dois apontadores a referenciarem a mesma posição de memória, o


que acontece se libertarmos um deles?

4. O que significa a posição de memória chamada NIL?

5. Analisa o seguinte programa e explica o que sucede em termos de alocação de


memória ao ser executada cada uma das instruções. Faz o esquema da alocação
de memória.

Var ptr : ^integer;


Begin
new(ptr);
ptr^ := 2;
ptr^ := ptr^*3;
writeln(ptr^);
dispose(ptr);
End.

6. Utilizando apenas uma variável apontador, escreve um programa que escreva


no ecrã o nome pedido ao utilizador.

Prof. Carla Lopes 1


Programação e Sistemas de Informação Módulo 6 – Estruturas de Dados Dinâmicas

FICHA DE TRABALHO N.º 2

PILHAS

1. Sabendo que a pilha P inicialmente está vazia, esquematiza o seu conteúdo


após a execução de cada uma das seguintes instruções.

Push(P, a); Push(P, a);


Push(P ,b); Push(P ,b);
Push(P, c); Push(P, c);
Pop(P); Push(P, Top(P));
Pop(P); Push(P, Pop(P));
Push(P, d); Pop(P);
Push(P, e); Push(P,e);
Top(P); Pop(P);
Pop(P);

2. Utilizando uma pilha, escreve um programa que peça uma frase ao utilizador e a
escreva de trás para a frente, com a sequência de letras invertida.

3. Escreve um programa que verifique se uma determinada palavra é capicua, ou


seja, que seja igual lida da frente para trás e de trás para a frente. Exemplos:
Ana, sugus, radar, reviver, salas, etc.

4. Considerando as figuras a seguir, apresenta a sequência de instruções Push e


Pop que devem ser realizadas sobre as pilhas X, Y e Z para que, partindo do
estado inicial, se obtenha o estado final.

Prof. Carla Lopes 2


Programação e Sistemas de Informação Módulo 6 – Estruturas de Dados Dinâmicas

FICHA DE TRABALHO N.º 3

APONTADORES

1. Indica duas formas de declarar apontadores. Type PontInt = ^integer;


Var pi : PontInt;
Begin
2. Explica o que significam as linhas de código New(pi);
apresentadas no quadro ao lado. pi^ := 19;
End.

3. Tendo em atenção o código abaixo:


3.1. Indica quais são as variáveis apontador e as
Var PInt1, PInt2 : PontInt;
variáveis objecto. …
New(PInt1);
3.2. Qual será o resultado (True/False) de
New(PInt2);
PInt1^ = PInt2^? PInt1^ := 6;
PInt2^ := 6;
3.3. Qual será o resultado (True/False) de PInt1 =
PInt2?
3.4. Se fizermos PInt2 := PInt1 e depois PInt1 = PInt2 qual será o resultado
(True/False)?

4. No programa apresentado a seguir indica as mensagens que são escritas no


ecrã e elabora o esquema representativo da alocação da memória para cada
instrução.

Program Ponteiros;
Type PontChar = ^char;
Var PChar1, PChar2 : PontChar;
Begin
New(PChar1);
PChar1^:= ‘s’;
Writeln(‘PChar1 aponta para: ‘,PChar1^);
New(PChar2);
PChar2^:= ‘p’;
Writeln(‘PChar2 aponta para: ‘,PChar2^);
PChar2^:= PChar1^;
Writeln(‘PChar1 aponta para: ‘,PChar1^,’ e PChar2 aponta para: ‘,PChar2^);
PChar1^:= ‘m’;
Writeln(‘PChar1 aponta para: ‘,PChar1^,’ e PChar2 aponta para: ‘,PChar2^);
PChar2:= PChar1;
Writeln(‘PChar1 aponta para: ‘,PChar1^,’ PChar2 aponta para: ‘,PChar2^);
PChar1^:= ‘j’;
Writeln(‘PChar1 aponta para: ‘,PChar1^,’ PChar2 aponta para: ‘,PChar2^);
End.

Prof. Carla Lopes 3


Programação e Sistemas de Informação Módulo 6 – Estruturas de Dados Dinâmicas

5. Cria um programa em Pascal chamado Ponteiros1 com as seguintes instruções:


5.1. Declara uma variável PTR que aponta para o tipo de dados inteiro.
5.2. Cria a variável apontador PTR e escreve o seu valor no ecrã.
5.3. Atribui o valor 2 ao apontador PTR e escreve o seu valor no ecrã.
5.4. Modifica o valor de PTR de forma a que fique com o triplo do seu valor e
escreve o seu valor no ecrã.
5.5. Destrói a variável apontador PTR.

6. Tendo em atenção o seguinte código, indica as mensagens que são escritas no


ecrã e elabora o esquema representativo da alocação da memória para cada
instrução.

Program ponteiros2;
Var a1, a2 : ^integer;
Begin
new(a1);
a2:=a1;
a1^:=4;
writeln('a1=>',a1^);
writeln('a2=>',a2^);
a2^:= a2^+3;
writeln('a1=>',a1^);
writeln('a2=>',a2^);
End.

Prof. Carla Lopes 4


Programação e Sistemas de Informação Módulo 6 – Estruturas de Dados Dinâmicas

FICHA DE TRABALHO N.º 4

FILAS

1. Sabendo que a fila F inicialmente está vazia, esquematiza o seu conteúdo após
a execução de cada uma das seguintes instruções.

Enqueue(F,a);
Enqueue(F,b);
Enqueue(F,c);
Enqueue(F,d);
Dequeue(F);
Dequeue(F);
Enqueue(F,e);
Enqueue(F,f);
Enqueue(F, Dequeue(F));
Dequeue(F);
Dequeue(F);
Dequeue(F);

2. Indica quais as operações efectuadas sobre uma fila F, de modo a implementar


o comportamento ilustrado na figura seguinte.

A B A B C

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

C C D E

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

3. Declara uma estrutura de dados que implemente uma fila para guardar o nome
e a idade de um número indeterminado de pessoas.

Prof. Carla Lopes 5

Potrebbero piacerti anche