Calculadora en php orientada a objetos.

Iniciado por braulio--, 19 Abril 2009, 17:15 PM

0 Miembros y 2 Visitantes están viendo este tema.

braulio--

Miren el code de la calculadora que acabo de hacer en php orientado a objetos.
Código (php) [Seleccionar]

<head><title>Calculadora en php orientada a objetos</title></head><body>
<h1>Calculadora en php orientado a objetos</h1>
<?
Class calculadora {
function calculadora ( $numero1 , $numero2 ) {
$this->numerouno = htmlentities($numero1,ENT_QUOTES) ;
$this ->numerodos = htmlentities($numero2,ENT_QUOTES);
return 0;
}
function suma(){
$resultado = $this->numerouno + $this->numerodos;
echo "$this->numerouno + $this->numerodos es igual a $resultado <br>";
return 0;
}
function resta(){
$resultado = $this->numerouno - $this->numerodos;
echo "$this->numerouno - $this->numerodos es igual a $resultado <br>";
return 0;
}
function multiplica(){
$resultado = $this->numerouno * $this->numerodos;
echo "$this->numerouno x $this->numerodos es igual $resultado <br>";
return 0;
}
function divide()
{
if ( $this->numerodos==0)
{
echo "No se puede dividir entre cero";
return 1;
}
else
{
$resultado = $this->numerouno / $this->numerodos;
echo "$this->numerouno entre $this->numerodos es igual a $resultado <br> " ;
return 0;
}
}
}
$numerouno = $_POST['numerouno'];
$numerodos = $_POST['numerodos'];
if (isset($numerouno) AND isset($numerodos))
{
$objeto = new calculadora($numerouno,$numerodos);
$objeto->suma();
$objeto->resta();
$objeto->multiplica();
$objeto->divide();
}
?>
<form action=index.php method=POST>
Primer numero : <input type=text name=numerouno><br>
Segundo numero : <input type=text name=numerodos><br><input type=submit>
</form></body>

Le vendrá bien a la gente que este aprendiendo este paradigma de la programacion en este lenguaje.
El htmlentities lo he puesto por si acaso.
Si no tienen ganas de ponerlo en su server la he puesto aqui:
http://ab.onlinewebshop.net/index.php

дٳŦ٭

Solo va a funcionar con el safemod en off, te recomendaria cambiar las variables por $_post. Saludos


Con sangre andaluza :)


braulio--

¿Porque solo funciona con safe mode off?

дٳŦ٭

<input type=text name=numerouno>

function calculadora ( $numero1 , $numero2 ) {

Y rectifico, no es el safemod, son las registrer globals..

Uso de Register Globals
http://us.php.net/manual/es/security.globals.php

Y por cierto, tu clase no va a trabajar en php6 por lo mismo.

Saludos  ;)

EDIT

Ya vi...

$numerouno = $_POST['numerouno'];
$numerodos = $_POST['numerodos'];


;D Bueno retiro lo dicho pero lo dejo por si alguien no lo sabía. Buen trabajo.


Con sangre andaluza :)


braulio--

Ah vale. Me extraño, pero de todas formas yo no se mucho.
Gracias.

Anibal784

Perdón, no tiene nada que ver con el código de php sino con la división, está mal:
0/10 = 0
10/0 = error
0/0 = error

Espero que se entienda
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.

^Tifa^

Try .. Catch?

Código (php) [Seleccionar]


function divide() {

try {

if (($this->numerouno / $this->numerodos || $this->numerodos / $this->numerouno) == 0) {

throw new Exception("Error no se puede dividir entre cero");

}

} catch(Exception $e) {

echo $e->getMessage();
return 1;
}

$resultado = $this->numerouno / $this->numerodos;
echo "$this->numerouno entre $this->numerodos es igual a $resultado <br> " ;
return 0;

}



Anibal784

#7
¿para?
Código (php) [Seleccionar]

// Código php, pero en realidad matemática de 5 grado
function dividir($numero1, $numero2){
    if($numero2 == 0){
        echo "No se puede dividir por 0 <br />";
        return FALSE;
    }
    $resultado = $numero1 / $numero2;
    echo "$numero1 dividido $numero2 = $resultado<br />";
    return TRUE;
}

Lo único importante en una división es que $numero2 (el denominador) no sea 0, para el resto da igual. De todas formas, existe la posibilidad que se envíen letras y se que existen en php funciones para comprobar esas situaciones que realmente escapan a ésto. Lo que estoy tratando de decir es ¿por qué no permiten dividir 0 por algún valor que es matemáticamente válido?
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.

braulio--

Cita de: Anibal784 en 21 Abril 2009, 02:01 AM
Perdón, no tiene nada que ver con el código de php sino con la división, está mal:
0/10 = 0
10/0 = error
0/0 = error

Espero que se entienda
Es cierto, no me pare a pensar.
He modificado el code.
Gracias anibal.