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

programa em C para calcular o valor de S


angelij

Pergunta

Preciso criar um programinha que faça o cálculo abaixo, tentei diversas vezes, na verdade tem uma semana que estou trabalhando para criar este programinha mas o máximo que consegui foi o desenvolvido abaixo o qual está incorreto pelo fato de não apresentar o resultado certo.

S = 2 / 50 + 2² / 48 + 2³ / 46 + ... + 2²³ / 2

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

main()
{
    int numerador=2, denominador, potencia, dois, s;
    numerador=numerador*2;
    for (numerador = 2; numerador <= 25; ++dois);
        printf("Numerador", numerador);

    for (denominador = 50; denominador >= 2; --dois);

        printf("Denominador", denominador);

 

    for (potencia = 2; potencia = 25; potencia++)
        numerador = numerador * potencia;
        printf("Potencia: %d", numerador);
}

 

 

Me ajudem!

Editado por angelij
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

não sei si é o que você quer >_<

#include<stdio.h>
#include <math.h>

main() {
    //S = 2 / 50 + 2² / 48 + 2³ / 46 + ... + 2²³ / 2
    
    double s = 0;
    
    int i = 50;
    int e = 0;
    while( i>2 ){
       s += pow( (double)2, e++ ) / 50;
       printf ( "%d/%d\n", (int)pow( 2, e-1 ), i  );
       i-=2; 
    }
    printf ( "\ns=%d/%d <-Isso???\n", (int)pow( 2, e-1 ), i  );
    
}

 

Link para o comentário
Compartilhar em outros sites

  • 0

Não confie muito no meu programa... Eu tenho quase certeza que ele tem falhos e não esta devolvendo o que você quer. Isso é por causa que eu não sou tão bom matemático como programador XD.
Sobre sua pergunta de como melhorar, eu te diria que si você tem um calculo complexo o melhor sistema é descompor ele num papel anotando os passos e numerando os passos que você ve repetitivos, pense no seu código como passos. No seu exemplo (S = 2 / 50 + 2² / 48 + 2³ / 46 + ... + 2²³ / 2), eu entendi que S vai acumulando o valor de: de cada repetição dessas:
2 elevado a 0 dividido por 50...
//note que do exponente zero ao dois da um salto de 2, porem os seguintes dão saltos de 1 em um... isso me confundiu algo.
2 elevado a 2 dividido por 48... //logo daqui em diante de 1 em 1.
2 elevado a 3 dividido por 46...

O que é que você vai notando??? que o exponencial vai aumentando, de um em um a partir da segunda avaliação(essa parte não entendi) e o dividendo vai reduzindo em 2 até chegar ao 2, essa é a condiçao de parada do loop while:
2 elevado a 23 dividido por 2.

Os passos repetitivos são loops e certamente podem ser resolvidos com um while o um for. Meu conselho é... Descomponha a expressão em partes mais pequenas, faça num papel, vaia anotando em passos como resolver, compare o resultado do papel com o seu código para ver si o resultado coincide.
Si você tiver um grande problema, você divide ele em partes mais pequenas, isso é aplicável a toda a programação. Infelizmente você deve praticar com todas as funções matemáticas para ao menos saber que fazem e poder recorrer a elas quando seja necessário. As funções matemáticas pertencem a math.h, de uma olhada e veja os exemplos. Aqui tem uma descrição em português.

Si você descompor os passos para mim eu posso fazer ele melhor. Minha intenção é que você aprenda a caminhar por suas próprias pernas, espero que tenha sorte ;)

 

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...