Fase análisis ra g o r p a l e d a c i g gramación Ló o Lógica de la pr Año 2012 - Edición 01 Lógica de la programación og ra m ac ió n Ló gi ca de la pr ón ci a m a r g o r p e lógica d Solución de problemas Introducción Fase de Análisis a la programación yecto Actividad de pro RequerimienDefinición de tos del Cliente de los elemenIdentificación ra proyectos tos de diseño pa multimedia Estructuras repetitivas Estructuras de datos Herramientas para la simulación Sena Producción en multimedia Actividad de aprendizaje Estructuras selectivas Fase Análisis Sena Producción en multimedia 1 id o Ta bl a de co nt en id o Ta bl a de co nt en Contenido Lógica de la programación 01 02 03 04 Solución de problemas Introducción a la Estructuras selectivas Estructuras repetitivas 3.1. Si Entonces (If Then) 4.1. Mientras que (While) 3.2. Si Entonces Sino (If Then Else) 4.2. Repetir para (For) 3.3. Si Anidado 4.3. Hacer mientras (Do … while) 1.1. Introducción a la solución de problemas: Características, pasos para resolverlos, estrategia para mejorar la compresión del enunciado de un problema y las variables e identificación de los datos de un problema 1.2. Relación entre variables y características: Relaciones parte-todo, de orden, con inversiones, con inversiones de orden y familiares. programación 2.1. Conceptos generales 2.2. Algoritmos y diagramas de flujo 2.3. Conceptos fundamentales 3.4. Si Multiple (Case) 2.4. Construcción de Algoritmos y Diagramas de flujo page 36 page 27 page 11 1.3. Problemas acerca de las relaciones entre dos variables: tablas numéricas, lógicas y conceptuales. page 05 05 06 Estructuras de datos Herramientas para la (Arreglos) simulación 5.1. Arreglos en una dimensión o Vectores 6.1. Pseudocódigo LPP page 59 page 60 5.2. Arreglos multidimensionales o Matrices Bibliografía 6.2. Diagramas de flujo DFD Este material puede ser distribuido, copiado y exhibido por terceros si se mues- Glosario page page 44 57 page 61 Créditos tra en los créditos. No se puede obtener ningún beneficio comercial y las obras 2 derivadas tienen que estar bajo los misSena Producción en multimedia mos términos de licencia que el trabajo original. Fase Análisis Fase Análisis Sena Producción en multimedia 3 a l e d a c i g Ló n ó i c a m a r prog In tro du cc ió n 01 tructuras s E , n ió c a m a r ulación lemas, prog b im o s r a p r e a d p a n t ió n c ie Solu tos, herram a d y s a iv it t e p selectivas, re 01 Solución de Problemas 1.1. Introducción a la solución de problemas: Características, pasos para resolverlos, estrategia para mejorar la compresión del enunciado de un problema y las variables e identificación de los datos de un problema 02 Introducción a la programación 2.1. Conceptos generales Solución de Problemas 1.1.Introducción a la solución de problemas: C aracterísticas, pasos para resolverlos, estrategia para mejorar la compresión del enunciado de un problema y las variables e identificación de los datos de un problema. 2.2. Algoritmos y diagramas de flujo 2.3. Conceptos fundamentales 2.4. Construcción de Algoritmos y Diagramas de flujo. 1.2. Relación entre variables y características: Relaciones parte-todo, de orden, con inversiones, con inversiones de orden y familiares. ob le m as So lu ci ón de pr 03 Estructuras Selectivas 3.1. Si Entonces (If Then) 3.2. Si Entonces Sino (If Then Else) 1.3. Problemas acerca de las relaciones entre dos variables: tablas numéricas, lógicas y conceptuales. 3.3. Si Anidado Un problema es un enunciado en el cual se da cierta información y se plantea una pregunta que debe ser respondida; en general se pide calcular o indagar uno o más datos faltantes o generar explicaciones acerca de ciertos hechos o situaciones. 3.4. Si Multiple (Case) 04 Estructuras Repetitivas 4.1. Mientras que (While) 4.2. Repetir para (For) 4.3. Hacer mientras (Do … while) 05 Estructuras de Datos (Arreglos) 5.1. Arreglos en una dimensión o Vectores 5.2. Arreglos multidimensionales 06 Con frecuencia la solución de problemas ha estado rodeada de mitos y creencias que obstaculizan el aprendizaje, se atribuyen a los problemas dificultades no justificadas que, más bien, surgen de la falta de información acerca de lo que es un problema y de la variedad de estrategas que pueden utilizarse para resolverlos. Herramientas para la Simulación Todo problema involucra una discrepancia o diferencia entre dos situaciones, una observada o dada y otra deseada. Resolver el problema es encontrar la manera de reducir o eliminar la discrepancia. Con frecuencia la solución de problemas ha estado rodeada de mitos y creencias que obstaculizan el aprendizaje Tipos de Problemas De acuerdo con la naturaleza de la información que se da o se proporciona, los problemas se dividen en dos tipos: estructurados y no estructurados. En el primer tipo se proporciona la información necesaria y suficiente para encontrar la solución, y en el segundo la información es incompleta o ambigua y debe complementarse con datos adicionales. Etapas para resolver un problema Para llegar a la solución de un problema la persona debe, en primer lugar; leer cuidadosamente el enunciado, codificar toda la información dada e identificar la información relevante y las pistas que se dan. Este proceso contribuye a lograr una clara imagen o representación mental del problema y es básica para alcanzar la segunda etapa durante el proceso de solución de un problema. 6.1. Pseudocodigo LPP 6.2. Diagramas de flujo DFD 4 Sena Producción en multimedia Fase Análisis Fase Análisis Sena Producción en multimedia 5 o S s a m e l b o r n de p ob le m as So lu ci ón de pr Una estrategia es un conjunto ordenado de pasos que permite lograr un objetivo. ob le m as So lu ci ón de pr Estrategia para mejorar la comprensión del enunciado de un problema: componentes de un problema Características de los problemas Un problema es un enunciado acerca de una situación determina en el cual se dan datos o información y se plantea una pregunta acerca de una discrepancia o un desequilibrio entre una situación observada o dada y una situación deseada. La respuesta a la pregunta proporciona los datos para reducir la discrepancia y constituye la solución el problema. Problemas Estructurados y Problemas no Estructurados Problemas no estructurados La información dada no es suficiente Identificación de las características del enunciado de un problema. Estructurados La información dada es la necesaria y suficiente a. Estado inicial: condición de partida. b. Estados intermedios: diferente etapas intermedia que deben completarse para resolver el problema. c. Estado final: condición de llegada determinada por lo que se pide en el enunciado del problema. d. Operaciones: diferentes acciones, actividades o procesos sugeridos en el problema. e. Condiciones: requerimientos o condiciones que se imponen en el enunciado f. Pregunta: lo que se desea saber o se cuestiona en el problema Un problema es un enunciado en el cual se plantean datos iniciales y finales, se describen algunas acciones realizadas, se establecen restricciones (si existen) y se plantea una pregunta acerca de uno o más datos faltantes. Resolver el problema es encontrar el o los datos faltantes. Componentes de un problema Estrategia general y específica Datos Iniciales Estado inicial Datos finales Estado final En este caso, dentro de la estrategia general utilizamos además dos estrategias particulares o específicas: ¿Cuántos jóvenes han recibido los beneficios del plan de renovación de la educación del país Colombia? Pasos para resolver un Problema: Ejercicio introductorio olució 1. Las grandes ciudades son urbes superpobladas con una enorme diversidad de actividades comerciales y productivas, generalmente con grandes problemas de contaminación. ¿Cuáles son las principales causas de la contaminación ambiental de las grandes ciudades? 6 2. ¿Cuántos jóvenes han recibido los beneficios del plan de renovación de la educación del país Colombia? Estrategia para resolver un problema. 1. Leer el problema en su totalidad e identificar los datos y la pregunta. 2. Leer el problema parte por parte y representar los datos en un diagrama. 3. Interpretar el diagrama y extraer conclusiones. 4. Relacionar las conclusiones con la pregunta del problema 5. Realizar los cálculos que sean requeridos 6. Verificar resultado 3. La protección de la salud de la población es uno de los beneficios más importantes que una comunidad puede recibir. Se precisa saber hasta qué punto este beneficio lo están recibiendo los habitantes de la región del Catatumbo. Sena Producción en multimedia Fase Análisis La identificación de los elementos del problema Productos intermedios Actividades que se describen Estados intermedios Acciones u operaciones Lo que se debe respetar Restricciones Lo que se desea saber Pregunta del problema Fase Análisis La elaboración del diagrama La identificación de los elementos del problema y la elaboración del diagrama también tienen sus particulares. Una estrategia es un conjunto ordenado de pasos que permite lograr un objetivo. Sena Producción en multimedia 7 ob le m as So lu ci ón de pr Las variables y la identificación de los datos de un problema Los datos de un problema, cualquiera que éste sea, se expresan en términos de variables, de los valores de éstas o de características de los objetos o situaciones involucradas en el enunciado. Podemos afirmar que los datos siempre provienen de variables. Vale recordar que una variable es una magnitud que puede tomar valores cualitativos o cuantitativos. Para distinguir estos conceptos consideremos el siguiente ejemplo. Si hablamos del peso del cuerpo, nos referimos a una variable; si decimos que María pesa 60 kg, nos referimos a una característica de María; y si decimos que la variable peso puede tomar los valores desde cero hasta infinito, estamos hablando de valores de la variable. Por lo que cabe mencionar que la comprensión del enunciado de un problema está íntimamente relacionada con la identificación clara y precisa de las variables que se consideran en el enunciado. Concepto de variable El concepto de variable lo hemos utilizado en temas anteriores con otro nombre, el de aspecto. Siempre dijimos que edad, color, tamaño, cantidad de dinero, lugar, etc., eran aspectos; ahora estamos dándole al aspecto un nuevo nombre, el de variable, y estamos aprendiendo algo más sobre éstas. Una variable es una magnitud que puede tomar valores cualitativos o cuantitativos. 1.2. Relación entre variables y características: Relaciones parte-todo, de orden, con inversiones, con inversiones de orden y familiares. Una relación es un nexo entre dos o más características correspondientes a la misma variable. En el enunciado del problema se dan los valores de las variables que correspondan y se presentan los nexos entre éstas; del análisis de estos nexos surge el tipo de relación, y de éste la estrategia particular de representación que se va a utilizar para comprender el problema, lograr la imagen mental y, en muchos casos, obtener la solución. Las variables, sus valores y sus relaciones conforman los datos de los problemas. Un dato puede ser una variable, un valor de una variable o una relación entre dos variables o entre sus valores. 8 Sena Producción en multimedia Fase Análisis ob le m as So lu ci ón de pr Problemas acerca de las relaciones parte-todo: Problemas acerca de las relaciones familiares: En este tipo de problema unimos un conjunto de partes conocidas para formar diferentes cantidades y generar ciertos desequilibrios entre las partes. Son problemas donde se relacionan partes para formar una totalidad deseada, por eso se denominan “problemas sobre relaciones parte-todo”. En este tipo de ejercicios se presenta un tipo particular de relación referido a los nexos de parentesco entre los diferentes componentes de la familia. Los tipos de relaciones o nexos que se presentan entre los miembros de una familia pueden ser: Relaciones padre-hijo, entre hermanos, tío sobrino, entre primos, entre esposos y sus familiares, suegros, yernos, cuñados, etc. Problemas respecto a relaciones de orden: La estrategia a utilizar se denomina representación lineal y permite visualizar el enunciado de los problemas y en la mayoría de los casos, lograr la solución. La estrategia que permite representar datos correspondientes a una sola variable o aspecto se denomina representación en una dimensión. Problemas acerca de las relaciones con inversiones de orden: En este caso se requiere aplicar una estrategia adicional, llamada postergación, que consiste en dejar para más tarde aquellos datos que parezcan incompletos, hasta que se presente el dato que complete la información. Problemas acerca de las relaciones con inversiones de orden: Ejercicios con enunciados confusos, en este tipo de casos es necesario prestar atención especial a la variable, a los signos de puntuación y al uso de ciertas palabras presentes en el enunciado. Fase Análisis 1.3. Problemas acerca de las relaciones entre dos variables: tablas numéricas, lógicas y conceptuales. En este tipo de problemas se plantean relaciones simultaneas entre dos variables y se pide una respuesta que corresponde a una tercera variable que resulta de las relaciones previamente mencionadas. En este tipo de problemas la estrategia más apropiada para obtener las soluciones es la construcción de tablas. La estrategia particular que se utiliza en este caso es la representación mediante tablas, que son reticulados que tienen filas y columnas, las cuales determinan celdas. En las filas y las columnas se representan los tipos de variables consideradas y en las celdas se insertan los números o valores de las diferentes pares de variables. De las tres variables que se dan, dos son cualitativas y permiten construir la tabla, y la tercera puede ser cualitativa, cuantitativa o lógica, según el tipo de respuesta que se pide encontrar y los datos dados en el problema. Esta tercera variable siempre está incluida en la pregunta del problema y se utiliza para llenar las celdas o los cuadros de la tabla. Sena Producción en multimedia 9 ob le m as So lu ci ón de pr n la pr og ra m ac ió In tro du cc ió n a 0 2 Introducción a la programación El número cero (0) se asocia con el concepto de “nada”, de nulo o de ausencia de algo. Tres tipos de problemas se refieren a estas relaciones entre variables: relaciones numéricas, relaciones lógicas entre dos o más variables y relaciones entre conceptos. El primer tipo de problema se resuelve mediante la construcción de tablas numéricas; el segundo tipo de problema se apoya en las tablas lógicas y el tercer tipo se trabaja con tablas semánticas o conceptuales. En la primeras se registran en las celdas cantidades o números, en las segundas, relaciones lógicas y en las terceras, conceptos. Las tablas son instrumentos muy útiles para resolver problemas pues permiten organizar la información y visualizar el problemas; además, constituyen una especie de memoria externa que nos ayuda a mantener el record de algunos elementos de información que a veces deben postergarse para relacionarse con datos que se dan posteriormente o que se infieren durante el proceso de resolución de problemas. Características de los problemas de tablas numéricas. Este tipo de problemas se refieren a relaciones entre dos variables (las dos cualitativas) y se resuelve mediante la estrategia de representación tabular llamada tabla numérica. La estrategia se llama así porque la tercera variable siempre toma valores numéricos y estos valores son los que sirven para completar la tabla. 10 Sena Producción en multimedia Los problemas acerca de las tablas numéricas con ceros. El número cero (0) se asocia con el concepto de “nada”, de nulo o de ausencia de algo. Por esa razón es muy común confundir la falta de información acerca de algo con el hecho establecido de que no hay información respecto a ese algo. Problemas acerca de tablas lógicas. En este tipo de problemas la variable trabaja con un tipo distinto de valor y se llama variable lógica, que sólo puede tomar como valor los calificativos “verdadero” o “falso”, o “si” o “no”. Por su naturaleza, una tabla lógica tiene ciertas propiedades que resultan muy útiles al construirlas. Una vez completada, una tabla lógica representa lo que es cierto y lo que no es, en forma directa y clara. En muchos casos (pero no siempre) las posibilidades que representa son mutuamente excluyentes. Problemas acerca de tablas conceptuales. Otra manera de establecer relaciones entre variables y características es a través de nexos entres los conceptos; en este caso se habla de relaciones semánticas. Las relaciones de este tipo de problema con las variables y características es indirecta, por medio de las características esenciales de las clases que definen los conceptos y de sus respectivas variables. 2.1. Conceptos generales ¿Qué es un programa? Antes de iniciar el tema, es conveniente, sobre todo para aquellos que comienzan su instrucción informática, hacer un breve repaso de conceptos fundamentales que se han de tomar en cuenta cuando se desarrollan programas que se utilizarán en computadoras. Conjunto de instrucciones que hacen funcionar a la computadora. Organización física de la computadora Se incluye la metodología que se requiere para diseñar algoritmos de manera sencilla y funcional. ¿Qué es una computadora? Es un dispositivo electrónico utilizado para procesar información y obtener resultados. Dispositivos de Entrada/Salida Los datos de entrada y los datos de salida pueden ser, realmente, cualquier cosa, texto, dibujos, o sonidos. Los dispositivos de Entrada/Salida permiten la comunicación entre la computadora y el usuario para introducir datos (información) para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria principal, convierten la información de entrada en señales eléctricas que se almacenan en la memoria principal. ¿Qué es el software? Tipos de dispositivos de entrada: Los datos y la información se pueden introducir en la computadora por la entrada y a continuación se procesan para producir una salida (resultados). Conjunto de programas escritos para una computadora. ¿Qué es el hardware? Componentes físicos que constituyen la computadora, junto con los dispositivos que realizan las tareas de entrada y salida • Teclados. • Lápices ópticos. • Palancas de mando (joystick). • Lectores de códigos de barra. • Micrófonos. • Mouse • Cámaras de video, etc Fase Análisis Fase Análisis Sena Producción en multimedia 11 n la pr og ra m ac ió In tro du cc ió n a Los dispositivos de salida permiten representar resultados (salida) del proceso de los datos. • Pantalla. • Impresoras. • Trazadores gráficos (plotters). • Reconocedores de voz, etc. Memoria principal Conocida como RAM (Random Access Memory), almacena información (instrucciones de un programa y los datos con los que operan las instrucciones) de manera transitoria, es decir, durante la ejecución de un programa. Unidad Central de Proceso (UPC) Dirige y controla el proceso de información realizado por la computadora, esta conformada por: Unidad de control (UC).- coordina las actividades de la computadora y determina que operaciones se deben realizar y en que orden; así mismo controla y sincroniza todo el proceso de la computadora. C++ 12 Sena Producción en multimedia n la pr og ra m ac ió In tro du cc ió n a Tipos de Lenguajes Los dispositivos son herramientas que ayudan expresar una idea, mensaje o concepto Unidad aritmética Lógica (ALU).- realiza operaciones aritméticas y lógicas, tales como sumas, restas, multiplicaciones divisiones y comparaciones. Los datos se pueden leer (recuperar) o escribir (cambiar) por la upc.Memoria auxiliar (externa) • Cuando un programa se ejecuta, se debe situar primero en la memoria principal de igual modo que los datos, sin embargo, la información almacenada en la memoria se pierde (borra) cuando se apaga la computadora y, por otra parte, la memoria principal es limitada en capacidad. Por esta razón, para poder disponer de almacenamiento permanente, tanto para programas como para datos se necesitan dispositivos de almacenamiento secundario, auxiliar o masivo. • Los dispositivos de almacenamiento secundario o memorias auxiliares (externas o secundarias) más comúnmente utilizadas son CD-ROM, DVD, cintas y discos magnéticos, USB, etc. Fase Análisis Para que un procesador realice un proceso se le debe suministrar en primer lugar un • Para que un procesador realice un proceso se le debe suministrar en primer lugar un algoritmo adecuado. El procesador debe ser capaz de interpretar el algoritmo, lo que significa: Comprender las instrucciones de cada paso, Realizar las operaciones correspondientes. • Cuando el procesador es una computadora, el algoritmo se ha de expresar en un formato que se denomina programa. • Un programa se escribe en un lenguaje de programación y las operaciones que conducen a expresar un algoritmo en forma de programa se llama programación. • Así pues, los lenguajes utilizados para escribir programas de computadoras son los lenguajes de programación y programadores son los escritores y diseñadores de programas. • Los principales tipos de lenguajes utilizados en la actualidad son: • Lenguajes máquina. • Lenguajes de bajo nivel (ensamblador) • Lenguajes de alto nivel. • programadores son los escritores y diseñadores de programas. • Los principales tipos de lenguajes utilizados en la actualidad son: • Lenguajes máquina. • Lenguajes de bajo nivel (ensamblador) • Lenguajes de alto nivel. Fase Análisis algoritmo adecuado • programadores son los escritores y diseñadores de programas. • Los principales tipos de lenguajes utilizados en la actualidad son: Lenguajes máquina, Lenguajes de bajo nivel (ensamblador), Lenguajes de alto nivel. • programadores son los escritores y diseñadores de programas. • Los principales tipos de lenguajes utilizados en la actualidad son: Lenguajes máquina, Lenguajes de bajo nivel (ensamblador), Lenguajes de alto nivel. Lenguajes máquina • Son aquellos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de dígitos 0’s y 1’s) que especifican una operación. • Las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina (código binario). • Las instrucciones en lenguaje máquina dependen del hardware de la computadora y, por lo tanto, diferirán de una computadora a otra. Sena Producción en multimedia 13 n la pr og ra m ac ió In tro du cc ió n a Lenguajes de bajo nivel Lenguajes de alto nivel • Son más fáciles de utilizar que los lenguajes máquina, pero, al igual, que ellos, dependen de la máquina en particular. • El lenguaje de bajo nivel por excelencia es el ensamblador. • Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos. Por ejemplo, típicos de operaciones aritméticas: ADD, SUB, DIV. • Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora, en esto se diferencia esencialmente del lenguaje máquina, sino que requiere una fase de traducción al lenguaje máquina. • El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, ya directamente inteligible por la computadora. • El traductor de programas fuente a objeto es un programa llamado ensamblador. • Son los más utilizados por los programadores, están diseñados para que las personas escriban y entiendan los programas de un modo más fácil que los lenguajes máquina y ensambladores. • Un programa escrito en lenguaje de alto nivel es independiente de la máquina; esto es, las instrucciones del programa de la computadora no dependen del diseño del hardware o de una computadora en particular. • Los programas escritos en lenguaje de alto nivel son portables o transportables, lo que significa la posibilidad de poder ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras. • Los programas fuente en lenguaje de alto nivel tiene que ser traducidos por los programas traductores, llamados en este caso compiladores. Tipos de lenguajes de alto nivel: C, C++, Fortran, C#, VisualBasic, Java Muy extendidos: Modula-2, Prolog, LISP, Smaltalk Sena Producción en multimedia 2.2. Algoritmos y diagramas de flujo Concepto de algoritmo Los seres humanos realizamos una serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema, esto se repite innumerables veces durante el día. En realidad estamos aplicando un algoritmo para resolver un problema. Definición de Algoritmo.- secuencia ordenada y cronológica de pasos que llevan a la solución de un problema o a la ejecución de una tarea (o actividad). El algoritmo debe tener las siguientes características: • • • • • Tener un principio Ser simples, claros, precisos, exactos. Tener un orden lógico. Debe ser finito. Tener un fin. • El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común, instrucciones de programación y palabras clave que definen las estructuras básicas. • El objetivo del pseudocódigo es permitir que el programador se centre en los aspectos lógicos de la solución, evitando las reglas de sintaxis de los lenguajes de programación. • No siendo el pseudocódigo un lenguaje formal, los pseudocódigos varían de un programador a otro, es decir, no hay un pseudocódigo estándar. Diagramas de flujo • Un diagrama de flujo representa la esquematización gráfica de un algoritmo. • En realidad muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Borland Delphi, C++ Builder, Power Builder La definición de un algoritmo debe describir tres partes: • Su correcta construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún lenguaje de programación. Aunque hoy en día el mundo de Internet consume gran cantidad de recursos en forma de lenguajes de programación como: HTML, XML, JavaScript, etc. • Entrada. • Proceso. • Salida • Si el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo. La serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema a través de algoritmos, los desarrollamos por medio de pseudocódigo. • A continuación, presentamos los símbolos que utilizaremos y una explicación de los mismos. Estos satisfacen las recomendaciones de la ISO y la ANSI. Gran uso en el mundo profesional: 14 n la pr og ra m ac ió In tro du cc ió n a Fase Análisis Fase Análisis Sena Producción en multimedia 15 n la pr og ra m ac ió In tro du cc ió n a n la pr og ra m ac ió In tro du cc ió n a Tipos de datos Símbolo utilizado para representar una decisión múltiple. En su interior se almacena un selector y dependiendo del valor de dicho selector se sigue por una de las ramas o caminos alternativos. Símbolos utilizados para expresar la dirección del flujo del diagrama * Los datos a procesar por una computadora pueden clasificarse en: • Simples • Estructurados Símbolo utilizado para representar una decisión. En su interior se almacena una condición y dependiendo del resultado de la evaluación de la misma se sigue por una de las ramas o caminos alternativos: verdadero o falso. * Los datos simples se caracterizan porque ocupan sólo una casilla de memoria, por lo tanto una variable simple hace referencia a un único valor a la vez. dentro de este grupo de datos encontramos: Datos simples Enteros Símbolo utilizado para introducir los datos de entrada. Expresa lectura. Símbolo utilizado para representar la impresión de un resultado. Expresa escritura. Son números que no contienen componentes fraccionarias y por lo tanto, no incluyen el punto decimal, pueden estar precedidos del signo + o --. Por ejemplo: 465 -387 9 99 -1578 125550 Reales (flotantes) Símbolo utilizado para expresar conexión dentro de una misma página. Símbolo utilizado para expresar conexión entre páginas diferentes. Son números que contienen una parte fraccionaria y por lo tanto, incluyen el punto decimal, pueden esta precedidos del signo + o --. Por ejemplo: 125.87 -124.0 158000.75 -38.5879 Carácter Símbolo utilizado para representar un proceso. En su interior se expresan asignaciones, operaciones aritméticas, cambios de valor de celdas en memoria, etc. 16 Sena Producción en multimedia Símbolo utilizado para marcar el inicio y el fin del diagrama flujo. Fase Análisis Contiene un solo carácter y va encerrado entre comillas simples. Por ejemplo: ‘a’ ‘H’ Fase Análisis ‘A’ ‘$’ ‘#’ ‘7’ ‘+’ • • • • • Enteros Reales (flotantes) Caracteres Cadena de caracteres Booleanos * Los datos estructurados se caracterizan por el hecho de que con un nombre se hace referencia a un grupo de casillas de memoria. * Es decir, un dato estructurado tiene varios componentes. Cada uno de sus componentes puede ser a su vez un dato simple. Dentro de este grupo de datos se encuentran: • Arreglos • Cadena de caracteres • Registros ‘h’ Sena Producción en multimedia 17 n la pr og ra m ac ió In tro du cc ió n a Cadena de caracteres. Constantes Contiene un conjunto de caracteres alfabéticos, numéricos, y especiales, que sirven para representar y manejar datos como: nombres, descripciones de artículos, direcciones, etc. Van encerrados entre comillas dobles, por ejemplo: “abc” “Carlos Jiménez” “83-15-24-65” “$8#2” Son datos que no cambian durante la ejecución de un programa. Existen tipos de constantes como tipos de datos, por lo tanto, puede haber constantes enteras, reales (flotantes), de carácter, de cadenas de caracteres, booleanas, etc. Booleanos Toma los valores de verdadero (true) o falso (false), no puede ser leído o escrito, sólo asignado, es útil para plantear cierto tipo de condiciones en el manejo de las estructuras lógicas de control. Identificadores, constantes y variables Identificadores. Son nombres que se usamos para referirnos a variables, constantes, funciones o cualquier objeto definido por el usuario. Un identificador se forma de acuerdo a ciertas reglas básicas: »» El primer carácter que forma un identificador debe ser una letra o el símbolo de subrayado ( _ ). »» Los demás caracteres pueden ser letras, dígitos o símbolo de subrayado. n la pr og ra m ac ió In tro du cc ió n a Operadores Aritméticos Operador Aritmético Operación Ejemplo Resultado ** Potencia 3**2 9 Variables * Multiplicación 5.25*3 15.75 1. Es un identificador que puede cambiar su valor durante la ejecución de un programa. 2. Se utiliza para representar un dato tipo entero, real (flotante), o una constante de carácter. Por ejemplo: / División 17/4 4 .25 + Suma 58+79 1 37 - Resta 2 5.96 -11.25 1 4.71 Mod Módulo (residuo) 2 1 mod 2 1 div División entera 1 9/3 6 • Variable i es de tipo entero, • variable prom es de tipo real (flotante), • Variable opción es de tipo carácter. Operaciones aritméticas Para poder realizar operaciones aritméticas necesitamos de operadores aritméticos. Estos operadores nos permiten realizar operaciones aritméticas entre operandos: números, constantes o variables. El resultado de una operación aritmética es un número. »» La longitud del identificador depende del lenguaje de programación a utilizar. Al evaluar expresiones que contienen operadores aritméticos debemos respetar la jerarquía en el orden de aplicación. Es decir, si tenemos en una expresión más de un operador, debemos aplicar primero el operador de mayor jerarquía, resolver esa operación y así sucesivamente. Jerarquía de los operadores aritmé cos Operador Jerarquía Operación ** (Mayor) Potencia *, /, mod, div +, - Mul plicación, división, módulo, división entera (menor) Suma, resta A continuación presentamos en una tabla los operadores aritméticos, la operación que puede realizar y, un ejemplo de su uso y su resultado: 18 Sena Producción en multimedia Fase Análisis Fase Análisis Sena Producción en multimedia 19 n la pr og ra m ac ió In tro du cc ió n a Reglas para resolver una expresión aritmética: 1.Si una expresión contiene subexpresiones entre paréntesis, éstas se evalúan primero, respetando claro la jerarquía de los operadores aritméticos en esta subexpresión. Si las subexpresiones se encuentran anidadas por paréntesis, primero se evalúan las subexpresiones que se encuentran en el último nivel de anidamiento. 2. Los operadores aritméticos se aplican teniendo en cuenta la jerarquía y de izquierda a derecha. n la pr og ra m ac ió In tro du cc ió n a Operadores relacionales Expresiones lógicas Son operadores que permiten comparar dos operandos, los operandos pueden ser números, caracteres, constantes o variables. Las expresiones lógicas o booleanas, están constituidas por números, constantes o variables y operadores lógicos o relacionales. El valor que pueden tomar estas expresiones es de verdadero o falso. Las constantes o variables, a su vez, pueden ser de tipo entero, real (flotante), carácter o cadena de caracteres. El resultado de una expresión con operadores relacionales es verdadero o falso. Se utilizan con frecuencia en las estructuras selectivas y en las estructuras repetitivas. Por ejemplo: Operadores Relacionales Dados los siguientes casos, resolver cada caso aplicando las reglas correspondientes: 1). 7 + 5 – 6 2). 9 +7 * 8 – 36 / 5 3). 7 * 5 ** 3 / 4 div 3 1 1 1 12 – 6 9 + 56 – 36 / 5 7 * 125 / 4 div 3 2 2 2 =6 9 + 56 – 7.2 875 / 4 div 3 3 3 65 – 7.2 218.75 div 3 4 4 = 57.8 = 72 4). 7 * 8 * (160 mod 3 ** 3) div 5 * 13 – 28 3640 - 28 1 7 7 * 8 * (160 mod 27) div 5 * 13 – 28 = 3612 2 7 * 8 * 25 div 5 * 13 – 28 3 56 * 25 div 5 * 13 – 28 4 1400 div 5 * 13 – 28 5 280 * 13 – 28 6 20 Sena Producción en multimedia Operador Operación == <> < > <= >= Igual que Diferente a Menor que Mayor que Menor o igual que Mayor o igual que Ejemplo “lalo” == “lola” ‘x’ < > ‘y’ 14 < 25 35 > 10 5 <= 6 15 >= 7 Resultado Falso Verdadero Verdadero Verdadero Verdadero Verdadero Operadores lógicos Fase Análisis • Son operadores que permiten formular condiciones complejas a partir de condiciones simples. • Los operadores lógicos son de: Disyunción (o) Conjunción (y) Negación (No) - Relaciona dos operandos booleanos. Proporciona un valor verdadero (V), si los dos son verdaderos; en caso contrario da un resultado falso (F). Este operador relaciona sólo un operando booleano y da como resultado un valor opuesto al que tenga el operando. Fase Análisis Relaciona dos operandos booleanos. Proporciona un valor verdadero (V), si uno de los dos es verdadero; e caso contrario da un resultado falso (F). Sena Producción en multimedia 21 n la pr og ra m ac ió In tro du cc ió n a n la pr og ra m ac ió In tro du cc ió n a Por ejemplo: 2.4. Construcción de Algoritmos y Diagramas de flujo Dados los siguientes casos, resolver cada caso aplicando las reglas correspondientes: 1). A = 5, B = 16 (A ** 2) > (B * 2) 1 25 > (B * 2) 2 25 > 32 3 Falso Continuación 2) 2). X = 6, B = 7.8 (X * 5 + B ** 3 / 4) < = (X ** 3 div B) 1 (X * 5 + 474.552 / 4) < = (X ** 3 div B) 2 (30 + 474.552 / 4) < = (X ** 3 div B) 3 (30 + 118.638) < = (X ** 3 div B) 4 Continua 148.638 < = (X ** 3 div B) 5 148.638 < = (216 div B) 6 148.638 < = 27 Falso 3). ~(15 > = 7 ** 2) o (43 – 8 * 2 div 4 < > 3 * 2 div 2) 1 ~(15 > = 49) o (43 – 8 * 2 div 4 < > 3 * 2 div 2) 2 3 Estructura y diseño de un algoritmo • Existe una gran cantidad de problemas que requieren de un análisis profundo y de un pensamiento flexible y estructurado para la solución. • La idea es ofrecer un conjunto de técnicas y herramientas metodológicas que permitan flexibilizar y estructurar el razonamiento utilizado en la solución de problemas, esto provocará finalmente la construcción de algoritmos eficientes. • A continuación en la figura podemos observar las etapas que debemos seguir para la solución de un problema. 1. La secuenciación es una estructura de control que permite a la computadora ejecutar una acción, después otra, luego la que sigue y así sucesivamente hasta la última. 2. Dichas acciones pueden consistir en operaciones primitivas elementales como declaraciones de variables, leer datos, imprimir datos o calcular alguna expresión. 3. Es conveniente etiquetar cada acción con números desde el uno en forma ascendente de uno en uno, para denotar el orden secuencial. 4. Por lo tanto los elementos básicos que integran la estructura de un algoritmo son: Continua Continua 3). 22 ~ Falso o (43 – 16 div 4 < > 3 * 2 div 2) 4 ~ Falso o (43 – 4 < > 3 * 2 div 2) 5 ~ Falso o (43 – 4 < > 6 div 2) 6 ~ Falso o (43 – 4 < > 3) 7 ~ Falso o (39 < > 3) 8 ~ Falso o Verdadero 9 Sena Producción en multimedia Verdadero o Verdadero 10 Verdadero Fase Análisis Fase Análisis Nota.- Por verificación del algoritmo entendemos el seguimiento del mismo con datos que sean representativos del problema que queremos resolver. a. Encabezado: Todo algoritmo debe tener un encabezado como identificación, el cual debe empezar con la palabra Algoritmo seguida por una descripción del problema a resolver. b. Inicio: Todo algoritmo debe empezar con la etiqueta 1, que marca el inicio del mismo. c. Declaraciones: Después de marcar el inicio se debe hacer las declaraciones que se necesiten como Variables, constantes, tipos de datos, etc. d. Leer, calcular e imprimir: Los siguientes pasos pueden consistir en acciones tales como: leer datos, calcular algunas expresiones aritméticas e imprimir datos tantas veces como se requiera y en el orden apropiado para resolver el problema en cuestión. e. 5in del algoritmo: El último paso del algoritmo consiste en incluir la indicación fin. Sena Producción en multimedia 23 n la pr og ra m ac ió In tro du cc ió n a Reglas para la construcción de diagramas de flujo Ejemplo No 1.- De algoritmos secuenciales Ejemplo No 3 Calcular e imprimir el sueldo de un empleado, se pedirá la clave del empleado, las horas trabajadas y el pago por hora trabajada. Desarrollar un algoritmo para calcular el promedio de un estudiante, se pedirá la matricula del estudiante y cuatro calificaciones de los exámenes. Se imprimirá la matricula del estudiante y el promedio. Algoritmo Calcular el sueldo de un empleado 1. Inicio 5. Imprimir cve, sueldo 2. Declaración de variables: 6. Fin cve, ht: entero pht, sueldo: real (flotante) 3. Leer cve, ht, pht 4. sueldo = ht * pht n la pr og ra m ac ió In tro du cc ió n a Algoritmo calcular promedio de un estudiante 1. Inicio 2. Declaración de variables matest: entero cal1, cal2, cal3, cal4, calfin: real (flotante) 3. Leer matest, cal1, cal2, cal3, cal4 4. calfin = (cal1 + cal2 + cal3 + cal4) / 4 5. Imprimir matest, calfin 6. Fin Ejemplo No 2 • Debemos recordar que un diagrama de flujo debe ilustrar gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. • Los símbolos colocados adecuadamente, permiten crear una estructura gráfica flexible que ilustra los pasos a seguir para alcanzar un resultado específico. • El diagrama de flujo facilitará más tarde la escritura del programa en algún lenguaje de programación. Diagrama de flujo del algoritmo, ejemplo 1 Desarrollar un algoritmo que permita leer un número en radianes e imprima su equivalencia en grados; así mismo, leer un número en grados e imprima su equivalencia en radianes. Algoritmo Convierte radianes a grados y grados a radianes 1. Inicio 2. Declaración de variables: PI = 3.145926536: real (flotante) rad, grad, numrad, numgrad: real (flotante) 3. Leer rad, grad 4. numgrad = rad * (180 / PI) 5. numrad = grad * (PI / 180) 6. Imprimir numgrad, numrad 7. Fin 24 Sena Producción en multimedia Fase Análisis Fase Análisis Reglas • Todo diagrama de flujo debe tener un inicio y un fin. • Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas, verticales y horizontales. • Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión, impresión, conexión o fin de diagrama. • El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a derecha (right to left). • La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación. • Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a entender lo que hicimos. • Si el diagrama de flujo requiere más de una hoja para su construcción, debemos utilizar los conectores adecuados y enumerar las páginas convenientemente. • No puede llegar más de una línea a un símbolo. Sena Producción en multimedia 25 n la pr og ra m ac ió In tro du cc ió n a le ct iv as Es tru ct ur as se 03 Diagrama de flujo del algoritmo, ejemplo 2 Estructuras Selectivas 3.1. Si Entonces (If Then) Selección si-entonces Funcionamiento: • La estructura selectiva lógica “si entonces” permite que el flujo siga por un camino específico si se cumple una condición o un conjunto de condiciones. • Si al evaluar la condición (o condiciones) el resultado es verdadero, entonces se ejecuta (n) cierta (s) operación (es), luego continua con la secuencia normal del proceso. • Se utiliza cuando alguna operación está condicionada para que se lleve a cabo, pero no tiene una opción alterna. Al llegar al si se evalúa la condición (es): a. Si se cumple, se ejecuta (n) la (s) operación (es) del entonces y luego salta hasta el siguiente paso después del fin del condicional. b. Si no se cumple, salta hasta después del fin del condicional, es decir no hace nada. Diagrama de flujo del algoritmo, ejemplo 3 Diagrama de flujo Formato: si condición entonces operación (es) { Fin del condicional } Donde: • si.- identifica la estructura selectiva • condición.- expresa la condición o conjunto de condiciones a evaluar • entonces.- indica el curso de acción a seguir si se cumple la condición. • operación.- expresa la operación o conjunto de operaciones. • fin del condicional.- indica el fin de la estructura de selección (si) 26 Sena Producción en multimedia Fase Análisis Fase Análisis Sena Producción en multimedia 27 le ct iv as Es tru ct ur as se Ejemplo 1: Dado como dato una calificación de un alumno en un examen, desarrollar un algoritmo y diagrama de flujo, que imprima el mensaje de aprobado en caso de que la calificación sea mayor o igual a 70. 3.2. Si Entonces Sino (If Then Else) Diagrama de flujo Algoritmo Alumno aprobado 1. Inicio 2. Declaración de variables cal: flotante 3. Leer cal 4. si cal >=70 entonces imprimir “Aprobado” 5. Fin del condicional paso 4 6. Fin Ejemplo 2: Dado como dato el sueldo de un trabajador, desarrollar un algoritmo y diagrama de flujo, que aplique un aumento del 15% si su sueldo es inferior a $1000. se imprimirá el nuevo sueldo del trabajador. Algoritmo Aumento de sueldo de un trabajador 1. Inicio 2. Declaración de variables: sue, aum, nsue: flotante 3. Leer sue 4. si sue < 1000 entonces aum = sue * 0.15 nsue = sue + aum imprimir nsue 5. Fin del condicional paso 4 6. Fin 28 Sena Producción en multimedia le ct iv as Es tru ct ur as se Selección si entonces/sino Formato: • La estructura selectiva si entonces/sino permite que el flujo se bifurque por dos ramas diferentes en el punto de la toma de decisión (es). • Si al evaluar la condición (o condiciones) el resultado es verdadero, entonces sigue por un camino específico y se ejecuta (n) cierta (as) operación (es). Por otra parte, si el resultado es falso entonces se sigue por otro camino y se ejecuta (n) otra (s) operación (es). • En ambos casos, luego de ejecutarse la (s) operación (es) indicada (s), se continúa con la secuencia normal del proceso. • Por la naturaleza de éstas, se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes. si condición entonces hacer operación 1 sino hacer operación 2 { Fin del condicional } Donde: • si.- identifica la estructura selectiva • condición.- expresa la condición o • • • • Diagrama de flujo conjunto de condiciones a evaluar entonces.- indica el curso de acción a seguir si se cumple la condición. operación 1.- expresa la operación o conjunto de operaciones. operación 2.- expresa la operación o conjunto de operaciones. fin del condicional.- indica el fin de la estructura de selección (si) Funcionamiento: Al llegar al si se evalúa la condición (es): • Opción verdadera (entonces) si se cumple, se ejecuta (n) la (s) operación (es) del entonces y luego salta hasta el siguiente paso después del fin del condicional. • Opción falsa (sino) De lo contrario, salta hacia el sino, ejecuta la (s) operación (es), y después salta hasta el siguiente paso después del fin del condicional. Fase Análisis Fase Análisis Sena Producción en multimedia 29 le ct iv as Es tru ct ur as se le ct iv as Es tru ct ur as se Diagrama de flujo Diagrama de flujo • Encontramos numerosos casos en el desarrollo de la solución de problemas en el que luego de tomar una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión.. Se señala, luego de evaluar las condiciones , la rama correspondiente a seguir, y nuevamente podemos tener que tomar otra decisión. • El proceso puede repetirse numerosas veces. En este caso, para resolver el problema, estamos aplicando estructuras selectivas en cascada o anidadas. • A continuación presentamos diferentes casos de anidamiento para la estructura selectiva si: Diagrama de flujo Ejemplo 1: Dado como dato una calificación de un alumno en un examen, desarrollar un algoritmo y diagrama de flujo, que imprima el mensaje de aprobado en caso de que la calificación sea mayor o igual a 70 o reprobado en caso contrario. Algoritmo 1. Inicio 2. Declaración de variables cal: flotante 3. Leer cal 4. si cal >=70 entonces imprimir “Aprobado” sino imprimir “Reprobado” 4. Fin del condicional paso 4 5. Fin 30 Sena Producción en multimedia Estructuras selectivas anidadas: nsi condición1 entonces n1 si condición2 entonces hacer operación21 sino hacer operación22 n2 fin del condicional del paso n1 n + 1 fin del condicional del paso n Ejemplo 2: Dado como dato el sueldo de un trabajador, desarrollar un algoritmo y diagrama de flujo, que aplique un aumento del 15% si su sueldo es inferior a $1000 y 12% en caso contrario. Se imprimirá el nuevo sueldo del trabajador. Algoritmo 1. Inicio 2. Declaración de variables: sue, nsue: flotante 3. Leer sue 4. si sue < 1000 entonces nsue = sue * 1.15 sino nsue = sue *1,12 5. Fin del condicional paso 4 6. Imprimir nsue 7. fin Caso 1 Caso 2 Fase Análisis Fase Análisis Sena Producción en multimedia 31 le ct iv as Es tru ct ur as se Lenguaje algorítmico de la estructura selectiva anidada del diagrama de flujo caso2: Lenguaje algorítmico de la estructura selectiva anidada del diagrama de flujo caso3: n si condición1 entonces n1 si condición2 entonces hacer operación 21 sino hacer operación 22 n2 fin del condicional del paso n1 sino n3 si condición3 entonces hacer operación 31 n4 fin del condicional del paso n3 n +1 fin del condicional del paso n n si condición1 entonces n1 si condición2 entonces hacer operación 21 n2 fin del condicional paso n1 sino n3 si condición3 entonces hacer operación 31 sino hacer operación 32 n4 fin del condicional del paso n3 n +1 fin del condicional del paso n le ct iv as Es tru ct ur as se Ejemplo 1: Desarrollar un algoritmo y diagrama de flujo el cual, dado un valor entero, determinar si es cero, positivo o negativo. Diagrama de flujo Algoritmo Dado un valor entero determinar si es cero, positivo o negativo 1 inicio 2 Declaración de variables: num: entero 3 Leer num 4. si num ==0 entonces imprimir “cero” sino 4.1 si num > 0 entonces imprimir “positivo” sino imprimir “negativo” 4.2 fin del condicional paso 4.1 5 fin del condicional del paso 4 Diagrama de flujo 32 Sena Producción en multimedia Fase Análisis Fase Análisis Sena Producción en multimedia 33 le ct iv as Es tru ct ur as se le ct iv as Es tru ct ur as se Diagrama de flujo 3.4. Si Multiple (Case) Estructura selectiva si múltiple • La estructura selectiva si múltiple permite que el flujo del proceso se bifurque por varias ramas en el punto de la toma de decisión (es), esto en función del valor que tome el selector. • Si el selector toma el valor 1 se ejecutará la acción 1, si toma el valor 2 se ejecutará la acción 2, si toma el valor n se realizará la acción n, y si toma un valor distinto de los valores comprendidos entre 1 y n, se continuará con el flujo normal del proceso realizándose la acción n + 1. Diagrama de flujo Formato: Por ejemplo: Desarrollar un algoritmo y diagra- si selector igual valor 1: hacer acción 1 valor 2: hacer acción 2 valor 3: hacer acción 3 valor n: hacer acción n fin del condicional hacer acción n + 1 ma de flujo tal que dado como datos la categoría y el sueldo de un trabajador, calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Se imprimirá la categoría del trabajador y su nuevo sueldo. Categoria 1 2 3 4 Donde: Selector.- variable o expresión a evaluarse, según la cual se tomará una de las múltiples decisiones o alternativas. Acción 1.- expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor 1. Acción 2.- expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor 2. Acción n.- expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor n. Acción n + 1.- expresa la operación que se va a realizar cuando se continúe con el flujo normal del proceso. La estructura selectiva si múltiple es muy flexible, lo que permite aplicarse de diferentes formas. Por ejemplo observemos el siguiente formato: Aumento 15% 10% 8% 7% Algoritmo: 1. Inicio Dado la categoría y el sueldo de un trabajador calcular el aumento 2. Declaración de variables: cate: entero sue, nsue: flotante 3. Leer cate, sue Diagrama de flujo 4. si cate igual 1: nsue = sue * 1015 2: nsue = sue * 1010 3: nsue = sue * 1.08 4: nsue = sue * 1.07 5. Fin de la condición del paso 2 6. imprimir cate, sue 7. Fin si selector igual valor 1,2: hacer acción 1 valor 3,4,5: hacer acción 2 de otra forma : hacer acción 3 fin del condicional hacer acción x 34 Sena Producción en multimedia Fase Análisis Fase Análisis Sena Producción en multimedia 35 pe tit iv as Es tru ct ur as re 04 pe tit iv as Es tru ct ur as re Estructuras Repetitivas Diagrama de flujo 4.1. Mientras que (While) Estructura repetitiva mientras (while) Formato: • La estructura algorítmica mientras comúnmente conocida como while, es la estructura adecuada para utilizar en un ciclo cuando no sabemos el número de veces que éste se ha de repetir. • Dicho número depende de las proposiciones dentro del ciclo. • Esta estructura permite que se repita una acción o un conjunto de acciones, en tanto cierta condición se mantenga verdadera. • La estructura while evalúa primero la condición, si se cumple se ejecuta una acción o conjunto de acciones; si no se cumple, no entra al ciclo. Por lo tanto esta estructura se repite cero o más veces. Hacer PI = proposición inicial Mientras PI es verdadera repetir • • • proceso • • • Hacer PI = modificación de PI { Fin del ciclo } Donde: PI.- proposición inicial, si el valor de PI es falso, entonces el ciclo no se ejecuta. Ejemplo2: Desarrollar un algoritmo y diagrama de flujo para obtener la suma de los gastos que hicimos en nuestro último viaje, pero no sabemos exactamente cuántos fueron, deberá mostrar la suma total de los gastos. Diagrama de flujo Diagrama de flujo 36 Sena Producción en multimedia Ejemplo1: Desarrollar un algoritmo y diagrama de flujo que lea n números positivos, determine y muestre el promedio de los n números positivos. Algoritmo: Dado n números positivos obtenga el promedio 1. inicio 6. prom = suma / n 2. declaración de variables: 7. imprimir prom i, n: enteros 8. fin num, prom, suma =0: flotantes 2. leer n 3. i = 1 4. mientras i <= n leer num suma = suma + num i = i + 1 5. fin del ciclo del paso 4 Fase Análisis Algoritmo: Obtener la suma de los gastos del viaje 1. inicio 2. declaración de variables: gasto, sumgas = 0: flotante 3. leer gasto 4. mientras gasto < > -1 repetir sumgas = sumgas + gasto leer gasto 5. fin del ciclo del paso 4 6. imprimir sumgas 7. fin Fase Análisis Sena Producción en multimedia 37 pe tit iv as Es tru ct ur as re pe tit iv as Es tru ct ur as re Formato: 4.2. Repetir para (For) Estructura repetitiva repetir (for) • La estructura repetir conocida comúnmente como for, es la estructura algorítmica adecuada para realizar un ciclo que se ejecutará un número definido de veces. • Este tipo de estructura está presente en todos los lenguajes de programación, ya sean estructurados u orientados a objetos. Por ejemplo cuando necesitamos calcular la nómina total de la empresa, tenemos que sumar los sueldos de los n empleados de la misma. • Cuando necesitamos obtener el promedio de calificaciones de un curso, debemos sumar las n calificaciones de los alumnos y dividir esa suma entre n. Es decir, sabemos de antemano cuántas veces tenemos que repetir una determinada operación, acción o tarea. • El número de repeticiones no depende de las proposiciones dentro del ciclo, el número de veces se obtiene del planteamiento del problema o de una lectura que indica que el número de iteraciones se debe realizar para n ocurrencias. • Dicho de otra forma el ciclo, es controlado por un contador que tiene que definirse con un valor inicial, un valor final y un incremento, esto significa que debe conocerse de antemano el número de veces que se debe repetir el ciclo. 38 Sena Producción en multimedia Fase Análisis a) Forma ascendente b) Forma descendente hacer V = VI hacer V = VI repetir con V desde VI hasta VFrepetir con V desde VI hasta VF • • • • procesoproceso • • • • hacer V = V + ID hacer V = V – ID { Fin del ciclo } { Fin del ciclo } Donde: Funcionamiento: V.- variable de control del ciclo. VI.- valor inicial. VF.- valor final. ID.- incremento o decremento, según sea la estructura ascendente o descendente. V (contador del ciclo, generalmente representado por las variables i, j, k) toma un valor inicial y se compara con VF (valor final). El ciclo se ejecuta mientras V es menor, menor o igual, mayor, mayor o igual al valor de VF, el valor de V se incrementa o decrementa en cada iteración. Cuando V supera el valor de VF entonces el ciclo se detiene. Fase Análisis Sena Producción en multimedia 39 pe tit iv as Es tru ct ur as re pe tit iv as Es tru ct ur as re Ejemplo 1: Desarrollar un algoritmo y diagrama de flu- Diagrama de flujo jo tal que dado como datos 10 números enteros, obtenga la suma de los 10 números enteros. Se mostrará la suma de los 10 números enteros. 1. inicio Dado 10 números enteros obtener la suma 2. declaración de variables: i, num, suma = 0: entero 3. i = 1 4. repetir con i desde 1 hasta 10 leer num suma = suma + num i = i + 1 5. fin del ciclo del paso 3 6. imprimir suma 7. fin 4.3. Hacer mientras (Do … while) Diagrama de flujo Ejemplo 2: Desarrollar un algoritmo y diagrama de flujo tal que dado como datos n números enteros, obtenga la suma de los n números enteros. Se mostrará la suma de los n números enteros. 1. inicio Dado n números enteros obtener la suma 2. declaración de variables: i, num, n, suma = 0: entero 3. leer n 4. i = 1 5. repetir con i desde 1 hasta n leer num suma = suma + num i = i + 1 6. fin del ciclo del paso 3 7. imprimir suma 8. fin 40 Sena Producción en multimedia Fase Análisis Estructura repetitiva hacer mientras (do/while) • La estructura algorítmica hacer mientras comúnmente conocida como do/while, es una estructura de control que permite hacer una repetición en un intervalo de uno a n veces, esto se debe a que la condición de control del ciclo se coloca al final de la estructura y se entra al ciclo sin evaluar la condición. • Primero se ejecuta y luego se evalúa la condición, si se cumple se regresa al ciclo, si no, termina el ciclo. Por lo tanto se ejecutará una o más veces. Formato: Hacer PI = proposición inicial Hacer • • • proceso • • • Hacer PI = modificación de PI Mientras (condición PI) { Fin del ciclo } Donde: PI.- proposición inicial, si el valor de PI es falso, entonces el ciclo no se ejecuta. Fase Análisis Sena Producción en multimedia 41 pe tit iv as Es tru ct ur as re Diagrama de flujo pe tit iv as Es tru ct ur as re Ejemplo 2: Desarrollar un algoritmo y diagrama de flujo el cual, para n números enteros positivos mostrar los pares. Algoritmo Para n números enteros positivos mostrar los pares Ejemplo 1: Desarrollar un algoritmo y diagrama de flujo el cual, obtenga el promedio de n números enteros, mostrar el promedio de los n números. 1. inicio 2. declaración de variables: i, n: entero 3. leer n 4. i = 2 5. hacer imprimir i i = i + 2 mientras (i < = n) 6. fin del ciclo del paso 5 7. fin Algoritmo Obtener el promedio de n números enteros Diagrama de flujo Diagrama de flujo 1. inicio 2. declaración de variables: i, n: enteros num, suma = 0, prom: flotantes 3. leer n 4. i = 1 5. hacer leer num suma = suma + num i = i + 1 mientras (i < = n) 6. fin del ciclo del paso 5 7. prom = suma / n 8. imprimir prom 9. fin 42 Sena Producción en multimedia Fase Análisis Fase Análisis Sena Producción en multimedia 43 ) Da to s (A rre gl os Es tru ct ur as de 05 ) Da to s (A rre gl os Es tru ct ur as de Estructuras de Datos (Arreglos) ●●● 5.1 Arreglos en una dimensión o Vectores 44 Arreglos Definición de arreglo • El arreglo es un tipo de dato estructurado formado por un conjunto de elementos de un mismo tipo de datos. • En las unidades anteriores trabajamos con tipos de datos enteros, flotantes, cadenas, etc., los cuales son considerados como datos de tipo simple, puesto que una variable que se define con alguno de estos tipos sólo puede almacenar un valor a la vez, es decir, existe una relación de uno a uno entre la variable y el número de elementos (valores) que es capaz de almacenar. • En cambio un dato de tipo estructurado como el arreglo, puede almacenar a más de un elemento (valor) a la vez, con la condición de que todos los elementos deben ser del mismo tipo de dato, es decir, que se puede tener un arreglo de datos enteros, flotantes, etc. • Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. Así, se tienen los arreglos unidimensionales (una dimensión), los bidimensionales (dos dimensiones) y los multidimensionales ( de más de dos dimensiones ), etc. Un arreglo se define como una colección finita, homogénea y ordenada de elementos: Sena Producción en multimedia Finita.- todo arreglo tiene un límite, es decir se sabe determinar cuál será el número máximo de elementos que podrán formar parte del arreglo. Homogénea.- todos los elementos de un arreglo son del mismo tipo. Ordenada.- se puede determinar cuál será el primer elemento, el segundo, el tercero, … , y el n-ésimo elemento. Un arreglo puede representarse gráficamente como se muestra a continuación: Fase Análisis Arreglos unidimensionales • Un arreglo unidimensional, está formado por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre y se diferencian por la posición (índice) que tiene cada elemento dentro del arreglo de datos. Por ejemplo: tenemos el número de unidades producidas por un obrero en cada uno de los días del mes. Para almacenarlos y manejarlos definimos un arreglo de una dimensión de 30 elementos, como se muestra a continuación: • El cual define un arreglo llamado producción con 30 casillas o lugares para almacenar los datos de 30 días. Fase Análisis Producción 1 2 3 * * * 30 Sena Producción en multimedia 45 ) Da to s (A rre gl os Es tru ct ur as de Declaración de arreglo unidimensional Manejo de los elementos de un arreglo Lectura Escritura Cuando se declara un arreglo, es necesario hacerlo como una variable: Cada elemento individual de un arreglo se relaciona con el nombre de la variable y un número (índice) que indica la posición la posición que ocupa el elemento dentro del arreglo. Dicho número se pone entre [ ] y se le llama subíndice. De acuerdo con el ejemplo anterior: El proceso de lectura de un arreglo consiste en leer y asignar un valor a cada uno de sus elementos. Consideremos de nuevo nuestro ejemplo una forma podría ser de la siguiente manera: El caso de escritura es similar al de lectura. Se debe escribir el valor de cada uno de los componentes, por ejemplo, considerando nuestro ejemplo: Nombre Variable: Arreglo [tamaño] Tipo de dato Donde: Nombre Variable.- Nombre de identificación de la variable. Arreglo.- Palabra reservada que indica que la variable es un arreglo. Tamaño.- Número entero que indica la cantidad de elementos que tendrá el arreglo. Tipo.- Tipo de dato que tendrá el conjunto de elementos del arreglo que se esta definiendo, puede ser entero, real, carácter, etc. El elemento 1 se relaciona con Producción[1] El elemento 2 se relaciona con Producción[2] • • • El elemento 30 se relaciona con Producción[30] • El subíndice puede ser una constante numérica entera como 1, 2, 3,…, 30, una variable de tipo entero, como: Producción [ i ], o bien, una expresión algebraica que de un resultado de tipo entero como: Si recordamos el ejemplo anterior, la forma de declararlo es: Producción: Arreglo [30] entero 46 ) Da to s (A rre gl os Es tru ct ur as de Producción es el nombre de la variable. Es un arreglo que contiene 30 elementos (de 1 a 30). Cada elemento del arreglo será un dato de tipo entero. Sena Producción en multimedia Producción [ i + 3 ] Producción [ (i * 4) – j ] Leer Leer • Leer Producción[1], Produccion[2], • • Producción[30] De esta forma no resultaría práctico, por lo tanto se usará un ciclo para leer todos los elementos del arreglo: i=1 repetir con i desde 1 hasta 30 leer Producción[i] i=i+1 fin del ciclo • Como toda variable, una de tipo arreglo puede usarse para leer datos, asignarle valores mediante expresiones aritméticas, imprimir su contenido, formar parte de expresiones lógicas , etc. Fase Análisis Fase Análisis i=1 repetir con i desde 1 hasta 30 imprimir Producción[i] i = i + 1 fin del ciclo Ejemplo1: Desarrollar un algoritmo y diagrama de flujo que reciba como entrada un arreglo unidimensional de n valores de tipo entero y muestre el arreglo unidimensional: • Algoritmo Arreglo de n elementos enteros mostrarlos 1. inicio 2. declaración de variables: i, n: entero arr: arreglo[n] entero 3. leer n 4. i = 1 5. repetir con i desde 1 hasta n leer arr[i] i = i +1 6. fin del ciclo del paso 5 7. i = 1 8. repetir con i desde 1 hasta n imprimir arr[i] i = i + 1 9. fin del ciclo del paso 8 10. fin Sena Producción en multimedia 47 ) Da to s (A rre gl os Es tru ct ur as de ) Da to s (A rre gl os Es tru ct ur as de Diagrama de flujo 48 Diagrama de flujo Ejemplo 2: Desarrollar un algoritmo y diagra- Algoritmo ma de flujo que reciba como entrada un arreglo unidimensional que corresponde a los sueldos de un grupo de 70 empleados de una empresa y necesitamos saber cuántos de estos empleados tienen un sueldo superior al promedio del grupo. Mostrar el total de empleados que tiene un sueldo superior al promedio del grupo. 1. inicio 2. declaración de variables: i, conta = 0: entero prom, acsue = 0: flotante sue: Arreglo[70] flotante 3. i = 1 4. repetir con i desde 1 hasta 70 leer sue[i] acsue = acsue + sue[i] i = i + 1 5. fin del ciclo del paso 4 6. prom = acsue / 70 7. i = 1 8. repetir con i desde 1 hasta 70 8.1 si sue[i] > prom entonces conta = conta + 1 8.2 fin del condicional del paso 8.1 i = i + 1 9. fin del ciclo del paso 8 10. imprimir conta 11. fin Sena Producción en multimedia Fase Análisis Ejemplo 3: Desarrolla un algoritmo y diagra- Algoritmo ma de flujo que reciba como entrada dos arreglos unidimensionales cada uno con 20 números enteros, calcular la suma uno a uno de los elementos de los dos arreglos y almacenar el resultado en un tercer arreglo. Mostrar al final los tres arreglos. 1. inicio 2. declaración de variables: a, b, c: Arreglo[20] entero i: entero 3. i = 1 4. repetir con i desde 1 hasta 20 leer a[i] leer b[i] c[i] = a[i] + b[i] i = i + 1 5. fin del ciclo del paso 4 6. i = 1 7. repetir con i desde 1 hasta 20 imprimir a[i], b[i], c[i] i = i +1 8. fin del ciclo del paso 7 9. fin Fase Análisis Sena Producción en multimedia 49 ) Da to s (A rre gl os Es tru ct ur as de Diagrama de flujo ) Da to s (A rre gl os Es tru ct ur as de Representación de un arreglo bidimensional: Tal que: 1<=i<=M 1<=j<=N 1 2 . j . N 1 2 . i . M Arreglos multidimensionales • Los arreglos presentados en el tema anterior reciben el nombre de arreglos unidimensionales o lineales, debido a que cualquier elemento es referenciado por un único índice. • También existe en la mayoría de los lenguajes de programación una estructura de arreglos multidimensionales. El número de dimensiones (índices) que se deben utilizar en un arreglo depende del problema que debemos resolver. • En este tema analizaremos los arreglos bidimensionales (caso especial de los multidimensionales) por ser los mas utilizados. 50 Sena Producción en multimedia • El arreglo bidimensional o de dos dimensiones, está formado por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre y que al igual que en el unidimensional, se diferencian por la posición que tiene cada elemento dentro del arreglo de datos, con la aclaración de que la disposición de los elementos es en forma rectangular o cuadrada, donde la primera dimensión está dada por los renglones y la segunda por las columnas. • Un arreglo de este tipo, también conocido como matriz, es del orden M x N, donde M es el número de renglones y N el número de columnas, es decir, en forma de tabla. • Un elemento [i, j] estará en el renglón i y en la columna j. internamente en memoria se reservan M x N posiciones consecutivas para almacenar todos los elementos del arreglo. Fase Análisis Declaración de arreglos bidimensionales Donde: Al declarar un arreglo es necesario hacerlo como una variable, por la cual en la parte de declaraciones de variables se utiliza el siguiente formato: de la variable. Arreglo.- palabra reservada que indica que la variable es un arreglo. TamañoRenglones.- indica el número de renglones que tendrá el arreglo. TamañoColumnas.- indica el número de columnas que tendrá el arreglo Tipo de dato.- es el tipo de dato que tiene el conjunto de elementos del arreglo que se está definiendo; puede ser entero, real, etc. NombreArreglo: Arreglo[TamañoRenglones, TamañoColumnas] Tipo de dato. NombreArreglo.- nombre de identificación Por ejemplo, si aplicamos los conceptos del formato para definir la matriz de orden 4 x 5 de números enteros, tenemos: Matriz: Arreglo[4, 5] entero 1. Matriz es el nombre de la variable. 2. Es un arreglo que contiene a renglones y 5 columnas (20 elementos). 3. Cada elemento del arreglo es un dato de tipo entero. Fase Análisis Sena Producción en multimedia 51 ) Da to s (A rre gl os Es tru ct ur as de ) Da to s (A rre gl os Es tru ct ur as de Manejo de los elementos de una matriz Lectura Escritura Para relacionar cada elemento individual de una matriz se usan dos subíndices; el primero indica el renglón y el segundo la columna, como sigue: Matriz[Renglón, Columna] Para realizar la lectura de una matriz los elementos deben referenciarse por medio de dos índices, normalmente se usan dos ciclos (anidados) para lograr la lectura de elementos consecutivos. Por ejemplo leer los elementos de una matriz de orden 5 x 3, los pasos a seguir son los siguientes: El procedimiento para una escritura es similar al de una lectura donde: Renglón.- indica el número de renglón y Columna.- indica el número de columna que ocupa el elemento relacionado. Los subíndices pueden ser constantes, variables o expresiones de tipo entero. Como toda variable, una de tipo matriz puede usarse para leer datos, asignarle valores mediante expresiones aritméticas, imprimir su contenido, formar parte de expresiones lógicas, etc. Por ejemplo: Matriz[1, 1] = 20 Leer Matriz[R, C] Leer Matriz[3, 4] Matriz[1, 2] = Matriz[1, 2] + Matriz[2, 3] Imprimir Matriz[1, 2] i=1 Repetir con i desde i hasta 5 j = 1 Repetir con j desde 1 hasta 3 leer matriz[i, j] j=j+1 fin del ciclo interno i = i + 1 fin del ciclo externo i=1 Repetir con i desde 1 hasta 5 j = 1 Repetir con j desde 1 hasta 3 Imprimir Matriz[i, j] j = j +1 fin del ciclo interno i = i + 1 fin del ciclo externo Al variar los índices de i y j se lee un elemento de matriz, según la posición indicada por los índices i y j Para i = 1 y j = 1, se lee el elemento del renglón 1 y columna 1 i = 1 y j = 2, se lee el elemento del renglón 1 y columna 2 • • • • i = 5 y j =3, se lee el elemento del renglón 5 y columna 3 52 Sena Producción en multimedia Fase Análisis Fase Análisis Ejemplo 1: Desarrollar un algoritmo y diagrama de flujo el cual, reciba como entrada un arreglo bidimensional de orden m x n con valores de tipo entero y muestre el arreglo bidimensional: Algoritmo 1. inicio 2. declaración de variables: i, j, m, n: entero mat: Arreglo[m, n] entero 3. leer m, n 4. i = 1 5. repetir con i desde 1 hasta m j = 1 5.1 repetir con j desde 1 hasta n leer mat[i, j] j=j+1 5.2 fin del ciclo del paso 5.1 i = i + 1 6. fin del ciclo del paso 5 7. i = 1 8. repetir con i desde 1 hasta m j = 1 8.1 repetir con j desde 1 hasta n imprimir mat[i, j] j=j+1 8.2 fin del ciclo del paso 8.1 i = i + 1 9. fin del ciclo del paso 8 10. fin Sena Producción en multimedia 53 ) Da to s (A rre gl os Es tru ct ur as de Diagrama de flujo ) Da to s (A rre gl os Es tru ct ur as de Ejemplo 2: Desarrollar un algoritmo y dia- Algoritmo grama de flujo el cual reciba como entrada un arreglo bidimensional de orden m x n con valores de tipo entero, para calcular la suma de los elementos de la diagonal principal. Mostrará el arreglo bidimensional y la suma de los elementos de la diagonal principal. 1. inicio 2. Declaración de variables i, j, m, n, sumdiag=o: entero mat: Arreglo[m, n] entero 3. Leer m, n 4. i = 1 5. repetir con i desde 1 hasta m j=1 5.1 repetir con j desde 1 hasta n leer mat[i, j] 5.1.1 si i == j entonces sumdiag = sumdiag + mat[i, j] 5.1.2 fin del condicional 5.1.1 j=j+1 5.2 fin del ciclo del paso 5.1 i=i+1 6. fin del ciclo del paso 5 7. i = 1 8. repetir con i desde 1 hasta m j = 1 8.1 repetir con j desde 1 hasta n imprimir mat[i, j] j=j+1 8.2 fin del ciclo del paso 8.1 i = i + 1 9. fin del ciclo del paso 8 10. imprimir sumdiag 11. fin Continuación del Diagrama de flujo 54 Sena Producción en multimedia Fase Análisis Fase Análisis Sena Producción en multimedia 55 ) Da to s (A rre gl os Es tru ct ur as de He rra m ie nt as ió n pa ra la si m ul ac 06 Diagrama de flujo Herramientas para la simulación 6.1. Pseudocódigo LPP Lpp es un lenguaje de programación para principiantes, el cual fue diseñado con la idea de facilitar el proceso de enseñanza-aprendizaje de un leguaje de programación en nuestro idioma, este contiene la mayoría de instrucciones que tienen los lenguajes de programación. Va dirigido a todos aquellos que quieren empezar en el gran mundo de la programación y no saben por dónde empezar. Es una forma fácil de aprender ya que se trata de una forma de programación en nuestro propio lenguaje. Continuación del Diagrama de flujo 56 Sena Producción en multimedia Fase Análisis Fase Análisis Sena Producción en multimedia 57 He rra m ie nt as ió n pa ra la si m ul ac 6.2. Diagramas de flujo DFD DFD es un editor e intérprete de diagramas de flujo con el cual puedes dar forma gráfica a un gran número de algoritmos, ejecutarlos y depurarlos en caso de hallar errores. Los diagramas de flujo (también llamados DFD) sirven para representar algoritmos y procesos similares que resuelven problemas a través del computador. DFD nos permite enriquecer y completar esos diagramas DFD incluyendo multitud de elementos y guardándolos después en el disco o imprimiéndolos mediante una impresora. En la barra superior de DFD se agrupan los objetos necesarios para la construcción de los diagramas. Se parte siempre de una plantilla con un estado inicial y uno final, conectados por una flecha. Los ítems se posicionan con un clic sobre el tramo de conexión elegido: DFD se encarga de redibujar los elementos. Glosario Dependiendo del tipo de objeto, hacer dobleclic abrirá un cuadro de diálogo diferente en el que introducir datos. Por ejemplo, en Condición se puede establecer la dirección de la condición verdadera y la expresión que debe verificarse. DFD simplifica bastante el diseño de los subprogramas. Cuando quieras probar tu diagrama, la tecla F9 iniciará la ejecución. También puedes usar los controles de reproducción o recurrir al menú Depuración para evaluar una expresión o efectuar un paso simple. El directorio de DFD incluye ejemplos de diagrama de flujo para que te familiarices con su interfaz. Algoritmo Lógica Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Ciencia que expone las leyes, modos y formas del conocimiento científico. La que opera utilizando un lenguaje simbólico artificial y haciendo abstracción de los contenidos. Instrucción Conjunto de datos insertados en una secuencia estructurada o específica que el procesador interpreta y ejecuta. Iteración Acción y efecto de repetir. Lenguaje Es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como los computadores. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. 58 Sena Producción en multimedia Fase Análisis Fase Análisis Plataforma Es un sistema que sirve como base para hacer funcionar determinados módulos de hardware o de software con los que es compatible. Pseucodigo Es una descripción de un algoritmo informático de programación de alto nivel compacto e informal que utiliza las convenciones estructurales de un lenguaje de programación verdadero, pero que está diseñado para la lectura humana en lugar de la lectura en máquina, y con independencia de cualquier otro lenguaje de programación. Problema Planteamiento de una situación cuya respuesta desconocida debe obtenerse a través de métodos científicos. Conjunto de hechos o circunstancias que dificultan la consecución de algún fin. Sena Producción en multimedia 59 en te s fe re nc ia s y Fu Bi bl io gr af ía , Re Bibliografía, Referencias y Fuentes ito ria l Cr éd ito s de ed Créditos de editorial De Sanchez, M. (2004). Aprende a Pensar 5 – Solución de Problemas. México DF: Editorial Trillas. SENA, (2011, 20 de Diciembre). Metodología de la Programación de Sistemas Informáticos. Bogotá DC: Servicio Nacional de Aprendizaje. Recuperado el 18 de abril de 2010 de http://www.senavirtual.edu.co. Cairó, O. (2008). Metodología de la Programación, algoritmos, diagramas de flujo y programas (3a. Ed.). Buenos Aires: Alfa Omega Grupo Editor. Descargar LPP [Lenguaje de Programación para principiantes]. Recuperado el 20 de noviembre de 2011 de http://www.gratisprogramas.org/descargar/lpp-lenguaje-de-programacion-para-principiantes-rs/ Revisión, Preparación y Compilación. Freddy Oswaldo Ovalles Pabón Instructor Multimedia SENA Regional Norte de Santander Centro CIES. [email protected] Diseño editorial Alejandro Orozco Escobar Iliana Eneth Molina Cuartas Profesional grado 10 [email protected] Revisión Temática Dorian sully munera rua Diseñador visual Profesional [email protected] Revisión Metodológica y Corrección de Estilo Diagramación Adriana Marcela Bedoya V Alejandro Orozco Escobar Diseñador visual Profesional Colaboración Sergio Areiza Diseñador gráfico [email protected] Sena Producción en multimedia Líder de produccíon [email protected] DFD Descargar (2008, 23 de octubre). Recuperado el 20 de noviembre de 2011 de http://dfd.softonic.com/ 60 Equipo de Exper tos temáticos y de Diseño para Producción de Multimedia SENA Fase Análisis Fase Análisis [email protected] Ilustración Alejandro Orozco Escobar Diseñador visual Profesional Mario Andrés Sepulveda Mazo Diseñador visual Profesional [email protected] Sena Producción en multimedia 61 Co nt ra ta pa lisis Fase de aná 62 Sena Producción en multimedia Fase Análisis