Diferencia entre revisiones de «Usuario:ManuelRomero/php/opp/practica»
De WikiEducator
< Usuario:ManuelRomero | php
| (5 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 22: | Línea 22: | ||
*El tipo de operación, la seleccionará el cliente con un check box. | *El tipo de operación, la seleccionará el cliente con un check box. | ||
*En el cliente veremos la siguiete pantalla | *En el cliente veremos la siguiete pantalla | ||
| − | |||
| + | [[Archivo:clienteRacional.png|200px]] | ||
| + | *Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo | ||
| + | [[Archivo:racional.png|200px]] | ||
| + | *Todos los atributos private o protected | ||
| + | *Los métodos según correspondan serán private protected o public | ||
| + | *A continuación una descripción de las clases | ||
| + | ;Racional (p.e 10/6) | ||
| + | :Propiedades | ||
| + | #Num (p.e 10) | ||
| + | #Den (p.e 6) | ||
| + | #Numero (p.e "10/6") | ||
| + | :Métodos | ||
| + | #'''''contructor'''''. Hay que sobrecargarlo según se indica | ||
| + | <source lang=php> | ||
| + | $a = new Racional(); //Crea el racional 1/1 | ||
| + | $a= new Racional (10); //Crea el racional 10/1 | ||
| + | $a = new Racional(10,6); //Crea el racional 10/6 | ||
| + | $a = new Racional("10/6");//Crea el racional 10/6 | ||
| + | </source> | ||
| + | #''''asigna'''''. También se pide que está sobrecargado | ||
| + | <source lang=php> | ||
| + | $a = new Racional(); //Crea el racional 1/1 | ||
| + | $a->asigna(10); //Asigna al raciona a el valor 10/1 | ||
| + | $a->asigna(10,6); //Asigna al raciona a el valor 10/6 | ||
| + | $a->asigna("10/6");//Asigna al raciona a el valor 10/6 | ||
| + | $a->asigna(); //Asigna al raciona a el valor 1/1 | ||
| + | </source> | ||
| + | #'''''simplifica()''''' Simplifica si se puede numerador y denominador | ||
| + | #'''''toString()''''' Retorna el número racional como una cadena de caracteres, es decir el contenido del atributo '''''numero''''' | ||
| + | #suma | ||
| + | #resta | ||
| + | #multimplica | ||
| + | #divide | ||
| + | :Todos estos métodos operan con un argumento y retorna un Racional resultado de operarse él mismo con el racional que pasamos como argumento | ||
| + | <source lang=php> | ||
| + | //En la clase | ||
| + | public function suma (Racional $b) { | ||
| + | $numResultado = ....; | ||
| + | $denResultado = .... | ||
| + | $resultado = new Racional...... | ||
| + | return $resultado; | ||
| + | } | ||
| + | ..... | ||
| + | //En el programa que use la clase | ||
| − | + | $a = new Racional("5/6"); | |
| + | $b = new Racional (6,4); | ||
| + | $c= $a->sumar($b); | ||
| + | $c->toStrig(); //Me visualizará 56/24, o bien simplificado 7/3 | ||
| + | </source> | ||
| + | ;Operacion | ||
| + | *Como vemos en el diagrama va a tener algún método abstracto, por lo que la vamos a considerar abstracta | ||
| + | :Propiedades | ||
| + | *'''''Operando1''''' es un atributo que podrá ser real o racional, pero como en php no hay que declarar tipos, nos va bien | ||
| + | *'''''Operando2''''' igual | ||
| + | *'''''Operación''''' será la cadena de caracteres que el usuario inserte en la caja de texto. | ||
| + | *'''''Operador''''' es el carácter que indica el tipo de operación que se quiere realizar. | ||
| + | *'''''Resultado''''' es el resultado de la operación, puede ser real o racional | ||
| + | *Esta clase descompondrá la operación y generará un resultado | ||
| + | :Métodos | ||
| + | *Los que consideres. | ||
| + | ;OpReal | ||
| + | *Realiza una operación real | ||
| + | ;OpRacional | ||
| + | *Realiza una operación racional | ||
| + | ===Resultado=== | ||
| + | *Al presionar el botón resuelve, nos ha de aparecer | ||
| + | *Operando 1 : | ||
| + | *Operando 2 : | ||
| + | *Operador : | ||
| + | *Resultado : | ||
| + | *Y Si es un número racional su valor simplificado: | ||
| + | *Se recomienda usar el siguiente código para el index.php | ||
| + | <source lang=php> | ||
| + | |||
| + | if ($_POST['resuelve']){ | ||
| + | $contenido = $_POST['operacion']; | ||
| + | if ($_POST['tipoOperacion'] == 'Real') | ||
| + | $calculo = new OpReal($contenido); | ||
| + | if ($_POST['tipoOperacion'] == 'Racional') | ||
| + | $calculo = new OpRacional($contenido); | ||
| + | |||
| + | echo "Operando 1 = ".$calculo->getOp1()."<br/>"; | ||
| + | echo "Operando 2 = ".$calculo->getOp2()."<br/>"; | ||
| + | echo "Operador = ".$calculo->getOperador()."<br/>"; | ||
| + | echo "Operador = ".$calculo->resolver()."<br/>"; | ||
| + | } | ||
| + | if ($_POST['tipoOperacion'] == 'Racional'){ | ||
| + | $c= new Racional($calculo->resolver()); | ||
| + | $c->simplifica(); | ||
| + | echo "Valor simplificado ".$c->toString(); | ||
| + | } | ||
| + | </source> | ||
|} | |} | ||
Última revisión de 10:17 19 dic 2014
| Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
|

