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

não consigo chegar a uma solução deste programa...


apacheco

Pergunta

Por favor a quem puder me ajudar, um amigo meu veio com este problema e eu infelizmente não dei conta, falei que iria ajudá-lo, por issso conta com a ajuda de vocês, não consigo de jeito nenhum chegar a solução deste calculo com frações e expoentes...

1(2: expoente de 1 ao qradrado)/50 + 3(4: expoente de 3 a quarta)/49 - 5(6: expoente de 5 a sexta)/48 ... ?(?: expoente que preciso saber do ultimo numero)/1 = ? (Resultado do calculo).

Gostaria a quem entende de linguagem C, para me judar a reolver este problema e como posso programar na linguagem C,

para dar resultado do ultimo numerodor e seu expoente e resultado do calculo. Lembrando que eu posso usar somente FOR e IF. Este

programa terá que ser executado 50 vezes até que o denominador seja 1 e o expoente sempre aumenta de 2 em dois.

Agradeço desde já quem puder me ajudar.

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

14 respostass a esta questão

Posts Recomendados

  • 0
Lembrando que eu posso usar somente FOR e IF.

Se quer ajudar mesmo seu amigo, peça pra ele fazer isso tudo num pedaço de papel pra depois trabalhar em cima da linguagem. Se é pra usar apenas IF e FOR, só pode ser exercício de aula. Depois de estar em papel fica fácil montar a lógica. Se for mesmo exercicio de classe, a melhor forma de ajudá-lo é deixar ele próprio quebrar a cabeça.

Link para o comentário
Compartilhar em outros sites

  • 0
Ainda não consegui entender muito bem a lógica...

Como está seu código até o momento ?

/*Calculo envolvendo a soma e a subtração de divisões cuja divisões possuem expoentes

pares,desenvolva o resultado ache o numerador e seu respectivo expoente.*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//#include <conio.h>

//Corpo da função
int main(int argc, char *argv[])
{
    int n,d,e,nf,ef,cont1=0,cont2=0;
    float resultado=0,cont;
    
    printf("O primeiro numerador e 1\n");
    printf("O primeiro denominador e 50\n");
    printf("O primeiro expoente e 2\n");
    printf("O numerador vai de 2 em 2,o denominador vai decrementando e o expoente 2 em 2. \n");
   
    for(d=50,n=1,e=2;d>0;d--){
                              
         cont1+=n+2;
         cont2+=e+2;
         
        cont=(pow((cont1),(cont2)))/d;
                      
         if ((d%2)==0){
           resultado-cont;
                   
         }else resultado+cont;
         
         resultado+=cont;
         
         
         
         if(d==1){
            nf=cont1;
            ef=cont2;      
         }
            
    }
    
    
    printf("O resultado da operacao e: %f \n" ,resultado );
    printf("O resultado do numerador final: %d \n" ,nf );
    printf("O resultado do expoente final: %d \n" ,ef );
  
  system("PAUSE");    
  return 0;
}

esta assim por enquanto...

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

  • 0
Qual erro ele dá ??

O que falta na sua função ??

Obs.:

Ao postar códigos, utilize as tag's [code] e [/code]

Eu não estou conseguindo fazer o programa gerar o resultado e tb não sei se esta correto o resultado do calculo,

por isso eu conto com a ajuda de vocês para me ajudar a descobrir o problema. O numerador final aqui esta dando 150 e

o expoente final 200 e o ressultado bugado. Mais não sei se está correto.

Link para o comentário
Compartilhar em outros sites

  • 0

Hum... você tem um problema ai... não posso lhe dizer a resposta... mas posso lhe dar dicas e como o Maligno disse... e melhor você quebrar a cabeça, mas vou começar quebrando seu galho, quando eu chegar ao resultado que você deseja eu te dou uma dica quase inutil :P

Link para o comentário
Compartilhar em outros sites

  • 0
Hum... você tem um problema ai... não posso lhe dizer a resposta... mas posso lhe dar dicas e como o Maligno disse... e melhor você quebrar a cabeça, mas vou começar quebrando seu galho, quando eu chegar ao resultado que você deseja eu te dou uma dica quase inutil :P

O problema é q eu não consigo de jeito nenhum encontrar o problema já mudei o decremento o incremento, já fiz teste de mesa e nada

Link para o comentário
Compartilhar em outros sites

  • 0
Hum... você tem um problema ai... não posso lhe dizer a resposta... mas posso lhe dar dicas e como o Maligno disse... e melhor você quebrar a cabeça, mas vou começar quebrando seu galho, quando eu chegar ao resultado que você deseja eu te dou uma dica quase inutil :P

O problema é q eu não consigo de jeito nenhum encontrar o problema já mudei o decremento o incremento, já fiz teste de mesa e nada

calma... já to conseguindo... eu acho.

Puts... desculpa cara. Eu não sabia que tinha que usar somente If e For... fiz o codigo de outra maneira... vou recomeçar!

Ei me diga o que é cada variavel no seu codigo la de cima.

Link para o comentário
Compartilhar em outros sites

  • 0
Hum... você tem um problema ai... não posso lhe dizer a resposta... mas posso lhe dar dicas e como o Maligno disse... e melhor você quebrar a cabeça, mas vou começar quebrando seu galho, quando eu chegar ao resultado que você deseja eu te dou uma dica quase inutil :P

O problema é q eu não consigo de jeito nenhum encontrar o problema já mudei o decremento o incremento, já fiz teste de mesa e nada

calma... já to conseguindo... eu acho.

Puts... desculpa cara. Eu não sabia que tinha que usar somente If e For... fiz o codigo de outra maneira... vou recomeçar!

Ei me diga o que é cada variavel no seu codigo la de cima.

n - numerador

d - denominador

e - expoente

nf - numerador final

ef - expoente final

cont1 - contador do numerador q vai de dois em dois

cont2 - contador do expoente q vai de 2 em dois

resultado - e o resultado do calculo

cont - contador

Link para o comentário
Compartilhar em outros sites

  • 0
3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.

Não são permitidos up's aqui no fórum !

Cara, já estou com seu script pronto (o funcionamento)

Mas ainda não entendi muito bem o cálculo de deve ser feito

A estrutura de loop já foi toda montada

obs.: usei apenas uma variável no programa inteiro, que é o contador...os outros cálculos (denominador, numerador, etc.) foram feitos a partir dessa variável !

O programa foi montado com os cálculos na seguinte sequência:

(1*1^2)/50
(3*3^4)/49
(5*5^6)/48
(7*7^8)/47
(9*9^01)/46
[...]

Mas acho que não é isso que você quer...

Pode postar pelo menos a sequência lógica do seu programa ??

Link para o comentário
Compartilhar em outros sites

  • 0
3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.

Não são permitidos up's aqui no fórum !

Cara, já estou com seu script pronto (o funcionamento)

Mas ainda não entendi muito bem o cálculo de deve ser feito

A estrutura de loop já foi toda montada

obs.: usei apenas uma variável no programa inteiro, que é o contador...os outros cálculos (denominador, numerador, etc.) foram feitos a partir dessa variável !

O programa foi montado com os cálculos na seguinte sequência:

(1*1^2)/50
(3*3^4)/49
(5*5^6)/48
(7*7^8)/47
(9*9^01)/46
[...]
Mas acho que não é isso que você quer... Pode postar pelo menos a sequência lógica do seu programa ??
não é isso exatamanete mesmo não, é assim:
(1^2)/50 + (3^4)/49 - (5^6)/48 .... até chegar a que preciso saber (?^?/1) = ?

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

  • 0

Cara, vo te falar porque é um erro muito sutil na logica, voce vai ficar seculos pra achar pelo jeito,

quando você entra no loop você não está fazendo as operações para o primeiro caso que é

(1^2)/50, você já incrementa o numerador e o expoente na entrada do FOR, isso é um erro que vi

mas pode ser que hajam mais erros.

DICA: O primeiro calculo é uma exceção ao somatorio, pois tem denominador par e tem o sinal positivo, cuidado pra não errar aí, minha sugestão é que inicia o result com (1^2)/50, e no for comece com d = 49, n=3 e e=4.

DICA: ef=100 e nf=99

o result eu não fiz.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom implementei esse calculo aqui, fiz uma observação:

-> O resultado é um numero muito grande pra ser guardado em um float, use double.

Vou colocar o codigo-fonte caso você queira um apoio, mas sugiro que tente implementar um totalmente seu, os erros que cometeu foram por falta de experiencia em programação, portanto tente treinar fazendo seus proprios codigos do ZERO, para aprender e se acostumar a evitar esses tipos de erros sutis.

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

int main(int argc, char *argv[])
{
    //Variaveis do Programa
    int expoente = 4, numerador = 3, expfinal, numfinal, denominador;
    double resultado = 1/50; // já Aplica a primeira operação.
    for (denominador = 49; denominador > 0; denominador--)
    {
        if (denominador%2 == 0)
        {
            resultado = resultado - (pow(numerador, expoente)/denominador);
        }
        else
        {
            resultado = resultado + (pow(numerador, expoente)/denominador);
        }
        if (denominador == 1)
        {
            numfinal = numerador;
            expfinal = expoente;
        }
        expoente = expoente + 2;
        numerador = numerador + 2;
    }
    printf("Numerador Final: %d \n", numfinal);
    printf("Expoente Final: %d \n", expfinal);
    printf("Resultado: %f \n", resultado);
    system("pause");
}

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