Uma simples calculadora...

  



Esconder código-fonte

<?php
    ////////////////////////////
   //// Calculadora em PHP ////
  ///      by Rfarias     ///
 //  <mano_rk@hotmail.com>  //
////////////////////////////
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Calculadora criada por Rfarias - mano_rk@hotmail.com</title>
<style type="text/css">
td {

color: #FFFF00;
font-weight: bold;
text-align: center;
border: 1px solid #000099;
}

input#calc {

background-color: #759475;
text-align: right;
color: #222722;
border-color: #000099;

}

table#calculadora {
border: 1px solid  #000099;
background-color: #3300cc;
}

#titulo {

font-family: arial, verdana, sans serif;
font-size: 1em;
font-weight: bold;
text-align: center;
}
</style>
</head>
<body>

<?php

class calculadora {

var $nums = '';
var $calc = '';
var $op = '';

function mostrar () {
 
 $num = @$_GET['num'][0];
 $calc = @$_GET['calc'];

 if(empty( $num ) AND empty( $calc )) {
  return false;
 }

 if(!isset( $display )) {
  $display = $calc;
 }

 $this->nums .= empty( $num ) ? $display : $display.$num;
 
 $this->setOperacao();
 
 if(!empty( $this->op )) {
  $this->calc = $this->nums.rawurldecode( $this->op ).$num;
 }

 return $this->calcular();
}

function setOperacao () {  
 if(!empty( $_GET['op'] )) {
  $this->op = $_GET['op'];
 }
}

function calcular() {
 
 $calc = empty( $this->calc ) ? $this->nums : $this->calc;

 if(isset( $_GET['resultado'] )) {
  if(preg_match( '/^([0-9]+)(\/|\*|\+|\-)([0-9]+)+$/', $calc, $match )) {
   switch( $match[2] ) {
    case "+":
     return $match[1]+$match[3];
    break;
    case "-":
     return $match[1]-$match[3];
    break;
    case "/":
     return $match[1]/$match[3];
    break;
    case "*":
     return $match[1]*$match[3];
    break;
   }
  } else {
   return "Ocorreu um erro";
  }
 }
 return $calc;
}
}
$calc = new calculadora();
?>

<form action="" method="get">

<!-- Calculadora criada por Rfarias <mano_rk@hotmail.com> -->

<table id="calculadora" cellpadding="10" cellspacing="0" align="center">
<tr>
  <td align="center" colspan="4">
      <span id="titulo">Calculadora</span><br/>
       <input id="calc" type="text" name="calc" value="<?=$calc->mostrar();?>" />
   </td>
</tr>
<tr>
  <td>
     <input type="submit" name="num[]" value="7" />
  </td>
  <td>
     <input type="submit" name="num[]" value="8" />
  </td>
  <td>
     <input type="submit" name="num[]" value="9" />
  </td>
  <td>
     <input type="submit" name="op" value="/" />
  </td>
</tr>
<tr>
  <td>
     <input type="submit" name="num[]" value="4" />
  </td>
  <td>
      <input type="submit" name="num[]" value="5" />
  </td>
  <td>
      <input type="submit" name="num[]" value="6" />
  </td>
  <td>
      <input type="submit" name="op" value="*" />
  </td>
</tr>
<tr>
   <td>
      <input type="submit" name="num[]" value="1" />
   </td>
    <td>
<input type="submit" name="num[]" value="2" />
   </td>
   <td>
      <input type="submit" name="num[]" value="3" />
   </td>
   <td>
      <input type="submit" name="op" value="-" />
   </td>
</tr>
<tr>
  <td>
      <input type="submit" name="num[]" value="0" />
  </td>
  <td>
      <input type="submit" name="num[]" value="." />
  </td>
  <td>
      <input type="submit" name="resultado" value="=" />
  </td>
  <td>
      <input type="submit" name="op" value="+" />
  </td>
</tr>
</table>
</form>
</body>
</html>

Scripts recomendados

Paginação simples com PHP

gerando links de todos aquivos de um diretorio

Data Formatada

Envio

Ordenando de forma crescente e decrescente valores de um vetor em PHP utilizando a estrutura for.


  

Comentários
[1] Comentário enviado por fernando0973 em 15/07/2009 - 12:11h

Olá.
Achei interessante o projeto, porém verifiquei um erro no código, alertado pelo navegador.
Meu PHP não está configurado para short open tag, então alterei a linha 122 para: <input id="calc" type="text" name="calc" value="<?php =$calc->mostrar();?>" />
Porém ainda apresenta um erro, o qual não sei resolver devido à minha limitação no entendimento do PHP.

Abraços

Fernando

[2] Comentário enviado por rfarias em 15/07/2009 - 18:19h

ok so eu instalar o PHP aki eu irei arruma
Muito Obrigado pela atenção

[3] Comentário enviado por removido em 17/07/2009 - 10:34h

Fernando tenta alterar a linha 122 para: <input id="calc" type="text" name="calc" value="<?php echo $calc->mostrar();?>" />

[4] Comentário enviado por leoguitarra em 27/08/2010 - 13:22h

cara altera a linha 122
<input id="calc" type="text" name="calc" value="<?php echo $calc->mostrar();?>" />


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts