miércoles, 11 de mayo de 2011

Estructuras Condicionales

Las estructuras condicionales se utilizan para lograr que un algoritmo analice los datos y tome ciertas decisiones., con las estructuras condicionales se regula el comportamiento de un algoritmo, para que interactúe con los datos ingresados por el usuario, o con datos que ha obtenido de procesos internos.
Para cumplir con estos objetivos existen tres categorías de estructuras condicionales, las cuales son:
- Estructuras condicionales simples, en este tipo de estructuras se limita la ejecución de un bloque de código dependiendo el resultado de una condición.
- Estructuras condicionales dobles. Son aquellas que ofrecen dos posibles alternativas para continuar la ejecución del código, una de ellas se ejecutará si la condición se cumple (verdadero) y la otra alternativa se ejecutará si la condición no se cumple (falso).
- Estructuras Condicionales múltiples, entregan una decisión mas especializada, debido a que representan una serie más amplia de parámetros o alternativas, con lo que se logra analizar de manera más correcta la variable.
estructura simple
estructura doble
estructura multiple



https://ambientes.inacap.cl/Cursos/SCORMAICC/C925114654/html/5_3.asp

jueves, 5 de mayo de 2011

Los diferentes lenguajes de programación para la web

Actualmente existen diferentes lenguajes de programación para desarrollar en la web, estos han ido surgiendo debido a las tendencias y necesidades de las plataformas. En el presente artículo pretende mostrar las ventajas y desventajas de los lenguajes más conocidos.
Desde los inicios de Internet, fueron surgiendo diferentes demandas por los usuarios y se dieron soluciones mediante lenguajes estáticos. A medida que paso el tiempo, las tecnologías fueron desarrollándose y surgieron nuevos problemas a dar solución. Esto dio lugar a desarrollar lenguajes de programación para la web dinámicos, que permitieran interactuar con los usuarios y utilizaran sistemas de Bases de Datos. A continuación daremos una introducción a los diferentes lenguajes de programación para la web.

Lenguaje HTML

Desde el surgimiento de internet se han publicado sitios web gracias al lenguaje HTML. Es un lenguaje estático para el desarrollo de sitios web (acrónimo en inglés de HyperText Markup Language, en español Lenguaje de Marcas Hipertextuales). Desarrollado por el World Wide Web Consortium (W3C). Los archivos pueden tener las extensiones (htm, html).

Sintaxis:

Ventajas:

  • Sencillo que permite describir hipertexto.
  • Texto presentado de forma estructurada y agradable.
  • No necesita de grandes conocimientos cuando se cuenta con un editor de páginas web o WYSIWYG.
  • Archivos pequeños.
  • Despliegue rápido.
  • Lenguaje de fácil aprendizaje.
  • Lo admiten todos los exploradores.

Desventajas:

  • Lenguaje estático.
  • La interpretación de cada navegador puede ser diferente.
  • Guarda muchas etiquetas que pueden convertirse en “basura” y dificultan la corrección.
  • El diseño es más lento.
  • Las etiquetas son muy limitadas.

Lenguaje Javascript

Este es un lenguaje interpretado, no requiere compilación. Fue creado por Brendan Eich en la empresa Netscape Communications. Utilizado principalmente en páginas web. Es similar a Java, aunque no es un lenguaje orientado a objetos, el mismo no dispone de herencias. La mayoría de los navegadores en sus últimas versiones interpretan código Javascript.
El código Javascript puede ser integrado dentro de nuestras páginas web. Para evitar incompatibilidades el World Wide Web Consortium (W3C) diseño un estándar denominado DOM (en inglés Document Object Model, en su traducción al español Modelo de Objetos del Documento).

Sintaxis:

Ventajas:

  • Lenguaje de scripting seguro y fiable.
  • Los script tienen capacidades limitadas, por razones de seguridad.
  • El código Javascript se ejecuta en el cliente.

Desventajas:

  • Código visible por cualquier usuario.
  • El código debe descargarse completamente.
  • Puede poner en riesgo la seguridad del sitio, con el actual problema llamado XSS (significa en inglés Cross Site Scripting renombrado a XSS por su similitud con las hojas de estilo CSS).

Lenguaje PHP

Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home Page). Surgió en 1995, desarrollado por PHP Group.
PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. PHP no necesita ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas. Los archivos cuentan con la extensión (php).

Sintaxis:


            
  tambien puede usarse



Ventajas:

  • Muy fácil de aprender.
  • Se caracteriza por ser un lenguaje muy rápido.
  • Soporta en cierta medida la orientación a objeto. Clases y herencia.
  • Es un lenguaje multiplataforma: Linux, Windows, entre otros.
  • Capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.
  • Capacidad de expandir su potencial utilizando módulos.
  • Posee documentación en su página oficial la cual incluye descripción y ejemplos de cada una de sus funciones.
  • Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
  • Incluye gran cantidad de funciones.
  • No requiere definición de tipos de variables ni manejo detallado del bajo nivel.

Desventajas:

  • Se necesita instalar un servidor web.
  • Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más ineficiente a medida que las solicitudes aumenten de número.
  • La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.
  • La programación orientada a objetos es aún muy deficiente para aplicaciones grandes.
  • Dificulta la modularización.
  • Dificulta la organización por capas de la aplicación.

Seguridad:

PHP es un poderoso lenguaje e intérprete, ya sea incluido como parte de un servidor web en forma de módulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza.
PHP está diseñado específicamente para ser un lenguaje más seguro para escribir programas CGI que Perl o C, y con la selección correcta de opciones de configuración en tiempos de compilación y ejecución, y siguiendo algunas prácticas correctas de programación.

Lenguaje ASP

Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo de sitio web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado por Microsoft en 1996. Las páginas web desarrolladas bajo este lenguaje es necesario tener instalado Internet Information Server (IIS).
ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar para crear páginas ASP. El más utilizado es VBScript, nativo de Microsoft. ASP se puede hacer también en Perl and Jscript (no JavaScript). El código ASP puede ser insertado junto con el código HTML. Los archivos cuentan con la extensión (asp).

Sintaxis:




Ventajas:
  • Usa Visual Basic Script, siendo fácil para los usuarios.
  • Comunicación óptima con SQL Server.
  • Soporta el lenguaje JScript (Javascript de Microsoft).

Desventajas:

  • Código desorganizado.
  • Se necesita escribir mucho código para realizar funciones sencillas.
  • Tecnología propietaria.
  • Hospedaje de sitios web costosos.

Lenguaje ASP.NET

Este es un lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología ASP, fue lanzada al mercado mediante una estrategia de mercado denominada .NET.
El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con la extensión (aspx). Para su funcionamiento de las páginas se necesita tener instalado IIS con el Framework .Net. Microsft Windows 2003 incluye este framework, solo se necesitará instalarlo en versiones anteriores.

Ventajas:

  • Completamente orientado a objetos.
  • Controles de usuario y personalizados.
  • División entre la capa de aplicación o diseño y el código.
  • Facilita el mantenimiento de grandes aplicaciones.
  • Incremento de velocidad de respuesta del servidor.
  • Mayor velocidad.
  • Mayor seguridad.

Desventajas:

  • Mayor consumo de recursos.

Lenguaje JSP

Es un lenguaje para la creación de sitios web dinámicos, acrónimo de Java Server Pages. Está orientado a desarrollar páginas web en Java. JSP es un lenguaje multiplataforma. Creado para ejecutarse del lado del servidor.
JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET, desarrollado para la creación de aplicaciones web potentes. Posee un motor de páginas basado en los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor Tomcat.

Características:

  • Código separado de la lógica del programa.
  • Las páginas son compiladas en la primera petición.
  • Permite separar la parte dinámica de la estática en las páginas web.
  • Los archivos se encuentran con la extensión (jsp).
  • El código JSP puede ser incrustado en código HTML.

Elementos de JSP

Los elementos que pueden ser insertados en las páginas JSP son los siguientes:
  • Código: se puede incrustar código “Java”.
  • Directivas: permite controlar parámetros del servlet.
  • Acciones: permite alterar el flujo normal de ejecución de una página.

Ventajas:

  • Ejecución rápida del servlets.
  • Crear páginas del lado del servidor.
  • Multiplataforma.
  • Código bien estructurado.
  • Integridad con los módulos de Java.
  • La parte dinámica está escrita en Java.
  • Permite la utilización se servlets.

Desventajas:

  • Complejidad de aprendizaje.

Lenguaje Python

Es un lenguaje de programación creado en el año 1990 por Guido van Rossum, es el sucesor del lenguaje de programación ABC. Python es comparado habitualmente con Perl. Los usuarios lo consideran como un lenguaje más limpio para programar. Permite la creación de todo tipo de programas incluyendo los sitios web.
Su código no necesita ser compilado, por lo que se llama que el código es interpretado. Es un lenguaje de programación multiparadigma, lo cual fuerza a que los programadores adopten por un estilo de programación particular:
  • Programación orientada a objetos.
  • Programación estructurada.
  • Programación funcional.
  • Programación orientada a aspectos.

Sintaxis:

Ejemplo de una clase en Phyton:




Ventajas:

  • Libre y fuente abierta.
  • Lenguaje de propósito general.
  • Gran cantidad de funciones y librerías.
  • Sencillo y rápido de programar.
  • Multiplataforma.
  • Licencia de código abierto (Opensource).
  • Orientado a Objetos.
  • Portable.

Desventajas:

  • Lentitud por ser un lenguaje interpretado.

Lenguaje Ruby

Es un lenguaje interpretado de muy alto nivel y orientado a objetos. Desarrollado en el 1993 por el programador japonés Yukihiro “Matz” Matsumoto. Su sintaxis está inspirada en Phyton, Perl. Es distribuido bajo licencia de software libre (Opensource).
Ruby es un lenguaje dinámico para una programación orientada a objetos rápida y sencilla. Para los que deseen iniciarse en este lenguaje pueden encontrar un tutorial interactivo de ruby. Se encuentra también a disposición de estos usuarios un sitio con informaciones y cursos en español.

Sintaxis:





Características:

  • Existe diferencia entre mayúsculas y minúsculas.
  • Múltiples expresiones por líneas, separadas por punto y coma “;”.
  • Dispone de manejo de excepciones.
  • Ruby puede cargar librerías de extensiones dinámicamente si el (Sistema Operativo) lo permite.
  • Portátil.

Ventajas:

  • Permite desarrollar soluciones a bajo Costo.
  • Software libre.
  • Multiplataforma.

Lenguaje de Programacion

Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo

Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto:

El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios).
El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que el procesador pueda procesarlo.
El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!

Lenguajes de programación imperativos y funcionales

Lenguaje de programación imperativo

Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.

Lenguaje de programación funcional

Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.

Interpretación y compilación

Lenguaje interpretado

Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.

Lenguaje compilado

Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).

miércoles, 4 de mayo de 2011

Modelos de Estructuras de Decision

Estructura de Decision Sencilla


Estructura anidada


Estructuras de Decision 2

Cuando el programador desea especificar dos caminos alternativos en un
algoritmo se deben utilizar estructuras de decisión.
Una estructura de decisión dirige el flujo de un programa en una cierta dirección, de entre dos posibles,  en función de un valor booleano. En lenguajes de programación estructurados la estructura condicional es la IF / ELSE. La cláusula
ELSE en esta estructura es optativa. La forma en que trabaja esta sentencia resulta casi evidente a partir de la lógica de la lengua inglesa: Si (IF) la expresión booleana resulta cierta (TRUE), entonces la sentencia se ejecuta. Si la expresión booleana resulta falsa (FALSE), el control pasa a la siguiente (en orden descendente) instrucción del programa.

Estructura Sencilla:
Forma general de uso:

Si (Condición) entonces
    Ejecuta bloque de instrucciones uno
Si_no
   Ejecuta bloque dé instrucciones dos
Fin si


Una estructura de decisión por sencilla o compleja que sea debe tener solo una entrada y una salida.   
Un bloque de instrucciones (Denominado tarea 1 y 2 en el diagrama anterior) puede ser un conjunto de estructuras de cualquier clase (asignación, Decisión, Cíclicas o de selección múltiple) que se ejecutan unas tras de otras.

El bloque de instrucciones tarea1 se ejecuta en caso de que la condición que se
coloque sea verdadera, En caso de ser falsa la evaluación de la condición se ejecuta el bloque de instrucciones tarea2.
Estructuras de decisión anidadas:
Una estructura de decisión puede estar anidada dentro de otra estructura de decisión. Hay que tener en cuenta que el anidamiento sea total. 
 El inicio y el final de la estructura anidada debe quedar totalmente dentro del inicio y el final de la estructura que permite dicho anidamiento.
 Se debe mantener el concepto que una estructura de decisión debe tener una sola entrada y una sola salida tanto para la estructura que anida como para la estructura anidada.

En el diagrama  anterior se puede observar una estructura anidada del lado verdadero de la condición de la primera decisión.
 Seudo lenguaje de la estructura de decisión anidada.
 Si (Condición 1) entonces
    Si (Condición 2) entonces
  Ejecuta bloque de instrucciones tarea 1
    Si_no  
  Ejecuta bloque de instrucciones tarea 2
    Fin_si
Si_no
   Ejecuta blo  que de instrucciones tarea 3 
Fin si.

En el anterior Seudo lenguaje se puede observar que el anidamiento es total o sea que el inicio de la condición y el final están totalmente encajados dentro del lado verdadero de la primera estructura.

Estructuras de Decision



Visual Basic permite probar condiciones y realizar diferentes operaciones en función de los resultados de la prueba. Puede comprobar si una condición es verdadera o falsa, los distintos valores de una expresión o las diferentes excepciones que se generan al ejecutar una serie de instrucciones.
En el siguiente ejemplo se muestra una estructura de decisión que prueba si el valor de una condición es true y emprende distintas acciones en función del resultado.

Emprender acciones diferentes cuando el valor de una condición es true y cuando es false


Construcción If...Then...Else

Las construcciones If...Then...Else le permiten probar una o más condiciones y ejecutar una o más instrucciones en función de cada condición. Puede probar las condiciones y tomar medidas de las maneras siguientes:
  • Ejecutar una o más instrucciones si una condición es True.
  • Ejecutar una o más instrucciones si una condición es False.
  • Ejecutar algunas instrucciones si una condición es True y otras si es False.
  • Probar una condición adicional si una condición anterior es False.
La estructura de control que proporciona todas estas posibilidades es Instrucción If...Then...Else (Visual Basic). Puede utilizar una versión de una línea si tiene simplemente una comprobación y una instrucción para ejecutar. Si tiene un conjunto más complejo de condiciones y acciones, puede utilizar la versión de varias líneas.

Construcción Select...Case

La construcción Select...Case le permite evaluar una expresión una vez y ejecutar distintos conjuntos de instrucciones basados en valores posibles diferentes.


Construcción Try...Catch...Finally
Las construcciones Try...Catch...Finally le permiten ejecutar un conjunto de instrucciones en un entorno que conserva el control si cualquiera de las instrucciones provoca una excepción. Puede tomar distintas medidas para excepciones diferentes. Puede especificar opcionalmente un bloque de código, es decir, que se ejecuta antes de salir de toda la construcción Try...Catch...Finally, independientemente de lo que suceda