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.

Na verdade, ao se definir struct TEstrutura está se definindo um novo tipo de dado e isto justifica a<br />

definição de uma variável, no caso Registro, do tipo de dado struct TEstrutura. A linguag<strong>em</strong> C oferece uma<br />

outra forma de se definir um novo tipo de dado. Trata-se da declaração typedef que poderia ser utilizado para<br />

se definir a estrutura acima da seguinte forma:<br />

typedef struct<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 />

TEstrutura;<br />

Neste caso, a declaração de uma variável do tipo TEstrutura seria feita s<strong>em</strong> a referência ao tipo struct:<br />

TEstrutura Registro;<br />

A referência a um campo particular da estrutura se faz com a aposição do identificador da variável<br />

estrutura e o identificador do campo separados por um ponto. No ex<strong>em</strong>plo anterior poderíamos ter comandos<br />

do tipo<br />

Registro.Salario = 4500.00;<br />

scanf("%s", Registro.Matricula);<br />

gets((Registro.Endereco).Rua);<br />

sendo os parênteses de (Registro.Endereco).Rua não obrigatórios.<br />

9.2 Ex<strong>em</strong>plos Parte VII<br />

1. Vejamos um programa para controlar as vendas de uma loja, no sentido de, ao final do dia, seja<br />

exibida uma lista relacionando todos os produtos vendidos e os vendedores respectivos<br />

#include <br />

#include <br />

#include <br />

typedef struct<br />

{<br />

char Prod[20];<br />

char Vend[4];<br />

float Preco;<br />

}<br />

TVenda;<br />

void LeDados(TVenda v[100], int &t)<br />

{<br />

int i = 0;<br />

puts("Digite produto vendedor preço (p/ encerrar digite 0 para o produto");<br />

puts(“Produto”); scanf("%s", v[i].Prod);<br />

while (strcmp(v[i].Prod, "0") != 0)<br />

{<br />

fflush(stdin);<br />

puts(“Vendedor”);<br />

scanf("%s", v[i].Vend);<br />

puts(“Preço”);<br />

scanf("%f", &v[i].Preco);<br />

i++;

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

Saved successfully!

Ooh no, something went wrong!