Académique Documents
Professionnel Documents
Culture Documents
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
Compreender Definir e
heterogneas
podem ser
localmente e globalmente; Identificar que tipos membros de uma estrutura; Implementar programas usando estruturas; Construir funes usando estruturas heterogneas ;
ESTRUTURA DE DADOS
Direto ao Assunto
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
Conceito de struct Uma estrutura(struct) um conjunto de elementos, na maioria das vezes de tipos diferentes, podendo ser variveis simples, matrizes, outras estruturas e at funes. Cada elemento da estrutura chamado de membro ou campo. O agrupamento desses elementos segue uma lgica definida pelo programador. A esse conjunto, associado um nome.
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
DEFININDO a struct
ESTRUTURA DE DADOS
Exemplo de struct
ESTRUTURA DE DADOS
Exemplo de struct
3 membros (campos)
ESTRUTURA DE DADOS
Exemplo de struct
Definindo
ESTRUTURA DE DADOS
Exemplo de struct
Definindo
struct
ESTRUTURA DE DADOS
Exemplo de struct
Definindo
struct data
ESTRUTURA DE DADOS
Exemplo de struct
Definindo
struct data {
ESTRUTURA DE DADOS
Exemplo de struct
Definindo
ESTRUTURA DE DADOS
Exemplo de struct
Definindo
ESTRUTURA DE DADOS
Exemplo de struct
Definindo
ESTRUTURA DE DADOS
Exemplo de struct
ESTRUTURA DE DADOS
Exemplo de struct
2 membros (campos)
ESTRUTURA DE DADOS
Exemplo de struct
Definindo
ESTRUTURA DE DADOS
Exemplo de struct
Definindo struct
ESTRUTURA DE DADOS
Exemplo de struct
ESTRUTURA DE DADOS
Exemplo de struct
ESTRUTURA DE DADOS
Exemplo de struct
ESTRUTURA DE DADOS
Exemplo de struct
ESTRUTURA DE DADOS
Exemplo de struct
ESTRUTURA DE DADOS
Exemplo de struct
ESTRUTURA DE DADOS
At aqui ficou fcil, mas se partssemos de um momento anterior a esse, no seria melhor?
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Definindo struct
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Definindo struct paciente { char nomePac[31], classif[21]; float alt, peso, IMC;
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Definindo struct paciente { char nomePac[31], classif[21]; float alt, peso, IMC; long long int tel;
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Definindo struct paciente { char nomePac[31], classif[21]; float alt, peso, IMC; long long int tel; }
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Definindo struct paciente { char nomePac[31], classif[21]; float alt, peso, IMC; long long int tel; };
Ficha 1
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Ficha 2
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Ficha 2
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Definindo struct
Ficha 2
aluno 9 No
ESTRUTURA DE DADOS
Ficha 2
aluno 9 No
ESTRUTURA DE DADOS
Ficha 2
Nome da struct: Quantos membros? Todos do mesmo tipo? Qual(is) o(s) tipo(s) presente(s)?
ESTRUTURA DE DADOS
Ficha 2
aluno 9 No
ESTRUTURA DE DADOS
Definindo struct aluno { char nomeAl[31], disc[21]; long long int matric, tel;
Ficha 2
aluno 9 No
ESTRUTURA DE DADOS
Definindo struct aluno { char nomeAl[31], disc[21]; long long int matric, tel; float AV1, AV2, AV3, Media;
Ficha 2
aluno 9 No
ESTRUTURA DE DADOS
Definindo struct aluno { char nomeAl[31], disc[21]; long long int matric, tel; float AV1, AV2, AV3, Media; int turma;
Ficha 2
aluno 9 No
ESTRUTURA DE DADOS
Definindo struct aluno { char nomeAl[31], disc[21]; long long int matric, tel; float AV1, AV2, AV3, Media; int turma; }
Nome da struct: Quantos membros? Todos do mesmo tipo?
Ficha 2
aluno 9 No
ESTRUTURA DE DADOS
Definindo struct aluno { char nomeAl[31], disc[21]; long long int matric, tel; float AV1, AV2, AV3, Media; int turma; };
Nome da struct: Quantos membros? Todos do mesmo tipo?
Ficha 2
aluno 9 No
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
GLOBAL
ESTRUTURA DE DADOS
GLOBAL
ESTRUTURA DE DADOS
GLOBAL
LOCAL
ESTRUTURA DE DADOS
Como se declara uma varivel com o tipo definido por uma estrutura?
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
Declarando com tipo definido pela struct struct data { int dia, mes, ano; };
ESTRUTURA DE DADOS
Declarando com tipo definido pela struct struct data { int dia, mes, ano; }; data entrada, saida;
ESTRUTURA DE DADOS
DEFININDO / DECLARANDO
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
struct { float a, b, c; };
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
data entrada;
ESTRUTURA DE DADOS
...entrada.dia...
data entrada;
ESTRUTURA DE DADOS
...entrada.dia... ...entrada.mes...
data entrada;
ESTRUTURA DE DADOS
data entrada;
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
Array de struct
ESTRUTURA DE DADOS
Declarando um array de struct Um array de estruturas pode ser declarado da mesma forma que uma estrutura simples.
ESTRUTURA DE DADOS
Declarando um array de struct Um array de estruturas pode ser declarado da mesma forma que uma estrutura simples.
ESTRUTURA DE DADOS
Declarando um array de struct Um array de estruturas pode ser declarado da mesma forma que uma estrutura simples.
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
...atletas[0] peso...
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
...atleta peso...
ESTRUTURA DE DADOS
. ...atleta.niver.dia...
...atleta peso...
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
Definindo a struct, usando estruturas ANINHADAS - array struct data { int dia, mes, ano; }; struct saude { float altura, peso, IMC; data niver; } atletas[500]; ACESSANDO
ESTRUTURA DE DADOS
Definindo a struct, usando estruturas ANINHADAS - array struct data { int dia, mes, ano; }; struct saude { float altura, peso, IMC; data niver; } atletas[500]; ACESSANDO
ESTRUTURA DE DADOS
Definindo a struct, usando estruturas ANINHADAS - array struct data { int dia, mes, ano; }; struct saude { float altura, peso, IMC; data niver; } atletas[500]; ACESSANDO
...atletas[0] peso...
ESTRUTURA DE DADOS
Definindo a struct, usando estruturas ANINHADAS - array struct data { int dia, mes, ano; }; struct saude { float altura, peso, IMC; data niver; } atletas[500]; ACESSANDO
. ...atletas[0].niver.dia...
...atletas[0] peso...
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
Definindo a struct, usando estruturas ANINHADAS - array struct data { int dia, mes, ano; }; struct saude { float altura, peso, IMC; data niver; } atletas[500]; A C E S S A N D O
ESTRUTURA DE DADOS
Definindo a struct, usando estruturas ANINHADAS - array struct data { int dia, mes, ano; }; struct saude { float altura, peso, IMC; data niver; } atletas[500]; A C E S S A N D O
ESTRUTURA DE DADOS
ESTRUTURAS e FUNES
Passagem por VALOR Passagem por REFERNCIA &
ESTRUTURA DE DADOS
#include <iostream> Passagem por VALOR #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; }
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
#include <iostream> Passagem por REFERNCIA & #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;}
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
#include <iostream> Estrutura como parmetro #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;}
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
#include <iostream> Estrutura como parmetro #include <cstdlib> #include <cstring> #include <cctype> using namespace std; struct cad { char nome[31]; int idade; }; void maiuscula(char func[]); cad Entrada(); void Exibe( cad func func ); int main() parmetro { cad funcionario; funcionario = Entrada(); Exibe(funcionario); system("pause"); return(0); }
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
#include <iostream> Estrutura como retorno #include <cstdlib> #include <cstring> #include <cctype> using namespace std; struct cad { char nome[31]; int idade; retorno }; void maiuscula(char func[]); cad Entrada(); void Exibe(cad func); int main() { cad funcionario; funcionario = Entrada(); Exibe(funcionario); system("pause"); return(0); }
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
cad Entrada() Estrutura como retorno { 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;
}
return temp;
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
ESTRUTURA DE DADOS
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; } };
AGRUPANDO DADOS E CRIANDO NOVOS TIPOS Aula3
ESTRUTURA DE DADOS
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
Resumindo