Aula 04: Execuções condicionais em cadeia

Tópicos

Operadores Aritméticos de Atribuição +=,-=,*=,/=,%=

Cada um destes operadores é usado com um nome de variável à sua esquerda e uma expressão à sua direita.

Operador Exemplo É equivalente a:
*=x *= 5x = x * 5
/=x /= 5x = x / 5
%=x %= 5x = x % 5
+=x += 5x = x + 5
-=x -= 5x = x - 5

Estrutura condicional encadeada

Exemplo:

Dados dois inteiros x e y, indicar se eles são iguais ou qual é o maior entre eles.

Na solução abaixo, isolamos o caso em que x é estritamente menor do que y no primeiro if. Na sequência (no corpo do else), temos dois casos remanescentes, isto é, ou x é o maior dos valores ou eles são iguais. Para distinguir entre esses dois casos podemos usar um segundo comando condicional dentro do primeiro else.

if x < y :
    print("x é menor do que y.")
else:
    if x > y :
        print("x é maior do que y.")
    else:
        print("x e y são iguais.")
  

O mesmo efeito pode ser obtido considerando a construção if-elif-else.

      
if x < y :
    print("x é menor do que y.")
elif x > y :
    print("x é maior do que y.")
else:
    print("x e y são iguais.")
  

Problema 1:

Dados um número inteiro n, n > 0, e uma sequência com n notas finais de MAC2166, determinar quantos alunos: Por exemplo, para a sequência

6   2.3   3   5.0   6.5   8.7   4.9

o resultado deve ser

Número de alunos excelentes = 1
Número de alunos aprovados = 3
Número de alunos de recuperação = 2
Número de alunos reprovados = 1

Uma primeira solução é apresentada abaixo.

n = int(input("Digite a quantidade de alunos: "))
no_aprovados   = 0
no_recuperacao = 0
no_reprovados  = 0
no_excelentes  = 0

i = 0
while i < n:
    nota = float(input("Digite uma nota: "))
    if nota >= 5.0:
        no_aprovados += 1
        if nota >= 8.0:
            no_excelentes += 1
    else:
        if nota >= 3.0:
            no_recuperacao += 1
        else:
            no_reprovados += 1
    i = i + 1

print("Número de alunos excelentes =",no_excelentes)
print("Número de alunos aprovados =",no_aprovados)
print("Número de alunos de recuperação =",no_recuperacao)
print("Número de alunos reprovados =",no_reprovados)

O mesmo efeito pode ser obtido considerando a construção if-elif-else.

n = int(input("Digite a quantidade de alunos: "))
no_aprovados   = 0
no_recuperacao = 0
no_reprovados  = 0
no_excelentes  = 0
      
i = 0
while i < n:
    nota = float(input("Digite uma nota: "))
    if nota >= 5.0:
        no_aprovados += 1
        if nota >= 8.0:
            no_excelentes += 1
    elif nota >= 3.0:
        no_recuperacao += 1
    else:
        no_reprovados += 1
    i = i + 1

print("Número de alunos excelentes =",no_excelentes)  
print("Número de alunos aprovados =",no_aprovados)
print("Número de alunos de recuperação =",no_recuperacao)
print("Número de alunos reprovados =",no_reprovados)