Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

SilvaPereira

Alunos inscritos numa turma

Mensagens Recomendadas

SilvaPereira

Boas, sou novo no forum e quero desde já dar-vos os parabéns pelo trabalho :) . Eu estou a programar em haskell, mas tenho encontrado alguns problemas. Tenho uma dúvida numa função que tenho tentado definir, que consistia em devolver um inteiros  que era correspondente aos alunos inscritos na numa turma. Ora, a minha ideia inicial era, dessa turma, criar uma lista com os números de alunos, fazendo depois o length dessa lista, mas dá-me erro, não sabendo se é da confusão que eu faço na estrutura da função. Eu fiz assim :

type Numero = Int
type Nome = String
type Nota = String
type Valor = Float
type Insc = String
type AlunosNotas = [(Numero, Nome , Insc , [( Nota , Valor )])	

turmaLcc = AlunosNotas
turmaLcc = [(56985,"André Adolfo Antunes", "Ord", [("Ficha1", 0.2)]))

alunosInscritos :: [(Numero, Nome , Insc , [( Nota , Valor )])]->[int]
alunosInscritos []=0
alunosInscritos =[juntaNum a|a<-list]
where juntaNum ([(a,b,c,[(d,e)])]=a
alunosInscritos =[a|(a,b,c)<-list]

Alguma ideia?

Desde já obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Regra no1 de quando se pede ajuda:

Indicar, no caso de existirem mensagens de erro, qual o erro e aonde é que está indicado que o erro existe.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Betovsky

No mínimo o código que colocaste não tá completo e/ou não faz sentido.

Por exemplo:

alunosInscritos =[juntaNum a|a<-list]

De onde vem a variável list ?


"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mundo

turmaLcc = AlunosNotas
turmaLcc = [(56985,"André Adolfo Antunes", "Ord", [("Ficha1", 0.2)]))

Isto nao sera mais algo do tipo:

turmaLcc :: AlunosNotas
turmaLcc = [(56985,"André Adolfo Antunes", "Ord", [("Ficha1", 0.2)]))

a nao ser que o que queiras seja fazeres isto

type turmalcc = [AlunosNotas]

e poq nao em vez de

alunosInscritos :: [(Numero, Nome , Insc , [( Nota , Valor )])]->[int]

colocares

alunosInscritos :: [AlunosNotas] -> [int]

No mínimo o código que colocaste não tá completo e/ou não faz sentido.

Por exemplo:

alunosInscritos =[juntaNum a|a<-list]

De onde vem a variável list ?

Acho que ele esqueceu se de inserir l de list a seguir a alunosInscritos, ou entao tambem nao percebi lol

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
SilvaPereira

Sim, é bastante possivel que encontrem mais erros, eu não sou muito bom nisto, sou novo nestas andanças. Vocesacham que há maneiras mais simples de resolver este problema? O primeiro erro que me dá é:

"notepad.hs:8:1: parse error (possibly incorrect indentation)"

Isto dá-me erro na linha de codigo :"turmaLcc = AlunosNotas" e suponho que seja o primeiro de muitos erros

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mundo

isso esta mal porque turmaLcc e do tipo AlunosNotas, ou seja, tu esta a fazer uma atribuiçao aqui

turmaLcc = AlunosNotas

em vez disso tens que dizer que e do tipo AlunosNotas, ou seja, assim:

turmaLcc :: AlunosNotas

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.