Universidad Nacional del Santa FUNDAMENTOS DE...

download Universidad Nacional del Santa FUNDAMENTOS DE …biblioteca.uns.edu.pe/saladocentes/archivoz/publicacionez/... · para esta ocasión Java y el IDE Netbeans para codificar los algoritmos

If you can't read please download the document

Transcript of Universidad Nacional del Santa FUNDAMENTOS DE...

  • Ing. Mirko Manrique Ronceros Pgina 1 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Universidad Nacional del Santa

    Facultad de Ingeniera

    E.A.P. Sistemas e Informtica

    FUNDAMENTOS DE PROGRAMACION

    Ing. MIRKO MANRIQUE RONCEROS

    PRIMERA EDICION

    CHIMBOTE - PERU

  • Ing. Mirko Manrique Ronceros Pgina 2 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    INDICEINTRODUCCION

    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 SantaFacultad 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 SantaFacultad 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 leproporcionan 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 delas cuales especifica las operaciones que debe realizar la computadora.

    Caractersticas de un algoritmoLas 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 mismoalgoritmo.

    El proceso de un algoritmoLa definicin de un algoritmo debe describir tres partes: Entrada, proceso y salida.

    Entrada SalidaProceso

    La informacin proporcionada al algoritmo constituye su entrada, el procedimiento para lasolucin del problema constituye su proceso y la informacin producida por el algoritmoconstituye 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 alturaProceso ---> rea = base x alturaDatos de Salida ---> El rea del paralelogramo

  • Ing. Mirko Manrique Ronceros Pgina 5 de 63

    Universidad Nacional del SantaFacultad 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.ProcesoDatos de Salida

    --->--->

    rea = r2 y Longitud = 2rEl rea y longitud de una circunferencia.

    Verificacin del algoritmo o prueba de escritorioUna vez escrito el algoritmo es necesario asegurarse de que ste realiza las tareas para las queha 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 datossignificativos que abarquen todo el posible rango de valores y anotando en una hoja de papel losvalores que van tomando en las diferentes fases, los datos de entrada o auxiliares y, por ltimo losvalores de los resultados. Este proceso se conoce como prueba del algoritmo o prueba deescritorio.

    Haremos una prueba de escritorio de los dos problemas anteriores:

    Elementos Ejercicio 01 Ejercicio 02Datos de entrada r (radio) = 3

    (pi) = 3.14 (Solo tomaremos hastados decimales)

    Base = 5 Altura = 3

    Proceso A = r2 = 3.14 x (3)2 L = 2r = 2 x 3.14 x 3

    A = base x alturaA = 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 reservadasPalabras 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    IdentificadoresSon nombres usados para identificar a los objetos y dems elementos de un programa: variables,constantes, operadores, funciones, procedimientos, etc. Existen reglas para construiridentificadores 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.

    VariablesUna variable es un objeto a quien se le asigna un valor y cuyo valor puede cambiar durante eldesarrollo del algoritmo o ejecucin del programa. Si una variable est compuesto por dospalabras, 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 delalgoritmo 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 querepresentan, 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 porquetienen otro significado a lo expresado:

    azucar para representar la nota de una clase.pan para representar la edad de una persona.

    ConstantesUna constante toma o recibe un valor que no cambia durante el desarrollo del algoritmo o laejecucin del programa.

    InstruccionesLas instrucciones especifican las operaciones o acciones que deben ser realizadas o ejecutadas.

  • Ing. Mirko Manrique Ronceros Pgina 7 de 63

    Universidad Nacional del SantaFacultad 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 defunciones especiales, que cumplen determinadas reglas.

    Ejemplos: a + ( b * 3 ) / c 5 * a * b / ( c + d)

    1. EXPRESIONES ARITMTICASSon anlogas a las formulas matemticas. Las variables y constantes son numricas (real oentera) y las operaciones son las aritmticas.

    Operadores AritmticosSignificado Operador Algebraico Operador AlgoritmicoSuma + +Resta - -Multiplicacin x *Divisin real / /Divisin entera / divExponenciacin -,**,^Modulo (resto oresiduo)

    mod

    Tabla 1: Operadores Aritmticos

    A continuacin se mostrarn las equivalencias que debe conocer entre expresiones algebraicas yexpresiones aritmticas.

    Ejemplos:

    RepresentacinAlgebraica RepresentacinAlgortmica12 + 19 12 + 19a b a - b5 x 7 5 * 76 + c (6 / 4) + c437 3 ^ 7

    Reglas de prioridadLas expresiones que tienen dos o ms operandos en una expresin se evalan, en general, segnel siguiente orden.

    1. Las operaciones que estn encerradas entre parntesis se evalan primero. Si existendiferentes parntesis anidados (internos unos a otros), las expresiones ms internas seevalan primero.

    2. Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden deprioridad.

    a. Operador exponencial ( , o bien **)b. Operadores *, /, \c. Operadores div y modd. Operadores + , -

  • Ing. Mirko Manrique Ronceros Pgina 8 de 63

    Universidad Nacional del SantaFacultad 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 encerradaentre 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 ^ 2b) -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 + 3zc) a2 + 2a 3d) x2 y2e) p+q r

    + st

    f) a (cd)b

    Solucin:

    a) 7 ( a + b ) 7 * (a + b)b) 8x + 9y + 3z 8 * x + 9 * y + 3 * zc) a2 + 2a 3 a ^ 2 + 2 * a - 3d) x2 y2 x ^ 2 y ^ 2e) p+q (p + q) / (r + s / t)

    r + st

    f) a (cd) a / b * c * db

    Divisin entera (div)Es la accin de dividir dos nmeros enteros uno viene hacer el dividendo y el otro el divisor, elresultado del operador div es el valor del cociente. En esta divisin no es de mucha importancia elresiduo. 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    el siguiente ejemplo:

    Ejemplo: 9 div 2 = 4

    Dividendo 9 28 41

    Residuo

    Divisor

    CocienteEjemplos:

    a. 15 div 6 = 2 b. 14 div 2 = 7 c. 0 div 3 = 0d. 7 div 9 = 0 e. 3 div 3 = 1 f. 2 div 5 = 0

    Reglasdeladivisinrealyentera:Los operandos pueden ser enteros(E) o reales(R).

    EnteroDivisinreal DivisinenteraE / E = R E div E = EE / R = R E div R = No VlidoR / 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 eloperador div, para poder hallar el residuo de una divisin utilizando el operador mod, losoperandos deben ser exclusivamente enteros.Reglasdelresiduo:

    ResiduoE mod E = EE mod R = No VlidoR mod E = No VlidoR mod R = No Vlido

    Ejemplos:a. 15 mod 6 = 3 b. 14 mod 2 = 0 c. 19 mod 3 = 1d. 7 mod 9 = 7 e. 3 mod 3 = 0 f. 2 mod 5 = 2

    2. EXPRESIONES LGICASUna expresin lgica es una expresin que solo puede tomar dos valores: verdad y falso. Lasexpresiones lgicas se forman combinando constantes lgicas, variables lgicas y otrasexpresiones lgicas, utilizando los operadores relacionales (de relacin o comparacin) y losoperadores lgicos not, and y or.

    Operadores de relacinPermiten realizar comparaciones de valores de tipo numrico o carcter. Los operadores derelacin sirven para expresar las condiciones en los algoritmos. El resultado de las operaciones decomparacin ser verdadero o falso.

  • Ing. Mirko Manrique Ronceros Pgina 10 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Operadores de RelacinSignificado Operador Algebraico Operador AlgoritmicoMenor que > Igual que = =Menor o igual que =Distinto de oDiferente de

    Tabla 2: Operadores de Relacin

    Ejemplos:Si P = 7 * 2 y Q = 3 ^ 2

    Expresin Lgica ResultadoP > Q VerdadP < Q FalsoP Q Verdad(P-3) = (Q+2) Verdad15 < 14 Falso4 + 6 = 9 Falso

    Para realizar comparaciones de datos tipo carcter, se requiere una secuencia de ordenacin delos caracteres, similar al orden creciente o decreciente. Esta ordenacin suele ser alfabtica, tantomaysculas 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

  • Ing. Mirko Manrique Ronceros Pgina 11 de 63

    Universidad Nacional del SantaFacultad 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 QV F V V V V V VF V V F F V F V

    F V F F V VF F F F F F

    Nota:Siendo P y Q expresiones booleanas, V valor verdadero, F valor falso.Negacin = notDisyuncin = andConjuncin = 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 delas operaciones aritmticas bsicas, ya tratadas, un nmero determinado de operadoresespeciales que se denominan funciones internas, incorporadas o estndar.

    Por ejemplo, la funcin raiz2 calcula la raz cuadrada de un nmero positivo, la funcin absdevuelve el valor absoluto de un nmero, la funcin cuadrado devuelve el valor de un nmeroelevado al cuadrado. Existen otras funciones que se utilizan para determinar las funcionestrigonomtricas.

    La siguiente tabla recoge las funciones internas ms usuales en algoritmos, siendo x elargumento de la funcin.

  • Ing. Mirko Manrique Ronceros Pgina 12 de 63

    Universidad Nacional del SantaFacultad 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 querealice la funcin:

    Ejemplos:

    Tabla 5: Ejemplos

  • Ing. Mirko Manrique Ronceros Pgina 13 de 63

    Universidad Nacional del SantaFacultad 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 datospueden ser las cifras de ventas de una bodega, tickets para un encuentro deportivo, ingreso diariode una empresa o las calificaciones de un saln de clase. Los algoritmos y programascorrespondientes operan sobre datos.

    Los tipos de datos definen un conjunto de valores que puede almacenar una variable, junto con unconjunto 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 numricosEl tipo numrico es el conjunto de los valores numricos. Estos pueden representarse en dosformas distintas:

    Tipo numrico entero (int, integer) Tipo numrico real (float, double)

    Tipo enteroEs el subconjunto finito de los nmeros enteros, no tienen componentes fraccionarios o decimales,y pueden ser negativos o positivos.

    Ejemplos:6 -9-20 115 1915 -1

    Tipo realesSubconjunto de los nmeros reales, siempre tiene un punto decimal y pueden ser positivos onegativos. Constan de un entero y una parte decimal.Ejemplos:

    9.9 12.24-123.11 0.89

    1470.274 -0.9954.77 3.0

    Nota:Existe un tipo de representacin denominado notacin exponencial o cientfica y que se utilizapara nmeros muy grandes o muy pequeos.

    Ejemplo:

    Dado un nmero cualquiera:

    367520100000000000000

  • Ing. Mirko Manrique Ronceros Pgina 14 de 63

    Universidad Nacional del SantaFacultad 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 1020

    Ejemplos:

    2079546000000 = 2.079546 x 10128927645125 = 8.927645 x 109

    0.000000032458 = 3.2458 x 10-80.0000000009284 = 9.284 x 10-10

    Datos lgicosEs 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 imparo par.

    Datos tipo carcter y tipo cadenaUn 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 lamayora 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 delimitadospor una comilla simple (apostrofo) o dobles comillas.Ejemplos:

    Carcter : a b mp q MZ Y N

    Cadena : Hola Per8 de Octubre de 1879Juan Pablo II

  • Ing. Mirko Manrique Ronceros Pgina 15 de 63

    Universidad Nacional del SantaFacultad 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 dichoalgoritmo del lenguaje de programacin elegido. Ello permitir que un algoritmo pueda sercodificado indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que elalgoritmo sea representado grfica o numricamente, de modo que las sucesivas acciones nodependan de la sintaxis de ningn lenguaje de programacin, sino que la descripcin pueda servirfcilmente 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 FlujoUn diagrama de flujo es una de las tcnicas de representacin de algoritmos ms antigua y a lavez ms utilizada, aunque su empleo ha disminuido considerablemente. Un diagrama de flujo esun diagrama que utiliza los smbolos (cajas) estndar y que tiene los pasos del algoritmo escritosen esas cajas unidas por flechas, denominadas lneas de flujo, que indican la secuencia en que sedeben ejecutar.

    Los smbolos ms utilizados en un diagrama de flujo son:

    Smbolos Nombre FuncinTerminal 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 perifricosde entrada o muestra informacin en algn perifrico desalida.

    Proceso Cualquier tipo de operacin que pueda originar cambio devalor, formato o posicin, operaciones aritmticas, etc.

    no Decisin Empleado cuando el programa debe tomar una decisin condos salidas posibles (si, no) dependiendo del valor de una

    si condicin lgica.

    Decisinmltiple

    En funcin del resultado de la comparacin se seguir unode los diferentes caminos de acuerdo con dicho resultado.

    Conector Sirve para enlazar dos partes cualesquiera de unorganigrama. Se refiere a la conexin en la misma pginadeldiagrama.

    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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Smbolo Nombre FuncinConector Conexin entre dos puntos del organigrama situado en

    pginas diferentes.

    Subrutina oProcedimiento

    Es un mdulo independiente del programa principal, querecibe una entrada procedente de dicho programa, realizauna tarea determinada y regresa al terminar, al programaprincipal.

    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.

    PrimeralgoritmoconundiagramadeflujoPara conocer como se resuelve un problema mediante el diagrama de flujo, resolveremos unejemplo:

    Ejemplo 1:El diagrama de flujo siguiente representa la resolucin de nuestro primer programa que deduce elrea y permetro de un rectngulo, sabiendo que su base y altura tienen los valores 8cm y 2cmrespectivamente.

    01

    02 05

    03 06

    04 07

    Ing. Mirko Manrique Ronceros Pgina 16 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Smbolo Nombre FuncinConector Conexin entre dos puntos del organigrama situado en

    pginas diferentes.

    Subrutina oProcedimiento

    Es un mdulo independiente del programa principal, querecibe una entrada procedente de dicho programa, realizauna tarea determinada y regresa al terminar, al programaprincipal.

    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.

    PrimeralgoritmoconundiagramadeflujoPara conocer como se resuelve un problema mediante el diagrama de flujo, resolveremos unejemplo:

    Ejemplo 1:El diagrama de flujo siguiente representa la resolucin de nuestro primer programa que deduce elrea y permetro de un rectngulo, sabiendo que su base y altura tienen los valores 8cm y 2cmrespectivamente.

    01

    02 05

    03 06

    04 07

    Ing. Mirko Manrique Ronceros Pgina 16 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Smbolo Nombre FuncinConector Conexin entre dos puntos del organigrama situado en

    pginas diferentes.

    Subrutina oProcedimiento

    Es un mdulo independiente del programa principal, querecibe una entrada procedente de dicho programa, realizauna tarea determinada y regresa al terminar, al programaprincipal.

    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.

    PrimeralgoritmoconundiagramadeflujoPara conocer como se resuelve un problema mediante el diagrama de flujo, resolveremos unejemplo:

    Ejemplo 1:El diagrama de flujo siguiente representa la resolucin de nuestro primer programa que deduce elrea y permetro de un rectngulo, sabiendo que su base y altura tienen los valores 8cm y 2cmrespectivamente.

    01

    02 05

    03 06

    04 07

  • Ing. Mirko Manrique Ronceros Pgina 17 de 63

    Universidad Nacional del SantaFacultad 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 lasvariables que representarn a los datos de entrada, dentro del proceso de clculo y los datos desalida, que vamos a utilizar, procesar y encontrar.

    AnlisisPara este ejemplo hemos identificado nuestras variables a trabajar:

    a. base = bb. altura = hc. rea = ad. permetro = p

    Todo algoritmo se debe comenzar con un inicio y finalizar con un fin, para ello se utilizar elsmbolo terminal. Para lograr explicar con mayor claridad nuestro algoritmo, hemos incluidonmero 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 elcomienzo del algoritmo.

    La lnea 02, se utiliza el smbolo proceso donde a las variables b y h se le asignan losnmeros 8 y 2 respectivamente.

    La lnea 03, se utiliza el smbolo proceso donde primero se realiza la operacin b * h ysegundo, 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 partescualesquiera en la misma pgina del diagrama. Para poder enlazar los conectorespodemos 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 lasalida 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 delalgoritmo.

    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 ltimomostramos los resultados.

    Ejemplo 2:El diagrama de flujo del ejemplo anterior tambin se puede llevar acabo sin el uso de conectoresde pgina o de pginas diferentes, en el siguiente diagrama se muestra cmo sera. Pero paraeste ejemplo haremos una variacin en nuestro ejemplo. En el ejemplo 1, los datos de la base yaltura eran conocidos 8cm y 2cm. En este ejemplo los datos de la base y altura, no se conocen yse solicitan para resolver el problema; para solicitar los datos de entrada utilizaremos el smboloentrada/salida.

  • Ing. Mirko Manrique Ronceros Pgina 18 de 63

    Universidad Nacional del SantaFacultad 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 parael ejemplo 2, los valores no se conocen por tanto tienen que ser ingresados, para realizar ello enalgoritmos se utiliza el smbolo entrada/salida.

    Para poner en prctica los nuevos conocimientos adquiridos, resolveremos los siguientesejemplos:

    Ejercicios de autocomprobacin de aprendizajesEjemplo 3:Se ingresan por teclado dos nmeros positivos. Calcular la suma, resta, multiplicacin, divisinreal, 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 aquen Chimbote los oferta a S/. 60. Cunto es la ganancia?.

    Diagrama Estructurado o N SSe trata de un mtodo de representacin de algoritmos en forma de bloque compacto. Es undiagrama algo similar a los diagramas de flujo (convencionales) en el que se omiten las flechas, ylas 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 lasoperaciones a realizar para la resolucin del problema. La forma de conectar una pginacon la siguiente es similar al mtodo anterior, es decir, mediante un nmero o un nombreencerrados en uno de los rectngulos que componen el algoritmo.

    Todo diagrama comienza con un rectngulo que tiene la palabra inicio y al ltimo delalgoritmo 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 SantaFacultad 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-SPara conocer cmo se realiza un diagrama estructurado, resolveremos el ejemplo 1 planteado enla parte de diagrama de flujo:

    Como se ve en la solucin del ejemplo 1, en este diagrama se utilizan slo rectngulos. Si se dancuenta, en un diagrama estructurado existe un rectngulo de declaracin de variables, donde secolocan las variables que se utilizarn en el algoritmo y a la vez tambin podemos inicializarvariables 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 laparte de diagrama de flujo.

    Ing. Mirko Manrique Ronceros Pgina 19 de 63

    Universidad Nacional del SantaFacultad 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-SPara conocer cmo se realiza un diagrama estructurado, resolveremos el ejemplo 1 planteado enla parte de diagrama de flujo:

    Como se ve en la solucin del ejemplo 1, en este diagrama se utilizan slo rectngulos. Si se dancuenta, en un diagrama estructurado existe un rectngulo de declaracin de variables, donde secolocan las variables que se utilizarn en el algoritmo y a la vez tambin podemos inicializarvariables 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 laparte de diagrama de flujo.

    Ing. Mirko Manrique Ronceros Pgina 19 de 63

    Universidad Nacional del SantaFacultad 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-SPara conocer cmo se realiza un diagrama estructurado, resolveremos el ejemplo 1 planteado enla parte de diagrama de flujo:

    Como se ve en la solucin del ejemplo 1, en este diagrama se utilizan slo rectngulos. Si se dancuenta, en un diagrama estructurado existe un rectngulo de declaracin de variables, donde secolocan las variables que se utilizarn en el algoritmo y a la vez tambin podemos inicializarvariables 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 laparte de diagrama de flujo.

  • Ing. Mirko Manrique Ronceros Pgina 20 de 63

    Universidad Nacional del SantaFacultad 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 lasinstrucciones se escriben en palabras similares al ingles o espaol, que facilitan tanto la escrituracomo la lectura de programas. En esencia el pseudocdigo se puede definir como un lenguaje deespecificacin (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 preocuparsepor 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 hacerinformacin para el programador o el lector del programa, y no realiza ninguna instruccinejecutable. El uso de pseudocdigo se ha extendido en la comunidad hispana con trminos enespaol 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 1Instruccin 2Instruccin 3

    .

    .

    ..

    Instruccin n

    fin

  • Ing. Mirko Manrique Ronceros Pgina 21 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Primer algoritmo con un pseudo cdigoPara conocer cmo se realiza un pseudo cdigo, resolveremos el mismo ejemplo 1 planteado enla parte de diagrama de flujo:

    algoritmo Ejemplo 1var

    entero : b, h, a, pInicio

    b = 8h = 2a = b * hp = 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 laderecha las variables que pertenecen a ese tipo de dato. Para este ejemplo solo tenemos el tipode dato entero. Se tiene un cuerpo del programa donde se escriben todas las instruccionesnecesarias para resolver el problema.

    A continuacin la solucin del ejemplo 2, de la parte de diagrama de flujo:

    algoritmo Ejemplo 2var

    entero : b, h, a, pInicio

    leer (b)leer (h)a = b * hp = 2 * ( b + h )escribir ( a, p )

    fin

  • Ing. Mirko Manrique Ronceros Pgina 22 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    LESTRUCTURAS BSICAS DE CONTROL

    Un algoritmo o programa puede ser escrito utilizando solamente tres tipos de estructuras decontrol, 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 laentrada de la siguiente y as sucesivamente hasta el final del proceso.

    La representacin grfica de una estructura secuencial se muestra en las siguientes figuras enDiagrama 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    LESTRUCTURAS BSICAS DE CONTROL

    Un algoritmo o programa puede ser escrito utilizando solamente tres tipos de estructuras decontrol, 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 laentrada de la siguiente y as sucesivamente hasta el final del proceso.

    La representacin grfica de una estructura secuencial se muestra en las siguientes figuras enDiagrama 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    LESTRUCTURAS BSICAS DE CONTROL

    Un algoritmo o programa puede ser escrito utilizando solamente tres tipos de estructuras decontrol, 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 laentrada de la siguiente y as sucesivamente hasta el final del proceso.

    La representacin grfica de una estructura secuencial se muestra en las siguientes figuras enDiagrama 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    inicio

    Instruccin 1Instruccin 2Instruccin 3

    .

    .

    .

    .

    Instruccin n

    fin

    Figura 3. Pseudocdigo de una estructura secuencial

    Para poder conocer cmo se realiza un algoritmo utilizando los mtodos para representaralgoritmos, 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 + z3. 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 = 2400CantidadTV = 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 SantaFacultad 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 01var // seccin de declaraciones de variables

    entero: CantidadTVreal: CostoTV, Pago

    Inicio // cuerpo del programaCostoTV = 2400CantidadTV = 2Pago = CostoTV * CantidadTVEscribir (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 SantaFacultad 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 02var // seccin de declaraciones de variables

    entero: x, y, zInicio // cuerpo del programa

    Leer ( y , z )x = 3 * y + zEscribir ( x )

    fin

    Figura 9. Pseudocdigo del ejercicio 02

    Ejercicio03:

    Inicio

    Leer (num1,num2)

    Suma = num1 + num2Resta = num1 - num2

    Escribir ('La suma es : ',Suma)Escribir ('La resta es : ',Resta)

    Dentro del grfico deproceso, se pueden realizarcomo mximo tresprocesos. Si hay msprocesos, utilizar otrodiagrama de proceso

    Fin

    Figura 10. Diagrama de Flujo del ejercicio 03

  • Ing. Mirko Manrique Ronceros Pgina 26 de 63

    Universidad Nacional del SantaFacultad 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 03var // seccin de declaraciones de variables entero:

    num1, num2, Suma, RestaInicio // cuerpo del programa

    Leer ( num1, num2 ) Suma =num1 + num2Resta = num1 - num2Escribir ('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 SantaFacultad 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 quetomar una decisin aparecen las estructuras selectivas. En nuestra vida diaria se nos presentansituaciones 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 suelendenominar tambin estructuras condicionales, de decisin o alternativas.

    En las estructuras selectivas se evala una condicin y en funcin del resultado se realiza unaopcin u otra. Las condiciones se especifican usando expresiones lgicas.

    Las estructuras selectivas pueden ser:

    1. Simples.2. Dobles.3. Mltiples.4. Anidadas.

    Estructura Selectiva SimpleLa estructura selectiva simple ejecuta una determinada accin o acciones cuando se cumple unadeterminada condicin, es decir, tenemos la opcin de realizar una actividad o varias si lacondicin 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 lasiguiente:

    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 dosopciones que se pueden tomar. Si la condicin es verdadera se sigue el camino del verdadero, sila condicin es falsa se sigue el camino del falso. Por el camino del verdadero pueden existirvarias operaciones, entradas y salidas que se pueden realizar, inclusive ya veremos que puedenhaber otras estructuras condicionales o selectivas.

  • Ing. Mirko Manrique Ronceros Pgina 28 de 63

    Universidad Nacional del SantaFacultad 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 ypseudocdigo son las siguientes:

    Figura 14. Diagrama estructurado de la estructura selectiva simple

    si condicin entoncesinstruccin 1instruccin 2

    .

    .instruccin n

    fin_si

    Figura 15. Pseudocdigo de la estructura selectiva simple

    Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguienteejemplo:

    Ejemplo1:Ingresar el sueldo de una persona, si supera los S/. 3000 soles, mostrar un mensaje en pantallaindicando que debe abonar impuestos.

    Figura 16. Diagrama de flujo del ejemplo 1

    Ing. Mirko Manrique Ronceros Pgina 28 de 63

    Universidad Nacional del SantaFacultad 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 ypseudocdigo son las siguientes:

    Figura 14. Diagrama estructurado de la estructura selectiva simple

    si condicin entoncesinstruccin 1instruccin 2

    .

    .instruccin n

    fin_si

    Figura 15. Pseudocdigo de la estructura selectiva simple

    Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguienteejemplo:

    Ejemplo1:Ingresar el sueldo de una persona, si supera los S/. 3000 soles, mostrar un mensaje en pantallaindicando que debe abonar impuestos.

    Figura 16. Diagrama de flujo del ejemplo 1

    Ing. Mirko Manrique Ronceros Pgina 28 de 63

    Universidad Nacional del SantaFacultad 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 ypseudocdigo son las siguientes:

    Figura 14. Diagrama estructurado de la estructura selectiva simple

    si condicin entoncesinstruccin 1instruccin 2

    .

    .instruccin n

    fin_si

    Figura 15. Pseudocdigo de la estructura selectiva simple

    Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguienteejemplo:

    Ejemplo1:Ingresar el sueldo de una persona, si supera los S/. 3000 soles, mostrar un mensaje en pantallaindicando que debe abonar impuestos.

    Figura 16. Diagrama de flujo del ejemplo 1

  • Ing. Mirko Manrique Ronceros Pgina 29 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 17. Diagrama estructurado del ejemplo 1

    algoritmo Ejemplo1var

    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 PseudocdigoObsrvese 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 17. Diagrama estructurado del ejemplo 1

    algoritmo Ejemplo1var

    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 PseudocdigoObsrvese 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 17. Diagrama estructurado del ejemplo 1

    algoritmo Ejemplo1var

    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 PseudocdigoObsrvese 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 SantaFacultad 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 elmensaje que es un nmero positivo, elevarlo al cuadrado y mostrar dicho resultado. Al terminar elalgoritmo debe decir fin del algoritmo.

    inicio

    leer (num)

    num > 0

    mostrar 'Numeropositivo'

    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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Ejemplo 2

    Inicio num, Cuad

    Leer (num)

    num > 0

    V FMostrar ('Nmero positivo')

    Cuad = num ^2

    Mostrar (Cuad)

    Mostrar ('Fin del algoritmo')

    Fin

    Figura 20. Diagrama Estructurado del ejemplo 2

    algoritmo Ejemplo 2var

    inicioentero: num, Cuad

    leer (num)si ( num > 0 ) entonces

    mostrar(Nmero positivo)Cuad = num ^ 2mostrar ( Cuad )

    fin

    fin_siMostrar ('Fin del algoritmo')

    Figura 21. Pseudocdigo del ejemplo 2

  • Ing. Mirko Manrique Ronceros Pgina 32 de 63

    Universidad Nacional del SantaFacultad 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 delcumplimiento de una determinada condicin, de tal forma que, si se cumple, se ejecutan lasacciones 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 losalgoritmos es el siguiente:

    Figura 19. Diagrama de flujo de la estructura selectiva doble

    Figura 20. Diagrama estructurado de la estructura selectiva doble

    si condicin entoncesinstruccin 1instruccin 2

    .

    .instruccin n

    si_no

    fin_si

    instruccin 1instruccin 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 NUNCA se realizan las actividades de ambos lados al mismo tiempo.

    Ing. Mirko Manrique Ronceros Pgina 32 de 63

    Universidad Nacional del SantaFacultad 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 delcumplimiento de una determinada condicin, de tal forma que, si se cumple, se ejecutan lasacciones 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 losalgoritmos es el siguiente:

    Figura 19. Diagrama de flujo de la estructura selectiva doble

    Figura 20. Diagrama estructurado de la estructura selectiva doble

    si condicin entoncesinstruccin 1instruccin 2

    .

    .instruccin n

    si_no

    fin_si

    instruccin 1instruccin 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 NUNCA se realizan las actividades de ambos lados al mismo tiempo.

    Ing. Mirko Manrique Ronceros Pgina 32 de 63

    Universidad Nacional del SantaFacultad 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 delcumplimiento de una determinada condicin, de tal forma que, si se cumple, se ejecutan lasacciones 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 losalgoritmos es el siguiente:

    Figura 19. Diagrama de flujo de la estructura selectiva doble

    Figura 20. Diagrama estructurado de la estructura selectiva doble

    si condicin entoncesinstruccin 1instruccin 2

    .

    .instruccin n

    si_no

    fin_si

    instruccin 1instruccin 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 NUNCA se realizan las actividades de ambos lados al mismo tiempo.

  • Ing. Mirko Manrique Ronceros Pgina 33 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguienteejemplo:

    Ejemplo 3:Realizar un algoritmo que lea dos nmeros enteros distintos entre s y mostrar por pantalla elmayor 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguienteejemplo:

    Ejemplo 3:Realizar un algoritmo que lea dos nmeros enteros distintos entre s y mostrar por pantalla elmayor 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Ahora pondremos en prctica los nuevos conocimientos adquiridos solucionando el siguienteejemplo:

    Ejemplo 3:Realizar un algoritmo que lea dos nmeros enteros distintos entre s y mostrar por pantalla elmayor 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    algoritmo Ejemplo3var

    inicioentero : num1, num2

    leer (num1, num2)si (num1 > num2) entonces

    escribir(El mayor es, num1, y el menor es, num2)si_no

    fin_siescribir(El mayor es, num2, y el menor es, num1)

    finescribir(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.5mostrar un mensaje Aprobado oDesaprobado.

  • Ing. Mirko Manrique Ronceros Pgina 35 de 63

    Universidad Nacional del SantaFacultad 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 ciertacondicin. La estructura selectiva mltiple se utiliza para este tipo de problemas, es decir, que laestructura 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, olo 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 deprogramacin 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 SantaFacultad 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 ciertacondicin. La estructura selectiva mltiple se utiliza para este tipo de problemas, es decir, que laestructura 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, olo 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 deprogramacin 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 SantaFacultad 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 ciertacondicin. La estructura selectiva mltiple se utiliza para este tipo de problemas, es decir, que laestructura 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, olo 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 deprogramacin 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    en caso expresin hacervalor 1: instruccin 1

    instruccin 2........

    valor 2: instruccin 1instruccin 2........

    valor 3: instruccin 1. instruccin 2. .........

    valor n: instruccin 1instruccin 2........

    otros : instruccin 1instruccin 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 o , o , ..., o pondremos losdiferentes valores que pueda tomar la decisin, segn los cuales el programa debe hacer una uotra cosa. Pueden existir tanto valores como a nosotros nos convenga. Esta estructura es muy tilen 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 29. Diagrama estructurado del ejemplo 5

    algoritmo Ejemplo5var

    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 operadoraritmtico (+, -, *, /). El algoritmo debe calcular el resultado de la operacin seleccionada.

    Ing. Mirko Manrique Ronceros Pgina 37 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 29. Diagrama estructurado del ejemplo 5

    algoritmo Ejemplo5var

    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 operadoraritmtico (+, -, *, /). El algoritmo debe calcular el resultado de la operacin seleccionada.

    Ing. Mirko Manrique Ronceros Pgina 37 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 29. Diagrama estructurado del ejemplo 5

    algoritmo Ejemplo5var

    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 operadoraritmtico (+, -, *, /). El algoritmo debe calcular el resultado de la operacin seleccionada.

  • Ing. Mirko Manrique Ronceros Pgina 38 de 63

    Universidad Nacional del SantaFacultad 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 unaestructura si-entonces que puede contener otra estructura si-entonces, y sta a su vez a otraestructura si-entonces, y as sucesivamente cualquier nmero de veces; dentro de cadaestructura 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 SantaFacultad 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 unaestructura si-entonces que puede contener otra estructura si-entonces, y sta a su vez a otraestructura si-entonces, y as sucesivamente cualquier nmero de veces; dentro de cadaestructura 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 SantaFacultad 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 unaestructura si-entonces que puede contener otra estructura si-entonces, y sta a su vez a otraestructura si-entonces, y as sucesivamente cualquier nmero de veces; dentro de cadaestructura 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    si condicin entoncessi condicin entonces

    instruccin 1instruccin 2......instruccin n

    si_nofin_si

    si condicin entoncesinstruccin 1instruccin 2......instruccin m

    fin_si

    si_no

    fin_si

    instruccin 1instruccin 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 notapromedio e imprima alguno de estos mensajes:

    a. Si el promedio est entre 20 y 16 mostrar Alumno Excelenteb. Si el promedio est entre 15 y 11 mostrar Alumno Regularc. Si el promedio est entre 10 y 6 mostrar Alumno Malod. 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 35. Diagrama estructurado del ejemplo 7

    algoritmo Ejemplo7var

    inicioentero : n1, n2, n3, prom

    leer (n1, n2, n3)prom = (n1+n2+n3) / 3si (prom=0) entonces

    escribir(Alumno Pesimo)else

    si (prom

  • Ing. Mirko Manrique Ronceros Pgina 41 de 63

    Universidad Nacional del SantaFacultad 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 oconjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es elalgoritmo necesario para repetir una o varias acciones por un nmero determinado de veces, aest estructura se la llama Estructura Repetitiva.

    Las estructuras repetitivas se utilizan cuando se desea que una instruccin o bloque deinstrucciones se repita un nmero determinado de veces o hasta que una condicin determinacin se cumpla.

    Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces sedenominan bucles, y se llama iteracin al hecho de repetir la ejecucin de una secuencia deacciones. 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 cuerpodel bucle debe existir una instruccin que modifique la condicin lgica de terminacin.

    Las sentencias de inicializacin. Son instrucciones que inicializan contadores yacumuladores.

    Las condiciones para la terminacin del bucle: Expresiones lgicas que controlan laterminacin 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 dosexpresiones: Qu es un contador? y Qu es un acumulador?

    CONTADOREn un proceso repetitivo cuya funcin es contar los sucesos o acciones internas del bucle, comopueden ser el nmero de iteraciones del bucle, la cantidad de elementos que tiene un archivo, unvector, 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 ofija 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 teniaanteriormente ms uno o menos uno, dependiendo del caso si se quiere incrementar odecrementar.

  • Ing. Mirko Manrique Ronceros Pgina 42 de 63

    Universidad Nacional del SantaFacultad 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 tenerla 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 unoLa 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). Uncontador tambin puede incrementar o decrementar de dos en dos, tres en tres, cuatro en cuatro yas 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    ACUMULADORUn acumulador es una variable cuya misin es almacenar cantidades variables. Realiza la mismafuncin que un contador pero con la diferencia de que el incremento o decremento es variable yno 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 atener 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 acumuladorpara ir sumando las 10 notas (cantidades variables) y luego dividir este valor entre diez. Lavariable S va a tener la funcin de ser el acumulador.

    Solucin del ejemplo 5.

    S=0leer(nota)S=S+notaProm=S/10

    La explicacin del algoritmo es el siguiente:

    S = 0 // Inicializacin de la variable S acumulador con elvalor 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 cero0

    // 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Estructura Repetitiva Desde/ParaEn muchas ocasiones se conoce de antemano el nmero de veces que se desean ejecutar lasacciones 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 elsiguiente:

    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 lafuncin de un contador de vueltas. En la seccin indicada como inicializacin, se suele colocarel nombre de la variable que har de contador, asignndole a dicha variable un valor inicial. En laseccin 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 unainstruccin que permite modificar el valor de la variable que hace de contador (para permitir quealguna 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 deinicializacin toma el valor indicado en la seccin de inicializacin.

    1era Etapa

  • Ing. Mirko Manrique Ronceros Pgina 45 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    2da. Etapa (c

  • Ing. Mirko Manrique Ronceros Pgina 46 de 63

    Universidad Nacional del SantaFacultad 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 eincrementa nuevamente la variable del contador c.

    El proceso se repetir hasta que la variable c sea incrementada al valor 51. En esemomento 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 lainstruccin 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 undecrementador, es decir, la variable de inicializacin decrementar a lo que se desea, esto sepuede hacer siempre y cuando la variable de inicializacin comienza en un valor mayor que el dela condicin, por ejemplo:

  • Ing. Mirko Manrique Ronceros Pgina 47 de 63

    Universidad Nacional del SantaFacultad 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 ypseudocdigo son los siguientes:

    estructura repetitivadesde/para

    Figura 38. Diagrama estructurado de la estructura repetitiva Desde/Para

    inicializacincondicin

    modificacin

    desde c = vi hasta vf inc|dec valor hacerinstruccin 1instruccin 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 SantaFacultad 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, ysu 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    algoritmo Ejemplo1var

    inicio

    fin

    entero: c , sumareal: prom

    suma = 0desde c = 1 hasta 10 inc 1 hacer

    suma = suma + cfin_desdeprom = suma/10escribir(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, ysolamente se puede colocar: desde c = 1 hasta 10 hacer . Porque en algoritmo sesobrentiende que aumenta en 1.

    Ejemplo2:Realizar un algoritmo que permita hallar la suma y promedio de 20 nmeros enteros ingresadospor teclado.

    Cuerpo del bucle

    Figura 43. Diagrama de flujo del ejemplo 2

  • Ing. Mirko Manrique Ronceros Pgina 50 de 63

    Universidad Nacional del SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 44. Diagrama estructurado del ejemplo 2

    algoritmo Ejemplo2var

    Cuerpo del bucle

    inicio

    fin

    entero: n, c, sumareal: prom

    suma = 0desde c = 1 hasta 20 inc 1

    leer(n)suma = suma + n

    fin_desdeprom = suma/20escribir(La suma es : ,suma)escribir(El promedio es : ,prom)

    Cuerpo del bucle

    Figura 45.Pseudocdigodel ejemplo 2

    Ejemplosdeautoaprendizaje:Resuelva en diagrama de flujo, estructurado y pseudocdigo.

    Ejemplo3: Realizar un algoritmo que me permita leer 10 nmeros positivos ynegativos, e imprima solamente los nmeros positivos.

    Ejemplo4:Realizar un algoritmo que me permita leer 20 nmeros e imprimir cuntos sonpositivos, negativos y neutros.Dato: Neutro se le conoce al cero 0

  • Ing. Mirko Manrique Ronceros Pgina 51 de 63

    Universidad Nacional del SantaFacultad 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 antesde comprobar la condicin de repeticin, para ello se puede utilizar la estructura repetitivaHacer - Mientras. Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lomenos una vez se ejecutar el bloque repetitivo.

    Cuando una instruccin Hacer-Mientras se ejecuta, lo primero que sucede es la ejecucin delbucle (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, sisigue 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 seafalsa.

    La representacin grfica de la estructura repetitiva Hacer-Mientras es la siguiente:

    Figura 46. Diagrama de flujo de la estructura repetitiva Hacer-Mientras

    estructura repetitivahacer/mientras

    Figura 47. Diagrama estructurado de la estructura repetitiva Hacer-Mientras

    hacerinstruccin 1instruccin 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 SantaFacultad 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 laestructura repetitiva Hacer-Mientras.

    Ejemplo 5:En el curso de Algoritmos y Diagramacin existen 40 alumnos, de los cuales se tiene el promediode la Primera Unidad. Se pide realizar un algoritmo que permita hallar el promedio general deestos 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 = 02. 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 SantaFacultad 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 todaslas notas (40 notas).

    3. A continuacin, se evala la condicin; se pregunta: c es menor que 40? Si la respuestaes verdadera se regresa al paso 2 y se ejecutan las tres instrucciones del cuerpo del buclenuevamente, 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 lavariable suma se tiene la suma total de las notas y ahora se ejecuta la instruccin quepermite 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 Ejemplo5var

    Cuerpo del bucle

    inicio

    entero: nota, c, sumareal: prom

    c = 0suma = 0hacer

    fin

    c = c + 1leer(nota)suma = suma + nota

    mientras (c < 40)prom = suma/cescribir(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 SantaFacultad 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 todaslas notas (40 notas).

    3. A continuacin, se evala la condicin; se pregunta: c es menor que 40? Si la respuestaes verdadera se regresa al paso 2 y se ejecutan las tres instrucciones del cuerpo del buclenuevamente, 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 lavariable suma se tiene la suma total de las notas y ahora se ejecuta la instruccin quepermite 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 Ejemplo5var

    Cuerpo del bucle

    inicio

    entero: nota, c, sumareal: prom

    c = 0suma = 0hacer

    fin

    c = c + 1leer(nota)suma = suma + nota

    mientras (c < 40)prom = suma/cescribir(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 SantaFacultad 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 todaslas notas (40 notas).

    3. A continuacin, se evala la condicin; se pregunta: c es menor que 40? Si la respuestaes verdadera se regresa al paso 2 y se ejecutan las tres instrucciones del cuerpo del buclenuevamente, 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 lavariable suma se tiene la suma total de las notas y ahora se ejecuta la instruccin quepermite 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 Ejemplo5var

    Cuerpo del bucle

    inicio

    entero: nota, c, sumareal: prom

    c = 0suma = 0hacer

    fin

    c = c + 1leer(nota)suma = suma + nota

    mientras (c < 40)prom = suma/cescribir(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 SantaFacultad 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 denmeros enteros. Este proceso re repite hasta que el usuario pulse la tecla N al mensaje enpantalla Desea Continuar[s/n]:.

    SolucinPara la solucin del problema se va a necesitar de tres contadores, que realizarn la accin decontar cuntos nmeros son positivos, negativos y neutros se ingresarn por teclado, de una seriede 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 decules nmeros son iguales a cero, positivos y negativos. Y de acuerdo al resultado de lacondicin, 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 culalmacenar el carcter de s de s continuo, o n de no continuo ingresando valores. Deacuerdo 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 SantaFacultad 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 SantaFacultad de Ingeniera

    E.A.P. de Ingeniera de Sistemas e Informtica FUNDAMENTOS DE PROGRAMACIN

    Figura 53. Diagrama estructurado