Buscar

AED_2012_ESTRUTURA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos e Técnicas de 
Programação
(Estruturas)
Prof. Alexandre Wagner Chagas Faria
Definições...
� Há cinco tipos básicos de dados que estão
predefinidos no compilador e que já conhecemos e já
utilizamos: São eles: char, int, float, double e void.
� Esses tipos representam um único item de informação
e, baseados neles, podemos definir tipos complexos
que possibilitam agrupar um conjunto de variáveis
diferentes sob um único nome
Definições...
� struturas são tipos de variáveis que agrupam dados
geralmente desiguais enquanto matrizes são tipos de variáveis
que agrupam dados similares.
� Os itens de dados de uma estrutura são chamados membros,
enquanto os itens de uma matriz são chamados elementos
� A sintaxe para criar estruturas é a mesma da de classe. Assim
aprender a lidar com estruturas é o caminho para entender
classes objetos.
Definições...
� Por meio da palavra-chave struct definimos um novo tipo de
dado.
� Definir um novo tipo de dado, significa informar ao
compilador o seu nome, o seu tamanho em bytes e o formato
em que ele deve ser armazenado e recuperado da memória
� Após ter sido definido, o novo tipo existe e pode ser utilizado
para criar variáveis de modo similar ao que já aprendemos
Exemplo:
� O exemplo a seguir cria um tipo de dado que pode
armazenar as informações de uma aluno
1° exemplo 
utilizando struct
1. #include <iostream.h>
2. struct aluno // definição da estrutura
3. {
4. int nmat; // Numero da matricula
5. float nota[3]; //notaS
6. float media; // calcula a media das notas
7. };
8. int main ()
9. {
10. aluno ana; // declara uma variável do tipo aluno 
11. ana.nmat=456;
12. ana.nota[0]=7.5;
13. ana.nota[1]=5.2;
14. ana.nota[2]=8.4;
15. ana.media=(ana.nota[0]+ana.nota[1]+ana.nota[2])/3;
16. cout<<"\nMatricula: "<<ana.nmat;
17. cout<<"\nMedia: "<<ana.media;
18. cout<<"\n\n";
19. system ("pause"); 
20. }
Definindo a estrutura
struct aluno
{
int nmat; 
float nota[3]; 
float media; 
};
Palavara-
chave
Nome do 
tipo
MembrosChaves
Ponto e 
virgula
Definições...
� A palavra struct indica que um novo tipo de dado está
sendo definido e a apalavra aluno será o seu nome.
� No nosso exemplo, definimos o tipo aluno antes de
main(), o que permite um acesso global a todas as
funções do programa.
Definições...
� A instrução aluno ana ; declara uma variável de 
nome ana, do tipo aluno. 
� Esta declaração reserva espaço de memória suficiente 
para armazenar todos os membros da estrutura
Acessando os membros da estrutura
� Uma vez criada a variável estrutura, seus membros podem ser 
acessados por meio do operador ponto
� A instrução ana.nmat=456, atribui o valor 456 ao primeiro 
membro da variável ana. 
� Obs: O operador ponto conecta o nome de uma variável 
estrutura ao membro dela. 
Pedindo o usuário para 
entrar com os dados
1. #include <iostream.h>
2. struct aluno // definição da estrutura
3. {
4. int nmat; // Numero da matricula
5. float nota[3]; //notaS
6. float media; // calcula a media das notas
7. char curso[10]; //Nome do curso
8. };
9. int main ()
10. {
11. aluno ana; // declara uma variavel do tipo aluno 
12. cout<<"\nEntre com a matricula: ";
13. cin>>ana.nmat;
14. cout<<"\nEntre com o curso: ";
15. cin>>ana.curso;
16. cout<<"\nEntre com a Nota de Algoritmo: ";
17. cin>>ana.nota[0];
18. cout<<"\nEntre com a anota de Calculo: ";
19. cin>>ana.nota[1];
20. cout<<"\nEntre com a nota de Fisica";
21. cin>>ana.nota[2];
22. ana.media=(ana.nota[0]+ana.nota[1]+ana.nota[2])/3;
23. cout<<"\n\nA aluna, que possui a matricula: "<<ana.nmat<<", frequenta o curso 
"<<ana.curso<<", e tem media escolar de "<<ana.media;
24. cout<<"\n\n";
25. system ("pause"); 
26. }
Estruturas aninhadas
� Exatamente como podemos ter matrizes em que cada
elemento é outra matriz, podemos definir estruturas
com membros que sejam outras estruturas.
� O exemplo a seguir apresenta um exemplo de
estruturas aninhadas
Estruturas 
aninhadas
1. #include <iostream.h>
2. struct data
3. {
4. int dia;
5. char mes[10];
6. int ano;
7. };
8. struct venda
9. {
10. int pecas;
11. float preco;
12. data diavenda;
13. };
14. int main()
15. {
16. venda A={20,110,{3,"Junho",2011}};
17. cout<<"\nPecas: "<<A.pecas;
18. cout<<"\nPreco: "<<A.preco;
19. cout<<"\nData: "<<A.diavenda.dia<<" de "<<A.diavenda.mes<< 
" de "<<A.diavenda.ano;
20. cout<<"\n\n";
21. system("pause");
22. }
Comentários...
� No exemplo anterior, adicionamos um membro do tipo data à estrutura
venda, e criamos a variável A do tipo venda.
� A variável A tem 3 membros dos quais um deles é uma estrutura do tipo
data. Portanto A.diavenda é o nome de uma variável estrutura do tipo
data e, para acessar seus membros, devemos aplicar o operador ponto
novamente.
� A variável A foi inicializada na instrução venda A={20, 110, {03,
“junho”, 2011}}, Observem que o membro diavenda, por ser uma
estrutura, é inicializado colocando seus membros entre chaves e
separando-os por vírgulas.
� Logicamente, este processo não para neste nível; podemos ter uma
estrutura dentro de outra quantas vezes desejarmos ou quisermos..
Complicando um pouco...
Passando estruturas para funções
� As estruturas podem ser passadas como argumento de função,
da mesma forma que as variáveis simples.
� O nome de uma estrutura em C++ não é um endereço,
portanto ela pode ser passada por valor.
� Vamos exemplificar com uma função que recebe uma
estruturas como argumento, e cada estrutura com 3 membros.
A função recebe a estrutura e imprime o resultado, ou seja
não retorna nada void.
Passando uma estrutura 
para uma função
1. #include<iostream.h>
2. struct peca
3. {
4. char nome[15];
5. int codigo;
6. int quantidade; 
7. };
8. void imprime(peca x);
9. int main()
10. {
11. peca a,b;
12. cout<<"\nEntre com o nome da peca a: ";
13. cin>>a.nome;
14. cout<<"Entre com o nome da peca b: ";
15. cin>>b.nome;
16. cout<<"\nEntre com o codigo da peca a: ";
17. cin>>a.codigo;
18. cout<<"\Entre com o codigo da peca b: ";
19. cin>>b.codigo;
20. cout<<"\nEntre com a quantidade de pecas a no estoque: ";
21. cin>>a.quantidade;
22. cout<<"\Entre com a quantidade de pecas b no estoque: ";
23. cin>>b.quantidade; 
24. imprime(a);
25. imprime(b);
26. cout<<"\n\n";
27. system("pause");
28. }
29. void imprime(peca x)
30. {
31. cout<<"\nA peca "<<x.nome<<", codigo: "<< x.codigo<<", possui "<<x.quantidade<<" amostras no 
estoque!"; 
32. cout<<"\n";
33. }
Comentários
� O protótipo da função imprime() e as instruções de
seu corpo tratam as variáveis argumentos como
qualquer tipo simples
� A função cria a nova variável, chamada x, para conter
os dados da estrutura a e b de main() enviadas como
argumentos
Comentários finais...
� A palavra struct permite ao programador definir seus próprios tipos de dados,
conforme sua necessidade.
� Uma estrutura é um conjunto de variáveis, que podem ser de tipos diferentes, agrupada
numa única unidade
� Definir uma estrutura significa informar ao compilador como ela está organizada, quais
seus itens e o seu nome.
� A definição de uma estrutura não cria nenhuma variável, para criá-la, é necessário
incluir uma instrução de declaração de variável.
� Os itens de dados de uma estrutura são chamados membros e são acessados por meior
do operador ponto. Este operador conecta o nome de uma variável estrutura a um
membro dela.
BIBLIOGRAFIA
* Treinamento em C++, Victorine Viviane
* Deitel, H.M; Deitel, P.J. Como programar em C++. Rio de 
Janeiro: LTC, 1994, 486p.
1. #include <iostream.h>
2. struct ferramenta
3. {
4. char nome[10];
5. int codigo;
6. int quantidade;
7. float preco;
8. };
9. int main()
10. {
11. ferramenta a,b;
12. cout<<"\nEntrecom os nomes: ";
13. cin>>a.nome>>b.nome;
14. cout<<"\nA ferramenta chama-se: "<<a.nome<<"e a outra "<<b.nome; 
15. cout<<"\n\n";
16. system("pause");
17. }
Até a próxima aula
Alexandre Wagner 
axlwagner@gmail.com

Continue navegando