segunda-feira, 1 de fevereiro de 2010

Exercícios resolvidos de séries em C:

1) Fazer um programa que calcule e escreva a soma de S:

S= 1/1 + 3/2 + 5/3 + 7/4 ... 99/50

Ah, antes disso, só vamos introduzir algo novo, quando dizemos, por exemplo:

cont=cont+1;

É a mesma coisa que dizer:

cont++;

e também

cont=cont-1;

é a mesma coisa que:

cont--;
Então, vamos nos acostumar com o simbolo ++ e --, a partir de agora.

#include<stdio.h>

int main(void)
{
int numerador,denominador;
float soma;

numerador=1;
soma=0;

for(denominador=1; denominador<=50; denominador++){
soma=soma+ (float)numerador/denominador; /*perceba a necessida do (float) */
numerador=numerador+2;
}
printf("%f",soma);
getchar();
getchar();
}

2) Fazer um programa que calcule e escreva a seguinte soma:

S= (37*38)/1 + (36*37)/2 + (35*36)/3 .... (1*2)/37

#include<stdio.h>

int main(void)
{
int numerador,denominador;
float soma;

numerador=37;
soma=0;

for(denominador=1; denominador<=37; denominador++){
soma=soma+((float)numerador*(numerador+1))/denominador;
numerador--;
}
printf("%f",soma);

getchar();
getchar();
}

Perceba a importância do parênteses nesse programa.

3) Fazer um programa que calcule e escreva o valor de S onde:

S= 1/1 - 2/4 + 3/9 - 4/16 ... -10/100

Perceba que nesse, não temos uma ordem de incremento no denominador, igual tinhamos nos anteriores e perceba também a variação do sinal!
Se olhar mais atentamente, verá que, o denominador é sempre o quadrado do numerador, então, problema resolvido!

#include<stdio.h>

int main(void)
{
int numerador;
float soma;

numerador=1;
soma=0;

while(numerador!=11){
soma=soma+(float)numerador/(numerador*numerador);
if(numerador>0){
numerador=-numerador;
numerador--;
}
else{
numerador=-numerador;
numerador++;
}
}
printf("%f",soma);

getchar();
getchar();
}


Bom, depois eu continuo com as séries, até!

2 comentários: