domingo, 17 de outubro de 2010

Problemas 4.3, 4.4 e 4.6

Problema 4.3

Os problemas da ficha 4 sobre condicionais são, em geral, muito acessíveis. Este não foge à regra.

def nota_iprp(nexame, teste,projecto):
"""Determina a nota de iprp. Exame vale 60%, teste, vale 20% e projecto 20%.
Asume que os valores introduzidos estão correctos."""
nota = 0.6 * exame + 0.2 * (teste + projecto)
if nota <9.5 :
return 0
else:
return 1


Problema 4.4

Este problema não tem solução única. Uma ideia a ter em conta pode ser o de minimizar o número de testes a efectuar.

def maior_3(n1,n2,n3):
""" Determina o maior dos três números."""
if n1 > n2:
if n1 > n3:
return n1
else:
return n3
else:
if n2 > n3:
return n2
else:
return n3

Claro que estas abordagens não são escaláveis. Imaginem se eram 100 números!! Veremos com a introdução dos ciclos que existe uma resposta a esta questão que não depende do número de números. Mas, se conhece bem Python, já sabe que também podia deixar o problema nas mãos das funções pré-definidas:

>>> max(1,6,3,9,34,98,4)
98
>>>

Problema 4.6

E agora a questão da fruta. Nada como ter um bom desconto...

def custo_fruta(peso, preco, peso_minimo):
""" Qual o custo da fruta?."""
a_mais = peso - peso_minimo
if a_mais > 0:
custo = peso_minimo * preco + a_mais * 0.75 * preco
else:
custo = peso * preco
return custo

Das aulas resultou que a maior dificuldade sentida foi a de entender o enunciado. Têm que se habituar a interpretar correctamente o texto que descreve o problema a resolver.

Sem comentários:

Enviar um comentário