Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

6ºAula
Structs
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
criar estruturas do tipo struct;
realizar leitura e escrita dos dados da struct;
criar vetores de struct.
Olá, Caros (as) alunos (as) 
Nesta aula, vamos estudar o conceito de struct na 
linguagem c++, vamos aprender que através dela podemos criar 
conjunto de dados, ou seja, vamos poder criar uma estrutura 
que armazene vários tipos de variáveis dentro dela.
Bons estudos!
163
Linguagem de programação II 38
1 - Estrutura (Struct)
2 - Como declarar uma struct
3 - typedef
1 - Estrutura (Struct)
Estruturas também são chamadas de agregações, são 
coleções de variáveis relacionadas, agrupadas sob um único 
nome. Estruturas podem ser variáveis de muitos tipos. A 
vantagem desse tipo de estrutura de dados é não precisar 
trabalhar de forma individual com cada tipo de variável. 
Com ela podemos trabalhar com um grupo de variáveis. Até 
agora sempre trabalhamos com tipo de dados separados, ou 
seja, tipo char, int .... No entanto, imagine uma estrutura que 
conseguisse agrupar um conjunto de tipos de variáveis. Existe 
uma estrutura chamada struct, onde é possível agrupar os mais 
variados tipos de variáveis nos possibilitando formar um 
bloco de informação. (AGUILAR, 2018)
Até agora vimos variáveis, array e ponteiros, no entanto, 
cada um tinha sua limitação, ou capacidade ou um tipo 
específico. Por exemplo, ao criarmos um vetor ele deve ser do 
tipo char, ou de inteiros, ou de floats etc. Ou seja, vetores não 
podem ser usados com tipos diferentes.
1.1 
Imagine a seguinte situação, precisamos criar um sistema 
que armazene todos os dados de clientes de um banco. Como 
poderíamos armazenar as idades deles?. Vamos supor que 
existem 400 funcionários. Sabemos que não vai declarar 
inteiro por inteiro, então vamos declarar um vetor de idades:
int idades[400];
E ainda temos que armazenar os nomes, portanto vamos 
reservar 50 caracteres por cada nome de pessoa. Então, temos 
um vetor de 400 vetores posições de strings, cada um com 50 
caracteres. Ficaria:
char nomes[300][50];
Da mesma forma, teríamos que criar vetores que 
armazenasse dados para os outros atributos, como idade, 
sexo, credito...
O grande problema desse modelo de programação é 
controlar todas essas informações soltas, por exemplo, como 
conseguiria encontrar a cliente de nome Maria. Vamos supor 
que ela se encontra na posição de número 60 do vetor de 
nomes, portanto teríamos que ir para posição 60 de todos os 
vetores declarados. Isso tudo é possível, no entanto muito 
trabalhoso, para resolver esse tipo de problema existem as 
estruturas structs.
1.2 - O que é uma struct em C
Struct, ou estrutura, é um bloco que armazenam diversas 
informações de diferentes tipos. Para o exemplo anterior 
Seções de estudo
poderíamos criar uma struct para cada funcionário, e dentro 
dessa estrutura ter variáveis do tipo string (ome), tipo int 
(para idade), tipo float (que armazenam o saldo), etc. E, cada 
estrutura teria um nome, que seria algo relacionado com o 
cliente. Assim, sempre que quiséssemos um dado de um 
funcionário, bastaríamos ter acesso a estrutura dele, e todas 
as informações viriam juntas. Na struct podemos definir a 
quantidade de elementos que quisermos. E após a utilização 
dessa estrutura podemos manipular as milhares de variáveis 
dos mais diversos tipos que tenha sido criado dentro dela. 
(AGUILAR, 2008) 
1.3 - Onde as structs em C++ são 
usadas
Structs são usadas quando temos elementos em nossos 
programas que precisam fazer uso de vários tipos de variáveis. 
Ao utilizarmos uma struct, podemos trabalhar com vários tipos 
de informações de uma maneira fácil, rápida e organizada 
(DAMAS,2016).
Geralmente utilizamos struct quando trabalhamos 
em sistemas que necessitam guardar conteúdos de forma 
agrupada, por exemplo, sistemas de estoque de produto, 
cadastro de pessoas.
2 - Como utilizar uma struct
2.1 - Como declarar uma struct
Como já vimos, uma struct nada mais é que um conjunto, 
ou bloco de variáveis. A declaração de uma struct é bem 
parecida com a declaração de uma função, primeiramente 
devemos escolher um tipo, nesse caso o tipo deve ser struct, 
em seguida o nome da struct, em seguida devemos abrir as 
chaves, depois temos o corpo da struct, e por fim, fechar as 
chaves seguido do ponto e vírgula. 
A sintaxe é a seguinte (AGUILAR, 2008).
struct Nome_de_sua_struct
{
 tipos nome_dos_tipos;
};
No corpo da struct somente é possível criar declarações 
de variáveis, não existe um limite de quantidade. Como 
exemplo vamos declarar uma struct para representar os dados 
de um cliente:
struct Cliente
{
int idade;
char *nome;
 saldo;
};
No exemplo podemos dizer agora que um cliente possui 
idade, nome e saldo. 
2.2 - O tipo struct
A palavra-chave struct introduz a declaração de estrutura. 
As variáveis declaradas dentro das chaves são conhecidas 
164
39
como membros da estrutura. Os membros da estrutura 
devem possuir nomes únicos.
Podemos ver as structs como um tipo de dado. 
Por exemplo, a declaração de “Cliente”, que foi utilizada 
anteriormente, pode ser vista como um novo de tipo de 
variável. É uma variável, ou um tipo, que define os Cliente. 
Essa abordagem é correta porque agora podemos criar novo 
tipo de variável, ou seja, é possível criar e declarar variáveis do 
tipo “struct Cliente”. (Deitel, 2008)
struct Cliente cliente1;
struct Cliente cliente2;
struct Cliente cliente3;
Sempre que declaramos uma nova struct do tipo Cliente, 
as variáveis dentro da struct são criadas automaticamente, ou 
seja, podemos dizer que cada cliente declarado possui um 
nome, idade e saldo. Outra maneira de declarar variáveis de 
um tipo struct é declarar esses elementos após as chaves na 
hora de criar a struct, por exemplo: (DAMAS,2016)
struct Cliente
{
int idade;
char *nome;
 salario;
}cliente1, cliente2, cliente3;
2.3 - Como escrever e ler elementos 
de uma struct em C
No código anterior, criamos 3 clientes, e todos eles terão 
os mesmos elementos internos, com os mesmos nomes: 
idade, nome e saldo.
Para diferenciar uma das outras é só char o nome 
declarado, por mais que os nomes internos sejam iguais, por 
fora são diferentes. Para acessar um elemento de uma struct 
podemos acessar ada seguinte Maneira.
Cliente1.idade;
Apenas isso, basta inserir um ponto após o nome que 
você escolheu para a struct. Após isso, estamos acessando 
normalmente a variável:
Vamos criar uma nova struct para tratar de alunos. Dentro 
dessa struct, criaremos uma variável para armazenar o nome 
do aluno, e outras para armazenar as notas de Matemática, 
Física e a média dessas duas notas. Após definir a struct com 
o nome “Alunos” e seus elementos, vamos declarar uma 
variáveis do tipo “struct Alunos”. (DEITEL, 2012)
#include 
using namespace std;
int main(void)
{
 struct Alunos
 {
 char nome[30];
 matematica, , media;
 };
 struct Alunos aluno;
 cout>aluno.nome;
 cout>aluno. ;
 cout>aluno.matematica;
 return 0;
}
No exemplo é realizado a declaração de uma struct local 
contendo três atributos de alunos. Verifique que para acessar 
as variáveis internas basta acrescentar o ponto na frente 
da struct. Podemos visualizar nos exemplos anteriores que 
podemos declarar várias variáveis de uma struct previamente 
declarada por exemplo: (DAMAS, 2016)
struct Aluno joaozinho;
struct Cliente cliente;
Na programação, o tipo aluno aparece como se fosse um 
tipo novo. Assim como o ‘int’, ‘float’ ou ‘char’, é como se 
existisse o tipo ‘struct Aluno’ e ‘struct Cliente’. No entanto, 
existe uma maneira mais simples de trabalhar com strunct 
através do typedef.
3 - Typedef
A palavra reservada typedef nada mais é do que um 
atalho em C++ para que possamos nos referir a um 
determinado tipo existente com nomes sinônimos. Por 
exemplo, com o typedef, em vez de termos que nos referir 
como ‘struct Aluno’,poderíamos usar somente ‘Aluno’ 
para criar structs daquele tipo. Em vez de escrever sempre 
‘struct Cliente’, poderíamos escrever apenas ‘Cliente’ e 
então declarar várias structs do tipo ‘Cliente’. Embora 
possamos criar atalhos com typedef para outros tipos, o 
typedef é comumente utilizado com structs. (AGUILAR, 
2008)
3.1 - Como declarar tipos com 
typedef
A utilização do typedef é bem simples, primeiro vem a 
palavra reservada typedef, acompanhada do tipo existente e 
nome escolhido para struts.
typedef tipo_existente nome_que_voce_escolheu;
 
Agora, podemos passar a nos referir ao tipo ‘tipo_existente’ 
com outro nome, como ‘nome_que_voce_escolheu’. Por 
exemplo, utilizando o typedef podemos definir outro nome 
para tipos existentes, como é apresentado abaixo.
typedef int meuInteiro; 
typedef char* String; 
typedef unsigned short int idade;
Baseado no exemplo anterior, agora podemos declarar 
um inteiro desta forma:
meuInteiro valor.
O código apresentado não apresenta nenhum erro, e 
agora a variável valor pode passar a receber números inteiros. 
Outro exemplo é que podemos criar atalhos para inteiro e 
ponteiro de char.
165
Linguagem de programação II 40
#include 
 
int main(void)
{
 typedef int meuInteiro;
 typedef char String[20];
 
 meuInteiro numero = 1;
 String nome;
 scanf(“%[^\n]s”, nome);
 
 printf(“A variavel do tipo ‘meuInteiro’ eh um int e 
vale %d\n”, numero);
 printf(“Ja a variavel ‘nome’ eh uma String e armazena 
\”%s\”\n”, nome);
 return 0;
}
Vimos que é possível utilizar o typedef em variáveis 
comuns, assim como é possível utilizar ele na utilização de 
struct. Quando utilizarmos o typedef com estruturas, não 
podemos declarar variáveis na criação da struct ou seja após 
o ponto-e-vírgula. No exemplo abaixo é representado a 
utilização fo typedef em uma estrutura do tipo struct.
typedef struct Alunos
{
//código da
//struct
} Aluno;
Após a declaração da struct utilizando o typedef, 
podemos criar nosssa variaveis da seguinte maneira.
Aluno joao, maria;
Esse código faz com que possamos 
chamar “struct Alunos” apenas por ‘Aluno’. 
Note que ‘Aluno’ não é uma variável do tipo struct, é apenas 
um atalho, uma maneira mais simples de dizer ‘struct Alunos’. 
Outro exemplo de sintaxe de typedef com estruturas é a 
seguinte, onde não precisamos criar o nome da struct, apenas 
do sinônimo: (DAMAS, 2016)
typedef struct
{
//código da
//struct
} Alunos;
Após a utilização do typedef é possível declarar uma 
struct do tipo Alunos, sendo assim, o uso do typedef deixa 
mais fácil a declaração de structs. Para exemplificar vamos 
criar um coidgo que declare, preencha e acesse elementos de 
uma struct.
#include 
int main(void)
{
typedef struct
{
char nome[30];
 matematica, , media;
} Alunos;
 Alunos alunos[DIM];
int count;
for(count = 0 ; count . Acesso em: 23 de ago. de 2018.
Uso de Estruturas de Dados Heterogêneas. Disponível 
em: . Acesso em: 23 de ago. de 2018.
Vale a pena acessar
Structs - Typedef e Parâmetros. Disponível em: 
. 
Acesso em: 23 de ago. de 2018.
Passar e Receber Estruturas à uma Função. 
Disponível em: . Acesso em: 23 de ago. de 2018.
Vale a pena assistir
Vale a pena
Minhas anotações
167

Mais conteúdos dessa disciplina