Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/php/POO/practica»

De WikiEducator
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/dwes/B2T4/opp/nav}}
 
{{:Usuario:ManuelRomero/dwes/B2T4/opp/nav}}
 
__NOTOC__
 
__NOTOC__
*Se pide que realicemos una aplicación web que resuleva cálculos aritméticos
+
===Calculadora Real/Racional===
 +
*Se pide que realicemos una aplicación web que resuelva cálculos aritméticos con operadores reales o racionales
 
*La operación se insertará en una caja de texto
 
*La operación se insertará en una caja de texto
*La operacion tendrá el siguiente formato
+
*La operación tendrá el siguiente formato
 
  OP1 operador OP2
 
  OP1 operador OP2
 
*Donde  
 
*Donde  
Línea 20: Línea 21:
 
<h3>  9/4+7/6 = 82/24</h3>
 
<h3>  9/4+7/6 = 82/24</h3>
 
<h4>Simplificado =      41/12</h4>
 
<h4>Simplificado =      41/12</h4>
<h4>Ooerando 1  =      9/4</h4>
+
<h4>Operando 1  =      9/4</h4>
 
<h4>Operando 2    =    7/6</h4>
 
<h4>Operando 2    =    7/6</h4>
<h4>Tipo de operacion   +</h4>
+
<h4>Tipo de operación   +</h4>
 
*En el segundo caso
 
*En el segundo caso
 
<h3>  9.4/2=3.7</h3>
 
<h3>  9.4/2=3.7</h3>
<h4>Ooerando 1  =      9.4</h4>
+
<h4>Operando 1  =      9.4</h4>
 
<h4>Operando 2    =    2</h4>
 
<h4>Operando 2    =    2</h4>
<h4>Tipo de operacion   /</h4>
+
<h4>Tipo de operación   /</h4>
  
 
*Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo
 
*Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo
Línea 36: Línea 37:
 
*A continuación una descripción de las clases.
 
*A continuación una descripción de las clases.
 
{{MRM_Actividad|Title=Descripción de la idea de la práctica|
 
{{MRM_Actividad|Title=Descripción de la idea de la práctica|
Es una aplicación donde hay operacionesque
+
;Es una aplicación donde hay operaciones
 
*Una operación está formada por dos operandos y un operador.  
 
*Una operación está formada por dos operandos y un operador.  
*La operación puede ser racional o real
+
*La operación puede ser '''''racional''''' o '''''real'''''
 
*Una operación racional operará con números racionales (del tipo a/b).
 
*Una operación racional operará con números racionales (del tipo a/b).
 
** Lógicamente en este caso no habrá decimales.  
 
** Lógicamente en este caso no habrá decimales.  
Línea 49: Línea 50:
  
 
:Métodos
 
:Métodos
#'''''contructor'''''. Hay que sobrecargarlo según se indica
+
#'''''constructor'''''. Hay que sobrecargarlo según se indica
 
<source lang=php>
 
<source lang=php>
 
$a = new Racional();      //Crea el racional 1/1
 
$a = new Racional();      //Crea el racional 1/1
Línea 68: Línea 69:
 
</source>
 
</source>
 
#'''''simplifica()''''' Simplifica si se puede numerador y denominador (Utilizar el método de Euclides (mcd))
 
#'''''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
 
#suma
 
#resta
 
#resta
#multimplica
+
#multiplica
 
#divide
 
#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
 
: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
Línea 92: Línea 93:
 
</source>
 
</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
 
*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
+
;Operación
 
*Como vemos en el diagrama va a tener algún método abstracto, por lo que la vamos a considerar abstracta
 
*Como vemos en el diagrama va a tener algún método abstracto, por lo que la vamos a considerar abstracta
 
:Propiedades
 
:Propiedades

Revisión de 13:28 7 dic 2016



Calculadora Real/Racional

  • Se pide que realicemos una aplicación web que resuelva cálculos aritméticos con operadores reales o racionales
  • La operación se insertará en una caja de texto
  • La operación tendrá el siguiente formato
OP1 operador OP2
  • Donde
  1. OP1 es un operador real o racional
  2. operador es una operación que puede ser +,-,*,/,:.
    1. 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

OperacionCalculadora.png En esa caja de texto el usuario insertará algo del tipo

9/8+4/7

o

9.4 / 2
  • Al presionar intro aparecerá un texto (en el primer caso)

9/4+7/6 = 82/24

Simplificado = 41/12

Operando 1 = 9/4

Operando 2 = 7/6

Tipo de operación +

  • En el segundo caso

9.4/2=3.7

Operando 1 = 9.4

Operando 2 = 2

Tipo de operación /

  • Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo
  • Es obligatorio usar esta jerarquía de clase.

Racional.png

  • 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.


Icon activity.jpg
Descripción de la idea de la práctica
Es una aplicación donde hay operaciones
  • Una operación está formada por dos operandos y un operador.
  • La operación puede ser racional o real
  • Una operación racional operará con números racionales (del tipo a/b).
    • Lógicamente en este caso no habrá decimales.
  • Una operación real operará con números reales.



Racional (p.e 10/6)
Propiedades
  1. Num (p.e 10)
  2. Den (p.e 6)
Métodos
  1. constructor. 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
  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
  1. simplifica() Simplifica si se puede numerador y denominador (Utilizar el método de Euclides (mcd))


  1. suma
  2. resta
  3. multiplica
  4. 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
Operación
  • 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