• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

K3nshin

função zeros

2 mensagens neste tópico

Boas! Precisava da vossa ajuda para resolver o seguinte problema:

--dados inteiros a,b e c, determina os zeros da função

--f(x)=a*x^2+b*x+c

--o resultado deve ser uma resposta da forma

--"f(x)=0 para x=4.2"

--"f(x)=0 para 3.5 e x=2.7" ou ainda

--"f(x) nunca toma o valor 0"

--todos os valores acima indicados sao exemplos

--

--Nota:pode precisar das funções predefinidas show e fromInt

--

--zeros::Int->Int->Int->String

Ora eu tentei resolver da seguinte forma:

zeros::Int->Int->Int->String
zeros a b c
                |(b*b-4*a*c)<0 = "f(x) nunca toma o valor 0"
                |(b*b-4*a*c)>0 = "f(x)=0 para x="++show (calculo a b c)++" e x="++show (calculo2 a b c)
                |otherwise	 = "f(x) para x="++show((-b)/(2*a))
 where calculo a b c=( (-b)+ sqrt(b*b-4*a*c) )/(2*a)
       calculo2 a b c=( (-b)- sqrt(b*b-4*a*c) )/(2*a)

so que isto me da erro no tipo, Instance of Floating Int required for definition of zeros. O que é que isto significa e o que é que tenho que mudar para corrigir o erro?

Thx in advance

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

porque é que a função recebe inteiros? era capaz de ser boa ideia receber floats ou doubles.

mas caso queiras continuar com inteiros, vais precisar de converter os inteiros para float/double para poderes usar a divisão. para tal tens a função fromIntegral.

0

Partilhar esta mensagem


Link 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