Estruturas Revisando: tipos de dados simples todos os tipos definidos na linguagem possuem tratamento definido (formato, espaço de memória, faixa de representação) permitem modelagem de problemas não atendem a todos os tipos de problemas existentes
Estruturas Revisando: tipos de dados simples Exemplo: lista de nomes de 50 alunos, com email e telefone, além de valores de notas de cinco avaliações Implementando com tipos simples: char nomes[50][30]; //50 nomes com 30 caracteres char email[50][40]; //50 emails com 40 caracteres char telefone[50][15]; //50 telefones com 15 caracteres int notas[50][5]; //50 conjuntos de 4 notas
Estruturas Revisando: tipos de dados simples Exemplo: //definição char nomes[50][30]; //50 nomes com 30 caracteres char email[50][40]; //50 emails com 40 caracteres char telefone[50][15]; //50 telefones com 15 caracteres int notas[50][5]; //50 conjuntos de 4 notas //acesso for (int i=0; i< 3; i++){ cin>>nomes[i]; cin>>email[i]; cin>>telefone[i]; for (int j=0; j<3; j++){ cin>>nota; notas[i][j]=nota; }
Estruturas Tipos de dados agregados (estruturas) construídos com outros tipos de dados simples estruturas permitem ao programador declarar a definição necessária para cada situação específica uso da palavra-reservada “struct” para a definição de uma nova estrutura: equivale a criação de um novo tipo de dados definição de um nome e de componentes acesso com operador ponto “.” ou seta”->”
Estruturas Tipos de dados agregados (estruturas) Formato geral: struct <nome> { <tipo de dado> <nome1>; <tipo de dado> <nome2>; ... <tipo de dado> <nomeN>; };
Estruturas Tipos de dados agregados (estruturas) Formato geral: struct <nome> { <tipo de dado> <nome1>; <tipo de dado> <nome2>; ... <tipo de dado> <nomeN>; }; Exemplo: //declaração da estrutura struct teste { int numero; char letra; //declaração de uma variável teste variavel_teste;
Estruturas Tipos de dados agregados (estruturas) Exemplo: //declaração da estrutura struct teste { int numero; char letra; }; //declaração de uma variável teste variavel_teste; int nro; char c; //acesso variavel_teste.numero = nro; variavel_teste.letra = c;
Estruturas Tipos de dados agregados (estruturas) Exemplo: declaração e acesso //declaração da estrutura struct cadastro{ char nome[30]; char email[40]; char telefone[15]; int notas[5]; }; //declaração de uma variável cadastro lista[50], auxiliar; //leitura de dados for ( i=0; i< 2; i++){ cin>>auxiliar.nome; cin>>auxiliar.email; cin>>auxiliar.telefone; for ( j=0; j<2; j++){ cin>>auxiliar.notas[j]; } lista[i]=auxiliar; //!!
Estruturas Tipos de dados agregados (estruturas) Exemplo: declaração e acesso //declaração da estrutura struct cadastro{ char nome[30]; char email[40]; char telefone[15]; int notas[5]; }; //declaração de uma variável cadastro lista[50], auxiliar; //escrita e acesso aos dados for ( i=0; i< 2; i++){ cout<<endl<<lista[i].nome; cout<<endl<<lista[i].email; cout<<endl<<lista[i].telefone; for ( j=0; j<2; j++){ cout<<endl<<lista[i].notas[j]; } cout<<endl<<endl;
Estruturas Tipos de dados agregados (estruturas) Acesso com operador flecha “->” Utilizado com ponteiros (referência) Exemplo: cadastro lista[50], auxiliar, *ponteiro; ..... for ( i=0; i< 2; i++){ ponteiro = &lista[i]; cout<<endl<< ponteiro->nome; cout<<endl<< ponteiro->email; cout<<endl<< ponteiro->telefone; for ( j=0; j<2; j++){ cout<<endl<< ponteiro->notas[j]; } cout<<endl<<endl;