Fecha de efectividad: CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA TRONCO COMÚN 2009-2 11214 PROGRAMACIÓN PRÁCTICA No. LABORATORIO DE PROGRAMACIÓN DURACIÓN (HORA) 9 NOMBRE DE LA PRÁCTICA CICLOS 2 1. INTRODUCCIÓN Ciclos o Bucles Problemas repetitivos Un ciclo es un grupo de instrucciones que la computadora ejecuta en forma repetida, en tanto se conserve verdadera alguna condición de continuación del ciclo. Esta condición puede ser simple o compuesta de otras condiciones unidas por operadores lógicos. 2. OBJETIVO (COMPETENCIA) Aplicar teoría de ciclos sencillos, elaborando programas iterativos para la solución de problemas reales en el área de ingeniería. Con disposición para trabajar en forma individual y responsabilidad en el uso del equipo del laboratorio. 3. FUNDAMENTO Ciclos o Bucles Problemas repetitivos Un ciclo es un grupo de instrucciones que la computadora ejecuta en forma repetida, en tanto se conserve verdadera alguna condición de continuación del ciclo. Esta condición puede ser simple o compuesta de otras condiciones unidas por operadores lógicos. Existen 2 tipos de ciclos: 1. Ciclo con un número determinado de repeticiones, controlado por un contador: Conocido también repetición definida, porque se conoce con exactitud cuántas veces se ejecutará un ciclo. 2. Ciclos con un número indeterminado de repeticiones, controlados por un centinela: También conocido como repetición indefinida, porque no se sabe con anticipación cuántas veces el ciclo se ejecutará. Y el valor del centinela indica fin de datos. Formuló M.C. Araceli Celina Justo López M.C.E. Hilda Olivia Albarrán Padilla Nombre y Firma del Maestro Revisó M.C. Araceli Celina Justo López Nombre y Firma del Responsable del Programa Educativo Página 1 de 10 Autorizó Dr. Daniel Hernández Balbuena Nombre y Firma del Director / Representante de la Dirección
Contador: Es una variable de control para contar el número de repeticiones, y es incrementada normalmente en uno, cada vez que se ejecuta un grupo de instrucciones. Cuando el valor de la variable llega al número correcto de repeticiones, se termina el ciclo y continúa con el enunciado siguiente al de la estructura de repetición. Acumulador: Es una variable que va acumulando el resultado de una operación aritmética, por lo regular la suma: i = i + k; donde i es la variable acumuladora y k es una constante o variable. Por lo general un acumulador se inicializa a cero; y un contador se inicializa a cero o uno, dependiendo su uso, ya que una variable sin inicializar contiene un valor basura que es el valor almacenado por última vez en la posición de memoria reservada para la misma. Ciclo do-while Con esta sentencia se controla la condición al final del bucle. Si ésta se cumple, el programa vuelve a ejecutar las sentencias del bucle. Sintáxis: do instrucción(es); while (expresión); Ejemplo ciclo do-while: # include <stdio.h> # include <stdlib.h> void main() int cont=1; do printf ("%d\n ",cont); cont++; while(cont <= 20); getchar(); Ciclo While Con esta sentencia se controla la condición antes de entrar en el bucle. Si ésta no se cumple, el programa no entrará en el bucle. Naturalmente, si en el interior del bucle hay más de una sentencia, éstas deberán ir entre llaves para que se ejecuten como un bloque. La única diferencia entre las sentencias while y do-while es que con la segunda el cuerpo del bucle se ejecutará por lo menos una vez. Sintáxis: while (expresión) Página 2 de 10
instrucción(es); Mismo ejemplo ciclo while: # include <stdio.h> # include <stdlib.h> void main() int cont=1; while(cont <= 20) printf ("%d\n ",cont); cont++; getchar(); Ciclo For El ciclo for es una generalización del while; maneja de manera automática todos los detalles de la repetición controlada por contador, las cuales están separadas por punto y coma. Sintáxis: for (inicialización;condición;incremento) sentencia1; sentencia2; Mismo ejemplo ciclo for() # include <stdio.h> # include <stdlib.h> void main() int cont; for (cont = 1; cont <= 20; cont ++) printf ("%4d ",cont); getchar(); Elección adecuada de un problema repetitivo (Ciclo) Página 3 de 10
La elección adecuada de un ciclo es una de las partes del diseño de un algoritmo y como consecuencia del mismo código de su programa. La repetición de sentencias en el interior del ciclo o bucle requiere definir las condiciones de terminación del bucle incorrecto o infinito. En el ciclo do-while, la secuencia de sentencias se ejecutarán al menos una vez, mientras que en el ciclo while primero se determinará si entra al ciclo evaluando la condición de entrada, ya que si resulta falsa no se ejecutarán las instrucciones contenidas en él. En la práctica el ciclo while se utiliza con más frecuencia que do-while y por ello en caso de duda utilice while. El ciclo for se reserva para situaciones en el que se puede predecir y enumerar antes que se comience el ciclo. Ejecución del programa paso a paso Uno de los procedimientos de depuración más comunes es la ejecución paso a paso, línea a línea del código. El menú Depurar contiene tres comandos para avanzar paso a paso por el código: Paso a paso por instrucciones Paso a paso por procedimientos Paso a paso para salir Paso a paso por instrucciones y Paso a paso por procedimientos sólo se diferencian en la forma en que tratan las llamadas a funciones. Ambos comandos indican al depurador que ejecute la siguiente línea de código. Si la línea contiene una llamada a una función, Ir a instrucciones sólo ejecuta la llamada en sí y, a continuación, se detiene en la primera línea de código incluida en la función. Paso a paso por procedimientos ejecuta toda la función y después se detiene en la primera línea que está fuera de ella. Utilice Ir a instrucciones si desea examinar el interior de la llamada a la función. Utilice Paso a paso por procedimientos si desea evitar la ejecución paso a paso de las instrucciones incluidas en las funciones. Para poder ejecutar paso por paso el programa, debe estar compilado. Utilizaremos la opción de Paso a paso por procedimientos. A continuación realizaremos la ejecución paso a paso: 1).- Escribir el siguiente código: Página 4 de 10
2).- Compilar el programa (asegurarse que no tenga errores de compilación) y ejecutarlo. 3).- Ir a la opción DEPURAR, y elegir Paso a paso por procedimientos, como se muestra a continuación o presionar la tecla F10 Nota.- Antes de ejecutar paso a paso, es importante que se tenga visible la ventana del editor y la ventana de ejecución del programa, esto permitirá ir visualizando el paso a paso durante la ejecución del programa. Página 5 de 10
4).- Continuar presionando la tecla F10 para continuar con el proceso de paso a paso. En el lado izquierdo del código se puede notar una pequeña flecha amarilla, cada vez que se desee ejecutar una línea de código se presionara la tecla F10 y la flecha amarilla irá avanzando de acuerdo a la ejecución del programa. Se podrá observar en la pantalla de corrida como se van mostrando los valores en el paso a paso durante la ejecución del ciclo en este ejemplo. Página 6 de 10
5).- Continuar con el proceso hasta finalizar la ejecución paso a paso del programa. Nota.- Si en algún momento se desea interrumpir la ejecución paso a paso, se seleccionará la opción Detener depuración. 6).- Las variables y sus valores en la ejecución paso a paso. Parte importante de este proceso es la observación de los valores que van tomando las variables durante la ejecución paso a paso del programa, lo cual se muestra en una ventana en la parte inferior de la pantalla del editor, este proceso es importante ya que nos permite darnos cuenta si en algún momento una variable toma un valor distinto al que esperamos y con lo cual podemos corregir un error de lógica que se esté presentando. Página 7 de 10
4. PROCEDIMIENTO (DESCRIPCIÓN) A) EQUIPO NECESARIO MATERIAL DE APOYO Computadora con Visual Studio instalado Práctica B) DESARROLLO DE LA PRÁCTICA Días Martes y Miércoles Ciclo do while.- El ejercicio planteado hoy es que el programa realice una serie de peticiones de notas de alumnos, hasta que se teclee un valor 1 para finalizar la introducción de notas. Una vez finalizada la introducción de notas se han de visualizar cuantos alumnos han aprobado y reprobado (por separado), la nota mas alta, así como cuantos han sacado notas englobadas de la siguiente forma: de 5 a 6 suficiente de 6 a 7 bien de 7 a 8 notable de 9 o superior sobresaliente Se tendrá una función en la cual se mostraran los totales obtenidos. Página 8 de 10
Ciclo while.- Realizar un programa que permita leer dos variables enteras. Si la primera es mayor que la segunda intercambie sus valores y los muestre (deberá mostrarlos antes y después de intercambiarlas). En caso contrario a la primera le va a sumar el triple de la segunda y si el resultado es mayor a 50 va a calcular el 10% a cada una de las variables leídas y va a mostrarlas con el incremento del 10%. Realizar lo anterior mientras el usuario lo desee. Utilizar una función que reciba como parámetros las variables leídas y calcule y muestre lo que se solicita. Ciclo for.- La práctica o ejercicios con solución que se propone es realizar un programa en el cual se ha de solicitar un número por pantalla que se corresponde con el número de términos que se quieren visualizar de una serie propuesta y calcular la suma que dicha serie produce. Calcular N Términos de la serie: 1 + 1/32 + 1/62 + 1/92 El programa ha de visualizar tanto la serie como la suma final de la misma. Se pide una función en la cual se mostrara la suma final. Días Jueves y Viernes Ciclo do while.- Realizar un programa que permita simular una calculadora: + ) Sumar.- imprime la suma de dos números proporcionados por el usuario. - ) Diferencia.- imprime la diferencia de dos números proporcionados por el usuario, en esta opción no se podrán mostrar resultados negativos, se ser así mostrara un mensaje de error. * ) Producto.- imprime el producto de dos números proporcionados por el usuario. / ) Cociente.- se imprime el cociente de dos números proporcionados por el usuario. %) Modulo.- se imprime el resto de dos números proporcionados por el usuario. &) Fin.- Salida del menú de calculadora. Al finalizar el menú Calculadora deberá mostrar los totales acumulados de cada opción por separado en una función. Ciclo while.- Se pide elaborar el programa siguiente: Una solicitante para un empleo de secretaria recibirá un máximo de 5 pruebas de mecanografía, será contratada tan pronto como logre teclear más de 50 palabras por minuto en dos pruebas. Escriba un programa que permita al supervisor teclear la calificación de cada prueba después de que aquella haya sido completada. El programa deberá imprimir Contratar tan pronto como el solicitante califique, sin hacer más pruebas. Después de que 5 pruebas hayan sido hechas, si todavía el solicitante no ha reunido las condiciones el programa deberá imprimir Rechazar. Se realizara todo en una función. Ciclo for.- Realizar un programa que permita leer una lista de 15 números y para cada uno mostrar un mensaje indicando si es múltiplo de 2, o de 5, o de 5 y 2, o de ambos, o de ninguno. Página 9 de 10
Por ejemplo: Si es múltiplo solo de 2 el mensaje será: ES MULTIPLO DE 2 PERO NO DE 5 Si es múltiplo solo de 5 el mensaje será: ES MULTIPLO DE 5 PERO NO DE 2 Si es múltiplo de 5 y de 2 el mensaje será: ES MULTIPLO DE 5 Y DE 2 Si no es múltiplo ninguno el mensaje será: NO ES MULTIPLO DE 2 NI DE 5 Al final mostrar el total de los que son múltiplos de 2, el total de números que son múltiplos de 2 y de 5, el total de números que no fueron múltiplos ni de 2 ni de 5, el promedio de todos los números leídos, así como el numero mayor proporcionado (independientemente que haya sido múltiplo de dos o de cinco). Todos los totales que se piden, se mostraran en una función. C) CÁLCULOS Y REPORTE El alumno comprobará que los programas se ejecuten de manera adecuada dependiendo del tipo de ciclo utilizado, proporcionando valores para su correcto funcionamiento. 5. RESULTADOS Y CONCLUSIONES El maestro revisará los programas y cuestionara al respecto para determinar si se ejecutan correctamente y verificar si el alumno comprendió el tema de ciclos. 6. ANEXOS Ninguno 7. REFERENCIAS https://msdn.microsoft.com/es-es/library/aa291565(v=vs.71).aspx Página 10 de 10