Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN tnversdad attnaI deI Santa tatuItad de Ineenera t.A.I. Sstemas e InItrmatta FUNDAMENTOS DE PROGRAMACION Ing, MIRkO MANRIQUE RONCEROS PRIMERA EDICION CHIMBOTE - PERU Ing. Mirko Manrique Ronceros Pgina 2 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN INDICE INTRODUCCION FUNDAMENTOS BSICOS DE ALGORITMOS Elementos bsicos de un algoritmo 05 Expresiones 07 Funciones internas 11 Tipos de Datos 13 REPRESENTACIN GRFICA DE LOS ALGORITMOS Diagrama de Flujo 15 Diagrama Estructurado o N - S 18 Pseudocdigo 20 ESTRUCTURAS BSICAS DE CONTROL Estructura Secuencia 22 ESTRUCTURAS SELECTIVAS BSICAS Estructura Selectiva Simple 27 Estructura Selectiva Doble 32 Estructura Selectiva Mltiple 35 Estructura Selectiva Anidada 38 ESTRUCTURAS REPETITIVAS Estructura Repetitiva Desde/Para 44 Estructura Repetitiva Hacer - Mientras 51 Estructura Repetitiva Mientras 58 INSTALACIN E INTERFAZ GRFICA DE LA HERRAMIENTA DE PROGRAMACIN Mi primer proyecto 76 Proyecto de estructura selectiva doble 88 Proyecto de estructura selectiva mltiple 92 Proyecto de estructura selectiva anidada 96 Proyecto de estructura repetitiva for 100 Proyecto de estructura repetitiva do while 106 Proyecto de estructura repetitiva while 113 Ing. Mirko Manrique Ronceros Pgina 3 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN INTRODUCCION Este manual est dedicado a todas aquellas personas que necesitan aprender a resolver problemas y plantear una solucin en un lenguaje de programacin, en este caso Java. Esta es la principal razn de este manual, esta caracterstica es fundamental, sobre todo desde el punto de vista acadmico, porque trata de ensear, de hacer entender, de hacer ver, al lector, como resolver un problema, y luego como programar esa solucin en un lenguaje de programacin de alto nivel. En general, aprender a usar una herramienta es sencilla, la mayora de los libros se enfoca en ello; pero para saber utilizar una herramienta no resuelve el problema: saber manejar una mquina de escribir, por ejemplo, no lo hace a uno escritor. El presente manual de Fundamentos de programacin explica los conceptos fundamentales de la programacin lgica apoyados de las herramientas de programacin como son los algoritmos, pseudocdigos o diagramas de flujo, y luego sern codificados en lenguaje de programacin Java. Este manual de Fundamentos de Programacin se divide en dos partes: La primera realiza un introduccin a la programacin estructurada usando para ello las estructuras secuenciales, Condicionales, Selectivas y Repetitivas a apoyadas en las tcnicas de Diagrama de Flujo de Datos y Pseudocdigo. La Segunda parte se enfoca a la utilizacin de un lenguaje de programacin utilizando para esta ocasin Java y el IDE Netbeans para codificar los algoritmos resueltos en la primera parte. Ing. Mirko Manrique Ronceros Pgina 4 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN FUNDAMENTOS BSICOS DE ALGORITMOS Una computadora no tiene capacidad para solucionar problemas ms que cuando se le proporcionan los pasos sucesivos a realizar, para ello elaboramos un algoritmo. Qu es un algoritmo? Es un mtodo para resolver un problema mediante una secuencia de instrucciones, cada una de las cuales especifica las operaciones que debe realizar la computadora. Caractersticas de un algoritmo Las caractersticas fundamentales que debe cumplir todo algoritmo son: Debe ser preciso e indicar el orden de realizacin de cada paso. Debe estar definido. Si se sigue un algoritmo dos o ms veces, con los mismos valores iniciales se debe obtener el mismo resultado. Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento, es decir, debe tener un nmero finito de pasos. Tambin hay que tener en cuenta en un algoritmo: El algoritmo sirve de base para generar un programa, pero no es el programa en s. El algoritmo no es inteligible directamente por el ordenador. El mismo algoritmo puede ser implementado de forma distinta en diversos programas, es decir, dos programadores pueden obtener distintos cdigos fuente a partir del mismo algoritmo. El proceso de un algoritmo La definicin de un algoritmo debe describir tres partes: Entrada, proceso y salida. Entrada Salida Proceso La informacin proporcionada al algoritmo constituye su entrada, el procedimiento para la solucin del problema constituye su proceso y la informacin producida por el algoritmo constituye su salida. A continuacin ejemplos para un mejor entendimiento: Ejemplo 01: Leer la base y altura de un paralelogramo. Calcular su rea. Datos de Entrada ---> base y altura Proceso ---> rea = base x altura Datos de Salida ---> El rea del paralelogramo Ing. Mirko Manrique Ronceros Pgina 5 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo 02: Leer el radio de una circunferencia. Calcular su rea y longitud. Datos de Entrada ---> Radio de una circunferencia. Proceso Datos de Salida ---> ---> rea = r 2 y Longitud = 2r El rea y longitud de una circunferencia. Verificacin del algoritmo o prueba de escritorio Una vez escrito el algoritmo es necesario asegurarse de que ste realiza las tareas para las que ha sido diseado, y que por lo tanto produce el resultado correcto y esperado. El modo ms normal de comprobar un algoritmo es mediante su ejecucin manual usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel los valores que van tomando en las diferentes fases, los datos de entrada o auxiliares y, por ltimo los valores de los resultados. Este proceso se conoce como prueba del algoritmo o prueba de escritorio. Haremos una prueba de escritorio de los dos problemas anteriores: Elementos Ejercicio 01 Ejercicio 02 Datos de entrada r (radio) = 3 (pi) = 3.14 (Solo tomaremos hasta dos decimales) Base = 5 Altura = 3 Proceso A = r 2 = 3.14 x (3) 2 L = 2r = 2 x 3.14 x 3 A = base x altura A = 5 x 3 Datos de salida A = 28.26 L = 18.84 A = 15 Elementos bsicos de un algoritmo Los elementos bsicos que forman parte esencial o fundamental de un algoritmo o programa son: Palabras reservadas. Identificadores. Variables. Constantes. Instrucciones. Palabras reservadas Palabras utilizadas por los algoritmos o lenguajes de programacin para representar sentencias, rdenes, etc. Ejemplos: inicio. Fin. hacer. sientonces-sino. mientras. desde. Ing. Mirko Manrique Ronceros Pgina 6 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Identificadores Son nombres usados para identificar a los objetos y dems elementos de un programa: variables, constantes, operadores, funciones, procedimientos, etc. Existen reglas para construir identificadores validos y son los siguientes: El primer carcter debe ser una letra o el carcter subrayado bajo. Los caracteres siguientes pueden ser letras, nmeros o smbolos de subrayado bajo. Las letras maysculas y las letras minsculas se tratan como distintas. As suma, Suma y SUMA son tres identificadores distintos. No pueden ser iguales a ninguna palabra reservada. Variables Una variable es un objeto a quien se le asigna un valor y cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecucin del programa. Si una variable est compuesto por dos palabras, stas pueden ser juntas o unidos por el subrayado bajo, guin bajo o subguin _ . Nota: No se deben utilizar como nombres de variables (identificadores) palabras reservadas del algoritmo o del lenguaje de programacin. Ejemplos: Nota Nombre Apellidos nota_oral Apellido_paterno apellido_materno Nota1 Contador1 precios hora prom pi Los nombres de las variables elegidas deben ser significativos y tener relacin con el objeto que representan, como pueden ser los casos siguientes: nombre para representar nombres de personas. precios para representar los precios de diferentes artculos. notas para representar las notas de una clase. A continuacin se muestra como ejemplos los nombres de variables no adecuados porque tienen otro significado a lo expresado: azucar para representar la nota de una clase. pan para representar la edad de una persona. Constantes Una constante toma o recibe un valor que no cambia durante el desarrollo del algoritmo o la ejecucin del programa. Instrucciones Las instrucciones especifican las operaciones o acciones que deben ser realizadas o ejecutadas. Ing. Mirko Manrique Ronceros Pgina 7 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Expresiones Son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales, que cumplen determinadas reglas. Ejemplos: a + ( b * 3 ) / c 5 * a * b / ( c + d) 1. EXPRESIONES ARITMTICAS Son anlogas a las formulas matemticas. Las variables y constantes son numricas (real o entera) y las operaciones son las aritmticas. Operadores Aritmticos Significado Operador Algebraico Operador Algoritmico Suma + + Resta - - Multiplicacin x * Divisin real / / Divisin entera / div Exponenciacin -,**,^ Modulo (resto o residuo) mod Tabla 1: Operadores Aritmticos A continuacin se mostrarn las equivalencias que debe conocer entre expresiones algebraicas y expresiones aritmticas. Ejemplos: RepresentacinAlgebraica RepresentacinAlgortmica 12 + 19 12 + 19 a b a - b 5 x 7 5 * 7 6 + c (6 / 4) + c 4 3 7 3 ^ 7 Reglas de prioridad Las expresiones que tienen dos o ms operandos en una expresin se evalan, en general, segn el siguiente orden. 1. Las operaciones que estn encerradas entre parntesis se evalan primero. Si existen diferentes parntesis anidados (internos unos a otros), las expresiones ms internas se evalan primero. 2. Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad. a. Operador exponencial (^, o bien **) b. Operadores *, /, \ c. Operadores div y mod d. Operadores + , - Ing. Mirko Manrique Ronceros Pgina 8 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Nota: En caso coincidir varios operadores de igual prioridad en una expresin o subexpresin encerrada entre parntesis, el orden de prioridad en este caso es de izquierda a derecha. Ejemplo 1. Cul es el resultado de las siguientes expresiones? a) 15 + 9 * 2 6 * 2 ^ 2 b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5) Solucin: a) 15 + 9 * 2 6 * 2 ^ 2 b) -8 / 4 * 6 + 3 ^ 2 * (10 / 5) 15 + 9 * 2 6 * 4 -8 / 4 * 6 + 3 ^ 2 * 2 15 + 18 - 24 = 9 -8 / 4 * 6 + 9 * 2 -2 * 6 + 18 = 6 Ejemplo 2. Convertir en expresiones aritmticas algortmicas las siguientes expresiones: a) 7 ( a + b ) b) 8x + 9y + 3z c) a 2 + 2a 3 d) x 2 y 2 e) p+q r + s t f) a (cd) b Solucin: a) 7 ( a + b ) 7 * (a + b) b) 8x + 9y + 3z 8 * x + 9 * y + 3 * z c) a 2 + 2a 3 a ^ 2 + 2 * a - 3 d) x 2 y 2 x ^ 2 y ^ 2 e) p+q (p + q) / (r + s / t) r + s t f) a (cd) a / b * c * d b Divisin entera (div) Es la accin de dividir dos nmeros enteros uno viene hacer el dividendo y el otro el divisor, el resultado del operador div es el valor del cociente. En esta divisin no es de mucha importancia el residuo. Recuerden que para utilizar el div solo se aplica a divisiones de nmeros enteros, veamos Ing. Mirko Manrique Ronceros Pgina 9 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN el siguiente ejemplo: Ejemplo: 9 div 2 = 4 Dividendo 9 2 8 4 1 Residuo Divisor Cociente Ejemplos: a. 15 div 6 = 2 b. 14 div 2 = 7 c. 0 div 3 = 0 d. 7 div 9 = 0 e. 3 div 3 = 1 f. 2 div 5 = 0 Reglasdeladivisinrealyentera: Los operandos pueden ser enteros(E) o reales(R). Entero Divisinreal Divisinentera E / E = R E div E = E E / R = R E div R = No Vlido R / E = R resultados R div E = No Vlido Real R / R = R R div R = No Vlido operandos Residuo (mod) El operador mod se utiliza para obtener el residuo o resto de una divisin entera. Igual que para el operador div, para poder hallar el residuo de una divisin utilizando el operador mod, los operandos deben ser exclusivamente enteros. Reglasdelresiduo: Residuo E mod E = E E mod R = No Vlido R mod E = No Vlido R mod R = No Vlido Ejemplos: a. 15 mod 6 = 3 b. 14 mod 2 = 0 c. 19 mod 3 = 1 d. 7 mod 9 = 7 e. 3 mod 3 = 0 f. 2 mod 5 = 2 2. EXPRESIONES LGICAS Una expresin lgica es una expresin que solo puede tomar dos valores: verdad y falso. Las expresiones lgicas se forman combinando constantes lgicas, variables lgicas y otras expresiones lgicas, utilizando los operadores relacionales (de relacin o comparacin) y los operadores lgicos not, and y or. Operadores de relacin Permiten realizar comparaciones de valores de tipo numrico o carcter. Los operadores de relacin sirven para expresar las condiciones en los algoritmos. El resultado de las operaciones de comparacin ser verdadero o falso. Ing. Mirko Manrique Ronceros Pgina 10 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Operadores de Relacin Significado Operador Algebraico Operador Algoritmico Menor que > < Mayor que < > Igual que = = Menor o igual que <= Mayor o igual que >= Distinto de o Diferente de <> Tabla 2: Operadores de Relacin Ejemplos: Si P = 7 * 2 y Q = 3 ^ 2 Expresin Lgica Resultado P > Q Verdad P < Q Falso P <> Q Verdad (P-3) = (Q+2) Verdad 15 < 14 Falso 4 + 6 = 9 Falso Para realizar comparaciones de datos tipo carcter, se requiere una secuencia de ordenacin de los caracteres, similar al orden creciente o decreciente. Esta ordenacin suele ser alfabtica, tanto maysculas como minsculas, y numrica, considerndolas de modo independiente. A continuacin se mostrarn los caracteres situados en el cdigo ASCII en orden creciente: Los caracteres que representan a los digitos. 0 <1 , 1 < 2 , , 8 < 9 Las letras maysculas A a Z siguen el orden alfabtico. A < B , B < C , ..., Y < Z Las letras minsculas, siguen el mismo criterio alfabtico. a < b , b < c , .., y < z Nota Para tener completa seguridad en la ordenacin de los caracteres, ser preciso consultar el cdigo de caracteres de su computadora, normalmente el ASCII (American Standar Code for Information Interchange) o bien el EBCDIC (Extended Binary-Coded Decimal Interchange Code) utilizado en computadras IBM diferentes a los modelos PC y PS/2. Operadores lgicos Los operadores lgicos o volanos son not (no), and (y) y or(o). Las definiciones de las operaciones no, y, o se resumen en unas tablas conocidas como las tablas de la verdad. Operador Lgico Expresin Lgica Significado no (not) no P negacin de P y (and) P y Q conjuncin de P y Q o (or) P o Q disyuncin de P o Q Tabla 3: Operadores Lgicos Ing. Mirko Manrique Ronceros Pgina 11 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Las tablas de la verdad son las siguientes: Operador No Operador Y Operador O P no P P Q P Y Q P Q P O Q V F V V V V V V F V V F F V F V F V F F V V F F F F F F Nota: Siendo P y Q expresiones booleanas, V valor verdadero, F valor falso. Negacin = not Disyuncin = and Conjuncin = or Ejemplos: (7 < 12) y (9 < 21) verdad (9 > 15) y (3 < 4) falso (6 = 41) o (13 > 8) verdad (16 > 8) o (2 > 5) verdad no (18 > 6) falso Funciones internas Las operaciones que se requieren en los programas exigen en numerosas ocasiones, adems de las operaciones aritmticas bsicas, ya tratadas, un nmero determinado de operadores especiales que se denominan funciones internas, incorporadas o estndar. Por ejemplo, la funcin raiz2 calcula la raz cuadrada de un nmero positivo, la funcin abs devuelve el valor absoluto de un nmero, la funcin cuadrado devuelve el valor de un nmero elevado al cuadrado. Existen otras funciones que se utilizan para determinar las funciones trigonomtricas. La siguiente tabla recoge las funciones internas ms usuales en algoritmos, siendo x el argumento de la funcin. Ing. Mirko Manrique Ronceros Pgina 12 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Las funciones aceptan argumentos reales o enteros y sus resultados dependen de la tarea que realice la funcin: Ejemplos: Tabla 5: Ejemplos Ing. Mirko Manrique Ronceros Pgina 13 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Tipos de Datos El primer objetivo de toda computadora es el manejo de la informacin o datos. Estos datos pueden ser las cifras de ventas de una bodega, tickets para un encuentro deportivo, ingreso diario de una empresa o las calificaciones de un saln de clase. Los algoritmos y programas correspondientes operan sobre datos. Los tipos de datos definen un conjunto de valores que puede almacenar una variable, junto con un conjunto de operaciones que se pueden realizar sobre esa variable. Los tipos de datos simples son los siguientes: Numricos (enteros, reales). Lgicos (booleanos). Carcter (char, string). Datos numricos El tipo numrico es el conjunto de los valores numricos. Estos pueden representarse en dos formas distintas: Tipo numrico entero (int, integer) Tipo numrico real (float, double) Tipo entero Es el subconjunto finito de los nmeros enteros, no tienen componentes fraccionarios o decimales, y pueden ser negativos o positivos. Ejemplos: 6 -9 -20 11 5 19 15 -1 Tipo reales Subconjunto de los nmeros reales, siempre tiene un punto decimal y pueden ser positivos o negativos. Constan de un entero y una parte decimal. Ejemplos: 9.9 12.24 -123.11 0.89 1470.274 -0.99 54.77 3.0 Nota: Existe un tipo de representacin denominado notacin exponencial o cientfica y que se utiliza para nmeros muy grandes o muy pequeos. Ejemplo: Dado un nmero cualquiera: 367520100000000000000 Ing. Mirko Manrique Ronceros Pgina 14 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN se representa en notacin descomponindolo en grupo de tres digitos: 367 520 100 000 000 000 000 y posteriormente en forma de potencias de 10, es: 3.675201 x 10 20 Ejemplos: 2079546000000 = 2.079546 x 10 12 8927645125 = 8.927645 x 10 9 0.000000032458 = 3.2458 x 10 -8 0.0000000009284 = 9.284 x 10 -10 Datos lgicos Es aquel dato que solo puede tomar uno de dos valores: cierto o verdadero (true) y falso (false) Ejemplo: Cuando se le pide si un valor entero es par, la respuesta ser verdadera o falsa, segn sea impar o par. Datos tipo carcter y tipo cadena Un dato tipo carcter contiene un solo carcter y se encuentra delimitado por comilla simple. Los caracteres que reconocen las diferentes computadoras no son estndar, sin embargo la mayora reconoce los siguiente caracteres alfabticos, numricos y especiales: caracteres alfabticos : (a, b, c, ... ,z) (A, B, C, ... ,Z) caracteres numricos : (1, 2, 3, ... ,9 ,0) caracteres especiales : (+,-,*,/,{, }, ... ;,< ,> , ...) Una cadena (string) de caracteres es una sucesin de caracteres que se encuentran delimitados por una comilla simple (apostrofo) o dobles comillas. Ejemplos: Carcter : a b m p q M Z Y N Cadena : Hola Per 8 de Octubre de 1879 Juan Pablo II Ing. Mirko Manrique Ronceros Pgina 15 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN REPRESENTACIN GRFICA DE LOS ALGORITMOS Para representar un algoritmo se debe utilizar algn mtodo que permita independizar dicho algoritmo del lenguaje de programacin elegido. Ello permitir que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado grfica o numricamente, de modo que las sucesivas acciones no dependan de la sintaxis de ningn lenguaje de programacin, sino que la descripcin pueda servir fcilmente para su transformacin en un programa, es decir, su codificacin. Los mtodos usuales para representar un algoritmo son: Diagrama de Flujo. Diagrama estructurado o N S (Nassi Schneiderman). Pseudocdigo. Diagrama de Flujo Un diagrama de flujo es una de las tcnicas de representacin de algoritmos ms antigua y a la vez ms utilizada, aunque su empleo ha disminuido considerablemente. Un diagrama de flujo es un diagrama que utiliza los smbolos (cajas) estndar y que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas, denominadas lneas de flujo, que indican la secuencia en que se deben ejecutar. Los smbolos ms utilizados en un diagrama de flujo son: Smbolos Nombre Funcin Terminal Representa el inicio y fin de un algoritmo. Puede representar tambin una parada o interrupcin del algoritmo. Entrada / Salida Sirve para cualquier ingreso de datos desde los perifricos de entrada o muestra informacin en algn perifrico de salida. Proceso Cualquier tipo de operacin que pueda originar cambio de valor, formato o posicin, operaciones aritmticas, etc. no Decisin Empleado cuando el programa debe tomar una decisin con dos salidas posibles (si, no) dependiendo del valor de una si condicin lgica. Decisin mltiple En funcin del resultado de la comparacin se seguir uno de los diferentes caminos de acuerdo con dicho resultado. Conector Sirve para enlazar dos partes cualesquiera de un organigrama. Se refiere a la conexin en la misma pgina deldiagrama. Lnea de flujo Indica el sentido de ejecucin de las operaciones. Lnea conectora Sirve de unin entre dos smbolos. Ing. Mirko Manrique Ronceros Pgina 16 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Smbolo Nombre Funcin Conector Conexin entre dos puntos del organigrama situado en pginas diferentes. Subrutina o Procedimiento Es un mdulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza una tarea determinada y regresa al terminar, al programa principal. Pantalla Se utiliza en ocasiones en lugar del smbolo e E/S Impresora Se utiliza en ocasiones en lugar del smbolo e E/S Teclado Se utiliza en ocasiones en lugar del smbolo e E/S Comentario Se utiliza para aadir comentarios al programa. Tabla 1: Operadores Aritmticos Los smbolos ms utilizados en un diagrama de flujo son: a. inicio/fin. b. proceso. c. decisin. d. conectores. e. entrada/salida. f. direccin del flujo. Primeralgoritmoconundiagramadeflujo Para conocer como se resuelve un problema mediante el diagrama de flujo, resolveremos un ejemplo: Ejemplo 1: El diagrama de flujo siguiente representa la resolucin de nuestro primer programa que deduce el rea y permetro de un rectngulo, sabiendo que su base y altura tienen los valores 8cm y 2cm respectivamente. 01 02 05 03 06 04 07 Ing. Mirko Manrique Ronceros Pgina 16 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Smbolo Nombre Funcin Conector Conexin entre dos puntos del organigrama situado en pginas diferentes. Subrutina o Procedimiento Es un mdulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza una tarea determinada y regresa al terminar, al programa principal. Pantalla Se utiliza en ocasiones en lugar del smbolo e E/S Impresora Se utiliza en ocasiones en lugar del smbolo e E/S Teclado Se utiliza en ocasiones en lugar del smbolo e E/S Comentario Se utiliza para aadir comentarios al programa. Tabla 1: Operadores Aritmticos Los smbolos ms utilizados en un diagrama de flujo son: a. inicio/fin. b. proceso. c. decisin. d. conectores. e. entrada/salida. f. direccin del flujo. Primeralgoritmoconundiagramadeflujo Para conocer como se resuelve un problema mediante el diagrama de flujo, resolveremos un ejemplo: Ejemplo 1: El diagrama de flujo siguiente representa la resolucin de nuestro primer programa que deduce el rea y permetro de un rectngulo, sabiendo que su base y altura tienen los valores 8cm y 2cm respectivamente. 01 02 05 03 06 04 07 Ing. Mirko Manrique Ronceros Pgina 16 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Smbolo Nombre Funcin Conector Conexin entre dos puntos del organigrama situado en pginas diferentes. Subrutina o Procedimiento Es un mdulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza una tarea determinada y regresa al terminar, al programa principal. Pantalla Se utiliza en ocasiones en lugar del smbolo e E/S Impresora Se utiliza en ocasiones en lugar del smbolo e E/S Teclado Se utiliza en ocasiones en lugar del smbolo e E/S Comentario Se utiliza para aadir comentarios al programa. Tabla 1: Operadores Aritmticos Los smbolos ms utilizados en un diagrama de flujo son: a. inicio/fin. b. proceso. c. decisin. d. conectores. e. entrada/salida. f. direccin del flujo. Primeralgoritmoconundiagramadeflujo Para conocer como se resuelve un problema mediante el diagrama de flujo, resolveremos un ejemplo: Ejemplo 1: El diagrama de flujo siguiente representa la resolucin de nuestro primer programa que deduce el rea y permetro de un rectngulo, sabiendo que su base y altura tienen los valores 8cm y 2cm respectivamente. 01 02 05 03 06 04 07 Ing. Mirko Manrique Ronceros Pgina 17 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Explicacin de nuestro primer algoritmo Lo primero que debemos hacer para realizar un algoritmo, es analizar el problema; reconocer las variables que representarn a los datos de entrada, dentro del proceso de clculo y los datos de salida, que vamos a utilizar, procesar y encontrar. Anlisis Para este ejemplo hemos identificado nuestras variables a trabajar: a. base = b b. altura = h c. rea = a d. permetro = p Todo algoritmo se debe comenzar con un inicio y finalizar con un fin, para ello se utilizar el smbolo terminal. Para lograr explicar con mayor claridad nuestro algoritmo, hemos incluido nmero de lnea. Donde la explicacin por lnea es la siguiente: La lnea 01, se utiliza el smbolo terminal junto con la palabra inicio que representa el comienzo del algoritmo. La lnea 02, se utiliza el smbolo proceso donde a las variables b y h se le asignan los nmeros 8 y 2 respectivamente. La lnea 03, se utiliza el smbolo proceso donde primero se realiza la operacin b * h y segundo, el resultado de esta operacin se asigna a la variable a (rea). La lnea 04, se utiliza el smbolo conector de pgina, donde sirve para enlazar dos partes cualesquiera en la misma pgina del diagrama. Para poder enlazar los conectores podemos utilizar nmeros o smbolos diferentes a los utilizados en el algoritmo. La lnea 05, se utiliza el smbolo proceso donde primero se realiza la operacin 2 * (b + h) y segundo, el resultado de esta operacin se asigna a la variable p (permetro). La lnea 06, se utiliza el smbolo entrada/salida, en este caso este smbolo representa la salida de la informacin obtenida por el algoritmo: el rea y el permetro. La lnea 07, se utiliza el smbolo terminal junto con la palabra fin que representa el fin del algoritmo. Nota: El diagrama de flujo nos da una idea del orden de ejecucin de las actividades en el tiempo. Primero cargamos los datos de entrada, luego hacemos las operaciones necesarias y por ltimo mostramos los resultados. Ejemplo 2: El diagrama de flujo del ejemplo anterior tambin se puede llevar acabo sin el uso de conectores de pgina o de pginas diferentes, en el siguiente diagrama se muestra cmo sera. Pero para este ejemplo haremos una variacin en nuestro ejemplo. En el ejemplo 1, los datos de la base y altura eran conocidos 8cm y 2cm. En este ejemplo los datos de la base y altura, no se conocen y se solicitan para resolver el problema; para solicitar los datos de entrada utilizaremos el smbolo entrada/salida. Ing. Mirko Manrique Ronceros Pgina 18 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Nota: En el ejemplo 1, los valores de b y h se conocen, por ello se utiliza el smbolo proceso. Pero para el ejemplo 2, los valores no se conocen por tanto tienen que ser ingresados, para realizar ello en algoritmos se utiliza el smbolo entrada/salida. Para poner en prctica los nuevos conocimientos adquiridos, resolveremos los siguientes ejemplos: Ejercicios de autocomprobacin de aprendizajes Ejemplo 3: Se ingresan por teclado dos nmeros positivos. Calcular la suma, resta, multiplicacin, divisin real, divisin entera, residuo y promedio de dichos nmeros. Reportar los resultados. Ejemplo 4: Una tienda de ropa exclusiva compra en Lima 50 pantalones blueyn a un costo de S/. 45 y aqu en Chimbote los oferta a S/. 60. Cunto es la ganancia?. Diagrama Estructurado o N - S Se trata de un mtodo de representacin de algoritmos en forma de bloque compacto. Es un diagrama algo similar a los diagramas de flujo (convencionales) en el que se omiten las flechas, y las figuras que se usan son rectngulos contiguos. La representacin del algoritmo se basa en los siguientes puntos: Un programa se representa por un solo diagrama, en el que se incluyen todas las operaciones a realizar para la resolucin del problema. La forma de conectar una pgina con la siguiente es similar al mtodo anterior, es decir, mediante un nmero o un nombre encerrados en uno de los rectngulos que componen el algoritmo. Todo diagrama comienza con un rectngulo que tiene la palabra inicio y al ltimo del algoritmo un rectngulo con la palabra fin. Las acciones sucesivas se escriben en rectngulos sucesivos. Ing. Mirko Manrique Ronceros Pgina 19 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN En un solo rectngulo se pueden escribir diferentes acciones. Un proceso puede ser un subprograma. La lectura del diagrama se hace de arriba hacia abajo. La forma grfica de representar un algoritmo en diagrama estructurado o N S es el siguiente: Primer algoritmo con un diagrama estructurado o N-S Para conocer cmo se realiza un diagrama estructurado, resolveremos el ejemplo 1 planteado en la parte de diagrama de flujo: Como se ve en la solucin del ejemplo 1, en este diagrama se utilizan slo rectngulos. Si se dan cuenta, en un diagrama estructurado existe un rectngulo de declaracin de variables, donde se colocan las variables que se utilizarn en el algoritmo y a la vez tambin podemos inicializar variables con sus valores dados. A continuacin, la solucin del ejemplo 2, de la parte de diagrama de flujo: Para poner en prctica los nuevos conocimientos adquiridos, resuelvan los ejemplos 3 y 4 de la parte de diagrama de flujo. Ing. Mirko Manrique Ronceros Pgina 19 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN En un solo rectngulo se pueden escribir diferentes acciones. Un proceso puede ser un subprograma. La lectura del diagrama se hace de arriba hacia abajo. La forma grfica de representar un algoritmo en diagrama estructurado o N S es el siguiente: Primer algoritmo con un diagrama estructurado o N-S Para conocer cmo se realiza un diagrama estructurado, resolveremos el ejemplo 1 planteado en la parte de diagrama de flujo: Como se ve en la solucin del ejemplo 1, en este diagrama se utilizan slo rectngulos. Si se dan cuenta, en un diagrama estructurado existe un rectngulo de declaracin de variables, donde se colocan las variables que se utilizarn en el algoritmo y a la vez tambin podemos inicializar variables con sus valores dados. A continuacin, la solucin del ejemplo 2, de la parte de diagrama de flujo: Para poner en prctica los nuevos conocimientos adquiridos, resuelvan los ejemplos 3 y 4 de la parte de diagrama de flujo. Ing. Mirko Manrique Ronceros Pgina 19 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN En un solo rectngulo se pueden escribir diferentes acciones. Un proceso puede ser un subprograma. La lectura del diagrama se hace de arriba hacia abajo. La forma grfica de representar un algoritmo en diagrama estructurado o N S es el siguiente: Primer algoritmo con un diagrama estructurado o N-S Para conocer cmo se realiza un diagrama estructurado, resolveremos el ejemplo 1 planteado en la parte de diagrama de flujo: Como se ve en la solucin del ejemplo 1, en este diagrama se utilizan slo rectngulos. Si se dan cuenta, en un diagrama estructurado existe un rectngulo de declaracin de variables, donde se colocan las variables que se utilizarn en el algoritmo y a la vez tambin podemos inicializar variables con sus valores dados. A continuacin, la solucin del ejemplo 2, de la parte de diagrama de flujo: Para poner en prctica los nuevos conocimientos adquiridos, resuelvan los ejemplos 3 y 4 de la parte de diagrama de flujo. Ing. Mirko Manrique Ronceros Pgina 20 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Pseudocdigo El pseudocdigo es una herramienta de programacin que naci como un lenguaje en que las instrucciones se escriben en palabras similares al ingles o espaol, que facilitan tanto la escritura como la lectura de programas. En esencia el pseudocdigo se puede definir como un lenguaje de especificacin (descripcin) de algoritmos. La ventaja del pseudocdigo es que en su uso, es decir durante la planificacin de un programa, el programador se puede concentrar en la lgica y en las estructuras de control, sin preocuparse por las reglas de un determinado lenguaje de programacin. La escritura del pseudocdigo exige normalmente la identacin (sangra en el margen izquierdo) de diferentes lneas. La lnea precedida por // se denomina comentario, que viene hacer informacin para el programador o el lector del programa, y no realiza ninguna instruccin ejecutable. El uso de pseudocdigo se ha extendido en la comunidad hispana con trminos en espaol como: inicio, fin, leer, escribir, si_entonces_sino, mientras, fin_mientras, etc. Estilo de escritura de algoritmos en pseudocdigo algoritmo nombre_del_programa // cabecera var // seccin de declaraciones tipo_de_datos : Lista_de_identificadores const Lista_de_identificadores = valor Inicio // cuerpo del programa Instruccin 1 Instruccin 2 Instruccin 3 . . . . Instruccin n fin Ing. Mirko Manrique Ronceros Pgina 21 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Primer algoritmo con un pseudo cdigo Para conocer cmo se realiza un pseudo cdigo, resolveremos el mismo ejemplo 1 planteado en la parte de diagrama de flujo: algoritmo Ejemplo 1 var entero : b, h, a, p Inicio b = 8 h = 2 a = b * h p = 2 * ( b + h ) escribir ( a, p ) fin Como se ve en esta solucin del ejemplo 1, en pseudo cdigo, se coloca el nombre del algoritmo, en la seccin de declaracin de variables se escriben a la parte izquierda los tipos de datos y a la derecha las variables que pertenecen a ese tipo de dato. Para este ejemplo solo tenemos el tipo de dato entero. Se tiene un cuerpo del programa donde se escriben todas las instrucciones necesarias para resolver el problema. A continuacin la solucin del ejemplo 2, de la parte de diagrama de flujo: algoritmo Ejemplo 2 var entero : b, h, a, p Inicio leer (b) leer (h) a = b * h p = 2 * ( b + h ) escribir ( a, p ) fin Ing. Mirko Manrique Ronceros Pgina 22 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN L ESTRUCTURAS BSICAS DE CONTROL Un algoritmo o programa puede ser escrito utilizando solamente tres tipos de estructuras de control, a las cuales se les conocen como estructuras bsicas de control, y son las siguientes: Estructuras Secuenciales. Estructuras Selectivas. a. Simples (si entonces - fin_si / if then end_if) b. Dobles (si entonces sino fin_si / if then else end_if) c. Mltiples Estructuras Repetitivas. a. Mientras (while) b. Hacer_Mientras (do - While) c. Desde / Para (for) Estructura Secuencial La estructura secuencial es aquella en la que una instruccin (accin) sigue a otra en secuencia. Las tareas a realizar en cada instruccin se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el final del proceso. La representacin grfica de una estructura secuencial se muestra en las siguientes figuras en Diagrama de Flujo, Diagrama Estructurado y Pseudocdigo. Figura 1. Diagrama de Flujo de una estructura secuencial Figura 2. Diagrama Estructurado de una estructura secuencial Ing. Mirko Manrique Ronceros Pgina 22 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN L ESTRUCTURAS BSICAS DE CONTROL Un algoritmo o programa puede ser escrito utilizando solamente tres tipos de estructuras de control, a las cuales se les conocen como estructuras bsicas de control, y son las siguientes: Estructuras Secuenciales. Estructuras Selectivas. a. Simples (si entonces - fin_si / if then end_if) b. Dobles (si entonces sino fin_si / if then else end_if) c. Mltiples Estructuras Repetitivas. a. Mientras (while) b. Hacer_Mientras (do - While) c. Desde / Para (for) Estructura Secuencial La estructura secuencial es aquella en la que una instruccin (accin) sigue a otra en secuencia. Las tareas a realizar en cada instruccin se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el final del proceso. La representacin grfica de una estructura secuencial se muestra en las siguientes figuras en Diagrama de Flujo, Diagrama Estructurado y Pseudocdigo. Figura 1. Diagrama de Flujo de una estructura secuencial Figura 2. Diagrama Estructurado de una estructura secuencial Ing. Mirko Manrique Ronceros Pgina 22 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN L ESTRUCTURAS BSICAS DE CONTROL Un algoritmo o programa puede ser escrito utilizando solamente tres tipos de estructuras de control, a las cuales se les conocen como estructuras bsicas de control, y son las siguientes: Estructuras Secuenciales. Estructuras Selectivas. a. Simples (si entonces - fin_si / if then end_if) b. Dobles (si entonces sino fin_si / if then else end_if) c. Mltiples Estructuras Repetitivas. a. Mientras (while) b. Hacer_Mientras (do - While) c. Desde / Para (for) Estructura Secuencial La estructura secuencial es aquella en la que una instruccin (accin) sigue a otra en secuencia. Las tareas a realizar en cada instruccin se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el final del proceso. La representacin grfica de una estructura secuencial se muestra en las siguientes figuras en Diagrama de Flujo, Diagrama Estructurado y Pseudocdigo. Figura 1. Diagrama de Flujo de una estructura secuencial Figura 2. Diagrama Estructurado de una estructura secuencial Ing. Mirko Manrique Ronceros Pgina 23 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN inicio Instruccin 1 Instruccin 2 Instruccin 3 . . . . Instruccin n fin Figura 3. Pseudocdigo de una estructura secuencial Para poder conocer cmo se realiza un algoritmo utilizando los mtodos para representar algoritmos, procederemos a realizar tres ejercicios. EJERCICIOS 1. Escribir un algoritmo que determine el pago por la compra de dos televisores LCD de 21 marca SONY, si cada uno cuesta 2 400 soles. 2. Encontrar el valor de la funcin: x = 3y + z 3. Escribir un algoritmo en el cual se ingresen dos nmeros. Se desea calcular y mostrar la suma y resta. Solucin de los ejemplos Ejercicio01: Inicio CostoTV = 2400 CantidadTV = 2 Pago = CostoTV * CantidadTV Escribir (Pago) Fin Figura 4. Diagrama de Flujo del ejercicio 01 Ing. Mirko Manrique Ronceros Pgina 24 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejercicio 01 Inicio CostoTV=2400, CantidadTV=2, Pago Pago = CostoTV * CantidadTV Escribir (Pago) Fin Figura 5. Diagrama Estructurado del ejercicio 01 algoritmo Ejercicio 01 var // seccin de declaraciones de variables entero: CantidadTV real: CostoTV, Pago Inicio // cuerpo del programa CostoTV = 2400 CantidadTV = 2 Pago = CostoTV * CantidadTV Escribir (Pago) fin Figura 6. Pseudocdigo del ejercicio 01 Ejercicio02: Inicio Leer (y,z) x = 3 * y + z Escribir (x) Fin Figura 7. Diagrama de Flujo del ejercicio 02 Ing. Mirko Manrique Ronceros Pgina 25 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejercicio 02 Inicio x, y, z Leer (y,z) x = 3 * y + z Escribir (x) Fin Figura 8. Diagrama Estructurado del ejercicio 02 algoritmo Ejercicio 02 var // seccin de declaraciones de variables entero: x, y, z Inicio // cuerpo del programa Leer ( y , z ) x = 3 * y + z Escribir ( x ) fin Figura 9. Pseudocdigo del ejercicio 02 Ejercicio03: Inicio Leer (num1,num2) Suma = num1 + num2 Resta = num1 - num2 Escribir (La suma es : ,Suma) Escribir (La resta es : ,Resta) Dentro del grfico de proceso, se pueden realizar como mximo tres procesos. Si hay ms procesos, utilizar otro diagrama de proceso Fin Figura 10. Diagrama de Flujo del ejercicio 03 Ing. Mirko Manrique Ronceros Pgina 26 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejercicio 03 Inicio num1, num2, Suma, Resta Suma = num1 + num2 Resta = num1 - num2 Escribir (La suma es : , Suma) Escribir (La resta es : , Resta) Fin Figura 11. Diagrama Estructurado del ejercicio 03 algoritmo Ejercicio 03 var // seccin de declaraciones de variables entero: num1, num2, Suma, Resta Inicio // cuerpo del programa Leer ( num1, num2 ) Suma = num1 + num2 Resta = num1 - num2 Escribir (La suma es : , Suma) Escribir (La resta es : , Resta) fin Figura 12. Pseudocdigo del ejercicio 03 Ing. Mirko Manrique Ronceros Pgina 27 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN ESTRUCTURAS SELECTIVAS No todos los problemas pueden resolverse empleando estructuras secuenciales. Cuando hay que tomar una decisin aparecen las estructuras selectivas. En nuestra vida diaria se nos presentan situaciones donde debemos decidir: Elijo la carrera A o la carrera B? Me pongo este pantaln? Para ir al trabajo, elijo el camino A o el camino B? Al cursar una carrera, elijo el turno maana, tarde o noche? Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah que se suelen denominar tambin estructuras condicionales, de decisin o alternativas. En las estructuras selectivas se evala una condicin y en funcin del resultado se realiza una opcin u otra. Las condiciones se especifican usando expresiones lgicas. Las estructuras selectivas pueden ser: 1. Simples. 2. Dobles. 3. Mltiples. 4. Anidadas. Estructura Selectiva Simple La estructura selectiva simple ejecuta una determinada accin o acciones cuando se cumple una determinada condicin, es decir, tenemos la opcin de realizar una actividad o varias si la condicin es verdadero y si es falso no se realizar ninguna actividad. La representacin grfica de la estructura selectiva simple en un Diagrama de Flujo es la siguiente: Figura 13. Diagrama de flujo de la estructura selectiva simple En la figura anterior se puede observar lo siguiente: el rombo representa la condicin. Hay dos opciones que se pueden tomar. Si la condicin es verdadera se sigue el camino del verdadero, si la condicin es falsa se sigue el camino del falso. Por el camino del verdadero pueden existir varias operaciones, entradas y salidas que se pueden realizar, inclusive ya veremos que pueden haber otras estructuras condicionales o selectivas. Ing. Mirko Manrique Ronceros Pgina 28 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN La representacin grfica de la estructura selectiva simple en el diagrama estructurado y pseudocdigo son las siguientes: Figura 14. Diagrama estructurado de la estructura selectiva simple si condicin entonces instruccin 1 instruccin 2 . . instruccin n fin_si Figura 15. Pseudocdigo de la estructura selectiva simple Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguiente ejemplo: Ejemplo1: Ingresar el sueldo de una persona, si supera los S/. 3000 soles, mostrar un mensaje en pantalla indicando que debe abonar impuestos. Figura 16. Diagrama de flujo del ejemplo 1 Ing. Mirko Manrique Ronceros Pgina 28 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN La representacin grfica de la estructura selectiva simple en el diagrama estructurado y pseudocdigo son las siguientes: Figura 14. Diagrama estructurado de la estructura selectiva simple si condicin entonces instruccin 1 instruccin 2 . . instruccin n fin_si Figura 15. Pseudocdigo de la estructura selectiva simple Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguiente ejemplo: Ejemplo1: Ingresar el sueldo de una persona, si supera los S/. 3000 soles, mostrar un mensaje en pantalla indicando que debe abonar impuestos. Figura 16. Diagrama de flujo del ejemplo 1 Ing. Mirko Manrique Ronceros Pgina 28 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN La representacin grfica de la estructura selectiva simple en el diagrama estructurado y pseudocdigo son las siguientes: Figura 14. Diagrama estructurado de la estructura selectiva simple si condicin entonces instruccin 1 instruccin 2 . . instruccin n fin_si Figura 15. Pseudocdigo de la estructura selectiva simple Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguiente ejemplo: Ejemplo1: Ingresar el sueldo de una persona, si supera los S/. 3000 soles, mostrar un mensaje en pantalla indicando que debe abonar impuestos. Figura 16. Diagrama de flujo del ejemplo 1 Ing. Mirko Manrique Ronceros Pgina 29 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 17. Diagrama estructurado del ejemplo 1 algoritmo Ejemplo1 var inicio fin real: sueldo leer (sueldo) si (sueldo > 3000) entonces escribir(Esta persona debe abonar impuestos) fin_si Figura 18. Pseudocdigo del ejemplo 1 Observacin del Pseudocdigo Obsrvese que las palabras del pseudocdigo si y fin_si se alinean verticalmente identando (sangrando) la instruccin o bloque de instrucciones. Ing. Mirko Manrique Ronceros Pgina 29 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 17. Diagrama estructurado del ejemplo 1 algoritmo Ejemplo1 var inicio fin real: sueldo leer (sueldo) si (sueldo > 3000) entonces escribir(Esta persona debe abonar impuestos) fin_si Figura 18. Pseudocdigo del ejemplo 1 Observacin del Pseudocdigo Obsrvese que las palabras del pseudocdigo si y fin_si se alinean verticalmente identando (sangrando) la instruccin o bloque de instrucciones. Ing. Mirko Manrique Ronceros Pgina 29 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 17. Diagrama estructurado del ejemplo 1 algoritmo Ejemplo1 var inicio fin real: sueldo leer (sueldo) si (sueldo > 3000) entonces escribir(Esta persona debe abonar impuestos) fin_si Figura 18. Pseudocdigo del ejemplo 1 Observacin del Pseudocdigo Obsrvese que las palabras del pseudocdigo si y fin_si se alinean verticalmente identando (sangrando) la instruccin o bloque de instrucciones. Ing. Mirko Manrique Ronceros Pgina 30 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo2: Realizar un algoritmo que permita el ingreso de un nmero entero, si es positivo debe mostrar el mensaje que es un nmero positivo, elevarlo al cuadrado y mostrar dicho resultado. Al terminar el algoritmo debe decir fin del algoritmo. inicio leer (num) num > 0 mostrar Numero positivo Cuad = num ^2 mostrar (Cuad) mostrar (Fin del algoritmo) fin Figura 19. Diagrama de Flujo del ejemplo 2 Ing. Mirko Manrique Ronceros Pgina 31 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo 2 Inicio num, Cuad Leer (num) num > 0 V F Mostrar (Nmero positivo) Cuad = num ^2 Mostrar (Cuad) Mostrar (Fin del algoritmo) Fin Figura 20. Diagrama Estructurado del ejemplo 2 algoritmo Ejemplo 2 var inicio entero: num, Cuad leer (num) si ( num > 0 ) entonces mostrar(Nmero positivo) Cuad = num ^ 2 mostrar ( Cuad ) fin fin_si Mostrar (Fin del algoritmo) Figura 21. Pseudocdigo del ejemplo 2 Ing. Mirko Manrique Ronceros Pgina 32 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Doble La estructura selectiva doble permite elegir entre dos opciones o alternativas, en funcin del cumplimiento de una determinada condicin, de tal forma que, si se cumple, se ejecutan las acciones del primer bloque; si no se cumple, se ejecutan las acciones del segundo bloque. La representacin grfica de una estructura selectiva doble en los mtodos para representar a los algoritmos es el siguiente: Figura 19. Diagrama de flujo de la estructura selectiva doble Figura 20. Diagrama estructurado de la estructura selectiva doble si condicin entonces instruccin 1 instruccin 2 . . instruccin n si_no fin_si instruccin 1 instruccin 2 . . instruccin m Figura 21. Pseudocdigo de la estructura selectiva doble De acuerdo a la condicin podemos realizar actividades por el lado verdadero o por el lado falso, PERO NUNCAse realizan las actividades de ambos lados al mismo tiempo. Ing. Mirko Manrique Ronceros Pgina 32 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Doble La estructura selectiva doble permite elegir entre dos opciones o alternativas, en funcin del cumplimiento de una determinada condicin, de tal forma que, si se cumple, se ejecutan las acciones del primer bloque; si no se cumple, se ejecutan las acciones del segundo bloque. La representacin grfica de una estructura selectiva doble en los mtodos para representar a los algoritmos es el siguiente: Figura 19. Diagrama de flujo de la estructura selectiva doble Figura 20. Diagrama estructurado de la estructura selectiva doble si condicin entonces instruccin 1 instruccin 2 . . instruccin n si_no fin_si instruccin 1 instruccin 2 . . instruccin m Figura 21. Pseudocdigo de la estructura selectiva doble De acuerdo a la condicin podemos realizar actividades por el lado verdadero o por el lado falso, PERO NUNCAse realizan las actividades de ambos lados al mismo tiempo. Ing. Mirko Manrique Ronceros Pgina 32 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Doble La estructura selectiva doble permite elegir entre dos opciones o alternativas, en funcin del cumplimiento de una determinada condicin, de tal forma que, si se cumple, se ejecutan las acciones del primer bloque; si no se cumple, se ejecutan las acciones del segundo bloque. La representacin grfica de una estructura selectiva doble en los mtodos para representar a los algoritmos es el siguiente: Figura 19. Diagrama de flujo de la estructura selectiva doble Figura 20. Diagrama estructurado de la estructura selectiva doble si condicin entonces instruccin 1 instruccin 2 . . instruccin n si_no fin_si instruccin 1 instruccin 2 . . instruccin m Figura 21. Pseudocdigo de la estructura selectiva doble De acuerdo a la condicin podemos realizar actividades por el lado verdadero o por el lado falso, PERO NUNCAse realizan las actividades de ambos lados al mismo tiempo. Ing. Mirko Manrique Ronceros Pgina 33 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguiente ejemplo: Ejemplo 3: Realizar un algoritmo que lea dos nmeros enteros distintos entre s y mostrar por pantalla el mayor y el menor. Al final del algoritmo mostrar tambin el nombre del creador del algoritmo. Figura 22. Diagrama de flujo del ejemplo 3 Figura 23. Diagrama estructurado del ejemplo 3 Ing. Mirko Manrique Ronceros Pgina 33 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguiente ejemplo: Ejemplo 3: Realizar un algoritmo que lea dos nmeros enteros distintos entre s y mostrar por pantalla el mayor y el menor. Al final del algoritmo mostrar tambin el nombre del creador del algoritmo. Figura 22. Diagrama de flujo del ejemplo 3 Figura 23. Diagrama estructurado del ejemplo 3 Ing. Mirko Manrique Ronceros Pgina 33 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguiente ejemplo: Ejemplo 3: Realizar un algoritmo que lea dos nmeros enteros distintos entre s y mostrar por pantalla el mayor y el menor. Al final del algoritmo mostrar tambin el nombre del creador del algoritmo. Figura 22. Diagrama de flujo del ejemplo 3 Figura 23. Diagrama estructurado del ejemplo 3 Ing. Mirko Manrique Ronceros Pgina 34 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN algoritmo Ejemplo3 var inicio entero : num1, num2 leer (num1, num2) si (num1 > num2) entonces escribir(El mayor es, num1, y el menor es, num2) si_no fin_si escribir(El mayor es, num2, y el menor es, num1) fin escribir(Mi nombre es Maverick) Figura 24. Pseudocdigo del ejemplo 3 Ejemplodeautoaprendizaje: Resuelva en diagrama de flujo, estructurado y pseudocdigo. Ejemplo 4: Realizar un algoritmo que permita el ingreso de tres notas de un alumno. Calcular la nota promedio y si el promedio es mayor o igual a 10.5 mostrar un mensaje Aprobado o Desaprobado. Ing. Mirko Manrique Ronceros Pgina 35 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Mltiple Con frecuencia en la prctica se presentan ms de dos elecciones posibles de una cierta condicin. La estructura selectiva mltiple se utiliza para este tipo de problemas, es decir, que la estructura selectiva mltiple evaluar una expresin que podr tomar n valores distintos;: 1, 2, 3, 4,..., n. Segn qu elija uno de estos valores en la condicin, se realizar una de las n acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre los n posibles. La representacin grfica de una estructura selectiva doble en las tres herramientas de programacin es la siguiente: Figura 25. Diagrama de flujo de la estructura selectiva mltiple Figura 26. Diagrama estructurado o N-S de la estructura selectiva mltiple Ing. Mirko Manrique Ronceros Pgina 35 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Mltiple Con frecuencia en la prctica se presentan ms de dos elecciones posibles de una cierta condicin. La estructura selectiva mltiple se utiliza para este tipo de problemas, es decir, que la estructura selectiva mltiple evaluar una expresin que podr tomar n valores distintos;: 1, 2, 3, 4,..., n. Segn qu elija uno de estos valores en la condicin, se realizar una de las n acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre los n posibles. La representacin grfica de una estructura selectiva doble en las tres herramientas de programacin es la siguiente: Figura 25. Diagrama de flujo de la estructura selectiva mltiple Figura 26. Diagrama estructurado o N-S de la estructura selectiva mltiple Ing. Mirko Manrique Ronceros Pgina 35 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Mltiple Con frecuencia en la prctica se presentan ms de dos elecciones posibles de una cierta condicin. La estructura selectiva mltiple se utiliza para este tipo de problemas, es decir, que la estructura selectiva mltiple evaluar una expresin que podr tomar n valores distintos;: 1, 2, 3, 4,..., n. Segn qu elija uno de estos valores en la condicin, se realizar una de las n acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre los n posibles. La representacin grfica de una estructura selectiva doble en las tres herramientas de programacin es la siguiente: Figura 25. Diagrama de flujo de la estructura selectiva mltiple Figura 26. Diagrama estructurado o N-S de la estructura selectiva mltiple Ing. Mirko Manrique Ronceros Pgina 36 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN en caso expresin hacer valor 1: instruccin 1 instruccin 2 ........ valor 2: instruccin 1 instruccin 2 ........ valor 3: instruccin 1 . instruccin 2 . ........ . valor n: instruccin 1 instruccin 2 ........ otros : instruccin 1 instruccin 2 ........ fin_caso Figura 27. Pseudocdigo de la estructura selectiva mltiple En el lugar donde aparece la palabra expresin pondremos lo que nosotros queremos evaluar; puede ser una variable, una instruccin o cualquier cosa que tome diferentes valores. En el lugar de <valor1> o <caso1>, <valor2> o <caso2>, ..., <valor n> o <caso n> pondremos los diferentes valores que pueda tomar la decisin, segn los cuales el programa debe hacer una u otra cosa. Pueden existir tanto valores como a nosotros nos convenga. Esta estructura es muy til en el momento en el que debemos tomar diferentes decisiones de una misma condicin. Ejemplo5: Realizar un algoritmo que lea un nmero que represente el da de la semana y diga qu da es, teniendo en cuenta lo siguiente: (Lunes=1, Martes=2, ..., Domingo=7). Figura 28. Diagrama de flujo del ejemplo 5 Ing. Mirko Manrique Ronceros Pgina 37 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 29. Diagrama estructurado del ejemplo 5 algoritmo Ejemplo5 var inicio fin entero : da leer (da) en caso (da) hacer 1: escribir(Lunes) 2: escribir(Martes) 3: escribir(Mircoles) 4: escribir(Jueves) 5: escribir(Viernes) 6: escribir(Sabado) 7: escribir(Domingo) fin_caso Figura 30. Pseudocdigo del ejemplo 5 Ejemplodeautoaprendizaje: Resuelva en diagrama de flujo, estructurado y pseudocdigo. Ejemplo6: Escribir un algoritmo que solicite el ingreso de dos nmeros y a continuacin un operador aritmtico (+, -, *, /). El algoritmo debe calcular el resultado de la operacin seleccionada. Ing. Mirko Manrique Ronceros Pgina 37 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 29. Diagrama estructurado del ejemplo 5 algoritmo Ejemplo5 var inicio fin entero : da leer (da) en caso (da) hacer 1: escribir(Lunes) 2: escribir(Martes) 3: escribir(Mircoles) 4: escribir(Jueves) 5: escribir(Viernes) 6: escribir(Sabado) 7: escribir(Domingo) fin_caso Figura 30. Pseudocdigo del ejemplo 5 Ejemplodeautoaprendizaje: Resuelva en diagrama de flujo, estructurado y pseudocdigo. Ejemplo6: Escribir un algoritmo que solicite el ingreso de dos nmeros y a continuacin un operador aritmtico (+, -, *, /). El algoritmo debe calcular el resultado de la operacin seleccionada. Ing. Mirko Manrique Ronceros Pgina 37 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 29. Diagrama estructurado del ejemplo 5 algoritmo Ejemplo5 var inicio fin entero : da leer (da) en caso (da) hacer 1: escribir(Lunes) 2: escribir(Martes) 3: escribir(Mircoles) 4: escribir(Jueves) 5: escribir(Viernes) 6: escribir(Sabado) 7: escribir(Domingo) fin_caso Figura 30. Pseudocdigo del ejemplo 5 Ejemplodeautoaprendizaje: Resuelva en diagrama de flujo, estructurado y pseudocdigo. Ejemplo6: Escribir un algoritmo que solicite el ingreso de dos nmeros y a continuacin un operador aritmtico (+, -, *, /). El algoritmo debe calcular el resultado de la operacin seleccionada. Ing. Mirko Manrique Ronceros Pgina 38 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Anidada La estructura selectiva anidada llamada tambin estructura de decisin anidada, viene hacer una estructura si-entonces que puede contener otra estructura si-entonces, y sta a su vez a otra estructura si-entonces, y as sucesivamente cualquier nmero de veces; dentro de cada estructura pueden existir diferentes instrucciones o acciones. Figura 31. Diagrama de flujo de la estructura selectiva anidada Figura 32. Diagrama estructurado de la estructura selectiva anidada Ing. Mirko Manrique Ronceros Pgina 38 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Anidada La estructura selectiva anidada llamada tambin estructura de decisin anidada, viene hacer una estructura si-entonces que puede contener otra estructura si-entonces, y sta a su vez a otra estructura si-entonces, y as sucesivamente cualquier nmero de veces; dentro de cada estructura pueden existir diferentes instrucciones o acciones. Figura 31. Diagrama de flujo de la estructura selectiva anidada Figura 32. Diagrama estructurado de la estructura selectiva anidada Ing. Mirko Manrique Ronceros Pgina 38 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Selectiva Anidada La estructura selectiva anidada llamada tambin estructura de decisin anidada, viene hacer una estructura si-entonces que puede contener otra estructura si-entonces, y sta a su vez a otra estructura si-entonces, y as sucesivamente cualquier nmero de veces; dentro de cada estructura pueden existir diferentes instrucciones o acciones. Figura 31. Diagrama de flujo de la estructura selectiva anidada Figura 32. Diagrama estructurado de la estructura selectiva anidada Ing. Mirko Manrique Ronceros Pgina 39 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN si condicin entonces si condicin entonces instruccin 1 instruccin 2 ...... instruccin n si_no fin_si si condicin entonces instruccin 1 instruccin 2 ...... instruccin m fin_si si_no fin_si instruccin 1 instruccin 2 ...... instruccin m Figura 33. Pseudocdigo de la estructura selectiva anidada Ejemplo7: Realizar un algoritmo que permita el ingreso de tres notas de un alumno. Calcular la nota promedio e imprima alguno de estos mensajes: a. Si el promedio est entre 20 y 16 mostrar Alumno Excelente b. Si el promedio est entre 15 y 11 mostrar Alumno Regular c. Si el promedio est entre 10 y 6 mostrar Alumno Malo d. Si el promedio est entre 5 y 0 mostrar Alumno Psimo Figura 34. Diagrama de flujo del ejemplo 7 Ing. Mirko Manrique Ronceros Pgina 40 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 35. Diagrama estructurado del ejemplo 7 algoritmo Ejemplo7 var inicio entero : n1, n2, n3, prom leer (n1, n2, n3) prom = (n1+n2+n3) / 3 si (prom<=5 y prom>=0) entonces escribir(Alumno Pesimo) else si (prom<=10) entonces escribir(Alumno Malo) else si (prom<=15) entonces escribir(Alumno Regular) else si (prom<=20) entonces escribir(Alumno Excelente) fin fin_si fin_si fin_si else fin_si escribir(Promedio desconocido) Figura 36. Pseudocdigo del ejemplo 7 Ing. Mirko Manrique Ronceros Pgina 40 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 35. Diagrama estructurado del ejemplo 7 algoritmo Ejemplo7 var inicio entero : n1, n2, n3, prom leer (n1, n2, n3) prom = (n1+n2+n3) / 3 si (prom<=5 y prom>=0) entonces escribir(Alumno Pesimo) else si (prom<=10) entonces escribir(Alumno Malo) else si (prom<=15) entonces escribir(Alumno Regular) else si (prom<=20) entonces escribir(Alumno Excelente) fin fin_si fin_si fin_si else fin_si escribir(Promedio desconocido) Figura 36. Pseudocdigo del ejemplo 7 Ing. Mirko Manrique Ronceros Pgina 40 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 35. Diagrama estructurado del ejemplo 7 algoritmo Ejemplo7 var inicio entero : n1, n2, n3, prom leer (n1, n2, n3) prom = (n1+n2+n3) / 3 si (prom<=5 y prom>=0) entonces escribir(Alumno Pesimo) else si (prom<=10) entonces escribir(Alumno Malo) else si (prom<=15) entonces escribir(Alumno Regular) else si (prom<=20) entonces escribir(Alumno Excelente) fin fin_si fin_si fin_si else fin_si escribir(Promedio desconocido) Figura 36. Pseudocdigo del ejemplo 7 Ing. Mirko Manrique Ronceros Pgina 41 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN ESTRUCTURAS REPETITIVAS Las computadoras estn diseadas para aquellas aplicaciones en las cuales una operacin o conjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es el algoritmo necesario para repetir una o varias acciones por un nmero determinado de veces, a est estructura se la llama Estructura Repetitiva. Las estructuras repetitivas se utilizan cuando se desea que una instruccin o bloque de instrucciones se repita un nmero determinado de veces o hasta que una condicin de terminacin se cumpla. Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces se denominan bucles, y se llama iteracin al hecho de repetir la ejecucin de una secuencia de acciones. Iterar es repetir una vez el bucle. Se debe tener en cuenta lo siguiente para la construccin de una estructura repetitiva: El cuerpo del bucle: Es el grupo de instrucciones que se van a repetir. Dentro del cuerpo del bucle debe existir una instruccin que modifique la condicin lgica de terminacin. Las sentencias de inicializacin. Son instrucciones que inicializan contadores y acumuladores. Las condiciones para la terminacin del bucle: Expresiones lgicas que controlan la terminacin del bucle. A continuacin se detallan tres estructuras repetitivas bsicas: 1. Estructura Repetitiva Desde / Para. (FOR) 2. Estructura Repetitiva Hacer Mientras. (DO WHILE) 3. Estructura Repetitiva Mientras. (WHILE) Para poder entender cmo funciona un proceso repetitivo, se necesita conocer el concepto de dos expresiones: Qu es un contador? y Qu es un acumulador? CONTADOR En un proceso repetitivo cuya funcin es contar los sucesos o acciones internas del bucle, como pueden ser el nmero de iteraciones del bucle, la cantidad de elementos que tiene un archivo, un vector, una matriz, etc. Una forma de controlar un bucle es mediante un contador. Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante o fija en cada iteracin. La forma de representar un contador es: contador = contador 1 La expresin anterior se debe interpretar como asignar a la variable contador el valor que tenia anteriormente ms uno o menos uno, dependiendo del caso si se quiere incrementar o decrementar. Ing. Mirko Manrique Ronceros Pgina 42 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Nota: En todo contador es necesario que exista una instruccin que inicializa la variable que va a tener la funcin de contador y esta variable puede ser cualquier identificador. Ejemplo 1: Contador que incrementa de uno en uno. La variable contador va a tener la funcin de ser el contador. contador = 1 // Inicializacin de la variable contador con el valor 1 contador = contador + 1 // la variable contador incrementa a 2 por la suma 1 Ejemplo 2: Contador que decrementa de uno en uno La variable cont va a tener la funcin de ser el contador. cont = 10 // Inicializacin de la variable cont con el valor 10 cont = cont - 1 // la variable cont decrementa a 9 por la resta 10 Nota: Un contador puede ser positivo (incrementos, uno a uno) o negativo (decrementos, uno a uno). Un contador tambin puede incrementar o decrementar de dos en dos, tres en tres, cuatro en cuatro y as sucesivamente, dependiendo de la tarea que est realizando el bucle. Ejemplo 3: Contador que incrementa de dos en dos c = 0 // Inicializacin de la variable c con el valor 0 c = c + 2 0 // la variable c incrementa a 2 por la suma Ejemplo 4: Contador que decrementa de cinco en cinco contador = 57 // la variable contador es igual a 57 contador = contador - 5 // el contador decrementa a 52 57 Ing. Mirko Manrique Ronceros Pgina 43 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN ACUMULADOR Un acumulador es una variable cuya misin es almacenar cantidades variables. Realiza la misma funcin que un contador pero con la diferencia de que el incremento o decremento es variable y no constante como en el contador. La forma de representar un acumulador es: S = S + valorVariable Nota: En todo acumulador es necesario que exista una instruccin que inicializa la variable que va a tener la funcin de acumulador y esta variable puede ser cualquier identificador. Ejemplo 5: Calcular el promedio de notas de 10 alumnos, primero debemos utilizar una variable acumulador para ir sumando las 10 notas (cantidades variables) y luego dividir este valor entre diez. La variable S va a tener la funcin de ser el acumulador. Solucin del ejemplo 5. S=0 leer(nota) S=S+nota Prom=S/10 La explicacin del algoritmo es el siguiente: S = 0 // Inicializacin de la variable S acumulador con el valor 0 // el bucle; tiene dos instrucciones. leer (nota) // 1. Se lee la 1era nota S = S + nota // Se suma la 1era nota + el valor de S que es cero 0 // Imaginemos que la 1era nota = 13, ahora S vale 13 // terminado regresa el bucle a su primera instruccin // // 2. Leer la 2da nota en la misma variable nota // imaginamos ahora nota=08, ahora S vale 13+8=21 // // 3. Leer nota por tercera vez // imaginamos ahora nota=17, ahora S vale 21+17=38 // 4. Leer nota por cuarta vez // nota=11, ahora S vale 38+11=49 // y asi sucesivamente hasta leer las 10 notas, // terminado en la varible acumuladora esta el total de // la suma de las 10 notas. Prom = S/10 // 5. Hallar el promedio = S / 10 Esto es la forma como trabaja un acumulador. Ing. Mirko Manrique Ronceros Pgina 44 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Repetitiva Desde/Para En muchas ocasiones se conoce de antemano el nmero de veces que se desean ejecutar las acciones o instrucciones de un bucle. En estos casos en los que el nmero de iteraciones es fijo, se debe usar la estructura desde/para. Por ejemplo, ingresar 10 notas, 100 nmeros, etc. La representacin grfica de la estructura repetitiva desde/para en un Diagrama de Flujo es el siguiente: Figura 37. Diagrama de flujo de la estructura repetitiva Desde/Para En su forma ms tpica y bsica, esta estructura requiere una variable entera que cumple la funcin de un contador de vueltas. En la seccin indicada como inicializacin, se suele colocar el nombre de la variable que har de contador, asignndole a dicha variable un valor inicial. En la seccin de condicin se coloca la condicin que deber ser verdadera para que el ciclo contine (en caso de falso el ciclo se detendr). Y finalmente, en la seccin modificacin se coloca una instruccin que permite modificar el valor de la variable que hace de contador (para permitir que alguna vez sea falsa). Ejemplo: Queremos que se repita 50 veces el bloque de instrucciones. Describiremos el siguiente ejemplo por etapas: Nota: El smbolo de la flecha apuntando a la izquierda ( ) significa = (igual) 1era Etapa (c=1): Cuando el ciclo comienza antes de dar la primera vuelta, la variable de inicializacin toma el valor indicado en la seccin de inicializacin. 1era Etapa Ing. Mirko Manrique Ronceros Pgina 45 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN 2da. Etapa (c<=50): Inmediatamente se verifica en forma automtica, si la condicin es verdadera. En caso de serlo se ejecuta el bloque de instrucciones del ciclo, es decir, si el bloque tuviera 5 instrucciones esas se realizan una por una. 2da Etapa 3era. Etapa (c=c+1): Al finalizar de ejecutarse el bloque de instruccines del bucle, la ejecucin de la estructura repetitiva se regresa a la seccin de modificacin. Se incrementa en una unidad en contador. 3era Etapa 4ta Etapa (c<=50): Seguidamente, se vuelve a comprobar la condicin si es verdadera, y si lo es, vuelve a realizar las instrucciones del ciclo, as prosigue ejecutndose todo el bucle hasta que la condicin es falsa y sale del bucle. Ing. Mirko Manrique Ronceros Pgina 46 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN 4ta Etapa Analicemos el ejemplo: La variable c toma inicialmente el valor 1. Se controla automticamente el valor de la condicin: como c vale 1 y esto es menor que 50, la condicin da verdadero. Como la condicin fue verdadera, se ejecutan la(s) instruccion(es). Al finalizar de ejecutar todas las instrucciones, se retorna a la instruccin c = c + 1, por lo que la variable c se incrementa en uno. Se vuelve a controlar automticamente si c es menor o igual a 50. Como ahora su valor es 2 y sigue siendo menor que 50, se ejecuta nuevamente el bloque de instrucciones e incrementa nuevamente la variable del contador c. El proceso se repetir hasta que la variable c sea incrementada al valor 51. En ese momento la condicin ser falsa, el ciclo se detendr y saldr del bucle repetitivo. La variable c puede ser inicializada y finalizar en cualquier valor. Adems, no es obligatorio que la instruccin de modificacin sea un incremento de tipo contador c = c + 1. Puede ser tambin c = c + 2, en lugar de c = c + 1, el valor de c ser incrementado de a 2 en cada vuelta, y no de a uno. En este caso, esto significar que el ciclo no efectuar las 50 vueltas sino solo 25 Por qu? La instruccin de modificacin no solamente puede ser un incrementador, tambin puede ser un decrementador, es decir, la variable de inicializacin decrementar a lo que se desea, esto se puede hacer siempre y cuando la variable de inicializacin comienza en un valor mayor que el de la condicin, por ejemplo: Ing. Mirko Manrique Ronceros Pgina 47 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Analicemos el ejemplo: La variable c toma inicialmente el valor 100. El valor de la condicin es c >= 1. La variable c decrementa de dos en dos. Esto quiere decir que el bucle se repite 50 veces, que comienza en un valor de contador = 100, decrementa de dos en dos, hasta que la condicin es falsa. La representacin grfica de la estructura repetitiva desde/para en el diagrama estructurado y pseudocdigo son los siguientes: estructura repetitiva desde/para Figura 38. Diagrama estructurado de la estructura repetitiva Desde/Para inicializacin condicin modificacin desde c = vi hasta vf inc|dec valor hacer instruccin 1 instruccin 2 . . instruccin n fin_desde Figura 39. Pseudocdigo de la estructura repetitiva Desde/Para Ing. Mirko Manrique Ronceros Pgina 48 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo 1: Realizar un algoritmo que permita hallar la suma de los 10 primeros nmeros enteros positivos, y su promedio. Cuerpo del bucle Figura 40. Diagrama de flujo del ejemplo 1 Figura 41. Diagrama estructurado del ejemplo 1 Cuerpo del bucle Ing. Mirko Manrique Ronceros Pgina 49 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN algoritmo Ejemplo1 var inicio fin entero: c , suma real: prom suma = 0 desde c = 1 hasta 10 inc 1 hacer suma = suma + c fin_desde prom = suma/10 escribir(La suma es : ,suma) escribir(El promedio es : ,prom) Cuerpo del bucle Figura 42. Pseudocdigo del ejemplo 1 Nota: En Pseudocdigo si la instruccin de incremento es en uno, se puede obviar la instruccin inc 1, y solamente se puede colocar: desde c = 1 hasta 10 hacer . Porque en algoritmo se sobrentiende que aumenta en 1. Ejemplo2: Realizar un algoritmo que permita hallar la suma y promedio de 20 nmeros enteros ingresados por teclado. Cuerpo del bucle Figura 43. Diagrama de flujo del ejemplo 2 Ing. Mirko Manrique Ronceros Pgina 50 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 44. Diagrama estructurado del ejemplo 2 algoritmo Ejemplo2 var Cuerpo del bucle inicio fin entero: n, c, suma real: prom suma = 0 desde c = 1 hasta 20 inc 1 leer(n) suma = suma + n fin_desde prom = suma/20 escribir(La suma es : ,suma) escribir(El promedio es : ,prom) Cuerpo del bucle Figura 45. Pseudocdigo del ejemplo 2 Ejemplosdeautoaprendizaje: Resuelva en diagrama de flujo, estructurado y pseudocdigo. Ejemplo3: Realizar un algoritmo que me permita leer 10 nmeros positivos y negativos, e imprima solamente los nmeros positivos. Ejemplo4: Realizar un algoritmo que me permita leer 20 nmeros e imprimir cuntos son positivos, negativos y neutros. Dato: Neutro se le conoce al cero 0 Ing. Mirko Manrique Ronceros Pgina 51 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Repetitiva Hacer - Mientras Existen muchas situaciones en las que se desea que un bucle se ejecute al menos una vez antes de comprobar la condicin de repeticin, para ello se puede utilizar la estructura repetitiva Hacer - Mientras. Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutar el bloque repetitivo. Cuando una instruccin Hacer-Mientras se ejecuta, lo primero que sucede es la ejecucin del bucle (todas las instrucciones) y a continuacin se evala la expresin booleana de la condicin. Si se evala como verdadera, el cuerpo del bucle se repite y se vuelve a evaluar la condicin, si sigue siendo verdadera se seguir repitiendo el bucle hasta que la condicin sea falsa. Dentro del bucle existir una instruccin que en un cierto momento har que la condicin sea falsa. La representacin grfica de la estructura repetitiva Hacer-Mientras es la siguiente: Figura 46. Diagrama de flujo de la estructura repetitiva Hacer-Mientras estructura repetitiva hacer/mientras Figura 47. Diagrama estructurado de la estructura repetitiva Hacer-Mientras hacer instruccin 1 instruccin 2 . . instruccin n mientras (condicin) Figura 48. Pseudocdigo de la estructura repetitiva Hacer-Mientras Ing. Mirko Manrique Ronceros Pgina 52 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN A continuacin se presenta el siguiente ejemplo para comprender el funcionamiento de la estructura repetitiva Hacer-Mientras. Ejemplo 5: En el curso de Algoritmos y Diagramacin existen 40 alumnos, de los cuales se tiene el promedio de la Primera Unidad. Se pide realizar un algoritmo que permita hallar el promedio general de estos alumnos. Solucin Cuerpo del bucle Figura 49. Diagrama de flujo del ejemplo 5 Desarrollamos el ejemplo 5 en 5 pasos: 1. Se asignan valores a las variables c = 0 y suma = 0 2. Se ingresa al cuerpo del bucle (no existe ninguna instruccin que nos impida), se tiene tres instrucciones: 2.1. En la primera instruccin que se ejecuta tenemos un contador, este contador incrementa en una unidad siendo su resultado c = 1. 2.2. En la segunda instruccin se lee la nota del primer alumno (esta nota se ingresa por teclado). Ing. Mirko Manrique Ronceros Pgina 53 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN 2.3. La tercera instruccin es un acumulador; cuya funcin es acumular la suma de todas las notas (40 notas). 3. A continuacin, se evala la condicin; se pregunta: c es menor que 40? Si la respuesta es verdadera se regresa al paso 2 y se ejecutan las tres instrucciones del cuerpo del bucle nuevamente, de lo contrario se contina con el paso 4. 4. Se llega a este paso despus de finalizarse las 40 iteraciones que da el bucle. En la variable suma se tiene la suma total de las notas y ahora se ejecuta la instruccin que permite hallar el promedio. 5. Muestra en pantalla el resultado del promedio de notas. La solucin del ejemplo 5 en el diagrama estructurado y pseudocdigo es el siguiente: Figura 50. Diagrama estructurado del ejemplo 5 algoritmo Ejemplo5 var Cuerpo del bucle inicio entero: nota, c, suma real: prom c = 0 suma = 0 hacer fin c = c + 1 leer(nota) suma = suma + nota mientras (c < 40) prom = suma/c escribir(El promedio general es : ,prom) Cuerpo del bucle Figura 51. Pseudocdigo del ejemplo 5 Ing. Mirko Manrique Ronceros Pgina 53 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN 2.3. La tercera instruccin es un acumulador; cuya funcin es acumular la suma de todas las notas (40 notas). 3. A continuacin, se evala la condicin; se pregunta: c es menor que 40? Si la respuesta es verdadera se regresa al paso 2 y se ejecutan las tres instrucciones del cuerpo del bucle nuevamente, de lo contrario se contina con el paso 4. 4. Se llega a este paso despus de finalizarse las 40 iteraciones que da el bucle. En la variable suma se tiene la suma total de las notas y ahora se ejecuta la instruccin que permite hallar el promedio. 5. Muestra en pantalla el resultado del promedio de notas. La solucin del ejemplo 5 en el diagrama estructurado y pseudocdigo es el siguiente: Figura 50. Diagrama estructurado del ejemplo 5 algoritmo Ejemplo5 var Cuerpo del bucle inicio entero: nota, c, suma real: prom c = 0 suma = 0 hacer fin c = c + 1 leer(nota) suma = suma + nota mientras (c < 40) prom = suma/c escribir(El promedio general es : ,prom) Cuerpo del bucle Figura 51. Pseudocdigo del ejemplo 5 Ing. Mirko Manrique Ronceros Pgina 53 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN 2.3. La tercera instruccin es un acumulador; cuya funcin es acumular la suma de todas las notas (40 notas). 3. A continuacin, se evala la condicin; se pregunta: c es menor que 40? Si la respuesta es verdadera se regresa al paso 2 y se ejecutan las tres instrucciones del cuerpo del bucle nuevamente, de lo contrario se contina con el paso 4. 4. Se llega a este paso despus de finalizarse las 40 iteraciones que da el bucle. En la variable suma se tiene la suma total de las notas y ahora se ejecuta la instruccin que permite hallar el promedio. 5. Muestra en pantalla el resultado del promedio de notas. La solucin del ejemplo 5 en el diagrama estructurado y pseudocdigo es el siguiente: Figura 50. Diagrama estructurado del ejemplo 5 algoritmo Ejemplo5 var Cuerpo del bucle inicio entero: nota, c, suma real: prom c = 0 suma = 0 hacer fin c = c + 1 leer(nota) suma = suma + nota mientras (c < 40) prom = suma/c escribir(El promedio general es : ,prom) Cuerpo del bucle Figura 51. Pseudocdigo del ejemplo 5 Ing. Mirko Manrique Ronceros Pgina 54 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo 6: Se desea contabilizar cuntos nmeros son positivos, negativos y neutros del ingreso continuo de nmeros enteros. Este proceso re repite hasta que el usuario pulse la tecla N al mensaje en pantalla Desea Continuar[s/n]:. Solucin Para la solucin del problema se va a necesitar de tres contadores, que realizarn la accin de contar cuntos nmeros son positivos, negativos y neutros se ingresarn por teclado, de una serie de nmeros. Para ello, utilizaremos tres variables, a las que llamaremos: cc : contador de ceros cp : contador de positivos cn : contador de negativos Adems, utilizaremos estructuras selectivas anidadas, con las que haremos la comprobacin de cules nmeros son iguales a cero, positivos y negativos. Y de acuerdo al resultado de la condicin, los contadores (cc, cp y cn) incrementarn su valor. Terminadas de realizar todas las condiciones, se preguntar al usuario si Desea continuar [s/n] ingresando ms nmeros, para ello utilizaremos una variable de tipo carcter, llamado opc. El cul almacenar el carcter de s de s continuo, o n de no continuo ingresando valores. De acuerdo a la respuesta seguiremos o terminamos el bucle. Al responder en n de no continuo el algoritmo debe reportar lo siguiente: Cantidad de nmeros ceros. Cantidad de nmeros positivos. Cantidad de nmeros negativos. Ing. Mirko Manrique Ronceros Pgina 55 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 52. Diagrama de flujo del ejemplo 6 Ing. Mirko Manrique Ronceros Pgina 56 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 53. Diagrama estructurado del ejemplo 6 algoritmo Ejemplo6 var inicio entero: n, cc, cp, cn caracter: opc cc = 0 cp = 0 cn = 0 hacer leer (n) si (n=0) entonces cc = cc + 1 sino si (n>0) entonces cp = cp + 1 fin_si sino fin_si cn = cn + 1 fin escribir(Desea continuar : [s/n] :) escribir(opc) mientras (opc = s) escribir(Cantidad de ceros : ,cc) escribir(Cantidad de positivos : ,cp) escribir(Cantidad de ceros : ,cn) Figura 54. Pseudocdigo del ejemplo 6 Ing. Mirko Manrique Ronceros Pgina 56 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 53. Diagrama estructurado del ejemplo 6 algoritmo Ejemplo6 var inicio entero: n, cc, cp, cn caracter: opc cc = 0 cp = 0 cn = 0 hacer leer (n) si (n=0) entonces cc = cc + 1 sino si (n>0) entonces cp = cp + 1 fin_si sino fin_si cn = cn + 1 fin escribir(Desea continuar : [s/n] :) escribir(opc) mientras (opc = s) escribir(Cantidad de ceros : ,cc) escribir(Cantidad de positivos : ,cp) escribir(Cantidad de ceros : ,cn) Figura 54. Pseudocdigo del ejemplo 6 Ing. Mirko Manrique Ronceros Pgina 56 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 53. Diagrama estructurado del ejemplo 6 algoritmo Ejemplo6 var inicio entero: n, cc, cp, cn caracter: opc cc = 0 cp = 0 cn = 0 hacer leer (n) si (n=0) entonces cc = cc + 1 sino si (n>0) entonces cp = cp + 1 fin_si sino fin_si cn = cn + 1 fin escribir(Desea continuar : [s/n] :) escribir(opc) mientras (opc = s) escribir(Cantidad de ceros : ,cc) escribir(Cantidad de positivos : ,cp) escribir(Cantidad de ceros : ,cn) Figura 54. Pseudocdigo del ejemplo 6 Ing. Mirko Manrique Ronceros Pgina 57 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo de autoaprendizaje: Resuelva en diagrama de flujo, diagrama estructurado y pseudocdigo. Ejemplo 7: En una campaa mdica de medicin de presin, se pide que se ingresen todas las edades de los pacientes que sern atendidos. Se solicita que se calcule la mayor y menor edad ingresada. El Ing. Mirko Manrique Ronceros Pgina 58 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Repetitiva Mientras El proceso de una estructura repetitiva Mientras es el siguiente: para que ingrese al cuerpo del bucle tiene que evaluarse una condicin, si sta es verdadera se ingresa y se realizan todas las instrucciones que estn dentro del cuerpo del bucle; terminado la ltima instruccin se vuelve a comprobar la condicin; se seguir realizando el bucle mientras la condicin siga siendo verdadera y si en un momento es falsa sale del bucle. Es decir, la estructura repetitiva Mientras es aquella en que el cuerpo del bucle se repite mientras se cumpla una determinada condicin, y termina cuando ya no se cumple. Si al querer ingresar al cuerpo del bucle por primera vez y la condicin es falsa, no ingresa al bucle, ninguna accin se realiza y el algoritmo prosigue en la siguiente instruccin fuera del bucle. La representacin grfica de la estructura repetitiva Mientras es la siguiente: Figura 55. Diagrama de Flujo de la estructura repetitiva Mientras Figura 56. Diagrama Estructurado de la estructura repetitiva Mientras Ing. Mirko Manrique Ronceros Pgina 58 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Repetitiva Mientras El proceso de una estructura repetitiva Mientras es el siguiente: para que ingrese al cuerpo del bucle tiene que evaluarse una condicin, si sta es verdadera se ingresa y se realizan todas las instrucciones que estn dentro del cuerpo del bucle; terminado la ltima instruccin se vuelve a comprobar la condicin; se seguir realizando el bucle mientras la condicin siga siendo verdadera y si en un momento es falsa sale del bucle. Es decir, la estructura repetitiva Mientras es aquella en que el cuerpo del bucle se repite mientras se cumpla una determinada condicin, y termina cuando ya no se cumple. Si al querer ingresar al cuerpo del bucle por primera vez y la condicin es falsa, no ingresa al bucle, ninguna accin se realiza y el algoritmo prosigue en la siguiente instruccin fuera del bucle. La representacin grfica de la estructura repetitiva Mientras es la siguiente: Figura 55. Diagrama de Flujo de la estructura repetitiva Mientras Figura 56. Diagrama Estructurado de la estructura repetitiva Mientras Ing. Mirko Manrique Ronceros Pgina 58 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Estructura Repetitiva Mientras El proceso de una estructura repetitiva Mientras es el siguiente: para que ingrese al cuerpo del bucle tiene que evaluarse una condicin, si sta es verdadera se ingresa y se realizan todas las instrucciones que estn dentro del cuerpo del bucle; terminado la ltima instruccin se vuelve a comprobar la condicin; se seguir realizando el bucle mientras la condicin siga siendo verdadera y si en un momento es falsa sale del bucle. Es decir, la estructura repetitiva Mientras es aquella en que el cuerpo del bucle se repite mientras se cumpla una determinada condicin, y termina cuando ya no se cumple. Si al querer ingresar al cuerpo del bucle por primera vez y la condicin es falsa, no ingresa al bucle, ninguna accin se realiza y el algoritmo prosigue en la siguiente instruccin fuera del bucle. La representacin grfica de la estructura repetitiva Mientras es la siguiente: Figura 55. Diagrama de Flujo de la estructura repetitiva Mientras Figura 56. Diagrama Estructurado de la estructura repetitiva Mientras Ing. Mirko Manrique Ronceros Pgina 59 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN mientras (condicin) hacer instruccin 1 instruccin 2 . . instruccin n fin_mientras Figura 57. Pseudocdigo de la estructura repetitiva Mientras A continuacin se presenta el siguiente ejemplo para comprender el funcionamiento de la estructura repetitiva Mientras. Ejemplo 8: Escribir un algoritmo que lea las 40 notas finales del curso de Fundamentos de Programacin, e informe cuntos alumnos han aprobado y cuntos desaprobaron. Dato: (Nota >= 10.5 Aprobado) Figura 58. Diagrama de Flujo del ejemplo 8 Ing. Mirko Manrique Ronceros Pgina 60 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 59. Diagrama estructurado del ejemplo 8 algoritmo Ejemplo8 var inicio entero: c, ca, cd real: notaFinal c = 0 ca = 0 cd = 0 mientras ( c < 40 ) hacer c = c + 1 leer (notaFinal) si (notaFinal >= 10.5) entonces ca = ca + 1 sino fin_si fin_mientras cd = cd + 1 fin escribir(Aprobados : ,ca) escribir(Desaprobados : ,cd) Figura 60. Pseudocdigo del ejemplo 8 Ing. Mirko Manrique Ronceros Pgina 60 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 59. Diagrama estructurado del ejemplo 8 algoritmo Ejemplo8 var inicio entero: c, ca, cd real: notaFinal c = 0 ca = 0 cd = 0 mientras ( c < 40 ) hacer c = c + 1 leer (notaFinal) si (notaFinal >= 10.5) entonces ca = ca + 1 sino fin_si fin_mientras cd = cd + 1 fin escribir(Aprobados : ,ca) escribir(Desaprobados : ,cd) Figura 60. Pseudocdigo del ejemplo 8 Ing. Mirko Manrique Ronceros Pgina 60 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 59. Diagrama estructurado del ejemplo 8 algoritmo Ejemplo8 var inicio entero: c, ca, cd real: notaFinal c = 0 ca = 0 cd = 0 mientras ( c < 40 ) hacer c = c + 1 leer (notaFinal) si (notaFinal >= 10.5) entonces ca = ca + 1 sino fin_si fin_mientras cd = cd + 1 fin escribir(Aprobados : ,ca) escribir(Desaprobados : ,cd) Figura 60. Pseudocdigo del ejemplo 8 Ing. Mirko Manrique Ronceros Pgina 61 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo 9: Realizar un algoritmo que permita calcular la suma de los nmeros enteros comprendidos entre dos cantidades ingresadas por teclado. Hallar adicionalmente el promedio de la suma. Figura 61. Diagrama de Flujo del ejemplo 9 Ing. Mirko Manrique Ronceros Pgina 61 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo 9: Realizar un algoritmo que permita calcular la suma de los nmeros enteros comprendidos entre dos cantidades ingresadas por teclado. Hallar adicionalmente el promedio de la suma. Figura 61. Diagrama de Flujo del ejemplo 9 Ing. Mirko Manrique Ronceros Pgina 61 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Ejemplo 9: Realizar un algoritmo que permita calcular la suma de los nmeros enteros comprendidos entre dos cantidades ingresadas por teclado. Hallar adicionalmente el promedio de la suma. Figura 61. Diagrama de Flujo del ejemplo 9 Ing. Mirko Manrique Ronceros Pgina 62 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 62. Diagrama estructurado del ejemplo 9 algoritmo Ejemplo9 var inicio entero: Pnum, Snum, c, suma, aux real: prom leer( Pnum , Snum ) c = 0 suma = 0 si (Pnum>Snum) entonces aux = Pnum Pnum = Snum Snum = aux fin fin_si mientras ( Pnum <= Snum ) hacer c = c + 1 suma = suma + Pnum Pnum = Pnum + 1 fin_mientras prom = suma / c escribir(La suma es : ,suma) escribir(El promedio es : ,prom) Figura 63. Pseudocdigo del ejemplo 9 Ing. Mirko Manrique Ronceros Pgina 62 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 62. Diagrama estructurado del ejemplo 9 algoritmo Ejemplo9 var inicio entero: Pnum, Snum, c, suma, aux real: prom leer( Pnum , Snum ) c = 0 suma = 0 si (Pnum>Snum) entonces aux = Pnum Pnum = Snum Snum = aux fin fin_si mientras ( Pnum <= Snum ) hacer c = c + 1 suma = suma + Pnum Pnum = Pnum + 1 fin_mientras prom = suma / c escribir(La suma es : ,suma) escribir(El promedio es : ,prom) Figura 63. Pseudocdigo del ejemplo 9 Ing. Mirko Manrique Ronceros Pgina 62 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN Figura 62. Diagrama estructurado del ejemplo 9 algoritmo Ejemplo9 var inicio entero: Pnum, Snum, c, suma, aux real: prom leer( Pnum , Snum ) c = 0 suma = 0 si (Pnum>Snum) entonces aux = Pnum Pnum = Snum Snum = aux fin fin_si mientras ( Pnum <= Snum ) hacer c = c + 1 suma = suma + Pnum Pnum = Pnum + 1 fin_mientras prom = suma / c escribir(La suma es : ,suma) escribir(El promedio es : ,prom) Figura 63. Pseudocdigo del ejemplo 9 Ing. Mirko Manrique Ronceros Pgina 63 de 63 Universidad Nacional del Santa Facultad de Ingeniera E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN