Buscar

Estrutura - Algoritmo de Programação

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

Continue navegando