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

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;

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

Saved successfully!

Ooh no, something went wrong!