Gugsteer 0 Denunciar post Postado Setembro 7, 2016 Pessoal, Qual seria a lógica para construir um programa em C que lê um número de termos N e exibe o valor da expressão S abaixo: S = 1 + 2 + 3 + 4 + 3 + 2 + 1 + 2 + 3 + 4 + 3 + 4 + .... Compartilhar este post Link para o post Compartilhar em outros sites
santamariense 0 Denunciar post Postado Setembro 8, 2016 Confere a fórmula da soma se ela não seria assim: S = 1 + 2 + 3 + 4 + 3 + 2 + 1 + 2 + 3 + 4 + 3 + 2 + .... Se for como você digitou não vejo a lógica. Vou tratar para a fórmula que corrigi acima.... Matematicamente falando, se o n não for determinado, S = ∞. Mas supondo que S seja determinado, tente ver a fórmula desta maneira... S = (1 + 2 + 3 + 4 + 3 + 2) + (1 + 2 + 3 + 4 + 3 + 2) + .... Compartilhar este post Link para o post Compartilhar em outros sites
Gugsteer 0 Denunciar post Postado Setembro 8, 2016 É isso mesmo. Na verdade, o programa completo é o seguinte: Faça um programa que leia o número de termos e um valor positivo para X, calcule e mostre o valor da série a seguir: S = -(x2/1!)+(x3/2!)-(x4/3!)+(x5/4!)-(x6/3!)+(x7/2!)-(x8/1!)+(x9/2!)-(x10/3!)+(x11/4!)-(x12/3!)....... Compartilhar este post Link para o post Compartilhar em outros sites
santamariense 0 Denunciar post Postado Setembro 9, 2016 Eu não tenho trabalhado em C (Sei quase nada!). Mas fiz minha versão em PHP (Também não sei muito). Não sei se é o algorítimo que se deseja, mas funciona! Fica a teu cargo traduzir o código que fiz para C e analisar se não haveria solução melhor. OBS: "echo" serve para escrever na tela. As variáveis em php iniciam com cifrão "$". O echo que está dentro do while mostra as parciais da soma. //Números que deverão ser lidos $n = 22; $x = 2; //Definição de variáveis $s = 0; $i = 1; $fat = 1; //fatorial começa em 1! $fatAnterior = 1; while ($i<=$n){ if ($i%2 == 0) { // Se o resto for par, SOMA $s += (pow($x,$i+1)/$fat); } else { // Se for ímpar, SUBTRAI $s -= (pow($x,$i+1)/$fat); } if ($fat == 1) {$fatAnterior = $fat; $fat = 2;} //Se tava em 1! passa para 2! elseif ($fat == 2 && $fat>$fatAnterior) {$fatAnterior = $fat; $fat = 6;} //Crescendo... Se tava em 2! passa para 3! elseif ($fat == 2 && $fat<$fatAnterior) {$fatAnterior = $fat; $fat = 1;} //Decrescendo... Se tava em 2! passa para 1! elseif ($fat == 6 && $fat>$fatAnterior) {$fatAnterior = $fat; $fat = 24;} //Crescendo... Se tava em 3! passa para 4! elseif ($fat == 6 && $fat<$fatAnterior) {$fatAnterior = $fat; $fat = 2;} //Decrescendo... Se tava em 3! passa para 2! elseif ($fat == 24) {$fatAnterior = $fat; $fat = 6;} //Se tava em 4! passa para 3! echo "<br>n=$i || FatAnterior = $fatAnterior; Fat = $fat; || Soma = $s<br>"; $i++; } echo "<br>Soma = $s"; Bons estudos!!! Conheça, contribua e divulgue o projeto da "Wikipédia dos Mapas": OpenStreetMap = www.osm.org. Compartilhar este post Link para o post Compartilhar em outros sites
Wilkyn Fernandes Taborda 0 Denunciar post Postado Dezembro 26, 2019 int calcula_fat(int fatorial){ int fatorial_calculado; if(fatorial==1) return 1; fatorial_calculado=fatorial*calcula_fat(fatorial-1); return fatorial_calculado; } int main(){ int i=0,num_termos,x,x_calculado=0,fatorial=1,muda_fat=0; float resultado=0; printf("Digite o numero de termos:"); scanf("%d",&num_termos); printf("Digite um valor positivo para X:"); scanf("%d",&x); while(i<num_termos){ if(i==0) x_calculado=x; x_calculado=x_calculado*x; if(i%2==0){ resultado=resultado-((float)x_calculado/(float)calcula_fat(fatorial)); } else{ resultado=resultado+((float)x_calculado/(float)calcula_fat(fatorial)); } if((fatorial==1)||(fatorial==4)){ muda_fat++; muda_fat=muda_fat%2; } if(muda_fat) fatorial++; else fatorial--; i++; } printf("O Resultado e: %f",resultado); system("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites