Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contedo
Estruturas Condicionais Simples
Como montar uma condio
Estruturas Condicionais Compostas
Contedo
Estruturas Condicionais Simples
Como montar uma condio
Estruturas Condicionais Compostas
Estruturas de Programao
Sequencial
Condicional
Repetio
Estruturas de Programao
Teorema provado em
1966 por Corrado
Bhm (1923-) e
Giuseppe Jacopini
(1936-2001) no artigo:
Flow Diagrams,
Turing Machines And
Languages With Only
Two Formation Rules.
Estrutura Sequencial
a = 3
b = 4
m = (a + b)/2
print(m)
Estrutura Condicional
ou
incio
a, b, c
delta b**2 4*a*c
delta = b**2 4 * a * c
Condio
if (delta < 0):
print("Nao tem raizes reais")
delta < 0 v
F
fim
No tem
razes reais
Exemplo A
# Script que calcula o valor do ingresso a
depender de se houver meia entrada
opcao = input("Meia entrada? (S/N) ")
ingresso = 30.0
if (opcao == "S"):
ingresso = ingresso/2
print("Valor do ingresso: ", ingresso)
Contedo
Estruturas Condicionais Simples
Como montar uma condio
Estruturas Condicionais Compostas
(valores aritmticos)
Operadores (sinais que representam operaes)
Operando1
Operador
Resultado
Operando2
Tipos de operadores
Aritmticos
Operadores
Relacionais
Lgicos
Operadores Aritmticos
*
/
//
%
**
Operao
Exemplo
Adio
1+y
Subtrao
xy
Multiplicao
8*y
Diviso real
7 / 2 (= 3,5)
Diviso inteira
7 // 2 (= 3)
x ** 2
Operadores Aritmticos
valor numrico
valor numrico
Operador
Aritmtico
valor numrico
Operadores Aritmticos
:: Formato
Operando1
Opera
dor
Operando2
Exemplos:
2a
2*a
a ** 3
5 ** 0,5
Operadores Aritmticos
:: Prioridade
Prioridade Operador
1
Parnteses mais internos
2
Potenciao
3
4
Exemplos:
36
(4 * 3) ** 2
144
4*5%3
4 * (5 % 3)
Da esquerda
para a direita
Na dvida, use
parnteses.
Operadores Relacionais
==
>
<
>=
<=
!=
Operao
Exemplos
Igual a
3 == 3 20 == 18
Maior que
5>4
10 > 11
Menor que
3<6
9<7
Maior ou igual a
5 >= 3 4 >= 4
Menor ou igual a
3 <= 5 7 <= 7
Diferente de
8 != 9
2 != 2
nmero
Operando1
nmero
Operador
aritmtico
Resultado
Operadores
Relacionais
nmero
Operando1
Operando2
nmero
nmero
Operador
relacional
Operando2
Resultado
Verdadeiro/falso
Operador
Parnteses mais internos
Operadores aritmticos
Operadores relacionais
Na dvida, use
parnteses.
Da esquerda
para a direita
2 + 3 > 10 % 6
5>4
V
Expresso
x+y>6
x - 1 + y == 4
x ** y == x * y
y-5=z-9
1 - z != 4 < 11
x + 8 % z >= y * 6 15
Verdadeiro
Falso
Mal formada
Expresso
x+y>6
x - 1 + y == 4
x ** y == x * y
y-5=z-9
1 - z != 4 < 11
x + 8 % z >= y * 6 15
Verdadeiro
Falso
X
Mal formada
X
X
X
X
x=x+1
x == 2
Contedo
Estruturas Condicionais Simples
Como montar uma condio
Estruturas Condicionais Compostas
a = float(input("Digite a: "))
b = float(input("Digite b: "))
a, b, c
c = float(input("Digite c: "))
Condio
delta < 0
F
Tem raiz
real
fim
No tem
razes reais
Exemplo B
# Script que verifica se o aluno passou
ou nao com base na media
m = float(input("Digite sua media: "))
if (m >= 5.0):
print("Passou")
else:
print("Reprovou")
Indentao
Indentao Vlida
if (condio):
comando
comando
else:
comando
comando
Indentao Invlida
if (condio):
comando
comando
else:
comando
comando
if (condio):
comando
comando
else:
comando
comando
Indentao
:: Diferenas
if (temp > 25):
print("Quente")
print("Ligue o ventilador")
print("Tchau")
t > 25
F
V
Quente
Ligue o ...
Tchau
t > 25
F
Quente
Ligue o ...
Tchau
No confunda
Indentao (identao)
Insero de espaos em um cdigo
de linguagem de programao
Endentao
Encaixe dos dentes de uma pea
denteada com os de outra
Problema 1
Problema 1
2 Definir entradas e sadas
Entradas
Sadas
Grandeza
Unidade de medida
Faixa de valores
PrecoA
R$
8.39
PesoA
kg
0.4
PrecoB
R$
20.30
PesoB
kg
1.0
Marca
---
{A, B}
Problema 1
3 Projetar algoritmo
incio
PrecoA, PesoA
PrecoB, PesoB
rA PrecoA/PesoA
rB PrecoB/PesoB
rA > rB
F
marca A
marca
fim
marca B
Problema 1
4 Codificar em Python
# Entrada de dados
pA = float(input("Digite
pB = float(input("Digite
mA = float(input("Digite
mB = float(input("Digite
o
o
o
o
rA = pA / mA
rB = pB / mB
if (rA > rB):
marca = "B"
else:
marca = "A"
print("Compre a marca ", marca)
Problema 2
Um radar de trnsito
verifica a velocidade
dos veculos.
Caso ultrapassem 60
km/h, emite-se um
registro de multa.
O valor da multa de
R$ 200,00 mais R$ 3,00
para cada 1 km/h acima
do limite.
Escreva um programa
para determinar o valor
da multa.
Problema 2
2 Definir entradas e sadas
Entradas
Sadas
Grandeza
Unidade de medida
Faixa de valores
Velocidade
km/h
Multa
R$
Problema 2
3 Projetar o algoritmo
incio
vel
lim 60
vel > lim
multa
fim
multa 0
Problema 2
4 Codificar em Python
# Entrada de dados e definicao de constantes
vel = float(input("Informe a velocidade: "))
lim = 60
# Limite de velocidade
# Calculo
if (vel >
multa
else:
multa
do valor da multa
lim):
= 200 + 3 * (vel lim)
= 0
# Exibicao de resultados
print(multa)
Problema 2
5 Testar o script resultante
40
km/h
60
km/h
80
km/h
Problema 3
A equao de uma
circunferncia de raio
R 2 + 2 = 2 .
Escreva um algoritmo
que, dado um ponto P
qualquer, verifique se
ele se encontra:
Na
circunferncia
No interior
No exterior
R
x
Problema 3
2 Definir entradas e sadas
Entradas
Sadas
Sadas
Grandeza
Unidade de medida
Faixa de valores
Raio
---
>= 0
Coordenada X de P
---
Coordenada Y de P
---
Localizao de P
---
{interior, exterior, na
circunferncia}
Problema 3
3 Projetar algoritmo
X**2 + Y**2 == R**2
V
Na
circunferncia
V
P interno
F
P externo
Problema 3
3 Projetar algoritmo
incio
R, X, Y
C1
V
Na
circunferncia
C2
F
C2
V
Interno
fim
Externo
Problema 3
4 Codificar em Python
#
r
x
y
Entrada de dados
= float(input("Digite raio: "))
= float(input("Digite coord. X do ponto: "))
= float(input("Digite coord. Y do ponto: "))
Problema 4
Problema 4
2 Definir entradas e sadas
Entradas
Sadas
Grandeza
Unidade de medida
Coeficiente a
---
Coeficiente b
---
Coeficiente c
---
Raiz , se houver
---
Raiz , se houver
---
Faixa de valores
Problema 4
3 Projetar algoritmo
incio
a, b, c
delta b**2 4*a*c
delta < 0
V
No tem raiz
real
F
delta == 0
V
r - b/(2*a)
r
fim
F
r1 (- b + delta)/(2*a)
r2 (- b - delta)/(2*a)
r1, r2
Problema 4
4 Codificar em Python
#
a
b
c
Entrada de dados
= float(input("Digite a: "))
= float(input("Digite b: "))
= float(input("Digite c: "))
delta = b**2 4 * a * c
if (delta < 0):
print("Nao tem raiz real.")
else:
if (delta == 0):
r = -b / (2 * a)
print("Uma raiz real")
print(r)
else:
r1 = (-b + delta**0.5) / (2 * a)
r2 = (-b - delta**0.5) / (2 * a)
print("Duas raizes reais:")
print(r1)
print(r2)
Problema 5
Projete um algoritmo para uma mquina caanquel que gere 3 nmeros aleatrios entre 1 e 10.
Se os trs nmeros forem iguais, o jogador ganha.
Caso contrrio, ele perde.
Problema 5
2 Definir entradas e sadas
Entradas
Sadas
Grandeza
Unidade de medida
Faixa de valores
N1
---
[1,10]
N2
---
[1,10]
N3
---
[1,10]
Sucesso no jogo
---
{Perdeu, Ganhou}
Problema 5
3 Projetar algoritmo
N1 == N2
V
F
perdeu
N2 == N3
F
perdeu
V
ganhou
Problema 5
3 Projetar algoritmo
incio
Gerar N1, N2, N3
N1 == N2
V
N2 == N3
V
Ganhou!
Perdeu!
Perdeu!
Como gerar nmeros
aleatrios?
fim
Problema 5
4 Codificar em Python
# Biblioteca de numeros aleatorios
from random import *
# Gera numeros aleatorios entre 1 e 10
n1 = randint(1,10)
n2 = randint(1,10)
n3 = randint(1,10)
Referncias bibliogrficas
Dvidas?