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.
3 Estruturas de seleção<br />
3.1 O que é uma estrutura de seleção<br />
O último ex<strong>em</strong>plo do capítulo anterior apresentava um programa para calcular a área de um triângulo,<br />
dados os comprimentos dos seus lados. Foi visto que o comando que calculava a área solicitada só devia ser<br />
executado com a certeza anterior de que os valores dados como entrada poderiam ser comprimentos dos<br />
lados de um triângulo. Ou seja, o tal comando só deveria ser executado se x < y + z e y < x + z e z < x + y,<br />
condição que garante que os valores armazenados nas variáveis x, y e z são comprimentos dos lados de um<br />
triângulo. Assim, <strong>em</strong> algumas situações, alguns comandos só dev<strong>em</strong> ser executados se alguma condição for<br />
satisfeita.<br />
É muito fácil encontrar situações <strong>em</strong> que a execução de uma ou mais instruções deve estar<br />
condicionada ao fato de que uma condição seja satisfeita. Por ex<strong>em</strong>plo, ver<strong>em</strong>os algoritmos para ordenar<br />
uma relação de números que necessitam colocar <strong>em</strong> ord<strong>em</strong> crescente os conteúdos de duas variáveis. É óbvio<br />
que para ordenar <strong>em</strong> ord<strong>em</strong> crescente os conteúdos de duas variáveis x e y só é necessário se fazer alguma<br />
coisa se o conteúdo de x for maior que o conteúdo de y, ou seja, se x > y.<br />
Há situações também <strong>em</strong> que há necessidade de que se faça uma escolha entre duas ou mais<br />
sequências de instruções qual a sequência deve ser executada. Por ex<strong>em</strong>plo, se pretend<strong>em</strong>os verificar se um<br />
número n é par pod<strong>em</strong>os determinar o resto da divisão de n por 2. Se este resto for zero, então o número é<br />
par. Se este resto for 1, o número é ímpar.<br />
Vale l<strong>em</strong>brar que os algoritmos que o viver exige que execut<strong>em</strong>os diuturnamente são pontuados de<br />
escolhas e decisões: se não chover, ir<strong>em</strong>os para a praia, se chover, ir<strong>em</strong>os para o shopping; se estiver<br />
fazendo frio, vista um casaco.<br />
A verificação de que uma condição é satisfeita e, a partir daí, uma determinada sequência de<br />
comandos deve ser executada é chamada de estrutura de seleção, estrutura de decisão ou comando de<br />
seleção.<br />
3.2 O comando if<br />
O comando if é uma estrutura de decisão que decide se uma sequência de comandos será ou não<br />
executada. Sua sintaxe é<br />
if (Expressão)<br />
{<br />
sequência de comandos<br />
}<br />
sendo os delimitadores opcionais se a sequência de comandos contém um único comando.<br />
A s<strong>em</strong>ântica deste comando é muito simples: se o valor da Expressão for diferente de zero, o sist<strong>em</strong>a<br />
executará a sequência de comandos; caso contrário o sist<strong>em</strong>a não executará a sequência de comandos e a<br />
instrução após o comando if passa a ser executada.<br />
Por ex<strong>em</strong>plo, se quer<strong>em</strong>os um programa que determine o maior de dois números dados, pod<strong>em</strong>os<br />
supor que o primeiro deles é o maior, armazenando-o numa variável Maior e depois, através de um comando<br />
if, verificar se o maior procurado é o segundo dos números dados; neste caso o conteúdo da variável Maior<br />
deve ser alterado.<br />
/*Programa para determinar o maior de dois números dados */<br />
#include <br />
main()<br />
{<br />
float a, b, Maior;<br />
printf("Digite os dois numeros");<br />
scanf("%f %f", &a, &b);<br />
Maior = a;