LusoRobótica - Robótica em Português

Software => Software e Programação => Tópico iniciado por: ivitro em 15 de Julho de 2013, 17:44

Título: Javascript
Enviado por: ivitro em 15 de Julho de 2013, 17:44
Olá a todos,

Ando a ver se aprendo qualquer coisa sobre linguagens web.

Num exemplo simples que fiz para maquina de calcular em javascript html só que a parte de javascript não funciona no browser.

Código: [Seleccione]
<html>
<head>
<script type="text/javascript">
<!-- inicio
function a_mais_b(a,b){
x=eval(a);
y=eval(b);

resultado=x y;
document.forms[0].elements[7].value=resultado;
}

function a_menos_b(a,b){
x=eval(a);
y=eval(b);

resultado=x -;
document.forms[0].elements[7].value=resultado;
}

function a_vezes_b(a,b){
x=eval(a);
y=eval(b);

resultado=x*y;
document.forms[0].elements[7].value=resultado;
}

function a_dividir_b(a,b){
x=eval(a);
y=eval(b);

resultado=x/y;
document.forms[0].elements[7].value=resultado;
}

function a_potencia_b(a,b){
x=parseInt(a);
y=parseInt(b);

resultado=Math.pow(x,y);
document.forms[0].elements[7].value=resultado;
}
</script>
</head>

<body>
<form>
<input type="text" size="4" name="a">
<input type="button" value="   " onclick="a_mais_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >
<input type="button" value=" - " onclick="a_menos_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >
<input type="button" value=" x " onclick="a_vezes_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >
<input type="button" value=" / " onclick="a_dividir_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >
<input type="button" value=" pot " onclick="a_potencia_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >

<input type="text" size="4" name="b">
=
<input type="text" size="4" name="resultado">

</form>
</body>
</html>

Só gravei em .html e corri, a parte de fazer os cálculos não faz.
Título: Re: Javascript
Enviado por: metRo_ em 15 de Julho de 2013, 19:07
Tens alguns erros. Usa o console.log(var) para fazeres debug dos valores que estão a entrar na função. Usa as developer tools do firefox ou chrome, acedes através do F12, na consola consegues ver que erros existem.

O primeiro é loga na função de adiçã:
Código: [Seleccione]
resultado=x y;
devia ser:
Código: [Seleccione]
resultado=x+y;
Título: Re: Javascript
Enviado por: tarquinio em 15 de Julho de 2013, 20:02
Como o metro já disse, tens algums erros de sintaxe e a consola é a tua melhor amiga aqui. Mesmo que as coisas parecam estar a correr bem é sempre boa idéia ter a consola aberta, podes ter erros que não aparecam logo ao inicio mas dem problemas mais tarde (por exemplo se chamares uma função que não exista, só vai dar erro quando ela for chamada, e não logo ao inicio).

Já agora, em relação à maneira como estás a referenciar as coisas, isso assim é estranho... Estás a ir buscar as variáveis a vectores que contem os vários elementos da página... Isso faria mais sendido se a página fosse dinâmica. Tendo conteudos estáticos o normal é fazer coisas do tipo:
Código: [Seleccione]
<input id="a" type="text" size="4" name="a">

e depois para ir buscar os valores usa-se por exemplo:
Código: [Seleccione]
var value= document.getElementById("a").value;

Da maneira que tu fizeste se adicionas ou removes algum componente os indexes movem-se todos, desta forma sabes sempre que estás a ir buscar as coisas certas.
Título: Re: Javascript
Enviado por: ivitro em 16 de Julho de 2013, 00:00
Obrigado pelas dicas..

A cena é que o chrome nao esta a intrepretar o js.. sera que tenho que compilar?

Para fazer isto usei o notepad++, aconselham outro programa?
Título: Re: Javascript
Enviado por: Njay em 16 de Julho de 2013, 00:03
Parece-me que não fechaste o comentário. Acho que isso já não se usa, deita fora.
Título: Re: Javascript
Enviado por: ivitro em 16 de Julho de 2013, 00:07
Parece-me que não fechaste o comentário. Acho que isso já não se usa, deita fora.

O que ja nao se usa?
Título: Re: Javascript
Enviado por: metRo_ em 16 de Julho de 2013, 00:10
Obrigado pelas dicas..

A cena é que o chrome nao esta a intrepretar o js.. sera que tenho que compilar?

Para fazer isto usei o notepad++, aconselham outro programa?

No chrome carrega F12 e vai à consola, estão lá os erros. Aqui corrigi e ficou a funcionar.

O javascript é script, isto é, não é compilado.
Título: Re: Javascript
Enviado por: tarquinio em 16 de Julho de 2013, 01:00
A cena é que o chrome nao esta a intrepretar o js.. sera que tenho que compilar?
Para fazer isto usei o notepad++, aconselham outro programa?

Eu tb uso o notepad++, faz bem o servico ;)
Como o metro já disse, aquilo é um script que é corrido no browser, por isso a unica coisa que precisas mesmo é do teu editor de texto preferido!

Em relação ao browser não correr o javascript, tambem pode ser um problema de segurança, se estiveres a correr a partir de um ficheiro local no disco. Nesses casos eu inicio o Chrome fazendo "chrome --allow-file-access-from-files" (mas se o problema for este na consola tb devia dar um erro qualquer a queixar-se disso, acho eu).