Ir ao conteúdo
  • Cadastre-se

Duvidas sobre exercicio sobre laço de repetição.


Bronis

Posts recomendados

Pessoal tenho uma lista de exercicio para resolver não é valendo nota para a faculdade, mas se eu não fizer naõ aprende, já consegui resolver boa parte dos 22, só que agarrei em um exercicio e já me quebrei de pensar e não consegui descobrir o que fazer, se alguem tiver alguma ideia ou alguma luz me de uma ajuda, vou postar o exercicio aqui.

imagemub7.th.jpg

Link para o comentário
Compartilhar em outros sites

Cara, legal essa equação ai. Não conhecia, muito interessante!

Se tiver alguma dúvida sobre o código é só falar.


#include <iostream>
#include <math.h>

using namespace std;

int main()
{
int i, a = 3;
float S1 = 0, S2, Pi;
int termos;

do
{
cout << "Digite o numero de termos: ";
cin >> termos;
} while(termos > 50 || termos < 0);

for(i=0; i<termos; i++)
{
S1 += pow(pow(a, 3), -1);
a += 2;
}

S2 = (1 - S1) * 32;
Pi = pow(S2, (1.0/3.0));
cout << Pi;

return 0;
}

Link para o comentário
Compartilhar em outros sites

É na verdade as duvidas persistem eheheheh, bom vamos la já que você entende do assunto, porque eu to até ficando com medo da prova ja ehhehehe...

Não entendi essa linha: S1 += pow(pow(a, 3), -1); e

essa aqui: S2 = (1 - S1) * 32;

Porque no exercicio ele pede para o usuario dizer o numero de termos, nessa caso se por exemplo o usuario digitar 3 termos, ele não deveria pegar o 1 (como 1 termo), - 1/pow(3,3) (como segundo termo) e "+" (mais) 1/pow(5,3).

Neste caso o seu programa começou no 1/pow(3,3) e foi até o 1/pow(7,3), usando 4 termos. E o que me quebrou as pernas no exercicio é a parte de soma e diminuir.

Ele diz 1 - 1/pow(3,3) + 1/pow(5,3) - 1/pow(7,3) + 1/pow(9,3), essas montueira de + e - que ta me rachando a cuca.

Ae não consegui entender, no seu programa ele ta somando todos os termos e depois esta somente diminuindo por -1 não é isso?

Link para o comentário
Compartilhar em outros sites

Ops... falha minha não tinha reparado os sinais de menos.

Refiz o programa. Desconsidere o primeiro programa ele está errado.

Essa linha S1 += pow(pow(a, 3), -1); serve para encontrar o inverso de um número. o "pow" interno pow(a, 3) simplesmente eleva o número contido em "a" ao cubo. o "pow" externo pow(..., -1) acha o inverso de um número. Por exemplo: dividir 1 por 10 é o mesmo que elevar 10 a menos um.

Outra linha que pode haver dúvida é essa : Pi = pow((S1 * 32), (1.0/3.0)); aqui o programa calcula a raiz cúbica, elevando o número a 1/3.

Eu considerei cada fração como um termo, eu não inclui o 1, mas se você quiser incluir o 1 é só alterar o for: for(i=0; i<termos - 1; i++).

Em relação aos sinais a lógica é: menos, mais, menos, mais, menos ...

Segue o código:


#include <iostream>
#include <math.h>

using namespace std;

int main()
{
int i, a = 3;
float S1, Pi;
int termos;

do
{
cout << "Digite o numero de termos: ";
cin >> termos;
} while(termos > 50 || termos < 0);

S1 = 1;

for(i=0; i<termos; i++)
{
if(i % 2)
{ S1 += pow(pow(a, 3), -1); }
else
{ S1 -= pow(pow(a, 3), -1); }

a += 2;
}

Pi = pow((S1 * 32), (1.0/3.0));
cout << Pi;

return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...