quinta-feira, 16 de fevereiro de 2017

Introdução a Programação parte 3: Controle de Fluxo

Dando continuidade ao post "Introdução a Programação parte 2", vamos agora aprender a como controlar o fluxo de nossos programas.

Antes de começar mesmo, vamos fazer uma pequena revisão sobre lógica booleana.
Lógica booleana trata de operações com verdadeiros e falsos, ou para o computador uns e zeros.

Muitas vezes usamos as operações básicas da lógica booleana em nosso cotidiano e nem nos damos conta.
Essas operações são, "não", "e" e "ou", em inglês "not", "and" e "or".

Por exemplo, se eu tiver tempo e dinheiro vou começar a fazer um curso de Inglês.

Nessa sentença o sujeito apenas fará o curso de Inglês se as duas condições forem verdadeiras, ou seja, ter tempo e dinheiro. Caso qualquer uma das condições for falsa ele não fará o curso, ou seja, se ele não tiver tempo ou não tiver dinheiro ele não fará o curso.

Para explicar essa frase já acabei dando exemplos do "ou" e do "não".

Agora vamos transformar a frase acima em código:
tenho_tempo = True
tenho_dinheiro = True

if tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'


A linguagem que estou usando para exemplificar, o Python, necessita da indentação para funcionar corretamente. A linha com o "print" é a ação que deve ser tomada caso a condição do if (em português "se") seja verdadeira, esta parte deve estar toda indentada.
tenho_tempo = True
tenho_dinheiro = True

print 'tomando decisao'
if tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'
else:
    print 'nao vou fazer o curso'
print 'decisao tomada'

No exemplo acima foi adicionada um else ( em português "senão"), o bloco indentado abaixo do else só é executado caso a condição do if tenha sido falsa.
O último print sempre é executado, pois ele está fora do bloco indentado do else.

Mais um exemplo, agora vamos usar o elif (abreviação de else if).

tenho_tempo = True
tenho_dinheiro = True

print 'tomando decisao'
if tenho_tempo and not tenho_dinheiro:
    print 'tenho tempo mas nao tenho dinheiro'
    print 'nao vou fazer o curso'
elif tenho_dinheiro and not tenho_tempo:
    print 'tenho dinheiro mas nao tenho tempo'
    print 'nao vou fazer o curso'
elif tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'
else:
    print 'nao vou fazer o curso'
print 'decisao tomada'

Fiquem a vontade para alterar os valores das variáveis (tenho_tempo, tenho_dinheiro) e ver os diferentes resultados. Lembrem-se de usar a primeira letra maiúscula ( True,False ), ou podem usar 1 ou 0.

tenho_tempo = 1
tenho_dinheiro = 1

print 'tomando decisao'
if tenho_tempo and not tenho_dinheiro:
    print 'tenho tempo mas nao tenho dinheiro'
    print 'nao vou fazer o curso'
elif tenho_dinheiro and not tenho_tempo:
    print 'tenho dinheiro mas nao tenho tempo'
    print 'nao vou fazer o curso'
elif tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'
else:
    print 'nao tenho tempo nem dinheiro'
    print 'nao vou fazer o curso'
print 'decisao tomada'


Agora vamos fazer algumas pequenas modificações para deixar esse "programa" mais próximo de um caso real, afinal no mundo real geralmente não trabalhamos diretamente com verdadeiros e falsos.
No exemplo a seguir foram adicionados alguns comentários, linhas que não são executadas pelo computador, são apenas para descrever o código, estas são inciadas pelo caractere #.

tempo_livre = 4
dinheiro = 400

tempo_curso = 1
custo_curso = 200

# se tempo livre maior ou igual ao tempo do curso,
# tenho_tempo eh verdadeiro
tenho_tempo = tempo_livre >= tempo_curso

# se dinheiro maior ou igual ao custo do curso,
# tenho dinheiro eh verdadeiro
tenho_dinheiro = dinheiro >= custo_curso

if tenho_tempo and not tenho_dinheiro:
    print 'tenho tempo mas nao tenho dinheiro'
    print 'nao vou fazer o curso'
elif tenho_dinheiro and not tenho_tempo:
    print 'tenho dinheiro mas nao tenho tempo'
    print 'nao vou fazer o curso'
elif tenho_tempo and tenho_dinheiro:
    print 'vou fazer o curso de Ingles'
else:
    print 'nao tenho tempo nem dinheiro'
    print 'nao vou fazer o curso'
print 'decisao tomada'

Obrigado!

Nenhum comentário :

Postar um comentário