martes, 25 de agosto de 2015

Manual de la Libreria Fpd.

FPDF es una clase escrita en PHP que permite generar documentos PDF directamente desde PHP, es decir, sin usar la biblioteca PDFlib. La F de FPDF significa Free (gratis y libre): puede usted usarla para cualquier propósito y modificarla a su gusto para satisfacer sus necesidades.
FPDF tiene otras ventajas: funciones de alto nivel. Esta es una lista de sus principales características:
-  Elección de la unidad de medida, formato de página y márgenes
-  Gestión de cabeceras y pies de página
-  Salto de página automático
-  Salto de línea y justificación del texto automáticos
-  Admisión de imágenes (JPEG, PNG y GIF)
Colores
Enlaces
Admisión de fuentes TrueType, Type1 y codificación
Compresión de página
-FPDF no necesita de ninguna extensión para PHP (excepto zlib para activar la compresión y GD para soporte a GIF) y funciona con PHP4 (≥ 4.3.10) y PHP5.
Los tutoriales le permitirán empezar rápidamente a usar FPDF. La documentación completa (on line) se encuentra aquí y el área de descarga,aquí. Se recomienda encarecidamente que lea las FAQ (o PMF: preguntas más frecuentes), que listan las preguntas y problemas más comunes (especialmente los relacionados con los navegadores).
Existe una sección de scripts que incluye algunas extensiones útiles.
¿Qué idiomas puedo usar?
La clase genera documentos en muchos otros idiomas aparte de los europeos occidentales: europeo central, ciríloco, griego, báltico y tailandés, si se dispone de fuentes TrueType o Type1 con el conjunto de caracteres adecuado. El chino y el japonés también están admitidos.
UTF-8 también está disponible.
¿Y qué hay de la eficiencia?
Como es lógico, la velocidad de generación de un documento es menor que con PDFlib. Sin embargo, la desventaja en cuanto a rendimiento es muy razonable y se adecúa a la mayoría de los casos, a no ser que sus documentos vayan a ser especialmente complejos o extensos.



CLASE 12 DE AGOSTO 2015


  Funciones Matemáticas
§ 
abs — Valor absoluto

§  acos — Arco coseno
§  acosh — Arco coseno hiperbólico
§  asin — Arco seno
§  asinh — Arco seno hiperbólico
§  atan2 — Arco tangente de dos variables
§  atan — Arco tangente
§  atanh — Arco tangente hiperbólica
§  base_convert — Convertir un número entre     bases arbitrarias
§  bindec — Binario a decimal
§  ceil — Redondear fracciones hacia arriba
§  cos — Coseno
§  cosh — Coseno hiperbólico
§  decbin — Decimal a binario
§  dechex — Decimal a hexadecimal
§  decoct — Decimal a octal
§  deg2rad — Convierte el número en grados a su     equivalente en radianes
§  exp — Calcula la exponencial de e
§  expm1 — Devuelve exp(numero)-1, calculado de tal     forma que no pierde precisión incluso cuando el valor del numero se     aproxima a cero.
§  floor — Redondear fracciones hacia abajo
§  fmod — Devuelve el resto en punto flotante (módulo)     de la división de los argumentos
§  getrandmax — Mostrar el mayor valor     aleatorio posible
§  hexdec — Hexadecimal a decimal
§  hypot — Calcula la longitud de la hipotenusa de un     triángulo de ángulo recto
§  intdiv — División entera
§  is_finite — Encuentra si un valor es     un número finito legal
§  is_infinite — Encuentra si un valor es     infinito
§  is_nan — Encuentra si un valor no es un número
§  lcg_value — Generador lineal     congruente combinado
§  log10 — Logaritmo en base 10
§  log1p — Devuelve log(1 + numero), calculado de tal     forma que no pierde precisión incluso cuando el valor del numero se     aproxima a cero.
§  log — Logaritmo natural
§  max — Encontrar el valor más alto
§  min — Encontrar el valor más bajo
§  mt_getrandmax — Mostrar el mayor valor     aleatorio posible
§  mt_rand — Genera un mejor número entero aleatorio
§  mt_srand — Genera el mejor número aleatorio a partir de     una semilla
§  octdec — Octal a decimal
§  pi — Obtener valor de pi
§  pow — Expresión exponencial
§  rad2deg — Convierte el número en radianes a su     equivalente en grados
§  rand — Genera un número entero aleatorio
§  round — Redondea un float
§  sin — Seno
§  sinh — Seno hiperbólico
§  sqrt — Raíz cuadrada
§  srand — Genera un número aleatorio a partir de una     semilla
§  tan — Tangente
§  tanh — Tangente hiperbólica

COMO SOLUCIONAR UNA ECUACIÓN CUADRÁTICA
<?php 

class Operaciones{
    //put your code here

    private $a;
    private $b;
    private $c;
    function __construct($a, $b, $c) {
        $this->a = $a;
        $this->b = $b;
        $this->c = $c;
    }
    public function getA() {
        return $this->a;
    }

    public function getB() {
        return $this->b;
    }

    public function getC() {
        return $this->c;
    }

    public function setA($a) {
        $this->a = $a;
    }

    public function setB($b) {
        $this->b = $b;
    }

    public function setC($c) {
        $this->c = $c;
    }

    public function cuadratica() {
        
     $d = $this->b*$this->b -4*$this->a*$this->c;
     $e = 2*$this->a;
     if ($d==0) {
     $cuadratica[0] = -$this->b/$e;
     $cuadratica[1] = $cuadratica[0];   
     }
     else {
           if ($d>0) {
           $cuadratica[0] = (-$this->b + sqrt($d))/$e;
           $cuadratica[1] = (-$this->b - sqrt($d))/$e;
           }
           else {
           $cuadratica[0] = NAN;
           $cuadratica[1] = NAN;
           }
     }    
           return $cuadratica;
    }
}
?>
codigo fibonacci


Empezemos por saber que es la serie de fibonacci:
La serie fue descubierta por un matemático italiano del siglo XIII, llamado Fibonacci. Cada número de la serie es el resultado de la suma de los dos anteriores. Veamos que aspecto tiene:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Ahora diseñemos el algoritmo, una solucion seria la siguente, el cual imprime los numeros de la serie menores que 200.
  1. Iniciar Fibonacci
  2. f1=1
  3. f2=1
  4. imprimir f1
  5. mientras que f1<200
  6. imprimir f2
  7. f2=f2+f1
  8. f1=f2-f1
  9. fin mientras que
  10. fin fibonacci
    [/list=1]
    miremos algunas lineas importantes del algoritmo:
    4. Imprimos el primer numero de la serie
    7. lo que hacemos es: a f2 le llevamos el siquiente numero de la serie
    8. a f1 le llevamos lo que tenia f2, es decir el numero anterior al siguiente de la serie a ser impreso
cogigo en php-

<html> 
<head><title>Fibonacci</title></head> 
<body> 
<? 
echo "Iniciamos Fibonacci<p>"; 
$f1 = 1; 
$f2 = 1; 
echo $f1."<br>"; 
while ($f1 <= 200) { 
    echo $f2."<br>"; 
    $f2=$f2+$f1; 
    $f1=$f2-$f1; 
echo "<p>Fin Fibonacci"; 
?> 

</body> 
</html> 


La función Factorial en PHP

en php-

<?php
/* Creamos la variable con el número que deseamos y lo mostramos por pantalla */

$numero= 6;
echo 'El factorial del numero: '.$numero;

/*Creamos la función recursiva*/

function factorial($n)
{
   if($n==1)
      return 1;
   else
      return $n * factorial($n-1);
}

/*Llamamos a la función y mostramos el resultado*/

echo 'Da como resultado: '.factorial($numero);
?>




MATRICES O ARRAYS (ARREGLOS) DE DOS DIMENSIONES

Las matrices decimos que son arrays (arreglos) de dos dimensiones. También podemos verlas como tablas donde cada elemento tiene una fila y una columna. Para comprenderlas mejor podemos recordar las matrices matemáticas de 2 dimensiones. Un ejemplo de matriz en matemáticas podría ser esta:



En una matriz normalmente hablamos de filas y columnas y decimos que la matriz tiene m filas y n columnas. Así, cada elemento queda identificado por su fila i y su columna j. Por ejemplo, en la matriz que hemos mostrado anteriormente podríamos decir que tenemos 3 filas (fila 0, fila 1 y fila 2) y cuatro columnas (columna 0, columna 1, columna 2, columna 3). Podríamos decir que el elemento de la fila 1, columna 3 es igual a 2. De la misma manera podríamos decir:
$valor [0] [0] = 1; $valor [0] [1] = 14; $valor [0] [2] = 8; $valor [0] [3] = 3;
$valor [1] [0] = 6; $valor [1] [1] = 19; $valor [1] [2] = 7; $valor [1] [3] = 2;
$valor [2] [0] = 3; $valor [2] [1] = 13; $valor [2] [2] = 4; $valor [2] [3] = 1;

Escribe ahora este código y guárdalo con un nombre de archivo como ejemplo3.php. A continuación, sube el fichero al servidor y visualiza el resultado.
<?php
$animal[0][0] = "Perro";
$animal[0][1] = "Gato";
$animal[1][0] = "Lombriz";
$animal[1][1] = "Burro";
$animal[2][0] = "Murciélago";
$animal[2][1] = "Cocodrilo";
echo $animal[2][1];
echo $animal[0][0];
?>



Hay que recordar que los arrays siempre comienzan numerándose desde cero.
Otra forma de asignar valores a un array matriz es similar a la que ya describimos para los vectores. Escribe este código y guárdalo con un nombre de archivo como ejemplo4.php. A continuación, sube el fichero al servidor y visualiza el resultado.
<?php
$animal = array(
array("Perro""Gato"),
array("Lombriz", "Burro"),
array("Murciélago""Cocodrilo")
);
echo $animal[2][1];
echo $animal[0][0];
?>


La sintaxis que hemos empleado equivale a lo siguiente:
$animal [0] [0] = "Perro";  $animal [0] [1] = "Gato";
$animal [1] [0] = "Lombriz";  $animal [1] [1] = "Burro";
$animal [2] [0] = "Murciélago";  $animal [2] [1] = "Cocodrilo";

De ahí que por pantalla se muestre "Cocodrilo" y "Perro", al igual que en el ejemplo anterior.
También obtenemos el mismo resultado usando este código, que es una mezcla de ambos tipos de sintaxis:
<?php
$animal[0] = array("Perro""Gato");
$animal[1] = array("Lombriz""Burro");
$animal[2] = array("Murciélago""Cocodrilo");
echo $animal[2][1];
echo $animal[0][0];
?>


La visualización obtenida es la misma: por pantalla se muestra "Cocodrilo" y "Perro", al igual que en el ejemplo anterior.


ARRAYS MULTIDIMENSIONALES
Los arrays multidimensionales son los que tienen más de dos dimensiones. Estos tipos de arrays se definen como las matrices pero añadiendo más índices.
Escribe este código, guarda el archivo php, súbelo al servidor y visualiza el resultado en tu navegador.
<?php
$animal[0][0][0] = "Perro";
$animal[0][0][1] = "Gato";
$animal[0][0][2] = "Lombriz";
$animal[1][0][0] = "Burro";
$animal[1][0][1] = "Murciélago";
$animal[1][0][2] = "Cocodrilo";
echo "<br/>& nbsp;& nbsp;& nbsp;" . $animal[1][0][1];
echo "<br/>& nbsp;& nbsp;& nbsp;" . $animal[0][0][3];
?>



En este ejemplo hemos incluido una línea que tiene poco sentido, o podría interpretarse como un error:
echo "<br/>& nbsp;& nbsp;& nbsp;" . $animal[0][0][3];

Fíjate que estamos invocando un localizador [0][0][3] que no existe, o al que aún no le hemos asignado valor. Dependiendo del lenguaje y de la versión el resultado puede ser uno u otro. En principio, debe tratar de evitarse invocar a una variable tipo array a la que no se haya asignado valor, ya que esto supone una inconsistencia o incoherencia. En general, si esto ocurre, PHP devolverá un valor “vacío”, que en este caso supondría que en la pantalla no se muestra nada asociado a esta variable. Por eso en la pantalla vemos únicamente “Murciélago” y nada más.
Escribe el código que incluimos más abajo y visualiza el resultado. Si te fijas, cuando declaramos un array dentro de otro array lo que hacemos es añadir una dimensión más al array. Por ejemplo, si quisiéramos declarar un array de tres dimensiones de nombre $miFecha podríamos escribir:
<?php
$miFecha = array( //Declara array
array( //Dimensión [0][…][…]
array("13 de enero de 2015""11 de febrero de 2018"), //[0][0][…]
array("13 de enero de 2020""11 de febrero de 2015"), //[0][1][…]
),
array( //Dimensión [1][…][…]
array("3 de agosto de 2017""1 de octubre de 2016"), //[1][0][…]
array("3 de agosto de 2013""1 de octubre de 2019"), //[1][1][…]
),
array( //Dimensión [2][…][…]
array("10 de junio de 2020""11 de marzo de 2019"), //[2][0][…]
),
array(
array("22 de marzo de 2020""28 de mayo de 2019"), //[3][0][…]
array("22 de marzo de 2019""28 de mayo de 2018"), //[3][1][…]
array("22 de marzo de 2018""28 de mayo de 2017"), //[3][2][…]
array("22 de marzo de 2017""28 de mayo de 2016"), //[3][3][…]
)
);
echo "<br/>& nbsp;& nbsp;& nbsp;" . $miFecha[3][2][0];
?>



En este ejemplo hemos definido valores para los siguientes índices de array:
$miFecha [0] [0] [0], $miFecha [0] [0] [1]
$miFecha [0] [1] [0], $miFecha [0] [1] [1]
$miFecha [1] [0] [0], $miFecha [1] [0] [1]
$miFecha [1] [1] [0], $miFecha [1] [1] [1]
$miFecha [2] [0] [0], $miFecha [2] [0] [1]
$miFecha [3] [0] [0], $miFecha [3] [0] [1]
$miFecha [3] [1] [0], $miFecha [3] [1] [1]
$miFecha [3] [2] [0], $miFecha [3] [2] [1]
$miFecha [3] [3] [0], $miFecha [3] [3] [1]

Compruébalo solicitando la visualización de todas estas variables, como vemos en este ejemplo.
<?php
$miFecha = array(
array(
array("13 de enero de 2015""11 de febrero de 2018"),
array("13 de enero de 2020""11 de febrero de 2015"),
),
array(
array("3 de agosto de 2017""1 de octubre de 2016"),
array("3 de agosto de 2013""1 de octubre de 2019"),
),
array(
array("10 de junio de 2020""11 de marzo de 2019"),
),
array(
array("22 de marzo de 2020""28 de mayo de 2019"),
array("22 de marzo de 2019""28 de mayo de 2018"),
array("22 de marzo de 2018""28 de mayo de 2017"),
array("22 de marzo de 2017""28 de mayo de 2016"),
)
);
echo "<br/>& nbsp;& nbsp;& nbsp;" . $miFecha[3][2][0];
echo $miFecha [0] [0] [0]. "<br>"; echo $miFecha [0] [0] [1]. "<br>";
echo $miFecha [0] [1] [0]. "<br>"; echo $miFecha [0] [1] [1]. "<br>";
echo $miFecha [1] [0] [0]. "<br>"; echo $miFecha [1] [0] [1]. "<br>";
echo $miFecha [1] [1] [0]. "<br>"; echo $miFecha [1] [1] [1]. "<br>";
echo $miFecha [2] [0] [0]. "<br>"; echo $miFecha [2] [0] [1]. "<br>";
echo $miFecha [3] [0] [0]. "<br>"; echo $miFecha [3] [0] [1]. "<br>";
echo $miFecha [3] [1] [0]. "<br>"; echo $miFecha [3] [1] [1]. "<br>";
echo $miFecha [3] [2] [0]. "<br>"; echo $miFecha [3] [2] [1]. "<br>";
echo $miFecha [3] [3] [0]. "<br>"; echo $miFecha [3] [3] [1]. "<br>";
?>



EJERCICIO
Crea el código PHP de 3 archivos que den respuesta al siguiente planteamiento:
Queremos almacenar en una matriz el número de alumnos con el que cuenta una academia, ordenados en función del nivel y del idioma que se estudia. Tendremos 3 filas que representarán al Nivel básico, medio y de perfeccionamiento y 4 columnas en las que figurarán los idiomas (0 = Inglés, 1 = Francés, 2 = Alemán y 3 = Ruso). Se pide realizar la declaración de la matriz y asignarle los valores indicados en la siguiente imagen a cada elemento de las siguientes maneras (crea un archivo php por cada una de estas maneras):

a) Con una sintaxis basada exclusivamente en índices, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.
b) Con una sintaxis basada en el uso anidado de la palabra array, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.
c) Con una sintaxis que combine el uso de array y el uso de índices, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.

Nota: por ejemplo, debe mostrarse por pantalla que el número de alumnos en el nivel básico, idioma inglés, hay 1 alumno; en el nivel básico, idioma francés, hay 14 alumnos, etc.