Ir para conteúdo
Fórum Script Brasil
  • 0

Esclarecimento de duvidas


nanamoriy

Pergunta

Boa noite, gostaria de saber onde estou errando por que, tenho uma questão sobre PA e PG pra fazer e algumas fórmulas tem exponenciação, sei que pode ser utilizado o "double __cdecl pow(double _X,double _Y);", mas nã compila, já declarei as variáveis como double, já escrevi somente pow(variavel, variavel), bom, Como devo prosseguir?

 

Segue abaixo a parte em dúvida, sendo que essa é a 1ª forma que fiz, porém compila, executa, mas o resultado não é o correto.

 

    case 3: 
                        {
                            cout<< "Digite o primeiro termo da PG \n";
                            cin>> t1;
                            cout<< "Digite a posição do último termo da PG  \n";
                            cin>> t;
                            cout<< "Digite a razão da PG \n";
                            cin>> q;
                            
                            cout<< "A soma dos termos é " << t1*(q^(t-1))/(q-1) << endl;
                            
                            break;
                        }

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Porque no caso em questão, o enunciado pede a utilização de fórmulas de PG, sendo que duas delas tem exponenciação, eu estava pesquisando sobre e várias vezes recomendavam a utilização do pow(), eu já tinha incluído a math.h, o problema mesmo era saber como usar o pow() pra ter o resultado q eu estava procurando.

Link para o comentário
Compartilhar em outros sites

  • 0

pow tem o seguinte aspecto:

double pow (double base, double exponent);


Alguns exemplos com pow podem ser:

  printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) );
  printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) );
  printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) );


Cujo os resultados são:

7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691


Resumindo...
pow trabalha com tipo double. Sua formula t1*(q^(t-1))/(q-1) ficaria mais ou menos como:

t1*( pow(q,(t-1)) )/(q-1)

Sugiro que todas as variáveis sejam do tipo double. E na parte do t-1 você faça um cast explicito... tipo: t-(double)1 ou t-1.0, pois no suposto caso de que t seja outro tipo que não um double, acontecerá um cast implícito, e se estaria passando outro tipo que não seria double, poderia produzir resultados indesejados.

Se funcionou diga aqui.

 

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...