Módulo Programación: Elementos de un Programa Informático PDF
Document Details
Uploaded by RapturousTroll
Tags
Summary
Este documento proporciona una introducción a los conceptos fundamentales de la programación, incluyendo la resolución de problemas, algoritmos y diagramas de flujo. Se presentan diferentes tipos de instrucciones y sus elementos auxiliares, como contadores y acumuladores.
Full Transcript
TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA MÓDULO PROGRAMACIÓN TEMA 1 ELEMENTOS DE UN PROGRAMA INFORMÁTICO 1. Introducción 2. Programas y ÍNDICE programación 3. Fases de la programación 4. Ciclo de vi...
TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA MÓDULO PROGRAMACIÓN TEMA 1 ELEMENTOS DE UN PROGRAMA INFORMÁTICO 1. Introducción 2. Programas y ÍNDICE programación 3. Fases de la programación 4. Ciclo de vida del software 5. Lenguajes de programación 6. Estructuras básicas de datos 7. El pseudocódigo 8. DFDs Introducción ¿Cuántas acciones de las que has realizado hoy, crees que están relacionadas con la programación? Hagamos un repaso de los primeros instantes del día: te ha despertado la alarma de tu teléfono móvil o radiodespertador, has preparado el desayuno utilizando el microondas, mientras desayunabas has visto u oído las últimas noticias a través de tu receptor de televisión digital terrestre, te has vestido y puede que hayas utilizado el ascensor para bajar al portal y salir a la calle, etc. Quizá no es necesario que continuemos más para darnos cuenta de que casi todo lo que nos rodea, en alguna medida, está relacionado con la programación, los programas y el tratamiento de algún tipo de información. Programación 3 1. Introducción 2. Programas y programación 3. Fases de la programación 4. Ciclo de vida del software 5. Lenguajes de programación 6. Estructuras básicas de datos 7. El pseudocódigo 8. DFDs Buscando una solución Programación 5 Algoritmos y programas Después de analizar en detalle el problema a solucionar, hemos de diseñar y desarrollar el algoritmo adecuado. Pero, ¿Qué es un algoritmo? Algoritmo: secuencia ordenada de pasos, descrita sin ambigüedades, que conducen a la solución de un problema dado. Los algoritmos son independientes de los lenguajes de programación y de las computadoras donde se ejecutan. Programación 6 Algoritmos y programas La diferencia fundamental entre algoritmo y programa es que, en el segundo, los pasos que permiten resolver el problema, deben escribirse en un determinado lenguaje de programación para que puedan ser ejecutados en el ordenador y así obtener la solución. Los lenguajes de programación son sólo un medio para expresar el algoritmo y el ordenador un procesador para ejecutarlo. El diseño de los algoritmos será una tarea que necesitará de la creatividad y conocimientos de las técnicas de programación. Programación 7 Algoritmos y programas Pero cuando los problemas son complejos, es necesario descomponer éstos en subproblemas más simples y, a su vez, en otros más pequeños. Estas estrategias reciben el nombre de diseño descendente o diseño modular (top-down). Este sistema se basa en el lema divide y vencerás. Programación 8 Algoritmos y programas Para representar gráficamente los algoritmos que vamos a diseñar, tenemos a nuestra disposición diferentes herramientas que ayudarán a describir su comportamiento de una forma precisa y genérica, para luego poder codificarlos con el lenguaje que nos interese. Entre otras tenemos: Diagramas de flujo: Esta técnica utiliza símbolos gráficos para la representación del algoritmo. Suele utilizarse en las fases de análisis. Pseudocódigo: Esta técnica se basa en el uso de palabras clave en lenguaje natural, constantes, variables, otros objetos, instrucciones y estructuras de programación que expresan de forma escrita la solución del problema. Es la técnica más utilizada actualmente. Tablas de decisión: En una tabla son representadas las posibles condiciones del problema con sus respectivas acciones. Suele ser una técnica de apoyo al pseudocódigo cuando existen situaciones condicionales complejas. Programación 9 1. Introducción 2. Programas y programación 3. Fases de la programación 4. Ciclo de vida del software 5. Lenguajes de programación 6. Estructuras básicas de datos 7. El pseudocódigo 8. DFDs Fases de la programación Sea cual sea el estilo que escojamos a la hora de automatizar una determinada tarea, debemos realizar el proceso aplicando un método a nuestro trabajo. Es decir, sabemos que vamos a dar solución a un problema, aplicando una filosofía de desarrollo y lo haremos dando una serie de pasos que deben estar bien definidos. El proceso de creación de software puede dividirse en diferentes fases: 1. Fase de resolución del problema. 2. Fase de implementación. 3. Fase de explotación y mantenimiento. A continuación, analizaremos cada una de ellas. Programación 11 1. Resolución del problema a) Análisis El análisis inicial ofrecerá una idea general de lo que se solicita, realizando posteriormente sucesivos refinamientos que servirán para dar respuesta a las siguientes cuestiones: ¿Cuál es la información que ofrecerá la resolución del problema? ¿Qué datos son necesarios para resolver el problema? La respuesta a la primera pregunta se identifica con los resultados deseados o las salidas del problema. La respuesta a la segunda pregunta indicará qué datos se proporcionan o las entradas del problema. b) Diseño En esta etapa se convierte la especificación realizada en la fase de análisis en un diseño más detallado, indicando el comportamiento o la secuencia lógica de instrucciones capaz de resolver el problema planteado. Estos pasos sucesivos, que indican las instrucciones a ejecutar por la máquina, constituyen lo que conocemos como algoritmo. Programación 12 2. Implementación Dentro de la fase de implementación, distinguimos otras dos subfases: a) Codificación o construcción b) Prueba de ejecución y validación Programación 13 2. Implementación a) Codificación o construcción Esta etapa consiste en transformar o traducir los resultados obtenidos a un determinado lenguaje de programación. Para comprobar la calidad y estabilidad de la aplicación se han de realizar una serie de pruebas que comprueben las funciones de cada módulo (pruebas unitarias), que los módulos funcionan bien entre ellos (pruebas de interconexión) y que todos funcionan en conjunto correctamente (pruebas de integración). Cuando realizamos la traducción del algoritmo al lenguaje de programación debemos tener en cuenta las reglas gramaticales y la sintaxis de dicho lenguaje. Programación 14 2. Implementación Pero para que nuestro programa comience a funcionar, antes debe ser traducido a un lenguaje que la máquina entienda. Este proceso de traducción puede hacerse de dos formas, compilando o interpretando el código del programa. Compilación: Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje que la máquina es capaz de interpretar. Compilador: programa informático que realiza la traducción. Recibe el código fuente, realiza un análisis lexicográfico, semántico y sintáctico, genera un código intermedio no optimizado, optimiza dicho código y finalmente, genera el código objeto para una plataforma específica. Intérprete: programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción. Una vez traducido, sea a través de un proceso de compilación o de interpretación, el programa podrá ser ejecutado. Programación 15 2. Implementación b) Prueba de ejecución y validación Para esta etapa es necesario implantar la aplicación en el sistema donde va a funcionar, debe ponerse en marcha y comprobar si su funcionamiento es correcto. Programación 16 3. Explotación Cuando el programa ya está instalado en el sistema y está siendo de utilidad para los usuarios, decimos que se encuentra en fase de explotación. Periódicamente será necesario realizar evaluaciones y, si es necesario, llevar a cabo modificaciones para que el programa se adapte o actualice a nuevas necesidades, pudiendo también corregirse errores no detectados anteriormente. Este proceso recibe el nombre de mantenimiento del software. Mantenimiento del software: es el proceso de mejora y optimización del software después de su entrega al usuario final. Involucra cambios al software en orden de corregir defectos y dependencias encontradas durante su uso, así como la adición de nuevas funcionalidades para mejorar la usabilidad y aplicabilidad del software. Programación 17 1. Introducción 2. Programas y programación 3. Fases de la programación 4. Ciclo de vida del software 5. Lenguajes de programación 6. Estructuras básicas de datos 7. El pseudocódigo 8. DFDs Ciclo de vida del software Sean cuales sean las fases en las que realicemos el proceso de desarrollo de software, y casi independientemente de él, siempre se debe aplicar un modelo de ciclo de vida. Ciclo de vida del software: es una sucesión de estados o fases por las cuales pasa un software a lo largo de su "vida". El proceso de desarrollo puede involucrar siempre las siguientes etapas mínimas: Especificación y Análisis de requisitos. Diseño. Codificación. Pruebas. Instalación y paso a Producción. Mantenimiento. Programación 19 Ciclo de vida del software Programación 20 Tipos de modelos de ciclos de vida del software Los tipos de modelos de ciclos de vida del software son los siguientes: 1. Modelo en cascada. 2. Modelo en espiral. 3. Modelo iterativo o por prototipo. 4. Modelo ágil. 1. Scrum. 2. Kanban. 3. XP o Extreme Programming. Programación 21 1. Modelo en Cascada Una de las metodologías más antiguas en lo que es el ciclo de vida de un modelo informático, es el modelo de cascada. Esta metodología es lineal y consta de algunas fases que hay que seguir y completar para poder avanzar a la fase siguiente. No es precisamente la mejor metodología, pero si se utiliza de forma correcta los resultados pueden ser muy buenos. Esta compuesta por las siguientes fases: 1. Requerimientos 2. Diseño 3. Implementación y Desarrollo 4. Integración 5. Pruebas o Validación 6. Despliegue o Instalación 7. Mantenimiento Programación 22 1. Modelo en Espiral El modelo de ciclo de vida en espiral, consiste en realizar diversas iteraciones, pasando por cada una de sus fases una y otra ves. A diferencia del modelo cascada que no tiene vuelta atrás, en el modelo en espiral se pueden hacer las iteraciones que se consideren necesarias y estas son sus fases principales: 1. Determinación de Objetivos 2. Análisis de riesgos 3. Desarrollo y Pruebas 4. Planificación Programación 23 1. Modelo Iterativo o Por Prototipo Es uno de los primeros ciclos de vida que permitían que el código fuente fuera reutilizable, sin embargo con el modelo iterativo no solo es utilizable, si no que para muchos, estos prototipos pueden llegar a ser el producto final que siempre quisieron, lo cual lo hace realmente relevante y destacable, por encima del resto de los modelos de antaño que puedas encontrar. Básicamente, las fases del ciclo de vida del sistema, son las siguientes: 1. Inicialización 2. Iteración 3. Lista de Control Una de las principales ventajas del modelo iterativo, es que la retroalimentación a los usuarios se proporciona desde muy temprano, haciendo que adentrarse en el proyecto sea demasiado sencillo. Programación 24 1. Modelo Ágil Estos procesos se caracterizan por estar basados en las etapas del ciclo de vida del software tradicionales, pero combinándolas con algunas técnicas y siendo aún mas solapadoras en cuando al orden que se deben ejecutar. Programación 25 Scrum El ciclo de vida del sistema, puede agilizarse si se utiliza la metodología Scrum, uno de los modelos del ciclo de vida del desarrollo del software más populares y mas recientes. El modelo Scrum, se encuentra basado en lo que es el desarrollo incremental, es decir, conforme pasen las fases y las iteraciones. Los procesos que el modelo Scrum utiliza: 1. Product Backlog 2. Sprint Backlog 3. Sprint Planning Meeting 4. Daily Scrum o Stand-up Meeting 5. Sprint Review 6. Sprint Retrospective Programación 26 Kanban El modelo Kanban, es uno de los modelos más visuales de las metodologías ágiles. Consiste en la creación de un tablero con etiquetas, donde se seccionan cada una de las fases de su desarrollo, además se clasifica de acuerdo a los equipos de trabajo y se les asignan objetivos a corto, mediano y largo plazo. Programación 27 XP o Extreme Programming Los valores que componen al modelo de programación extrema, son los siguientes: 1. Comunicación 2. Simplicidad 3. Retroalimentación 4. Valentía 5. Respeto La retroalimentación es vital, más cuando los equipos de trabajo deben ser de dos personas, siempre es bueno aprender cosas nuevas de nuestro compañero de trabajo y esto seguramente todos lo hemos vivido alguna ves. En la metodología de programación extrema, el cliente se encuentra involucrado en el proceso de desarrollo, lo que hace que al final el producto pueda estar terminado en un menor tiempo, pues evitamos muchas perdidas de tiempo, elaborando cosas que no son y que en la revisión al cliente no le agradarán. Programación 28 1. Introducción 2. Programas y programación 3. Fases de la programación 4. Ciclo de vida del software 5. Lenguajes de programación 6. Estructuras básicas de datos 7. El pseudocódigo 8. DFDs Lenguajes de programación Lenguaje de programación: Conjunto de reglas sintácticas y semánticas, símbolos y palabras especiales establecidas para la construcción de programas. Es un lenguaje artificial, una construcción mental del ser humano para expresa programas. Los lenguajes de programación pueden ser clasificados en función de lo cerca que estén del lenguaje humano o del lenguaje de los computadores. El lenguaje de los computadores son códigos binarios, es decir, secuencias de unos y ceros. Detallaremos seguidamente las características principales de los lenguajes de programación. Programación 30 Lenguaje Máquina Este es el lenguaje utilizado directamente por el procesador, consta de un conjunto de instrucciones codificadas en binario. Es el sistema de códigos directamente interpretable por un circuito microprogramable. Este fue el primer lenguaje utilizado para la programación de computadores. De hecho, cada máquina tenía su propio conjunto de instrucciones codificadas en ceros y unos. Cuando un algoritmo está escrito en este tipo de lenguaje, decimos que está en código máquina. Programación 31 Lenguaje Ensamblador La evolución del lenguaje máquina fue el lenguaje ensamblador. Las instrucciones ya no son secuencias binarias, se sustituyen por códigos de operación que describen una operación elemental del procesador. Es un lenguaje de bajo nivel, al igual que el lenguaje máquina, ya que dependen directamente del hardware donde son ejecutados. Mnemotécnico: son palabras especiales, que sustituyen largas secuencias de ceros y unos, utilizadas para referirse a diferentes operaciones disponibles en el juego de instrucciones que soporta cada máquina en particular. Programación 32 Lenguaje Ensamblador En ensamblador, cada instrucción (mnemotécnico) se corresponde a una instrucción del procesador. En la siguiente tabla se muestran algunos ejemplos. Programación 33 Lenguajes Compilados Para paliar los problemas derivados del uso del lenguaje ensamblador y con el objetivo de acercar la programación hacia el uso de un lenguaje más cercano al humano que al del computador, nacieron los lenguajes compilados. Algunos ejemplos de este tipo de lenguajes son: Pascal, Fortran, Algol, C, C++, etc. Al ser lenguajes más cercanos al humano, también se les denomina lenguajes de alto nivel. Son más fáciles de utilizar y comprender, las instrucciones que forman parte de estos lenguajes utilizan palabras y signos reconocibles por el programador. Programación 34 ¿Cuáles son sus ventajas? Son mucho más fáciles de aprender y de utilizar que sus predecesores. Se reduce el tiempo para desarrollar programas, así como los costes. Son independientes del hardware, los programas pueden ejecutarse en diferentes tipos de máquina. La lectura, interpretación y modificación de los programas es mucho más sencilla. Compilador: Es un programa cuya función consiste en traducir el código fuente de un programa escrito en un lenguaje de alto nivel a lenguaje máquina. Al proceso de traducción se le conoce con el nombre de compilación. Programación 35 Lenguajes Interpretados Se caracterizan por estar diseñados para que su ejecución se realice a través de un intérprete. Cada instrucción escrita en un lenguaje interpretado se analiza, traduce y ejecuta tras haber sido verificada. Una vez realizado el proceso por el intérprete, la instrucción se ejecuta, pero no se guarda en memoria. Ejemplos de lenguajes interpretados son: Perl, PHP, Python, JavaScript, etc. A medio camino entre los lenguajes compilados y los interpretados, existen los lenguajes Intérprete: Es un programa traductor de un lenguaje de alto nivel en el que el proceso de traducción y de ejecución se llevan a cabo simultáneamente, es decir, la instrucción se pasa a lenguaje máquina y se ejecuta directamente. No se genera programa objeto, ni programa ejecutable. Programación 36 1. Introducción 2. Programas y programación 3. Fases de la programación 4. Ciclo de vida del software 5. Lenguajes de programación 6. Estructuras básicas de datos 7. El pseudocódigo 8. DFDs Estructura básica de datos Son elementos de un programa todos los datos y resultados manipulados por las instrucciones de un programa. Tienen tres atributos: Nombre: con el que se identifica. Tipo: conjunto de valores que puede tomar. Valor: elemento del tipo que se le asigna en un determinado momento. Ejemplo: Nombre: sueldo Tipo: real Valor: 70000.45 Programación 38 Identificadores Son palabras creadas por el programador para dar nombre a los elementos que necesita declarar en un programa. Existen unas normas generales para su empleo: Pueden estar constituidos por letras, dígitos y el carácter subrayado (_), aunque algunas herramientas permiten otros caracteres especiales. Deben comenzar por una letra y en algunos compiladores también por (_). No deben tener espacios en blanco. El número máximo de caracteres que se pueden emplear depende del compilador utilizado. El nombre asignado conviene que tenga relación con la información que contiene, pudiéndose emplear abreviaturas que sean significativas. Aparte de estas normas de obligado cumplimiento, el sentido común nos indica que el identificador de una variable debe indicar o reflejar de alguna forma el contenido de la misma. Programación 39 Datos. Tipos Un dato puede ser un carácter leído desde teclado, un número, la información almacenada en un CD, una foto almacenada en un fichero, una canción, el nombre de un alumno almacenado en la memoria del ordenador, etc. Los tipos básicos de datos que incluyen la mayoría de los lenguajes de programación, (aunque con diferencias significativas entre unos y otros) son: Numéricos. No numéricos: Carácter, Lógicos. Estructurados. Por ejemplo, la edad de un trabajador la podremos representar con un tipo básico, concretamente un tipo entero, ya que la edad es un valor numérico positivo y sin decimales (que es justo lo que define el tipo entero, como se verá más adelante). Programación 40 Datos Numéricos Se utilizan para contener magnitudes y se clasifican en enteros y reales: Enteros: se emplean para representar números enteros cuyo rango o tamaño dependen del lenguaje y del ordenador utilizado. Reales: se emplea para representar los números con parte decimal o los números muy grandes o muy pequeños que no pueden ser contenidos en un entero. Se pueden representar de dos formas: Punto decimal: emplea los dígitos del 0 al 9 con su signo correspondiente y un punto para separar la parte entera de la decimal. Científica o exponencial. Programación 41 Datos no numéricos Carácter: Se emplea para representar un símbolo dentro de un código definido por el fabricante del ordenador, de tal forma que cada uno de ellos se corresponde con un número entero sin signo según un determinado código. Lógico: se emplea para representar dos valores opuestos, Verdadero o Falso, True o False, SI o NO, V o F, 1 ó 0. Internamente se considera 1 como verdadero y 0 como falso. Programación 42 Constantes Son datos cuyo valor no cambia durante la ejecución del programa. Las constantes pueden ser: Enteras Reales Alfanuméricas o cadena de caracteres. (Su valor se indica entre comilla simple ' o doble "). Programación 43 Variables Son datos cuya información puede ser variable durante la ejecución del programa. Estos datos deben ser definidos con un identificador y un tipo de dato. El identificador es elegido por el programador y permite referenciar la variable para su uso en el programa pudiéndose modificar su valor. El tipo de dato permite determinar el tamaño de la variable en memoria. Según el tipo de dato que almacenan las variables pueden ser: Numéricas: nombre-variable = valor Alfanuméricas: nombre-variable = ‘comentario’ Lógicas: nombre-variable = valor lógico Programación 44 Expresiones Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones existentes. Por tanto una expresión es un conjunto de datos (operándos) y operadores, con unas reglas especificas de construcción. Según sea el resultado que producen y los operadores que utilizan se clasifican en: Numéricas: son las que producen resultados de tipo numérico. Se construyen mediante operadores aritméticos. Alfanuméricos: son las que producen resultados alfanuméricos. Se construyen mediante operadores alfanuméricos. Lógicas: son las que producen resultados verdadero o falso. Se construyen mediante los operadores lógicos y/o relaciónales. Programación 45 Funciones Las operaciones que se requieren en los programas exigen en numerosas ocasiones, además de las operaciones aritméticas básicas, un número determinado de operadores espaciales que se denominan “funciones internas”, incorporadas o estándar. Cada lenguaje de programación tiene sus propias funciones, entre las comunes y más utilizadas están las siguientes: sqrt(x) raíz cuadrada de un número positivo abs(x) valor absoluto cos(x) coseno sin(x) seno Programación 46 Operadores Los operadores son símbolos que sirven para conectar los datos haciendo diversas clases de operaciones. En función de las operaciones a realizar los operadores se clasifican en: Los operadores aritméticos. Los operadores relacionales. Programación 47 Operadores Los operadores aritméticos son aquellos operados que combinados con los operandos forman expresiones matemáticas o aritméticas. Programación 48 Operadores Los operadores relacionales se utilizan para comparar datos de tipo primitivo (numérico, carácter y booleano). El resultado se utilizará en otras expresiones o sentencias, que ejecutarán una acción u otra en función de si se cumple o no la relación. Programación 49 Orden de precedencia Dentro de las expresiones hay que tener un orden de prioridad de los operadores, que depende del lenguaje de programación utilizado, pero que de forma general se puede establecer de mayor a menor prioridad de la siguiente forma: Programación 50 Tablas de verdad En las operaciones lógicas se determina su resultado por medio de las tablas de la verdad: V: verdadero F: falso Programación 51 1. Introducción 2. Programas y programación 3. Fases de la programación 4. Ciclo de vida del software 5. Lenguajes de programación 6. Estructuras básicas de datos 7. El pseudocódigo 8. DFDs El pseudocódigo Para la representación de un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Esto permitirá que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Nosotros utilizaremos el pseudocódigo. Pseudocódigo es una técnica utilizada para la descripción de un algoritmo utilizando un lenguaje intermedio entre el lenguaje natural y el lenguaje de programación. Programación 53 El pseudocodigo La escritura o diseño de un algoritmo mediante pseudocódigo, exige la “indentación” o “sangría” del texto en el margen izquierdo de las diferentes líneas, lo que facilita el entendimiento y comprensión del diseño realizado. Todo algoritmo representado en pseudocódigo deberá reflejar las siguientes partes: Cabecera: Es el área o bloque informativo donde quedará reflejado el nombre del programa. Cuerpo: Es el resto del diseño, el cual queda dividido en dos bloques, el bloque de datos, donde deberán quedar descritos todos los elementos de trabajo necesarios para la ejecución del programa (Entorno), y el bloque de acciones que es la zona en la que se deben describir con máxima claridad y detalle todas aquellas acciones que el ordenador deberá realizar durante la ejecución del programa(Algoritmo). En el algoritmo se suelen considerar tres partes: Entrada: Información dada al algoritmo. Proceso: Operaciones o cálculos necesarios para encontrar la solución del problema. Salida: Respuestas dadas por el algoritmo o resultados finales de los cálculos. Programación 54 Tipos de Instrucciones Las instrucciones disponibles en un lenguaje de programación dependen del tipo de lenguaje. Hay una serie de instrucciones llamadas instrucciones básicas que se utilizan de modo general en un algoritmo y que esencialmente soportan todos los lenguajes. Estas instrucciones básicas se clasifican en: Instrucciones de definición de datos. Son aquellas instrucciones utilizadas para informar al procesador del espacio que debe reservar en memoria con la finalidad de almacenar un dato mediante el uso de variables simples o estructuras más complejas.La definición consiste en indicar un nombre a través del cual haremos referencia a un dato y un tipo a través del cual informaremos al procesador de las características y espacio que deberá reservar la memoria. Instrucciones primitivas. Son aquellas que ejecuta el ordenador de modo inmediato, ya que no dependen de otra cosa que de su propia aparición en el programa. Pueden ser: de entrada, de asignación y de salida. Instrucciones compuestas. Son aquellas instrucciones que no pueden ser ejecutadas directamente por el procesador, y están constituidas por un bloque de acciones agrupadas en subrutinas, subprogramas, funciones o módulos. Instrucciones de control. Son instrucciones que controlan el flujo de ejecución de otras instrucciones. Programación 55 Instrucciones primitivas Sentencias de entrada. Son aquellas instrucciones encargadas de recoger datos de uno o varios dispositivos de entrada y almacenarlos en la memoria central en las variables que aparecen en la propia instrucción y que previamente han sido definidas. Programación 56 Instrucciones primitivas Sentencias de salida. Son aquellas instrucciones encargadas de recoger los datos procedentes de variables (previamente definidas) a los resultados obtenidos de una expresión evaluada y depositarlos en un periférico o dispositivo de salida. Programación 57 Instrucciones primitivas Sentencias de asignación. Son instrucciones que se utilizan para asignar valores a variables, o cambiar el valor almacenado en una variable obtenido de la evaluación de una expresión. Programación 58 Instrucciones primitivas La operación de asignación es destructiva ya que al almacenarse un nuevo valor en la variable se borra el que tenia antes. Es posible utilizar el mismo nombre de variable en ambos lados del operador de asignación. Programación 59 Instrucciones alternativas Simples: controlan la ejecución de un conjunto de instrucciones por el cumplimiento o no de una condición. Si la condición se cumple se ejecuta el grupo de instrucciones y si no se cumple no se ejecuta nada. Programación 60 Instrucciones alternativas Dobles: controla la ejecución de dos conjuntos de instrucciones dependiendo del cumplimiento o no de una condición. Si se cumple se ejecutan unas instrucciones y si no se cumplen se ejecutan otras. Programación 61 Instrucciones alternativas Múltiples: controla la ejecución de varios conjuntos de instrucciones, por el valor de una expresión, de forma que cada conjunto de instrucciones está ligado a un posible valor de dicha expresión. Se ejecutará el conjunto de instrucciones que se encuentra relacionado con el valor que resulte de evaluar la expresión. Las distintas opciones tienen que ser disjuntas, es decir, solo pueden ejecutarse un conjunto de instrucciones a la vez. Programación 62 Instrucciones repetitivas Controlan la ejecución repetitiva de un conjunto de instrucciones mediante una condición que determina el número de veces que se ha de repetir esta ejecución. El valor de la condición tiene que estar afectado por la ejecución de las instrucciones para asegurar la terminación de esta repetición. Existen varios tipos de estructuras repetitivas: Estructura mientras: controla la ejecución de un conjunto de instrucciones de tal forma que estas se ejecutan mientras se cumpla la condición, que será evaluada siempre antes de cada repetición. Puede que las instrucciones no se ejecuten nunca. Programación 63 Instrucciones repetitivas Estructura repetir: controla la ejecución de un conjunto de instrucciones, de tal forma que estas se ejecutan mientras que se cumpla la condición que será evaluada siempre después de cada repetición. Programación 64 Instrucciones repetitivas Estructura para: controla la ejecución de un conjunto de instrucciones, de tal forma que estas se ejecutan un número determinado de veces que se conoce de antemano. Esta estructura lleva asociada una variable que actúa como contador. El contador parte de un valor inicial y se irá incrementando en cada repetición hasta llegar al valor final que es cuando se detiene la ejecución. A este contador se le llama variable de control Programación 65 Elementos auxiliares Los elementos auxiliares de un programa son variables que realizan funciones específicas dentro de un algoritmo. Las más importantes son los contadores, acumuladores e interruptores. Un contador es una variable cuyo valor se incrementa en una cantidad fija, positiva o negativa. Se utiliza en los siguientes casos: Para contar la ocurrencia de un suceso particular. Por ejemplo, contar cuantos números son positivos de una serie. Para contabilizar el número de veces que es necesario repetir una acción. Normalmente, esta utilidad viene asociada a un bucle o sentencia de control repetitiva. Es necesario darles un valor inicial, que en bastantes casos es cero. Se utilizan expresiones del tipo CONT = CONT + 1 Programación 66 Elementos auxiliares Un acumulador es una variable cuyo valor se incrementa sucesivas veces en cantidades variables. Se utiliza en aquellos casos en los que se desea obtener el total acumulado de un conjunto de cantidades. También es precisa su inicialización, habitualmente a cero. También en las situaciones en las que hay que obtener un total como producto de distintas cantidades se utiliza un acumulador, pero en este caso el valor inicial que debe darse al mismo es 1. Se utilizan expresiones del tipo ACUM = ACUM + VAR Programación 67 Elementos auxiliares Un interruptor o switch es una variable que solamente puede tomar dos valores exclusivos (0 y 1, verdadero y falso, si y no). Se utiliza en los siguientes casos: Recordar en un determinado punto de un programa la ocurrencia o no de un suceso anterior, para salir de un bucle o iteración, o para decidir en una instrucción alternativa que acción realizar. Se inicializa el interruptor a un valor y cuando se produzca un suceso se modifica el valor del mismo, siendo analizado posteriormente en cualquier lugar del programa. Para hacer que dos acciones diferentes se ejecuten alternativamente dentro de un bucle o iteración. Programación 68 1. Introducción 2. Programas y programación 3. Fases de la programación 4. Ciclo de vida del software 5. Lenguajes de programación 6. Estructuras básicas de datos 7. El pseudocódigo 8. DFDs DFDs Diagramas de flujo Un diagrama de flujo, ordinograma o flujograma es una representación gráfica de un algoritmo o proceso. Facilitan la comprensión del algoritmo gracias a la descripción visual que aporta sobre flujo de ejecución de este. Inicialmente los diagramas de flujo resultaron un medio popular para describir algoritmos de computadora, y aún se utilizan con este fin. Herramientas como los diagramas de actividad UML, pueden ser considerados como evoluciones del diagrama de flujo. Programación 70 DFDs Programación 71 DFDs Programación 72 DFDs Programación 73 DFDs Programación 74 DFDs Programación 75 Ejemplos DFDs Programación 76 Ejemplos DFDs Programación 77 Ejemplos DFDs Programación 78