Duvida em JavaScript

3 respostas
jvkirk

Boa noite
estou começando a aprender javascript e preciso fazer um algoritmo simplesinho, fiz ele em C mto facil
mas em javascript to me matanu aki
bom, eh o seguinte, tenho q criar um algoritmo no qual eu digito o valor do primeiro termo de uma Progressão aritmética, o ultimo termo dela, e a razão
e esse algoritmo deve retornar a soma dos termos de toda essa P.A.
entao, eu fiz em C já de boa
mas to fazenu em javascript, dai fiz akele modo de lacunas, pra digitar os tais valores, e em uma função criada em .js está calculando essa soma
sendo que estou chamando a função no arquivo HTML
mas nao sei o que está acontecendo, a soma ta sendo retornada como 0
acho que nao está passando pelo do while
vejam os códigos

Javascript:

function calculaPa(a1, au, r)

{

var a1;

var au;

var r;
var cont=a1;
var soma=0;

if (a1>au)
	document.getElementById("resultadoSomaPa").innerHTML = "O primeiro termo não pode ser maior que o segundo";
do
{
	soma+=cont;
	cont+=r;
}while (cont<=au);

document.getElementById("resultadoSomaPa").innerHTML = "Primeiro termo : "+a1+"<br />"+"Ultimo termo : "+au+"<br />"+"Razão da P.A. : "+r+" <br />"+"Resultado da soma dos termos : "+soma+" <br />";

}

HTML:

Progressão Aritmética Primeiro termo:
Ultimo termo:
Razão:
Soma dos termos da PA

Quem puder me ajudar, eu fico mto agradecido
obrigado desde já!

3 Respostas

G

Tente tirar a declaração das variáveis:

var a1;

var au;

var r;

que está dentro da função, pois você já está passando os valores na assinatura do método.
Acho que é isso.

jvkirk

gleidsonrms:
Tente tirar a declaração das variáveis:

var a1;

var au;

var r;

que está dentro da função, pois você já está passando os valores na assinatura do método.
Acho que é isso.

tirei, mas continua dando pau ;/

A

Seria interessante aprender a utilizar um debugger pra javascript e ir acompanhando o que acontece com as variaveis.

Como eu não uso nenhum, o que geralmente faço é colocar alerts em pontos chaves quando algo assim acontece.

De qualquer forma, no seu caso o problema parece ser a tipagem dinâmica do javascript.
Ele parece tratar suas variaveis como String e faz concatenações ao invés de somas.

Experimente usar algumas funções parseInt() em algumas atribuições e o problema será resolvido.

Criado 2 de abril de 2011
Ultima resposta 2 de abr. de 2011
Respostas 3
Participantes 3