Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante   Click to listen highlighted text! Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante

Lógica de Programação – Teórica – Aula 04

Estruturas de Decisão

AULA 04 — Estruturas de Decisão: Fazendo Escolhas nos Algoritmos

Parte 1 – Introdução à Tomada de Decisão

Tema da aula: Como um algoritmo decide qual caminho seguir?


Objetivos da aula

Ao final desta parte você será capaz de:

  • compreender por que algoritmos precisam tomar decisões;
  • identificar situações que exigem escolhas;
  • compreender o conceito de condição;
  • diferenciar uma expressão aritmética de uma expressão relacional;
  • utilizar corretamente os operadores relacionais;
  • interpretar o resultado de uma comparação.

A pergunta da aula

Nas aulas anteriores aprendemos que um algoritmo:

  • recebe dados;
  • realiza um processamento;
  • apresenta um resultado.

Até aqui, todos os algoritmos executavam exatamente as mesmas instruções.

Mas será que isso acontece em todos os problemas?

A resposta é não.

Existem situações em que o algoritmo precisa decidir qual ação executar.

Essa capacidade de escolher entre diferentes caminhos torna os algoritmos muito mais úteis e inteligentes.


Situação-Problema

Imagine que uma escola deseja desenvolver um sistema para informar automaticamente o resultado final de seus estudantes.

Ao final do semestre, o professor informa a média de cada aluno.

Observe alguns exemplos.

Aluno Média
Ana 9,2
Bruno 7,5
Carlos 6,0
Daniela 3,8

Todos os alunos passaram pelo mesmo processo de avaliação.

No entanto, eles não receberão exatamente a mesma resposta.

Alguns serão aprovados.

Outros ficarão em recuperação.

Outros serão reprovados.

Surge então uma pergunta importante.

Como o computador sabe qual mensagem deve mostrar para cada aluno?

Ele precisa analisar uma condição antes de decidir.

É exatamente esse mecanismo que estudaremos nesta aula.


Decisões fazem parte da nossa vida

Muito antes dos computadores existirem, as pessoas já tomavam decisões o tempo todo.

Observe algumas situações.

Exemplo 1

Se estiver chovendo,
leve um guarda-chuva.

Caso contrário,
não será necessário.


Exemplo 2

Se o semáforo estiver verde,
atravesse.

Senão,
espere.


Exemplo 3

Se houver dinheiro suficiente,
efetue a compra.

Caso contrário,
não compre.


Exemplo 4

Se a temperatura estiver abaixo de 18 °C,
vista um casaco.

Caso contrário,
não há necessidade.


Perceba que todos esses exemplos possuem uma característica em comum.

Existe uma condição.

Dependendo do resultado dessa condição, uma ação diferente será executada.


O que é uma decisão?

Uma decisão ocorre quando um algoritmo precisa escolher entre dois ou mais caminhos possíveis.

Em vez de executar sempre as mesmas instruções, ele primeiro analisa uma situação.

Somente depois decide o que fazer.

Podemos representar essa ideia da seguinte maneira:

Essa é uma das maiores diferenças entre um algoritmo muito simples e um algoritmo capaz de resolver problemas reais.


O que é uma condição?

Uma condição é uma pergunta cuja resposta só pode assumir dois resultados.

  • Verdadeiro
  • Falso

Observe alguns exemplos.

Pergunta Resposta
O aluno tem média maior ou igual a 7? Verdadeiro ou Falso
A idade é maior que 18? Verdadeiro ou Falso
O saldo da conta é suficiente? Verdadeiro ou Falso
A senha digitada está correta? Verdadeiro ou Falso

Perceba que nenhuma dessas perguntas possui uma terceira resposta.

Sempre chegaremos a apenas uma das duas possibilidades.


Nem toda pergunta é uma condição

Observe as perguntas abaixo.

  • Qual é o seu nome?
  • Quanto você pesa?
  • Em que cidade você mora?

Essas perguntas possuem inúmeras respostas possíveis.

Portanto, não são condições.

Agora observe.

  • A idade é maior que 18?
  • A nota é menor que 6?
  • O produto está disponível?

Essas perguntas possuem apenas dois resultados possíveis.

São, portanto, condições.


Comparando valores

Para que um algoritmo tome decisões, ele precisa comparar informações.

Veja alguns exemplos.

idade = 20
idade > 18

Pergunta:

A idade é maior que 18?

Resposta:

Sim.

Logo, a condição é verdadeira.


Outro exemplo.

nota = 5
nota >= 7

Pergunta:

A nota é maior ou igual a 7?

Resposta:

Não.

Logo, a condição é falsa.


Mais um exemplo.

temperatura = 32
temperatura < 25

Pergunta:

A temperatura é menor que 25?

Resposta:

Não.

Resultado:

Falso.


Expressões aritméticas × expressões relacionais

Até agora utilizamos expressões matemáticas para realizar cálculos.

Por exemplo:

5 + 3

Resultado:

8

Observe outro exemplo.

10 * 4

Resultado:

40

Essas são chamadas de expressões aritméticas, pois produzem um valor numérico.

Agora observe:

8 > 5

Resultado:

Verdadeiro

Outro exemplo.

3 == 9

Resultado:

Falso

Essas são chamadas de expressões relacionais, pois realizam uma comparação entre dois valores.

Enquanto uma expressão aritmética produz um número, uma expressão relacional produz apenas um resultado lógico:

  • Verdadeiro
  • Falso

Essa diferença é fundamental para compreender as estruturas de decisão.


Operadores relacionais

Para realizar comparações utilizamos operadores relacionais.

São eles:

Operador Significado Exemplo Resultado
> Maior que 8 > 5 Verdadeiro
< Menor que 3 < 1 Falso
>= Maior ou igual 7 >= 7 Verdadeiro
<= Menor ou igual 5 <= 2 Falso
== Igual a 10 == 10 Verdadeiro
<> Diferente de (Portugol) 4 <> 9 Verdadeiro

Observação

Em Portugol, o operador de diferença é representado por <> (e na maioria das linguagens de programação).

Em outras linguagens você poderá encontrar símbolos diferentes, como != (mais raramente).


Cuidado com um erro muito comum

Observe as duas expressões abaixo.

idade <- 18

e

idade == 18

Embora pareçam semelhantes, elas possuem significados completamente diferentes.

Na primeira expressão:

idade <- 18

o algoritmo armazena o valor 18 na variável.

Na segunda:

idade == 18

o algoritmo compara o valor armazenado na variável com o número 18.

Essa diferença é extremamente importante.

Guardar um valor não é a mesma coisa que compará-lo.


Exemplos do cotidiano

Complete mentalmente as situações abaixo.

Exemplo 1

Se a bateria do celular estiver abaixo de 10%,


Exemplo 2

Se o elevador estiver lotado,


Exemplo 3

Se houver vaga no estacionamento,


Exemplo 4

Se a internet estiver indisponível,


Perceba que, em todos os casos, primeiro analisamos uma condição.

Somente depois decidimos qual ação executar.

É exatamente isso que um algoritmo fará.


Exercícios de Fixação

Exercício 1

Indique quais das perguntas abaixo representam condições.

a) Qual é sua idade?

( ) Condição

( ) Não é condição


b) A temperatura é maior que 30 °C?

( ) Condição

( ) Não é condição


c) O produto está em estoque?

( ) Condição

( ) Não é condição


d) Qual é o nome do aluno?

( ) Condição

( ) Não é condição


Exercício 2

Determine o resultado das expressões abaixo.

a)

15 > 8

Resultado: ______________________


b)

20 <= 15

Resultado: ______________________


c)

9 == 9

Resultado: ______________________


d)

12 <> 7

Resultado: ______________________


e)

5 >= 9

Resultado: ______________________


Exercício 3

Escreva uma condição para responder às seguintes perguntas.

a) O aluno foi aprovado?


b) A pessoa é maior de idade?


c) O saldo é suficiente para realizar a compra?


d) A temperatura está abaixo de zero?


Resumo da Parte 1

Nesta primeira parte você aprendeu que:

  • nem todo algoritmo executa sempre as mesmas instruções;
  • muitos problemas exigem tomada de decisão;
  • uma decisão depende da avaliação de uma condição;
  • uma condição produz apenas dois resultados: Verdadeiro ou Falso;
  • comparações são realizadas por meio de expressões relacionais;
  • os operadores relacionais permitem construir essas comparações.

AULA 04 — Estruturas de Decisão: Fazendo Escolhas nos Algoritmos

Parte 2 – Combinando Condições com Operadores Lógicos

Tema da aula: Como o algoritmo toma decisões mais complexas?


Objetivos desta parte

Ao final desta parte você será capaz de:

  • compreender o significado de valores lógicos;
  • interpretar os operadores lógicos;
  • utilizar corretamente os operadores E, OU e NÃO;
  • interpretar tabelas-verdade;
  • construir expressões lógicas simples e compostas;
  • identificar erros comuns na construção de condições.

Retomando a aula

Na primeira parte aprendemos que uma condição produz apenas dois resultados possíveis:

  • Verdadeiro
  • Falso

Também vimos que podemos construir condições utilizando operadores relacionais.

Por exemplo:

idade >= 18

ou

media >= 7

Essas condições são simples.

Mas será que todos os problemas podem ser resolvidos com apenas uma comparação?

A resposta é não.

Muitas situações exigem que duas ou mais condições sejam analisadas ao mesmo tempo.


Situação-Problema

Imagine o sistema de uma locadora de veículos.

Para alugar um automóvel, uma pessoa deve atender aos seguintes requisitos:

  • possuir carteira de habilitação;
  • ter idade igual ou superior a 21 anos.

Observe.

Uma pessoa de 25 anos, mas sem habilitação, pode alugar um veículo?

Não.

Uma pessoa habilitada, mas com 18 anos?

Também não.

Somente quando as duas condições forem verdadeiras o aluguel poderá ser realizado.

Como representar essa situação em um algoritmo?


Valores lógicos

Quando uma condição é avaliada, ela produz um valor lógico.

Existem apenas dois valores possíveis.

Valor Significado
Verdadeiro A condição foi satisfeita.
Falso A condição não foi satisfeita.

Esses valores são conhecidos como valores booleanos.

Toda decisão tomada por um algoritmo depende desses dois resultados.


Combinando condições

Observe a situação abaixo.

Para ser aprovado em um concurso, o candidato precisa:

  • obter nota maior ou igual a 70;
  • comparecer à prova.

Não basta apenas ter uma boa nota.

Também é necessário comparecer.

Logo, existem duas condições.

Quando isso acontece, utilizamos operadores lógicos.


Operadores lógicos

Os principais operadores lógicos são:

Operador Significado
E Todas as condições devem ser verdadeiras.
OU Pelo menos uma condição deve ser verdadeira.
NÃO Inverte o resultado lógico.

Esses operadores permitem construir decisões mais elaboradas.


Operador E

O operador E exige que todas as condições sejam verdadeiras.

Imagine uma porta protegida por duas fechaduras.

Ela só poderá ser aberta quando as duas chaves forem utilizadas.

Visualmente:

Se qualquer uma das condições for falsa, o resultado também será falso.


Exemplo 1

Uma pessoa pode dirigir quando:

  • possui carteira;
  • possui idade mínima.

Expressão:

idade >= 18 E possuiCarteira

Observe alguns casos.

Idade Carteira Resultado
22 Sim Verdadeiro
16 Sim Falso
30 Não Falso
15 Não Falso

Somente a primeira situação atende às duas condições.


Tabela-verdade do operador E

Condição A Condição B A E B
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Falso
Falso Verdadeiro Falso
Falso Falso Falso

Observe que existe apenas uma combinação que produz Verdadeiro.


Operador OU

O operador OU é menos rigoroso.

Ele exige apenas que uma das condições seja verdadeira.

Imagine uma promoção.

O estudante terá direito ao desconto se apresentar:

  • carteira estudantil;

OU

  • declaração de matrícula.

Basta apresentar um dos documentos.


Exemplo 2

Uma pessoa poderá entrar no evento quando possuir:

  • convite;

OU

  • nome na lista de convidados.

Expressão:

temConvite OU estaNaLista

Observe.

Convite Lista Resultado
Sim Sim Verdadeiro
Sim Não Verdadeiro
Não Sim Verdadeiro
Não Não Falso

Tabela-verdade do operador OU

Condição A Condição B A OU B
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Falso Verdadeiro Verdadeiro
Falso Falso Falso

Observe que apenas uma combinação produz Falso.


Operador NÃO

O operador NÃO faz exatamente o contrário.

Ele inverte o resultado da condição.

Condição NÃO Condição
Verdadeiro Falso
Falso Verdadeiro

Exemplo 3

Imagine um sistema de biblioteca.

O livro poderá ser emprestado quando ele não estiver reservado.

A condição:

livroReservado

Pode produzir:

  • Verdadeiro
  • Falso

Ao utilizar o operador NÃO, obtemos:

NAO livroReservado

Agora:

Se o livro estiver reservado → resultado falso.

Se o livro não estiver reservado → resultado verdadeiro.


Comparando os três operadores

Situação Operador adequado
Todas as condições devem ser satisfeitas. E
Basta uma condição ser satisfeita. OU
Deseja inverter uma condição. NÃO

Erros comuns

Erro 1

Confundir E com OU.

Observe.

Para dirigir:

idade >= 18 E possuiCarteira

Está correto.

Mas escrever:

idade >= 18 OU possuiCarteira

permitiria dirigir apenas por possuir carteira ou apenas por ter idade suficiente.

O resultado seria incorreto.


Erro 2

Esquecer que cada comparação deve estar completa.

Incorreto:

idade >= 18 E 60

Correto:

idade >= 18 E idade <= 60

Cada lado do operador lógico deve ser uma condição válida.


Erro 3

Utilizar o operador NÃO sem compreender seu efeito.

Observe.

NAO alunoAprovado

Essa expressão será verdadeira apenas quando o aluno não estiver aprovado.


Exercícios de Fixação

Exercício 1

Complete utilizando E, OU ou NÃO.

a)

Uma pessoa pode votar facultativamente quando possui 16 anos ou mais ______ menos de 18 anos.


b)

Para obter um empréstimo bancário é necessário possuir renda suficiente ______ não possuir restrições cadastrais.


c)

Um computador poderá ser ligado apenas quando ______ houver falta de energia.


Exercício 2

Determine o resultado das expressões.

a)

Verdadeiro E Verdadeiro

Resultado: ___________________


b)

Verdadeiro E Falso

Resultado: ___________________


c)

Falso OU Verdadeiro

Resultado: ___________________


d)

NAO Verdadeiro

Resultado: ___________________


e)

NAO Falso

Resultado: ___________________


Exercício 3

Escreva uma condição para cada situação.

a) Um aluno será aprovado quando possuir média maior ou igual a 7 e frequência maior ou igual a 75%.


b) Uma pessoa poderá receber atendimento preferencial quando possuir idade igual ou superior a 60 anos ou apresentar deficiência.


c) Um caixa eletrônico somente permitirá o saque quando o cartão não estiver bloqueado.


Resumo da Parte 2

Nesta parte você aprendeu que:

  • uma condição produz um valor lógico;
  • existem apenas dois valores lógicos: Verdadeiro e Falso;
  • o operador E exige que todas as condições sejam verdadeiras;
  • o operador OU exige apenas uma condição verdadeira;
  • o operador NÃO inverte o resultado lógico;
  • expressões compostas permitem representar decisões do mundo real de forma precisa.

Na próxima parte, utilizaremos esses conceitos para construir os primeiros algoritmos com a estrutura Se...Então e, posteriormente, Se...Então...Senão, permitindo que os algoritmos escolham automaticamente qual conjunto de instruções executar.


AULA 04 — Estruturas de Decisão: Fazendo Escolhas nos Algoritmos

Parte 3 – Utilizando as Estruturas Se…Então e Se…Então…Senão

Tema da aula: Como fazer um algoritmo escolher entre diferentes caminhos?


Objetivos desta parte

Ao final desta parte você será capaz de:

  • compreender o funcionamento da estrutura Se…Então;
  • compreender o funcionamento da estrutura Se…Então…Senão;
  • construir algoritmos com decisões simples e compostas;
  • interpretar corretamente o fluxo de execução de um algoritmo;
  • validar algoritmos utilizando teste de mesa.

Retomando a aula

Nas partes anteriores aprendemos que uma condição pode produzir apenas dois resultados:

  • Verdadeiro
  • Falso

Também aprendemos a construir condições utilizando operadores relacionais e operadores lógicos.

Observe alguns exemplos.

idade >= 18
media >= 7
idade >= 18 E possuiCNH = verdadeiro

Essas expressões respondem apenas uma pergunta.

A resposta será sempre Verdadeiro ou Falso.

Mas surge uma nova dúvida.

O que o algoritmo faz depois de descobrir o resultado da condição?

É exatamente essa pergunta que responderemos agora.


Situação-Problema

Imagine um caixa eletrônico.

Uma pessoa deseja sacar R$ 200,00.

O computador consulta o saldo da conta.

Existem apenas duas possibilidades.

Situação 1

Saldo = R$ 500,00

Resultado:

O saque poderá ser realizado.


Situação 2

Saldo = R$ 80,00

Resultado:

O saque deverá ser recusado.

Observe que o algoritmo não executa sempre as mesmas instruções.

Dependendo da condição, ele seguirá caminhos diferentes.


O algoritmo começa a tomar decisões

Até a aula anterior, todos os algoritmos executavam exatamente as mesmas instruções.

Agora isso muda.

Dependendo do resultado de uma condição, uma parte do algoritmo poderá ser executada e outra poderá ser ignorada.

Podemos representar essa ideia da seguinte forma.

Essa capacidade torna os algoritmos muito mais úteis, pois eles passam a se adaptar às diferentes situações encontradas durante sua execução.


A estrutura Se…Então

A estrutura Se…Então é utilizada quando desejamos executar determinadas instruções somente se uma condição for verdadeira.

Sua estrutura geral é:

Se condição Então
    instruções
FimSe

Observe cada elemento.

  • Se → inicia a decisão.
  • condição → expressão que será avaliada.
  • Então → indica que as instruções abaixo serão executadas caso a condição seja verdadeira.
  • FimSe → indica o final da estrutura.

Funcionamento

O computador executa os seguintes passos:

  1. Avalia a condição.
  2. Se ela for verdadeira, executa o bloco de instruções.
  3. Se ela for falsa, ignora esse bloco.
  4. Continua a execução normalmente.

Observe o fluxograma lógico.

 


Primeiro exemplo

Deseja-se informar se um estudante foi aprovado.

Critério:

  • Média maior ou igual a 7.

Algoritmo em Portugol

Algoritmo "Aprovacao"
Var
    media : Real
Inicio
    Escreva("Digite a média do aluno: ")
    Leia(media)
    Se media >= 7 Então
        Escreva("Aluno aprovado.")
    FimSe
FimAlgoritmo

Teste de Mesa

Caso 1

Entrada

media = 8,5

A condição

media >= 7

Resultado

Verdadeiro

Mensagem exibida

Aluno aprovado.

Caso 2

Entrada

media = 5,0

A condição

media >= 7

Resultado

Falso

Mensagem exibida

Nenhuma.

O algoritmo simplesmente continua sua execução.


Observe um detalhe importante

Muitos estudantes iniciantes acreditam que, quando a condição é falsa, ocorre algum erro.

Isso não acontece.

Quando a condição é falsa, o computador apenas não executa aquele bloco de instruções.

Depois continua executando normalmente o restante do algoritmo.


Quando utilizar apenas o Se…Então

Essa estrutura é adequada quando existe apenas uma ação a ser executada.

Por exemplo:

  • avisar que um aluno foi aprovado;
  • informar que um produto está em promoção;
  • emitir um alerta quando a temperatura estiver alta;
  • avisar quando uma senha estiver correta.

Em todos esses casos, caso a condição seja falsa, nenhuma ação especial precisa ser realizada.


Exercício Resolvido

Problema

Desenvolva um algoritmo que leia a idade de uma pessoa.

Caso ela tenha 18 anos ou mais, escreva:

Maior de idade.

Solução

Algoritmo "Maior_Idade"
Var
    idade : Inteiro
Inicio
    Escreva("Digite sua idade: ")
    Leia(idade)
    Se idade >= 18 Então
        Escreva("Maior de idade.")
    FimSe
FimAlgoritmo

E quando existem duas possibilidades?

Nem sempre basta executar uma ação quando a condição é verdadeira.

Muitas vezes precisamos executar uma ação quando a condição for verdadeira e outra quando ela for falsa.

Considere o exemplo.

Uma escola deseja informar:

  • Aprovado
  • Reprovado

Se o aluno não for aprovado, necessariamente deverá ser reprovado.

Nesse caso utilizamos outra estrutura.


A estrutura Se…Então…Senão

Sua estrutura geral é:

Se condição Então
    instruções
Senão
    outras instruções
FimSe

Agora o algoritmo sempre executará um dos dois blocos.


Como funciona?

O computador segue estes passos.

  1. Avalia a condição.
  2. Se ela for verdadeira, executa o primeiro bloco.
  3. Caso contrário, executa o segundo bloco.
  4. Continua normalmente.
  5. Representando graficamente:


Exemplo Resolvido

Critério:

  • Média maior ou igual a 7 → aprovado.
  • Caso contrário → reprovado.
Algoritmo "Resultado"
Var
    media : Real
Inicio
    Escreva("Digite a média: ")
    Leia(media)
    Se media >= 7 Então
        Escreva("Aluno aprovado.")
    Senão
        Escreva("Aluno reprovado.")
    FimSe
FimAlgoritmo

Teste de Mesa

Caso 1

media = 8

Condição

8 >= 7

Resultado

Verdadeiro

Mensagem

Aluno aprovado.

Caso 2

media = 4

Condição

4 >= 7

Resultado

Falso

Mensagem

Aluno reprovado.

Estudo de Caso

Uma empresa concede acesso ao estacionamento apenas aos funcionários cadastrados.

Entrada:

  • funcionário cadastrado.

Saída esperada:

  • “Entrada autorizada.”
  • ou “Entrada não autorizada.”

Algoritmo

Algoritmo "Estacionamento"
Var
    cadastrado : Logico
Inicio
    Escreva("Funcionário cadastrado? (V/F): ")
    Leia(cadastrado)
    Se cadastrado Então
        Escreva("Entrada autorizada.")
    Senão
        Escreva("Entrada não autorizada.")
    FimSe
FimAlgoritmo

Erros comuns

Ao começar a utilizar estruturas de decisão, alguns erros aparecem com frequência.

1. Esquecer o FimSe

Toda estrutura iniciada com Se deve ser encerrada com FimSe.


2. Esquecer a condição

Incorreto:

Se Então

Sempre deve existir uma condição.


3. Colocar instruções fora do bloco

Observe a indentação.

Ela facilita a leitura do algoritmo e deixa claro quais instruções pertencem ao bloco do Se ou do Senão.


4. Escrever condições desnecessárias

Em vez de:

Se idade >= 18 = verdadeiro

Escreva apenas:

Se idade >= 18

A condição já produz um valor lógico.


Resumo desta parte

Nesta aula aprendemos que:

  • uma condição produz Verdadeiro ou Falso;
  • a estrutura Se…Então executa um bloco apenas quando a condição é verdadeira;
  • a estrutura Se…Então…Senão permite que o algoritmo escolha entre dois caminhos;
  • as decisões tornam os algoritmos capazes de responder a diferentes situações.

Agora os algoritmos deixaram de executar sempre a mesma sequência de instruções. Eles passaram a tomar decisões, característica presente em praticamente todos os programas de computador.

Na Parte 4, avançaremos para problemas mais complexos utilizando estruturas de decisão aninhadas, decisões com múltiplas alternativas e exercícios integradores, consolidando todo o conteúdo da Aula 04.


AULA 04 — Estruturas de Decisão: Fazendo Escolhas nos Algoritmos

Parte 4 – Consolidando as Estruturas de Decisão

Tema da aula: Resolvendo problemas utilizando estruturas de decisão.


Objetivos desta parte

Ao final desta parte você será capaz de:

  • construir algoritmos utilizando decisões aninhadas;
  • analisar diferentes soluções para um mesmo problema;
  • validar algoritmos utilizando teste de mesa;
  • identificar erros lógicos em estruturas condicionais;
  • aplicar corretamente as estruturas Se…Então e Se…Então…Senão em problemas reais.

Retomando a aula

Ao longo desta aula aprendemos que um algoritmo pode:

  • comparar valores;
  • combinar condições utilizando operadores lógicos;
  • escolher entre diferentes caminhos.

Agora chegou o momento de utilizar esses conhecimentos para resolver problemas um pouco mais elaborados.


Situação-Problema

Imagine um sistema escolar.

Ao final do semestre, cada estudante poderá estar em uma das seguintes situações:

  • aprovado;
  • recuperação;
  • reprovado.

Observe.

Média Situação
8,5 Aprovado
6,2 Recuperação
3,8 Reprovado

Perceba que agora existem três resultados possíveis.

Como o algoritmo poderá decidir entre essas três situações?


Quando uma decisão depende de outra

Em alguns problemas, uma única decisão não é suficiente.

Primeiro verificamos uma condição.

Se ela não for satisfeita, verificamos outra.

Esse tipo de construção recebe o nome de decisão aninhada.

Observe a ideia.

Observe que a segunda decisão somente é analisada quando a primeira condição é falsa.


Estruturas de decisão aninhadas

Uma decisão pode estar dentro de outra decisão.

Em Portugol, isso pode ser representado da seguinte forma.

Se condição1 Então
    instruções
Senão
    Se condição2 Então
        outras instruções
    Senão
        novas instruções
    FimSe
FimSe

Embora existam outras maneiras de representar esse tipo de decisão em linguagens de programação, essa estrutura é bastante clara para quem está iniciando.


Exemplo Resolvido

Uma escola adota o seguinte critério.

  • Média maior ou igual a 7 → aprovado.
  • Média maior ou igual a 5 e menor que 7 → recuperação.
  • Média menor que 5 → reprovado.

Algoritmo

Algoritmo "Resultado_Final"
Var
    media : Real
Inicio
    Escreva("Digite a média: ")
    Leia(media)
    Se media >= 7 Então
        Escreva("Aluno aprovado.")
    Senão
        Se media >= 5 Então
            Escreva("Aluno em recuperação.")
        Senão
            Escreva("Aluno reprovado.")
        FimSe
    FimSe
FimAlgoritmo

Teste de Mesa

Caso 1

Entrada

media = 8,2

Primeira condição

media >= 7

Resultado

Verdadeiro

Mensagem

Aluno aprovado.

Caso 2

Entrada

media = 6,0

Primeira condição

media >= 7

Resultado

Falso

Segunda condição

media >= 5

Resultado

Verdadeiro

Mensagem

Aluno em recuperação.

Caso 3

Entrada

media = 3,5

Primeira condição

media >= 7

Resultado

Falso

Segunda condição

media >= 5

Resultado

Falso

Mensagem

Aluno reprovado.

Estudo de Caso

Cálculo de desconto

Uma loja concede desconto conforme o valor da compra.

Valor da compra Desconto
Até R$ 100,00 Sem desconto
Acima de R$ 100,00 e até R$ 500,00 10%
Acima de R$ 500,00 20%

Construa um algoritmo que informe o percentual de desconto aplicado.


Solução

Algoritmo "Desconto"
Var
    valor : Real
Inicio
    Escreva("Digite o valor da compra: ")
    Leia(valor)
    Se valor > 500 Então
        Escreva("Desconto de 20%.")
    Senão
        Se valor > 100 Então
            Escreva("Desconto de 10%.")
        Senão
            Escreva("Sem desconto.")
        FimSe
    FimSe
FimAlgoritmo

Boas práticas

Ao construir estruturas de decisão, procure seguir algumas recomendações.

  • Escreva condições simples e objetivas.
  • Evite repetir a mesma condição várias vezes.
  • Utilize indentação para destacar os blocos de decisão.
  • Sempre realize um teste de mesa antes de considerar o algoritmo concluído.
  • Escolha nomes significativos para as variáveis.

Essas práticas tornam os algoritmos mais fáceis de compreender e manter.


Erros comuns

1. Condições sobrepostas

Observe.

Se media >= 5 Então
    ...
Senão
    Se media >= 7 Então
        ...

Esse algoritmo nunca executará a segunda condição, pois toda média maior ou igual a 7 também é maior ou igual a 5.

A ordem das condições é importante.


2. Esquecer um caso

Problema.

Se idade >= 18 Então
    Escreva("Maior de idade.")
FimSe

O algoritmo informa corretamente quando a pessoa é maior de idade.

Mas o que acontece quando ela é menor?

Nenhuma mensagem será exibida.

Sempre verifique se todos os casos relevantes foram contemplados.


3. Aninhar decisões desnecessariamente

Nem todo problema exige várias decisões.

Se existem apenas duas possibilidades, utilize apenas um Se…Então…Senão.

Evite aumentar a complexidade sem necessidade.


Exercícios Propostos

Exercício 1

Desenvolva um algoritmo que leia a idade de uma pessoa.

Informe:

  • “Criança”, se possuir menos de 12 anos.
  • “Adolescente”, se possuir entre 12 e 17 anos.
  • “Adulto”, caso contrário.

Exercício 2

Uma empresa concede bônus conforme o tempo de serviço.

  • Menos de 2 anos → sem bônus.
  • Entre 2 e 5 anos → bônus de 5%.
  • Mais de 5 anos → bônus de 10%.

Desenvolva o algoritmo correspondente.


Exercício 3

Leia o preço de um produto.

Informe:

  • “Produto econômico”, se custar até R$ 50,00.
  • “Produto intermediário”, se custar acima de R$ 50,00 e até R$ 200,00.
  • “Produto premium”, caso contrário.

Exercício 4

Um cinema classifica seus espectadores conforme a idade.

  • Menor de 12 anos.
  • Entre 12 e 59 anos.
  • 60 anos ou mais.

Desenvolva o algoritmo que informe a classificação.


Desafio

Uma empresa calcula o valor do frete conforme a distância.

Distância Frete
Até 50 km R$ 20,00
De 51 km até 200 km R$ 35,00
Acima de 200 km R$ 50,00

Desenvolva um algoritmo que leia a distância e informe o valor do frete.

Depois, valide sua solução utilizando pelo menos três testes de mesa.


Resumo da Aula 04

Nesta aula aprendemos que:

  • nem todos os algoritmos executam sempre as mesmas instruções;
  • decisões são tomadas a partir da avaliação de condições;
  • condições produzem apenas dois resultados possíveis: Verdadeiro ou Falso;
  • operadores relacionais permitem comparar valores;
  • operadores lógicos permitem combinar condições;
  • a estrutura Se…Então executa um bloco quando a condição é verdadeira;
  • a estrutura Se…Então…Senão permite escolher entre dois caminhos;
  • decisões podem ser aninhadas para resolver problemas mais complexos;
  • o teste de mesa é uma ferramenta essencial para verificar se o algoritmo está correto.

Mapa Conceitual da Aula


Preparando a próxima aula

Até este momento, os algoritmos que construímos executavam suas instruções apenas uma vez.

Entretanto, muitos problemas exigem que uma mesma sequência de instruções seja executada repetidas vezes.

Na próxima aula estudaremos as estruturas de repetição, aprendendo como fazer um algoritmo repetir ações de forma controlada, dando início ao estudo dos laços de repetição. Esse será um novo passo na evolução da disciplina, permitindo resolver problemas que seriam inviáveis utilizando apenas estruturas de decisão.


Fim da aula 04

Click to listen highlighted text!