Buscar

Slide aula 2

Prévia do material em texto

2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
ESTRUTURAS DE DADOS - CCT0637
PROFESSOR: EDIBERTO MARIANO
programacaoedi@gmail.com
1
Aula 02
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Agregados Heterogêneos. 
Structs (registros)
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Agregados Heterogêneos e Structs
• Objetivos:
➢Possibilitar ao aluno:
✓Reconhecer os conceitos relacionados aos 
Agregados Heterogêneos
✓Identificar como os agregados heterogêneos são 
representados em C++
✓Elaborar códigos utilizando Structs e o operador 
ponto.
✓Desenvolver, no laboratório de informática, os 
conceitos sobre Structs e o operador ponto por meio 
de exercícios guiados
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Struct(registro)
• Um registro é um agrupamento de dados, os quais não necessariamente são do 
mesmo tipo. 
Permite organizar um grupo de variáveis como uma única variável. Em C++ se 
definem com a palavra “struct”. 
• As variáveis que compreendem o registro são chamadas de elementos ou 
campos. 
• Sintaxe:
struct <nome_struct>{
tipo1 campo1;
tipo2 campo2;
…
tipon campon;
}; 
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Struct(registro)
• Exemplos:
struct aluno{
int ID;
string nome[30];
char inicial[1];
int idade;
float nota; }; 
struct endereco{
char nome[30];
char rua[40];
char cidade[20];
char estado[2];
unsigned int numero;
char CEP[8];
}; 
struct carro{
char modelo[15];
int ano;
char placa[10];
char color[10];
}; 
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Struct(registro)
• Declaração de variáveis de tipo estrutura:
• struct <nome_struct> apelido;
• Exemplos:
• struct aluno al;
• struct endereco end_info;
• struct carro car;
• Referenciando Elementos de Estruturas (Operador Ponto)
• Podemos acessar os elementos de uma estrutura via o 
operador de referência "."
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
• Referenciando campos da estrutura:
• <var_reg>.<campo>;
• Exemplos:
• aluno.ID = 20;
• aluno.nome = “Maria”;
• aluno.idade = 32;
• Atribuição:
• aluno.nome = “Raimundo”;
Struct(registro)
end_info.nome = “Carlos X”;
cout << end_info.nome;
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Struct(registro) - exemplos
#include <iostream>
//#include <string>
using namespace std;
int main(){
setlocale(LC_ALL, ""); 
struct aluno{
int ID;
string nome;
char inicial;
int idade;
float nota;
};
aluno al;
al.ID = 221;
al.nome = “Paulo";
al.inicial =‘P';
al.idade = 25;
al.nota = 8.5;
cout << " ID = " << al.ID << endl;
cout << " Nome = " << al.nome << endl;
cout << " A idade é " << al.idade << endl;
cout << " Nota = " << al.nota << endl;
return 0;
}
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Struct(registro) - exemplos
#include <iostream>
//#include <string>
#include <string.h>
using namespace std;
#include<conio.h>
main(){
struct Endereco {
char nome[20]; 
char rua[40]; 
unsigned int numero; //não
// negativo 
char cidade[20]; 
char estado[2]; 
}; 
Endereco end_info;
strcpy(end_info.nome, "Manoel Java");
//#include <string.h>
cout << end_info.nome << endl; 
cout<<"Informe os demais dados \n";
cout <<"Rua----:"; 
cin >> end_info.rua; //só o primeiro nome
cout <<"\nNumero----:";
cin >> end_info.numero;
cout <<"Cidade----:";
cin >> end_info.cidade;
cout <<"Estado----:";
cin >> end_info.estado;
cout<<"\nDADOS INFORMADOS \n";
cout << end_info.rua << endl;
cout << end_info.numero << endl;
cout << end_info.cidade << endl;
cout << end_info.estado << endl;
getch();}
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Arrays e Estruturas
• Podemos criar arrays de estruturas:
• struct Endereco end_info[10];
• cout << end_info[8].numero;
• cout << end_info[9].nome;
Endereco end_info[10];// Array de estrutura
strcpy(end_info[8].nome, “Maria Silva");
cout << end_info[8].nome << endl;
cout <<" Rua:" << endl;
cin >> end_info[8].rua;
cout << end_info[8].rua << endl;
end_info[8].key = 'K’;
cout << end_info[8].key << endl;
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Arrays e Estruturas - Exemplo
#include <iostream>
//#include <string>
#include <string.h>
using namespace std;
#include<conio.h>
main(){
struct Endereco {
char nome[20]; 
char cidade[20]; 
char estado[2]; 
}; 
struct Endereco end_info1[3];
strcpy(end_info1[0].nome, "Maria Silva");
cout << "NOME = "<< end_info1[0].nome << 
endl;
cout<<"\nINFORME OS DEMAIS DADOS \n";
cout <<"Cidade----:";
cin >> end_info1[1].cidade;
cout <<"Estado----:";
cin >> end_info1[2].estado;
cout<<"\nDADOS DO ARRAY \n";
cout << end_info1[0].nome << endl;
cout << end_info1[1].cidade << endl;
cout << end_info1[2].estado << endl;
getch();
}
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
COMANDOS CIN e CIN.GET()
Cin (já visto antes)
Exemplo:
char nome[20[;
cout<<”Informe um nome = “;
cin>>nome;
Obs. Será armazenado na 
variável nome somente palavra, 
até encontrar um espaço em 
branco, dentro do limite de 20 
caracteres, informado na 
declaração da mesma.
cin.get()
Exemplo:
char nome[20];
cout<<”Informe um nome = “;
fgets(nome, 20, stdin);
Obs. Será armazenado na variável nome 
TODO conteúdo informado até espaço em 
branco, dentro do limite de 20 caracteres, 
informado na declaração da mesma.
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Exercícios – aula 02
1. Defina uma estrutura que permita guardar as informações dos alunos 
da turma de ED. O programa deve apresentar informação sobre os 
nomes dos alunos.
2. Defina uma estrutura que irá representar bandas de música. Essa 
estrutura deve ter o nome da banda, que tipo de música ela toca, o 
número de integrantes e em que posição do ranking essa banda está 
dentre as suas 5 bandas favoritas.
3. Construa uma declaração de struct em C++ que possa acomodar 
dados provenientes de uma tabela com os seguintes dados: 
• nome, endereço, numero, bairro, complemento, cep, cidade, uf, telefone1, 
telefone2.
4. Construa a função main() em C++ que possa atribuir valores aos membros da 
struct descrita abaixo.
− struct data {
− int dia;
− int mes;
− int ano; };
2019.22020.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
Professor: Ediberto Mariano - Estrutura de Dados - Aula 02
2020.2
Exercícios – aula 02
5. Construa a função main() em C++ que possa atribuir valores aos 
membros, exibí-los na tela da struc descrita abaixo.
struct data {
int dia;
int mes;
int ano;};
6. Codifique um programa em C++ que seja atribuídos valores aos membros 
de um registro (cliente) numa estrutura (Cadastro), conforme abaixo:
struct Cadastro {
int codigo; 
char nome(30);}
• Obs. Depois dos dados armazenados, exiba-os na tela.

Continue navegando