0 calificaciones0% encontró este documento útil (0 votos)
73 vistas20 páginas
El documento describe diferentes estructuras repetitivas en algoritmos, incluyendo bucles mientras, hacer-mientras, repetir-hasta y para. Explica cómo cada una funciona y provee ejemplos de pseudocódigo. También cubre cómo implementar estructuras repetitivas en los programas DFD y PSeint.
El documento describe diferentes estructuras repetitivas en algoritmos, incluyendo bucles mientras, hacer-mientras, repetir-hasta y para. Explica cómo cada una funciona y provee ejemplos de pseudocódigo. También cubre cómo implementar estructuras repetitivas en los programas DFD y PSeint.
El documento describe diferentes estructuras repetitivas en algoritmos, incluyendo bucles mientras, hacer-mientras, repetir-hasta y para. Explica cómo cada una funciona y provee ejemplos de pseudocódigo. También cubre cómo implementar estructuras repetitivas en los programas DFD y PSeint.
Nombre de la Practica: Estructuras repetitivas en Algoritmos
Lugar de Ejecucin: Centro de Computo Tiempo Estimado: 2 horas y 30 minutos MATERIA: Introduccin a la Programacin
I. OBJETIVOS
Que el alumno sea capaz de: Evaluar la solucin a problemas que requieren repetir uno o ms bloques de instrucciones Utilizar apropiadamente las diversas estructuras repetitivas disponibles en los algoritmos Traducir correctamente un pseudocdigo 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 ejecucin 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 (tambin llamadas Ciclo, Lazo o Bucle), se necesita definir 3 elementos: a) Ya sea una Condicin de Conteo o una Condicin Lgica. b) Un contador, el cual deber incrementarse por cada iteracin 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 pseudocdigo se muestran a continuacin:
CICLO: 01/ 2014 UNIVERSIDAD ANDRES BELLO FACULTAD DE CIENCIAS ECONOMICAS Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 2 Estructura Mientras La estructura repetitiva Mientras es aquella en la cual, el cuerpo del bucle se repite solamente cuando se cumpla una Condicin Lgica especfica (ver figura 4.1). Cuando se ejecuta la instruccin Mientras, la primera cosa que sucede es que se evala una Condicin (una expresin lgica), para luego realizar lo siguiente:
* Si la expresin lgica es verdadera, entonces se ejecuta el cuerpo del bucle. Luego se prepara nuevamente para evaluar a la misma expresin lgica. Este proceso (ejecucin del Cuerpo del Bucle) se repite una y otra vez solamente cuando la expresin lgica (condicin) sea verdadera
* Si se evala falsa, ignora todo el conjunto de pasos (el cuerpo del Bucle), para que el algoritmo continu con la siguiente instruccin despus del fin del bucle Mientras.
Representacin de estructura Mientras
Diagrama de flujo:
Pseudocdigo:
Mientras <expresin_logica> Hacer accin S1 accin S2 . . accin Sn Fin_Mientras
Figura 4.1: Estructura de control Mientras
Estructura Hacer Mientras El bucle hacer mientras es similar al bucle mientras, es decir que el Cuerpo del Bucle se ejecuta una y otra vez solamente cuando su Condicin (Expresin lgica) sea verdadera.
Existe, sin embargo, su gran diferencia con la estructura Mientras es que el Cuerpo del Bucle esta encerrado entre la palabras reservadas hacer y mientras, de modo que las sentencias de dicho cuerpo se ejecutan al menos una vez, antes de que se evalu la expresin lgica, ver Figura 4.2.
En otras palabras, el cuerpo del bucle siempre se ejecuta una vez, y al finalizar, se evala la expresin lgica.
Representacin de estructura Hacer Mientras Diagrama de flujo:
Pseudocdigo: Hacer accin S1 accin S2 . . accin Sn Mientras <expresin_logica>
Figura 4.2: Estructura de control Hacer Mientras. 3 Estructura Repetir-Hasta El bucle Repetir-Hasta permite ejecutar al menos una vez un Cuerpo de pasos, para luego evaluar una Condicin Lgica. La misma debe resultar Falsa para repetir nuevamente el Cuerpo del Bucle, de lo contrario, sale del Bucle para continuar con el resto del algoritmo.
Si se observa el Diagrama de flujo del bucle Repetir Hasta y lo compara con el resto de estructuras repetitivas, resulta ser casi idntica al bucle Hacer-Mientras.
La diferencia entre ambas estructura se centra en la resultado de la Evaluacin Lgica de la Condicin utilizada.
Para repetir el cuerpo de un Bucle Hacer- Mientras, la Condicin deber ser evaluada como Verdadera; en cambio, para el Bucle Repetir-Hasta, requiere que la condicin sea Falsa para repetir el Cuerpo del Bucle. Representacin de estructura Repetir Hasta Diagrama de flujo:
Pseudocdigo: Repetir accin S1 accin S2 . . accin Sn Hasta <expresin_logica>
Figura 4.3: Estructura de control Repetir Hasta.
Estructura Para Al solucionar un problema con estructuras repetitivas, muchas veces ocurre que se conocen de antemano el nmero de veces que se desean ejecutar un mismo Grupo de instrucciones dentro de un Bucle. En estos casos, cuando el numero de iteraciones es fijo, se puede usar la estructura Para.
La representacin de la estructura Para es la siguiente: Representacin de estructura Para Diagrama de flujo:
Pseudocdigo:
Para i vi Hasta vf [incremento | decremento incr] hacer accin S1 accin S2 . accin Sn Fin_Para
En donde: i: variable ndice vi, vf: valores inicial y final de la variable incr: indica el valor numrico en que va haciendo el aumento o decremento por default hace un incremento de 1
Figura 4.4: Estructura de control de repeticin Para. Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 4 La estructura Para ejecuta las acciones del Cuerpo del Bucle un numero especificado de veces y de modo automtico controla el numero de iteraciones o pasos a travs del cuerpo del bucle. 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. La variable ndice se incrementa en 1 (por defecto, se cuenta de uno en uno), o en el valor que especifiquemos, 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 iteracin el valor inicial deber ser superior al final. Consideremos siempre la variable ndice de tipo entero.
Estructuras repetitivas del software DFD En el programa DFD se cuenta con 2 tipos de estructuras repetitivas (Ver figura 4.5), las cuales son Mientras y la estructura Para. La estructura y sintaxis de uso de cada una se explica a continuacin.
Figura 4.5: Estructuras Mientras y Para en la aplicacin DFD
Estructura Mientras Al igual que lo mencionado en la introduccin general de un lazo Mientras, DFD requiere que especifique 2 elementos: A. Una condicin de control, la cual se coloca en el smbolo inicial. B. Cuerpo del bucle: el o los pasos a ejecutar solamente cuando la condicin anterior se cumpla. Este se ubica en la lnea que une a los 2 smbolos iniciales que definen a la estructura.
Estructura Para Este ciclo necesita la definicin de una variable de conteo, la cual lleva el control de la cantidad de veces que el ciclo se est repitiendo. Para definirlo, el smbolo de apertura MQ solicita 3 parmetros obligatorios y uno opcional, mostrado en la figura 4.6.
Figura 4.6: los 4 parmetros requeridos por estructura Para en DFD
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 5 La variable de conteo la utiliza el Bucle, para evaluarla con el resto de los 3 parmetros de la figura 4.6 y determinar si debe o no repetir una vez ms la ejecucin de su Cuerpo de instrucciones. La expresin de conteo puede ser un (valor fijo, una variable o una expresin), e indicara el valor inicial para la variable de conteo del Bucle. La expresin de valor final a contar es el valor mximo que la variable de conteo llegara a tener durante el ltimo ciclo a ejecutar por la estructura Para. En otras palabras, la variable de conteo del ciclo no deber superar el valor de dicho valor final, para poder repetir una vez ms el Cuerpo del Bucle
La expresin de incremento tiene un valor predeterminado de 1 y funciona de esta manera: Cada vez que el ciclo Para finaliza la ejecucin de su cuerpo de instrucciones, incrementa a su variable de conteo con el valor de la expresin de incremento. Si el valor de incremento es negativo, el ciclo se lo restara a su variable de conteo. Luego, compara al nuevo valor de la variable de conteo contra el valor final, para as determinar si repite una vez ms el cuerpo del ciclo o sino, finaliza su ejecucin.
Cundo un ciclo Para repetir una vez ms a su cuerpo de instrucciones? Un ciclo Para utiliza a los valores asignados a su pareja de parmetros (expresin final de conteo y al incremento) para determinar si debe repetir su bloque de pasos una vez mas y tambin, como alterara a su variable de conteo cuando un ciclo se finalice. Las reglas se resumen en la tabla 1 a continuacin:
Si valor de incremento es Condicin que evala ciclo Para para determinar si repite una vez a su Cuerpo de instrucciones. Al finaliza un ciclo, 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 evala un ciclo Para de acuerdo a su valor final de conteo y tipo de incremento (+ o -)
6 Estructuras repetitivas del software PSeint
Dentro del programa PSeint se tienen disponibles a 3 de las estructuras repetitivas, las cuales son Mientras, Repetir-Hasta y la estructura Para, ver figura 4.7. La estructura y sintaxis de uso de cada una se explica a continuacin.
* Mientras
* Repetir Hasta
* Para
Figura 4.7: Comandos de PSeint para estructuras repetitivas
Sintaxis y uso de la instruccin Mientras Repite un bloque de instrucciones (Secuencia_de_acciones) limitada entre el paso Mientras y paso FinMientras.
La repeticin del bloque de pasos se controla al inicio de la estructura, gracias a evaluar a una condicin lgica CL Expresion_logica, 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: a. Para permitir que el lazo Mientras ejecute al menos una vez su ciclo de instrucciones, usted debe de asegurarse que su Condicin Lgica se cumpla (inicialmente), sino PSeint ignora a toda el bloque a repetir dentro de la estructura y continuara con el paso justamente despus del cierre del Mientras. b. Para que el lazo Mientras pueda repetir el Bucle una o ms veces, asegrese 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, de manera que al finalizar el ciclo actual, PSeint evalu de nuevo la CL, y decida si repetir el Bucle. c. Segn la aclaracin anterior, si necesita que el lazo finalice (que ya no se repita de nuevo el ciclo), asegrese que al volver a evaluar la CL, esta ya no se cumpla.
Como conclusiones de las ltimas dos aclaraciones: Siempre asegrese que la CL del lazo sea Verdadera para mantenerse repitiendo continuamente el lazo mientras, mientras que vuelva la CL a Falsa para salir del lazo. Tenga mucho cuidado: Si al evaluar la CL, esta siempre es verdadera, los ciclos del lazo Mientras nunca finalizaran y PSeint no podr continuar con el resto del flujograma. GENERANDO UN LAZO INFINITO!! 7 Sintaxis y uso de la instruccin Repetir - Hasta La estructura permite repetir un bloque de instrucciones (secuencia_de_acciones) limitadas entre los pasos Repetir y Hasta que. Usa una Condicin Lgica CL (expresin_logica) para determinar si repetir nuevamente el cuerpo del ciclo.
Al utilizar un lazo Repetir-Hasta hay que tener cuidado de lo siguiente: a. El ciclo Repetir-Hasta hasta ejecuta una vez el cuerpo del bloque b. Para determinar si volver a ejecutar el bucle, se debe asegurar que la Condicin Lgica del paso final del ciclo se cumpla, sino PSeint continuara con el paso justamente despus del cierre del Repetir-Hasta. c. Para que el lazo Repetir-Hasta pueda repetir el Bucle 2 o ms veces, asegrese 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 evala al final de la estructura, de manera que al finalizar cada ciclo, PSeint evalu de nuevo la CL, y decida si repetir el Bucle. d. Segn la aclaracin anterior, si necesita que el lazo finalice (que ya no se repita de nuevo el ciclo), asegrese que al finalizar el cuerpo, la CL ya no se cumpla.
Sintaxis y uso de la instruccin Para - Hasta La estructura repetitiva Para consta de 2 pasos (Para y FinPara) que limitan el cuerpo del bucle (secuencia_de_acciones) a repetir.
Dentro del paso inicial de una estructura Para se le necesita definir una condicin de conteo la cual consta de los siguientes 4 parmetros: 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, 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. A este valor/variable se le denomina tambin el INCREMENTO. Un valor fijo o una variable (valor_final) que diga el valor final de conteo, es decir hasta donde debe llegar la variable de conteo para dejar de repetir ciclos del Para.
En conclusin Al igual que en los PSeudocodigos, la sintaxis de estas estructuras repetitivas en PSeint requieren las siguientes reglas de uso: 1. Las estructuras Mientras y Repetir-HastaQue requieren escribirles una Condicin Lgica, la cual se ubica al inicio del bucle (en ciclo Mientras) o sino al final (en bucle Repetir-Hasta) Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 8 2. Cmo debe ser evaluada la condicin implementada en un Bucle?, ya sea para definir cuando se repetir el cuerpo del Bucle o cuando se terminara (y continuar con el resto del algoritmo) 3. Para la estructura Para, se deben definir 3 parmetros obligatorios (variable conteo, valor inicial, valor final del conteo) y uno opcional (valor que define incremento del conteo)
III. MATERIALES Y EQUIPO
Para la realizacin de la gua de prctica se requerir lo siguiente:
No. Requerimiento Cantidad 1 Gua de Laboratorio #04 de IP 1 2 PC con software DFD y PSeint instalados 1 3 Disquete Memoria USB 1
IV. PROCEDIMIENTO
1. Proceda a crear una carpeta de trabajo, denominada Practica4IP_SUCARNET para almacenar todos los archivos a elaborar dentro del procedimiento de la prctica. Reemplazar SUCARNET por su nmero de carnet.
PARTE A: Uso de operadores lgicos (AND, OR y NOT)
2. Crear un archivo de texto sencillo llamado PARTEA.txt, en la cual redactara la solucin del problema descrito en la figura 4.8.
Expresiones Lgicas (Condiciones Compuestas) a evaluar Resultado de expresin V o F? 10+t>1+2*m m<5 or p <> t MOD 7 (t<>p+3) and not(-2*n>m^2) (n=t-4) and (t-n <= m) or (t^p=1) Asignacion inicial de variables: m<- (5), n<- (-7), p<-(0), t<-(2) Figura 4.8: Evaluacin de una condicin compuesta
Dado el listado de variables (y el valor inicial de cada una), desarrolle la Evaluacin paso a paso de cada una de las Expresiones Lgicas (Condiciones compuestas) indicadas en la tabla de la Figura 4.8. En otras palabras, determine si c/condicin da resultado Verdadero o Falso
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 9 PARTE B: Estructura Repetitiva (Lazo/Ciclo Para)
1. A continuacin se le brinda una serie de problemas y su respectivo Algoritmo (solucin), para que usted elabore el Diagrama de Flujo (con DFD) y el Pseudocdigo (con aplicacin Pseint).
NOTA: Con respecto a los comentarios de programador indicados en algunas de las lneas (con uso de //): A. No deben ser redactados en archivos DFD, ya que esta aplicacin no permite esa funcionalidad B. Para las soluciones en PSeint, si debe redactar la informacin descrita por los comentarios de programador al redactar las lneas de c/pseudocdigo inicial a traducir.
PROBLEMA 1: Haga lo necesario para mostrar en pantalla a la Tabla de multiplicar de un Nmero dado por el usuario.
2. A continuacin se le ofrece la solucin (en Pseudocdigo general) que resuelve este problema, utilizando una estructura repetitiva Para.
Paso descripcin 1 2 3 4 5 6 7 8 9 10 11 12 13 Inicio //lista de variables de... Declarar num<-0.8 //.. Entrada Declarar factor<-0.7 //.. Salida Declarar contador<-0 //.. Proceso Escribir "PROGRAMA PARA GENERAR Tabla de Multiplicar" Escribir "Escriba un numero para mostrar su tabla de multiplicar" Leer num Para contador<-1 Hasta 10, incremento 1 factor<-num*contador Escribir ">> ",num," x ",contador," = ",factor FinPara Fin
3. Prepare un nuevo archivo de diagrama de flujo en el software DFD. 4. Redacte los pasos del 3 al 8 con la simbologa y parmetros apropiados solicitados por DFD
5. Guarde el archivo bajo el nombre Problema1.dfd en su carpeta de trabajo.
6. Luego del smbolo DFD Leer antes del final del diagrama de flujo, ah creara la estructura repetitiva Para en el paso 9 del pseudocdigo. Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 10 Para ello, seleccione el smbolo (Ciclo para) y de clic en la lnea despus del smbolo Lectura (utilizado para cumplir el paso 8 del pseudocdigo).
7. Observe el resultado en la Figura 4.9 8. De doble clic sobre el smbolo de inicio de la estructura.
9. Digite los siguientes valores como los 4 parmetros que le solicita DFD (en ese orden):
Contador 1 10 1
Figura 4.9: Agregando estructura Para al diagrama de flujo 10. De un clic en cualquier rea vaca del rea de diseo del flujograma. 11. Entre la lnea que une a los pasos [Para] y [Fin(Para)], agregue los smbolos apropiados para implementar los pasos 10 y 11 del pseudocdigo general.
12. Proceda a ejecutar el DFD. Ingrese un numero entero X y luego analice si obtiene la tabla de multiplicar de ese nmero ingresado. 13. Repita el paso anterior, pero ingresando un valor negativo. Tambin debe generarse su tabla de multiplicar.
14. Para continuar, se creara un archivo de pseudocdigo en el software Pseint equivalente al pseudocdigo general de solucin del PROBLEMA 1. 15. Guardar el nuevo archivo en su carpeta de trabajo bajo el nombre Problema1.pseint 16. A continuacin se le ofrece la solucin que resuelve el problema anterior, pero con la sintaxis de PSeint y sin incluir aun los pasos de la estructura de repeticin (rango de pasos 9 al 12) del pseudocdigo general.
Proceda a digitar el cdigo siguiente en su archivo pseint:
Linea Instruccion 1 2 3 4 5 6 7 8 9 Proceso Guia3ejemplo1 //lista de variables de... num<-0.8; //.. Entrada factor<-0.7; //.. Salida contador<-0; //.. Proceso Escribir "PROGRAMA PARA GENERAR Tabla de Multiplicar"; Escribir "Escriba un numero para mostrar su tabla de multiplicar"; Leer num; FinProceso
17. Para agregar la estructura Para requerida en el paso 9 del pseudocdigo del PROBLEMA 1, insertar una lnea en blanco luego de la Lnea 8 del cdigo en PSeint. Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 11 18. Colocar cursor en esta lnea 9 vacia y seleccionar el comando Para de PSeint. Se agregara la estructura general de la estructura Para-Fin Para en 3 Lneas del pseudocdigo. 19. Reemplace los parmetros resaltados: variable_numerica, valor_inicial, valor_final y paso, por los valores: contador, 1, 10 y 1, respectivamente. De esta manera, se implementan los valores del conteo a ejecutar por ciclo Para, segn los valores indicados en el Paso 9 del pseudocdigo general.
20. Luego, reemplace el parmetro secuencia_de_acciones por los comandos necesarios para implementar los pasos 10 y 11 del pseudocdigo. 21. Compruebe que la solucin funciona, ejecutando el pseudocdigo y brindando un valor positivo. Si hay algn problema, revise su cdigo y corrjalo.
22. Ahora compruebe la ejecucin de su pseudocdigo con la herramienta PasoxPaso. Siga la secuencia de los pasos, y especficamente analice con mucho cuidado como se ejecuta el Ciclo Para: + Cundo y por qu se mantiene dentro del ciclo? + Cundo y por que logra salir del ciclo y finalizar el algoritmo general?
PARTE C: Estructura Mientras (Lazo o Ciclo Mientras)
23. A continuacin se le ofrece otro problema, para que se evalu/analice e implemente el algoritmo solucin, tanto en DFD como en PSeint!
PROBLEMA 2: Solicite un listado de 6 enteros (que sean solo positivos) al usuario, para que al finalizar, se le muestre las estadsticas siguientes: a) Cuntos de los nmeros resultaron ser mltiplos de 3? b) Suma de solamente los mltiplos de 7 (si los hay) o avisar que no ingreso ninguno. c) El Promedio de los nmeros pares que fueron ingresados. Extras: + debe llamarle la atencin del usuario cuando este ltimo no ingrese un valor positivo. + No mostrar las estadsticas hasta haber recibido del usuario un listado completamente valido de nmeros solicitados (es decir, que cada uno de los 6 nmeros recibidos sean positivos !!)
24. Proceda a crear en PSeint a un nuevo Pseudocdigo denominado Problema2_ETAPA1.pseint. 25. En este archivo, creara la solucin a este problema, pero por etapas, con el fin de ir evaluando el impacto que genera cada una de ellas en conjunto, para lograr el cumplimiento total del problema.
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 12 ETAPA 1: Solicitar a usuario un total de 6 nmeros a usuario, pero que sean solamente positivos.
26. Digite las lneas de solucin de la 1er etapa, mostradas en la tabla 2 y que ya estn con la sintaxis de PSeint Ah estn definidas todas las variables (de entrada, salida y proceso) que requiere la solucin final.
27. Ejecute el pseudocdigo y confirme que solo muestra el dialogo definido en pseudocdigo y finaliza normalmente, sin ninguna lectura (Entradas) de variables.
28. Ahora agregara la lgica necesaria para hacer que usuario ingrese verdaderamente 6 nmeros positivos, incluso le llame la atencin cuando se equivoque!!
29. Colocar el cursor al final de la Lnea 13 del mismo y presionar Enter para agregar una Lnea 14 vaca. 30. En esta nueva lnea, seleccione el comando Mientras. Se agregan las 3 lneas mnimas que requiere la estructura Mientras para ejecutarse.
Lnea Cdigo de pseint 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Proceso Multiplos4 //Entradas N<-5; //Uno de los Nmeros dados por usuario y puede ser +, - o cero //Salidas multi3<-0; sumamulti7<-0;prompares<-0.8; //Procesos totnum<-6; //valor constante totvalidos<-0; sumapares<-0;totpares<-0; //Solicitando entradas Escribir "Programa de Estadisticas Basicas"; Escribir "Necesito que me digite un total de ",totnum," nmeros enteros"; Escribir "PERO SOLAMENTE POSITIVOS"; FinProceso
Tabla 2: Pasos de la Etapa 1 de solucin del PROBLEMA 2.
31. En esta nueva lnea, seleccione el comando Mientras. Se agregan las 3 lneas mnimas que requiere la estructura Mientras para ejecutarse. 32. Reemplace parmetro expresin_logica del ciclo Mientras por la condicin: totvalidos<totnum
Y en lugar de secuencia_de_acciones, digitara los pasos para solicitar a usuario un nico valor positivo de todo el l listado, capturndolo en variable en N, por cada vez que se ejecute el Cuerpo del Bucle. Vea el resultado en la Tabla 3.
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 13 Lnea Cdigo de pseint 14 15 16 17 Mientras totvalidos<totnum Hacer Escribir ">> Dato ",totvalidos+1,":"; Leer N; FinMientras
Tabla 3: Pasos que definen al lazo Mientras que requiere la Etapa 1 de solucin del PROBLEMA 2.
33. Proceda a ejecutar la solucin e intente escribir 6 valores cualesquiera, pero que sean todos positivos. Ahora responda Finalizo el programa al ingresar el ultimo valor valido?
34. Digite mas valores para determinar en qu momento logra finalizar la ejecucin. Responda Cuntos datos ingreso usted en el pseudocdigo de PSeint para que finalizara la ejecucin? A este problema de repetir continuamente los mismos pasos de un Ciclo, sin finalizar nunca de hacerlo, se le conoce como un CICLO INFINITO. Este se desencadena debido a que no se altera ninguna de las variables definidas en la Condicin que usa un Ciclo para determinar si debe repetir una vez ms su cuerpo de instrucciones (Cuerpo del bucle). Entonces nunca se deja de cumplir la condicin usada por la estructura y ya no se ejecutan los pasos siguientes al paso del fin del Ciclo.
35. Observe que el valor de variable totValidos siempre se mantiene con un valor de 1, y totnum es constante (con un valor de 6). As que nunca se dejara de cumplir la condicin 1 < 6 usada por el ciclo Mientras. 36. Aborte la ejecucin infinita de este pseucodigo, cerrando la ventana de ejecucin del mismo.
37. Ahora convertir a la variable totValidos en una variable de conteo que se usara en la condicin del Ciclo Mientras, para indicarle Cundo debe continuar repitiendo su cuerpo de instrucciones y tambin, cuando finalizar el ciclo? Para evitar generar un Ciclo Infinito como el del caso previo. 38. Inserte la siguiente asignacin luego de la Lnea 16: totvalidos <- totvalidos+1; 39. Ahora pruebe al pseudocdigo, ingresando cualquier cantidad de nmeros positivos. funciona el conteo del paso anterior? 40. Nuevamente, ejecute al pseudocdigo, ingresando cualquier cantidad de nmeros solamente negativos funciona el conteo de ciclo del paso anterior? En ambos pruebas, el conteo de solamente 6 valores ingresados se hace correctamente, gracias a que la asignacin de la lnea 16 hace la funcin de un conteo de un ciclo Un contador de ciclo es una variable que forma parte de la condicin 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)!!
41. Pero en las 2 pruebas anteriores Son datos validos en cada caso, segn el problema a resolver? La prueba 2 no es conveniente para la solucin del problema 2. Para cumplir perfectamente la ETAPA 1 de la solucin del PROBLEMA 2, se requiere que se acepte solamente 6 valores y que TODOS sean positivos; as como descartar cualquier valor negativo y llamar la atencin del usuario cuando esto suceda!!
42. Reemplace la Lnea que agrego como conteo de ciclo al pseudocdigo (la lnea 17 actual) por una estructura de toma de decisiones (Si-Entonces) que cumpla con estas caractersticas: Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 14 + Redacte una condicin que permita determinar Cuando la variable N es negativa? + En el bloque 1 (cuando se cumple la condicin), genere 2 mensajes en secuencia al usuario: * primero, avisarle que ha ingresado un nmero no valido y los motivos que justifican el llamado de atencin. * Indicarle el tipo de valores que debe ingresar, para que sean tomados en cuenta (sean correctos!!) + En el bloque 2 (Sino), inserte nuevamente al paso de conteo del ciclo Mientras: totvalidos <- totvalidos+1;
43. Ejecute nuevamente el pseudocdigo e ingresar mezclas de valores negativos y positivos. Preste atencin al valor del conteo del listado de numero solicitado al usuario: Qu ocurre cuando es un numero positivo (correcto) o negativo (incorrecto)?, Usuario recibe los mensajes de error en el momento apropiado?
44. Si todo es correcto, guarde su pseudocdigo actual y luego haga clic en el men (Archivo/Guardar como..), para hacer una copia del archivo actual, bajo el nombre Problema2_ETAPA2.pseint.
ETAPA 2: Determinar Cuntos de los nmeros ingresados son mltiplos de 3? 1. Cierre el archivo Problema2_ETAPA1.pseint, para que los cambios de esta etapa se realicen solamente en el archivo Problema2_ETAPA2.pseint. 2. Ahora se proceder a realizar cada uno de los clculos para cumplir las salidas esperadas de la solucin.
3. La meta final de la Etapa 2 sera determinar al primer dato de salida: total de nmeros validos que son mltiplos de 3. 4. Colocar el cursor al inicio de la lnea que hace la funcin de conteo del ciclo Mientras ( totvalidos <- totvalidos+1; ) y presionar tecla Enter 2 veces, para insertar nuevos pasos en blanco (desplazando esste paso y los siguientes hacia abajo de la redaccin, sin borrarlos!!) 5. En la 1er lnea vaca (ubicada luego del paso Sino de la estructura Si-Entonces), agregue una nueva toma de decisiones (Si entonces). Elimine el paso Sino de esta nueva estructura Si-Entonces Reemplace el parmetro expresion_logica por una condicin que permita determinar Cundo el valor de la variable N es mltiplo de 3?
6. En el nico bloque Si de esta 2da toma de decisiones (Si-Entonces), agregue este paso de asignacin multi3<-multi3+1; Con esta asignacin, la variable multi3 est siendo utilizada como una variable de conteo, porque cada vez que se ejecuta ese paso, la variable multi3 se cambia al sumar a su valor almacenado un valor fijo de 1 est contando de 1 en 1!!
7. Ahora, inserte un paso en blanco despus de la lnea del paso FinMientras. En esta lnea en blanco, haga los pasos necesarios para que se muestre un idntico al siguiente:
RESULTADOS FINALES: 1. Usted escribi un total de X nmeros multiplos de 3 En donde X deber ser reemplazado por el valor guardado en la variable de conteo multi3.
8. Ejecute al pseudocdigo con los datos de prueba definidos en la tabla de entradas-salidas a continuacin (ver Tabla 4 ). Debe obtener las salidas ah indicadas en cada caso:
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 15 #prueba Entradas (valores de N) Salida (mensaje en pantalla) 1 9 16 24 81 7 15 RESULTADOS FINALES: 1. Usted escribio un total de 4 nmeros multiplos de 3 2 11 7 5 22 56 83 RESULTADOS FINALES: 1. Usted escribio un total de 0 nmeros multiplos de 3
Tabla 4: pruebas de ejecucin para ETAPA 2 de la solucin del PROBLEMA 2
9. No contine el procedimiento hasta cumplir el paso anterior!!
10. Guarde su pseudocdigo actual y luego de clic en el men (Archivo/Guardar como), para hacer una copia del archivo actual, bajo el nombre Problema2_ETAPA3.pseint. Cierre el archivo Problema2_ETAPA2.pseint
ETAPA 3: Calcular sumatoria de solamente los mltiplos de 7 o sino, avisar que no ingreso ninguno
11. Los cambios a continuacin se harn en el Problema2_ETAPA3.pseint 12. Para esta Etapa 3, localice la variable (sumamulti7) en el listado de creacin de variables al inicio del pseudocdigo. 13. Colocar el cursor al final de la Lnea donde se ubica el paso (Fin_Si) de la toma de decisiones que se agrego en la Etapa 2 anterior!! 14. Presione tecla Enter para insertar lneas vacas en el pseudocdigo. 15. En la 1er lnea en blanco, agregue una tercera toma de decisiones (Si-Entonces) y defina para la misma: + una condicin que determine Cuando la variable N es mltiplo de 7? + elimine el Paso Sino a la misma + Luego, en el nico bloque Si de esta estructura, agregue la siguiente asignacin: sumamulti7<-sumamulti7+N;
La variable summulti7 hace la funcin de Acumulador o Sumador, debido a que asigna su nuevo valor basada en su valor inicial ms el valor de otra variable diferente!! En este caso, esta sumando solamente a cada valor de N ingresado por usuario (y que previamente se ha comprobado que es mltiplo de 7).
16. Luego, ubique cursor al final del penltimo paso del pseudocdigo (el paso previo al paso Fin, en donde muestra al usuario el total de nmeros mltiplos de 3 que ingreso). 17. Presione Enter para insertar una Lnea en blanco. 18. En esta lnea en blanco, agregue una tercera Toma de Decisiones que tenga esta caractersticas: + La condicin permitir saber si La variable sumamulti7 es diferente de cero? + Si se cumple, mostrar al usuario el valor de la sumatoria de los nmeros los nmeros mltiplos de 7 que ingreso + Cuando no se cumple, indicar a usuario que no ingreso ningn valor mltiplo de 7
19. Ejecute nuevamente su pseudocdigo con los datos de prueba definidos en la tabla de entradas-salidas a continuacin (ver Tabla 5 ). Debe obtener las salidas indicadas en cada caso:
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 16 #prueba Entradas (valores de N) Salida (mensaje en pantalla) 1 9 16 21 81 7 15 RESULTADOS FINALES: 1. Usted escribio un total de 4 nmeros multiplos de 3 2. La sumatoria de valores mltiplos de 7 fue de 28 2 11 24 15 22 36 83 RESULTADOS FINALES: 1. Usted escribio un total de 3 nmeros multiplos de 3 2. No ingreso ningn valor mltiplo de 7
Tabla 4: pruebas de ejecucin para ETAPA 2 de la solucin del PROBLEMA 2
20. Guarde su pseudocdigo actual. Luego hacer una copia del archivo actual, bajo el nombre Problema2_ETAPA4.pseint.
ETAPA 4: Mostrar el promedio de los nmeros pares ingresados
21. Para esta etapa, se trabajara con el archivo Problema2_ETAPA4.pseint. 22. Tomando de ejemplo las etapas anteriores, asi como a las Variables de Proceso [ sumapares y totpares ] declaradas en la solucion, haga TODOS LOS CAMBIOS NECESARIOS para determinar el valor correcto para la variable de la ltima salida [ prompares ], para cualquier secuencia valida de datos brindada por usuario.
23. Cuando haya hecho los cambios, apyese en las pruebas definidas en la Tabla 5 para confirmar si cumpli esta ltima Etapa de la solucin: #prueba Entradas (valores de N) Salida (mensaje en pantalla) 1 9 16 21
82 7 15 RESULTADOS FINALES: 1. Usted escribio un total de 4 nmeros multiplos de 3 2. La sumatoria de valores mltiplos de 7 fue de 28 3. El promedio de los valores pares ingresados fue de 49 2 11 69 15
49 129 83 RESULTADOS FINALES: 1. Usted escribio un total de 3 nmeros multiplos de 3 2. La sumatoria de valores mltiplos de 7 fue de 49 3. El promedio de los valores pares ingresados fue de 0
Tabla 5: pruebas de ejecucin para ETAPA 2 de la solucin del PROBLEMA 2
PARTE D: Estructura/Lazo/Ciclo (Repetir-Hasta)
1. A continuacin se le ofrece otro problema, para que se evalu/analice e implemente el algoritmo solucin con Pseint. Guarde el archivo como Problema3.pseint!!
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 17
PROBLEMA 3: Solicite al usuario los valores de un conjunto de N resistencias (R1, R2 Rn) conectadas en paralelo, para as retornarle finalmente la resistencia equivalente (Req) de las mismas. Se consulto a un electricista sobre el tema y menciono que la formula que se aplicara en este caso seria:
2. A continuacin se describe la solucin a este problema 3, la cual utiliza la estructura repetitiva (Repetir- Hasta que) en una solucin con PSeint !!
Proceso ResistenciaEq //Entradas N<-0; //total de resistencias R<-0.01; //Valor de solo una resistencia //Salida req<-0; //resistencia equivalente final //Procesos i<-1; //cuenta la resistencia que se ingresara sumadeno<-0.00; //calcula denominador de formula Escribir "Software para Electronica basica"; Escribir ">> Cuantas resistencias ingresara??"; Leer N; i<-1; //inicia con 1era resistencia Repetir Escribir ">> Resistencia(KOhmios) ",i,":"; Leer R; sumadeno<-sumadeno+(1/R);//calcula nuevo denominador i<-i+1; //se prepara para proxima resistencia (si falta) Hasta Que i>N req<-1/sumadeno; Escribir " RESISTENCIA EQUIVALENTE: ",req," Kohmios"; FinProceso
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 18 3. Pruebe (manualmente) la solucin, con solamente un total de 3 resistencias (de 20, 40 y 49 Kohmio). Determine la resistencia equivalente. 4. Ahora proceda a ejecutar el PSeudocodigo anterior, e ingrese los datos del paso anterior. Debe obtener los mismos resultados!!
PROBLEMAS A RESOLVER DURANTE LA PRACTICA
En pareja con otro compaero del laboratorio, resuelva con un PSeudocodigo y un DFD equivalente el problema a continuacin:
Ayude a un docente de Humanstica 1, el cual tiene un listado de 3 notas registradas finales por cada uno de sus 7 estudiantes. La nota final se compone de una Investigacin (25%), una Exposicin (35%) y el Parcial (40%).
El docente requiere los siguientes informes claves de sus estudiantes: 1. Nota promedio final de los estudiantes que reprobaron el curso. Un estudiante reprueba el curso si tiene una nota final inferior a 6.5. 2. Porcentaje de los estudiantes que tienen una nota de investigacin mayor a 7.65 3. Cual fue la mayor nota obtenida en las Exposiciones 3. Total de estudiantes que obtuvieron una nota en el Parcial solamente en un rango de 4.0 a 7.5, ambas inclusive
Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 19
V. DISCUSION DE RESULTADOS
Los ejercicios a continuacin se realizaran en parejas o trios. Con el software indicado en cada problema, desarrolle los algoritmos que solucionan cada uno de los problema a continuacin
PROBLEMAS:
A. (con DFD) Desarrolle un diagrama de flujo que sea equivalente a los pasos definidos en el archivo de pseudocdigo Problema2_ETAPA4.pseint del PROBLEMA 2 resuelto en el procedimiento de esta prctica. El archivo dfd final se llamara Problema2_ETAPA4.dfd
B. (con Pseint y DFD) Elaborar una encuesta entre los N empleados de fabrica ADOC. A cada empleado se le debe pedir los siguientes datos: a) sexo (1: Femenino 2: Masculino) b) estatura (en Centmetros) Al finalizar el ingreso de datos de la encuesta, el administrador desea recibir esta informacin: a) Estatura promedio de los Hombres b) Porcentaje de empleadas que tiene contratadas ADOC c) La menor estatura entre el personal femenino.
C. (con PSeint) Los cajeros del negocio Los Usureros SA de SV requieren un programa que les permita ingresar el nombre, precio individual y total de unidades de un listado de N productos diferentes comprados por un cliente La tasa del impuesto del IVA es del 13.7%. Al finalizar el ingreso de productos, muestre al cliente el monto ($) final que pagara por la compra.
VII. BIBLIOGRAFIA
Joyanes Aguilar, Lus. Metodologa de la Programacin: Diagramas de Flujo, Algoritmos y Programacin estructurada., Editorial: MCGRAW HILL, No. De Clasificacin 005.1 J88 1998. Joyanes Aguilar, Lus. Problemas de Metodologa de la Programacin. Editorial: MCGRAW HILL. No. de Clasificacin 005.1 J88 1990. Gua #: 04 Estructuras repetitivas en Algoritmos Introduccin a la Programacin 20
Hoja de evaluacin Gua #4
Fecha: ____________________
Nombre del alumno: _______________________________________________________ Carnet: ___________________
Nombre del docente: _________________________________________________ GL: ________ GT: ________
I. Evaluacin del contenido practico Objetivos a evaluar:
Que el alumno sea capaz de: Ilustrar la solucin de problemas mediante el uso de estructuras repetitivas, por medio de la herramienta DFD. Evaluar cuando hacer uso de cada una de las diferentes estructuras repetitivas.
Criterios SI (7) Regular (4) NO (2) 1. Demuestra la comprensin terica y practica del funcionamiento de los operadores lgicos y relacionales.
2. Implementa apropiadamente la sintaxis de estructuras repetitivas en software PSeint
3. Construye los bloques de smbolos que conforman una estructura repetitiva en un Diagrama de Flujo con el software PSeint
4. Realiza la ejecucin manual (sin usar la herramienta Ejecucin) de cualquier PSeudocodigo
II. Evaluacin general
Cmo realiza el trabajo asignado? Excelente Muy Bien Bueno Regular Necesita ayuda del instructor? Ninguna Un poco Varias Veces Siempre 10.0 (mx.) * ( ) / 28 puntos (mx.) = __________