collapse

* Links de Robótica

* Posts Recentes

Perfis V-Slot vs C-Beam vs Bosch vs 8020 por LVirtual
[Hoje às 17:00]


Ajuda Projecto IR / RF por Njay
[20 de Outubro de 2017, 13:24]


Medir Agua que está no Poço por edeweld
[18 de Outubro de 2017, 09:15]


Equipar laboratorio por LVirtual
[13 de Outubro de 2017, 08:34]


Arranjo de Berbequim por jm_araujo
[13 de Outubro de 2017, 08:34]


Escolher ligações por dropes
[08 de Outubro de 2017, 23:26]


Ideias para construir um quadrúpede simples por Njay
[07 de Outubro de 2017, 22:12]


Meu projecto - Arm Robot com arduino por Diogo Bento
[05 de Outubro de 2017, 20:54]


Alimentar arduino nano com 12V por helderjsd
[05 de Outubro de 2017, 16:26]


Compra Colectiva RS-Amidata por Hugu
[02 de Outubro de 2017, 20:20]

Autor Tópico: Javascript  (Lida 1313 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Javascript
« 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.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.727
Re: Javascript
« Responder #1 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;

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Javascript
« Responder #2 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.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: Javascript
« Responder #3 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?

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.101
    • Tróniquices
Re: Javascript
« Responder #4 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.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: Javascript
« Responder #5 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?

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.727
Re: Javascript
« Responder #6 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.

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Javascript
« Responder #7 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).