Uploaded by Paulo Abreu

Aula 17 – Registros

advertisement
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
Download