Estruturas de Dados Compostas.ppt (em C#)

EdmaroPeres1 0 views 16 slides Sep 30, 2025
Slide 1
Slide 1 of 16
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16

About This Presentation

Estruturas de Dados Compostas.ppt (em C#)


Slide Content

Escola Secundária de Peniche
Curso Profissional
Técnico de Gestão e Programação de Sistemas Informáticos
Módulo 5 – Estruturas de Dados Compostas
Estruturas de Dados Compostas (Structures)

Stack vs Heap
Stack 
ou
pilha, é uma forma otimizada para organizar dados
na memória, alocados em sequência e abandonados (sim,
normalmente não há desalocação) em sequência invertida à
da entrada LIFO – Last In, First Out.

Stack vs Heap
Heap 
ou
monte, é a organização de memória mais flexível
que permite o uso de qualquer área lógica disponível.

Classes
As classes definem tipos de referência que são armazenados
na Heap.
Se uma classe contiver poucos dados haverá um grande
overhead na gestão da memória.
Uma classe usa então duas áreas de memória para
armazenar dados (Stack e Heap).
Nestes casos, podemos utilizar uma estrutura, que utiliza
apenas uma área de memória.

Estruturas
As estruturas em C# são usadas para criar tipos de valor, e
por isso são armazenadas na Stack (pilha).
Sendo assim o overhead na gestão de memória pode ser
bastante reduzido.
Uma estrutura pode ter campos, métodos e até mesmo
construtores (com algumas limitações).

Tipos de Estruturas Comuns
Usamos estruturas na maior parte do tempo: os tipos
numéricos primitivos int, long e float são aliases para as
estruturas System.Int32, System.Int64 e System.Single.
Estas estruturas possuem campos e métodos que podem ser
chamados em variáveis desses tipos.
O exemplo mais clássico é o método ToString.
Outro exemplo são os campos MaxValue e MinValue de
Int32.

Declaração de uma Estrutura
struct Nome_Estrutura
{
corpo da estrutura (campos e métodos)
}

Exemplo de declaração/utilização
(Estrutura sem Construtor)
// Declaração
struct Horario
{
public int hora, minuto, segundo;
}
// Utilização
Horario agora;
agora.hora=22; agora.minuto=10; agora.segundo=54;
Console.WriteLine(“Hora: {0}:{1}”, agora.hora, agora.minuto);

Exercício de aplicação n.º 1
(Estrutura sem Construtor)
Declare e utilize a seguinte estrutura/campos:
Pessoa
Nome string;
Morada string;
Idade int;
Telemóvel string.

Exercício de aplicação n.º 2
(Estrutura sem Construtor)
Declare e utilize a seguinte estrutura/campos:
Carro
Marca string;
Modelo string;
Ano int;
Combustível string;
Cor string.

Exemplo de declaração
(Estrutura com Construtor)
struct Horario
{
private int hora, minuto, segundo;
public Horario (int h, int m, int s){
This.hora = h % 24;
This.minuto = m % 60;
This.segundo = s % 60;}
public int Hora (){
return This.hora;}
}

Exemplo de utilização
(Estrutura com construtor)
static void Main(string[] args)
{
Horario agora = new Horario(22, 10, 54);
Console.WriteLine(“Horario: {0}”, agora.Hora());
// Cópia
Horario copia = agora;
Console.WriteLine(“Horario: {0}”, copia.Hora());
}

Exercício de aplicação n.º 3
(Estrutura com Construtor)
Declare e utilize a seguinte estrutura/campos:
Pessoa
Nome string;
Morada string;
Idade int;
Telemóvel string.

Exercício de aplicação n.º 4
(Estrutura com Construtor)
Declare e utilize a seguinte estrutura/campos:
Carro
Marca string;
Modelo string;
Ano int;
Combustível string;
Cor string.

Exercício de aplicação n.º 5
(Estruturas Aninhadas – Nested Structures)
Declare e utilize as seguintes estruturas aninhadas:
Morada
Cidade string;
Distrito string.
Pessoa
Nome string;
Idade int;
Morada Morada.

Exercício de aplicação n.º 6
(Estruturas Aninhadas – Nested Structures)
Declare e utilize as seguintes estruturas aninhadas:
Autor
Nome string;
Idade int;
Nacionalidade string.
Livro
ISBN string;
Titulo string;
GéneroLiteráriostring;
Autor Autor.
Tags