guia-4

17

Click here to load reader

description

cccccccccccccccccccccccccccccccccccccccccccccccc

Transcript of guia-4

  • 1

    UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLGICOS

    ESCUELA DE COMPUTACION

    CICLO: 02/ 2013

    GUIA DE LABORATORIO #04

    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:

  • 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 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 est 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

    Figura 4.2: Estructura de control Hacer Mientras

    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.

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 3

    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

    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.

    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.

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 4

    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

    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:

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 5

    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 -)

    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:

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 6

    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!!

    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.

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 7

    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)

    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 ejercicio descrito en la Tabla 2.

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 8

    Expresiones Lgicas (Condiciones Compuestas) a evaluar

    Resultado de expresin

    V o F?

    10+t>1+m*2

    mp+3) and not(-2*n>m^2)

    (n=t-4) and (t-n

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 9

    8

    9

    10

    11

    12

    13

    Leer num

    Para contador

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 10

    Linea Instruccin

    1

    2

    3

    4

    5

    6

    7

    8

    9

    Proceso Guia3ejemplo1

    //lista de variables de...

    num

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 11

    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 !!)

    26. Proceda a crear en PSeint a un nuevo Pseudocdigo denominado Problema2_ETAPA1.pseint.

    27. 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.

    ETAPA 1: Solicitar a usuario un total de 6 nmeros a usuario, pero que sean solamente positivos.

    28. Digite las lneas de solucin de la 1er etapa, mostradas en la tabla 4 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.

    29. Ejecute el pseudocdigo y confirme que solo muestra el dialogo definido en pseudocdigo y finaliza normalmente, sin ninguna lectura (Entradas) de variables.

    30. Ahora agregara la lgica necesaria para hacer que usuario ingrese verdaderamente 6 nmeros positivos,

    incluso le llame la atencin cuando se equivoque!!

    31. Colocar el cursor al final de la Lnea 13 del mismo y presionar Enter para agregar una Lnea 14 vaca.

    32. 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

    1 0 1 1 1 2 1 3 1 4

    P r o c e s o M u l t i p l o s 4 / / E n t r a d a s N < - 5 ; / / U n o d e l o s N m e r o s d a d o s p o r u s u a r i o ( + , - o c e r o ) / / S a l i d a s m u l t i 3 < - 0 ; s u m a m u l t i 7 < - 0 ; p r o m p a r e s < - 0 . 8 ; / / P r o c e s o s t o t n u m < - 6 ; / / v a l o r c o n s t a n t e t o t v a l i d o s < - 0 ; s u m a p a r e s < - 0 ; t o t p a r e s < - 0 ; / / S o l i c i t a n d o e n t r a d a s E s c r i b i r " P r o g r a m a d e E s t a d i s t i c a s B a s i c a s " ; E s c r i b i r " I n g r e s e c a d a u n o d e s u s " , t o t n u m , " n m e r o s e n t e r o s " ; E s c r i b i r " P E R O S O L A M E N T E P O S I T I V O S " ; F i n P r o c e s o

    Tabla 4: Pasos de la Etapa 1 de solucin del PROBLEMA 2.

    33. En esta nueva lnea, seleccione el comando Mientras. Se agregan las 3 lneas mnimas que requiere la estructura Mientras para ejecutarse.

    34. Reemplace parmetro expresin_logica del ciclo Mientras por la condicin: totvalidos

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 12

    Vea el resultado (lneas 14 a la 17) en la Tabla 4.

    Lnea Cdigo de pseint 13 Escribir "PERO SOLAMENTE POSITIVOS";

    1 4 1 5 1 6 1 7

    M i e n t r a s t o t v a l i d o s < t o t n u m H a c e r E s c r i b i r " > > D a t o " , t o t v a l i d o s + 1 , " : " ; L e e r N ; F i n M i e n t r a s

    14 FinProceso

    Tabla 4: Pasos que definen al lazo Mientras requerido por la Etapa 1 de solucin del PROBLEMA 2.

    35. 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?

    36. 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.

    37. 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.

    38. Aborte la ejecucin infinita de este pseucodigo, cerrando la ventana de ejecucin del mismo.

    39. 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.

    40. Inserte la siguiente asignacin luego de la Lnea 16: totvalidos

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 13

    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!!

    44. 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:

    + 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

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 14

    8. Ejecute al pseudocdigo con los datos de prueba definidos en la tabla de entradas-salidas a continuacin (ver Tabla 5 ). Debe obtener las salidas ah indicadas en cada caso:

    #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 5: 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

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 15

    19. Ejecute nuevamente su pseudocdigo con los datos de prueba definidos en la tabla de entradas-salidas a continuacin (ver Tabla 6). Debe obtener las salidas indicadas en cada caso:

    #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 6: 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, as como a las Variables de Proceso [ sumapares y totpares ] declaradas en la solucin, 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 7 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 7: pruebas de ejecucin para ETAPA 2 de la solucin del PROBLEMA 2

    PARTE D: Estructura/Lazo/Ciclo (Repetir-Hasta)

    1. Crear un archivo llamado Problema3.pseint. A continuacin se le ofrece otro problema, para que se evalu, analice e implemente el algoritmo solucin bajo Pseint.

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 16

    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 sera:

    2. En la figura 4.9 se describe la solucin a este PROBLEMA 3, la cual utiliza la estructura repetitiva (Repetir-Hasta que) en una solucin con la sintaxis del software PSeint

    P r o c e s o R e s i s t e n c i a E q / / E n t r a d a s N < - 0 ; / / t o t a l d e r e s i s t e n c i a s R < - 0 . 0 1 ; / / V a l o r d e s o l o u n a r e s i s t e n c i a / / S a l i d a r e q < - 0 ; / / r e s i s t e n c i a e q u i v a l e n t e f i n a l / / P r o c e s o s i < - 1 ; / / c u e n t a l a r e s i s t e n c i a q u e s e i n g r e s a r a s u m a d e n o < - 0 . 0 0 ; / / c a l c u l a d e n o m i n a d o r d e f o r m u l a E s c r i b i r " S o f t w a r e p a r a E l e c t r o n i c a b a s i c a " ; E s c r i b i r " > > C u a n t a s r e s i s t e n c i a s i n g r e s a r a ? ? " ; L e e r N ; i < - 1 ; / / i n i c i a c o n 1 e r a r e s i s t e n c i a R e p e t i r E s c r i b i r " > > R e s i s t e n c i a ( K O h m i o s ) " , i , " : " ; L e e r R ; s u m a d e n o < - s u m a d e n o + ( 1 / R ) ; / / c a l c u l a n u e v o d e n o m i n a d o r i < - i + 1 ; / / s e p r e p a r a p a r a p r o x i m a r e s i s t e n c i a ( s i f a l t a ) H a s t a Q u e i > N r e q < - 1 / s u m a d e n o ; E s c r i b i r " R E S I S T E N C I A E Q U I V A L E N T E : " , r e q , " K o h m i o s " ; F i n P r o c e s o

    Figura 4.9: Codificacin en PSeint de la solucin del PROBLEMA 3

    3. Pruebe (manualmente) la solucin, con solamente un total de 3 resistencias (de 20, 40 y 49 Kohmio). Determine la resistencia equivalente.

    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:

    Determine si un nmero entero dado por usuario es perfecto. Un numero entero X es perfecto, cuando es positivo e igual a la suma de todos sus divisores, excepto el mismo nmero X. Por ejemplo: 6 es un nmero perfecto, porque al sumar sus divisores (1+2+3), el resultado es igual al mismo 6. Otro nmero perfecto es 28.

  • Gua #: 04 Estructuras repetitivas en Algoritmos

    Introduccin a la Programacin 17

    V. DISCUSION DE RESULTADOS

    Los ejercicios a continuacin se realizaran en parejas o tros, con el software indicado en cada problema:

    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 DFD y PSeint) De un listado de N enteros brindados por usuario, determinar:

    a) El mayor valor de los nmeros 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 tambin, cuando una respuesta sea imposible de determinar, se debe indicar a usuario el mensaje de aviso apropiado.

    Observar el siguiente ejemplo:

    Serie numrica de 15 nmeros ingresados: 25, 37, -73, 0, -21, 49, 159, 0, 0, 78, -67, 0, 141, 38, -193 Las respuestas solicitadas sern:

    a) Mayor de los valores negativos ingresados: -21 b) Hay un 26.67% de ceros en el listado ingresado c) Valor promedio de los valores impares positivos es 82.2 d) No ingreso nmeros pares negativos

    C. (Con DFD y PSeint) 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 las mujeres

    b) Porcentaje de hombres y mujeres que tiene contratadas ADOC

    c) La menor estatura entre el personal masculino.

    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.