Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 C++ Variáveis Compostas Heterogêneas Osmar de Oliveira Braz Junior 2 Objetivos ◼ Assuntos a serem abordados nesta apresentação Variáveis Compotas Heterogêneas(TAD) Declaração Vetores de TAD Leitura Atribuição 3 Variáveis Compotas Heterogêneas ◼ Os tipos de dados que são mais comumente usados e que foram vistos com maior ênfase são: Inteiro Real Literal Lógico ◼ Uma outra forma de definir uma variável é através do tipo Struct conhecido como Registro. ◼ Esse tipo é diferente das demais formas de definir variáveis, porque permite que uma variável armazene valores de diversos tipos diferentes. ◼ Ao contrario dos vetores e matrizes onde todas as posições de memória são de um mesmo tipo de dado. 4 Variáveis Compotas Heterogêneas ◼ Com este novo tipo de declaração você pode criar variáveis compostas heterogêneas definindo novos tipos de dados. ◼ Exemplo: Imagine que fosse desejado armazenar informações de uma pessoa, tais como: Nome, Idade, Altura e Peso. ◼ Na forma tradicional, seria necessário definir uma variável para cada tipo de informação, ou seja: 5 #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]){ //Declaração de variáveis char nome[20]; int idade; float altura; float peso; //Realiza o processamento e saída dos dados return EXIT_SUCCESS; } Variáveis Compotas Heterogêneas ◼ Utilizando o tipo struct, a definição seria a seguinte: 6 #include <iostream> #include <cstdlib> using namespace std; struct Pessoa { char nome[20]; int idade; float altura; float peso; }; int main(int argc, char *argv[]){ //Declaração de variáveis Pessoa p; return EXIT_SUCCESS; } Variáveis Compotas Heterogêneas 7 Variáveis Compotas Heterogêneas ◼ Ao definir uma variável como sendo do tipo Struct, devemos definir, também quais serão as partes componentes desta variável (nome, idade, altura, sexo, numerodependente e profissão), junto com o seu tipo(da mesma forma que outras variáveis). ◼ Componentes de mesmo tipo são separados por vírgulas (,). Componentes de tipos diferentes são separadas por ponto e vírgula (;). 8 Variáveis Compotas Heterogêneas ◼ Quando estamos trabalhando com struct, as partes componentes do mesmo recebem um Nome próprio, o qual é conhecido como “campo” ou “membro”. 9 Variáveis Compotas Heterogêneas ◼ Desta forma, um variável Struct pode ter campos de qualquer tipo válido, sendo permitido inclusive que um Struct seja definido dentro do outro, ou como parte de um Vetor ou Matriz. 10 Variáveis Compotas Heterogêneas TAD ◼ Com este novo recurso você pode abstrair dados complexos como Sensor, Pessoa, Cliente, Fornecedor, Automóvel, Figura Geométrica, e assim por diante. ◼ Todas as entidades são compostas por diversos tipos de dados que precisam ser manuseados juntos durante a execução de um algoritmo. ◼ Estes tipos de dados complexos são chamados de Tipo de Abstrato de Dados ou simplesmente TAD. 11 Variáveis Compotas Heterogêneas Declaração #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]){ //Declaração de variáveis char nome[20][10]; int idade[10] float altura[10]; float peso[10]; //Realiza o processamento e saída dos dados return EXIT_SUCCESS; } 12 Variáveis Compotas Heterogêneas Declaração #include <iostream> #include <cstdlib> using namespace std; struct Pessoa { char nome[20]; int idade; float altura; float peso; }; int main(int argc, char *argv[]){ //Declaração de variáveis Pessoa pessoas[10]; Pessoa joao; //Realiza o processamento e saída dos dados return EXIT_SUCCESS; } 13 Variáveis Compotas Heterogêneas Atribuição #include <iostream> #include <cstdlib> using namespace std; struct Pessoa { char nome[20]; int idade; float altura; float peso; }; int main(int argc, char *argv[]){ //Declaração de variáveis Pessoa pessoas[10]; Pessoa joao; pessoas[0].idade = 20; joao.idade = 19; return EXIT_SUCCESS; } 14 Variáveis Compotas Heterogêneas ◼ O uso do “.” indica que esta variável possui campos, e que “Idade” é um deles. ◼ É importante lembrar que as operações realizadas sobre uma variável struct, são as mesmas de uma variável “comum”, a única diferença que devemos indicar o Nome da variável, seguido de um ponto(.), seguido do Nome do campo. ◼ É possível atribuir o conteúdo de uma variável struct para outra variável, de mesmo tipo, da mesma forma que é feito como as outras variáveis. 15 Variáveis Compotas Heterogêneas Copiando int main(int argc, char *argv[]){ //Declaração de variáveis Pessoa A, B; strcpy(A.nome,"Joao"); A.idade = 19; //Copia A para B B = A; cout << "A.nome:" << A.nome << " A.idade:" << A.idade << endl; cout << "B.nome:" << B.nome << " B.altura:" << B.idade; return EXIT_SUCCESS; } #include <iostream> #include <cstdlib> #include <cstring> using namespace std; struct Pessoa { char nome[20]; int idade; float altura; float peso; }; 16 Conclusão ◼ Tipos Abstratos de Dados ou TAD que são implementados em C através de struct são importantes para abstrair e agrupar dados de um problema ser resolvido pois permitem nomear estas abstrações. ◼ Simplificam os programas pois permitem manusear os dados de forma agrupada, desde a declaração até a sua manipulação. 17 Bibliografia/Referências ◼ Stroustrup, Bjarne. The C++ Programming Language. 2019. Disponível em: “http://www.stroustrup.com/C++.html” 18 Fim
Compartilhar