You are on page 1of 17

UNIVERSIDAD DON BOSCO

FACULTAD DE ESTUDIOS TECNOLÓGICOS
ESCUELA DE COMPUTACION
GUIA DE LABORATORIO #04

CICLO: 02/ 2013

Nombre de la Practica:

Estructuras repetitivas en Algoritmos

Lugar de Ejecución:

Centro de Computo

Tiempo Estimado:

2 horas y 30 minutos

MATERIA:

Introducción a la Programación

I. OBJETIVOS
Que el alumno sea capaz de:
• Evaluar la solución a problemas que requieren repetir uno o más bloques de instrucciones
• Utilizar apropiadamente las diversas estructuras repetitivas disponibles en los algoritmos
• Traducir correctamente un pseudocódigo repetitivo a la sintaxis utilizada por las aplicaciones DFD y PSeint

II. INTRODUCCION TEORICA

Tipos de Estructuras de Control dentro de un Algoritmo
Existen tres tipos de estructuras generales para controlar la secuencia de la ejecución de los pasos de un
algoritmo. Estas son:
a) Estructura secuencial
b) Estructura condicional o selectiva
c) Estructura repetitiva

C. USO DE INSTRUCCIONES REPETITIVAS EN UN ALGORITMO
Para crear una estructura repetitiva (también llamadas Ciclo, Lazo o Bucle), se necesita definir 3 elementos:
a) Ya sea una Condición de Conteo o una Condición Lógica.
b) Un contador, el cual deberá incrementarse por cada iteración del lazo.
c) Un bloque de pasos de un algoritmo, que se necesita repetir (denominado el Cuerpo del Bucle)
Cada vez que se ejecuta el bloque completo de pasos (Cuerpo del Bucle) de una Estructura Repetitiva, se dice que
se ha completado un “Ciclo”.
Existen tres tipos diferentes de estructuras repetitivas cuyos diagramas de flujo y pseudocódigo se muestran a
continuación:

1

acción Sn * Si se evalúa falsa. Mientras <expresión_logica> Figura 4. . entonces se ejecuta el cuerpo del bucle. para que el algoritmo continué con la siguiente instrucción después del fin del bucle Mientras.Guía #: 04 Estructuras repetitivas en Algoritmos Estructura Mientras La estructura repetitiva Mientras es aquella en la cual.1: Estructura de control “Mientras” Estructura Hacer – Mientras El bucle hacer mientras es similar al bucle mientras. el cuerpo del bucle se repite solamente cuando se cumpla una Condición Lógica específica (ver figura 4. de modo que las sentencias de dicho cuerpo se ejecutan al menos una vez. el cuerpo del bucle siempre se ejecuta una vez. ignora todo el conjunto de pasos (el cuerpo del Bucle). Cuando se ejecuta la instrucción Mientras. Representación de estructura Hacer Mientras Diagrama de flujo: Pseudocódigo: Hacer acción S1 acción S2 . y al finalizar. Introducción a la Programación 2 . sale del Bucle para continuar con el resto del algoritmo. ver Figura 4. Diagrama de flujo: Pseudocódigo: Mientras <expresión_logica> Hacer acción S1 Este proceso (ejecución del Cuerpo del Bucle) se repite una y otra vez solamente cuando la expresión lógica (condición) sea verdadera acción S2 .1). La misma debe resultar Falsa para repetir nuevamente el Cuerpo del Bucle. para luego evaluar una Condición Lógica. Luego se prepara nuevamente para evaluar a la misma expresión lógica. es decir que el Cuerpo del Bucle se ejecuta una y otra vez solamente cuando su Condición (Expresión lógica) sea verdadera. la primera cosa que sucede es que se evalúa una Condición (una expresión lógica). de lo contrario. sin embargo. acción Sn En otras palabras. Existe. . su gran diferencia con la estructura Mientras es que el Cuerpo del Bucle está encerrado entre la palabras reservadas hacer y mientras. antes de que se evalué la expresión lógica. se evalúa la expresión lógica.2. Fin_Mientras Figura 4. para luego realizar lo siguiente: Representación de estructura Mientras * Si la expresión lógica es verdadera.2: Estructura de control “Hacer Mientras” Estructura Repetir-Hasta El bucle Repetir-Hasta permite ejecutar al menos una vez un Cuerpo de pasos.

Para repetir el cuerpo de un Bucle HacerMientras. muchas veces ocurre que se conocen de antemano el número de veces que se desean ejecutar un mismo Grupo de instrucciones dentro de un Bucle. Consideremos siempre la variable índice de tipo entero. acción S2 . Representación de estructura Repetir Hasta Diagrama de flujo: Pseudocódigo: Repetir acción S1 La diferencia entre ambas estructura se centra en la resultado de la Evaluación Lógica de la Condición utilizada. o en el valor que especifiquemos. En estos casos.3: Estructura de control “Repetir Hasta” Estructura Para Al solucionar un problema con estructuras repetitivas. vf: valores inicial y final de la variable incr: indica el valor numérico en que va haciendo el aumento o decremento por default hace un incremento de 1 Figura 4. Comienza con un valor inicial de la variable índice y las acciones especificadas se ejecutan solamente cuando el valor inicial sea menor que el valor final. acción Sn Fin_Para En donde: i: variable índice vi. La estructura Para ejecuta las acciones del Cuerpo del Bucle un numero especificado de veces y de modo automático controla el numero de iteraciones o pasos a través del cuerpo del bucle. y si este nuevo valor no excede al valor final se ejecutan de nuevo las acciones. Si establecemos que la variable índice decremente en cada iteración el valor inicial deberá ser superior al final. se puede usar la estructura Para. La variable índice se incrementa en 1 (por defecto. La representación de la estructura Para es la siguiente: Representación de estructura Para Diagrama de flujo: Pseudocódigo: Para i vi Hasta vf [incremento | decremento incr] hacer acción S1 acción S2 . resulta ser casi idéntica al bucle Hacer-Mientras. la Condición deberá ser evaluada como Verdadera.4: Estructura de control de repetición ”Para”. en cambio. . acción Sn Hasta <expresión_logica> Figura 4.Guía #: 04 Estructuras repetitivas en Algoritmos Si se observa el Diagrama de flujo del bucle Repetir Hasta y lo compara con el resto de estructuras repetitivas. requiere que la condición sea Falsa para repetir el Cuerpo del Bucle. cuando el numero de iteraciones es fijo. para el Bucle Repetir-Hasta. se cuenta de uno en uno). Introducción a la Programación 3 .

Este se ubica en la línea que une a los 2 símbolos iniciales que definen a la estructura. para evaluarla con el resto de los 3 parámetros de la figura 4.Guía #: 04 Estructuras repetitivas en Algoritmos Estructuras repetitivas del software DFD En el programa DFD se cuenta con 2 tipos de estructuras repetitivas (Ver figura 4.6: los 4 parámetros requeridos por estructura Para en DFD La variable de conteo la utiliza el Bucle.5). el símbolo de apertura MQ solicita 3 parámetros obligatorios y uno opcional. la cual se coloca en el símbolo inicial. La expresión de conteo puede ser un (valor fijo. Figura 4. La estructura y sintaxis de uso de cada una se explica a continuación. En otras palabras. una variable o una expresión). para poder repetir una vez más el Cuerpo del Bucle La expresión de incremento tiene un valor predeterminado de 1 y funciona de esta manera: Introducción a la Programación 4 .5: Estructuras Mientras y Para en la aplicación DFD Estructura Mientras Al igual que lo mencionado en la introducción general de un lazo Mientras. Cuerpo del bucle: el o los pasos a ejecutar solamente cuando la condición anterior se cumpla. La expresión de valor final a contar es el valor máximo que la variable de conteo llegara a tener durante el último ciclo a ejecutar por la estructura Para. Para definirlo. mostrado en la figura 4. Una condición de control. Estructura Para Este ciclo necesita la definición de una variable de conteo.6. la cual lleva el control de la cantidad de veces que el ciclo se está repitiendo. Figura 4. B. DFD requiere que especifique 2 elementos: A.6 y determinar si debe o no repetir una vez más la ejecución de su Cuerpo de instrucciones. las cuales son Mientras y la estructura Para. la variable de conteo del ciclo no deberá superar el valor de dicho valor final. e indicara el valor inicial para la variable de conteo del Bucle.

finaliza su ejecución. incrementa a su variable de conteo con el valor de la expresión de incremento. para así determinar si repite una vez más el cuerpo del ciclo o sino. Luego.7: “Comandos” de PSeint para estructuras repetitivas Sintaxis y uso de la instrucción “Mientras” Repite un bloque de instrucciones (Secuencia_de_acciones) limitada entre el paso Mientras y paso FinMientras. al valor de variable de conteo se … … positivo Variable de conteo debe ser menor o igual a Valor final de conteo … suma valor de incremento … negativo Variable de conteo debe ser mayor o igual a Valor final de conteo … resta el incremento Tabla 1: Condiciones que evalúa un ciclo Para de acuerdo a su valor final de conteo y tipo de incremento (+ o -) Estructuras repetitivas del software PSeint Dentro del programa PSeint se tienen disponibles a 3 de las estructuras repetitivas. * Mientras * Repetir Hasta * Para Figura 4. ver figura 4. como alterara a su variable de conteo cuando un ciclo se finalice.7. La estructura y sintaxis de uso de cada una se explica a continuación. Al finaliza un ciclo. gracias a evaluar a una condición lógica CL “Expresion_logica”. ¿Cuándo un ciclo Para repetirá una vez más a su cuerpo de instrucciones? Un ciclo Para utiliza a los valores asignados a su pareja de parámetros (expresión final de conteo y al incremento) para determinar si debe repetir su bloque de pasos una vez mas y también. La repetición del bloque de pasos se controla al inicio de la estructura. cuyo resultado Verdadero o Falso es aprovechado para determinar si repite o no el bloque!! Al utilizar un lazo Mientras hay que tener cuidado de lo siguiente: Introducción a la Programación 5 . el ciclo se lo restara a su variable de conteo. compara al nuevo valor de la variable de conteo contra el valor final. Repetir-Hasta y la estructura Para. Si el valor de incremento es negativo.Guía #: 04 Estructuras repetitivas en Algoritmos Cada vez que el ciclo Para finaliza la ejecución de su cuerpo de instrucciones. las cuales son Mientras. Las reglas se resumen en la tabla 1 a continuación: Si valor de incremento es… Condición que evalúa ciclo Para para determinar si repite una vez a su Cuerpo de instrucciones.

esta siempre es verdadera. PSeint evalué de nuevo la CL. Para que el lazo Repetir-Hasta pueda repetir el Bucle 2 o más veces. Como conclusiones de las últimas dos aclaraciones: • Siempre asegúrese que la CL del lazo sea Verdadera para mantenerse repitiendo continuamente el lazo mientras. Según la aclaración anterior. si necesita que el lazo finalice (que ya no se repita de nuevo el ciclo). Al utilizar un lazo Repetir-Hasta hay que tener cuidado de lo siguiente: a. b. Introducción a la Programación 6 . asegúrese que en el interior de los pasos del ciclo se modifique/altere el valor de (por lo menos) una de las variables utilizada en la CL que se evalúa al final de la estructura. Sintaxis y uso de la instrucción “Para . usted debe de asegurarse que su Condición Lógica se cumpla (inicialmente). Para que el lazo Mientras pueda repetir el Bucle una o más veces. c. El ciclo Repetir-Hasta hasta ejecuta una vez el cuerpo del bloque b. sino PSeint continuara con el paso justamente después del cierre del Repetir-Hasta. si necesita que el lazo finalice (que ya no se repita de nuevo el ciclo). y decida si repetir el Bucle. c. los ciclos del lazo Mientras nunca finalizaran y PSeint no podrá continuar con el resto del flujograma.Hasta” La estructura permite repetir un bloque de instrucciones (secuencia_de_acciones) limitadas entre los pasos “Repetir” y “Hasta que”. asegúrese que al finalizar el cuerpo. de manera que al finalizar cada ciclo.Hasta” La estructura repetitiva Para consta de 2 pasos (Para y FinPara) que limitan el cuerpo del bucle (secuencia_de_acciones) a repetir. y decida si repetir el Bucle. esta ya no se cumpla. GENERANDO UN LAZO INFINITO!! Sintaxis y uso de la instrucción “Repetir .Guía #: 04 Estructuras repetitivas en Algoritmos a. mientras que vuelva la CL a Falsa para salir del lazo. se debe asegurar que la Condición Lógica del paso final del ciclo se cumpla. Para permitir que el lazo Mientras ejecute al menos una vez su ciclo de instrucciones. Usa una Condición Lógica CL (expresión_logica) para determinar si repetir nuevamente el cuerpo del ciclo. d. la CL ya no se cumpla. de manera que al finalizar el ciclo actual. sino PSeint ignora a toda el bloque a repetir dentro de la estructura y continuara con el paso justamente después del cierre del Mientras. Según la aclaración anterior. asegúrese que al volver a evaluar la CL. PSeint evalué de nuevo la CL. asegúrese que en el interior de los pasos del ciclo se modifique/altere el valor de (por lo menos) una de las variables utilizada en la CL. • Tenga mucho cuidado: Si al evaluar la CL. Para determinar si volver a ejecutar el bucle.

En conclusión Al igual que en los PSeudocodigos. valor inicial. Requerimiento Cantidad 1 Guía de Laboratorio #04 de IP 1 2 PC con software DFD y PSeint instalados 1 3 Disquete ó Memoria USB 1 IV. la sintaxis de estas estructuras repetitivas en PSeint requieren las siguientes reglas de uso: 1. Las estructuras Mientras y Repetir-HastaQue requieren escribirles una “Condición Lógica”. en la cual redactara la solución del ejercicio descrito en la Tabla 2. para indicar el valor inicial del conteo de ciclos a repetir  [OPCIONAL] un valor de incremento (paso) que se le aplicara a la variable de conteo usada por el ciclo Para. Para la estructura Para. OR y NOT) 2. se deben definir 3 parámetros obligatorios (variable conteo. Reemplazar SUCARNET por su número de carnet. denominada Practica4IP_SUCARNET para almacenar todos los archivos a elaborar dentro del procedimiento de la práctica. ya sea para definir cuando se repetirá el cuerpo del Bucle o cuando se terminara (y continuar con el resto del algoritmo) 3. ¿Cómo debe ser evaluada la condición implementada en un Bucle?. MATERIALES Y EQUIPO Para la realización de la guía de práctica se requerirá lo siguiente: No. valor final del conteo) y uno opcional (valor que define incremento del conteo) III.Guía #: 04 Estructuras repetitivas en Algoritmos Dentro del paso “inicial” de una estructura Para se le necesita definir una condición de conteo la cual consta de los siguientes 4 parámetros:  Una variable de conteo (variable_numerica) que lleve el control del total de ciclos de instrucciones repetidas por el lazo Para  Un valor fijo o en una variable (valor_inicial) que se le asignara a la variable de conteo anterior. Proceda a crear una carpeta de trabajo. la cual se ubica al inicio del bucle (en ciclo Mientras) o sino al final (en bucle Repetir-Hasta) 2. A este valor/variable se le denomina también el INCREMENTO. PROCEDIMIENTO 1. PARTE A: Uso de operadores lógicos (AND. Crear un archivo de texto sencillo llamado PARTEA. es decir hasta donde debe llegar la variable de conteo para dejar de repetir ciclos del Para.  Un valor fijo o una variable (valor_final) que diga el valor final de conteo. Introducción a la Programación 7 .txt.

Guía #: 04 Estructuras repetitivas en Algoritmos Expresiones Lógicas (Condiciones Compuestas) a evaluar… Resultado de expresión ¿V o F? 10+t>1+m*2 m<5 or p <> t. para que usted elabore el Diagrama de Flujo (con DFD) y el Pseudocódigo (con aplicación Pseint). determine si c/condición da resultado Verdadero o Falso PARTE B: Estructura Repetitiva (Lazo/Ciclo Para) 3.. Salida 5 Declarar contador<-0 //.. utilizando una estructura repetitiva Para. Para las soluciones en PSeint. si debe redactar la información descrita por los “comentarios de programador” al redactar las líneas de c/pseudocódigo inicial a traducir. NOTA: Con respecto a los comentarios “de programador” indicados en algunas de las líneas (con uso de //): A. desarrolle la “Evaluación” paso a paso de cada una de las Expresiones Lógicas (Condiciones compuestas) indicadas en la tabla 2. En otras palabras.(-7). A continuación se le brinda una serie de problemas y su respectivo Algoritmo (solución). 3 Declarar num<-0. En la tabla 2 a continuación se le ofrece la solución (en Pseudocódigo general) que resuelve este problema. n<. PROBLEMA 1: Haga lo necesario para mostrar en pantalla a la “Tabla de multiplicar” de un Número dado por el usuario. t<-(2) Tabla 2: Evaluación de una condición compuesta Dado el listado de variables (y el valor inicial de cada una). ya que esta aplicación no permite esa funcionalidad B. Proceso 6 Escribir "PROGRAMA PARA GENERAR Tabla de Multiplicar" 7 Escribir "Escriba un numero para mostrar su tabla de multiplicar" Introducción a la Programación //.. Paso Descripción 1 Inicio 2 //lista de variables de.. Entrada 8 .8 4 Declarar factor<-0. 5. p<-(0).(5). No deben ser redactados en archivos DFD. 4. Prepare un nuevo archivo de diagrama de flujo en el software DFD.t MOD 7 (t+3>p+3) and not(-2*n>m^2) (n=t-4) and (t-n <= m) or (t^p=1) Asignacion inicial de variables : m<..7 //.

De un clic en cualquier área vacía del área de diseño del flujograma. También debe generarse su tabla de multiplicar. 15. Proceda a digitar el código siguiente: Introducción a la Programación 9 . 8. con la simbología y parámetros apropiados.factor 12 FinPara 13 Fin Tabla 2: Solución en pseudocódigo del PROBLEMA 1 6. pero ingresando un valor negativo. Observe el resultado en la Figura 4. creara la estructura repetitiva Para.pseint 17.contador. Ingrese un numero entero X y luego analice si obtiene la tabla de multiplicar de ese número ingresado. 9. 13. 18." x ".dfd en su carpeta de trabajo. 14. Para ello. Redacte los pasos del 3 al 8 del pseudocódigo anterior en su archivo creado en DFD. Entre la línea que une a los pasos [Para] y [Fin(Para)]. Guarde el archivo bajo el nombre Problema1. requerido en el paso 9 del pseudocódigo. Repita el paso anterior. incremento 1 10 factor<-num*contador 11 Escribir ">> ". agregue los símbolos apropiados para implementar los pasos 10 y 11 del pseudocódigo general. En este archivo creara los pasos equivalentes al pseudocódigo general de solución del PROBLEMA 1. con la sintaxis de PSeint y sin incluir aun los pasos de la estructura de repetición (rango de pasos 9 al 12) del pseudocódigo general. 11. 7. De doble clic sobre el símbolo de inicio de la estructura. 16. A continuación se le ofrece en la tabla 3 a la solución que resuelve el PROBLEMA 1 de la Tabla 2. cree un archivo de pseudocódigo en el software Pseint en su carpeta de trabajo bajo el nombre Problema1." = ". Digite los siguientes valores como los 4 parámetros que le solicita DFD (en ese orden): Contador 1 10 1 Figura 4. seleccione el símbolo (Ciclo para) y de clic en la línea después del símbolo Lectura (utilizado para cumplir el paso 8 del pseudocódigo).Guía #: 04 Estructuras repetitivas en Algoritmos 8 Leer num 9 Para contador<-1 Hasta 10.8 10.num.8: Agregando estructura Para al diagrama de flujo 12. Proceda a ejecutar el DFD. Luego del símbolo del paso 8. Para continuar.

revise su código y corríjalo. //. Ahora compruebe la ejecución de su pseudocódigo con la herramienta PasoxPaso. se implementan los valores del conteo a ejecutar por ciclo Para.. ejecutando el pseudocódigo y brindando un valor positivo.. por los valores: contador. 24. y específicamente analice con mucho cuidado como se ejecuta el Ciclo Para: + ¿Cuándo y por qué se mantiene dentro del ciclo? + ¿Cuándo y por que logra salir del ciclo y finalizar el algoritmo general? PARTE C: Estructura Mientras (Lazo o Ciclo Mientras) 25.. 23. Para agregar la estructura Para requerida en el paso 9 del pseudocódigo del PROBLEMA 1. insertar una línea en blanco luego de la Línea 8 del código en PSeint. Introducción a la Programación 10 . valor_inicial.Guía #: 04 Estructuras repetitivas en Algoritmos Linea Instrucción 1 2 Proceso Guia3ejemplo1 //lista de variables de. Se agregara la estructura general de la estructura Para-Fin Para en 3 Líneas del pseudocódigo. reemplace el parámetro secuencia_de_acciones por los comandos necesarios para implementar los pasos 10 y 11 del pseudocódigo.. 22. Colocar cursor en esta línea 9 vacía y seleccionar el comando Para de PSeint. A continuación se le ofrece otro problema. 4 factor<-0. Si hay algún problema. Escribir "Escriba un numero para mostrar su tabla de multiplicar". De esta manera.8.. tanto en DFD como en PSeint! PROBLEMA 2: Solicite un listado de 6 enteros (que sean “solo positivos”) al usuario. 21. 1. 3 num<-0. 10 y 1. Salida 5 contador<-0. //. Reemplace los parámetros resaltados: variable_numerica. según los valores indicados en el Paso 9 del pseudocódigo general. para que se evalué/analice e implemente el algoritmo solución. se le muestre las estadísticas siguientes: a) ¿Cuántos de los números resultaron ser múltiplos de 3? b) Suma de solamente los múltiplos de 7 (si los hay) o avisar que no ingreso ninguno. FinProceso Tabla 3: Solución en pseudocódigo con PSeint del PROBLEMA 1 19. c) El Promedio de los números pares que fueron ingresados. para que al finalizar. valor_final y paso. 8 9 //. Compruebe que la solución funciona. respectivamente. Luego.7. 20. Entrada Leer num. Siga la secuencia de los pasos. Proceso 6 7 Escribir "PROGRAMA PARA GENERAR Tabla de Multiplicar".

salida y proceso) que requiere la solución final. Introducción a la Programación 11 . Colocar el cursor al final de la Línea 13 del mismo y presionar Enter para agregar una Línea 14 vacía. seleccione el comando Mientras. Código de pseint Línea 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Proceso Multiplos4 //Entradas N<-5. digitara los pasos para solicitar a usuario un único valor positivo de todo el l listado. sin ninguna lectura (Entradas) de variables.totpares<-0. 34. //Procesos totnum<-6. Se agregan las 3 líneas mínimas que requiere la estructura Mientras para ejecutarse. creara la solución a este problema.pseint. 32. 27. Se agregan las 3 líneas mínimas que requiere la estructura Mientras para ejecutarse. Digite las líneas de solución de la 1er etapa." números enteros". Reemplace parámetro expresión_logica del ciclo Mientras por la condición: totvalidos<totnum Y en lugar de secuencia_de_acciones. Escribir "PERO SOLAMENTE POSITIVOS". Ahora agregara la lógica necesaria para hacer que usuario ingrese verdaderamente 6 números positivos. por cada vez que se ejecute el Cuerpo del Bucle. incluso le llame la atención cuando se equivoque!! 31. En esta nueva línea. que cada uno de los 6 números recibidos sean positivos !!) 26. //Solicitando entradas Escribir "Programa de Estadisticas Basicas". //Uno de los Números dados por usuario (+. sumapares<-0. //valor constante totvalidos<-0. mostradas en la tabla 4 y que ya están con la sintaxis de PSeint. ETAPA 1: Solicitar a usuario un total de 6 números a usuario. 29. + No mostrar las estadísticas hasta haber recibido del usuario un listado completamente “valido” de números solicitados (es decir. 28.totnum.8. En esta nueva línea. capturándolo en variable en N.o cero) //Salidas multi3<-0. En este archivo. sumamulti7<-0. pero que sean solamente positivos. para lograr el cumplimiento total del problema. Escribir "Ingrese cada uno de sus ". 33. . Ejecute el pseudocódigo y confirme que solo muestra el dialogo definido en pseudocódigo y finaliza normalmente. pero por etapas. Ahí están definidas todas las variables (de entrada.Guía #: 04 Estructuras repetitivas en Algoritmos Extras: + debe llamarle la atención del usuario cuando este último no ingrese un valor positivo. Proceda a crear en PSeint a un nuevo Pseudocódigo denominado Problema2_ETAPA1. seleccione el comando Mientras. con el fin de ir evaluando el impacto que genera cada una de ellas en conjunto. 30. FinProceso Tabla 4: Pasos de la Etapa 1 de solución del PROBLEMA 2.prompares<-0.

Entonces nunca se deja de cumplir la condición usada por la estructura y ya no se ejecutan los pasos siguientes al paso del fin del Ciclo. Inserte la siguiente asignación luego de la Línea 16: totvalidos <. gracias a que la asignación de la línea 16 hace la función de un “conteo de un ciclo” Un contador de ciclo es una variable que forma parte de la condición de control usada por un Ciclo/Bucle y que luego es alterada dentro del Cuerpo de ese mismo Ciclo (en este caso la estructura Mientras)!! 43. 35. Proceda a ejecutar la solución e intente escribir 6 valores cualesquiera. se le conoce como un CICLO INFINITO.totvalidos+1. ingresando cualquier cantidad de números positivos. ingresando cualquier cantidad de números solamente negativos ¿funciona el conteo de ciclo del paso anterior? En ambos pruebas. Este se desencadena debido a que no se altera ninguna de las variables definidas en la Condición que usa un Ciclo para determinar si debe repetir una vez más su cuerpo de instrucciones (Cuerpo del bucle). Ahora pruebe al pseudocódigo. Así que nunca se dejara de cumplir la condición 1 < 6 usada por el ciclo Mientras. Ahora convertirá a la variable totValidos en una “variable de conteo” que se usara en la condición del Ciclo Mientras. pero que sean todos positivos. Línea 13 14 15 16 17 14 Código de pseint Escribir "PERO SOLAMENTE POSITIVOS". Digite mas valores para determinar en qué momento logra finalizar la ejecución. Observe que el valor de variable totValidos siempre se mantiene con un valor de 1. Leer N. 38. ¿funciona el conteo del paso anterior? 42. cerrando la ventana de ejecución del mismo. 40. sin finalizar nunca de hacerlo. y totnum es constante (con un valor de 6). ejecute al pseudocódigo. cuando finalizar el ciclo? Para evitar generar un Ciclo Infinito como el del caso previo. Mientras totvalidos<totnum Hacer Escribir ">> Dato ". para indicarle ¿Cuándo debe continuar repitiendo su cuerpo de instrucciones y también. Responda ¿Cuántos datos ingreso usted en el pseudocódigo de PSeint para que finalizara la ejecución? A este problema de repetir continuamente los mismos pasos de un Ciclo. 39.Guía #: 04 Estructuras repetitivas en Algoritmos Vea el resultado (líneas 14 a la 17) en la Tabla 4. Pero en las 2 pruebas anteriores ¿Son datos validos en cada caso. Aborte la ejecución infinita de este pseucodigo.":". 37. según el problema a resolver? Introducción a la Programación 12 . Nuevamente. Ahora responda ¿Finalizo el programa al ingresar el ultimo valor valido? 36.totvalidos+1. el conteo de solamente 6 valores ingresados se hace correctamente. 41. FinMientras FinProceso Tabla 4: Pasos que definen al lazo Mientras requerido por la Etapa 1 de solución del PROBLEMA 2.

para insertar nuevos pasos en blanco (desplazando este paso y los siguientes hacia abajo de la redacción. Usted escribió un total de X números multiplos de 3 En donde X deberá ser reemplazado por el valor guardado en la variable de conteo multi3. la variable multi3 está siendo utilizada como una “variable de conteo”. la variable multi3 se cambia al sumar a su valor almacenado un valor fijo de 1… está contando de 1 en 1!! 7. En el único bloque Si de esta 2da toma de decisiones (Si-Entonces). En la 1er línea vacía (ubicada luego del paso Sino de la estructura Si-Entonces). así como descartar cualquier valor negativo y llamar la atención del usuario cuando esto suceda!! 44. para hacer una copia del archivo actual. bajo el nombre Problema2_ETAPA2. ETAPA 2: Determinar ¿Cuántos de los números ingresados son múltiplos de 3? 1. agregue una nueva toma de decisiones (Si entonces). 2. Con esta asignación. Elimine el paso Sino de esta nueva estructura Si-Entonces Reemplace el parámetro expresion_logica por una condición que permita determinar ¿Cuándo el valor de la variable N es múltiplo de 3? 6. Ahora se procederá a realizar cada uno de los cálculos para cumplir las salidas esperadas de la solución. 3. haga los pasos necesarios para que se muestre un idéntico al siguiente: RESULTADOS FINALES: 1. ) y presionar tecla Enter 2 veces. para que los cambios de esta etapa se realicen solamente en el archivo Problema2_ETAPA2. Cierre el archivo Problema2_ETAPA1.totvalidos+1. sin borrarlos!!) 5.pseint. Colocar el cursor al inicio de la línea que hace la función de conteo del ciclo Mientras ( totvalidos <totvalidos+1. 4.pseint. inserte un paso en blanco después de la línea del paso FinMientras. Ahora. guarde su pseudocódigo actual y luego haga clic en el menú (Archivo/Guardar como. 45. inserte nuevamente al paso de conteo del ciclo Mientras: totvalidos <. genere 2 mensajes en secuencia al usuario: * primero.Guía #: 04 Estructuras repetitivas en Algoritmos La prueba 2 no es conveniente para la solución del problema 2. Introducción a la Programación 13 .). se requiere que se acepte solamente 6 valores y que TODOS sean positivos. Reemplace la Línea que agrego como “conteo de ciclo” al pseudocódigo (la línea 17 actual) por una estructura de toma de decisiones (Si-Entonces) que cumpla con estas características: + Redacte una condición que permita determinar ¿Cuando la variable N es negativa? + En el bloque 1 (cuando se cumple la condición). Para cumplir perfectamente la ETAPA 1 de la solución del PROBLEMA 2. ¿Usuario recibe los mensajes de error en el momento apropiado? 46. porque cada vez que se ejecuta ese paso.pseint. para que sean tomados en cuenta (sean correctos!!) + En el bloque 2 (Sino). * Indicarle el tipo de valores que debe ingresar. Preste atención al valor del conteo del listado de numero solicitado al usuario: ¿Qué ocurre cuando es un numero positivo (correcto) o negativo (incorrecto)?. En esta línea en blanco. agregue este paso de asignación multi3<-multi3+1. avisarle que ha ingresado un número no valido y los motivos que justifican el llamado de atención. La meta final de la Etapa 2 será determinar al primer dato de salida: total de números validos que son múltiplos de 3.. Ejecute nuevamente el pseudocódigo e ingresar mezclas de valores negativos y positivos. Si todo es correcto.

13. La variable summulti7 hace la función de Acumulador o Sumador. ubique cursor al final del penúltimo paso del pseudocódigo (el paso previo al paso Fin.pseint 12.Guía #: 04 Estructuras repetitivas en Algoritmos 8. en el único bloque Si de esta estructura. 18. No continúe el procedimiento hasta cumplir el paso anterior!! 10. Usted escribio un total de 0 números multiplos de 3 Tabla 5: pruebas de ejecución para ETAPA 2 de la solución del PROBLEMA 2 9. Debe obtener las salidas ahí indicadas en cada caso: #prueba Entradas (valores de N) 1 9 16 2 11 24 7 5 81 22 7 56 Salida (mensaje en pantalla) 15 83 RESULTADOS FINALES: 1. 15. Para esta Etapa 3. Presione Enter para insertar una Línea en blanco. debido a que asigna su nuevo valor basada en su valor inicial más el valor de otra variable diferente!! En este caso. agregue una tercera toma de decisiones (Si-Entonces) y defina para la misma: + una condición que determine ¿Cuando la variable N es múltiplo de 7? + elimine el Paso Sino a la misma + Luego. Luego. agregue la siguiente asignación: sumamulti7<-sumamulti7+N. Presione tecla Enter para insertar líneas vacías en el pseudocódigo. bajo el nombre Problema2_ETAPA3. Ejecute al pseudocódigo con los datos de prueba definidos en la tabla de entradas-salidas a continuación (ver Tabla 5 ). Usted escribio un total de 4 números multiplos de 3 RESULTADOS FINALES: 1. 16. Los cambios a continuación se harán en el Problema2_ETAPA3. esta sumando solamente a cada valor de N ingresado por usuario (y que previamente se ha comprobado que es múltiplo de 7).pseint. en donde muestra al usuario el total de números múltiplos de 3 que ingreso). Cierre el archivo Problema2_ETAPA2. mostrar al usuario el valor de la sumatoria de los números los números múltiplos de 7 que ingreso + Cuando no se cumple. agregue una tercera Toma de Decisiones que tenga esta características: + La condición permitirá saber si ¿La variable sumamulti7 es diferente de cero? + Si se cumple. para hacer una copia del archivo actual. 17. localice la variable (sumamulti7) en el listado de creación de variables al inicio del pseudocódigo. En esta línea en blanco. Guarde su pseudocódigo actual y luego de clic en el menú (Archivo/Guardar como…). En la 1er línea en blanco. avisar que no ingreso ninguno 11. indicar a usuario que no ingreso ningún valor múltiplo de 7 Introducción a la Programación 14 . Colocar el cursor al final de la Línea donde se ubica el paso (Fin_Si) de la toma de decisiones que se agrego en la Etapa 2 anterior!! 14.pseint ETAPA 3: Calcular sumatoria de solamente los múltiplos de 7 o sino.

La sumatoria de valores múltiplos de 7 fue de 49 3.Guía #: 04 Estructuras repetitivas en Algoritmos 19. así como a las Variables de Proceso [ sumapares y totpares ] declaradas en la solución. El promedio de los valores pares ingresados fue de 49 RESULTADOS FINALES: 1. haga TODOS LOS CAMBIOS NECESARIOS para determinar el valor correcto para la variable de la última salida [ prompares ]. Debe obtener las salidas indicadas en cada caso: #prueba Entradas (valores de N) 1 9 81 2 11 22 16 7 24 36 21 15 15 83 Salida (mensaje en pantalla) RESULTADOS FINALES: 1. No ingreso ningún valor múltiplo de 7 Tabla 6: pruebas de ejecución para ETAPA 2 de la solución del PROBLEMA 2 20. A continuación se le ofrece otro problema.pseint. para cualquier secuencia valida de datos brindada por usuario. La sumatoria de valores múltiplos de 7 fue de 28 RESULTADOS FINALES: 1. Usted escribio un total de 4 números multiplos de 3 2. Usted escribio un total de 4 números multiplos de 3 2. analice e implemente el algoritmo solución bajo Pseint.pseint.pseint. apóyese en las pruebas definidas en la Tabla 7 para confirmar si cumplió esta última Etapa de la solución: #prueba 1 2 Entradas (valores de N) 9 16 21 82 7 15 11 69 15 49 129 83 Salida (mensaje en pantalla) RESULTADOS FINALES: 1. 23. Crear un archivo llamado Problema3. Luego hacer una copia del archivo actual. La sumatoria de valores múltiplos de 7 fue de 28 3. para que se evalué. Cuando haya hecho los cambios. Usted escribio un total de 3 números multiplos de 3 2. Tomando de ejemplo las etapas anteriores. El promedio de los valores pares ingresados fue de 0 Tabla 7: pruebas de ejecución para ETAPA 2 de la solución del PROBLEMA 2 PARTE D: Estructura/Lazo/Ciclo (Repetir-Hasta) 1. Ejecute nuevamente su pseudocódigo con los datos de prueba definidos en la tabla de entradas-salidas a continuación (ver Tabla 6). se trabajara con el archivo Problema2_ETAPA4. Guarde su pseudocódigo actual. ETAPA 4: Mostrar el promedio de los números pares ingresados 21. 22. Introducción a la Programación 15 . Usted escribio un total de 3 números multiplos de 3 2. bajo el nombre Problema2_ETAPA4. Para esta etapa.

sumadeno<-sumadeno+(1/R). Pruebe (manualmente) la solución. FinProceso Figura 4.Guía #: 04 Estructuras repetitivas en Algoritmos PROBLEMA 3: Solicite al usuario los valores de “un conjunto de N resistencias (R1. Ahora proceda a ejecutar el PSeudocodigo anterior. Leer N.req. i<-1. Escribir ">> Cuantas resistencias ingresara??".00. la cual utiliza la estructura repetitiva (Repetir-Hasta que) en una solución con la sintaxis del software PSeint Proceso ResistenciaEq //Entradas N<-0. //se prepara para proxima resistencia (si falta) Hasta Que i>N req<-1/sumadeno. 40 y 49 Kohmio).9: Codificación en PSeint de la solución del PROBLEMA 3 3. Debe obtener los mismos resultados!! PROBLEMAS A RESOLVER DURANTE LA PRACTICA En pareja con otro compañero del laboratorio. Un numero entero X es perfecto. excepto el mismo número X. Introducción a la Programación 16 . Determine la resistencia equivalente.i.//calcula nuevo denominador i<-i+1. Por ejemplo: 6 es un número perfecto. En la figura 4.":". //cuenta la resistencia que se ingresara sumadeno<-0. para así retornarle finalmente la “resistencia equivalente” (Req) de las mismas.9 se describe la solución a este PROBLEMA 3. e ingrese los datos del paso anterior.01. //inicia con 1era resistencia Repetir Escribir ">> Resistencia(KOhmios) ". Otro número perfecto es 28. R2… Rn) conectadas en paralelo”. con solamente un total de 3 resistencias (de 20. cuando es positivo e igual a la suma de todos sus divisores." Kohmios". Leer R. resuelva con un PSeudocodigo y un DFD equivalente el problema a continuación: Determine si un número entero dado por usuario es “perfecto”. //total de resistencias R<-0. Escribir " RESISTENCIA EQUIVALENTE: ". porque al sumar sus divisores (1+2+3). el resultado es igual al mismo 6. //calcula denominador de formula Escribir "Software para Electronica basica". Se consulto a un electricista sobre el tema y menciono que la formula que se aplicaría en este caso sería: 2. //Valor de solo una resistencia //Salida req<-0. //resistencia equivalente final //Procesos i<-1.

pseint del PROBLEMA 2 resuelto en el procedimiento de esta práctica. (con DFD y PSeint) De un listado de N enteros brindados por usuario. de Clasificación 005. Editorial: MCGRAW HILL. se debe indicar a usuario el mensaje de aviso apropiado. Editorial: MCGRAW HILL. determinar: a) El mayor valor de los números pares negativos b) Porcentaje de valores ceros en el listado ingresado c) Valor promedio de los valores impares positivos d) Menor de los pares negativos registrados Y también. 0. A cada empleado se le debe pedir los siguientes datos: a) sexo (1: Femenino 2: Masculino) b) estatura (en Centímetros) Al finalizar el ingreso de datos de la encuesta. Metodología de la Programación: Diagramas de Flujo. (Con DFD y PSeint) Elaborar una encuesta entre los N empleados de fabrica ADOC.67% de ceros en el listado ingresado c) Valor promedio de los valores impares positivos es 82. No. -193 Las respuestas solicitadas serán: a) Mayor de los valores negativos ingresados: -21 b) Hay un 26. (con DFD) Desarrolle un diagrama de flujo que sea equivalente a los pasos definidos en el archivo de pseudocódigo Problema2_ETAPA4. Luís. 78. 0. 0. -21. Algoritmos y Programación estructurada. • Joyanes Aguilar.dfd B.Guía #: 04 Estructuras repetitivas en Algoritmos V. DISCUSION DE RESULTADOS Los ejercicios a continuación se realizaran en parejas o tríos. 49. el administrador desea recibir esta información: a) Estatura promedio de las mujeres b) Porcentaje de hombres y mujeres que tiene contratadas ADOC c) La menor estatura entre el personal masculino. De Clasificación 005.2 d) No ingreso números pares negativos C. Luís. -67. Introducción a la Programación 17 . No. 38. El archivo dfd final se llamara Problema2_ETAPA4.1 J88 1998. Problemas de Metodología de la Programación. cuando una respuesta sea imposible de determinar.1 J88 1990. Observar el siguiente ejemplo: Serie numérica de 15 números ingresados: 25. 0. 159. 37. -73. BIBLIOGRAFIA • Joyanes Aguilar. VII.. 141. con el software indicado en cada problema: PROBLEMAS: A.