PROGAMACIÓN EN C++ C es un lenguaje de programación de ordenadores. No es (posiblemente) un lenguaje para principiantes, pero aun así creo que lo correcto es comenzar con las nociones más básicas: Un compilador es un programa, una herramienta, utilizada por algunos lenguajes de programación cuyo objetivo es convertir el código fuente escrito por el programador en código objeto que es el lenguaje que entiende la máquina que en algunos casos es conocido como bytecode. Después, esta serie de órdenes que nosotros hemos preparado en un lenguaje parecido al inglés (lo que se conoce como “programa fuente”) se debe convertir al lenguaje que realmente entiende el ordenador (obteniendo el “programa ejecutable”). Esta conversión se hace mediante unas herramientas llamadas compiladores. Un programa es un conjunto de órdenes para un ordenador. Estas órdenes se le deben dar en un cierto lenguaje, que el ordenador sea capaz de comprender. El problema es que los lenguajes que realmente entienden los ordenadores resultan difíciles para nosotros, porque son muy distintos de los que nosotros empleamos habitualmente para hablar. Escribir programas en el lenguaje que utiliza internamente el ordenador (llamado “lenguaje máquina” o “código máquina”) es un trabajo duro, tanto a la hora de crear el programa como (especialmente) en el momento de corregir algún fallo o mejorar lo que se hizo. Por eso, en la práctica se emplean lenguajes más parecidos al lenguaje humano, llamados “lenguajes de alto nivel”. Normalmente, estos son muy parecidos al idioma inglés, aunque siguen unas reglas mucho más estrictas. Otras tres palabras que se manejan con mucha frecuencia en la programación, y que es preferible mencionar ya, son: Un algoritmo es la secuencia de pasos que es necesario para resolver un cierto problema (realmente hay alguna condición más, por ejemplo, debe ser un número finito de pasos). Por tanto, un programa de ordenador es un algoritmo expresado no en nuestro lenguaje sino en un lenguaje de programación. Pseudocódigo es el nombre que se suele dar a un lenguaje de programación ficticio, parecido a los de verdad, pero no tan estricto, y muchas veces escrito incluso en español. Por ejemplo, un algoritmo que controlase los pagos que se realizan para realizar una transacción bancaria a través de un cajero electrónico podría ser: Inicio Introducir la tarjeta en la banda magnética del cajero Si la tarjeta es leída puede continuar Se despliega un menú de opciones Selecciona la opción Pedir código PIN, clave Si el PIN es correcto, comprobar saldo existente Si todo es correcto, se realiza la transacción con éxito Fin Un intérprete es una herramienta parecida a un compilador, con la diferencia de que en los intérpretes, el programa en alto nivel se convierte a código máquina, línea por línea, justo en el momento en que se pone a funcionar. No se crea ningún "programa ejecutable" capaz de funcionar "por sí solo", de modo que si queremos distribuir nuestro programa a alguien, deberemos entregarle el programa fuente y también el intérprete que es capaz de entenderlo. Metodología de la Programación Se entiende por metodología el conjunto de reglas y pasos estrictos que se siguen para desarrollar una aplicación informática completa. Hay diversas metodologías, algunas incluso registradas (hay que pagar por utilizarlas). Independientemente de la metodología utilizada suele haber una serie de pasos comunes a todas ellas relacionados con el ciclo de vida de la aplicación que tiene que ver con el Mantenimiento. Análisis Diseño Codificación Ejecución Prueba Análisis: al programar aplicaciones siempre se debe realizar un análisis. El análisis estudia los requisitos que ha de cumplir la aplicación. El resultado del análisis es una En la creación de algoritmos sencillos, el análisis consistiría únicamente en hoja de especificaciones en la que aparece los requerimientos de la aplicación. Esta hoja es redactada por el o la analista, la persona responsable del proceso de creación de la aplicación. En la creación de algoritmos sencillos, el análisis consistiría únicamente en: Determinar las entradas. Es decir, los datos que posee el algoritmo cuando comienza su ejecución. Esos datos permiten obtener el resultado. Determinar las salidas. Es decir, los datos que obtiene el algoritmo como resultado. Lo que el algoritmo devuelve al usuario. Determinar el proceso. Se estudia cuál es el proceso que hay que realizar. Diseño: En esta fase se crean esquemas que simbolizan a la aplicación. Estos esquemas los elaboran analistas. Gracias a estos esquemas se simboliza la aplicación. Estos esquemas en definitiva se convierte en la documentación fundamental para plasmar en papel lo que el programador debe hacer. En estos esquemas se pueden simbolizar: la organización de los datos de la aplicación, el orden de los procesos que tiene que realizar la aplicación, la estructura física (en cuanto a archivos y carpetas) que utilizará la aplicación, etc. Siempre existe en el diseño la zona principal que es el programa principal que se ejecutará cuando el programa esté codificado en un lenguaje de programación. En la construcción de aplicaciones complejas en esta fase se utilizan gran cantidad de esquemas para describir la organización de los datos y los procedimientos que ha de seguir el programa. En pequeños algoritmos se utilizan esquemas más sencillos. Codificación: Escritura de la aplicación utilizando un lenguaje de programación cualquiera como C++, Java,...). Normalmente la herramienta utilizada en el diseño debe ser compatible con el lenguaje que se utilizará para codificar. Es decir si se utiliza un lenguaje orientado a objetos, la herramienta de diseño debe ser una herramienta que permita utilizar objetos. Ejecución: Tras la escritura del código, mediante un software especial se traduce a código interpretable por el ordenador (código máquina). En este proceso pueden detectarse errores en el código que impiden su transformación. En ese caso el software encargado de la traducción (normalmente un compilador o un intérprete ) avisa de esos errores para que el programador los pueda corregir. Prueba: Se trata de testear la aplicación para verificar que su funcionamiento es el correcto. Para ello se comprueban todas las entradas posibles, comprobando que las salidas son las correspondientes. Mantenimiento: En esta fase se crea la documentación del programa (paso fundamental en la creación de aplicaciones). Gracias a esa documentación se pueden corregir futuros errores o renovar el programa para incluir mejoras detectadas, operaciones que también se realizan en esta fase.