e Lgica de Programao
Estruturas de Deciso
NO!!!!!
Motivao
O programa executa de forma diferente
dependendo de uma condio
Estrutura de Deciso
Qual a condio?
Estrutura de Deciso
if <condio>:
comando 1
Os comandos 1, 2 e 3 esto dentro do
escopo da estrutura de deciso! comando 2
comando 3
comando 4
Estrutura de Deciso
Voltando ao exemplo...
N = int(raw_input()) Operador de
if N%2 == 0: igualdade!
if N%2 != 0: Operador de
diferena!
print O nmero mpar
Estrutura de Deciso
Voltando ao exemplo...
10
Soluo
1. Escreva um programa que leia da entrada um
valor inteiro e informe se o nmero igual a
zero ou diferente de zero.
x = int(raw_input())
if x == 0:
print O nmero igual a zero
if x != 0:
print O nmero diferente de zero
11
Operadores Relacionais
Operador Descrio
== igual
!= diferente
> maior que
< menor que
>= maior ou igual a
<= menor ou igual a
Operadores Relacionais
X = 10
Y = 12
print X == Y
Qual a sada do
print X != Y
programa?
print X > Y
print X < Y
print X <= Y
print X >= Y
Operadores Relacionais
X = 15
Y = 15
print X == Y
Qual a sada do
print X != Y
programa?
print X > Y
print X < Y
print X <= Y
print X >= Y
Operadores Relacionais
X = 10
Y = 15
if X < Y:
print X maior Qual a sada do
programa?
if X >= Y:
print X igual Y
print fim
Exerccio
2. Escreva um programa que leia da entrada um
valor real e informe se o nmero igual a
zero, menor que zero ou maior que zero.
16
Soluo
2. Escreva um programa que leia da entrada um
valor real e informe se o nmero igual a
zero, menor que zero ou maior que zero.
x = float(raw_input())
if x == 0:
print O nmero igual a zero
if x < 0:
print O nmero menor que zero
if x > 0:
print O nmero maior que zero 17
Operadores Lgicos
Operador Descrio
not negao
and E
or OU
Operadores Lgicos
Tabela verdade operador not
A not A
True False
False True
Operadores Lgicos
Tabela verdade operador and
A B A and B
True True True
False True False
True False False
False False False
A B A or B
True True True
False True True
True False True
False False False
X = True
Y = False
Qual a sada do
print X and Y
programa?
print X or Y
print not X
print not Y
Operadores Lgicos
X = True
Y = True
Qual a sada do
print X and Y
programa?
print X or Y
print not X
print not Y
Operadores Lgicos
X = 20
Y = 12 Qual a sada do
print (X>0) and (Y<0) programa?
print (X==0) or (Y!=0)
print not (X%2 == 0)
Precedncia dos Operadores Lgicos e
Relacionais
not
and
or Menor precedncia
X = True
Y = False
print not X and Y or X and not Y
print not(not(X or Y) and (X or Y))
A = int(raw_input())
B = int(raw_input())
if A > 2 and B != 0:
print IFPB
if A != B or B < 0:
print Guarabira
29
Soluo
3. Escreva um programa que leia da entrada trs
nmeros inteiros e coloque na sada a palavra
OK, caso o primeiro nmero seja par e os
dois seguintes sejam mpares
a = int(raw_input())
b = int(raw_input())
c = int(raw_input())
if a%2 == 0 and b%2 !=0 and c%2 !=0:
print OK
30
Estrutura de Deciso
Comando else (seno)
A condio pode ser verdadeira
(True) ou falsa (False)
if <condio>:
comando 1
Os comandos 1, 2 e 3 executam se a comando 2
<condio> for verdadeira! comando 3
else:
Os comandos 4 e 5 executam se a comando 4
<condio> for falsa! comando 5
comando 6
Exerccio
4. Escreva um programa que leia da entrada um
valor inteiro e informe se o nmero igual a
zero ou diferente de zero, usando if e else.
32
Soluo
4. Escreva um programa que leia da entrada um
valor inteiro e informe se o nmero igual a
zero ou diferente de zero, usando if e else.
x = int(raw_input())
if x == 0:
print O nmero igual a zero
else:
print O nmero diferente de zero
33
Exerccio
5. Escreva um programa que leia da entrada
duas notas, calcule a mdia e informe se o
aluno est aprovado ou reprovado, usando if
else.
34
Soluo
5. Escreva um programa que leia da entrada
duas notas, calcule a mdia e informe se o
aluno est aprovado ou reprovado, usando if
else.
n1 = float(raw_input())
n2 = float(raw_input())
m = (n1+n2)/2.0
if m >= 7:
print Aprovado
else:
35
print Reprovado
Estrutura de Deciso
Comando elif (seno se)
Usado quando existir vrias opes
possveis if <condio 1>:
comando 1
Os comandos 1, 2 e 3 executam se a
<condio 1> for verdadeira! comando 2
comando 3
Os comandos 4 e 5 executam se a <condio elif <condio 2>:
1> for falsa! E a <condio 2> for verdadeira! comando 4
comando 5
O comando 6 executam se a <condio 1> for elif <condio 3>:
falsa! E a <condio 2> for falsa E a
comando 6
<condio 3> for verdadeira!
else:
O comando 7 executado se TODAS as condies comando 7
anteriores forem falsas!
Exerccio
6. Escreva um programa que leia da entrada
duas notas, calcule a mdia e informe se o
aluno est aprovado, reprovado ou foi para a
final, usando if, elif e else.
37
Soluo
6. Escreva um programa que leia da entrada
duas notas, calcule a mdia e informe se o
aluno est aprovado, reprovado ou foi para a
final, usando if, elif e else.
n1 = float(raw_input())
n2 = float(raw_input())
m = (n1+n2)/2.0
if m >= 7:
print Aprovado
elif m >= 4:
print Final
else:
print Reprovado 38
Exerccio
7. Escreva um programa que leia da entrada a
altura e o peso, calcule a massa corprea e
informe o grau de obesidade de acordo com a
tabela
2
MC = peso/altura
Nome:
IFPB - Exerccios Algoritmos - Lista 1
Senha:
algp1
41