Teoria de la programación 1.pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

## La programación En el proceso de resolución de problemas técnicos, el ser humano ha creado una herramienta increíble: el ordenador. Una persona detecta un problema, lo analiza y, si es posible, obtiene un algoritmo que le permite solucionarlo. Un ordenador es una herramienta capaz de llevar adel...

## La programación En el proceso de resolución de problemas técnicos, el ser humano ha creado una herramienta increíble: el ordenador. Una persona detecta un problema, lo analiza y, si es posible, obtiene un algoritmo que le permite solucionarlo. Un ordenador es una herramienta capaz de llevar adelante esa tarea encomendada, eso sí, siguiendo un algoritmo que le indique, con la mayor precisión posible, lo que debe hacer. Son muchos los problemas que se solucionan con un algoritmo, de ahí la importancia de aprender un lenguaje que permita a la persona comunicarse con el ordenador para que éste ejecute el algoritmo deseado. Es decir, aprender a programar algoritmos, que es el objeto de esta unidad. En la actualidad, programamos tanto ordenadores como cualquier otro objeto dotado de un microprocesador: satélites, vehículos, electrodomésticos, videoconsolas, cadenas de montaje, robots..., y hasta las atracciones de un parque de recreo. Por ejemplo, un autobús lleva un GPS con un programa que va indicando su posición. En las paradas de los autobuses, hay un panel programado. El panel recibe la información de la posición y el programa hace que vaya mostrando el tiempo que falta hasta que llegue el autobús. Los programas son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que han sido creadas. Para escribir un programa se utilizan distintos lenguajes, llamados lenguajes de programación. - Un algoritmo es una sucesión de pasos que se deben realizar para la resolución de un problema. - Una vez compilado un programa podemos ejecutarlo, esto es, hacer que se inicie la carga del programa y se empiecen a realizar las acciones programadas. Los programas se escriben en lo que se denomina *código fuente*, que son las instrucciones que el programador indica que deben ser ejecutadas a fin de realizar las acciones para las que el programa ha sido diseñado. Sin embargo, este código no lo puede comprender directamente el ordenador y debe ser traducido al único lenguaje que el ordenador puede interpretar: el *lenguaje máquina* o *código binario*. Para realizar esta transformación del código se utilizan unos traductores, llamados *compiladores* e *intérpretes*, que convierten las instrucciones dadas por el programador en instrucciones comprensibles por un ordenador y generan el llamado *código objeto*, que es el archivo traducido a lenguaje máquina. - Hay dos formas de traducir los programas a código máquina. Mientras que el intérprete traduce línea a línea el código fuente a código máquina y se detiene si encuentra un error, el compilador traduce todo el archivo fuente a código objeto y muestra los posibles errores en un informe posterior. ## Historia y evolución de los lenguajes de programación Los lenguajes de programación han evolucionado desde el punto de vista histórico en varias generaciones: - **Lenguajes de primera generación o 1GL (antes de 1950)**. La primera generación se caracteriza por el uso del lenguaje máquina. Puesto que el hardware se desarrollaba antes que el software, estos lenguajes estaban adaptados a una máquina específica. - **Lenguajes de segunda generación o 2GL (de 1950 a 1955)**. Se introduce el lenguaje ensamblador. - **Lenguajes de tercera generación o 3GL (de 1956 a 1965)**. Poco a poco, los intérpretes admiten instrucciones más completas y se crean lenguajes con sus correspondientes frases y palabras que expresaban de una forma bastante comprensible las acciones que se querían realizar sobre el ordenador. En 1957 nace el primer lenguaje de programación de alto nivel: **FORTRAN** (acrónimo de *formula translation*, traductor de fórmulas). - **Lenguajes de cuarta generación o 4GL (a partir de 1980)**. Son los derivados de los anteriores e incluyen herramientas de más alto nivel. También están orientados hacia propósitos muy específicos y dependen de cada campo de aplicación. En esta época cobran especial importancia los destinados a interactuar con las bases de datos. Su máximo representante es **SQL**. - **Lenguajes de quinta generación o 5L (o de inteligencia artificial)**. Se trabaja en ellos para que los ordenadores sean capaces de realizar un propósito mediante técnicas de reglas, reutilización, aprendizaje, etc. ## La creación de un programa Los programas están constituidos por un conjunto de sentencias que se procesan en una determinada secuencia y conforman órdenes capaces de manipular una serie de datos con el fin de obtener un determinado resultado. Las órdenes o instrucciones pueden dividirse en tres grandes secciones, cada una de las cuales corresponde a una parte de la codificación del programa: - **Entrada de datos**. Aquí se engloban todas aquellas instrucciones que recogen datos de un dispositivo o periférico (por ejemplo, el teclado), que se almacenan después en la memoria central o principal para su proceso posterior. - **Proceso o algoritmo**. En esta parte del programa se escriben las instrucciones o sentencias encargadas de procesar los datos recogidos en la sección anterior, conforme al propósito o finalidad del programa. Los resultados obtenidos se almacenan nuevamente en la memoria principal. - **Salida de datos o resultado**. Este bloque está formado por las instrucciones que toman los resultados obtenidos en la etapa de proceso, que se envían a los dispositivos de salida de la información (por ejemplo, la pantalla). Las *instrucciones* (a veces llamadas *comandos*) son informaciones reconocidas por el lenguaje de programación que indican al ordenador una acción elemental que debe realizar. Por ejemplo, en el lenguaje C, la instrucción *printf* visualiza un elemento en pantalla. En QBasic, esta misma instrucción se llama *print*, etc. Muchas veces hablamos de instrucciones y sentencias como si fueran lo mismo, pero en realidad tendríamos que decir que las instrucciones forman parte de una sentencia. Por ejemplo, la instrucción *printf* en sí no realiza ninguna acción, pero la sentencia *printf("Hola")*, formada por la instrucción *printf* y el literal "Hola", sí produce una acción específica. Por lo tanto, una sentencia de programación une instrucciones y otros elementos del lenguaje para llevar a cabo la ejecución de una tarea. ### Fases del proceso de programación El desarrollo de un programa requiere los siguientes pasos: 1. Definición y análisis del problema 2. Diseño del algoritmo 3. Codificación del programa (obtenemos el código fuente) 4. Compilación (obtenemos el código objeto) 5. Depuración de errores y verificación del programa 6. Explotación (documentación y mantenimiento) ### Procedimientos de depuración La depuración de un programa es la quinta fase en el proceso de programación y resulta fundamental a la hora de disminuir costes de implantación, mejorar el rendimiento y garantizar el correcto funcionamiento de los sistemas. Podemos distinguir los siguientes procedimientos de depuración, sabiendo que un programador los usará todos: 1. **Detección de errores de compilación**. Se buscan los errores existentes en un programa y se corrigen para que funcione. Un programador siempre agradece que el lenguaje de programación tenga ayudas a la depuración de código. 2. **Detección de errores en el funcionamiento**. Aunque el programa no tenga errores de sintaxis, puede no estar haciendo lo que el programador desea. Se debe revisar la funcionalidad hasta conseguir que haga las operaciones deseadas. 3. **Optimización de la programación**. Aunque el programa no tenga errores y funcione de manera correcta, siempre hay que buscar la manera óptima de realizarlo, es decir, lograr que la ejecución sea más rápida, que consuma menos memoria, que utilice menos recursos... ## Los algoritmos. Diagramas de flujo Un *algoritmo* es una sucesión de pasos que se deben realizar para la resolución de un problema. El concepto no es sólo informático, sino que se trata de un método gráfico de resolución de problemas en general. Los algoritmos más utilizados en la programación son los *diagramas de flujo* u *organigramas*. Éstos utilizan símbolos estandarizados que permiten reflejar cada uno de los pasos (generales o específicos) que se deben seguir para diseñar un programa. El organigrama del programa se dibuja antes de escribirlo y luego se traduce a las instrucciones propias del lenguaje de programación que se utilice. - **Terminal**: representa el comienzo o el fin del desarrollo de un algoritmo. - **Proceso**: permite representar cada una de las acciones que hay que realizar para desarrollar el algoritmo. - **Decisión**: se utiliza cuando es necesario decidir entre dos o más opciones y señala el camino que habrá que seguir según cuál sea la opción elegida. - **Entrada o salida de información**: se utiliza cuando es necesaria información (datos adicionales para desarrollar el algoritmo) o se presentan datos o resultados. - **Pantalla**: se utiliza cuando la información se presenta en pantalla. - **Línea de flujo**: señala el orden en que se desarrollan las acciones en el algoritmo. Los símbolos más utilizados en los organigramas son: - **Terminal** - **Proceso** - **Decisión** - **Entrada/Salida** - **Pantalla**

Use Quizgecko on...
Browser
Browser