Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estruturas Estruturas ●Também chamadas de registro ●“Conjunto de uma ou mais variáveis agrupadas sob um único nome”* ●As variáveis que compõem uma estrutura são chamadas campos *Damas, L. Linguagem C. Rio de Janeiro: LTC, 2007. Estrutura - declaração struct [nome_da_estrutura]{ <tipo1> <lista de campos>; … <tipo2><lista de campos>; }; Obs.: Quando declaramos uma estrutura temos apenas um novo tipo. Ainda não existe uma variável, um espaço reservado na memória com aquela organização. Para termos isto precisamos declarar uma variável do tipo construído. Ex: struct tPessoa{ char nome[20]; int idade; }; Estrutura – declaração de variáveis Podemos declarar variáveis do tipo estrutura de duas formas: ●Logo após a declaração da estrutura struct [nome_da_estrutura]{ <tipo1> <lista de campos>; … <tipo2><lista de campos>; }<lista de variáveis>; ●Usando como tipo struct nome_da_estrutura ●struct nome_da_estrutura <lista de variáveis>; Ex: struct tPessoa{ char nome[20]; int idade; }pessoa1; struct tPessoa pessoa2, amigos[20]; Estrutura – declaração de variáveis Ex: struct tPessoa{ char nome[20]; int idade; }pessoa1; struct tPessoa pessoa2, amigos[20]; pessoa1 Nom eIdad e pessoa2 Nom eIdad e Nom eIdad e Nom eIdad e Nom eIdad e amigos 10 19... Estrutura – acessando os campos strcpy(pessoa1.nome, “Asdrubal”); pessoa1.idade = 10; scanf(“%s”, pessoa2.nome); pessoa2.idade = pessoa1.idade * 2; pessoa1 Nom eIdad e pessoa2 Nom eIdad e Asdrubal 10 20 Florisbell a Estrutura – acessando os campos strcpy(amigos[0].nome, “Robervalda”); amigos[0].idade = 10; for(i=0; i<20; i++){ scanf(“%s”, amigos[i].nome); scanf(“%d”, &amigos[i].idade); } Nom eIdad e Nom eIdad e Nom eIdad e amigos 10 19... Robervald a10 Exercício 1 Usando a struct tPessoa implementada anteriormente, faça um programa que receba o nome e a idade de 20 pessoas. Ao final o programa deve listar os nomes das pessoas que têm idade acima da média. Estrutura – passagem de parâmentro por valor void mostrar (struct tPessoa p){ printf(“%s\n”, p.nome); printf(“%d\n”, p.idade); } Chamada: mostrar(pessoa1); mostrar(pessoa2); Estrutura – passagem de parâmentro por referência void receberDados (struct tPessoa *p){ printf(“%s\n”, p->nome); printf(“%d\n”, p->idade); } Chamada: mostrar(&pessoa1); mostrar(&pessoa2); Estrutura – passagem de parâmentro por referência void receberDados (struct tPessoa p[]){ for(i=0; i<20; i++){ printf(“%s\n”, p[i].nome); printf(“%d\n”, p[i].idade); } } Chamada: receberDados(amigos); Exercício 2 Seja uma estrutura para descrever os carros de uma determinada revendedora, contendo os seguintes campos: marca: string de tamanho 15 ano: inteiro cor: string de tamanho 10 preço: real a) Escrever a definição da estrutura carro. b) Declarar o vetor vetcarros do tipo da estrutura definida acima, de tamanho 20 e global. Implemente as seguintes funções que devem ser oferecidas ao usuário num menu: a) Definir um bloco de programa para ler o vetor vetcarros. b) Definir um bloco de programa que receba um preço e imprima os carros (marca, cor e ano) que tenham preço igual ou menor ao preço recebido. c) Defina um bloco de programa que leia a marca de um carro e imprima as informações de todos os carros dessa marca (preço, ano e cor). d) Defina um bloco de programa que leia uma marca, ano e cor e informe se existe ou não um carro com essas características. Se existir, informar o preço. [www.joinville.udesc.br/portal/professores/flavio/materiais/Estruturas.doc] Exercício 3 O IMC – Índice de Massa Corporal é um critério da OMS para dar a indicação sobre a condição de peso de uma pessoa adulta. A fórmula é IMC=peso/(altura)2. Elabore um algoritmo que leia o peso e a altura de um adulto e mostre sua condição, conforme tabela abaixo: O governo do estado decidiu fazer uma pesquisa para saber como se encontra a população com relação à condição de peso. Faça um programa que receba as informações de peso, altura, nome e bairro de 3000 pessoas, armazenando num vetor de registros e implemente uma função que receba por parâmetro o vetor e um bairro informe em que estado se encontra a maioria das pessoas daquele bairro (Abaixo do peso, peso normal ou acima do peso). Desconsidere a possibilidade de empate. IMC em adultos Condição Abaixo de 18,5 Abaixo do peso Entre 18,5 e 25 Peso normal Entre 25 e 30 Acima de 30 Acima do peso Obeso
Compartilhar