quinta-feira, 7 de abril de 2011

O desafio da aula de hoje (07/04) foi implementar um programa em haskell que ordene uma lista com determinadas palavras ou numeros.

Segue a baixo o programa implementado em sala com algumas modificacoes:

ordena (x:xs)
  | (x:xs) == [] || xs == [] = (x:xs)
  | x <= head (ordena xs) = (x:xs)
  | x > head (ordena xs) = head (ordena xs) : ordena (x : tail (ordena xs) )

Bug encontrado:

Main> ordena ["ca","bb","aa","dd"]
["aa","bb","ca","dd"]
Main> ordena [5,4,3,2,1]
[1,2,3,4,5]
Main> ordena [1,3,3,2,5,4]
[1,3,3,2,5,4]
Main> ordena [1,3,2,5,4]
[1,3,2,5,4]
Main> ordena [1,3,2,5,4,0]
[0,1,2,3,4,5]

Como podem perceber as vezes ele funciona e as vezes n!

A entrada 1,3,2,5,4 nao funciona mas qndo eu adiciono um 0 no final dela a ordenacao n apresenta erros.. Vou procurar o motivo do bug para informa-los aqui.. se alguem souber e puder me ajudar favor deixar comentarios!

Nenhum comentário:

Postar um comentário