Baixe o app para aproveitar ainda mais
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.
Compartilhar