[Dúvida] 2 Programas em Racket para trabalho

99 views
Skip to first unread message

Henrique Shiga

unread,
Dec 16, 2011, 8:31:31 AM12/16/11
to rack...@googlegroups.com
Olá pessoal, comecei a utilizar o Racket agora
Tenho dúvida em como fazer 2 funções:
O primeiro é escrever um programa em Racket que recebe como parâmetro uma listas de notas de um grupo de alunos, e
retorne uma nova lista com as notas que estão acima da m edia das notas deste grupo. 
Calcular primeiro a m edia da turma e em seguida encontrar as notas acima desta m edia. Por exemplo:
> (notas-acima-da-media '(6 5 1 8 10 3)) ; a media da turma e 5,5
'(6 8 10)


O segundo é encontrar o valor m áximo entre os elementos de uma cole ção.

Obrigado pela ajuda.

Rodolfo Carvalho

unread,
Dec 16, 2011, 6:58:20 PM12/16/11
to rack...@googlegroups.com
Olá Henrique!

2011/12/16 Henrique Shiga <shi...@gmail.com>

Olá pessoal, comecei a utilizar o Racket agora


Qual está sendo seu uso de Racket, e como conheceu a linguagem?


 
Tenho dúvida em como fazer 2 funções:
O primeiro é escrever um programa em Racket que recebe como parâmetro uma listas de notas de um grupo de alunos, e
retorne uma nova lista com as notas que estão acima da m edia das notas deste grupo. 
Calcular primeiro a m edia da turma e em seguida encontrar as notas acima desta m edia. Por exemplo:
> (notas-acima-da-media '(6 5 1 8 10 3)) ; a media da turma e 5,5
'(6 8 10)



O que você já tentou fazer? 

Para calcular a média você precisa calcular (/ soma-das-notas (length notas)).
E para filtrar a lista de notas, retornando só as acima da média, pode usar o filter:

(filter maior-que-a-média? notas)

Onde maior-que-a-média? é uma função (pode ser um lambda) que retorna true/false e notas é a lista original de notas.

 


O segundo é encontrar o valor m áximo entre os elementos de uma cole ção.


Para fazer isto existe a função max:

> (max 1 2 3 7 23)
23


Se você tiver em mãos uma lista, então fica assim:

> (apply max '(2 3 1))
3


Caso você queria comparar coisas que não sejam números, você pode querer usar o argmax.



[]'s

Rodolfo Carvalho
Reply all
Reply to author
Forward
0 new messages