Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kingless

Calculadora em PHP

Recommended Posts

Acabei de criar uma simples calculadora em PHP, é muito simples porque fiz tudo a correr (1 hora) por enquanto só é possível calcular 2 números de cada vez e deve ter algumas bugs. :rolleyes:

 

Demo:

http://www.kingless.net/calc.php

 

Download:

http://www.kingless.net/download.php?filename=calc.php

 

Source Code:

http://www.kingless.net/download.php?filen...calc.php;source

 

<?php	 ////////////////////////////	//// Calculadora em PHP ////   ///	  by kingless	 ///  //  <blastelf@gmail.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 kingless - blastelf@gmail.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><?phpclass 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 kingless <blastelf@gmail.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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao é muito vantajoso fazer uma calculadora em php, ainda mais que a cada clique voce esta submetendo o formulario, voce poderia usar ajax para retornar esse problema, mas ficaria bem mais leve feito só com javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao é muito vantajoso fazer uma calculadora em php, ainda mais que a cada clique voce esta submetendo o formulario, voce poderia usar ajax para retornar esse problema, mas ficaria bem mais leve feito só com javascript

você não é a primeira pessoa que me diz isso e vou dizer o mesmo que disse as outras, é verdade que poderia usar ajax e seria muito mais fácil fazer em javascript do que PHP mas como eu queria treinar o meu PHP foi por isso que fiz tudo em PHP http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falando em treinar mais o PHP, voce poderia criar uma classe para PHP5, pois no PHP5 nao existe "var" e sim visibilidade

 

http://br.php.net/manual/pt_BR/language.oop5.visibility.php

 

e construtores e destrutores

 

http://br.php.net/manual/pt_BR/language.oop5.decon.php

 

e evite usar o @ arroba para esconder erros, use isset() para fazer a verificação da variavel

exemplo:

no lugar disso:

 

$calc = @$_GET['calc'];

 

use assim:

 

$calc = isset($_GET['calc']) ? $_GET['calc'] : "";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo eu poderia criar uma classe para PHP 4 e outra para PHP 5 mas não criei porque a classe que eu criei funciona no PHP 4 e PHP 5 não vejo necessidade de estar a criar duas classes uma para PHP 4 e outra para PHP 5. (não pense que não sei trabalhar com OOP 5 :P)

Quanto ao evitar @ eu só utilizei o @ enquanto testava o script e nem me lembrei de tirar o @ quando acabei o script mas ainda bem que você me lembrou.

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

PS: Quando eu disse que tava treinando PHP não tava dizendo que não sabia PHP ou estava aprendendo PHP, eu sei programar bem em PHP quando disse que eu tava treinando PHP eu queria dizer que estava melhorando a minha capacidade de desenvolver vários tipos de aplicações em PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao me leve a mal, só estamos conversando, quando voce disse que só esta melhorando a sua capacidade de desenvolver, foi exatamente o que eu falei sobre PHP5, php4 é passado e muito mais limitado que o PHP5

se quer evoluir com certeza é usando o PHP5 e suas funcionalidades novas

 

mas beleza nao me leve a mal, só comentei

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.