Você está na página 1de 24

Disciplina Linguagem de Programação

Aula 05
Professor Cassiana Fagundes da Silva
Conversa Inicial

Olá! Seja bem-vindo ao quinto encontro da disciplina Linguagem de Programação!

Na aula de hoje, iremos estudar a struct, especificando-a e, principalmente compreendendo para que
serve, onde e quando deve ser usada.

Bons estudos!
Contextualizando

Analisando os conteúdos vistos até a aula de hoje, podemos dizer que o armazenamento de
dados sempre foi usado na memória do computador.

Esse encontro capacitará você a entender e aplicar os conceitos de manipulação de arquivos, ou


seja, permitirá que os valores armazenados e lidos, sejam de arquivos de dados.

No material online, confira o vídeo com a contextualização da aula preparada pela professora
Cassiana!
Objetivos da Aula

Proporcionar ao aluno o conhecimento necessário para que possa entender e classificar o


seguinte tema:

 Structs
Structs

Podem ser definidas como uma estrutura que agrupa variáveis com tipos de dados diferente e, sendo
cada posição nomeada e não indexada como os vetores. Podemos compor structs com variáveis do tipo
primitivo ou, com tipos derivados, e até compor struct com struct.

A ideia básica por trás desta estrutura é criar apenas um tipo de dado que contenha vários membros,
que nada mais são do que outras variáveis. Em outras palavras, estamos criando uma variável que
contém dentro de si outras variáveis.
A forma geral da definição de uma nova estrutura é utilizando o comando struct. Confira a seguir!

struct nome struct {


tipo1 campo1;

tipo2 campo2;

...
tipon campoN;
};

Agora, acompanhe a videoaula com a professora Cassiana, no material online, ela explicará os conceitos
básicos sobre as structs. Não perca!
A principal vantagem do uso de estruturas é a possibilidade de agrupar de forma organizada vários tipos
de dados diferentes dentro de uma única variável. Confira a seguir um exemplo de estrutura:
Observe que os campos de estrutura são definidos da mesma forma que variáveis, assim como os
nomes dos membros que devem ser diferentes um do outro. Confira o exemplo a seguir:

struct cadastro{
char nome[50];
int idade;
char rua[50];
int numero;
};
struct aluno{
char nome[50];
int matricula
float nota1,nota2,nota3;
}

Depois do símbolo de fecha chaves (g) da estrutura é necessário colocar um ponto e vírgula (;).;
A estrutura pode ser também declarada no No exemplo a seguir, duas variáveis (cad1 e
cad2) são declaradas junto com a definição da
escopo local. Por questões de simplificações e,
estrutura.
por se tratar de um novo tipo, é possível logo na
struct cadastro{
definição da struct definir algumas variáveis char nome[50];
desse tipo. Para isso, basta colocar os nomes das int idade;
char rua[50];
variáveis declaradas após o comando de fecha int numero;
chaves (g) da estrutura e antes do ponto de } cad1, cad2;
vírgula (;).
Uma vez definida a estrutura, uma variável pode ser declarada de modo similar aos tipos já existentes:

struct cadastro c;

O uso de estruturas facilita muito a vida do programador na manipulação dos dados do programa. Agora,
imagine ter que declarar quatro cadastros para quatro pessoas diferentes:

char nome1[50], nome2[50], nome3[50], nome4[50];


int idade1, idade2, idade3, idade4;

char rua1[50], rua2[50], rua3[50], rua4[50];


int numero1, numero2, numero3, numero4;
Uma vez definida uma variável do tipo da estrutura, é preciso poder acessar seus campos (ou
variáveis) para se trabalhar.

O operador de acesso aos campos da estrutura é o ponto (.). Ele é usado para referenciar os
campos de uma estrutura. O exemplo a seguir mostra como os campos da estrutura cadastro, definida
anteriormente, podem ser facilmente acessados:
Da mesma maneira que nos arrays, uma estrutura também pode ser inicializada,
independentemente do tipo das variáveis contidas nela. Para tanto, na declaração da variável do tipo da
estrutura, basta definir uma lista de valores separados por vírgula e delimitado pelo operador de chaves
{}.

Confira:

struct cadastro c = {“Carlos”,18,“Avenida Brasil”,1082 };

Nesse caso, também como nos arrays, a ordem é mantida. Isso significa que o primeiro valor da
inicialização será atribuído a primeira variável membro (nome) da estrutura e assim por diante.
Arrays de estrutura

Vimos que o uso de estruturas facilita muito a vida do programador na manipulação dos dados do
programa. Imagine, novamente, ter que declarar quatro cadastros, para quatro pessoas diferentes:

char nome1[50], nome2[50], nome3[50], nome4[50];


int idade1, idade2, idade3, idade4;

char rua1[50], rua2[50], rua3[50], rua4[50];


int numero1, numero2, numero3, numero4;
Utilizando uma estrutura, o mesmo poderia ser feito da seguinte maneira:

struct cadastro c1, c2, c3, c4;

A representação desses quatro cadastros pode ser ainda mais simplificada se utilizarmos o conceito de
arrays:

struct cadastro c[4];

Desse modo, cria-se um array de estruturas, cada posição do array é uma estrutura tipo cadastro.
A combinação de arrays e estruturas permite que se manipule de modo muito mais eficiente as
inúmeras variáveis de estrutura. Como vimos, no uso de arrays, a manipulação de um índice permite que
empreguemos o comando de repetição para executar uma mesma tarefa para diferentes posições do
array.

Confira na tela a seguir como os quatro cadastros anteriores podem ser lidos com o auxílio de um
comando de repetição!
Essa ordem deve ser respeitada pois o índice do array é que indica qual posição do array
queremos acessar. Cada posição do array é uma estrutura e, somente depois de definida quais das
estruturas contidas dentro do array queremos acessar é que é possível acessar seus campos.

Acompanhe as explicações trazidas pela professora Cassiana sobre a aplicação da sintaxe em


struct. Aproveite para revisar todo o conteúdo visto até agora! O vídeo está disponível no material
online.
Na Prática

Agora, vamos resolver alguns exercícios para ver se você fixou o conteúdo visto na
aula de hoje?

Responda às questões a seguir e, se tiver dúvidas, retorne ao conteúdo e refaça os testes!


QUESTÃO 1 – Sobre a struct, é correto afirmar:

a. É um tipo de estrutura de dados heterogênea.


b. Estrutura do tipo inteiro.
c. Possibilita a escrita de uma estrutura.
d. Lê um caractere no arquivo.
QUESTÃO 2 – Dentre as vantagens das structs, destaca-se:

a. Permite organizar vários tipos de dados diferentes dentro de uma única variável.

b. Permite retornar a posição corrente do arquivo para o início.

c. Escreve e lê blocos de dados.

d. Retorna um caractere lido do arquivo.


Gabarito da questão 1:

Alternativa A.

Gabarito da questão 2:

Alternativa A.
Síntese

Neste encontro, pudemos conhecer e aprender como trabalhar com o dado chamado struct. A partir
dos conhecimentos abordados na aula, podemos concluir que em relação a estruturas, teremos sempre
objetos que são relacionados a mais de um tipo de campo, e esses campos são diferentes entre si.

Não deixe de assistir a síntese preparada pela professora Cassiana, disponível o material online!

Até a próxima (e última) aula!


Referências Bibliográficas

BACKES, A. R. Linguagem C: descomplicada. Minas Gerais. Disponível em:


<http://www.joinville.udesc.br/portal/professores/fiorese/materiais/apostilaC_Univ_Fed_Uberlandia.pdf>.

DAMAS, L. Linguagem em C. 10ª ed. Trad. João Araujo Ribeiro, Orlando Bernardo Filho. Rio de
Janeiro: LTC, 2013.

LISBOA, E. F. A. Linguagem C. Rio de Janeiro, 2011. (Apostila). Disponível em:


<http://www.dainf.ct.utfpr.edu.br/~pbueno/Arquivos/ApostilaEricoLisboa.pdf>.

Santos, Henrique José dos. Linguagem de Programação C. (Apostila). Disponível em:


<http://www.dainf.ct.utfpr.edu.br/~adolfo/Disciplinas/ComputacaoI/Material/LinguagemProgrC.pdf>.