Índice General
Presentación Introducción 1. Aspectos generales de programación 1.1.
Conceptos básicos
1.2.
Modelos de programación
1.3
Programación modular
1.4
Programación estructurada
2. Estructuras básicas de control 2.1. Estructuras secuenciales 2.2. Estructuras selectivas 2.3. Estructuras repetitivas. 3. Análisis reflexivo por tema y sus ejemplos. 4. Conclusión 5. Bibliografía.
Introducción:
Se pueden utilizar muchos lenguajes para programar una computadora. Básico es el lenguaje de máquina, el cual contiene una colección de instrucciones muy detallada que controla a lo interno de la máquina. Este es el dialecto natural de la máquina. Muy pocos programas se escriben actualmente en lenguaje de maquina por dos razones importantes: primero, porque el lenguaje de maquina es muy incómodo para trabajar y segundo porque la mayoría de las maquinas se pide programar en diversos tipos de lenguajes, que son lenguajes de alto nivel, cuyas instrucciones son más compatibles con los lenguajes y la forma de pensar humanos como lo es el lenguaje c que además es de propósito general. Debido a que los programas diseñados en este lenguaje se pueden ejecutar en cualquier máquina. A continuación veremos muchos aspectos de la programación en sí, desde los conceptos básicos, modelos de programar, sus estructuras de la asignación dada.
1. Aspectos generales de programación
Es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones. Del proceso de programación surge lo que comúnmente se conoce como software (conjunto de programas), aunque estrictamente esta última abarca mucho más que sólo la programación. 1.1
Conceptos básicos
Lenguaje Máquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 o 1). Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas. Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en inglés), lo que facilita la escritura y comprensión del programa.
1.2
Modelos de programación: Los programas que el procesador puede ejecutar deben de estar en el lenguaje nativo de ese procesador. Es decir, cada instrucción debe estar en código binario y directamente relacionado con los circuitos del procesador. Expresar instrucciones completamente en un código binario es un proceso demasiado lento y difícil y sujeto a errores, aún para los programadores más hábiles y experimentados. Los lenguajes de programación han sido diseñados para poder escribir instrucciones parecidas a un lenguaje humano (generalmente es el inglés) que las computadoras pueden convertir en código binario a través de los denominados compiladores.
Niveles de Lenguaje: Los programadores clasifican los lenguajes de programación de acuerdo con su legibilidad. Los lenguajes de bajo nivel son muy difíciles de entender, y requiere que los programadores codifiquen las instrucciones con gran detalle al lenguaje nativo de la máquina. Los lenguajes de alto nivel utilizan enunciados parecidos al inglés el cual los novatos pueden dominar con gran rapidez. Un compilador traduce las instrucciones de un lenguaje de programación de alto nivel a código binario en forma similar a la de un traductor bilingüe Algunos ejemplos de lenguajes de programación de alto nivel más populares FORTRAN: (Abreviación de Formula TRANslator *Traductor de fórmula*) Este es el más antiguo de los sobrevivientes entre los lenguajes de alto nivel. Originalmente fue diseñado para resolver problemas científicos, matemáticos y de ingeniería que requerían cálculos numéricos repetitivos y fórmulas
complejas. Pronto se difundió por su eficiencia, rapidez y utilización de memoria. También ofrecía una librería de subrutinas reprogramadas que los usuarios incorporaban en sus programas. Mucha gente especialista todavía lo utiliza. COBOL: (COmmon Business Oriented Lenguaje *Lenguaje común orientado a los negocios*) Este lenguaje fue desarrollado para resolver los problemas en los negocios. Los lenguajes que existían (maquina) Ensamblador y FORTRAN no eran adecuados para las aplicaciones de los negocios. Un esfuerzo común entre negocios, profesionistas y empresas hicieran lograr la aparición de COBOL en 1960. Actualmente 2/3 partes de los que utilizan mainframe lo usan. BASIC: (Beginner's All-purpose Symbolic Instruction Code *Código de instrucción por símbolos para todo propósito y para principiantes*) Desarrollado en 1964 como un lenguaje simple y fácil de aprender que opera en un ambiente interactivo. De manera que se puede estar programando al mismo tiempo que ejecutas el programa para así interactuar con el sistema, así los errores pueden descubrirse más fácilmente. BASIC se convirtió en un estándar para los estudiantes de computación básica. LENGUAJE C: Este lenguaje fue desarrollado en los laboratorios AT&Ts Bell a principios de la década de 1970. Originalmente fue elaborado para escribir sistemas operativos y UNIX esta hecho casi totalmente en C. Los Programas escritos en C son transportables. Mucho del software comercial está elaborado en C. tiene las ventajas del lenguaje ensamblador, pero sin tantas dificultades. LISP: Este lenguaje fue desarrollad en 1958 en MIT. Se utiliza para construir programas de inteligencia artificial, antes era un lenguaje de científicos y teóricos. Este lenguaje se basa sobre la premisa de que las deducciones lógicas
pueden ser representadas y manipuladas utilizando listas. LISP actualmente se utiliza en sistemas expertos y programas de lenguaje natural. PROLOG: Éste es otro lenguaje de programación utilizado con propósito de inteligencia artificial. Este lenguaje no está basado en los procedimientos. Según los japoneses este es el lenguaje adecuado para la quinta generación de computadoras
1.3
Programación modular
Se basa en la descomposición del problema en problemas más simples (módulos) que se pueden analizar, programar y depurar independientemente. Un módulo es Un conjunto de instrucciones que realizan una tarea concreta y/o proporcionan unos determinados resultados, y que puede ser llamada (invocada) desde el programa principal o desde otros módulos Módulo, subprograma o función son sinónimos En C, los llamamos funciones. Ventajas de la programación modular: Programas más estructurados y legibles. Programas más cortos y simples, debido a la división del problema complejo en partes Los subprogramas son independientes Se pueden escribir, compilar y probar de forma independiente, por lo que en un programa de gran tamaño pueden trabajar distintos programadores. Se puede modificar un subprograma sin afectar al resto de del programa, por lo que se pueden realizar cambios en un módulo sin que sea necesario modificar (ni volver a probar) el resto
Los subprogramas son reutilizables. Los módulos pueden ser utilizados en distintos programas que hagan uso de la misma funcionalidad.
1.4
Programación estructurada:
Técnica de construcción de programas que utilizan al máximo los recursos del lenguaje, limita el conjunto de estructuras aplicables a leer y presenta una serie de reglas que coordinan adecuadamente el desarrollo de las diferentes fases de la programación. Estructuras básicas de control. Recursos abstractos Diseño descendente La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando
innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini,1 y una famosa carta, «La sentencia goto considerada perjudicial», de Edsger Dijkstra en 19682 — y fue reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control. Ventajas de la programación estructurada comparada con el modelo anterior (hoy llamado despectivamente código espagueti).
Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay necesidad de hacer engorrosos seguimientos en saltos de líneas (GOTO) dentro de los bloques de código para intentar entender la lógica.
La estructura de los programas es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí.
Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o errores del programa (debugging) se facilita debido a su estructura más sencilla y comprensible, por lo que los errores se pueden detectar y corregir más fácilmente.
Reducción de los costos de mantenimiento. Análogamente a la depuración, durante la fase de mantenimiento, modificar o extender los programas resulta más fácil.
Los programas son más sencillos y más rápidos de confeccionar.
Se incrementa el rendimiento de los programadores.
2. Estructuras básicas de control 2.1. Estructuras secuenciales La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.
En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:
2.2 Estructuras selectivas La estructura lógicas selectivas se encuentran en la solución algorítmica de casi todo tipo de problemas. Las utilizamos cuando en el desarrollo de la solución de un problema debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir. Esta toma de decisión (expresada con un rombo) se basa en la evaluación de una o más condiciones que nos señalarán como alternativa o consecuencia, la rama a seguir. Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir se toma una decisión, se marca la rama correspondiente a seguir, se vuelve a tomar una decisión y así sucesivamente. Por lo que para alcanzar la
solución de este problema o subproblema debemos aplicar prácticamente un árbol de decisión. Las podemos clasificar en: 1. SI ENTONCES (Estructura selectiva simple) 2. SI ENTONCES / SINO (Estructura selectiva doble) 3. SI MULTIPE (Estructura selectiva múltiple)
2.3. Estructuras repetitivas. Las estructuras repetitivas se utilizan cuando se quiere que un conjunto de instrucciones se ejecuten un cierto número finito de veces, por ejemplo, escribir algo en pantalla cierta cantidad de veces, mover un objeto de un punto a otro cierta cantidad de pasos, o hacer una operación matemática cierta cantidad de veces. Se les llama bucle o ciclo a todo proceso que se repite cierto número de veces dentro de un pseudocódigo o un programa y las estructuras repetitivas nos permiten hacerlo de forma sencilla. hablaremos de la estructura FOR: Esta estructura se compone de tres expresiones. La primera expresión es aquella que asigna un valor inicial (acción a ejecutar), la segunda expresión es la que determina como y cuando se continúa o no el bucle, una condición que debe ser satisfecha para que se continúe la ejecución (expresión lógica), y la tercera expresión permite que el valor inicial (índice) se modifique en cada pasada.
3. Análisis reflexivo por tema y sus ejemplos:
Dentro de los temas dados en este cuatrimestre observamos las distintas forma de codificar en el programa C y C++, siendo un programa en el cual podemos realizar distintos tipos de programas evaluando la situación que se nos presente, debemos tener en cuenta cual es el propósito de iniciar a la confección y ejecución de dicho programa. Modelos de programación: En resumen los lenguajes de programación facilitan la programación de la computadora. Estos lenguajes de programación son usados para hacer hojas de cálculo, procesadores de texto que sirven como herramientas (software) en la computadora. Programación modular Es uno de los más estructurados, legibles, cortos y simples, debido a la división del problema complejo en partes. Tomando en cuenta que los subprogramas son independientes, y Se pueden escribir, compilar y probar de forma independiente, por lo que en un programa de gran tamaño pueden trabajar distintos programadores. Además podemos modificar un subprograma sin afectar al resto de del programa, por lo que se pueden realizar cambios en un módulo sin que sea necesario modificar (ni volver a probar) el resto. Programación estructurada: Esta orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while).
Estructuras secuenciales: Como su nombre lo dice de tal modo que la salida de una es la entrada de la siguiente y asĂ sucesivamente hasta el fin del proceso. Estructuras selectivas: Las estructuras repetitivas permiten ejecutar acciones que pueden descomponerse en otras acciones primitivas, esta estructura debe tener una entrada y una salida en la cual se ejecute la acciĂłn un determinado o indeterminado nĂşmero de veces. Las estructuras repetitivas pueden ser: WHILE (mientras), FOR (para), DO WHILE (hacer mientras).
Ejemplos
ESTRUCTURA SELECTIVA SI ENTONCES /SINO
ESTRUCTURA SELECTIVAS ANIDADAS.
ESTRUCTURA SI MÚLTIPLE
FOR (PARA) Esta estructura ejecuta las acciones del cuerpo del bucle un número especificado de veces, y de modo automático controla el número de iteraciones o pasos.
WHILE (MIENTRAS) Repite el cuerpo del bucle mientras se cumpla una determinada condición.
4. Conclusión
Como puede verse, existe lenguaje específico de cada tarea diferente. Muchos de ellos (Lenguajes de Programación) ya no se usan, mientras que las nociones de otros han sido incorporadas a otros lenguajes Los lenguajes y las Técnicas de Programación son importantes para la utilización de la computadora como una herramienta para resolver problemas. En computación, un Problema consiste en la necesidad de transformar un grupo de datos iniciales en un grupo diferente de datos finales (resultados). De este modo, una computadora podrá resolver un problema si alguien desarrolla un programa que contenga las instrucciones adecuadas que permitan transformar los datos. Los lenguajes deben ser confiables, comprensibles, eficientes en términos de tiempo de ejecución y consumo de espacio, y deben satisfacer las necesidades de una comunidad, ya sean científicos, hombres de negocios o usuarios no técnicos. Cada uno estos grupos están acostumbrados a un vocabulario particular y una manera de ver las cosas; de este modo, existe una gran variedad de lenguajes y muy probablemente esto continuará siendo así...
5. Bibliografía: APPLEBY, Doris LENGUAJES DE PROGRAMACIÓN. Paradigma y Práctica. Tr. De Efrén A. Miguel. México, Ed. INTEREMERICANA McGraw-Hill, 1998 (c 1997). AULA Curso de orientación escolar INFORMATICA. . España, Madrid, Ed. CULTURAL, 1995. 493p. JOYANES, Aguilar. PROGRAMACION EN TURBO PASCAL. Versiones 5.5, 6.0 y 7.0. 2da. Edición. México, D.F., Ed. INTERAMERICANA McGraw-Hill, (c. 1993). 914p. Programación estructurada II (1. ª Edición). Enseñanza Técnica y Sistemas, S.A. 2000. ISBN 978-84-85838-90-5. Documentación dada por la profesora Oderaida Peña