lunes, 18 de abril de 2016

5. LENGUAJE DE LADO DEL SERVIDOR

Unidad 5 Lenguaje de lado del servidor



5.1 Introduccion al lenguaje de lado del servidor


Los Lenguajes de programación del lado del servidor son especialmente útiles en trabajos que se tiene que acceder a información centralizada, situada en una base de datos en el servidor, y cuando por razones de seguridad los cálculos no se pueden realizar en la computadora del usuario.






Es  importante destacar que los  lenguajes  de  programación  del  lado del  servidor  son  necesarios porque para hacer la mayoría de las aplicaciones  web se debe  tener acceso a muchos recursos externos  a  la  computadora  del  cliente, principalmente  bases  de  datos  alojadas en  servidores  de  Internet. Un caso claro es un banco: no tiene ningún sentido que el cliente tenga acceso a toda la base de datos, sólo a la información que le concierne.

Las páginas dinámicas del servidor se suelen escribir en el mismo archivo HTML, mezclado con el código HTML, al igual que ocurría en las páginas del cliente. Cuando una página es solicitada por parte de un cliente, el servidor ejecuta los scripts y se genera una página resultado, que solamente contiene código HTML. Este resultado final es el que se envía al cliente y puede ser interpretado sin lugar a errores ni incompatibilidades, puesto que sólo contiene HTML.
Luego es  el  servidor el  que maneja toda la información  de las  bases  de datos  y  cualquier otro recurso, como imágenes o servidores  de correo y  luego envía al cliente una página  web con  los resultados de todas las operaciones. 
Las ventajas de este tipo de programación son que el cliente no puede ver los scripts, ya que se ejecutan y  transforman  en  HTML  antes  de  enviarlos. Además  son  independientes  del  navegador del usuario, ya que el código que reciben es HTML fácilmente interpretable.
Como desventajas  se puede  señalar que  será necesario  un  servidor  más  potente y  con  más capacidades  que  el  necesario  para las  páginas  de cliente. Además, estos  servidores  podrán soportar  menos  usuarios  concurrentes, porque  se  requerirá más  tiempo  de  procesamiento para cada uno.

Para escribir páginas dinámicas de servidor existen varios lenguajes.
  •  Practical  Extraction and Report Language (  PERL): es  un  lenguaje de  programación desarrollado por Larry  Wal   (lwal   at netlabs.com)  inspirado  en  otras  herramientas  de UNIX. PERL es el lenguaje más utilizado para la creación de programas CGI en los servidores web.  Es más rápido que los programas shel  script de UNIX, puede leer y escribir ficheros BINARIOShttp://cdncache-a.akamaihd.net/items/it/img/arrow-10x10.png, y puede procesar ficheros grandes. La ventaja más importante de PERL sobre C es que PERL no necesita ser recompilado, es un lenguaje interpretado.

  •   Active Server Pages (ASP): es una tecnología del lado servidor de Microsoft para páginas web generadas dinámicamente, que ha sido comercializada como un anexo a Internet Information Server (IIS). EL estándard ASP permite poder utilizar cualquier lenguaje para la  programación, si bien Microsoft favorece que se utilice el VBScript, y en segundo término el JScript (versión del  estándard Javascript hecha  por  Microsoft). En teoría,  y  mediante  la  programación, es posible adaptar  versiones  de  lenguajes  como Pascal, C  y  otros, para utilizarlos  dentro de páginas ASP.

  •   Java Server Pages (JSP): es la tecnología para generar páginas web de forma dinámica en el servidor, desarrollado por Sun  Microsystems, basado  en  scripts  que utilizan una variante  del lenguaje Java. La tecnología JSP, o de JavaServer Pages, es una tecnología Java que permite a los programadores generar dinámicamente HTML, XML o algún otro tipo de página web. Esta tecnología permite al  código  Java y  a algunas  acciones  predefinidas  ser embebidas  en  el contenido  estático. La principal  ventaja de  JSP  frente a otros  lenguajes  es  que permite integrarse con  clases  Java (.class)  lo que permite separar  en  niveles  las  aplicaciones  web, almacenando  en  clases  java las  partes  que  consumen  más  recursos  así como las  que requieren más seguridad, y dejando la parte encargada de formatear el documento ‘html ‘ en el archivo jsp. Además Java se caracteriza por ser un lenguaje que puede ejecutarse en cualquier sistema, lo que sumado a jsp le da mucha versatilidad.

  •   Hipertext Preprocesor (PHP):  PHP  (acrónimo recursivo de  “PHP: Hypertext Preprocessor”, originado inicialmente del nombre PHP Tools, o Personal Home Page Tools) es un lenguaje de programación interpretado. Aunque fue concebido en el tercer trimestre de 1994 por Rasmus Lerdorf no fue hasta el día 8 de Junio de 1995 que fue lanzada la versión 1.0. Se utiliza entre otras cosas para la programación de páginas web activas, y se destaca por su capacidad de mezclarse con el  código  HTML. Aunque  su creación y  desarrol o se da  en  el  ámbito de  los sistemas  libres, bajo  la  licencia  GNU, existe además  un  compilador comercial  denominado (Zend Optimizer). El desarrollo del código abierto por un lado y el firme respaldo comercial por el  otro, han elevado  a PHP  a alcanzar una  popularidad más  que notable.

5.2 Elementos de programacion
Cualquier lenguaje de programación trabaja con tres elementos: información, operaciones e instrucciones.
La información.
Esta se refiere a los datos con los cuales trabajarán los programas. Los datos suelen ser de dos tipos: numéricos y alfanuméricos (ó caracteres). Los datos se pueden agrupar formando estructuras, las estructuras pueden ser muy simples como las constantes (28) y las variables (x) o muy complejas como las matrices y registros. La figura nº 1.1 representa distintos tipos y estructuras de datos.



Las operaciones.
Se refieren a las operaciones que el ordenador es capaz de realizar con los diversos tipos de datos. Por ejemplo, la suma de dos números se puede realizar por un ordenador directamente; pero para realizar la suma de dos matrices habría que hacer un programa (existen algunos lenguajes de programación que permiten directamente realizar sumas de matrices).
Las operaciones pueden ser realizadas mediante operadores y funciones predefinidas que se aplican a un tipo de datos determinado. Por ejemplo, para los datos de tipo numérico se permiten los operadores suma, resta, división y producto, cuya operación se representaría:
a=5*3
c=6*b


​ Las funciones que dispone el lenguaje de programación para realizar operaciones se denominan predefinidas, ya que vienen definidas de antemano. Su utilización es como sigue:
a=sqrt(10)
b=log(b)


​ Normalmente para definir las operaciones con operadores y funciones se utiliza el término expresiones, que pueden ser operaciones con operadores, con funciones o con ambas, un ejemplo sería:
a=b*log(b)+sqrt(i)
​ Evidentemente existen expresiones tanto numéricas como de caracteres y estas expresiones pueden trabajar con distintas estructuras de datos.

Las instrucciones.
​ Las instrucciones (también denominadas sentencias) son el conjunto de órdenes que se le pueden dar al ordenador. En función del tipo de orden que indique al ordenador, las instrucciones se clasifican en los siguientes tipos:

-Instrucciones de entrada y salida (E/S).




​ También denominadas de lectura/escritura (L/S) ó input/output (I/O). Estas instrucciones se encargan de la información que necesita un programa para realizar su tarea y de la información que genera el programa. Son instrucciones del tipo: Almacena en la variable "nom" el nombre del usuario ó escribe el contenido de la variable "nom". Normalmente la entrada y la salida se realiza desde un fichero ya creado (información almacenada en un dispositivo magnético) o es el usuario quien suministra o recibe la información a través del teclado y pantalla del ordenador. A continuación se describen los dispositivos de entrada y salida más comúnmente utilizados por los ordenadores. Para cada uno de ellos existirían instrucciones de entrada y salida.
Dispositivos de entrada.
​Son los utilizados para introducir la información en un ordenador. Los dispositivos de entrada más comunes son: ratón, escáner, sistemas ocr, módem, sistemas de audio, etc.
Dispositivos de salida.
​Operan con la información en sentido inverso al de los dispositivos de entrada; es decir, reciben la información del ordenador. Normalmente estos dispositivos muestran el estado de la información que contiene el ordenador.
Los dispositivos de salida más utilizados son la pantalla, la impresora, los plotters o el módem.
-Instrucciones de control.
Son instrucciones que sirven para dirigir la ejecución de un programa. Normalmente un programa está compuesto por un conjunto de instrucciones que se ejecutan una tras otra. Las instrucciones de control permiten cambiar la secuencia de ejecución.

Son instrucciones del tipo: Si ocurre tal condición ejecuta determinadas instrucciones, de lo contrario ejecuta otras; ó cuando llegues a esta instrucción vete a la primera. La figura nº 1.5 muestra el control de la ejecución para este tipo de sentencias.



-Instrucciones iterativas.

​Son instrucciones que permiten repetir un número determinado de veces un conjunto de instrucciones. Por ejemplo, si deseo realizar un programa que escriba los números enteros del 1 al 10.987.654 se puede realizar de dos formas: escribiendo diez millones novecientas ochenta y siete mil seiscientas cincuenta y cuatro instrucciones de salida o un sencillo bucle con cuatro sentencias. La figura nº 1.6 muestra la situación citada.


Elementos de los algoritmos.
Los algoritmos están muy ligados a los lenguajes de programación, de hecho, por cada elemento de los lenguajes de programación existe un elemento equivalente en algoritmia, la principal diferencia es su representación.

​ Mientras que para un lenguaje de programación los elementos se representan mediante una sentencia, los elementos de los algoritmos se pueden representan gráficamente. La representación gráfica de un algoritmo se denomina organigrama.
Un algoritmo indica una secuencia de pasos (parecido a una receta de cocina), la representación del mismo se puede hacer textualmente o gráficamente. En esta wiki utilizaremos principalmente la representación gráfica; así pues cuando se utilice la palabra organigrama nos estaremos refiriendo a la representación de los algoritmos. Además en los algoritmos también se indica el flujo de las órdenes; es decir la secuencia de ejecución, por tanto en los organigramas también se debe presentar este flujo. A continuación se describen los elementos de los organigramas:
- Información.
La información se representa mediante un conjunto de celdas y en cada celda se tiene un dato elemental. A lo largo del curso se describirán y representarán los distintos tipos y estructuras de datos.
- Expresiones.
En su representación no se distingue el tipo de expresión. Todas las expresiones se representan por un rectángulo y dentro del rectángulo se indica la expresión concreta. La figura nº 1.7 representa el símbolo de expresión, así como varios ejemplos de expresiones.








- Instrucciones.
En algoritmia cada tipo de instrucción tiene una representación gráfica distinta. Como siempre existen dos elementos: el símbolo gráfico que indica qué tipo de instrucción es y el texto que está dentro del símbolo, que indica la instrucción concreta. A continuación se describen brevemente los símbolos para cada tipo de instrucción más comúnmente utilizados. Los diferentes símbolos utilizados para realizar organigramas se describirán a medida que se analicen las distintas instrucciones que representan.
-Flujo de instrucciones.
​El flujo de instrucciones en los organigramas se representa mediante flechas que indican la secuencia de ejecución. Es muy importante saber qué función se ejecuta primero y cual después, ya que de esta secuencia depende el correcto funcionamiento del programa.
El flujo secuencial se representa por la unión de los símbolos gráficos a través de una flecha, no obstante mediante las instrucciones de control esta secuencia se puede cambiar. La figura nº 1.10 muestra las dos situaciones.




5.3 Aplicacion


Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor, realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente y generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente. El código recibido por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente se usa el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicación del modelo OSI. El término también se emplea para referirse al ordenador que ejecuta el programa.
Combox Dinámicos 
 El correspodiente diagrama entidad relación se presenta a continuación:

 index.php
 <head>
  <meta charset='utf-8'/>
  <title>Combox Dependientes</title>
  <link href='../../../css/estilo.css' rel='stylesheet' />
  <script src='js/jquery-1.10.1.min.js'></script>
  <script src='js/js.js'></script>
</head>
<body>
  <p><label>Estado</label>
  <select class='styled-select' id='estado'></select></p>
  <p><label>Municipio</label>
  <select class='styled-select' id='municipio'></select></p>
  <div id='colonias'>
  </div>
</body>
</html>

conexion.php
<?php
  $ruta    = 'localhost';
  $usuario = 'Usuario';
  $key     = 'Password';
  $db      = 'Tu base de datos';
  $conexion  = mysql_connect( $ruta, $usuario, $key) or die(mysql_error());
  mysql_select_db( $db, $conexion ) or die(mysql_error());
  mysql_query("SET NAMES 'utf8'");
?>

comboEstado.php
<?php
 $query = 'SELECT idEstado, estado
           FROM estado ORDER BY estado';
 include('conexion.php');
 $estados = mysql_query($query, $conexion)
            or die(mysql_error());
 mysql_close($conexion);
 $html = '';
 while ($estado = mysql_fetch_assoc($estados)) {
  $html.= '<option value="'.$estado['idEstado'].'">';
  $html.= $estado['estado'].'</option>';    
 }
 echo $html;
?>

comboMunicipio.php
<?php
 $idEstado = $_GET['idEstado'];
 $query = 'SELECT idMunicipio, municipio FROM municipio ';
 $query.= 'WHERE idEstado ='.$idEstado;
 $query.= ' ORDER BY municipio';
 include('conexion.php');
 $municipios = mysql_query($query, $conexion)
               or die(mysql_error());
 mysql_close($conexion);
 $html = '';
 while ($municipio = mysql_fetch_assoc($municipios)) {
  $html.= '<option value="'.$municipio['idMunicipio'].'">';
  $html.= $municipio['municipio'].'</option>';    
 }
 echo $html;
?>

colonias.php
<?php
 $idMunicipio = $_GET['idMunicipio'];
 $query = 'SELECT T.tipo, C.colonia, C.codigoPostal, Z.zona
          FROM colonia C, tipo T, zona Z ';
 $query.= "WHERE C.idMunicipio = $idMunicipio ";
 $query.= 'AND C.idTipo = T.idTipo AND C.idZona = Z.idZona ';
 $query.= 'ORDER BY C.colonia';
 include('conexion.php');
 $colonias = mysql_query($query, $conexion)
             or die(mysql_error());
 mysql_close($conexion);
 $n = mysql_num_rows($colonias); 
 if( $n > 0 ) {
   $html = '<table>';
   $html.= '<thead>';
   $html.= '<tr>';
   $html.= '<th>Asentamiento</th>';
   $html.= '<th>Nombre</th>';
   $html.= '<th>C.P.</th>';
   $html.= '<th>Zona</th>';
   $html.= '</tr>';
   $html.= '</thead>';
   $html.= '<tbody';
   while ($colonia = mysql_fetch_assoc($colonias)) {
     $html.= '<tr>';
     $html.= '<td>'.$colonia['tipo'].'</td>';
     $html.= '<td>'.$colonia['colonia'].'</td>';
     $html.= '<td>'.$colonia['codigoPostal'].'</td>';
     $html.= '<td>'.$colonia['zona'].'</td>';
     $html.= '</tr>';
   }
   $html.= '</tbody>';
   $html.= '</table>';
 } else {
    $html = '<p align="center">';
    $html = '<img alt="" src="../../../images/negacion.gif">';
 $html.= '</p>';
 }
 echo $html;
?>

Los datos se cargan dinámicamente mediante AJAX con jQuery

$(document).ready(function() {
  $('#estado').load('comboEstado.php', function() {
  var idEstado =  $('#estado').val();
  var url = 'comboMunicipio.php?idEstado='+idEstado;
  $('#municipio').load(url, function() {
    var idMunicipio = $('#municipio').val();
    var url = 'colonias.php?idMunicipio='+idMunicipio;
    $('#colonias').load(url);
  });
  });
  $('#estado').change(function(event){
  var idEstado = $('#estado').val();
  var url = 'comboMunicipio.php?idEstado='+idEstado;
  $('#municipio').load(url, function() {
    var idMunicipio = $('#municipio').val();
    var url = 'colonias.php?idMunicipio='+idMunicipio;
    $('#colonias').load(url);
  });
  });
  $('#municipio').change(function(event){
  var idMunicipio = $('#municipio').val();
  var url = 'colonias.php?idMunicipio='+idMunicipio;
  $('#colonias').load(url);
  });
});


 Unidad 5 Lenguaje de lado del servidor
5.1 Introduccion al lenguaje de lado del servidor
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif6DdkHsExQgMhqXpFCdepQbx5zlaQtUpif0bQ7JvSv51zjCTYTxEPIubVVkeAyLnRbjdKl9P3llmNOxYiMA6BsKWs4FCcLfnjIJZJIVIf8mtL9ZmfeP3IsHrPMmdhoBTPu2mJyVyyKRX1/s400/11.jpg 
Los Lenguajes de programación del lado del servidor son especialmente útiles en trabajos que se tiene que acceder a información centralizada, situada en una base de datos en el servidor, y cuando por razones de seguridad los cálculos no se pueden realizar en la computadora del usuario.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk5eRl74qLndXl21DnV1WmhGZa8Bcx6VudJvb_wE1QnYcO38Hz3rdE9HwT5Y5VB8FJNrhDc48O6xbqtRXjutMfIiTJhzG8biJ6b2b7j_X_qeT8_b7K2cHWVekLgatfjUG9h57ZmVExEfUz/s1600/11.1.jpgEs  importante destacar que los  lenguajes  de  programación  del  lado del  servidor  son  necesarios porque para hacer la mayoría de las aplicaciones  web se debe  tener acceso a muchos recursos externos  a  la  computadora  del  cliente, principalmente  bases  de  datos  alojadas en  servidores  de  Internet. Un caso claro es un banco: no tiene ningún sentido que el cliente tenga acceso a toda la base de datos, sólo a la información que le concierne.

Las páginas dinámicas del servidor se suelen escribir en el mismo archivo HTML, mezclado con el código HTML, al igual que ocurría en las páginas del cliente. Cuando una página es solicitada por parte de un cliente, el servidor ejecuta los scripts y se genera una página resultado, que solamente contiene código HTML. Este resultado final es el que se envía al cliente y puede ser interpretado sin lugar a errores ni incompatibilidades, puesto que sólo contiene HTML.
Luego es  el  servidor el  que maneja toda la información  de las  bases  de datos  y  cualquier otro recurso, como imágenes o servidores  de correo y  luego envía al cliente una página  web con  los resultados de todas las operaciones. 
Las ventajas de este tipo de programación son que el cliente no puede ver los scripts, ya que se ejecutan y  transforman  en  HTML  antes  de  enviarlos. Además  son  independientes  del  navegador del usuario, ya que el código que reciben es HTML fácilmente interpretable.
Como desventajas  se puede  señalar que  será necesario  un  servidor  más  potente y  con  más capacidades  que  el  necesario  para las  páginas  de cliente. Además, estos  servidores  podrán soportar  menos  usuarios  concurrentes, porque  se  requerirá más  tiempo  de  procesamiento para cada uno.

Para escribir páginas dinámicas de servidor existen varios lenguajes.
  •  Practical  Extraction and Report Language (  PERL): es  un  lenguaje de  programación desarrollado por Larry  Wal   (lwal   at netlabs.com)  inspirado  en  otras  herramientas  de UNIX. PERL es el lenguaje más utilizado para la creación de programas CGI en los servidores web.  Es más rápido que los programas shel  script de UNIX, puede leer y escribir ficheros BINARIOShttp://cdncache-a.akamaihd.net/items/it/img/arrow-10x10.png, y puede procesar ficheros grandes. La ventaja más importante de PERL sobre C es que PERL no necesita ser recompilado, es un lenguaje interpretado.

  •   Active Server Pages (ASP): es una tecnología del lado servidor de Microsoft para páginas web generadas dinámicamente, que ha sido comercializada como un anexo a Internet Information Server (IIS). EL estándard ASP permite poder utilizar cualquier lenguaje para la  programación, si bien Microsoft favorece que se utilice el VBScript, y en segundo término el JScript (versión del  estándard Javascript hecha  por  Microsoft). En teoría,  y  mediante  la  programación, es posible adaptar  versiones  de  lenguajes  como Pascal, C  y  otros, para utilizarlos  dentro de páginas ASP.

  •   Java Server Pages (JSP): es la tecnología para generar páginas web de forma dinámica en el servidor, desarrollado por Sun  Microsystems, basado  en  scripts  que utilizan una variante  del lenguaje Java. La tecnología JSP, o de JavaServer Pages, es una tecnología Java que permite a los programadores generar dinámicamente HTML, XML o algún otro tipo de página web. Esta tecnología permite al  código  Java y  a algunas  acciones  predefinidas  ser embebidas  en  el contenido  estático. La principal  ventaja de  JSP  frente a otros  lenguajes  es  que permite integrarse con  clases  Java (.class)  lo que permite separar  en  niveles  las  aplicaciones  web, almacenando  en  clases  java las  partes  que  consumen  más  recursos  así como las  que requieren más seguridad, y dejando la parte encargada de formatear el documento ‘html ‘ en el archivo jsp. Además Java se caracteriza por ser un lenguaje que puede ejecutarse en cualquier sistema, lo que sumado a jsp le da mucha versatilidad.

  • https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRiM-Xm7NmmombFDts5cAbh-eYy9YC-C9ioyGHqaEsrPXX4xZzEYGNWZWxdnnAbk-yv48iGlChIceW4jhB8e0Izp4PH0j5ut95zObyUZmDX1CgrlH4E34YR44udZr2oa2jqs6hJyA5hiAC/s320/11.2.png  Hipertext Preprocesor (PHP):  PHP  (acrónimo recursivo de  “PHP: Hypertext Preprocessor”, originado inicialmente del nombre PHP Tools, o Personal Home Page Tools) es un lenguaje de programación interpretado. Aunque fue concebido en el tercer trimestre de 1994 por Rasmus Lerdorf no fue hasta el día 8 de Junio de 1995 que fue lanzada la versión 1.0. Se utiliza entre otras cosas para la programación de páginas web activas, y se destaca por su capacidad de mezclarse con el  código  HTML. Aunque  su creación y  desarrol o se da  en  el  ámbito de  los sistemas  libres, bajo  la  licencia  GNU, existe además  un  compilador comercial  denominado (Zend Optimizer). El desarrollo del código abierto por un lado y el firme respaldo comercial por el  otro, han elevado  a PHP  a alcanzar una  popularidad más  que notable.

5.2 Elementos de programacion
Cualquier lenguaje de programación trabaja con tres elementos: información, operaciones e instrucciones.
Estructura_de_datos.pngLa información.
Esta se refiere a los datos con los cuales trabajarán los programas. Los datos suelen ser de dos tipos: numéricos y alfanuméricos (ó caracteres). Los datos se pueden agrupar formando estructuras, las estructuras pueden ser muy simples como las constantes (28) y las variables (x) o muy complejas como las matrices y registros. La figura nº 1.1 representa distintos tipos y estructuras de datos.



Las operaciones.
Se refieren a las operaciones que el ordenador es capaz de realizar con los diversos tipos de datos. Por ejemplo, la suma de dos números se puede realizar por un ordenador directamente; pero para realizar la suma de dos matrices habría que hacer un programa (existen algunos lenguajes de programación que permiten directamente realizar sumas de matrices).
Las operaciones pueden ser realizadas mediante operadores y funciones predefinidas que se aplican a un tipo de datos determinado. Por ejemplo, para los datos de tipo numérico se permiten los operadores suma, resta, división y producto, cuya operación se representaría:
a=5*3
c=6*b


​ Las funciones que dispone el lenguaje de programación para realizar operaciones se denominan predefinidas, ya que vienen definidas de antemano. Su utilización es como sigue:
a=sqrt(10)
b=log(b)


​ Normalmente para definir las operaciones con operadores y funciones se utiliza el término expresiones, que pueden ser operaciones con operadores, con funciones o con ambas, un ejemplo sería:
a=b*log(b)+sqrt(i)
​ Evidentemente existen expresiones tanto numéricas como de caracteres y estas expresiones pueden trabajar con distintas estructuras de datos.

Las instrucciones.
​ Las instrucciones (también denominadas sentencias) son el conjunto de órdenes que se le pueden dar al ordenador. En función del tipo de orden que indique al ordenador, las instrucciones se clasifican en los siguientes tipos:

-Instrucciones de entrada y salida (E/S).



Entrada_y_salida.png
​ También denominadas de lectura/escritura (L/S) ó input/output (I/O). Estas instrucciones se encargan de la información que necesita un programa para realizar su tarea y de la información que genera el programa. Son instrucciones del tipo: Almacena en la variable "nom" el nombre del usuario ó escribe el contenido de la variable "nom". Normalmente la entrada y la salida se realiza desde un fichero ya creado (información almacenada en un dispositivo magnético) o es el usuario quien suministra o recibe la información a través del teclado y pantalla del ordenador. A continuación se describen los dispositivos de entrada y salida más comúnmente utilizados por los ordenadores. Para cada uno de ellos existirían instrucciones de entrada y salida.
Dispositivos de entrada.
​Son los utilizados para introducir la información en un ordenador. Los dispositivos de entrada más comunes son: ratón, escáner, sistemas ocr, módem, sistemas de audio, etc.
Dispositivos de salida.
​Operan con la información en sentido inverso al de los dispositivos de entrada; es decir, reciben la información del ordenador. Normalmente estos dispositivos muestran el estado de la información que contiene el ordenador.
Los dispositivos de salida más utilizados son la pantalla, la impresora, los plotters o el módem.
-Instrucciones de control.
Instrucciones_de_control.pngSon instrucciones que sirven para dirigir la ejecución de un programa. Normalmente un programa está compuesto por un conjunto de instrucciones que se ejecutan una tras otra. Las instrucciones de control permiten cambiar la secuencia de ejecución.

Son instrucciones del tipo: Si ocurre tal condición ejecuta determinadas instrucciones, de lo contrario ejecuta otras; ó cuando llegues a esta instrucción vete a la primera. La figura nº 1.5 muestra el control de la ejecución para este tipo de sentencias.
Instrucciones_iterativas.png-Instrucciones iterativas.
​Son instrucciones que permiten repetir un número determinado de veces un conjunto de instrucciones. Por ejemplo, si deseo realizar un programa que escriba los números enteros del 1 al 10.987.654 se puede realizar de dos formas: escribiendo diez millones novecientas ochenta y siete mil seiscientas cincuenta y cuatro instrucciones de salida o un sencillo bucle con cuatro sentencias. La figura nº 1.6 muestra la situación citada.


Elementos de los algoritmos.
Los algoritmos están muy ligados a los lenguajes de programación, de hecho, por cada elemento de los lenguajes de programación existe un elemento equivalente en algoritmia, la principal diferencia es su representación.

​ Mientras que para un lenguaje de programación los elementos se representan mediante una sentencia, los elementos de los algoritmos se pueden representan gráficamente. La representación gráfica de un algoritmo se denomina organigrama.
Un algoritmo indica una secuencia de pasos (parecido a una receta de cocina), la representación del mismo se puede hacer textualmente o gráficamente. En esta wiki utilizaremos principalmente la representación gráfica; así pues cuando se utilice la palabra organigrama nos estaremos refiriendo a la representación de los algoritmos. Además en los algoritmos también se indica el flujo de las órdenes; es decir la secuencia de ejecución, por tanto en los organigramas también se debe presentar este flujo. A continuación se describen los elementos de los organigramas:
- Información.
Expresiones.pngLa información se representa mediante un conjunto de celdas y en cada celda se tiene un dato elemental. A lo largo del curso se describirán y representarán los distintos tipos y estructuras de datos.
- Expresiones.
En su representación no se distingue el tipo de expresión. Todas las expresiones se representan por un rectángulo y dentro del rectángulo se indica la expresión concreta. La figura nº 1.7 representa el símbolo de expresión, así como varios ejemplos de expresiones.
- Instrucciones.
Instrucciones.pngEn algoritmia cada tipo de instrucción tiene una representación gráfica distinta. Como siempre existen dos elementos: el símbolo gráfico que indica qué tipo de instrucción es y el texto que está dentro del símbolo, que indica la instrucción concreta. A continuación se describen brevemente los símbolos para cada tipo de instrucción más comúnmente utilizados. Los diferentes símbolos utilizados para realizar organigramas se describirán a medida que se analicen las distintas instrucciones que representan.
-Flujo de instrucciones.
Flujo_de_instrucciones.png​El flujo de instrucciones en los organigramas se representa mediante flechas que indican la secuencia de ejecución. Es muy importante saber qué función se ejecuta primero y cual después, ya que de esta secuencia depende el correcto funcionamiento del programa.
El flujo secuencial se representa por la unión de los símbolos gráficos a través de una flecha, no obstante mediante las instrucciones de control esta secuencia se puede cambiar. La figura nº 1.10 muestra las dos situaciones.
5.3 Aplicacion
Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor, realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente y generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente. El código recibido por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente se usa el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicación del modelo OSI. El término también se emplea para referirse al ordenador que ejecuta el programa.
Combox Dinámicos 
 El correspodiente diagrama entidad relación se presenta a continuación:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR2Lrs5G5RJDxcca5cPyY1mbGSFbhMA9mudfE6X0GjzCnhoPMRbVg-8u4N71vQ8-7nS60eF-0E9O1U26o5N7Ipkw5DhvISglNiz5_ow6dXSjkt2FaKQSEE7UK6vo2CnV0qhBpFx3009ts/s1600/0504CodPostal.png







index.php
 <head>
  <meta charset='utf-8'/>
  <title>Combox Dependientes</title>
  <link href='../../../css/estilo.css' rel='stylesheet' />
  <script src='js/jquery-1.10.1.min.js'></script>
  <script src='js/js.js'></script>
</head>
<body>
  <p><label>Estado</label>
  <select class='styled-select' id='estado'></select></p>
  <p><label>Municipio</label>
  <select class='styled-select' id='municipio'></select></p>
  <div id='colonias'>
  </div>
</body>
</html>

conexion.php
<?php
  $ruta    = 'localhost';
  $usuario = 'Usuario';
  $key     = 'Password';
  $db      = 'Tu base de datos';
  $conexion  = mysql_connect( $ruta, $usuario, $key) or die(mysql_error());
  mysql_select_db( $db, $conexion ) or die(mysql_error());
  mysql_query("SET NAMES 'utf8'");
?>

comboEstado.php
<?php
 $query = 'SELECT idEstado, estado
           FROM estado ORDER BY estado';
 include('conexion.php');
 $estados = mysql_query($query, $conexion)
            or die(mysql_error());
 mysql_close($conexion);
 $html = '';
 while ($estado = mysql_fetch_assoc($estados)) {
  $html.= '<option value="'.$estado['idEstado'].'">';
  $html.= $estado['estado'].'</option>';    
 }
 echo $html;
?>

comboMunicipio.php
<?php
 $idEstado = $_GET['idEstado'];
 $query = 'SELECT idMunicipio, municipio FROM municipio ';
 $query.= 'WHERE idEstado ='.$idEstado;
 $query.= ' ORDER BY municipio';
 include('conexion.php');
 $municipios = mysql_query($query, $conexion)
               or die(mysql_error());
 mysql_close($conexion);
 $html = '';
 while ($municipio = mysql_fetch_assoc($municipios)) {
  $html.= '<option value="'.$municipio['idMunicipio'].'">';
  $html.= $municipio['municipio'].'</option>';    
 }
 echo $html;
?>

colonias.php
<?php
 $idMunicipio = $_GET['idMunicipio'];
 $query = 'SELECT T.tipo, C.colonia, C.codigoPostal, Z.zona
          FROM colonia C, tipo T, zona Z ';
 $query.= "WHERE C.idMunicipio = $idMunicipio ";
 $query.= 'AND C.idTipo = T.idTipo AND C.idZona = Z.idZona ';
 $query.= 'ORDER BY C.colonia';
 include('conexion.php');
 $colonias = mysql_query($query, $conexion)
             or die(mysql_error());
 mysql_close($conexion);
 $n = mysql_num_rows($colonias); 
 if( $n > 0 ) {
   $html = '<table>';
   $html.= '<thead>';
   $html.= '<tr>';
   $html.= '<th>Asentamiento</th>';
   $html.= '<th>Nombre</th>';
   $html.= '<th>C.P.</th>';
   $html.= '<th>Zona</th>';
   $html.= '</tr>';
   $html.= '</thead>';
   $html.= '<tbody';
   while ($colonia = mysql_fetch_assoc($colonias)) {
     $html.= '<tr>';
     $html.= '<td>'.$colonia['tipo'].'</td>';
     $html.= '<td>'.$colonia['colonia'].'</td>';
     $html.= '<td>'.$colonia['codigoPostal'].'</td>';
     $html.= '<td>'.$colonia['zona'].'</td>';
     $html.= '</tr>';
   }
   $html.= '</tbody>';
   $html.= '</table>';
 } else {
    $html = '<p align="center">';
    $html = '<img alt="" src="../../../images/negacion.gif">';
 $html.= '</p>';
 }
 echo $html;
?>

Los datos se cargan dinámicamente mediante AJAX con jQuery

$(document).ready(function() {
  $('#estado').load('comboEstado.php', function() {
  var idEstado =  $('#estado').val();
  var url = 'comboMunicipio.php?idEstado='+idEstado;
  $('#municipio').load(url, function() {
    var idMunicipio = $('#municipio').val();
    var url = 'colonias.php?idMunicipio='+idMunicipio;
    $('#colonias').load(url);
  });
  });
  $('#estado').change(function(event){
  var idEstado = $('#estado').val();
  var url = 'comboMunicipio.php?idEstado='+idEstado;
  $('#municipio').load(url, function() {
    var idMunicipio = $('#municipio').val();
    var url = 'colonias.php?idMunicipio='+idMunicipio;
    $('#colonias').load(url);
  });
  });
  $('#municipio').change(function(event){
  var idMunicipio = $('#municipio').val();
  var url = 'colonias.php?idMunicipio='+idMunicipio;
  $('#colonias').load(url);
  });
});


No hay comentarios:

Publicar un comentario