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

De WikiEducator
Saltar a: navegación, buscar
 
(4 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|150px]]
 
  
 +
[[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
  
[[Archivo:racional.png|200px]]
+
$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 23:17 19 dic 2014

Road Works.svg Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos.
Ver página de charlas.
Road Works.svg




DWES TituloTema6.png

Enunciado

  • 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
  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 seleccionará el cliente con un check box.
  • En el cliente veremos la siguiete pantalla

ClienteRacional.png

  • Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo

Racional.png

  • 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
  1. Num (p.e 10)
  2. Den (p.e 6)
  3. Numero (p.e "10/6")
Métodos
  1. 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
  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
  1. simplifica() Simplifica si se puede numerador y denominador
  2. toString() Retorna el número racional como una cadena de caracteres, es decir el contenido del atributo numero
  1. suma
  2. resta
  3. multimplica
  4. 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
//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
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
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();
   }