Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida em Criação de Calculadora


Bernardo Santos

Pergunta

Fala ae pessoal!

Como diz no meu nick, meu nome é Bernardo, tenho 17 e estudo no RJ - Capital em um colégio chamado Colégio Pedro II, um dos melhores do Rio, cursando o que eles chamam de Curso Integrado, ou curso tecnico, que me oferece a formação de programador. Com esse curso, eu obtive uma noção de VB, Pascal e HTML.

Pessoalmente, eu sempre tive destreza para informatica. Sempre fucei os programas, mas também busquei varios conhecimentos, como HTML (que eu já sabia manuzear mesmo antes de aprender no colégio) e PHP (ainda não ensinado). Sempre tive interesse em aprender javascript.

Hoje mesmo, eu baixei uma apostila (relativamente grande, com 234 p.) e li os conceitos basicos. Como é feito à base de HTML, eu tive facilidade em desenvolver o conceito. E também, o javascript possibilita o uso de operações condicionais e de repetições, o que é perfeito para fazer qualquer tipo de página.

Eu resolvir fazer uma calculadora, muito simples mesmo, em javascript pra testa minha destreza com essa nova linguagem. Eu acho que o codigo está certo, mas por algum motivo, na hora de exibir o resultado, da o problema que eu vim resolver, que é o seguinte:

alert("O resultado da operação é ", result);
Essa é o comando que eu usei para exibir o resultado, sendo result a variavel que porta o resultado da operação. Porém, no resultado, aparece assim: "O resultado da operação é "... Onde está o valor da variavel que deveria ser exibido? Tentei tirar a mensagem deixando assim:
alert(result);
Deste jeito, o resultado aparece "undefined". O que está acontecendo? Deixarei o codigo do programa inteiro abaixo:
<html>
<head>
<title>Calculadora em PHP</title>
</head>
<!-- Inicio do Código Fonte -->
<script>
var result;
function calculo(a,b){
 if (form.operacao.value==0){
   (result)=(a+b);
}else
  if (form.operacao.value==1){
   (result)=(a-b);
 }else
   if (form.operacao.value==2){
	(result)=(a*b);
  }else
	if (form.operacao.value==3){
	 (result)=(a/b);
   }
window.alert(result)
}
</script>
<!--Fim do Código Fonte e Inicio da Interface-->
<body bgcolor="#FFFF00">
<form name="form" method="post">
<h1 align="center">Calculadora Online</h1>
<center>
<dl>
<dd>Qual operação você deseja realizar:
<input type="radio" name="operacao" value="0" checked="" />Soma
<input type="radio" name="operacao" value="1" />Subtração
<input type="radio" name="operacao" value="2" />Multiplicação
<input type="radio" name="operacao" value="3" />Divisão
</dd>
</dl>
<p>
Digite o primeiro operando:
<input type="text" name="op1" value="0" size="10" maxlength="20">
<br>
Digite o segundo operando:
<input type="text" name="op2" value="0" size="10" maxlength="20">
<p>
Agora clique em Prosseguir para receber o resultado, ou clique em Limpar para limpar os campos:
<p>
<input type="button" value="Prosseguir" name="submit" onclick="calculo(op1.value,op2.value)">
<br>
<input type="reset" value="Limpar" name="limpar">
</center>
</form>
</body>
<!--Fim da Interface-->
</html>

Se alguém puder me ajudar... eu agradeço bastante!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Fiz algumas modificações no seu script...

Dá uma olhada como ele ficou:

<html>
<head>
<title>Calculadora em PHP</title>
</head>
<!-- Inicio do Código Fonte -->
<script>
var result;
function calculo(a,b){
// Converte as variáveis para o tipo numérico
if (isNaN(a) || isNaN(b)) {
alert("Digite um número válido !")
}else{
a = parseFloat(a)
b = parseFloat(b)
result=0
if (document.form.operacao[0].checked) {
   result=(a+b);
}
else if (document.form.operacao[1].checked) {
   result=(a-b);
}
else if (document.form.operacao[2].checked){
    result=(a*b);
}
else if (document.form.operacao[3].checked){
     result=(a/b);
}
window.alert(result)
}
}
</script>
<!--Fim do Código Fonte e Inicio da Interface-->
<body bgcolor="#FFFF00">
<form name="form" method="post">
<h1 align="center">Calculadora Online</h1>
<center>
<dl>
<dd>Qual operação você deseja realizar:
<input type="radio" name="operacao" value="0" checked="" />Soma
<input type="radio" name="operacao" value="1" />Subtração
<input type="radio" name="operacao" value="2" />Multiplicação
<input type="radio" name="operacao" value="3" />Divisão
</dd>
</dl>
<p>
Digite o primeiro operando:
<input type="text" name="op1" value="0" size="10" maxlength="20">
<br>
Digite o segundo operando:
<input type="text" name="op2" value="0" size="10" maxlength="20">
<p>
Agora clique em Prosseguir para receber o resultado, ou clique em Limpar para limpar os campos:
<p>
<input type="button" value="Prosseguir" name="submit" onclick="calculo(document.form.op1.value,document.form.op2.value)">
<br>
<input type="reset" value="Limpar" name="limpar">
</center>
</form>
</body>
<!--Fim da Interface-->
</html>

Se funcionar, posta aí !

Link para o comentário
Compartilhar em outros sites

  • 0

bem vindo ao forum bernardo,

cara, vai te acostumando, um livro ou apostila de 234 paginas é magrinho.

um livro de 100 a 200 paginas de programacao é guia de consulta rapida.

as biblias (de programacao) tem em torno de 700 paginas.

sendo q em geral os melhores livros ficam em torno de 500 paginas.

sucesso nos seus estudos!

Editado por Mestre SAM
Link para o comentário
Compartilhar em outros sites

  • 0

Muito obrigado... Eu compreendi suas modificações... As unicas coisas que eu não entendi foram:

// Converte as variáveis para o tipo numérico
if (isNaN(a) || isNaN(b)) {
alert("Digite um número válido !")
}else{
a = parseFloat(a)
b = parseFloat(b)
result=0

Os comandos parseFloat e isNaN... qual a função deles?

E Romerito, valeu! Eu ia perguntar isso mesmo!! Muito obrigado!

E também, eu discuti com meu colega sobre como fazer uma calculador normal, os números e as operações em forma de Buttons. A unica controvérsia é como botar numeros em fileirados... por exemplo:

Foi clicado no botão com o valor 1. Na tela vai aparecer 1... Mas o usuario pressiona 2, para formar o número 12.

Eu queria saber de que forma e que comando eu usaria pra o computador reconhecer 12, e não simplismente somar 1 com 2. Eu gostaria que me dissesse o conceito apenas. Não quero que façam para mim pois eu não teria a pratica. Só queria um auxilio de que comando usar e como usar tal comando. Vou fazer a interface dessa calculadora, inserindo uma Textbox não possibilita alterações do usuario. Deixarei em um futuro post o código desta interface, ok?

E para finalizar (ufa!) eu ia avisar que estou disposto a atender alguns pedidos de scripts, apenas para exercicios. Mas se derrepente possa ser util para você, eu farei na boa vontade, mas vou deixar claro que eu sou iniciante e já iniciei a leitura da apostila de JavaScript. Ok?

Valeu Pessoal!

Link para o comentário
Compartilhar em outros sites

  • 0

Explicando o código:

// Converte as variáveis para o tipo numérico
if (isNaN(a) || isNaN(b)) {
alert("Digite um número válido !")
}else{
a = parseFloat(a)
b = parseFloat(b)
result=0
[...]

A função isNaN serve para verificar e o valor é do tipo numérico

Exemplo:

Ao se digitar "6b43", "abc", "b120", [...], a função devolve true (verdadeiro)

O código acima verifica se a variável "a" e "b" são do tipo numérico

Já a função parseFloat serve para converter dados para um campo numérico que aceita decimais (exemplo: 1200,575)

Eu queria saber de que forma e que comando eu usaria pra o computador reconhecer 12, e não simplismente somar 1 com 2. Eu gostaria que me dissesse o conceito apenas. Não quero que façam para mim pois eu não teria a pratica. Só queria um auxilio de que comando usar e como usar tal comando. Vou fazer a interface dessa calculadora, inserindo uma Textbox não possibilita alterações do usuario. Deixarei em um futuro post o código desta interface, ok?

Bom, posso lhe recomendar alguns cursos de JS pra você fazer antes.

Mesmo assim, pegar códigos prontos pode ser uma boa, já que quando se tem um razoável conhecimento da linguagem você pode compreender como foi feito, e aprender na prática !

Seguem alguns cursos:

Curso de JavaScript - Parte 1 (básico)

Curso de JavaScript - Parte 2 (avançado)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...