LA – Ling C – Aula 10B – Registros e Estruturas

Registros / Estrutura

Registro ou Estrutura são tipos de dados definíveis pelo usuário.

Trata-se de uma coleção de variáveis referenciadas por um nome com o objetivo de fornecer informações relacionadas agrupadas.

As variáveis que compõem a estrutura são denominadas “Membros da Estrutura”, também chamadas de “Elementos” ou “Campos”.

Definições de Estruturas

Para definir uma estrutura, utilizamos o comando struct:

struct endereco
{
    char logradouro[50];
    char cidade[30];
    char estado[2];
    long int cep;
}

Porém, com isso nenhuma variável foi de fato declarada, apenas o novo tipo de dados foi definido. Para declarar uma variável do tipo endereço devemos utilizar:

struct endereco infoEndereco;

Sendo que, com isso, estamos criando uma variável chamada infoEndereco, que é do tipo endereco (estrutura definida).

Alocação de Memória – Estruturas

Quando uma variável de estrutura é declarada, o compilador C aloca automaticamente memória suficiente para acomodar todos os membros da estrutura. Tomando como base o exemplo anterior:

Logradouro – 50 bytes
Cidade – 30 bytes
Estado – 2 bytes
Cep – 4 bytes

Referenciando Elementos

Dado o exemplo anterior, para atribuir ou ler valores da variável infoEndereco:

infoEndereco.cep=13200100;
strcpy(infoEndereco.cidade,"Jundiai");
gets(infoEndereco.estado);
printf("A cidade e: %s", infoEndereco.cidade);

Vetores de Estruturas

O uso mais comum de estruturas, é através de vetores de estruturas.

O exemplo a seguir mostra como declaramos um vetor de 100 posições do tipo “endereco” criado:

struct endereco info_endereco[100];

Para acessar um dado do vetor de estrutura:

printf("%d",info_endereco[2].cep);

Exemplo de Estrutura


#include stdio.h

struct endereco //Criação da estrutura de Endereço
{
    char logradouro[50];
    char cidade[30];
    char estado[2];
    long int cep;
};

int main(int argc, char *argv[])
{
    struct endereco infoEndereco; //declara variável do tipo estrutura

    puts("Informe o logradouro: "); //Leitura dos dados
    gets(infoEndereco.logradouro);
    puts("Informe a cidade: ");
    gets(infoEndereco.cidade);
    puts("Informe o estado: ");
    gets(infoEndereco.estado);   
    puts("Informe o CEP: ");
    scanf("%d",&infoEndereco.cep);
   
    //Exibição da informação. 
    printf("\n\nEndereco: %s, %s - %s CEP: %d", infoEndereco.logradouro,
    infoEndereco.cidade, infoEndereco.estado, infoEndereco.cep);

    system("PAUSE>>NULL");	
    return 0;
}

Observação: Conteúdo do material desenvolvido pelo Professor César Tofanini, adaptado pelo Professor Rodrigo Saito

Exercício

Faça um programa em C, que trabalhe com estruturas e com funções. O programa deverá ter as seguintes estruturas:

struct data
{
  int dia;
  int mes;
  int ano;     
};

struct cliente
{
    int uso; //"1" se a posição estiver em uso e "0" se não estiver
    char nome[40];
    char endereco[40];
    char bairro[30];
    char cidade[20];
    char uf[2];
    char cep[8];
    float salario;
    struct data data_admissao;
};

Esse programa deverá conter:
– Menu principal, contendo opção para a chamada de funções;
– Função para incluir um registro;
– Função para excluir um registro (pela posição do vetor);
– Função para listar um registro (pela posição do vetor);
– Função para listar todos os registros cadastrados no vetor;

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s