</AULA 05>

Algoritmos e Lógica de Programação

Estruturas Heterogêneas

Portugol
Linguagem C
Python

Estruturas Heterogêneas: Conceito

Diferente dos Arrays (homogêneos), as Estruturas Heterogêneas permitem agrupar dados de tipos diferentes sob um mesmo identificador.

  • Para que servem? Para modelar objetos do mundo real (Ex: Um Aluno que possui Nome, Idade e Nota).
  • Registro ou Struct (C): São tipos de dados personalizados criados pelo programador.
  • Python: Não possui uma "struct" nativa como C. Utiliza-se Classes ou Dataclasses para este fim.

Struct vs. Classe

Struct: Focada apenas em Dados. É uma estrutura passiva da programação procedural.

Classe: Focada em Dados + Comportamento (Métodos/Funções). É a base da Programação Orientada a Objetos (POO).

Estrutura em Portugol

Em Portugol, utilizamos a palavra-chave Registro dentro da seção de tipos ou declaração direta.

Algoritmo exemplo_registro Tipo T_ALUNO = registro nome: caractere idade: inteiro nota: real fim_registro Var aluno1: T_ALUNO Início aluno1.nome <- "Thiago" aluno1.idade <- 25 Escreva(aluno1.nome) Fim

Estruturas em C: Duas Formas de Declarar

Forma 1: Declaração Padrão

struct Aluno { char nome[50]; int idade; }; // Para declarar uma variável: struct Aluno a1;

Forma 2: Usando typedef

typedef struct { char nome[50]; int idade; } Aluno; // Para declarar uma variável: Aluno a1;

Qual a diferença prática?

A única diferença é a sintaxe de uso. Com typedef, você define um "apelido" para a estrutura, eliminando a necessidade de escrever a palavra struct toda vez que for criar uma nova variável do tipo. A Forma 2 é muito mais comum em projetos reais por deixar o código mais limpo.

Estruturas em Python

Em Python, simulamos o comportamento de uma struct usando classes simples ou a moderna dataclass.

class Aluno: def __init__(self, nome, idade): self.nome = nome self.idade = idade # Criando a estrutura aluno1 = Aluno("Ana", 20) print(aluno1.nome)

Dica alternativa

Para criar "containers de dados" de forma limpa, use o decorador @dataclass:

from dataclasses import dataclass @dataclass class Aluno: nome: str idade: int aluno = Aluno("Ana", 20)

Referências

Entendendo Estrutura de Dados
Uma abordagem prática para aprender como as estruturas funcionam "por baixo do capô", otimizando seu código.
Ver na Amazon
Algoritmos e Estruturas em C
O guia definitivo para dominar C. Explicações claras sobre ponteiros, alocação de memória e estruturas complexas.
Ver na Amazon
Estruturas de Dados e Seus Algoritmos
Clássico brasileiro. Teoria profunda e rigorosa, essencial para entender a matemática e lógica por trás dos algoritmos.
Ver na Amazon
Estruturas de Dados com Python
Aprenda a implementar estruturas clássicas usando a sintaxe elegante do Python. Ótimo para entrevistas técnicas.
Ver na Amazon