terça-feira, 25 de janeiro de 2011

Problema 3: Exame Normal

Trata-se de um problema muito simples. A primeira questão a resolver é como representar a matriz. A escolha óbvia é por recurso a uma lista de listas. Depois apenas precisamos de percorrer a matriz e alterar cada um dos seus elementos retirando o valor de referência. como não podemos ter valores negativos, nos casos em que isso acontece o valor a ser guardado é zero. Dito isto uma solução possível é a seguinte.


def dif(matriz,numero):
"""
Retira a cada elemento da matriz o valor igual ao número. Não podem
existir valores negativos.
"""
for lin in range(len(matriz)):
for col in range(len(matriz[0])):
matriz[lin][col] = max(matriz[lin][col] - numero, 0)
return matriz


Veja-se como evitamos o teste para saber se o resultado é negativo. Também não assumimos, e não o devíamos fazer, que a matriz é quadrada.

Sem comentários:

Enviar um comentário