Você está na página 1de 6

213

Aula 5º

Estruturas condicionais

Prezado(a) aluno(a), iniciaremos a Aula 5 adquirindo


algumas noções básicas de Estruturas Condicionais. Estruturas
como essas são conhecidas como estruturas de decisão ou de
seleção e se caracterizam pela execução de determinados códigos
de programação dependendo da veracidade de uma condição. É
a estrutura que permite a tomada de decisão, em um Algoritmo,
mediante a análise lógica de uma condição.
Com o conhecimento deste conceito poderemos estabelecer
condições para que comandos sejam executados ou não. Será
fundamental para entendermos o raciocínio utilizado na solução
dos problemas em informática, acadêmicos, profissionais ou
outros. Interessante, não é mesmo?
Então, para ampliar ao máximo sua capacidade de construir
conhecimentos sobre as estruturas condicionais, é importante
que organize conscientemente o material que pretende estudar
e planeje o tempo que lhe dedicará. Sempre será um tempo
estimativo, porque haverá temas que consumirão mais tempo do
que o esperado e outros, muito menos.
Pense nisso e boa aula!
Boa aula!

Objetivos de aprendizagem

Ao término desta aula, o aluno será capaz de:

‡GHILQLU(VWUXWXUDV&RQGLFLRQDLVUHFRQKHFHUVXDLPSRUWkQFLDHDSOLFiODQDFRQVWUXomRGHDOJRULWPRV
‡FRQFHLWXDUHLQWURGX]LURWHUPR(VWUXWXUDV&RQGLFLRQDLV
‡GHVHQYROYHUHRXDPSOLDUDFDSDFLGDGHGHSHUFHSomRGDFRQGLomRGDHVWUXWXUDHXWLOL]iOD
214 Algoritmo e Programação 28
Exemplo 10 – Ler quatro valores referentes a quatro
Seções de estudo notas escolares de um aluno e imprimir a média da nota do
aluno. Se a média for maior que 7 escreva a média e a frase
“aluno aprovado”.
1 - Estruturas condicionais
algoritmo “Média”
var
1 - Estruturas condicionais media, P1, P2, P3, P4: real
Até o presente momento, utilizamos as estruturas de inicio
processamento de entrada e saída que compõem os Algoritmos leia (P1)
puramente sequenciais. Isso quer dizer que aprendemos a leia (P2)
utilizar as variáveis, as constantes e os operadores aritméticos. leia (P3)
Se utilizarmos como referência o exemplo do cálculo leia (P4)
da média dos alunos, é possível perceber que foram usados media < - (P1 + P2 + P3 + P4) / 4
apenas as entradas simples das notas e o cálculo da média. se (media >= 7) entao
Desse modo, será necessária a aplicação de novas estruturas, escreva (media,“Aluno Aprovado”)
se desejarmos que o Algoritmo também nos apresente uma fimse
mensagem dizendo “se” o aluno foi aprovado ou reprovado, fimalgoritmo
no caso de sua nota ter sido maior ou igual a 7. Em outras
palavras, são necessárias as estruturas condicionais. Veja como fica com o teste de mesa:

Teste de Mesa (Média, P1, P2, P3, P4)


4XDODȴQDOLGDGHGHXVDUPRVDV(VWUXWXUDV&RQGLFLRQDLV"
M P1 P2 P3 P4
10
1.1 - Desvio condicional simples
(se......então) 10
5
Esta é a estrutura básica de controle em quase todas as 8
linguagens de programação.
Essa instrução tem por finalidade representar a tomada de 8,25
uma decisão. Esse comando nos fornece a habilidade de fazer 8,25
uma decisão simples, se uma dada condição for verdadeira. )LJXUD7HVWHGHPHVD 0«GLD3333 
Sintaxe: Fonte: acervo pessoal.

se <condição> entao Note que quando chegarmos à comparação (Média


<comando1> >=7), o programa irá analisar: se a média for maior ou igual a
<comando2> 7 (verdadeiro) ele irá imprimir a média, caso contrário, irá sair
...... sem nenhum valor.
<comandon> Exemplo 11 – Entre com dois valores inteiros, efetue a
fimse soma desses valores, e caso a soma seja maior que 10, escreva
esse valor.
Note que o bloco de comandos será executado se a algoritmo “Soma”
condição for verdadeira. Caso a condição seja falsa, a execução var
do Algoritmo não executará o bloco de comandos e passará o A, B : inteiro
controle para a linha imediatamente após o “fim-se”. X: real
inicio
1D)LJXUDYRF¬SRGHU£HQWHQGHUPHOKRURTXHHVWDPRVDȴUPDQGR leia (A)
2EVHUYHDFRPDWHQ©¥R leia (B)
X < - (A + B)
se ( X >= 10) entao
escreva (“Valor de X:”, X)
([SUHVV¥R F fimse
booleana fimalgoritmo

E aí, como está sua aprendizagem sobre as Estruturas Condicionais?


V
Está achando simples ou complicado? Independentemente de sua
Comandos resposta, é importante lembrar que no decorrer do estudo desta e das
demais Aulas, você terá a oportunidade de entender cada vez melhor
os conteúdos estudados. Para tanto, é fundamental que além de ler
)LJXUD'LDJUDPDGHȵX[R6((17…2
esse material, faça pesquisas, consulte referências e interaja com seus
Fonte: acervo pessoal.
29 215
leia (B)
FROHJDV GH FXUVR H FRP VHX SURIHVVRU $ȴQDO YRF¬ « R SHUVRQDJHP se A > B entao
SULQFLSDO GH VXD DSUHQGL]DJHP &RQWH FRQRVFR QHVWD HPSUHLWDGD H escreva (“A é maior que B”)
SDUWLFLSH senao
escreva (“ é maior que A”)
fimse
1.2 - Desvio condicional composto fimalgoritmo
(se.....então.....senão)
Tomem cuidado com a colocação das (‘ aspas simples)
A estrutura de decisão à qual nos referimos neste tópico é ou (“ aspas duplas), pois para o interpretador VisuAlg existe
usada quando a ação a ser executada depende de uma inspeção diferença entre a colocação delas.
ou teste. Ela nos fornece a habilidade de executar um comando Exemplo 13: leia o salário e nome de dois funcionários e
composto, se determinada condição for verdadeira ou falsa. verifique qual salário é maior. Escreva o nome do funcionário
Para tanto, ela primeiro testa se a condição é verdadeira. com salário maior. Se for menor escreva “quero aumento”:
Sendo verdadeira, executa um comando. Caso a condição seja algoritmo “Salário”
falsa, o programa executará outro comando. Veja: var
Sintaxe: func01, func02: caractere
se <condição> entao valor01, valor02: inteiro
<comando1> inicio
<comando2> escreva (“Funcionário:”)
...... leia (func01)
<comandon> escreva (“Salário:”)
senao leia (valor01)
<comando1> escreva (“Funcionário:”(
<comando2> leia (func02)
...... escreva (“Salário:”)
<comandom> leia (valor02)
fimse se valor01 > valor02 entao
escreva (func01)
Observe que a sequência de comandos do bloco “então”
senao
será executada caso a condição seja verdadeira. Se a condição
escreva (“Quero Aumento”)
for falsa, executará a sequência de comandos do bloco “senão”.
fimse
Confira a Figura 5.3:
fimalgoritmo

Atenção: esquecer uma ou duas chaves que delimitam um comando


SRGH OHYDU D HUURV GH VLQWD[H RX HUURV GH OµJLFD GH XP SURJUDPD
Lembre-se disso...
Verdadeiro-então Falso-então
([SUHVV¥R
booleana
1.3 - Desvios condicionais
encadeados
Comando "C1" Comando "C2" Desvios condicionais encadeados ocorrem quando
necessitamos fazer algumas verificações lógicas de condições
sucessivamente.
Nesses casos, uma determinada ação de um Algoritmo
)LJXUD'LDJUDPDGHȵX[R6((17…26(1…2
somente pode ser executada se um conjunto anterior de
Fonte: acervo pessoal. condições for verificado. Assim, quando uma ação é executada
Viu como a sintaxe de estrutura condicional é algo simples ela pode levar as outras condições, não havendo limites. Isso
que você pode se habituar a fazer? Agora, para sedimentar sua nos leva a uma estrutura encadeada.
aprendizagem, sugiro que pare um minuto, reflita sobre o que Quando há um encadeamento de testes, o Algoritmo
aprendeu para, depois, continuar o raciocínio no próximo possui um comando de decisão dentro de outro. Isso fica
exemplo: localizado internamente ao Então ou ao Senão.
Exemplo 12: dados dois números, determinar o maior Sintaxe:
entre eles: se <condição> entao
algoritmo “MaiorNúmero” <comando1>
var senao
A, B: inteiro se <condição> entao
inicio <comando1>
leia (A) senao
216 Algoritmo e Programação 30
<comando2> a) Para salário < do que 500, o reajuste será de 15%.
fimse b) Para salário >= 500 mas <= 1000, o reajuste será de
fimse 10%.
c) Para salário > 1000, o reajuste será de 5%.
8ID ΖVVR SDUHFH FRPSOLFDGR PDV QD ȴJXUD DEDL[R HVW£ WXGR algoritmo “Salário”
H[SOLFDGLQKR9HMDP var
salario, Nsal : real
inicio
Falso-senão Sim-então leia (salario)
Condição 1
se (salario < 500) entao
Nsal < - (salario * 15)/100 + salario
senao
Falso-senão Sim-então se ((salario>= 500) e (salario <= 1000)) entao
Condição 2 Nsal < - (salario * 10)/100 + salario
senao
Nsal < - (salario * 5)/100 + salario
Comando "C2" Comando "C3" Comando "C1" fimse
fimse
escreva (“Seu Salário:”, Nsal)
fimalgoritmo
Exemplo 16: considere o problema a seguir, entre com
o número de matrícula de um aluno, faça um Algoritmo
que imprima o mês de pagamento da anuidade, utilizando a
)LJXUD'LDJUDPDGHȵX[RGDHVWUXWXUD
Fonte: acervo pessoal. expressão Final = Matrícula / 10. Sendo que:
a) Final= 0 – Janeiro.
Veja que nesse caso “se” testa primeiro a condição
b) Final=1 – Fevereiro.
1 e verifica se ela é verdadeira. Se for, então ele executa o
c) Final=2 – Março.
“comando c1”. Caso a condição 1 seja falsa, ele executará a
d) Final= 3 – Abril.
“condição 2”. Novamente ele verifica se ela é verdadeira. Se
e) Outro final – Maio.
for, ele executa o “comando C3”. Se for falso, ele executa o
“comando C2”. algoritmo “Mensalidade”
Exemplo 14: dados dois números, determinar o maior var
entre eles, ou se eles são iguais: Matricula: inteiro
algoritmo “Maior Número 2” Final: real
var inicio
A, B: inteiro escreva (“Forneça o número de Matrícula:”)
inicio leia (Matrícula)
leia (A) Final < - Matricula / 10
leia (B) se Final = 0 entao
se A > B entao escreva (“Pagamento em Janeiro”)
escreva (‘A é maior que B”) senao
senao se Final = 1 entao
se A = B entao escreva (“Pagamento em Fevereiro”)
escreva (“A é igual a B”) senao
senao se Final = 2 entao
escreva (“B é maior que A”) escreva (“Pagamento em Março”)
fimse senao
fimse se Final =3 entao
fimalgoritmo escreva (“Pagamento em Abril”)
senao
O entendimento detalhado de um problema é um fator que diferencia escreva (“Pagamento em Maio”)
uma solução algorítmica da outra. Assim, quanto mais se conhece fimse
sobre o problema em questão, maiores as chances de se criar fimse
VROX©·HVPDLVDGHTXDGDVHȴFLHQWHVHHȴFD]HV3HQVHQLVVR fimse
fimse
fimalgoritmo
Exemplo 15: considere o problema a seguir, no qual
se estabelecem três condições para se calcular o reajuste de Exemplo 17: entre com três números inteiros e calcule o
salário de um funcionário: maior número entre eles.
31 217
algoritmo “MaiorNúmero” <comando1>
var <comando2>
A, B, C : inteiro ......
inicio <comandon>
escreva (“Entre com o primeiro número:”) fimescolha
leia (A)
escreva (“Entre com o segundo número:”) Observe o esquema desta estrutura condicional.
leia (B)
escreva (“Entre com o terceiro número:”)
leia (C)
se (A > B) e (A > C) entao
escreva (“O número maior é:”, A)
senao
se (B > C) entao
escreva (“O número maior é:”, B)
senao
escreva (“O número maior é:”, C) )LJXUD'LDJUDPDGHȵX[R(6&2/+$&$62
fimse Fonte: acervo pessoal.

fimse
Para exemplificar a vantagem oferecida por esta estrutura,
fimalgoritmo
imagine a seguinte situação: você deseja criar um algoritmo para
uma calculadora, o usuário digita o primeiro número, a operação
Compreenderam? que deseja executar e o segundo número. Dependendo do que
Condição: comparação que somente possui dois valores possíveis o usuário informar como operador, o algoritmo executará um
(verdadeiro ou falso); cálculo diferente (soma, subtração, multiplicação ou divisão).
8WLOL]DDVSDODYUDVFKDYH HQW¥RVHQ¥RȴPVH Vejamos como seria esse algoritmo implementado com o
Simples, vocês não acham? desvio condicional SE......ENTÃO......SENÃO.
algoritmo “Calculadora1”
var
1.4 - Estrutura de seleção múltipla numero1: real
(Escolha......caso) numero2: real
O uso desta estrutura proporciona uma solução elegante operacao: caractere
quanto se tem vários desvios condicionais (SE......ENTÃO...... resultado: real
SENÃO) encadeados. Ou seja, quando outras verificações são inicio
realizadas caso a anterior tenha falhado (ou seja, o fluxo do escreva (“Digite o primeiro número: “)
algoritmo entrou no bloco SENÃO). A proposta da estrutura leia (numero1)
ESCOLHA......CASO é permitir ir direto ao bloco de código escreva (“Digite a operação: “)
desejado, dependendo do valor de uma variável de verificação. leia (operacao)
Porém, esta estrutura só pode ser usada em situações onde a escreva (“Digite o segundo número: “)
verificação é feita apenas com valores fixos e não em um intervalo. leia (numero2)
se operacao = “+” entao
Sintaxe: resultado < - numero1 + numero2
senao
escolha <variável de verificação> se operacao = “-” entao
caso <valor1> resultado < - numero1 - numero2
<comando1> senao
<comando2> se (operacao = “*”) entao
...... resultado < - numero1 * numero2
<comando n> senao
caso <valor2> se operacao = “/” entao
<comando1> resultado < - numero1 / numero2
<comando2> fimse
...... fimse
<comandon> fimse
caso <valor3> fimse
<comando1> escreva (“Resultado: “, resultado)
<comando2> fimalgoritmo
......
<comandon> Observe como o desvio condicional encadeado deixa o
outrocaso código mais complexo. É possível a compreensão da lógica,
218 Algoritmo e Programação 32
porém não é muito elegante. Agora vamos ver como ficaria a
mesma lógica com a estrutura ESCOLHA......CASO.
&DVR YRF¬ WHQKD ȴFDGR FRP G¼YLGDV VREUH D $XOD  DFHVVH DV
algoritmo “Calculadora2”
ferramentas “fórum”, “quadro de avisos” ou “chat” e interaja com seus
var
colegas de curso e com seu professor. Lembre-se de que você faz
numero1: real
parte de uma comunidade colaborativa de conhecimento... Portanto,
numero2 : real
HVWDUHPRVHVSHUDQGRVXDSDUWLFLSD©¥R
operacao : caracter
resultado : real
inicio
escreva (“Digite o primeiro número: “) Vale a pena
leia (numero1)
escreva (“Digite a operação: “)
leia (operacao)
escreva (“Digite o segundo número: “)
Vale a pena ler
leia (numero2)
escolha operacao DEITEL, H. M. C++: como programar. Tradução de
caso “+” Carlos Arthur Lang Lisboa e Maria Lúcia Lang Lisboa. 3. ed.
resultado < - numero1 + numero2 Porto Alegre: Bookman, 2001.
caso “-” SENNE, Edson Luiz França. Primeiro Curso de
resultado < - numero1 - numero2 Programação em C. 2. ed. Florianópolis: Visual Books, 2006.
caso “*”
resultado < - numero1 * numero2
caso “/”
resultado < - numero1 / numero2
outrocaso
escreva(“Operação digitada inválida!”)
Vale a pena acessar
fimescolha
escreval (“Resultado: “, resultado) SOUZA, E. Estruturas condicionais. Disponível em:
fimalgoritmo <http://blog.ericksouza.com/31/>. Acesso em: 28 jun.
2011.
UFERSA - Universidade Federal Rural do Semi-Árido.
Informática aplicada – aula 6. Disponível em: <http://www2.
ufersa.edu.br/portal/view/uploads/setores/164/arquivos/
Retomando a aula InformaticaAplicada/Aula06_sequencial_apresentacao_1.
pdf>. Acesso em: 28 jun. 2011.
WIKILIVROS. Estrutura condicional. Disponível
em: <http://pt.wikibooks.org/wiki/Pascal/Estrutura_
Condicional>. Acesso em: 28 jun. 2011.

Para encerrar a Aula 5, convido você a recordar o


que estudamos aqui:

Vale a pena assistir

1 - Estruturas Condicionais GRAN CURSO. Episódio 44 - Estruturas


condicionais. Disponível em: <http://www.youtube.com/
Na primeira e única Seção da Aula 5 você teve a watch?v=MrwWdS_HNzQ>. Acesso em: 28 jun. 2011.
oportunidade de construir conhecimentos sobre Estrutura
Condicional, a qual é capaz de garantir que nosso pensamento
proceda corretamente e que cheguemos a conclusões Minhas DQRWD©·HV
coerentes, podendo diferenciá-las por meio do programa
entre verdadeiras e falsas.
Vimos ainda que a aplicação de Estruturas Condicionais
é fundamental para a construção de Algoritmos e, por
conseguinte, programas logicamente estruturados para atingir
os objetivos almejados pelo(s) seu(s) criador(es).
É importante observar que os conhecimentos construídos
nesta Aula são fundamentais e servem como base de muitos
outros conhecimentos importantes para o profissional que
atua ou pretende atuar na área de programação.

Você também pode gostar