martes, 22 de julio de 2008

LA PROGRAMACION COMPUTACIONAL

Un sistema computacional, es la unión de los componentes de entrada, procesamiento almacenamiento y salida capaz de realizar las acciones que le han ordenado y para lo cual ha sido programado. Para que un sistema computacional pueda realizar estas y otras funciones, debe contener un programa, el cual son listas de instrucciones que describen los procesos de computación específicos. Cada vez que se elabora un programa lo que se desea resolver es un problema específico.

Las instrucciones que contiene un programa, deben ser ordenadas y lógicas, la acción de construirlas se recibe el nombre de programación.

1. DESCRIPCION DE UN PROBLEMA

El problema debe entenderse una necesidad de una persona tísica o de una organización. El cual debe ser delimitado y definido de manera que pueda comprenderse que aspectos incluye o excluye.

GLAVIS PANQUEVA (1992) indica deben resolverse tres interrogantes: ¿que es lo ideal?, ¿Cómo pueden satisfacerse los recursos al alcance?, ¿Qué falta por alcanzar?

Un problema se plantea como proposición sobre alguna situación en particular que se desea cambiar, algunos ejemplos son:

● Una empresa debe recuperar la cuota establecida para ventas del primer cuatrimestre, debido a que la ha perdido.

● Representar el siclo del agua de manera que resulte comprensible para los estudiantes.

2. ANALISIS DEL PROBLEMA

Es necesario reconocer los componentes del problema, por ejemplo la identificación de los elementos requeridos en una solución, así como los que ya dispone el estado actual del problema.

Las estrategias para la resolución de problemas, llamadas heurísticas (una manera de solucionar un problema mediante el empleo de reglas empíricas o mediante hipótesis) herramientas que pueden ayudar a la resolución del problema, a continuación le presentaremos un ejemplo de problema.

Supongamos que se desea describir los pasos lógicos y eficaces que debe ejecutar un estudiante desde que se levanta por la mañana, hasta llegar hasta la escuela.

1. Levantarse de la cama.

2. Bañarse

3. Vestirse

4. Desayunar

5. Tomar el bus

6. Llegar a la escuela

Si observamos cada uno de los pasos, nos damos cuanta que, a su vez, pueden descomponerse en pasos más pequeños, podemos desagregarlos así:

1. Levantarse de la cama

1.1 despertarse

1.2 retirar las cobijas

1.3 incorporarse

1.4 salir de la cama

2. Bañarse

2.1 dirigirse al baño

2.2 abrir la puerta del baño

2.3 cerrar la puerta del baño

2.4 cambiarse la pijama

2.5 caminar hacia la ducha

2.6 abrir la ducha

2.7 mojarse

2.8 ponerse el jabón

2.9 quitarse el jabón

2.10 secarse

Lo anterior ha consistido en fraccionar más la lista de pasos, que se utilizo al inicio, como estrategia para llegar a la solución final.

Ya comprendidos los aspectos implicados en el problema, debemos sistematizar las acciones que nos permitan resolverlos; en este caso, elaborar un algoritmo (entendido como pasos lógicos que nos permiten resolver el problema). Cuando se describieron los pasos los pasos a seguir por el estudiante para levantarse en la mañana y llegar a la escuela, lo que se hizo fue la elaboración de un algoritmo, es decir se preparo un conjunto instrucciones, paso a paso, que al completarse, debían resolver el problema.

Volvamos a la primera propuesta del algoritmo que resuelve el problema del estudiante que debe levantarse por la mañana y llegar a la escuela. ¿Que pasaría si cambiáramos el orden de las de las acciones d la siguiente manera?

  1. levantarse de la cama
  2. vestirse
  3. desayunar
  4. bañarse
  5. tomar el bus
  6. llegar a la escuela

El resultado es obvio el estudiante, legaría mojado a tomar el bus. Por eso es importante que los algoritmos lleven una secuencia ordenada de pasos, debe carecer de ambigüedades, generalidades y errores que impiden llegar al objetivo de la solución del problema en muchas ocasiones en la viada cotidiana elaboramos algoritmos. Por ejemplo son algoritmos el conjunto de instrucciones ordenadas que nos permiten realizar una receta de cocina, las instrucciones que nos permiten instalar una impresora o un software, o las instrucciones del VHS que permiten programarlo para que a una hora determinada grave mi programa favorito.

Se pueden destacar cuatro propiedades de los algoritmos:

  1. Es una secuencia de etapas ordenadas, ordenadas.
  2. Es definido no es ambiguo
  3. Es general, puede ser usado para varios problemas que se relacionen entre si. El conjuntote datos para los cuales es aplicable el algoritmo, se llama Dominio. Cuando se desea resolver un problemas utilizando un algoritmo, es necesario definir su dominio y verificar si trabaja adecuadamente con todos los datos dentro de el.
  4. Es finito en tamaño y tiempo. Termina al procesar todos los datos posibles o al encontrar que se satisface una condición.

3. DISEÑO DE LA LOGICA GENERAL Y DETALLADA DEL PROGRAMA

Es importante realizar un diseño del orden jerárquico de los componentes del programa, y seguir la lógica de la heurística, partiendo de lo general a lo particular. Lo que se pretende es unir las piezas del diseño lógico del programa.

Una vez analizado el diseño general determinamos posibles enfoques del programa. Se procede a realizar el diseño detallado, en el cual se incluyen todas las actividades de procesamiento y sus relaciones (entradas, cálculos, operaciones lógicas, manejo de datos, salidas). En este sentido los diagramas de flujo y la utilización de los pseudo códigos, son dos técnicas comunes para el diseño, tanto general, como detallado de programas.

Diagramas de flujo consiste en:

La utilización de distintos símbolos para la utilización de símbolos para representar operaciones especificas. Reciben este nombre debido a que los símbolos se enlazan por medio de flechas, que indican la secuencia que debe seguir una operación determinada, algunos símbolos de flujo usado en diagramas son:

NOMBRE SIMBOLO TIPO DE OPERACIÓN

Líneas de flujo Representa la ruta de la lógica

del programa.




Proceso Representan algún tipo de pro-

ceso computacional. Puede ser

general o específico.

Proceso se refiere a un grupo de opera-

Predefinido ciones que puede ser detallado

en otro diagrama de flujo c.c.

subrutina.




Datos Cualquier tipo de entrada y Sali-

da del programa.


Decisión Marca el punto donde debe

tomarse una decisión.

Iniciador o El inicio, la conclusión o la

Terminador interrupción de un programa.




Conector Irrumpe o enlaza líneas de

flujo.




Operación manual Indica que en ese momento se

Lleva acabo una operación ma-

nual.

Datos Símbolo de almacenamiento de

Almacenados datos.

Impresión Representa la salida de un do-

mento a través del dispositivo

de impresión.

Por su parte el pseudo código es el lenguaje de especificaciones de los algoritmos, es decir, representa la lógica del programa, mediante el uso de instrucciones en el lenguaje natural de la persona que lo escribe.

El pseudo código se caracteriza por carecer de reglas de sintaxis (reglas para formular instrucciones). Un ejemplo de pseudo código es aquel que se utiliza la palabra “si” como equivalente a “if” en el lenguaje de programación. El pseudocódigo permite que, a partir del uso del lenguaje natural, se estructure un algoritmo para la resolución del problema.

Para comprender aun mas el uso y la importancia del los diagramas de flujo y del pseudocódigo, así como los algoritmos que se implican en la organización de las secuencias lógicas del diseño general y especifico del programa, presentaremos el ejemplo del marcado automático, en el siguiente diagrama de flujo que incluye el pseudocódigo.

El símbolo del programa predefinido se refiere al conjunto de operaciones o pasos que se encuentran detallados en otro diagrama de flujo. Se trata de una subrutina, es decir, de un modulo independiente del programa principal. Quiere decir que, refiriéndose al ejemplo anterior sobre lo que hace un estudiante desde que se levanta hasta que llega al colegio, podemos detallar en diagramas de flujo pequeños, lo subpasos que involucran las seis acciones iniciales que lleva a cavo el estudiante para despertar en la mañana e ir al colegio y en otro diagrama general, hacer referencia a estos subpasos a partir del uso del símbolo programa predefinido, en donde se indica el nombre de la acción. Veamos el ejemplo:

1-Levantarme de la cama.

1.1 Despertarse.

1.2 Retirar las cobijas

1.3 Incorporarse

1.4 Salir de la cama.

5.CODIFICACION DEL PROGRAMA

A partir de la fase anterior, en la cual el cual se diseño el programa de manera grafica y narrativa, se procede a procede a traducir el algoritmo que permitirá resolver el problema a un lenguaje de programación que pueda ser entendido y ejecutado por el sistema computacional.

Todos los lenguajes de programación proveen facilidades para incluir líneas de comentarios en los programas. Estos comentarios aclaran lo que se ordena al computador y facilitan la compresión del programa. La inclusión de comentarios se demoniza DOCUMENTACION INTERNA.

Los comentarios, por ejemplo en el lenguaje C# (lease C Sharp) se visualizan de la siguiente manera:

Void Btmenos Click ( object sender, system.EventArgs e)

String x = pantalla. Text; // variable de tipo string o hilera

Num1= System. Corvert. ToSingle (x); // asigna a num, que es eterno, el valor de x.

Pantalla. Clear (); //limpia la caja de texto llamada pantalla.

Operador = “-“; // asigna a la variable operación el símbolo menos.

Los comentarios en C# se ubican después de cada doble barra inclinada (//) y se reconocen por su color verde.

En el caso del lenguaje LOGO, en su versión extendida Micro mundos, los comentarios se distinguen por que se colocan después de un asterisco. Por ejemplo:

* Este procedimiento hace una estrella

Para estrella

Cp

Repite 5 [ ad 50 de 144]

Fin

5. PRUEBA Y DEPURACIÓN PROGRAMA

Una vez que el programa se ejecuta, es probable que arroje errores de sintaxis, ya que todo lenguaje de programación posee reglas de construcción de instrucciones que deben ser atacadas por quien diseña el programa, contrario al pseudocódigo, que carece de ellas. Estos errores son originados por omisiones en las reglas de escritura de instrucciones del lenguaje específico que utilizamos. Un error de sintaxis, en Micro mundo, es:

Desliza 40

El programa envía un mensaje que indica “desliza necesita mas entradas”. Esto significa que no definieron las dos entradas de la primitiva: distancia y velocidad. El uso adecuado de la primitiva seria:

En esta etapa es posible que deba regresarse a etapas anteriores. Podría que en el momento del desarrollo y pruebas del algoritmo contenido en el programa se considere necesario delimitar aun más del programa se tengan que delimitar aun mas el problema o que en la escritura del programa se tengan que desarrollar nuevos algoritmos. Los resultados obtenidos podrían ser:

a) la lógica del programa este bien hecha, pero se encuentren errores sencillos que pueden corregirse modificándose algunas instrucciones, corrigiendo sintaxis de ellas o incluyendo unas nuevas, el proceso debe repetirse desde la etapa cuatro, o sea, codificación del programa.

b) Existan errores ocasionados por fallas en la lógica, lo que obliga a regresar al paso tres para revisión y del diagrama de flujo.

c) Se encuentren errores muy graves en el análisis, es decir, que el programa no resuelve el problema planteado. En este caso debe regresara las etapas 1 y 2.

d) No contenga errores y los resultados son los esperados. En este caso, el programa puede guardarse permanentemente en el dispositivo de almacenamiento del computador, para utilizarlo cuando deba ejecutarse nuevamente.

DOCUMENTACION DEL PROGRAMA

¿Por qué es necesario documentarlos programas? Podemos con testar desde dos puntos:

En el personal, el beneficio radica en que sirve de apoyo en futuras tareas para mejorar nuestras habilidades el la programación. La importancia para otros usuarios del programa consiste en que de esa forma tienen la posibilidad de revisar cual fue la lógica con que fue construido el programa, como se resolvió el problema y cuales fueron las interrelaciones de sus componentes. Un ejemplo es describir el nombre de los componentes o de de los objetos programados:

  • tbnombre: es la caja de texto o texbox en la que el usuario digita su nombre.
  • Cbasignaturas: es el combobox que contiene las asignaturas.
  • Controlvel: control para la velocidad.

La mejor manera de documentar un trabajo consiste en generarlo a medida que avanza el proceso de desarrollo del programa; significa que debe registrarse el trabajo a medida que se desarrolle el código. Los aspectos mínimos contenidos en la documentación que deberíamos considerar son la descripción del programa, el diagrama de flujo y el listado del programa.

B- LENGUAJES DE PROGRAMACION

Dentro de la codificación del programa es necesario utilizar un lenguaje que sea entendido por el computador, es decir el lenguaje de maquina.

Un lenguaje de programación es básicamente un código que es empleado para comunicar órdenes al computador. Es el medio a través que se logra la comunicación de la maquina y las personas.

Para Corrales (1993) los lenguajes de computación se caracterizan porque:

  • Sirven para codificar instrucciones que puedan ser entendidas y ejecutadas por el computador.
  • Son específicos o sea cada lenguaje sirve para un ámbito de aplicación, ingeniería, científicos, matemáticas, etc.
  • Poseen reglas de sintaxis y comandos propios a partir de los cuales se definen los procesos.
  • Son instrumentos uniformados o normalizados de computación a pesar de las diferencias en las versiones.

Como hemos dicho todos los computadores procesan las instrucciones en el lenguaje de maquina, o sea, el único lenguaje que ella endiente, que es precisamente la presencia o ausencia de energía que se reduce a la aparición de ceros (0) y unos (1), es decir cadenas de números binarios. Los primeros programadores estaban obligados a escribir en lenguaje de maquina traduciendo las instrucciones en código binario, utilizando ceros y unos, veamos un ejemplo de números en sistema decimal convertidos al binario:

SISTEMA DECIMAL

SISTEMA BINARIO

06

0110

12

1100

15

1111

Los lenguajes como Basic, fortran y C son considerados en una posición intermedia entre los lenguajes humanos y entre la maquina, por que permiten a los programadores utilizar una tecnología similar al lenguaje humano. Para que el computador pueda comprender estos lenguajes intermedios es necesario el uso del lenguaje de traducción o compilador que admita convertir las instrucciones al código binario (Beekman, 1999).

Los lenguajes son generalmente de naturaleza procesal, estos son los que describen una a una la sucesión de transformaciones y modificaciones que deben aplicarse para obtener el resultado deseado. Tal es el caso como Fortran, Pascal y Basic.

PROLOG, LISP Y LOGO: Son ejemplos de lenguajes de naturaleza “aplicativa” es decir, lenguajes que permiten describir las propiedades de las acciones y manipular objetos ( Dufoyer).

No es lo mismo planear como resolver un problema, utilizando un lenguaje procesal, que uno aplicativo. Además algunos lenguajes son mas o menos próximos al lenguaje natural, en cambio otros se alejan bastante de dicho lenguaje, por lo que los primeros facilitan la programación. Todo dependerá de las características del lenguaje y del tipo de tareas que deben resolver, lo que condiciona el enfoque que tenga cada uno de ellos.

Desde inicios de la informática, los lenguajes de programación, al igual que las computadoras, han evolucionado de tal manera que podemos hablar de nuevas generaciones definidas a partir de los cambios y las mejoras que han experimentado los tipos de programación en cada lenguaje. Según LOG (1990) las últimas generaciones de programación no necesariamente nos proporcionan muchas capacidades de programación, pero si nos dan una interacción más sofisticada programador/computadora, lo que significa que cada nueva generación es mas fácil de entender y usar.

Clasificación general de lenguajes de programación:

1. Primera generación de lenguaje.

Es el lenguaje de máquina; sus instrucciones son codificadas, en una serie de unos y ceros. Significa que nuestro lenguaje debe ser traducido a un lenguaje binario, cuyo alfabeto es el cero y el uno, mediante herramientas desarrolladas para este fin conocidas como traductor.

2. Segunda generación de lenguajes.

El proceso de programación se simplificó y se crearon los lenguajes ensambladores. Son equivalentes a los lenguajes de máquina, pero son más fáciles de leer y escribir, así como de comprender. Mas que series de ceros y unos, los lenguajes ensambladores utilizan símbolos de fácil reconocimiento llamados mnemónicos por su facilidad de recordar lo que representa cada uno de los códigos escritos, por ejemplo, el símbolo mnemónico, ADD, representa una instrucción de sumar. Tanto os lenguajes de máquina como los ensambladores son considerados de bajo nivel.

3. Tercera generación de lenguajes

Comprende los copiladores e intérpretes y los lenguajes orientados a procedimientos. Los lenguajes copiladores traducen o copilan las instrucciones de un lenguaje de alto nivel (el programa fuente) a instrucciones de maquina (programa objeto), de manera que la computadora pueda interpretarlo y ejecutarlo. Por ejemplo, COBOL y PASCAL son lenguajes de alto nivel que necesitan cada uno por separado, un copilador que pueda ejecutar los programas escritos en sus respectivos códigos.

Por su parte los lenguajes intérpretes realizan básicamente la misma función del copilador, con la diferencia que en lugar de traducir todo el programa fuente de una sola vez, traducen y ejecutan, una a una cada instrucción.

Los lenguajes orientados a procedimientos han facilitado la elaboración reprocedimientos científicos y de negocios. Las instrucciones se codifican y se describen de manera secuencial y se procesan de acuerdo con las especificaciones del programas se denominan también lenguajes de programación moderna o estructurada y se caracterizan por las posibilidades que brindan para llevar a cavo la estructura de datos. Pueden clasificarse en lenguajes de propósito general y lenguajes especializados.

4. Cuarta generación de lenguaje L4G

Se caracteriza por su elevado nivel de abstracción. Autores como Colorado, Palacios y Solarte indican que al contener una sintaxis distinta para la representación del control y para la estructura de datos, elimina es la necesidad de detalles algorítmicos. Ejemplos de lenguajes de cuarta generación son: PROGRESS, SYSBASE INFORMIX y ORACLE.

Los lenguajes de soporte de la toma de decisiones, los lenguajes prototipos y los de especificación formal, clasifican dentro de los “Otros L4G”. Los Sistemas de Manejo de Base de Datos, SMBD, son lenguajes sin procedimiento. Fueron diseñados para aplicaciones en las que se procesan bajos volúmenes de datos. La división por generaciones no es la única que se plantea en torno a los lenguajes de programación; podemos llevar a cavo otros procedimientos, veamos.

En concordancia con el estilo de programación, los lenguajes pueden ser:

a) Imperativos: suelen ser lenguajes de aplicación general. Son lenguajes en los cuales las instrucciones s e ejecutan de manera secuencial. esto hace que se alteren las regiones de la memoria donde se encuentran los valores de las variables involucradas de manera constante. Ejemplos de lenguajes imperativos so: FORTRAN, COBOL, BASIC, C, PASCAL.

b) Declarativos: son los que especifican cual es el problema que debe resolverse. Su énfasis esta en la programación, pero no explicarlas paso a paso. Los lenguajes aclarativos se clasifican en funcionales y lógicos.

c) Funcionales: están basados en funciones. Las funciones son expresiones que indican procesos; estas se constituyeren un conjunto de términos que a su vez pueden ser encapsulados en otras expresiones, de manera que la evaluación de todas ellas derive en la solución deseada. Dentro de esta clasificación se encuentra LISP y sus derivados como LOGO.

CORRALES (1994) caracteriza la función como procedimiento, que al ejecutarla, puede utilizarse para realizar evaluaciones. Un ejemplo en función en un sen LOGO son los procedimientos de tipo REPORTERO, que emiten o reportan el valor a partir del que se pueda realizar una comparación.

El otro tipo de lenguaje declarativo son los denominados lógicos, que se basan conjunto de hechos y reglas lógicas para poder emitir soluciones inteligentes; tal es el caso de PROLOG.

d) Orientados a objetos: estos programas priorizan en la programación en los objetos que van a ser manipulados, más que una lógica que se requiere para que funcionen. Ejemplos de objetos pueden ser: estudiantes, autos, casas, entre muchos otros los cuales tendrán ciertas funciones, valores y propiedades que lo identificaron y que posibilitan la comunicación entre ellos a través de mensajes. Dentro de esta clasificación se encuentran SMALLTALK y JAVA.

e) Lenguajes ensamblados: son la representación simbólica de las instrucciones de un lenguaje a un lenguaje ensamblador, de manera que haya correspondencia de las instrucciones del lenguaje ensamblador y las del lenguaje de maquina.

f) Lenguajes copilados: son aquellos que fueron traducidos de un nivel de alto nivel (como FORTRAN O PASCAL) a lenguaje de maquina, produciendo un lenguaje objeto permanente.

g) Lenguajes interpretados: no trasforman las instrucciones en lenguaje objeto, si no que cada instrucción es analizada y ejecutada la vez, abriendo mas posibilidades de interacción. Sin embargo ha resultado ser ineficientes cuando se desea ejecutar repetidamente un programa.

h) Lenguajes de preprocesados: son lenguajes que primeramente han sido traducidos a un lenguaje intermedio de un bajo nivel, para luego volverlo a traducir al programa objeto. Algunas otras clasificaciones descritas por COLORADO y sus colegas, derivadas en las nuevas tendencias en la programación, son: lenguajes visuales, metalenguajes y lenguajes de propósito específico.

i) Lenguajes visuales: forman parte de aplicaciones que disponen de una eficaz grafica. Facilitan la tarea del programador, permitiendo la utilización de iconos, herramientas visuales, y simbólicas. Dentro de ellos están: VISUAL BASIC, VISUAL CAFÉ, VISUAL Fox, entre otros.

j) Metalenguajes: permiten definir otros lenguajes; estructuran textos mediante etiquetas, facilitando la comprensión por parte del usuario y, el procesado, por parte de las computadoras son utilizados en la creación de documentos, intercambio y transferencia reinformación. Ejemplos de metalenguajes son: XML, SGML y HTML.

k) Lenguajes de propósito específico: son diseñados con fines muy determinados. Entre los lenguajes nuevos de propósito especifico están: MATLAB para cálculos científicos, y de ingeniería, SPSS para problemas estadísticos, CAD/CAM para el diseño de piezas y programación de maquinas, GPSS para simulación de sistemas y CORBA para el manejo de interfase cliente-servidor.

EL LENGUAJE DE PROGRAMACION: MEDIO SIMBOLICO

Es un medio simbólico para representar ideas, eventos o procesos (Corrales, 1994). Esto implica saber utilizar símbolos y representaciones para el tratamiento y el almacenamiento de datos. Además deben conocerse reglas para poder escribir expresiones que sean comprensibles para la maquina.

TIPOS DE PROGRAMACION

Las consideraciones sobre la estructura de un programa deben estar siempre en el desarrollo de un proyecto de programación, no solo en la fase de codificación, si no también en el momento en el cual se piensa sobre el desarrollo de la solución del problema planteado. Una buena estructura no puede ser pensada luego de haber realizado todo el proceso de codificación. Todo lo contrario, tiene que ser considerada como uno de los elementos más importantes de un programa, pudiendo ayudar, no solo a su creación sino, también a la compresión de sus elementos e interrelaciones.

Una de las técnicas que han arrojado resultados muy productivos en la actividad de la programación es la estructura de programas. Autores como Temblay, Bunt y Opseth (1986) afirman que los estudiantes producen mejores programas en mejor tiempo a partir de esa técnica. Por otro lado nuevas corrientes en el campo de la programación apuntan al uso de objetos, que permiten construir programas de una manera muy grafica evitando la codificación, evitando la codificación grafica tradicional.

Revisemos brevemente en que consistía cada una de estas propuestas.

1

  1. Programación estructurada: permiten leer su codificación de inicio a fin, en forma continua, sin tener que saltar de un lugar a otro en el programa. En otras palabras, la estructura del programa es establecida por el orden lógico de la codificación, lo que dirige el flujo de control a través de su estructura. Contiene tres estructuras básicas de control lógico: secuencia, selección e iteración. Por ejemplo en sus inicios, BASIC permitido que los programadores escribieran y depuraran programas de manera interactiva. El inconveniente de su uso radicaba en la gran cantidad de instrucciones “go to” (ir a) que utilizaban para transferir el control a otras partes del programa y saturaba el programa de una manera que en ocasiones era inmanejable. Los programas se hacían inmensos y por lo tanto la posibilidad de cometer errores era mucho mayor. La programación estructurada no depende de instrucciones “go to” para controlar el flujo lógica de los procesos, si no que se parte de módulos o subprogramas que a la vez se componen de módulos mas pequeños, son segmentos de programación formados por pocas instrucciones, cada uno de estos tienen una entrada y una salida, identificando esta característica como programas propios. Cuando varios programas propios se combinan utilizando estructuras lógicas de control, forman otro programa propio. Otra característica de los programas propios es que dentro de sus instrucciones no existen lazos infinitos ni dejan ejecutarse algunos de ellas.

La programación de estructura se fundamenta en el teorema de la Estructura, que establece que un programa propio (con una entrada y una salida exclusivamente) puede ser escrito utilizando solamente las estructuras de control: secuencia, selección e interacción.

La secuencia: significa que las instrucciones de un programan se ejecutan en una sucesión simple de dos o mas operaciones, en el mismo orden en que aparecen en el programa. Gráficamente se representaría como cajas, una después de la otra, ambas con una sola entrada y una sola salida.

    La selección: consiste en la bifurcación condicional de una o más operaciones. Es entonces el desvió de las operaciones a partir de las del cumplimiento de una condición. Se conoce también como la estructura SI –CIERTO-FALSO y corresponde a la introducción if de la mayoría de lenguajes de programación, su representación grafica es la siguiente:









     La iteración: es la repetición de una operación hasta que sea satisfecha una condición, también se conoce como la estructura HACER-MIENTRAS-QUE. Podríamos representarlo en un diagrama de flujo así:



 

Volvamos al

ejemplo del marcado de un número telefónico, de manera automática por 5 veces e identifiquemos, dentro del diseño del diagrama de flujo, estas estructuras de control:

























La secuencia o la sucesión de de operaciones es visible es visible dentro del flujo de la estructura. Primero se ingresa el número mediante el marcado; luego se verifica si se atiende la llamada y de acuerdo con el resultado de esta interrogante, se toma la decisión de finalizar el proceso y evaluar si se han llevado a cavo los 5 marcados. De lo contrario se devuelve al punto en el cual se marca el número telefónico.

PROGRAMACION ORIENTADA A OBJETOS (POO)

Consiste en una nueva forma de programar, que viene desarrollándose desde hace unos diez años. Este lenguaje recibe ese nombre debido a que el elemento fundamental es el OBJETON, entendiéndose por objeto “cada elemento utilizado en el programa que posee una estructura y forma parte de una organización. Pueden construirse programas a partir de objetos que contienen instrucciones y propiedades especificas, pudiendo interactuar entre si como entidades de software independientes. Cada objeto al ser identificado individualmente, posee una serie de propiedades que lo definen, por ejemplo si un texto es objeto, su color es su propiedad.

El ambiente de programación HIPERCARD un botón, un campo de texto y el fondo, son ejemplos de objetos que poseen su propio guión de programación y cualquiera de ellos puede ser activado hasta con un simple clic del puntero del ratón.

Los métodos: son la funciones propias de los objetos; en otras palabras aquellas operaciones que pueden desarrollarse sobre un determinado objeto para obtener los resultados deseados. Por ejemplo una ventana de Windows tiene métodos para maximizar, minimizar y restaurar; un documento que esta activo tiene un método que permite escribir un texto dentro de el y ser observado a través de la pantalla.

Las propiedades de los objetos, junto con los métodos, constituyen a la clase del objeto. Los objetos se clasifican de mayor a menor nivel de jerarquía; de esta manera, los objetos que están contenidos en otros son propiedad de estos últimos. En estos casos tanto el documento como el la tabla son objetos padres, pues contienen otros objetos los cuales son llamados objetos derivados. Tal es el caso del texto y la celda.

Las relaciones permiten que el objeto, el cual es parte de una organización, se relacione con otros objetos, interactuando entre ellos para lograr objetivos comunes.

Durante la ejecución del programa, los diversos objetos que lo componen han de interactuar entre si para lograr para lograr una serie de objetivos comunes.

Algunas de las principales claves para la programación por objetos son la encapsulacion, la abstracción y el poliformismo.

La encapsulacion: relación entre métodos y las propiedades. Es el acceso de los datos que describen las propiedades de un objeto. Externamente el objeto será solo una entidad que responde a mensajes públicos llamados interfaz de clase.

La abstracción: es un mecanismo de diseño de la programación por objetos, que permite abstraer o generalizar una serie de datos o comportamientos comunes para almacenarlos en clases. Cuando en mismo mensaje es recibido por diversos objetos y da lugar a acciones totalmente distintas, se esta utilizando el polimorfismo: es la posibilidad de construir varios métodos con el mismo nombre, pero con relación a la clase a la que pertenece a cada uno, con comportamientos diferentes.

Las herramientas de programación visual, como VISUAL BASIC, VISUAL CAFÉ y VISUAL FOX, permiten a los programadores crear programas dibujando imágenes y apuntando objetos, ya que están dotados de una eficaz grafica, que utiliza iconos y herramientas que admiten la construcción de programas, evitando la codificación de la programación habitual.

Muchos expertos opinan que la programación orientada a objetos esta en el futuro de la programación y que abrirá las puertas para hacerla más accesible a los usuarios, sobre todo porque la filosofía de representar el conocimiento en termino de objetos, tomando en cuenta sus propiedades, funciones y clases, es un método adecuado que permite resolver problemas.