ESTRUCTURAS DE CONTROL REPETITIVAS (PARTE II)
Empecemos por ver cada una de los tipos de estructuras repetitivas con varios ejemplos, veamos el más fácil a mi parecer, la estructura FOR.
ESTRUCTURA DE CONTROL REPETITIVA FOR
Éste funciona ni más ni menos como un contador con un intervalo que incrementa o decrementa, es decir, cuántas veces se ejecutará el bloque de instrucciones.
Representación gráfica
Nota.- Recordar que todo algoritmo implementado con un for, de igual manera podemos realizarlo con un while-do o repeat-until pero no viceversa, la razón es porque un for funciona como un contador. Aclararé este punto con ejemplos en otras entregas.
La estructura repetitiva for cuenta con una variable contador o variable índice (nos quedamos con variable contador) que tiene un valor inicial, y el intervalo indica de cuánto en cuánto va a incrementar o decrementar y por último indicar cual es el valor final de la variable contador ("hasta dónde tiene que contar").
Como primer ejemplo, si queremos contar del 1 al 100. La variable contador le asignamos el nombre de i, cuyo valor inicial es 1, valor final es 100 y el intervalo sería 1, nuestro diagrama sería de la siguiente manera:
Se lee: Para cada i que empieza en 1 y termina en 100 con un incremento de 1 hacer el bloque de instrucciones. |
Otro ejemplo para ir entendiendo mejor podemos contar desde el 50(inicio) hasta el 150(fin) de 5 en 5(intervalo).
Se lee: Para cada i que empieza en 50 y termina en 150 que va de 5 en 5 hacer el bloque de instrucciones. |
No olviden que una estructura repetitiva tiene que ser finita, sino no habría lógica al realizar un programa donde no muestre un resultado específico.
EJEMPLOS DE ALGORITMOS CON SUS RESPECTIVOS DIAGRAMAS DE FLUJO
Implementaremos a continuación algoritmos de contadores, algoritmos de acumuladores y otros más utilizando la estructura repetitiva FOR.
Ejercicio 001.
Realizar un algoritmo que permita imprimir 100 veces en pantalla tu nombre ingresado por teclado.
Analizando este ejemplo: Si queremos imprimir 100 veces entonces lo más lógico es inicializar la variable contador en 1 e indicar el valor final de 100 con un intervalo de 1. Para darle más estética al momento de mostrar el nombre podemos anticipar la variable contador para controlar si es correcto nuestro algoritmo.
Cabe aclarar que el PSeint cuando hay un incremento de 1 en el FOR, éste lo ignora.
Les recomiendo a los principiantes en programación, hacer sus diagramas de flujo con un lápiz y papel, así desarrollarán su lógica.
Ejercicio 002.
Elaborar un algoritmo que permita contar desde 0 hasta 50 con un incremento de 5.
Analizando este ejemplo: Si queremos imprimir desde 0 hasta 50 eso significa 51 veces, entonces lo más lógico es inicializar la variable contador en 0 e indicar el valor final de 50 con un intervalo de 5. Una buena lógica matemática que determine la cantidad de veces y que les enseñaré a continuación:
Cantidad de veces(bucle) = (valorFinal - valorInicial) + 1
Supongamos que el valorInicial es 17 y el valorFinal es 78, según la fórmula Cantidad de veces = (78 - 17) + 1, o lo que es igual a 62. 62 veces está dando vueltas el FOR o se está retroalimentando.
Ejercicio 003.
Elaborar un algoritmo que permita contar desde un número ingresado por teclado hasta otro número ingresado por teclado, con un intervalo también leído por teclado. Tomar en cuenta que el valor inicial es menor que el valor final, caso contrario no imprime nada.
Analizando este ejemplo: La variable contador tiene como inicio y fin un valor ingresado por teclado, al igual que el intervalo o incremento. Los llamaremos a las variables valorInicial, valorFinal y x. Si el valorInicial es mayor a valorFinal entonces no muestra nada.
Ejercicio 004.
Hacer un algoritmo que cuente decrementando desde un número positivo ingresado por teclado hasta 0.
Analizando este ejemplo: La variable contador tiene como inicio un valor ingresado por teclado, y el intervalo es de -1(decrementando) hasta que llegue a 0, y en cada ciclo va mostrando la variable contador.
Analizando este ejemplo: La variable contador tiene como inicio un valor ingresado por teclado, y el intervalo es de -1(decrementando) hasta que llegue a 0, y en cada ciclo va mostrando la variable contador.
Ejercicio 005.
Desarrollar un programa que ingrese 10 números y nos muestre la sumatoria y el promedio.
Analizando este ejemplo: El programa nos pide ingresar 10 número, entonces la variable contador irá de 1 hasta 10, ó de 0 hasta 9, cualquiera de las dos opciones es válida. Hemos visto en la entrega anterior el acumulador de suma que generalmente empieza en 0 y por cada ciclo va acumulando el número ingresado por teclado. Una vez finalizado el bucle FOR mostramos la suma total que sería la variable acumulador y el promedio que es igual al acumulador entre 10 números.
Analizando este ejemplo: El programa nos pide ingresar 10 número, entonces la variable contador irá de 1 hasta 10, ó de 0 hasta 9, cualquiera de las dos opciones es válida. Hemos visto en la entrega anterior el acumulador de suma que generalmente empieza en 0 y por cada ciclo va acumulando el número ingresado por teclado. Una vez finalizado el bucle FOR mostramos la suma total que sería la variable acumulador y el promedio que es igual al acumulador entre 10 números.
Ejercicio 006.
Desarrollar un algoritmo que ingrese n calificaciones(una calificación es de 0 a 100 puntos) y cuente la cantidad de aprobados(mayor a 50) y reprobados(menor o igual a 50).
Analizando este ejemplo: Nos pide ingresar cuántas calificaciones ingresaremos a nuestro programa, la llamaremos a esta variable n, entonces nuestra variable contador irá de 1 hasta n. Necesitamos dos acumuladores de suma para registrar la cantidad de aprobados y reprobados, la cual las llamaremos contAprobados y contReprobados.
Analizando este ejemplo: Nos pide ingresar cuántas calificaciones ingresaremos a nuestro programa, la llamaremos a esta variable n, entonces nuestra variable contador irá de 1 hasta n. Necesitamos dos acumuladores de suma para registrar la cantidad de aprobados y reprobados, la cual las llamaremos contAprobados y contReprobados.
Ejercicio 007.
Confeccionar un programa que permita leer n números enteros y posteriormente muestre la cantidad de múltiplos de 3.
Analizando este ejemplo: Este programa inicialmente nos pide ingresar por teclado n números enteros, es decir, que nuestra variable contador va desde 1 hasta n, y necesitamos una variable cont que se inicia en 0 para saber cuántos de los números ingresados son múltiplos de 3. Por cada ciclo haremos la pregunta si el número es múltiplo de 3, pues como usamos el programa PseInt, éste por defecto tiene el operador MOD, que nos devuelve el residuo o resto de dos operandos. Cabe mencionar que cuando programen en algún lenguaje de programación, por ejemplo Java es el operador %.
Analizando este ejemplo: Este programa inicialmente nos pide ingresar por teclado n números enteros, es decir, que nuestra variable contador va desde 1 hasta n, y necesitamos una variable cont que se inicia en 0 para saber cuántos de los números ingresados son múltiplos de 3. Por cada ciclo haremos la pregunta si el número es múltiplo de 3, pues como usamos el programa PseInt, éste por defecto tiene el operador MOD, que nos devuelve el residuo o resto de dos operandos. Cabe mencionar que cuando programen en algún lenguaje de programación, por ejemplo Java es el operador %.
Ejercicio 008.
Desarrollar un algoritmo que muestre la tabla de sumar, restar, multiplicar y dividir de cualquier número entero.
Analizando este ejemplo: La variable contador tiene como inicio el valor 0 y como fin el valor 12, esto es para cada tabla que queremos mostrar. Ingresamos por teclado un número cualquiera n, para mostrar sus tablas respectivas.
Analizando este ejemplo: La variable contador tiene como inicio el valor 0 y como fin el valor 12, esto es para cada tabla que queremos mostrar. Ingresamos por teclado un número cualquiera n, para mostrar sus tablas respectivas.
Ejercicio 009.
Realizar un algoritmo que muestre los primeros x múltiplos de un número leído por teclado.
Analizando este ejemplo: Este programa nos pide ingresar por teclado el número del cual nos mostrará sus múltiplos n y la cantidad de éstos x. Nuestro bucle irá de 0 hasta x-1, sólo para variar, o lo que es lo mismo de 1 hasta x, pero en este caso el proceso va a variar y sería mostrar n*(i-1) . y mostrará cada múltiplo del número. Tomar en cuenta que el 0 es múltiplo de cualquier número.
Analizando este ejemplo: Este programa nos pide ingresar por teclado el número del cual nos mostrará sus múltiplos n y la cantidad de éstos x. Nuestro bucle irá de 0 hasta x-1, sólo para variar, o lo que es lo mismo de 1 hasta x, pero en este caso el proceso va a variar y sería mostrar n*(i-1) . y mostrará cada múltiplo del número. Tomar en cuenta que el 0 es múltiplo de cualquier número.
Ejercicio 010.
Confeccionar un algoritmo que muestre la siguiente serie: 0 1 4 3 16 5 36 7 64 9 100 ...
Analizando este ejemplo: Esta serie no es nada complicado, si vemos bien los términos pares se elevan al cuadrado, mientras que los impares se muestran tal cual.
Analizando este ejemplo: Esta serie no es nada complicado, si vemos bien los términos pares se elevan al cuadrado, mientras que los impares se muestran tal cual.
Como siempre lo hago en cada uno de mis post, ofrezco mi ayuda por si quieren que les resuelva algunos algoritmos sólo solicítenlo que yo responderé.
No hay comentarios:
Publicar un comentario