Registros Algoritmos e Estrutura de Dados I Aula 17 - Registros P ONTIFÍCIA U NIVERSIDADE C ATÓLICA DE M INAS G ERAIS Instituto de Ciências Exatas e Informática Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Sumário 1 Registros Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Registros Os registros, também chamados de estruturas (structs) permitem que possamos ter variáveis de vários tipos aglomerados sob o mesmo nome. E esse mesmo nome vai passar a ser um novo tipo de dados tal como o int ou float. Representa um novo tipo de dados definido pelo usuário! Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Registros Sintaxe 1 2 3 4 struct <identificador> { <tipo> campo_um ; <tipo> campo_dois ; }; Exemplo 1 2 3 4 struct Aluno { int matricula; char nome[50]; }; Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Registros Agora podemos usar esse tipo “struct” para definir variáveis. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 struct Aluno { int matricula; char nome[50]; }; int main() { setlocale(LC_ALL,"portuguese"); struct Aluno aluno1; printf("Digite a matricula do aluno: "); scanf("%d", &aluno1.matricula); fflush(stdin); printf("Digite o nome do aluno: "); gets(aluno1.nome); fflush(stdin); printf("\nMatricula do Aluno: %d ", aluno1.matricula); printf("\nNome do Aluno: %s", aluno1.nome); return 0; } Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Registros Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Registros Agora declarar variáveis junto com a definição do novo tipo. 1 2 3 4 struct Aluno { int matricula; char nome[50]; }aluno1, aluno2, aluno3; Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Registros Podemos inicializar as variáveis do tipo “struct”. 1 2 3 4 struct Aluno { int matricula; char nome[50]; }; 5 6 7 int main(){ setlocale(LC_ALL,"portuguese"); 8 Aluno aluno1 = {123456, "Pedro Alvares Cabral"}; 9 10 cout << "\nMatricula do Aluno: " << aluno1.matricula << "\nNome do Aluno: " << aluno1.nome; return 0; 11 12 13 14 } Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Registros - Vetores 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 struct Contato { int codigo; char nome[50]; char cel[50]; char email[50]; }; int main(){ setlocale(LC_ALL,"portuguese"); struct Contato contados[5]; int n = 10; for(int i=0; i<n; i++){ printf("Digite o codigo do %i◦ contato:", i+1); scanf("%d", &contados[i].codigo); fflush(stdin); printf("Digite o nome do %i◦ contato:", i+1); gets(contados[i].nome); fflush(stdin); printf("Digite o celular do %i◦ contato:", i+1); gets(contados[i].cel); fflush(stdin); printf("Digite o e-mail do %i◦ contato:", i+1); gets(contados[i].email); fflush(stdin); } printf("\nCodigo\tNome\tCelular\tE-mail\n"); for(int i=0; i<n; i++){ printf("%d\t %s\t %s\t %s\n",contados[i].codigo, contados[i].nome, contados[i].cel, contados[i].email); } return 0; } Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Exercícios 1 Crie um programa que receba o nome e a data de nascimento de 10 pessoas (sendo data uma estrutura). Identifique a pessoa mais nova, a mais velha e mostre os seus nomes. Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I Registros Dúvidas? Prof. Sandro Jerônimo de Almeida | sandro.j@pucminas.br Algoritmos e Estrutura de Dados I