Jump to content

Recommended Posts

Posted

Bem um amigo meu estava a programar uma calculadora com fórmulas de um jogo e deparou-se com um caso complicado!

Ele precisava de elevar uma variável a 0,8 , ora com um ciclo For parece-me completamente impossivel, ja tentei alterar a formula de maneira matematica e nada..

Se alguem tiver uma sugestão, ja me matei a pensar nisso e nada! :wallbash:

Obrigado,

Paletas~

Posted

Já não me lembro como se calculam raízes no Pascal.

Se a variável a que te referes for x, então x^0,8 = x^(8/10) = x^(4/5) = raiz quinta de x^4

Não apanhei a parte do "raiz quinta de x^4"

Mas obrigado! Até o meu professor de bases de programação ficou a olhar quando lhe fiz a pergunta  :dontgetit:...

Obrigado,

Paletas~

Posted

Já não me lembro como se calculam raízes no Pascal.

Se a variável a que te referes for x, então x^0,8 = x^(8/10) = x^(4/5) = raiz quinta de x^4

Tens a certeza que a função '^' existe em Pascal ? é que a mim dá-me erro :|

Posted

Já não me lembro como se calculam raízes no Pascal.

Se a variável a que te referes for x, então x^0,8 = x^(8/10) = x^(4/5) = raiz quinta de x^4

Não apanhei a parte do "raiz quinta de x^4"

Mas obrigado! Até o meu professor de bases de programação ficou a olhar quando lhe fiz a pergunta  :dontgetit:...

Obrigado,

Paletas~

Bem, apetece-me dizer uma piada:

Então, a raiz quinta é a seguir à raiz quarta, que depois é a raiz sexta, sábado, domingo e depois volta para a raiz segunda ou raiz de segunda (raiz de baixa categoria).  😁

Agora a sério, ele quis dizer foi raiz de índice 5 de (x^4):

  5 +------

    \| x^4

Cumpr. bk@ero    👍

Posted

Paletas~ se nao percebeste o desenho do bk@ero que tava mt fixe 👍 é o mesmo que raiz cúbica (com um 3 na raiz), mas desta vez com um 5 , ou seja raiz "quinta" de x^4 😄

Posted

Para fazeres a potencia podes utilizar uma função

function potencia (num,elev:integer) : integer;
var poten,i:integer;
begin
      poten:=1;
      for i:=1 to elev do 
           poten:=poten*num;
      potencia:=poten;
end;

Agora para fazeres essa raiz marada é que não sei. Só sei fazer a raiz normal utilizando a função sqrt.

Cumps,

Posted

MAiDEN_DuDE - Se fosse assim tão fácil eu ja tinha feito  😁, o prob e que o For não dá com variáveis do tipo Real! Mas obrigado!

José Oliveira - Acho que isso deve funcionar, depois da escola vou fazer os devidos testes! Obrigado +1 vez!

Obrigado,

Paletas~

Posted
Program  sss;
Uses crt;
Var indice : real;
    base : integer;
function raiz (indice : real; base : integer):real;
begin
         raiz := exp ((1/indice)*ln(base));
end;
Begin
  writeln ('indice');
  readln (indice);
  writeln('base');
  readln(base);
  writeln (raiz(indice,base));
  readln;
End.

Dá-me erro "Error 200 : Division by Zero" Ou seja, compila sem problemas, e quando vai a  começar diz logo isso! Vou meter os neurónios a funcionar e ver o que se passa... ou tentar!

EDIT - Bem, em vez de usar o Turbo Pascal tentei corre-lo no Dev-Pascal, e funcionou! Agora vo mandar ao tal amigo e ver se dá os resultados que ele quer...

EDIT2 - Segundo ele, os resultados não são os esperados, mas já to aqui a pensar numas alterações que devem funcionar!

Obrigado,

Paletas

  • 2 weeks later...
Posted

"Division by zero" quer dizer "Divisão por zero" que como sabes, ou devias saber é impossível (experimenta fazer qualquer coisa a dividir por zero numa calculadora e vê o que dá...).

A conta está mal. Devia ser exp(indice*ln(base)).

Base teórica:

http://img360.imageshack.us/img360/4112/dem6px.png

ups, ficou um bocado grande ? paciencia, é p'ra se ver bem

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.