·
Ciência da Computação ·
Introdução à Lógica e Programação
Send your question to AI and receive an answer instantly
Recommended for you
69
Um Estudo Comparativo sobre Uso de Modelos de Dados para Notas Fiscais Eletrônicas
Introdução à Lógica e Programação
UFPB
24
Introdução aos Ponteiros em Linguagem C
Introdução à Lógica e Programação
UFPB
27
Introdução aos Arquivos em Linguagem C
Introdução à Lógica e Programação
UFPB
19
Introdução à Programação em C: Strings e Vetores de Caracteres
Introdução à Lógica e Programação
UFPB
13
Citus Distributed PostgreSQL for Data-Intensive Applications
Introdução à Lógica e Programação
UFPB
10
Introdução às Strings em C++
Introdução à Lógica e Programação
UFAL
7
Implementação de Busca Binária e Funções de Ordenação em C++
Introdução à Lógica e Programação
UFAL
1
Verificação de Sorteio para Visto de Estágio
Introdução à Lógica e Programação
UFAL
18
Conceitos sobre Vetores em Programação
Introdução à Lógica e Programação
UFAL
35
Introdução a Ponteiros e Arrays em C
Introdução à Lógica e Programação
UFAL
Preview text
Linguagem C Estruturas Uniões e Enumerações Introdução a Programação 20221 Profa Giorgia Mattos giorgiamattosgmailcom Linguagem C Structs Estruturas são variáveis estruturadas similares aos vetores porém permitem que seus elementos sejam de tipos diferentes Por isso são conhecidas como tipos de dados heterogêneos Uma estrutura serve para conter dados de tipos diferentes relacionados entre si por exemplo nome da pessoa data de nascimento RG CPF Cada campomembro da estrutura possui um nome e um tipo relacionado ao tipo de dado que o campo irá armazenar A definição de uma estrutura em C pode ser feita usando 1 declaração de rótulos e 2 declaração de tipos Linguagem C Structs Definição de estruturas usando declaração de rótulos struct rótulodaestrutura tipo1 campo1 tipo2 campo2 tipoN campoN listadevariáveis1 struct rótulodaestrutura listadevariáveis2 struct rótulodaestrutura listadevariáveisN Linguagem C Structs Exemplo variável chamada registroPessoa que contém o nome e a data de nascimento de uma pessoa struct registro char nome50 short dia mes ano struct registro registroPessoa struct char nome50 short dia mes ano registroPessoa Como a estrutura não tem rótulo outras variáveis teriam que ser definidas no mesmo local onde a variável registroPessoa é definida Linguagem C Structs Definição de estruturas usando definição de tipos O uso de typedef constitui a melhor forma de definição de estruturas typedef struct rótulodaestrutura tipo1 campo1 tipo2 campo2 tipoN campoN nomedotipo nomedotipo listadenomesdevariáveis Linguagem C Structs Exemplo definição do tipo tRegistro e a declaração da variável registroPessoa typedef struct char nome50 short dia mes ano tRegistro tRegistro registroPessoa Linguagem C Structs Inicialização de estruturas Uma estrutura pode ser inicializada de modo similar a um vetor O número de valores de inicialização não deve exceder o número de campos e deve ser compatível com o respectivo campo typedef struct char nome50 short dia mes ano tRegistro tRegistro registroPessoa Fulano de Tal 19 12 1963 Linguagem C Structs Atribuição entre estruturas Uma estrutura pode ser atribuída à outra desde que ambas sejam do mesmo tipo struct linha int a b x y y x a estrutura x é atribuída à y Acesso aos Campos da estrutura Utilizamos o operador ponto entre o nome da variável que representa a estrutura e o nome do campo que se deseja acessar typedef struct char nome50 short dia mes ano tRegistro tRegistro registroPessoa Fulano de Tal 19 12 1963 Linguagem C Structs Campo Acesso com registroPessoa nome registroPessoanome dia registroPessoadia mes registroPessoames ano registroPessoaano registroPessoadia 6 registroPessoames 6 registroPessoaano 1966 Estruturas aninhadas ou compostas Um campo de uma estrutura pode ser de qualquer tipo inclusive de um tipo estrutura typedef struct char nome50 short dia mes ano tRegistro Pode ser reescrita como Linguagem C Structs typedef struct short dia mes ano tData typedef struct char nome50 tData data tRegistro incialização da estrutura tRegistro registroPessoa Fulano de Tal 19121966 acesso aos campos da estrutura registroPessoadatadia 6 Linguagem C Structs Vetores de Estruturas typedef struct char nome50 short dia mes ano tRegistro Podese declarar o vetor VPessoa como tRegistro Vpessoa20 Linguagem C Structs Exemplo Calcular a média dos 60 alunos da turma de Introdução a Programação Linguagem C Structs include stdioh define MAX 60 typedef struct int num char nome30 float a b c Taluno int main Taluno alunoMAX int i float m printf Digite os dados do aluno for i0iMAXi alunoinum i1 printf Aluno d alunoinum printf Nome getsalunoinome printf Nota 1 scanff alunoin1 printf Nota 2 scanff alunoin2 printf Nota 3 scanff alunoin3 m alunoiaalunoibalunoic3 printf MEDIA 2f m return 0 São tipos de dados similares às estruturas com a diferença de que os campos de uma união compartilham a mesma área de memória Todos os campos da união começam no mesmo endereço de memória São utilizadas com o objetivo de economizar memória quando os campos da união não coexistem Obedecem às regras sintáticas semelhantes às estruturas Para declarar uma união podese usar um dos formatos apresentados nas estruturas trocando a palavra struct por union Linguagem C Uniões Por exemplo typedef union char campo1 double campo2 int campo3 tUniao tUniao minhaU O compilador sempre aloca espaço suficiente para conter o membro de maior tamanho da união e todos iniciam no mesmo endereço Linguagem C Uniões Os campos de uma união são mutuamente exclusivos apenas um deles é considerado válido num dado instante por exemplo minhaUcampo1 a minhaUcampo2 314 Ao final da segunda atribuição o valor a será perdido e o acesso ao campo1 ou campo3 produzirá um resultado sem sentido A união pode ser inicializada através da atribuição de um valor inicial ao primeiro campo da variável tUniao minhaU a Linguagem C Uniões São úteis quando se deseja utilizar um conjunto determinado de valores constantes com alguma afinidade entre si que podem estar associados a uma variável A declaração de variável de um tipo enumeração se dá com a palavra enum seguida de uma lista de indicadores entre chaves e pelo nome da variável A palavra enum pode opcionalmente ser seguida por um identificador rótulo e neste caso não há a necessidade da variável1 variávelN Linguagem C Enumerações enum rótulo listadenomesdeconstantes variável1 variávelN Por exemplo enum cores AZUL AMARELO BRANCO PRETO variável do tipo enumeração representado pelo rótulo cores enum cores cor1 enum cores cor2 Podemos também definir um tipo enumeração usando o typedef typedef enum AZUL AMARELO BRANCO PRETO tCores tCores cor1 cor2 Linguagem C Enumerações Exemplo Linguagem C Enumerações typedef enum SOLTEIRO CASADO DIVORCIADO tEstadoCivil typedef struct char rua30 char numero5 char cidade20 char uf3 char cep 10 tEndereco typedef struct short dia mes ano tData typedef struct char nome30 tEndereco endereco tEstadoCivil estadoCivil union char nomeConjuge30 short moraSozinho tData dataDivorcio complemento tEmpregado tEmpregado empregado Exemplo if empregadoestadoCivil CASADO printf sempregadocomplementonomeConjuge else if empregadoestadoCivil SOLTEIRO if empregadocomplementomoraSozinho printf Mora sozinho else printf Não mora sozinho else if empregadoestadoCivil DIVORCIADO printfs empregadocomplementodataDivorciodia printfs empregadocomplementodataDivorciomes printfs empregadocomplementodataDivorcioano Linguagem C Enumerações 1 Criar uma estrutura para receber os nomes de clubes de futebol e seus respectivos pontos no campeonato Ler os nomes e os pontos e mostrar qual equipe nome e pontos é a vencedora Considerar 10 clubes no total 2 Faça um programa que leia o código a descrição o valor unitário e a quantidade em estoque de 10 produtos comercializados em uma papelaria Estas informações deverão ser armazenadas em um vetor de estruturas Depois da leitura dos dados de entrada o programa deverá Realizar uma rotina que permita alterar a descrição o valor unitário e a quantidade em estoque de determinado produto que deverá ser localizado por meio do seu código Realizar uma rotina que mostre todos os produtos cuja descrição comece com determinada letra informada pelo usuário Mostrar todos os produtos com quantidade em estoque inferior a 5 unidades Linguagem C Exercícios 3 Seja uma estrutura para descrever os carros de uma determinada revendedora contendo os seguintes campos marca ano cor e preço a Escrever a definição da estrutura carro b Declarar um vetor do tipo da estrutura definida acima de tamanho 20 Crie um menu para Ler o vetor Ler um preço e mostrar os carros marca cor e ano que tenham preço igual ou menor ao preço recebido Ler a marca de um carro e mostrar as informações de todos os carros dessa marca preço ano e cor Ler a marca ano e cor e informar se existe ou não um carro com essas características Se existir informar o preço Linguagem C Exercícios 4 Escreva um programa que auxilie no controle de uma fazenda que possui um total de 2000 cabeças de gado A base de dados é formada por um conjunto de estruturas contendo os seguintes campos referente a cada cabeça de gado código da cabeça de gado número de litros de leite produzido por semana quantidade de alimento ingerida por semana em quilos data de nascimento e abate N não ou S sim Ler a base de dados armazenando em um vetor de estruturas Preencher o campo abate considerando que a cabeça de gado irá para o abate caso tenha mais de 5 anos ou produza menos de 40 litros de leite por semana ou produza entre 50 e 70 litros de leite por semana e ingira mais de 50 quilos de alimento por dia Crie o menu de opções para c Calcular e mostrar a quantidade total de leite produzida por semana d Calcular e mostrar a quantidade total de alimento consumido por semana e Calcular e mostrar a quantidade total de leite a ser produzida por semana após o abate f Calcular e mostrar o total de alimento consumido por semana após o abate g Calcular e mostrar a quantidade de cabeças de gado que irão para o abate h Sair do programa Linguagem C Exercícios
Send your question to AI and receive an answer instantly
Recommended for you
69
Um Estudo Comparativo sobre Uso de Modelos de Dados para Notas Fiscais Eletrônicas
Introdução à Lógica e Programação
UFPB
24
Introdução aos Ponteiros em Linguagem C
Introdução à Lógica e Programação
UFPB
27
Introdução aos Arquivos em Linguagem C
Introdução à Lógica e Programação
UFPB
19
Introdução à Programação em C: Strings e Vetores de Caracteres
Introdução à Lógica e Programação
UFPB
13
Citus Distributed PostgreSQL for Data-Intensive Applications
Introdução à Lógica e Programação
UFPB
10
Introdução às Strings em C++
Introdução à Lógica e Programação
UFAL
7
Implementação de Busca Binária e Funções de Ordenação em C++
Introdução à Lógica e Programação
UFAL
1
Verificação de Sorteio para Visto de Estágio
Introdução à Lógica e Programação
UFAL
18
Conceitos sobre Vetores em Programação
Introdução à Lógica e Programação
UFAL
35
Introdução a Ponteiros e Arrays em C
Introdução à Lógica e Programação
UFAL
Preview text
Linguagem C Estruturas Uniões e Enumerações Introdução a Programação 20221 Profa Giorgia Mattos giorgiamattosgmailcom Linguagem C Structs Estruturas são variáveis estruturadas similares aos vetores porém permitem que seus elementos sejam de tipos diferentes Por isso são conhecidas como tipos de dados heterogêneos Uma estrutura serve para conter dados de tipos diferentes relacionados entre si por exemplo nome da pessoa data de nascimento RG CPF Cada campomembro da estrutura possui um nome e um tipo relacionado ao tipo de dado que o campo irá armazenar A definição de uma estrutura em C pode ser feita usando 1 declaração de rótulos e 2 declaração de tipos Linguagem C Structs Definição de estruturas usando declaração de rótulos struct rótulodaestrutura tipo1 campo1 tipo2 campo2 tipoN campoN listadevariáveis1 struct rótulodaestrutura listadevariáveis2 struct rótulodaestrutura listadevariáveisN Linguagem C Structs Exemplo variável chamada registroPessoa que contém o nome e a data de nascimento de uma pessoa struct registro char nome50 short dia mes ano struct registro registroPessoa struct char nome50 short dia mes ano registroPessoa Como a estrutura não tem rótulo outras variáveis teriam que ser definidas no mesmo local onde a variável registroPessoa é definida Linguagem C Structs Definição de estruturas usando definição de tipos O uso de typedef constitui a melhor forma de definição de estruturas typedef struct rótulodaestrutura tipo1 campo1 tipo2 campo2 tipoN campoN nomedotipo nomedotipo listadenomesdevariáveis Linguagem C Structs Exemplo definição do tipo tRegistro e a declaração da variável registroPessoa typedef struct char nome50 short dia mes ano tRegistro tRegistro registroPessoa Linguagem C Structs Inicialização de estruturas Uma estrutura pode ser inicializada de modo similar a um vetor O número de valores de inicialização não deve exceder o número de campos e deve ser compatível com o respectivo campo typedef struct char nome50 short dia mes ano tRegistro tRegistro registroPessoa Fulano de Tal 19 12 1963 Linguagem C Structs Atribuição entre estruturas Uma estrutura pode ser atribuída à outra desde que ambas sejam do mesmo tipo struct linha int a b x y y x a estrutura x é atribuída à y Acesso aos Campos da estrutura Utilizamos o operador ponto entre o nome da variável que representa a estrutura e o nome do campo que se deseja acessar typedef struct char nome50 short dia mes ano tRegistro tRegistro registroPessoa Fulano de Tal 19 12 1963 Linguagem C Structs Campo Acesso com registroPessoa nome registroPessoanome dia registroPessoadia mes registroPessoames ano registroPessoaano registroPessoadia 6 registroPessoames 6 registroPessoaano 1966 Estruturas aninhadas ou compostas Um campo de uma estrutura pode ser de qualquer tipo inclusive de um tipo estrutura typedef struct char nome50 short dia mes ano tRegistro Pode ser reescrita como Linguagem C Structs typedef struct short dia mes ano tData typedef struct char nome50 tData data tRegistro incialização da estrutura tRegistro registroPessoa Fulano de Tal 19121966 acesso aos campos da estrutura registroPessoadatadia 6 Linguagem C Structs Vetores de Estruturas typedef struct char nome50 short dia mes ano tRegistro Podese declarar o vetor VPessoa como tRegistro Vpessoa20 Linguagem C Structs Exemplo Calcular a média dos 60 alunos da turma de Introdução a Programação Linguagem C Structs include stdioh define MAX 60 typedef struct int num char nome30 float a b c Taluno int main Taluno alunoMAX int i float m printf Digite os dados do aluno for i0iMAXi alunoinum i1 printf Aluno d alunoinum printf Nome getsalunoinome printf Nota 1 scanff alunoin1 printf Nota 2 scanff alunoin2 printf Nota 3 scanff alunoin3 m alunoiaalunoibalunoic3 printf MEDIA 2f m return 0 São tipos de dados similares às estruturas com a diferença de que os campos de uma união compartilham a mesma área de memória Todos os campos da união começam no mesmo endereço de memória São utilizadas com o objetivo de economizar memória quando os campos da união não coexistem Obedecem às regras sintáticas semelhantes às estruturas Para declarar uma união podese usar um dos formatos apresentados nas estruturas trocando a palavra struct por union Linguagem C Uniões Por exemplo typedef union char campo1 double campo2 int campo3 tUniao tUniao minhaU O compilador sempre aloca espaço suficiente para conter o membro de maior tamanho da união e todos iniciam no mesmo endereço Linguagem C Uniões Os campos de uma união são mutuamente exclusivos apenas um deles é considerado válido num dado instante por exemplo minhaUcampo1 a minhaUcampo2 314 Ao final da segunda atribuição o valor a será perdido e o acesso ao campo1 ou campo3 produzirá um resultado sem sentido A união pode ser inicializada através da atribuição de um valor inicial ao primeiro campo da variável tUniao minhaU a Linguagem C Uniões São úteis quando se deseja utilizar um conjunto determinado de valores constantes com alguma afinidade entre si que podem estar associados a uma variável A declaração de variável de um tipo enumeração se dá com a palavra enum seguida de uma lista de indicadores entre chaves e pelo nome da variável A palavra enum pode opcionalmente ser seguida por um identificador rótulo e neste caso não há a necessidade da variável1 variávelN Linguagem C Enumerações enum rótulo listadenomesdeconstantes variável1 variávelN Por exemplo enum cores AZUL AMARELO BRANCO PRETO variável do tipo enumeração representado pelo rótulo cores enum cores cor1 enum cores cor2 Podemos também definir um tipo enumeração usando o typedef typedef enum AZUL AMARELO BRANCO PRETO tCores tCores cor1 cor2 Linguagem C Enumerações Exemplo Linguagem C Enumerações typedef enum SOLTEIRO CASADO DIVORCIADO tEstadoCivil typedef struct char rua30 char numero5 char cidade20 char uf3 char cep 10 tEndereco typedef struct short dia mes ano tData typedef struct char nome30 tEndereco endereco tEstadoCivil estadoCivil union char nomeConjuge30 short moraSozinho tData dataDivorcio complemento tEmpregado tEmpregado empregado Exemplo if empregadoestadoCivil CASADO printf sempregadocomplementonomeConjuge else if empregadoestadoCivil SOLTEIRO if empregadocomplementomoraSozinho printf Mora sozinho else printf Não mora sozinho else if empregadoestadoCivil DIVORCIADO printfs empregadocomplementodataDivorciodia printfs empregadocomplementodataDivorciomes printfs empregadocomplementodataDivorcioano Linguagem C Enumerações 1 Criar uma estrutura para receber os nomes de clubes de futebol e seus respectivos pontos no campeonato Ler os nomes e os pontos e mostrar qual equipe nome e pontos é a vencedora Considerar 10 clubes no total 2 Faça um programa que leia o código a descrição o valor unitário e a quantidade em estoque de 10 produtos comercializados em uma papelaria Estas informações deverão ser armazenadas em um vetor de estruturas Depois da leitura dos dados de entrada o programa deverá Realizar uma rotina que permita alterar a descrição o valor unitário e a quantidade em estoque de determinado produto que deverá ser localizado por meio do seu código Realizar uma rotina que mostre todos os produtos cuja descrição comece com determinada letra informada pelo usuário Mostrar todos os produtos com quantidade em estoque inferior a 5 unidades Linguagem C Exercícios 3 Seja uma estrutura para descrever os carros de uma determinada revendedora contendo os seguintes campos marca ano cor e preço a Escrever a definição da estrutura carro b Declarar um vetor do tipo da estrutura definida acima de tamanho 20 Crie um menu para Ler o vetor Ler um preço e mostrar os carros marca cor e ano que tenham preço igual ou menor ao preço recebido Ler a marca de um carro e mostrar as informações de todos os carros dessa marca preço ano e cor Ler a marca ano e cor e informar se existe ou não um carro com essas características Se existir informar o preço Linguagem C Exercícios 4 Escreva um programa que auxilie no controle de uma fazenda que possui um total de 2000 cabeças de gado A base de dados é formada por um conjunto de estruturas contendo os seguintes campos referente a cada cabeça de gado código da cabeça de gado número de litros de leite produzido por semana quantidade de alimento ingerida por semana em quilos data de nascimento e abate N não ou S sim Ler a base de dados armazenando em um vetor de estruturas Preencher o campo abate considerando que a cabeça de gado irá para o abate caso tenha mais de 5 anos ou produza menos de 40 litros de leite por semana ou produza entre 50 e 70 litros de leite por semana e ingira mais de 50 quilos de alimento por dia Crie o menu de opções para c Calcular e mostrar a quantidade total de leite produzida por semana d Calcular e mostrar a quantidade total de alimento consumido por semana e Calcular e mostrar a quantidade total de leite a ser produzida por semana após o abate f Calcular e mostrar o total de alimento consumido por semana após o abate g Calcular e mostrar a quantidade de cabeças de gado que irão para o abate h Sair do programa Linguagem C Exercícios