Cuadernillo de Trabajo Algoritmos Parcial 3
Cuadernillo de Trabajo Algoritmos Parcial 3
Cuadernillo de Trabajo Algoritmos Parcial 3
Lucio Amézquita
Una estructura repetitiva permite ejecutar una instrucción o un conjunto de instrucciones varias veces.
Una ejecución repetitiva de sentencias se caracteriza por:
Contadores
Un contador es un tipo especial de variable que se incrementa o decrementa con valores constantes
durante la ejecución del programa. Los contadores son casi esenciales en los ciclos, sobre todo si nuestra
estructura repetitiva se va a ejecutar un determinado número de veces, y aquí es donde entra en función
un contador en ciclos, donde este “cuenta” las veces que se ha repetido el ciclo, para ayudar a detener
cuando este haya cumplido su condición de “iteraciones”.
Acumuladores
Un acumulador es un tipo especial de variable que se incrementa o decrementa con valores variables
durante la ejecución del programa, estos son similares a los contadores, aunque su función es meramente
para cumplir el objetivo de un programa o algoritmo. Por ejemplo, se puede usar un acumulador para
sumar los números que se capturan en un ciclo para después poder sacar un promedio de los mismos tan
solo dividiendo el acumulador entre el contador.
Tipos de ciclos
Los ciclos se dividen mayormente en tres tipos: Ciclo Para, Ciclo Mientras y Ciclo Haz Mientras. A
continuación, se explica cada uno de ellos.
46
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
inicializar no
si
condición
incremento
Instrucciones
Para el caso de PSeInt se muestra de una manera un poco distinta, pero bajo la misma idea:
47
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Ejemplo:
Algoritmo
1. Inicio
2. Declarar num=0, Prom=0, contador=0, acumulador=0
3. Para contador=0; contador<10; contador=contador+1 entonces
4. Mostrar “Ingresa un número: “
5. Capturar num
6. Calcular acumulador=acumulador+num
7. Fin Para
8. Calcular Prom=acumulador/10
9. Desplegar “El promedio de 10 números es: “, Prom
10. Fin
Diagrama de Flujo
48
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Ejemplo:
Elaborar un algoritmo y diagrama de flujo para calcular el área de n rectángulos y mostrar el promedio
de áreas.
Algoritmo
1. Inicio
2. Declarar n=0, b=0, h=0, A=0, cont=0, acum=0, P=0
3. Mostrar “¿Cuantas áreas deseas calcular? ”
4. Capturar n
5. Para cont=0; cont<n; cont=cont+1 entonces
6. Mostrar “Ingresa la base: “
7. Capturar b
8. Mostrar “Ingresa la altura: “
9. Capturar h
10. Calcular A=b*h
11. Desplegar “El área es: “, A
12. Calcular acum=acum+A
13. Fin Para
14. Calcular P=acum/n
15. Desplegar “El promedio las áreas es: “, P
16. Fin
49
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Diagrama de Flujo
50
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Para esta parte se presentan unos videos sobre la elaboración del ciclo Para en Cacoo y también en
PSeInt:
https://youtu.be/53BRq3aRDK4
https://youtu.be/5U4Y1Xg3e3k
51
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
3. Elaborar un Algoritmo y diagrama de flujo que muestre el siguiente menú: opción 1 permite elegir
1 de 2 operaciones: suma o resta de 2 números; opción 2 permite capturar el nombre y sueldo de
x trabajadores, al sueldo se le deduce o quita el ISR (18%) y muestra su sueldo restante, así como
el sueldo acumulado de todos los trabajadores; opción 3 es una salida sin generar error con un
mensaje de despedida.
4. Realiza en PSeInt los ejercicios de esta evidencia y anexa una captura del diagrama de flujo en
PSeInt y también de las ventanas de ejecución del algoritmo con los distintos casos posibles.
52
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Su funcionamiento es como sigue: en primer lugar, se verifica la condición, si la misma resulta verdadera
se ejecutan las operaciones que indicamos por la rama del Verdadero. A la rama del verdadero la
graficamos en la parte inferior de la condición. Una línea al final del bloque de repetición la conecta con
la parte superior de la estructura repetitiva. En caso que la condición sea Falsa continúa por la rama del
Falso y sale de la estructura repetitiva para continuar con la ejecución del algoritmo.
Una nota importante es la siguiente, ya que al ser muy flexible este ciclo, es un arma de dos filos, ya que
si la condición siempre retorna verdadero estamos en presencia de un ciclo repetitivo infinito. Dicha
situación es un error de programación, nunca finalizará el programa, por eso es importante definir las
variables como los contadores, para poder determinar cuándo detener el ciclo, sobre todo el incremento
del contador, si es que se está usando.
53
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Para el caso de PSeInt se muestra de una manera casi idéntica, solamente carece del conector:
54
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Ejemplo:
Algoritmo
1. Inicio
2. Declarar n=0, acum=0, cont=0 Es importante que el contador inicie en 0, se deberá
3. Mientras cont<20 entonces agregar esto en PSeInt, así como para el acumulador
4. Mostrar “Dame el número “, cont+1 Aquí se agrega cont+1 para mostrar 1 en lugar de 0
5. Capturar n
6. Calcular acum=acum+n
7. Calcular cont=cont+1 Esta parte es importante, ya que es el incremento
8. Fin Mientras porque el ciclo mientras no tiene esta función, sino
9. Desplegar “La suma es: “, acum el ciclo quedaría dando vueltas infinitamente
10. Fin
Diagrama de Flujo
55
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Ejemplo:
Elaborar un algoritmo y diagrama de flujo que muestra y suma los números impares hasta el 20.
Algoritmo
1. Inicio
2. Declarar s=0, x=1 Aquí ‘s’ es acumulador y ‘x’ es contador iniciando en 1
3. Mientras x<20 entonces
4. Mostrar x
5. Calcular s=s+x
6. Calcular x=x+2 Aquí el incremento es de 2, por la imparidad (1,3,5,etc.)
7. Fin Mientras
8. Desplegar “La suma es: “, x
9. Fin
Diagrama de Flujo
56
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Ejemplo:
Elaborar un algoritmo y diagrama de flujo que cuente desde un numero inicial hasta el número que se
indique.
Algoritmo
1. Inicio
2. Declarar inicio=0, fin=0, x=0 ‘inicio’ y ‘fin’ indican donde comienza el conteo y donde
3. Mostrar “De donde empiezo: “ ya que ‘x’ es el contador del ciclo, no se ocupa acumulador
4. Capturar inicio
5. Mostrar “Donde termino: “
6. Capturar fin
7. Calcular x=inicio aquí igualamos el contador al inicio de la variable
8. Mientras x<fin entonces
9. Desplegar x
10. Calcular x=x+1
11. Fin Mientras
12. Fin
57
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Diagrama de Flujo
58
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Para esta parte se presenta uno video sobre la elaboración del ciclo Mientras en PSeInt:
https://youtu.be/WBBTTspbT7w
59
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
60
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se
ejecutará el bloque repetitivo. La condición de la estructura está abajo del bloque a repetir, a diferencia
del Mientras o del Para que está en la parte superior.
Este tipo de ciclos son muy convenientes en programas que requieren un menú repetitivo, ya que, al
menos una vez los van a poder ejecutar y no es necesario inicializar el contador o la condición antes de
ejecutar un bloque de código, brinda una mayor flexibilidad.
No obstante, también corre el mismo riesgo que un ciclo Mientras de repetirse infinitamente si no se tiene
cuidado con la condición o se nos olvida agregar el incremento de contador.
Para el caso de PSeInt se muestra de una manera muy similar, igual sin conectores, PERO se encuentran
invertidos el verdadero y falso, por lo que la CONDICIÓN DEBE INVERTIRSE para que funcione igual, por
ejemplo, si se tiene un ‘cont<10’ como criterio de parada, se cambia a ‘cont>=10’ para que se detenga
justamente al llegar a 10 o más alto. A continuación, su diagrama:
61
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
62
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Ejemplo:
Elaborar un algoritmo y diagrama de flujo que la suma de 20 números con Haz Mientras.
Algoritmo
1. Inicio
2. Declarar n=0, acum=0, cont=0 Es importante que el contador inicie en 0, se deberá
3. Hacer agregar esto en PSeInt, así como para el acumulador
4. Mostrar “Dame el número “, cont+1
5. Capturar n
6. Calcular acum=acum+n
7. Calcular cont=cont+1 Así como en Mientras el incremento se requiere
8. Mientras cont<20 ir a paso 3 porque el ciclo no tiene esta función, sino
9. Desplegar “La suma es: “, acum el ciclo quedaría dando vueltas infinitamente
10. Fin
Diagrama de Flujo
63
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Ejemplo:
Elaborar un algoritmo y diagrama de flujo que muestra y suma los números impares hasta el 20 con Haz
Mientras.
Algoritmo
1. Inicio
2. Declarar s=0, x=1 Aquí ‘s’ es acumulador y ‘x’ es contador iniciando en 1
3. Hacer
4. Mostrar x
5. Calcular s=s+x
6. Calcular x=x+2 Aquí el incremento es de 2, por la imparidad (1,3,5,etc.)
7. Mientras x<20 ir a paso 3
8. Desplegar “La suma es: “, x
9. Fin
Diagrama de Flujo
64
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Para esta parte se presenta un video sobre la elaboración del ciclo Haz Mientras en PSeInt:
https://youtu.be/4DC8axaZJts
65
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
66
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Menú de opciones
Un menú de opciones se puede ver como una estructura de múltiples condiciones a la cual se le adiciona
un mensaje previo a dichas condiciones, indicando una selección para el usuario.
Menús en algoritmos
Un menú en algoritmos se puede notar con una secuencia de Mostrar, Capturar y Condiciones:
67
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
68
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Menús repetitivos
Los menús repetitivos son un tipo especial de menú en los cuales se incorpora un ciclo al menú,
generalmente un ciclo haz mientras, para hacer que esta estructura se repita hasta que se elija la opción
de salir. Se puede basar el algoritmo en la estructura de menú normal:
• Hacer
• Mostrar “Menú de Opciones:
1) Opción 1
2) Opción 2
….
n) Salir
Elige: “
• Capturar opc
• Si opc=1 entonces
o Instrucciones
• Si opc=2 entonces
o Instrucciones
• ….
• Si opc=n entonces
o Instrucciones salida
• Mientras opc<>n ir a paso x
El operador “<>” significa que “no es igual”, por lo tanto, mientras el valor no sea igual a la opción de
salida (que generalmente es la última), el ciclo se repetirá hasta que el valor sea igual.
Nota: En el caso particular de PSeInt, la condición se invierte, esto quiere decir, que para que se repita el
ciclo haz mientras debe ser falsa la condición, es decir: opc=n, si esto es falso, el ciclo se repite. En el ciclo
mientras se usa la condición normal opc<>n.
69
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
No solamente se puede usar el ciclo haz mientras en menús, se puede usar también el mientras o incluso
se puede usar el ciclo para sí se sabe manejar bien la condición del mismo, aunque no se recomienda usar
el ciclo para en menús.
70
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Ejemplo:
Elaborar un algoritmo y diagrama de flujo muestre un menú de 3 opciones: La primera es la suma de dos
números, la segunda es la multiplicación de dos números y la tercera es la opción de salir. Sino se elige
salir el algoritmo debe repetirse.
Algoritmo
1. Inicio
2. Declarar opc=0, n1=0, n2=0, Sum=0, Mult=0
3. Hacer
4. Mostrar “Menú de Opciones:
1) Suma
2) Multiplicación
3) Salir
Elige: “
5. Capturar opc
6. Si opc=1 entonces
a. Ir a paso 7
b. Sino ir a paso 13
7. Mostrar “Suma de números”
8. Mostrar “Dame los dos números: “
9. Capturar n1, n2
10. Calcular Sum=n1+n2
11. Desplegar “La suma es: “, Sum
12. Ir a paso 21
13. Si opc=2 entonces
a. Ir a paso 14
b. Sino ir a paso 20
14. Mostrar “Multiplicación de números”
15. Mostrar “Dame los dos números: “
16. Capturar n1, n2
17. Calcular Mult=n1*n2
18. Desplegar “La multiplicación es: “, Mult
19. Ir a paso 21
20. Si opc=3 entonces
a. Desplegar “Hasta luego”
b. Sino Desplegar “ERROR”
21. Mientras opc<>3 ir a paso 3
22. Fin
71
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Diagrama de Flujo
72
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
El mismo algoritmo y diagrama de flujo se pueden lograr con el ciclo mientras, pero se recomienda que
para ciclos repetitivos se use haz mientras, ya que este no requiere de inicializar opc en 0 (en ciclo
mientras, si no se inicializa en 0 se corre el riesgo de que NUNCA entre al menú):
1. Inicio
2. Declarar opc=0, n1=0, n2=0, Sum=0, Mult=0
3. Mientras opc<>3 entonces
4. Mostrar “Menú de Opciones:
1) Suma
2) Multiplicación
3) Salir
Elige: “
5. Capturar opc
6. Si opc=1 entonces
a. Ir a paso 7
b. Sino ir a paso 13
7. Mostrar “Suma de números”
8. Mostrar “Dame los dos números: “
9. Capturar n1, n2
10. Calcular Sum=n1+n2
11. Desplegar “La suma es: “, Sum
12. Ir a paso 21
13. Si opc=2 entonces
a. Ir a paso 14
b. Sino ir a paso 20
14. Mostrar “Multiplicación de números”
15. Mostrar “Dame los dos números: “
16. Capturar n1, n2
17. Calcular Mult=n1*n2
18. Desplegar “La multiplicación es: “, Mult
19. Ir a paso 21
20. Si opc=3 entonces
a. Desplegar “Hasta luego”
b. Sino Desplegar “ERROR”
21. Fin Mientras
22. Fin
73
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
74
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Estructura Según
La estructura según es un tipo especial de condicional múltiple, que permite evaluar una variable en
distintos “casos” para ejecutar bloques de instrucciones. Esta estructura permite establecer de 1 a n
condiciones con un caso “predeterminado” el cual se puede usar para el manejo de un error. Se
recomienda el uso de esta estructura en menús con más de 3 opciones. En algoritmos se puede usar de
la siguiente manera:
En la imagen se aprecia que todos los flujos van en una dirección, pero hay que tener mucho cuidado con
esto, ya que muchos olvidan USAR CONECTORES, lo que puede infringir las reglas de elaboración de
diagramas de flujo, así como el sentido de dichos flujos.
75
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
El diagrama se nota de una forma un poco distinta en PSeInt, pero es la misma funcionalidad:
76
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
1. Inicio
2. Declarar opc=0, n1=0, n2=0, cont=0, Sum=0, Mult=0
3. Hacer
4. Mostrar “Menú de Opciones:
1) Suma
2) Multiplicación
3) Salir
Elige: “
5. Capturar opc
6. Según opc entonces
a. Si Caso es 1 entonces
7. Mostrar “Suma de n números”
8. Mostrar “Cantidad de números: “
9. Capturar n1
10. Calcular cont=0 Es necesario inicializar cont y Sum en 0, ya que es
11. Calcular Sum=0 repetitivo el menú, si no, la segunda vez no funcionará
12. Mientras cont<n1 entonces esta opción, ya que las variables se quedan con valores
13. Mostrar “Dame el numero “, cont+1 de la ejecución anterior
14. Capturar n2
15. Calcular Sum=Sum+n2
16. Calcular cont=cont+1
17. Fin Mientras
18. Desplegar “La suma es: “, Sum
19. Fin Caso 1
a. Si Caso es 2 entonces
20. Mostrar “Multiplicación de números”
21. Mostrar “Dame los dos números: “
22. Capturar n1, n2
23. Calcular Mult=n1*n2
24. Desplegar “La multiplicación es: “, Mult
25. Fin Caso 2
a. Si Caso es 3 entonces
26. Desplegar “Hasta luego”
27. Fin Caso 3
a. De otro modo entonces
28. Desplegar “ERROR”
29. Fin de otro modo
30. Fin Según
31. Mientras opc<>3 ir a paso 3
32. Fin
77
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Diagrama de Flujo
78
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
Para esta parte se presentan unos videos sobre la elaboración de menús y estructura según en PSeInt:
https://youtu.be/ERy_MGx_sC0
https://youtu.be/G8AgKxRcE4M
79
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
80
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
1. Portada con los datos del estudiante como la que se muestra en la página 23 del cuadernillo
escrita a mano (para parcial 3).
2. Hoja-separador que indique el Parcial 3
3. Los puntos 4-7 se usan nuevamente del parcial 1
4. Criterios de evaluación, entrega, materiales (pág. 1-2 escrita completa a mano)
5. Horario de clase
6. Temario de la clase de la página 3-4 del cuadernillo escrito a mano
7. Instrucciones de elaboración de evidencias de la página 3
8. Apuntes de clase CON FECHA y copias de lecturas de cuadernillo (las copias no se anexan al pdf)
9. Hoja-separador que indique el inicio de las evidencias del parcial 3
10. Evidencias 8-11
11. Una hoja que contenga la actividad mostrada en la página 24 del cuadernillo ajustada para el
parcial 3
81
Cuadernillo de trabajo de Submódulo 1.1 y 1.3 Algoritmos Prof. Lucio Amézquita
1. Portada con los datos del estudiante como la que se muestra en la página 23 del cuadernillo
escrita a mano INDICANDO QUE ES LA CARPETA SEMESTRAL.
2. Los puntos 4-7 se usan nuevamente del parcial 1
3. Criterios de evaluación, entrega, materiales (pág. 1-2 escrita completa a mano)
4. Horario de clase
5. Temario de la clase de la página 3-4 del cuadernillo escrito a mano
6. Instrucciones de elaboración de evidencias de la página 5
7. Portada de parcial 1 sellada
8. Hoja que indique Parcial 1
9. Apuntes de parcial 1 CON FECHA y copias de lecturas de cuadernillo (las copias no se anexan al
pdf)
10. Cuestionario diagnóstico
11. Evidencias 1-3
12. Una hoja que contenga la actividad mostrada en la página 24 del cuadernillo ajustada para el
parcial 1
13. Portada de parcial 2 sellada
14. Hoja que indique Parcial 2
15. Apuntes de parcial 2 CON FECHA y copias de lecturas de cuadernillo (las copias no se anexan al
pdf)
16. Evidencias 4-7
17. Una hoja que contenga la actividad mostrada en la página 24 del cuadernillo ajustada para el
parcial 2
18. Portada de parcial 3 sin sello
19. Hoja que indique Parcial 3
20. Apuntes de parcial 3 CON FECHA y copias de lecturas de cuadernillo (las copias no se anexan al
pdf)
21. Evidencias 8-11
22. Una hoja que contenga la actividad mostrada en la página 24 del cuadernillo ajustada para el
parcial 3
Nota importante: En caso de que las copias abarquen mucho en la carpeta semestral, se pueden separar
de la carpeta en 1 protector por parcial, para liberar espacio.
82