16 – Registro (Struct) em Linguagem C

Introdução

 

Nesta seção abordaremos o tema registro em linguagem C: definição/importância, como declarar,  registro vs ( normal, vetor, matriz, enum ), declaração, registro vs class, por último exemplo(código). 

 

Definição / Importância

 

Em linguagem C, o registro é um tipo de variável que possui  um endereço de referência, e conteúdo/dado.

 

Exemplo 1: 

                

                Endereco{cep, rua, cidade, estado}

                Pessoa{nome, idade, altura,  endereco}

 

O exemplo acima tem a abstrair registro dos dados de uma pessoa, para isso foi criado dois registros,  o primeiro “registro Endereco” e segundo “registro Pessoa”, o registro Endereco foi atribuído às variáveis: “cep, rua, cidade, estado”, dados necessários para compor o registro de pessoa, o registro Pessoa foi atribuído às variáveis “nome, idade, altura, endereco” 

 

O registro em linguagem C,  desempenha um papel importante para o programador e legibilidade do código, facilitando agrupamento de vários tipos de variáveis em uma, muito usado em estruturas de dados e árvores.

 

Como declarar

 

Para declarar uma variável do tipo registro em linguagem C, usa-se a diretiva struct nome_da_variável { seu conteúdo }nome_de_uso_da_variável;

 

Exemplo:

                         struct Pessoa{

                                    char nome[255];

                                    int idade;

                                   float altura;

                        }Pessoa;

 

Registro vs Normal, Vetor, Matriz, Enum

 

Todo tipo de variável possui endereço de referência e espaço de conteúdo na memória ram, pode-se afirmar que tipos de variáveis como: normal, enum, vetor e matriz guardam conteúdos/dados do tipo: char, int, float, double, em um registro o seu conteúdo é do tipo de variável como exemplo: variáveis normais, vetor, matriz, enum, isso tornando-a diferente de outros tipos de variáveis ou podemos dizer super variável.

 

Registro vs Class

 

Em linguagem C é a falta do paradigma Programação Orientada a Objetos causa uma desvantagem para o programador, por essa causa muitos programadores emigram para outras linguagens como: C++, Java, Python, PHP, Ruby, Go,  e outras linguagens modernas para modelar suas soluções.

Ainda assim podemos encontrar algumas semelhanças entre o paradigma e a linguagem, falando de Registro e Class. Uma Class possui atributos(variáveis) e métodos (funções) para modelar suas soluções em relação abstração do mundo real,

 

Exercício

Implemente um programa que leia o nome, a idade e o endereço de uma pessoa e armazene os dados em uma estrutura.

 

Exercícios

  1. Defina uma estrutura para um cadastro de um cliente de uma empresa sendo que o algoritmo deverá permitir a inserção dos dados e sua impressão.
  2. Defina uma estrutura para cadastro de carros em uma concessionária. O algoritmo deverá permitir o cadastro do veículo e mostrar na tela os dados inseridos.
  3. Defina uma estrutura para cadastro de roupas para uma loja, sendo que na ficha do produto existe um campo para armazenar o numero de peças em estoque. O programa deve imprimir na tela o cadastro.
  4. Utilizando uma estrutura, faça um programa que permita a entrada de nome, endereço e telefone de 5 pessoas e os imprima em ordem alfabetica.
  5. Desenvolva uma agenda, cujos registros estão representados na figura abaixo. Devem ser definas a estrutura de registro apropriada. A posição do registro é a posição no vetor.

Nome:__________________________________________ posição do registro:______

Endereco:______________________________________________________________

Telefone residencial:____________________ Celular:__________________________

Observações:___________________________________________________________

Estado Civil_____________________________________________________________