Escolar Documentos
Profissional Documentos
Cultura Documentos
Apresentação
A tomada de decisão não é uma tarefa fácil; é composta geralmente por um conjunto
de condições que devem ser satisfeitas parcial ou totalmente. Em muitas situações
cotidianas, temos de escolher uma opção entre as várias apresentadas. Modelar tais
situações de maneira correta e de fácil entendimento é um grande desafio em
programação.
Objetivos
Examinar problemas que envolvem uma tomada decisão e empregar estratégias
de resolução;
Analisar o uso das relações lógicas e aritméticas em estruturas de decisão;
Desenvolver programas com o uso de estruturas condicionais simples e
compostas.
Estruturas para a Tomada de
Decisão
Em muitas situações do dia a dia, nós nos deparamos com alguma condição a
ser verificada. Em programação, tratamos essas situações com uso de
estruturas de seleção, que permitem realizar um grupo de ações quando
determinadas condições são ou não satisfeitas. Tais estruturas podem ser
combinadas de várias maneiras, com o apoio de expressões aritméticas e
lógicas.
3 FIMSE
Podemos observar nesse exemplo que a variável quantia só terá seu valor
alterado se a condição “quantia maior ou igual a 100” for satisfeita.
Agora imagine um simples processo para saber se um aluno está aprovado ou
reprovado de acordo com sua média.
2 ESCREVA(“Aprovado”)
3 SENÃO
4 ESCREVA(“Reprovado”)
5 FIMSE
2 ESCREVA(“Reprovado”)
3 FIM SE
5 ESCREVA(“Final”)
6 FIM SE
9 FIMSE
Operadores Aritméticos,
Relacionais e Lógicos
Considere o exemplo anterior sobre a regra em que o aluno iria para a final
((media>=5) e (media<7)).
A não A
V F
F V
>>> a=True
>>> not a
False
A B AeB
F F F
F V F
V F F
V V V
>>> a=True
>>> b=False
>>> a and b
False
A B A ou B
F F F
F V V
V F V
V V V
>>> a=True
>>> b=False
>>> a and b
True
>>> a=True
>>> b=False
>>> c=True
>>> a and b or c
True
Exemplo
>>> a and (b or c)
Operadores aritméticos
Operadores relacionais
Operadores lógicos
Estruturas Condicionais
Basicamente, um programa é composto por uma sequência de comandos ou
blocos, executados de forma linear de cima para baixo. No entanto, em
algumas situações queremos controlar quais blocos serão executados ou não
de acordo com determinada condição. Isso é possível com o uso de estruturas
condicionais ou de seleção. A figura a seguir ilustra uma estrutura condicional
básica.
A figura ilustra um fluxograma que representa uma estrutura condicional
básica.
Seleção Simples
Pseudocódigo
SE <condição(s)> ENTAO
comando 1;
comando 2;
…
comando N;
FIMSE
Python
if (<condição(s)>):
comando 1;
comando 2;
comando N;
>>> quantia=quantia*1.06
>>>
>>> print(quantia)
212.0
>>> quantia=quantia*1.06
>>>
>>> print(quantia)
212.0
Seleção Composta
Em situações em que duas alternativas dependem de uma mesma condição,
utilizamos a seleção composta. Assim, podemos realizar um conjunto de
operações se a condição for verdadeira e outro conjunto de operações se a
mesma condição for falsa.
Caso a condição do losango seja falsa, outra seta sai do losango para outro
retângulo, que representa um bloco de código distinto. Em seguida, uma seta
direcional partindo desse retângulo aponta diretamente para o fim.
Podemos observar a sintaxe da estrutura composta em pseudocódigo e
Python:
Pseudocódigo
SE <condição(s)> ENTAO
comandos;
SENÃO
comandos;
FIMSE
Python
if (<condição(s)):
comandos;
else:
comandos;
>>> if (media>=7):
... print("Aprovado")
... else:
... print("Reprovado")
...
Reprovado
Seleção Encadeada
Em algumas situações, pode ser necessário agrupar várias estruturas de
seleção, em que uma depende de outras condições. Em outras palavras,
podemos, por exemplo, inserir uma estrutura SE dentro de um SENÃO, que
por sua vez pode utilizar outra estrutura SE, e por aí vai ! A figura a seguir
ilustra esse comportamento.
Caso a condição seja verdadeira, uma seta direcional aponta para outro
retângulo, que representa um bloco de comandos distinto do anterior.
Considerando a condição falsa, uma seta direcional leva à outra estrutura na
forma de losango.
Essa condição se repete infinitamente até a que todas as setas se encontrem
em um círculo preto envolto em um anel externo, que indica o fim.
Pseudocódigo
SE <condição> ENTAO
comandos;
SENÃO
SE <condição> ENTAO
comandos;
SENÃO
SE <condição> ENTAO
SENÃO
FIMSE
FIMSE
FIMSE
Python
if (<condição>):
comandos;
else:
if (<condição>):
comandos;
else:
if (<condição>):
else:
>>> if (media>=7):
... print("Aprovado")
... else:
... if (media>=5):
...print("Final")
... else:
...print("Reprovado")
...
>>> if (media>=7):
... print("Aprovado")
...print("Final")
... else:
...print("Reprovado")
...
Atividade
1. Supondo que A, B e C são variáveis de tipo inteiro, com valores iguais
a 5, 10 e -8, respectivamente, e uma variável real D, com valor de 1.5,
quais os resultados das expressões aritméticas a seguir? Considere V
para uma sentença verdadeira e F falsa.
>>> if (imc<=18.5):
... print("sobrepeso")
... else:
Infantil A: de 5 a 7 anos;
Infantil B: de 8 a 10 anos;
Juvenil A: de 11 a 13 anos;
Juvenil B: de 14 a 17 anos;
Sênior: maior de 18 anos;
Referências
GRUS, J. Data science from scratch: first principles with Python. Beijing: O’Reilly,
2015.
Próximos Passos
Explore mais
Assista ao vídeo “Aulas Python – 019 - Operadores Lógicos
<https://www.youtube.com/watch?v=czW7I2CCcUM> ”;
Assista ao vídeo “Curso de Python - Aula 19 - Operadores Relacionais –
eXcript <https://www.youtube.com/watch?v=JN1jHtlRqLA> ”;
Assista ao vídeo “Aulas Python - 011 - Estrutura de Decisões II: if, elif e
else <https://www.youtube.com/watch?v=kY47B3StnWg> ”;
Assista ao vídeo “Aulas Python - 012 - Múltiplos if VS if, elif e else
<https://www.youtube.com/watch?v=zfj3F2FXKmg> ”.