Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/php/POO/practica»
De WikiEducator
(Página creada con «{{:Usuario:ManuelRomero/dwes/B2T4/opp/nav}}») |
|||
| Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/dwes/B2T4/opp/nav}} | {{:Usuario:ManuelRomero/dwes/B2T4/opp/nav}} | ||
| + | *Se pide que realicemos una aplicación web que resuleva cálculos aritméticos | ||
| + | *La operación se insertará en una caja de texto | ||
| + | *La operacion tendrá el siguiente formato | ||
| + | OP1 operador OP2 | ||
| + | *Donde | ||
| + | #'''''OP1''''' es un operador real o racional | ||
| + | #'''''operador''''' es una operación que puede ser +,-,*,/,:. | ||
| + | ##según los operandos sean reales o racionales el operador división será '''''/''''' o ''''':''''' respectivamente | ||
| + | *El tipo de operación, la deberemos obtener según nos indique un método stático de la clase operación según se indica más abajo. | ||
| + | *En el cliente veremos la siguiente pantalla | ||
| + | |||
| + | [[Archivo:clienteRacional1.png|200px]] | ||
| + | *Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo | ||
| + | *Es obligatorio usar esta jerarquía de clase. | ||
| + | [[Archivo:racional.png|200px]] | ||
| + | *Todos los atributos private o protected (no debe de haber atributos public) | ||
| + | *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) | ||
| + | |||
| + | :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 | ||
| + | $a = new Racional("10");//Crea el racional 10/6 | ||
| + | No hace falta recoger otras situaciones no deseadas, no obstante si se hace se debería de crear el Racional 1/1 | ||
| + | </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 | ||
| + | $a->asigna("11");//Asigna al raciona a el valor 11/1 | ||
| + | </source> | ||
| + | #'''''simplifica()''''' Simplifica si se puede numerador y denominador (Utilizar el método de Euclides (mcd)) | ||
| + | #'''''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 racional 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); | ||
| + | echo "$a+$b=$c"//Me visualizará 5/6+6/4=56/24, o bien simplificado 7/3 | ||
| + | </source> | ||
| + | *Por defecto todas las operaciones se deben de facilitar con el racional simplificado, salvo que se pase en la operación un segundo parámetro a valor false, en cuyo caso no se simplifica y se da el valor sin simplificar | ||
| + | ;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 | ||
Revisión de 01:13 7 dic 2016
- Se pide que realicemos una aplicación web que resuleva cálculos aritméticos
- La operación se insertará en una caja de texto
- La operacion tendrá el siguiente formato
OP1 operador OP2
- Donde
- OP1 es un operador real o racional
- operador es una operación que puede ser +,-,*,/,:.
- según los operandos sean reales o racionales el operador división será / o : respectivamente
- El tipo de operación, la deberemos obtener según nos indique un método stático de la clase operación según se indica más abajo.
- En el cliente veremos la siguiente pantalla
- Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo
- Es obligatorio usar esta jerarquía de clase.
- Todos los atributos private o protected (no debe de haber atributos public)
- 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)
- Métodos
- contructor. Hay que sobrecargarlo según se indica
$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 $a = new Racional("10");//Crea el racional 10/6 No hace falta recoger otras situaciones no deseadas, no obstante si se hace se debería de crear el Racional 1/1
- 'asigna. También se pide que está sobrecargado
$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 $a->asigna("11");//Asigna al raciona a el valor 11/1
- simplifica() Simplifica si se puede numerador y denominador (Utilizar el método de Euclides (mcd))
- 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 racional y retorna un Racional resultado de operarse él mismo con el racional que pasamos como argumento
//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); echo "$a+$b=$c"//Me visualizará 5/6+6/4=56/24, o bien simplificado 7/3
- Por defecto todas las operaciones se deben de facilitar con el racional simplificado, salvo que se pase en la operación un segundo parámetro a valor false, en cuyo caso no se simplifica y se da el valor sin simplificar
- 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