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.
int NumItens, *Itens, *Quant;<br />
float *Valor;<br />
char S = 'n';<br />
do<br />
{<br />
clrscr();<br />
NumItens = Pedido(Itens, Quant, Valor);<br />
if (NumItens != 0)<br />
ExibePedido(Itens, Quant, Valor, NumItens);<br />
puts("Outro pedido (S/N)?");<br />
fflush(stdin);<br />
scanf("%c", &S);<br />
}<br />
while (toupper(S) != 'N');<br />
}<br />
7. Mostrar<strong>em</strong>os agora um ex<strong>em</strong>plo cujo objetivo é desenvolver o raciocínio recursivo utilizando<br />
vetores. Trata-se de uma função recursiva para a determinação da soma das componentes de um vetor, coisa<br />
já feita iterativamente no interior da função Media() desenvolvida no ex<strong>em</strong>plo 1. Ora, como uma função que<br />
trata vetores recebe s<strong>em</strong>pre o vetor e o seu tamanho, pod<strong>em</strong>os recursivamente “diminuir” o tamanho do vetor<br />
através do decr<strong>em</strong>ento do parâmetro respectivo até que o vetor “tenha apenas uma componente”, quando<br />
então a soma das componentes se reduzirá a esta “única” componente.<br />
/*Função recursiva que retorna a soma das componentes de um vetor*/<br />
int SomaCompRec(float *v, int t)<br />
{<br />
if (t == 1)<br />
return v[i – 1];<br />
else<br />
return v[t - 1] + SomaComRec(v, t – 1);<br />
}<br />
6.6 Vetores multidimensionais<br />
Na seção 6.1 foi dito que um vetor é um conjunto de variáveis de mesmo tipo, chamadas componentes<br />
do vetor. A linguag<strong>em</strong> C permite que as componentes de um vetor sejam também vetores, admitindo que se<br />
armazene uma matriz da mat<strong>em</strong>ática, uma tabela de dupla entrada que, por ex<strong>em</strong>plo, enumere as distâncias<br />
entre as capitais brasileiras ou um livro considerando a página, a linha e a coluna <strong>em</strong> que cada caractere se<br />
localiza.<br />
A declaração de um vetor multidimensional é uma extensão natural da declaração de um vetor<br />
unidimensional:<br />
Tipo de dado Identificador[n 1 ][n 2 ] ... [n k ];<br />
onde k indica a dimensão e n 1 , n 2 , ..., n k indicam o número de componentes <strong>em</strong> cada dimensão.<br />
Por ex<strong>em</strong>plo, a declaração<br />
int Mat[10][8];<br />
define um vetor de dez componentes, cada uma delas sendo um vetor de oito componentes. Ou seja, Mat é<br />
um conjunto de 10 x 8 = 80 variáveis do tipo int.<br />
Para um outro ex<strong>em</strong>plo, a declaração<br />
char Livro[72][30][30];<br />
define uma variável capaz de armazenar os caracteres de um livro com até setenta duas páginas, cada página<br />
possuindo trinta linhas e cada linha possuindo trinta colunas.<br />
A inicialização de um vetor multidimensional também segue o padrão da inicialização de um vetor<br />
unidimensional, com a ressalva de que as componentes, que agora são vetores, dev<strong>em</strong> estar entre chaves. Por<br />
ex<strong>em</strong>plo, se quiséss<strong>em</strong>os um vetor bidimensional para armazenar os números de dias dos meses do ano,<br />
fazendo a distinção entre anos bissextos e não bissextos poderíamos declarar e inicializar um vetor