Anda di halaman 1dari 41

Algoritmos

e Lgica de Programao

Estruturas de Deciso

Prof. Ruan Delgado Gomes


Motivao
Faa um programa que leia da entrada um
nmero inteiro e informe se o nmero par ou
mpar

O programa vai executar da mesma forma todas as


vezes?
Motivao
Faa um programa que leia da entrada um
nmero inteiro e informe se o nmero par ou
mpar

O programa vai executar da mesma forma todas as


vezes?

NO!!!!!
Motivao
O programa executa de forma diferente
dependendo de uma condio
Estrutura de Deciso

1. Leia um nmero da entrada

1. Se o nmero for par


2.1 Mostra na tela a frase O nmero par

2. Se o nmero for mpar


3.1 Mostra na tela a frase O nmero mpar

Qual a condio?
Estrutura de Deciso

1. Leia um nmero da entrada

1. Se o nmero for par


2.1 Mostra na tela a frase O nmero par

2. Se o nmero for mpar


3.1 Mostra na tela a frase O nmero mpar

Como saber se um nmero par ou mpar?


Estrutura de Deciso
Estrutura de deciso em python
A condio pode ser verdadeira
(True) ou falsa (False)

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!

print O nmero par

if N%2 != 0: Operador de
diferena!
print O nmero mpar
Estrutura de Deciso
Voltando ao exemplo...

N = int(raw_input()) Se for lido 8, o


if N%2 == 0: que aparece na
print O nmero par tela?

if N%2 != 0: Se for lido 5, o


print O nmero mpar que aparece na
tela?
Exerccio
1. Escreva um programa que leia da entrada um
valor inteiro e informe se o nmero igual a
zero ou diferente de zero.

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

S verdadeiro quando as duas condies so verdadeiras!


Operadores Lgicos
Tabela verdade operador or

A B A or B
True True True
False True True
True False True
False False False

S falso quando as duas condies so falsas!


Operadores Lgicos

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

== != > < >= <= Maior precedncia

not
and
or Menor precedncia

Operadores de maior precedncia so avaliados primeiro!


Operadores Lgicos

X = True
Y = False
print not X and Y or X and not Y
print not(not(X or Y) and (X or Y))

Qual a sada do programa?


Operadores Lgicos

print 8 > 2 and 4 != 1


print 10 >= 20 or not 4 <= 4

Qual a sada do programa?


Estrutura de Deciso

A = int(raw_input())
B = int(raw_input())
if A > 2 and B != 0:
print IFPB
if A != B or B < 0:
print Guarabira

Qual a sada do programa?


Exerccio
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

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.

Mdia maior ou igual a 7 Aprovado

Mdia menor 7 Reprovado

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.

Mdia maior ou igual a 7 Aprovado

Mdia maior ou igual a 4 e Final


menor que 7
Mdia menor 4 Reprovado

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

Massa Corprea (MC) Grau de Obesidade


< 26 Normal
>= 26 e < 30 Obeso

>= 30 Obeso Mrbido


39
Soluo
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
alt = float(raw_input())
peso = float(raw_input())
mc = peso/alt**2
if mc < 26:
print Normal
elif mc < 30:
print Obeso
else:
print Obeso Mrbido 40
Exerccio
Abrir contest do codepit.io

Nome:
IFPB - Exerccios Algoritmos - Lista 1

Senha:
algp1

41

Anda mungkin juga menyukai