Buscar

AULA 2

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Estrutura de Dados
UNIDADE I - Agregados Homogêneos e Heterogêneos
Structs
Elionai Gomes de Almeida Sobrinho
STRUCTS
2.1 Uso das estruturas heterogêneas definidas pelo programador
a maioria dos problemas modelados necessitam de uma representação dos dados composta por diferentes tipos simultaneamente, tais como, string, inteiros, datas, etc. Esta variação de tipos de dados é permitida na composição de uma estrutura de dados heterogênea.
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
2
STRUCTS
O exemplo a seguir, ilustra a utilização de struct. 
struct DADOS_ALUNO{ 
int CodAluno; 
char Nome[100]; 
int Turma; 
}; 
2.2 Tipos de elementos que podem ser membros de uma estrutura
Basicamente todos os tipos de variáveis em C++ podem ser utilizadas como membros de uma estrutura. 
Os membros mais comuns são: int, char, float etc.
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
3
STRUCTS
2.3 Definição e declaração de estruturas heterogêneas localmente e globalmente
No exemplo a seguir, a estrutura heterogênea foi declarada localmente dentro da função main(). Isto implica que a estrutura somente poderá ser utilizada dentro da função main(). 
#include <iostream>
using namespace std;
void main(){
struct DADOS_ALUNO{
int CodAluno;
char Nome[100];
int Turma;
 };
struct DADOS_ALUNO AlunoA;
AlunoA.CodAluno = 10;
strcpy(AlunoA.Nome, "Gabriela");
AlunoA.Turma = 250;
cout << "Código do Aluno: "<<AlunoA.CodAluno<< endl;
cout << "Nome: " << AlunoA.Nome << endl;
cout << "Turma: " << AlunoA.Turma << endl;
system("pause > null");
}
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
4
STRUCTS
Inicialmente foi definida uma estrutura chamada DADOS_ALUNO com três variáveis membros: CodAluno, Nome e Turma.
struct DADOS_ALUNO{
int CodAluno;
char Nome[100];
int Turma;
};
Uma vez a estrutura definida, é possível declarar variáveis do tipo DADOS_ALUNO.
struct DADOS_ALUNO AlunoA;
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
5
STRUCTS
Os membros da estrutura podem ser acessados através do operador ponto. O programa atribui valores aos membros da estrutura e em seguida exibiu os valores na tela. 
Uma observação nesse trecho é em relação ao membro AlunoA.Nome. Por ser um vetor do tipo char, não é possível lhe atribuir um texto diretamente. Neste caso é utilizado a função strcpy(...). A função strcpy(destino, origem) copia um texto origem para dentro de uma variável destino. 
AlunoA.CodAluno = 10; 
strcpy(AlunoA.Nome, "Gabriela"); 
AlunoA.Turma = 250; 
cout << "Código do Aluno: " << AlunoA.CodAluno << endl; 
cout << "Nome: " << AlunoA.Nome << endl; 
cout << "Turma: " << AlunoA.Turma << endl; 
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
6
STRUCTS
Para que possa ser utilizada por todas as funções que possam ser criadas dentro da aplicação, a estrutura deve ser declarada globalmente, ou seja, fora da função main(). 
void main(){
AlunoA.CodAluno = 10;
strcpy(AlunoA.Nome, "Gabriela");
AlunoA.Turma = 250;
cout << "Código do Aluno: " << AlunoA.CodAluno << endl;
cout << "Nome: " << AlunoA.Nome << endl;
cout << "Turma: " << AlunoA.Turma << endl;
system("pause > null");
}
#include <iostream> 
using namespace std; 
struct DADOS_ALUNO{ 
int CodAluno; 
char Nome[100]; 
int Turma; 
}; 
struct DADOS_ALUNO AlunoA; 
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
7
STRUCTS
2.4 Construção de funções usando estruturas heterogêneas
#include <iostream> 
using namespace std; 
struct DADOS_ALUNO{ 
int CodAluno; 
char Nome[100]; 
int Turma; 
}; 
As estruturas podem ser passadas para funções da mesma forma como são feitas com as variáveis. O tipo do parâmetro da função, que recebe a estrutura, deve ser do mesmo tipo desta estrutura. No exemplo a seguir a variável AlunoA foi passada para a função Imprimir(...). Notem que o tipo do parâmetro que recebe a variável é do tipo da estrutura DADOS_ALUNO.
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
8
STRUCTS
2.4 Construção de funções usando estruturas heterogêneas
void Imprimir(DADOS_ALUNO Aluno); 
void main(){ 
struct DADOS_ALUNO AlunoA; 
cout << "Digite o código do aluno: "; 
cin >> AlunoA.CodAluno; 
cout << "Digite o nome do aluno: "; 
cin >> AlunoA.Nome; 
cout << "Digite a turma: "; 
cin >> AlunoA.Turma; 
// Envia a estrutura para ser impressa na tela 
Imprimir(AlunoA); 
system("pause > null"); 
} 
void Imprimir(DADOS_ALUNO Aluno){ 
cout << "Código do Aluno: " << Aluno.CodAluno << endl; 
cout << "Nome: " << Aluno.Nome << endl; 
cout << "Turma: " << Aluno.Turma << endl; 
} 
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
9
EXERCÍCIOS
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:
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
10
EXERCÍCIOS
3. 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
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
11
EXERCÍCIOS
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?.
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
12
EXERCÍCIOS
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
13
EXERCÍCIOS
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
14
EXERCÍCIOS
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
15
EXERCÍCIOS
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa
pedir. 
Acesse no celular, no tablet ou no computador. 
16
EXERCÍCIOS
NA IMAGEM (RETIRAR A VÍRGULA E COLOCAR “TABLET” EM ITÁLICO):
Tão simples que você nem precisa pedir. 
Acesse no celular, no tablet ou no computador. 
17
Referência:
RICARDO BALIEIRO. Estrutura de Dados
Obrigado!

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes