Baixe o app para aproveitar ainda mais
Prévia do material em texto
Plano de Aula: Agregados Heterogêneos + Structs ESTRUTURA DE DADOS - CCT0637 Título Agregados Heterogêneos + Structs Número de Aulas por Semana Número de Semana de Aula 2 Tema Agregados Heterogêneos + 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 Estrutura do Conteúdo CONTEÚDOS: - Agregados Heterogêneos - Fundamentos - Aplicação em C++: Structs - Operador ponto RESUMO DE CONCEITOS: Conceito de Struct Coleção de variáveis referenciada por um único nome Maneira conveniente de se ter informações relacionadas agrupadas A definição de uma estrutura forma um modelo para criação de várias estruturas com a forma definida struct <nome_estrutura> { <tipo> nome_variavel; <tipo> nome_variavel; //... //... } <var1>, ..., <varn>; Exemplo 1 - sintaxe para definição de estruturas Toda declaração de estruturas deve começar com a palavra reservada struct seguida por um identificador, um nome que identifique a estrutura sendo declarada. Todas as variáveis que comporão os elementos da estrutura devem estar declaradas entre os operadores de escopo "{" e "}". Opcionalmente, após o delimitador de escopo, uma ou mais variáveis do tipo definido pela estrutura podem ser declaradas. É importante notar que a sintaxe de estruturas requer que um delimitador de comandos ";" seja colocado ao final da declaração. struct endereco { char nome[30]; char rua[40]; char cidade[20]; char estado[2]; unsigned int numero; char CEP[8]; }; Exemplo 2 - definição de uma estrutura. O exemplo acima demonstra a declaração de uma estrutura que acomoda as informações requeridas por uma entrada num banco de endereços. Adicionalmente, podemos declarar quantas variáveis quisermos utilizando a estrutura definida. struct endereco end_info; Exemplo 3 - declaração de variáveis do tipo estrutura Referenciando Elementos de Estruturas (Operador Ponto) Podemos acessar os elementos de uma estrutura via o operador de referência ".". end_info.nome = "Misato Katsuragi"; cout << end_info.cidade; Exemplo 4 - acesso a elementos de uma estrutura usando o operador ".". Atribuição de Estruturas Similarmente ao que ocorre com relação a variáveis atômicas, podemos atribuir uma variável tipo estrutura a outra. struct endereco end1, end2; end1 = end2; Exemplo 5 - atribuição de estruturas. Ao atribuirmos uma estrutura a outra, todos os valores dos elementos da estrutura serão copiados. #include <iostream> using namespace std; int main() { struct { int a,b; } x, y; x.a = 10; y = x; cout << y.a; return 0; } Exemplo 6 - atribuição de estruturas Arrays e Estruturas Podemos criar arrays de estruturas. struct endereco end_info[1000]; cout << end_info[979].numero; cout << end_info[178].nome; Exemplo 7 Aplicação Prática Teórica SUGESTÃO DE EXERCÍCIOS PARA SEMANA 02 TEÓRICOS 1. Ano: 2012 / Banca: CESGRANRIO / Órgão: PETROQUÍMICA SUAPE / Prova: Analista de Infraestrutura Pleno A estrutura a seguir é usada para guardar os dados cadastrais dos alunos de uma turma. typedef struct aluno { int matric; char nome [31]; float media; } Aluno; Considere que um determinado sistema de informação necessite de uma função que realize uma busca em um vetor de alunos que esteja ordenado descendentemente pelo campo nome da estrutura anterior (variável nome). Dado que o vetor se encontra ordenado, a função em questão deverá implementar o algoritmo de busca binária. O cabeçalho dessa função deverá ser o seguinte: int busca(Aluno la[],char nm,int ini, int fin); A função irá receber o vetor ordenado de alunos (variável la) e o nome de um aluno qualquer (variável nm). Caso exista no vetor um aluno com o nome passado como parâmetro (variável nm), a função deverá retornar a sua posição no vetor de alunos, caso contrário a função deverá retornar o inteiro -1. Qual implementação atinge os objetivos descritos acima? a) b) c) d) e) PRÁTICOS 1. 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. 2. Construa uma declaração de struct em C++ que possa acomodar dados provenientes de uma tabela conforme o exemplo a seguir:
Compartilhar