22.10.2014 Views

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

9 Estruturas e Arquivos<br />

9.1 O que são estruturas<br />

Um vetor é capaz armazenar diversos valores, com a ressalva de que todos sejam de um mesmo tipo<br />

de dado. Um programa que gerencie os recursos humanos de uma <strong>em</strong>presa manipula dados de tipos<br />

diferentes relativos a cada um dos funcionários. Por ex<strong>em</strong>plo, para cada funcionário deve-se ter sua<br />

matrícula, seu nome, seu endereço, o cargo que ele ocupa, o número de seus dependentes, o seu salário, a<br />

data de admissão, etc. Observe que, nome, matrícula, endereço, data de admissão e cargo que ele ocupa<br />

pod<strong>em</strong> ser tratados com variáveis do tipo string, porém, como eventualmente haverá necessidade de se<br />

efetuar operações aritméticas com eles, o número de dependentes deve ser tratado como do tipo int e valor do<br />

salário, do tipo float.<br />

A utilização de uma variável simples para cada um destes el<strong>em</strong>entos, implicaria, como são vários<br />

funcionários, a necessidade de vários vetores, o que poderia atrapalhar a legibilidade e a manutenção do<br />

programa, al<strong>em</strong> de dificultar a possibilidade de armazenamento dos dados <strong>em</strong> disco, conforme ver<strong>em</strong>os<br />

numa seção posterior.<br />

Uma estrutura é um conjunto de variáveis, denominadas campos ou m<strong>em</strong>bros, que pod<strong>em</strong> ser de tipos<br />

diferentes. É comum se associar um identificador a uma estrutura, chamado etiqueta da estrutura, para que se<br />

possa definir uma variável deste tipo.<br />

A definição de uma estrutura é feita com a seguinte sintaxe:<br />

struct TEstrutura<br />

{<br />

Tipo de dado Identificador do campo 1;<br />

Tipo de dado Identificador do campo 2;<br />

. . .<br />

Tipo de dado Identificador do campo n;<br />

};<br />

onde, para cada campo, Tipo de dado pode ser qualquer tipo, até mesmo uma estrutura. Se esta declaração<br />

for feita fora de qualquer função, a estrutura TEstrutura será global e qualquer função do programa pode<br />

declarar uma variável capaz de armazenar valores de acordo com os tipos de dados dos campos, isto sendo<br />

feito a partir de uma declaração do tipo<br />

struct TEstrutura Identificador;<br />

Por ex<strong>em</strong>plo, para o programa do ex<strong>em</strong>plo acima poderíamos definir as estruturas<br />

struct TEndereco<br />

{<br />

char Rua[40];<br />

char Numero[5];<br />

char Bairro[10];<br />

char Cep[9];<br />

};<br />

struct TEstrutura<br />

{<br />

char Matricula[11];<br />

char Nome[40];<br />

struct TEndereco Endereco;<br />

int NumDependentes;<br />

float Salario;<br />

char Cargo[8];<br />

};<br />

e então uma função poderia ter uma variável declarada da seguinte forma:<br />

struct TEstrutura Registro;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!