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.
1.def nota_iprp(nexame, teste,projecto):
2.   """Determina a nota de iprp. Exame vale 60%, teste, vale 20% e projecto 20%.
3.   Asume que os valores introduzidos estão correctos."""
4.   nota = 0.6 * exame + 0.2 * (teste + projecto)
5.   if nota <9.5 :
6.       return 0
7.   else:
8.       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.
01.def maior_3(n1,n2,n3):
02.   """ Determina o maior dos três números."""
03.   if n1 > n2:
04.      if n1 > n3:
05.          return n1
06.      else:
07.         return n3
08.   else:
09.      if n2 > n3:
10.         return n2
11.      else:
12.         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:
1.>>> max(1,6,3,9,34,98,4)
2.98
3.>>>

Problema 4.6

E agora a questão da fruta. Nada como ter um bom desconto...
1.def custo_fruta(peso, preco, peso_minimo):
2.   """ Qual o custo da fruta?."""
3.   a_mais = peso - peso_minimo
4.   if a_mais > 0:
5.        custo = peso_minimo * preco + a_mais * 0.75 * preco
6.   else:
7.        custo = peso * preco
8.   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