A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação"— Transcrição da apresentação:

1 Introdução à Programação
Comando Condicional Erros Comuns

2 Programa O posto de combustível da cidade reajustou seus preços: o litro da gasolina agora custa R$ 2,78, enquanto o do etanol custa R$ 2,29, e o do óleo diesel custa R$ 2,23. Escreva um programa que receba como entrada o tipo de combustível e a quantidade de litros desejada e exiba o valor a ser pago. 2

3 Exemplo 01 – Ifs independentes
precoGasolina = 2.78 precoEtanol = 2.29 precoDiesel = 2.23 combustivel = str.lower(input("Qual o tipo de combustível escolhido? ")) litros = float(input("Quantos litros você deseja? ")) if (combustivel == "gasolina"): totalPagar = precoGasolina * litros if (combustivel == "etanol"): totalPagar = precoEtanol * litros if (combustivel == "diesel"): totalPagar = precoDiesel * litros print("O valor a ser pago é R$", totalPagar) 3

4 Exemplo 01 – Ifs independentes
Problema Alguns testes desnecessários serão feitos Se o tipo for gasolina, não há necessidade de testar se é etanol nem se é óleo Quando as condições são mutuamente excludentes (escolher uma implica em descartar as demais), o ideal é usar if-elif-else 4

5 Exemplo 02 – Ifs independentes com else
precoGasolina = 2.78 precoEtanol = 2.29 precoDiesel = 2.23 combustivel = str.lower(input("Qual o tipo de combustível escolhido? ")) litros = float(input("Quantos litros você deseja? ")) if (combustivel == "gasolina"): totalPagar = precoGasolina * litros if (combustivel == "etanol"): totalPagar = precoEtanol * litros else: totalPagar = precoDiesel * litros print("O valor a ser pago é R$", totalPagar) 5

6 Exemplo 02 – Ifs independentes com else
Problema O else não se aplica a todos os ifs, apenas ao segundo Ou seja, se o combustível escolhido for gasolina, o primeiro if será executado e, na continuação, o else também Isso costuma ocorrer quando condições que deveriam ser relacionadas são tratadas de forma independente 6

7 Exemplo 03 – Instruções Repetidas
precoGasolina = 2.78 precoEtanol = 2.29 precoDiesel = 2.23 combustivel = str.lower(input("Qual o tipo de combustível escolhido? ")) litros = float(input("Quantos litros você deseja? ")) if (combustivel == "gasolina"): totalPagar = precoGasolina * litros print("O valor a ser pago é R$", totalPagar) elif (combustivel == "etanol"): totalPagar = precoEtanol * litros else: totalPagar = precoDiesel * litros 7

8 Exemplo 03 – Instruções Repetidas
Problema A instrução print é idêntica no if, no elif e no else, indicando que ela sempre será executada Nesses casos, a instrução deve ficar fora do Comando Condicional 8

9 Exemplo 04 – Cálculos Antecipados
precoGasolina = 2.78 precoEtanol = 2.29 precoDiesel = 2.23 combustivel = str.lower(input("Qual o tipo de combustível escolhido? ")) litros = float(input("Quantos litros você deseja? ")) custoGasolina = precoGasolina * litros custoEtanol = precoEtanol * litros custoDiesel = precoDiesel * litros if (combustivel == "gasolina"): totalPagar = custoGasolina elif (combustivel == "etanol"): totalPagar = custoEtanol else: totalPagar = custoDiesel print("O valor a ser pago é R$", totalPagar) 9

10 Exemplo 04 – Cálculos Antecipados
Problema Todos os cálculos são feitos previamente antes que se saiba quais deles serão realmente necessários Dessa forma, o desempenho do programa acaba prejudicado O ideal seria realizar os cálculos apenas sob demanda 10

11 Solução ideal precoGasolina = 2.78 precoEtanol = 2.29 precoDiesel = 2.23 combustivel = str.lower(input("Qual o tipo de combustível escolhido? ")) litros = float(input("Quantos litros você deseja? ")) if (combustivel == "gasolina"): totalPagar = precoGasolina * litros elif (combustivel == "etanol"): totalPagar = precoEtanol * litros else: totalPagar = precoDiesel * litros print("O valor a ser pago é R$", totalPagar) 11

12 Mudança no Programa Modifique agora o programa anterior, sabendo que clientes que abastecerem mais de 30 litros de qualquer combustível ganham uma troca de óleo 12

13 Exemplo 05 – Combinação de condições
if (combustivel == "gasolina") and (litros > 30): totalPagar = precoGasolina * litros print("Você ganhou uma troca de óleo!") elif (combustivel == "gasolina") and (litros <= 30): print("Você não ganhou uma troca de óleo!") elif (combustivel == "etanol") and (litros > 30): totalPagar = precoEtanol * litros elif (combustivel == "etanol") and (litros <= 30): elif (combustivel == "diesel") and (litros > 30): totalPagar = precoDiesel * litros else: 13

14 Exemplo 05 – Combinação de condições
Problema Se as condições não estão relacionadas (não há influência de uma sobre a outra), não faz sentido combiná-las Além de deixar o código muito maior e cheio de instruções repetidas, esse tipo de codificação torna complexa a compreensão 14

15 Solução ideal precoGasolina = 2.78 precoEtanol = 2.29 precoDiesel = 2.23 combustivel = str.lower(input("Qual o tipo de combustível escolhido? ")) litros = float(input("Quantos litros você deseja? ")) if (combustivel == "gasolina"): totalPagar = precoGasolina * litros elif (combustivel == "etanol"): totalPagar = precoEtanol * litros else: totalPagar = precoDiesel * litros if (litros >= 30): print("Você ganhou uma troca de óleo!") print("Você não ganhou uma troca de óleo!") print("O valor a ser pago é R$", totalPagar) 15


Carregar ppt "Introdução à Programação"

Apresentações semelhantes


Anúncios Google