Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
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++;