universidad nacional del santa fundamentos de...
TRANSCRIPT
-
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