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

De WikiEducator
Saltar a: navegación, buscar
(Página creada con «{{:Usuario:ManuelRomero/dwes/B2T4/opp/nav}}»)
 
 
(11 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/dwes/B2T4/opp/nav}}
 
{{:Usuario:ManuelRomero/dwes/B2T4/opp/nav}}
 +
<div class="slide">
 +
{{MRM_Actividad|
 +
;Empleado
 +
*Confeccionar una clase Empleado, definir como atributos su nombre y sueldo.
 +
*Definir un método inicializarlo para  que lleguen como dato el nombre y sueldo.
 +
*Plantear un segundo método que imprima el nombre y un mensaje si debe o no pagar impuestos (si el sueldo supera a 3000 paga impuestos)
 +
}}
 +
<!--
 +
<source lang=php>
 +
<html>
 +
<head>
 +
<title>Pruebas</title>
 +
</head>
 +
<body>
 +
<?php
 +
class Empleado {
 +
  private $nombre;
 +
  private $sueldo;
 +
 
 +
  public function asigna($nom,$sue)
 +
  {
 +
    $this->nombre=$nom;
 +
    $this->sueldo=$sue;
 +
  }
 +
  public function pagaImpuestos()
 +
  {
 +
    echo $this->nombre;
 +
    echo '-';
 +
    if ($this->sueldo>3000)
 +
      echo 'Debe pagar impuestos';
 +
    else
 +
      echo 'No paga impuestos';
 +
    echo '<br>';
 +
  }
 +
}
 +
-->
 +
$empleado1=new Empleado();
 +
$empleado1->asigna('Luis',2500);
 +
$empleado1->pagaImpuestos();
 +
$empleado1=new Empleado();
 +
$empleado1->asigna('Carla',4300);
 +
$empleado1->pagaImpuestos();
 +
?>
 +
</body>
 +
</html>
 +
</source>
 +
 +
{{MRM_Actividad|
 +
Confeccionar una clase Menu. Permitir añadir la cantidad de opciones que necesitemos. Mostrar el menú en forma horizontal o vertical (según que método llamemos)
 +
}}
 +
<!--
 +
<source lang = php>
 +
<html>
 +
<head>
 +
<title>Pruebas</title>
 +
</head>
 +
<body>
 +
<?php
 +
class Menu {
 +
  private $enlaces=array();
 +
  private $titulos=array();
 +
  public function cargarOpcion($en,$tit)
 +
  {
 +
    $this->enlaces[]=$en;
 +
    $this->titulos[]=$tit;
 +
  }
 +
  public function mostrarHorizontal()
 +
  {
 +
    for($f=0;$f<count($this->enlaces);$f++)
 +
    {
 +
      echo '<a href="'.$this->enlaces[$f].'">'.$this->titulos[$f].'</a>';
 +
      echo "-";
 +
    }
 +
  }
 +
  public function mostrarVertical()
 +
  {
 +
    for($f=0;$f<count($this->enlaces);$f++)
 +
    {
 +
      echo '<a href="'.$this->enlaces[$f].'">'.$this->titulos[$f].'</a>';
 +
      echo "<br>";
 +
    }
 +
  }
 +
}
 +
-->
 +
$menu1=new Menu();
 +
$menu1->cargarOpcion('http://www.google.com','Google');
 +
$menu1->cargarOpcion('http://www.yahoo.com','Yhahoo');
 +
$menu1->cargarOpcion('http://www.msn.com','MSN');
 +
$menu1->mostrarVertical();
 +
?>
 +
</body>
 +
</html>
 +
</source>
 +
 +
{{MRM_Actividad|
 +
Construir una clase llamado racional que podamos inicializar con un string del tipo por ejemplo "8/5"
 +
}}
 +
<!--
 +
<source lang=php>
 +
<?php
 +
class racional {
 +
    //put your code here
 +
    private $numRacional;
 +
    public function __construct($cadena) {
 +
        $this->numRacional = $cadena;
 +
    }
 +
    public function __toString()(){
 +
        return $this->numRacional;
 +
    }
 +
}
 +
-->
 +
 +
$a=new racional("8/5");
 +
$b=new racional("6/4");
 +
echo "<br>valor de \$a: $a <br />";
 +
echo "<br>valor de \$b: $b";
 +
?>
 +
</source>
 +
 +
 +
 +
{{MRM_Actividad|
 +
Creamos la clase factura
 +
*Constantes IVA
 +
*Atributos Importe Base, fecha, impuestos, Importe bruto, estado (pagada o pendiente)
 +
*Métodos: imprime }}
 +
{{MRM_Actividad|Title=Sobrecargar el constructor de un racional|
 +
Siguiendo el ejemplo establecido anteriormente realiza un constructor que permita instanciar un objeto de la clase racional de la siguiente manera
 +
<source lang=php>
 +
$a = new racional ("8/5");/*  8/5  */
 +
$b = new racional (5,4);  /*  5/6  */
 +
$c = new racional (5);    /*  5/1  */
 +
$d = new racional ();    /*  1/1  */
 +
</source>
 +
}}
 +
 +
{{MRM_Actividad|Title=App de geometría|
 +
;Realiza una app que me permita dibjar dos puntos o una línea en un linezo.
 +
*Para ello usaremos  un lienzo o cambas
 +
<source lang=html5>
 +
<canvas id="canvas"  width=100 height=500 style="margin-left=$l, margin-right=$r">
 +
            <p>Su navegador no soporta canvas :(</p>
 +
        </canvas>
 +
</source>
 +
 +
;Dibujar un punto
 +
<source lang=javascript>
 +
      var canvas = document.getElementById('canvas');
 +
      var lienzo = canvas.getContext('2d');
 +
      lienzo.fillStyle = "#ff2626"; // Color rojo
 +
      lienzo.beginPath(); // Iniciar trazo
 +
      lienzo.arc($this->x, $this->y, $this->size, 0, Math.PI * 2, true); // Dibujar un punto usando la funcion arc
 +
      lienzo.fill(); // Terminar trazo
 +
</source>
 +
;Dibujar una línea
 +
<source lang=javascript>
 +
//Declaro la variable
 +
  var canvas = document.getElementById("canvas");
 +
  var lienzo = canvas.getContext("2d");
 +
  lienzo.lineWidth = 3//ancho de la línea
 +
  lienzo.strokeStyle = "#f00"; //Color
 +
  lienzo.beginPath(); //Empiezo a dibujar
 +
  lienzo.moveTo(20, 130); //Posición inicial
 +
  lienzo.lineTo(230, 20); //Posición final
 +
  lienzo.stroke(); //DIBUJA la línea
 +
</source>
 +
 +
}}

Última revisión de 19:36 13 nov 2019



Icon activity.jpg
Actividad
Empleado
  • Confeccionar una clase Empleado, definir como atributos su nombre y sueldo.
  • Definir un método inicializarlo para que lleguen como dato el nombre y sueldo.
  • Plantear un segundo método que imprima el nombre y un mensaje si debe o no pagar impuestos (si el sueldo supera a 3000 paga impuestos)



$empleado1=new Empleado(); $empleado1->asigna('Luis',2500); $empleado1->pagaImpuestos(); $empleado1=new Empleado(); $empleado1->asigna('Carla',4300); $empleado1->pagaImpuestos(); ?> </body> </html> </source>



Icon activity.jpg
Actividad

Confeccionar una clase Menu. Permitir añadir la cantidad de opciones que necesitemos. Mostrar el menú en forma horizontal o vertical (según que método llamemos)



$menu1=new Menu(); $menu1->cargarOpcion('http://www.google.com','Google'); $menu1->cargarOpcion('http://www.yahoo.com','Yhahoo'); $menu1->cargarOpcion('http://www.msn.com','MSN'); $menu1->mostrarVertical(); ?> </body> </html> </source>



Icon activity.jpg
Actividad

Construir una clase llamado racional que podamos inicializar con un string del tipo por ejemplo "8/5"




$a=new racional("8/5"); $b=new racional("6/4"); echo "
valor de \$a: $a
"; echo "
valor de \$b: $b"; ?> </source>




Icon activity.jpg
Actividad

Creamos la clase factura

  • Constantes IVA
  • Atributos Importe Base, fecha, impuestos, Importe bruto, estado (pagada o pendiente)
  • Métodos: imprime




Icon activity.jpg
Sobrecargar el constructor de un racional

Siguiendo el ejemplo establecido anteriormente realiza un constructor que permita instanciar un objeto de la clase racional de la siguiente manera

$a = new racional ("8/5");/*   8/5  */
$b = new racional (5,4);  /*   5/6  */
$c = new racional (5);    /*   5/1  */
$d = new racional ();     /*   1/1   */





Icon activity.jpg
App de geometría
Realiza una app que me permita dibjar dos puntos o una línea en un linezo.
  • Para ello usaremos un lienzo o cambas
 <canvas id="canvas"  width=100 height=500 style="margin-left=$l, margin-right=$r">
             <p>Su navegador no soporta canvas :(</p>
        </canvas>
Dibujar un punto
       var canvas = document.getElementById('canvas');
       var lienzo = canvas.getContext('2d');
       lienzo.fillStyle = "#ff2626"; // Color rojo
       lienzo.beginPath(); // Iniciar trazo
       lienzo.arc($this->x, $this->y, $this->size, 0, Math.PI * 2, true); // Dibujar un punto usando la funcion arc
       lienzo.fill(); // Terminar trazo
Dibujar una línea
//Declaro la variable 
  var canvas = document.getElementById("canvas");
  var lienzo = canvas.getContext("2d");
  lienzo.lineWidth = 3//ancho de la línea
  lienzo.strokeStyle = "#f00"; //Color
  lienzo.beginPath(); //Empiezo a dibujar
  lienzo.moveTo(20, 130); //Posición inicial
  lienzo.lineTo(230, 20); //Posición final
  lienzo.stroke(); //DIBUJA la línea