Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
4. Estruturas de repetição<br />
4.1 Para que serv<strong>em</strong> as estruturas de repetição<br />
Um locutor brasileiro ao narrar um jogo de futebol americano nos Estados Unidos recebe a informação<br />
do placar eletrônico sobre a t<strong>em</strong>peratura do estádio medida <strong>em</strong> graus Fahrenheit. Naturalmente, ele deve<br />
fornecer aos telespectadores brasileiros a t<strong>em</strong>peratura <strong>em</strong> graus Celsius. Para isto, o locutor, de posse de um<br />
computador, poderia utilizar o programa abaixo, que foi solicitado no primeiro it<strong>em</strong> do segundo exercício da<br />
seção 2.12.<br />
/*Programa que converte uma t<strong>em</strong>peratura dada <strong>em</strong> graus Fahrenheit para graus Celsius*/<br />
#include <br />
main()<br />
{<br />
float Fahrenheit, Celsius;<br />
printf("Digite a t<strong>em</strong>peratura <strong>em</strong> Fahrenheit");<br />
scanf("%f", &Fahrenheit);<br />
Celsius = 5 * (Fahrenheit - 32)/9;<br />
printf("A t<strong>em</strong>peratura de %.2f Fahrenheit corresponde a %.2f Celsius ", Fahrenheit, Celsius);<br />
}<br />
Se o placar eletrônico indicasse uma t<strong>em</strong>peratura de 60 o F, o narrador executaria o programa com a<br />
entrada 60 e receberia a saída<br />
A t<strong>em</strong>peratura de 60 graus Fahrenheit corresponde a 15.55 graus Celsius<br />
Certamente, seria mais prático a produção da transmissão do evento disponibilizar para o locutor uma<br />
tabela contendo as t<strong>em</strong>peraturas possíveis <strong>em</strong> graus Fahrenheit e as correspondentes <strong>em</strong> graus Celsius. A<br />
confecção desta tabela poderia ser feita através de um programa que contivesse vários comandos que<br />
calculass<strong>em</strong> para cada t<strong>em</strong>peratura <strong>em</strong> graus Fahrenheit pretendida a correspondente t<strong>em</strong>peratura <strong>em</strong> graus<br />
Celsius e exibiss<strong>em</strong> estas t<strong>em</strong>peraturas. Neste caso, não haveria necessidade de comando de entrada; porém,<br />
para cada t<strong>em</strong>peratura <strong>em</strong> graus Fahrenheit pretendida, haveria, pelo menos, um comando de atribuição e a<br />
chamada da função printf(). Se a faixa de t<strong>em</strong>peratura <strong>em</strong> graus Fahrenheit a ser coberta pela tabela fosse de<br />
vinte a oitenta graus, teríamos um programa como o programa abaixo.<br />
/*Programa (muito ruim) que gera uma tabela de conversão de t<strong>em</strong>peraturas <strong>em</strong> graus Fahrenheit para<br />
graus Celsius */<br />
#include <br />
main()<br />
{<br />
int Fahrenheit;<br />
printf("Tabela de conversao graus Fahrenheit/graus Celsius \n");<br />
printf("-------------------------------------------------\n");<br />
printf("\t Fahrenheit \t | \t Celsius\n");<br />
printf("-------------------------------------------------\n");<br />
Fahrenheit = 10;<br />
printf("\t %f \t | \t %f \n", Fahrenheit, 5.0*(Fahrenheit - 32)/9);<br />
Fahrenheit = 11;<br />
printf("\t %f \t | \t %f \n", Fahrenheit, 5.0*(Fahrenheit - 32)/9);<br />
. . .<br />
/*Mais "uma porção" de comandos! */<br />
Fahrenheit = 80;<br />
printf("\t %f \t | \t %f \n", Fahrenheit, 5.0*(Fahrenheit - 32)/9);<br />
}<br />
Isto seria contornado se pudéss<strong>em</strong>os repetir a execução dos comandos que gerariam as t<strong>em</strong>peraturas<br />
<strong>em</strong> graus Fahrenheit e as correspondentes <strong>em</strong> graus Celsius. A linguag<strong>em</strong> C possui os comandos for; while e