Jump to content

Recommended Posts

Posted (edited)

podem-me dar alguma dica para definir o nº de casas decimais?

queria fazer isto sem utilizar strings ou funções pre-definidas.

int calculatePi(int n_digits)
{
long double scale = 1;
for( int a = 1; a < n_digits; a = a + 1 )
{
 int d_factor = pow(10, a);
 scale = scale / d_factor;
}
long double value = (pi / scale) * scale;
return value;
}
Edited by apocsantos
geshi
Posted

tens uma função que retorna um inteiro e depois colocar um long double como valor de retorno ?

além disso, perguntas como "definir o nº de casas decimais", mas definir como ? em programação isso não funciona assim

tens de ser mais claro no que enquadra o problema

IRC : sim, é algo que ainda existe >> #p@p
Posted (edited)

obrigado, era isso e o loop.

é um exercicio na command line: introduz-se o nº de dígitos, e retorna o valor de pi.

long double calculatePi(int n_digits)
{
long double scale = 1;
int d_factor;

for( int a = 1; a < n_digits; a = a + 1 )
{
 d_factor = pow(10, a);
}

scale = scale / d_factor;
long double value = (pi / scale) * scale;
return value;
}
Edited by apocsantos
geshi
  • 3 weeks later...
Posted

Olá Sketxz,

Antes de mais acho que estás a abordar mal o problema à partida.

O objectivo deste problema é usares strings, algo que à partida descartas.

Ou seja, o objectivo deste tipo de problema é teres um número tão mas tão grande que não o consegues representar com inteiros.

Para isso tens que usar Strings ou Strings decimais como normalmente se referem neste tipo de problemas.

Caso contrário não tem grande ciência.

Algumas notas:

long double value = (pi / scale) * scale; // qual o objectivo????

Não escrevas isto assim:

for( int a = 1; a < n_digits; a = a + 1 )

Escreve assim:

for( int a = 1; a < n_digits; a++ )

Existe um livro excelente chamado Programação com Classes em C++ da FCA onde tes a resolução deste problema!!!

Cumprimentos.

Posted

O objectivo deste problema é usares strings, algo que à partida descartas.

como podes ter tanta a certeza sobre esse ponto ? estudas no mesmo local ?

é que quando uma pessoa diz à cabeça que um método não pode ser utilizado é mais normal ser uma imposição do que falta de conhecimento

IRC : sim, é algo que ainda existe >> #p@p
Posted

Bah... eu não impus nada!!!!

Só disse que estava a abordar mal o problema e em minha opinião está.. só isso!

A intenção é ajudar e sinceramente acho que ajudar também é dar opinião sobre o método de resolução e não só sobre o código.

Mas registei a tua dica!

Obrigado 🙂

Aliás PI calcula-se através de uma sucessão... o que até dá jeito para programar!!! Só para dar atirar mais uma farpa...

  • 5 months later...

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.