Buscar

ESTRUTURA DE DADOS_Aula_03

Prévia do material em texto

ESTRUTURA de DADOS
Aula 3 – Agrupando dados e criando novos tipos
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Atenção aos Temas Principais dessa Aula
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Conteúdo Programático desta aula
	Compreender  o uso da estruturas heterogêneas definidas pelo programador ;
	Definir e declarar estruturas heterogêneas localmente e globalmente;
	Identificar que tipos de elementos podem ser membros de uma estrutura;
	Implementar programas usando estruturas;
	Construir funções usando estruturas heterogêneas ;
  
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Direto ao Assunto
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Conceito de struct
Uma estrutura(struct) é um conjunto de elementos, na maioria das vezes de tipos diferentes, podendo ser variáveis simples, matrizes, outras estruturas e até funções. 
Cada elemento da estrutura é chamado de membro ou campo. 
O agrupamento desses elementos segue uma lógica definida pelo programador. A esse conjunto, é associado um nome.
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
DEFININDO a struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
3 membros
(campos)
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct data
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct data
{
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct data
{
 int dia, mes, ano;
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct data
{
 int dia, mes, ano;
}
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct data
{
 int dia, mes, ano;
};
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
2 membros
(campos)
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct produto
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct produto
{
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct produto
{
 char nomeProd[21];
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct produto
{
 char nomeProd[21];
 float valor;
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct produto
{
 char nomeProd[21];
 float valor;
}
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Exemplo de struct
struct produto
{
 char nomeProd[21];
 float valor;
};
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Até aqui ficou fácil, mas se partíssemos de um momento anterior a esse, não seria melhor?
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
OK! Vamos apresentar algumas fichas e faremos a definição a partir delas.
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:
	Quantos membros? 
	Todos do mesmo tipo? 
	Qual(is) o(s) tipo(s) presente(s)?
Ficha 1
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
struct
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
struct paciente
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
struct paciente
{
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
struct paciente
{
 char nomePac[31], classif[21];
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
struct paciente
{
 char nomePac[31], classif[21];
 float alt, peso, IMC;
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
struct paciente
{
 char nomePac[31], classif[21];
 float alt, peso, IMC;
 long long int tel;
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
struct paciente
{
 char nomePac[31], classif[21];
 float alt, peso, IMC;
 long long int tel;
}
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	paciente
	Quantos membros? 	6
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/ float/ long long int
Ficha 1
struct paciente
{
 char nomePac[31], classif[21];
 float alt, peso, IMC;
 long long int tel;
};
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:
	Quantos membros? 
	Todos do mesmo tipo? 
	Qual(is) o(s) tipo(s) presente(s)?
Ficha 2
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct aluno
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct aluno
{
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct aluno
{char nomeAl[31], disc[21];
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct aluno
{
 char nomeAl[31], disc[21];
 long long int matric, tel;
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct aluno
{
 char nomeAl[31], disc[21];
 long long int matric, tel;
 float AV1, AV2, AV3, Media;
 
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct aluno
{
 char nomeAl[31], disc[21];
 long long int matric, tel;
 float AV1, AV2, AV3, Media;
 int turma;
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct aluno
{
 char nomeAl[31], disc[21];
 long long int matric, tel;
 float AV1, AV2, AV3, Media;
 int turma;
}
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
	Nome da struct:	aluno
	Quantos membros? 	9
	Todos do mesmo tipo? 	Não
	Qual(is) o(s) tipo(s) presente(s)?	char/long long int/ float/ int
Ficha 2
struct aluno
{
 char nomeAl[31], disc[21];
 long long int matric, tel;
 float AV1, AV2, AV3, Media;
 int turma;
};
Definindo
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
 Onde se define uma estrutura?
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Antes de
todas as Funções
 Onde se define uma estrutura?
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Antes de
todas as Funções
 Onde se define uma estrutura?
 GLOBAL
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Antes de
todas as Funções
 Onde se define uma estrutura?
Dentro de uma função
 GLOBAL
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Antes de
todas as Funções
 Onde se define uma estrutura?
Dentro de uma função
 GLOBAL
 LOCAL
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Como se declara uma variável com o tipo definido por uma estrutura?
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
DEFININDO e DECLARANDO depois
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando com tipo definido pela struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct data
{
 int dia, mes, ano;
};
Declarando com tipo definido pela struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct data
{
 int dia, mes, ano;
};
data entrada, saida;
Declarando com tipo definido pela struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
DEFININDO / DECLARANDO
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando junto com a definição da struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando junto com a definição da struct
struct produto
{
 char nomeProd[21];
 float valor;
};
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando junto com a definição da struct
struct produto
{
 char nomeProd[21];
 float valor;
} prod1, prod2;
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
DEFININDO e DECLARANDO Anônima
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando, obrigatoriamente, na definição - struct Anônima
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando, obrigatoriamente, na definição - struct Anônima
struct
{
 float a, b, c;
};
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando, obrigatoriamente, na definição - struct Anônima
struct
{
 float a, b, c;
} figura1, figura2;
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ACESSANDO um MEMBRO da struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct data
{
 int dia, mes, ano;
};
ACESSANDO um MEMBRO da struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct data
{
 int dia, mes, ano;
};
data entrada;
ACESSANDO um MEMBRO da struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
...entrada.dia...
struct data
{
 int dia, mes, ano;
};
data entrada;
ACESSANDO um MEMBRO da struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
...entrada.dia...
...entrada.mes...
struct data
{
 int dia, mes, ano;
};
data entrada;
ACESSANDO um MEMBRO da struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
...entrada.dia...
...entrada.mes...
...entrada.ano...
struct data
{
 int dia, mes, ano;
};
data entrada;
ACESSANDO um MEMBRO da struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ATRIBUINDO valor a um MEMBRO da struct na declaração
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ATRIBUINDO valor a um MEMBRO da struct na declaração
struct produto
{
 char nomeProd[21];
 float valor;
} prod1;
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ATRIBUINDO valor a um MEMBRO da struct na declaração
struct produto
{
 char nomeProd[21];
 float valor;
} prod1={"Ar condicionado", 790.00};
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ATRIBUINDO valor a um MEMBRO da struct na declaração
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct produto
{
 char nomeProd[21];
 float valor;
};
ATRIBUINDO valor a um MEMBRO da struct na declaração
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
data prod1={"Ar condicionado", 790.00};
ATRIBUINDO valor a um MEMBRO da struct na declaração
struct produto
{
 char nomeProd[21];
 float valor;
};
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ATRIBUINDO valor a um MEMBRO da struct através do teclado
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ATRIBUINDO valor a um MEMBRO da struct através do teclado
struct aluno
{
 char nomeAl[31], disc[21];
 long long int matric, tel;
 float AV1, AV2, AV3, Media;
 int turma;
} aluno1;
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ATRIBUINDO valor a um MEMBRO da struct através do teclado
cin>>aluno1.AV1;
struct aluno
{
 char nomeAl[31], disc[21];
 long long int matric, tel;
 float AV1, AV2, AV3, Media;
 int turma;
} aluno1;
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ATRIBUINDO valor a um MEMBRO da struct através do teclado
cin>>aluno1.AV1;
struct aluno
{
 char nomeAl[31], disc[21];
 long long int matric, tel;
 float AV1, AV2, AV3, Media;
 int turma;
} aluno1;
cin.getline(aluno1.nomeAl, 31);
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Array de struct
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando um array de struct
Um array de estruturas pode ser declarado da mesma forma que uma estrutura simples.
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando um array de struct
Um array de estruturas pode ser declarado da mesma forma que uma estrutura simples.
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Declarando um array de struct
Um array de estruturas pode ser declarado da mesma forma que uma estrutura simples.
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Definindo a struct e declarando um array
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Definindo a struct e declarando um arraystruct saude
{
 float peso, altura, IMC;
} atletas[500];
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Definindo a struct e declarando um array
struct saude
{
 float peso, altura, IMC;
} atletas[500];
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Definindo a struct e declarando um array
struct saude
{
 float peso, altura, IMC;
} atletas[500];
A
C
E
S
S
A
N
D
O
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Definindo a struct e declarando um array
A
C
E
S
S
A
N
D
O
...atletas[0].peso...
struct saude
{
 float peso, altura, IMC;
} atletas[500];
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Definindo a struct e declarando um array
struct saude
{
 float altura, peso, IMC;
} atletas[500];
A
C
E
S
S
A
N
D
O
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Definindo a struct, usando estruturas ANINHADAS
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
Definindo a struct, usando estruturas ANINHADAS
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
struct saude
{
 float peso, altura, IMC;
 niver;
} atleta;
data
Definindo a struct, usando estruturas ANINHADAS
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
Definindo a struct, usando estruturas ANINHADAS
struct saude
{
 float peso, altura, IMC;
 niver;
} atleta;
data
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
Definindo a struct, usando estruturas ANINHADAS
ACESSANDO
struct saude
{
 float peso, altura, IMC;
 niver;
} atleta;
data
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
Definindo a struct, usando estruturas ANINHADAS
ACESSANDO
...atleta.peso...
struct saude
{
 float peso, altura, IMC;
 niver;
} atleta;
data
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
Definindo a struct, usando estruturas ANINHADAS
ACESSANDO
...atleta.niver.dia...
...atleta.peso...
struct saude
{
 float peso, altura, IMC;
 niver;
} atleta;
data
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
struct saude
{
 float altura, peso, IMC;
 niver;
} atleta;
data
Definindo a struct, usando estruturas ANINHADAS
ACESSANDO
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
struct saude
{
 float altura, peso, IMC;
 niver;
} atletas[500];
data
Definindo a struct, usando estruturas ANINHADAS - array
ACESSANDO
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
ACESSANDO
struct saude
{
 float altura, peso, IMC;
 niver;
} atletas[500];
data
Definindo a struct, usando estruturas ANINHADAS - array
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
ACESSANDO
...atletas[0].peso...
struct saude
{
 float altura, peso, IMC;
 niver;
} atletas[500];
data
Definindo a struct, usando estruturas ANINHADAS - array
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
ACESSANDO
...atletas[0].niver.dia...
...atletas[0].peso...
struct saude
{
 float altura, peso, IMC;
 niver;
} atletas[500];
data
Definindo a struct, usando estruturas ANINHADAS - array
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
struct saude
{
 float altura, peso, IMC;
 niver;
} atletas[500];
data
Definindo a struct, usando estruturas ANINHADAS - array
A
C
E
S
S
A
N
D
O
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct
{
 int dia, mes, ano;
};
data
struct saude
{
 float altura, peso, IMC;
 niver;
} atletas[500];
data
Definindo a struct, usando estruturas ANINHADAS - array
A
C
E
S
S
A
N
D
O
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
ESTRUTURAS e FUNÇÕES
Passagem por VALOR
Passagem por REFERÊNCIA &
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
#include <iostream>
#include <cstdlib>
using namespace std;
float mediaPond(float, float);
int main()
{ 
 struct 
 { float prova, trab; } notas;
 cout<<"\nDigite nota da prova: ";cin>>notas.prova;
 cout<<"\nDigite nota do trabalho: ";cin>>notas.trab; 
 cout<<"\nMedia : "<<mediaPond(notas.prova, notas.trab);
 cout<<"\n\n";
 system("pause");
}
float mediaPond(float p, float t)
{ return (p*6+ t*4)/10; }
Passagem por VALOR
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
#include <iostream>
#include <cstdlib>
using namespace std;
void alteraNota(float &);
int main()
{ 
 struct 
 { float prova, trab; } notas;
 cout<<"\nDigite nota da prova: ";
 cin>>notas.prova;
 alteraNota(notas.prova);
 cout<<"\nNota Alterada: "<<notas.prova<<"\tGostou?";
 cout<<"\n\n";
 system("pause");
}
void alteraNota(float &p)
{ p=10;}
Passagem por REFERÊNCIA &
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Analisando
Estrutura como parâmetro
Estrutura como retorno
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Refazendo o exemplo de passagem por VALOR, usando
Estrutura como parâmetro
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
#include <iostream>
#include <cstdlib>
using namespace std;
struct notas
{ float prova, trab;};
float mediaPond(notas n);
int main()
{ 
 notas aluno;
 cout<<"\nDigite nota da prova: ";cin>>aluno.prova;
 cout<<"\nDigite nota do trabalho: ";cin>>aluno.trab; 
 cout<<"\nMedia ponderada: "<<mediaPond(aluno);
 cout<<"\n\n";
 system("pause");
}
float mediaPond(notas n)
{ return (n.prova*6+ n.trab*4)/10;}
Estrutura como parâmetro
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Usando Estrutura como parâmetro
e
Estrutura como retorno
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
#include <iostream> 
#include <cstdlib>
#include <cstring>
#include <cctype> 
using namespace std;
struct cad
{
 char nome[31];
 int idade;
};
void maiuscula(char func[]);
cad Entrada();		
void Exibe( func );		
int main() 
{
 cad funcionario;
 funcionario = Entrada();		
 Exibe(funcionario);
 system("pause");	return(0);
}
Estrutura como parâmetro
parâmetro
cad func
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
#include <iostream> 
#include <cstdlib>
#include <cstring>
#include <cctype> 
using namespace std;
struct cad
{
 char nome[31];
 int idade;
};
void maiuscula(char func[]);
 Entrada();		
void Exibe(cad func);		
int main() 
{
 cad funcionario;
 funcionario = Entrada();		
 Exibe(funcionario);
 system("pause");	return(0);
}
Estrutura como retorno
retorno
cad
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
cad Entrada()
{
 cad temp;
 char lixo[100];
 cout << "\nNome do funcionario ate 30 caracteres: ";
 cin.getline(lixo,100);
 while(strlen(lixo)>30)
 {
 cout<<"\nNome muito extenso\n";
 cout << "\nNome do funcionario até 30 caracteres: ";
 cin.getline(lixo,100);
 }
 strcpy(temp.nome,lixo); 
 maiuscula(temp.nome); 
 cout << "\nDigite idade: ";
 cin >> temp.idade;
}
 
Estrutura como retorno
return temp;
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
void Exibe(cad func) 
{
 cout<<"\n\n\n"<<func.nome<<"\t"<<func.idade;
 cout<<"\n\n";
} 
void maiuscula(char func[])
{
 int x;
 for(x=0; func[x] !='\0'; x++)
 func[x]=toupper(func[x]);
} 
Estrutura como parâmetro
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Função como membro de Estrutura
ESTRUTURADE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
#include <iostream>
#include <cstdlib>
using namespace std;
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
struct manipulaNumeros
{
 int contaAlgarismos(long long int num)
 {
 int cont=0;num=abs(num);
 if(num==0) return 1;
 while(num>0)
 { cont++; num/=10; } 
 return cont;
 }
 void quocresto(int a, int b)
 { 
 int aux;
 if(a<=0 || b<=0)
 { cout<<"\nSem resultados\n";return;}
 if(a<b) {aux=a; a=b; b=aux;}
 cout<<"\nQuociente: "<<a/b<<"\nResto: "<<a%b;
 }
};
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
int main()
{ 
 long long int n; int n1,n2;
 manipulaNumeros num;
 cout<<"\nDigite um numero inteiro: "; 
 cin>>n; 
 cout<<"\nTotal de Algarismos: "<<num.contaAlgarismos(n);
 cout<<"\n\nDigite um numero inteiro: ";
 cin>>n1; 
 cout<<"\nDigite outro numero inteiro: "; 
 cin>>n2; 
 num.quocresto(n1,n2);
 cout<<"\n\n";
 system("pause");
}
ESTRUTURA DE DADOS
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS– Aula3
Resumindo

Continue navegando