tema04 estructurarepetitivas mientras y repetir
TRANSCRIPT
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
1/21
L gica de programaci n 1
S
n
n
a
R
p
t
v
e
n
a
Universidad Nacional Autónoma de Nicaragua - León
Facultad de Ciencias y Tecnología
Departamento de Computación
Lógica de programación
Elaborado porLic! Luis Ernesto Día" #eteta
La característica fundamental de la programación estructurada consiste enque todas las instrucciones tienen un único punto de entrada y un único puntode salida. Esto permite descomponer fácilmente un problema ensubproblemas, reduciendo la complejidad y facilitando la programación
Bibliograf í a
Metodologí a de la programación. Dr. Osvaldo Cairó Battistutti
Editorial Alfa-Omega
II semestre de 2015
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
2/21
L gica de programaci n 2
Introducci n
Como hemos mencionado en el tema anterior en ocasiones vamos a encontrar algoritmos cuyas operaciones se
deban ejecutar un número repetido de veces formando un ciclo de ejecución de sentencias. Además también se
menciono que un ciclo, siempre debe tener una condición de parada o fin de ciclo.
La condición de parada de un ciclo se puede indicar al inicio o al final del bucle, de acuerdo a esta premisa
podemos clasificar a las sentencias repetitivas en dos grupos:
• Con la condición de parada al inicio
• Con la condición de parada al final
Dentro del grupo de sentencias repetitivas con la condición de parada al inicio tenemos a la sentencia
MIENTRAS y a la sentencia PARA. Y dentro del grupo de sentencias con la condición al final tenemos a la
sentencia REPETIR.
En esta etapa hablaremos del funcionamiento de las sentencias MIENTRAS y REPETIR..
Estructura repetitiva MIENTRAS
La estructura algorí tmica MIENTRAS es quizás la estructura de repetición más sencilla, y sin embargo es
considerada por muchos como la más potente. Su funci
ón consiste en ejecutar un n
úmero determinado de veces
una secuencia de instrucciones, no obstante, este número de repeticiones depende de la condición de parada que
contenga el propio ciclo.
Por lo tanto el ciclo MIENTRAS se ejecutara hasta que la condición que se evalúa resulte ser falsa.
Sintanxis
Mientras expresion_logica Hacersecuencia_de_acciones
FinMientras
Donde:
expresion_logica: es cualquier expresión lógica cuyo resultado sea verdadero o falso.
La estructura repetitiva MIENTRAS permite ejecutar las instrucciones mientras la expresión_lógica sea
verdadera. Si la primera vez que se evalúa la expresión lógicaresulta falsa, el conjunto de sentencias
pertenecientes al ciclo no se ejecutaran.
II semestre de 2015
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
3/21
L gica de programaci n 3
Representación gr á fica
PseInt utiliza la siguiente manera de representar el ciclo MIENTRAS
Ejemplo:
1. Proceso cuentaNumeros2. Definir contador Como Entero;3. contador
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
4/21
L gica de programaci n 4
En la estructura repetitiva MIENTRAS el número de veces que se ejecute el bucle está determinado por la
condición. Al ejecutar la instrucción mientras, lo primero que se evalúa es la expresión lógica
➢ Si la expresión lógica resulta falsa, no se toma ninguna acción y se prosigue con la instrucción
siguiente al bucle.
➢ Pero si la expresión lógica resulta verdadera, se ejecuta el cuerpo del bucle y después se vuelveal inicio del bucle y se evalúa nuevamente la expresión.
Ejemplos estructura repetitiva MIENTRAS
Ejemplo1
Este ejemplo muestra un algoritmo que presenta el valor correspondiente a la suma de dos números enteros, Esta
suma se realizar implementado un ciclo por medio del cual se le ira sumando la unidad al primero de los
números ingresado y luego se le restara la unidad al segundo número. Deteniendo en proceso hasta que el
segundo de los números tome el valor 0.
Datos de entrada:
• El usuario ingresara dos números enteros.
Datos de salida:
• Se presentara en pantalla el valor correspondiente a la suma de ambos números.
Variables a utilizar
• num1: almacenara el primer valor ingresado por por el usuario.
• num2: almacenara el segundo valor ingresado por el usuario y además controlara las iteraciones del ciclo
Procedimiento:
• Se le solicitara al usuario el ingreso de los dos valores enteros• Mientras el segundo valor sea mayor que 0, se ejecutara el ciclo.
• Dentro del grupo de sentencias del ciclo, se le sumara la unidad al primer valor ingresado por el usuario,
luego se le restara la unidad al segundo valor ingresado por el usuario.
Solución1. Proceso )uma*enta2. Definir num1$ num2 Como Entero;3.4. Escribir sin saltar "+ngrese el ,alor del 1er numero ";5. Leer num1;6. Escribir sin saltar "+ngrese el ,alor del 2do numero ";%. Leer num2;
'.(. Mientras num2 0 Hacer10. num1
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
5/21
L gica de programaci n 5
Diagrama de flujo Resultado
¿Qué pasa si queremos sumar 4 y 0?
Cuando se desea sumar un numero cualquiera con el
cero, al evaluarse la expresión lógica del ciclo mientras
resultara falsa, por lo tanto no se ejecutaran las
sentencias que forman parte del ciclo mientras.
Ejemplo2
Este ejemplo muestra un algoritmo que por medio de la estructura repetitiva MIENTRAS solicita al usuario el
ingreso de 10 valores y luego presenta en pantalla el valor mayor ingresado por parte del usuario.
Datos de entrada
• El usuario va a introducir los valores los cuales se van almacenando en una variable “num”.
Datos de salida
• Al terminar la ejecución del algoritmo se ha de presentar el valor mayor de los introducidos por parte del
usuario.
Variables a utilizar
• contador: variable que llevara el control de las 10 iteraciones.
• vmayor: variable en la que se almacena el valor mayor ingresado por parte del usuario
• num: Se utilizara para capturar los números ingresados por parte del usuario.
Procedimiento
• Antes de iniciar el ciclo, se le ha de solicitar al usuario ingrese el primero de los valores.
• Este primer elemento ingresado se asume como el valor mayor, por lo tanto la variable “vmayor” tomara
el valor de este primer elemento ingresado.
• Por medio de un ciclo procederemos a pedir el restante de los elementos comparando cada uno con el
II semestre de 2015
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
6/21
L gica de programaci n 6
valor de la variable “vmayor” y el elemento ingresado. Si el valor del elemento ingresado es mayor que
el valor de la variable “vmayor”, se reemplaza el valor de este último por el valor ingresado por el
usuario.
Solución1. Proceso /aoralor
2. Definir contador$ num$ ,maor Como Entero;3.4. Escribir sin saltar "+ngrese el elemento 1 ";5. Leer ,maor;6.%. contador
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
7/21
L gica de programaci n 7
Ejemplo3
Este ejemplo muestra por medio de la estructura repetitiva MIENTRAS en pantalla la tabla de multiplicar de un
número ingresado por parte del usuario.
Datos de entrada➢ Número del que se presentara la tabla de multiplicar, este valor será almacenado en la variable “num”.
Datos de salida
➢ Presentar en pantalla la tabla de multiplicar del número ingresado por parte del usuario.
Procedimiento
➢ Solicitar el número al usuario
➢ Por medio del ciclo Mientras ir presentando en pantalla el resultado de multiplicar a la variable cuenta
con el numero (num) ingresado por parte del usuario
Variables a utilizar
➢ cuenta: Variable que llevara el control de las iteraciones, en este caso serán 12 iteraciones.
➢ num: Esta variable almacena el número ingresado por parte del usuario.
Solución1. Proceso a!la/ultiplicar2. Definir cuenta$ num Como Entero;3. Escribir sin saltar "+ngrese el numero ";4. Leer num;5.6. cuenta
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
8/21
L gica de programaci n 8
Ejemplo4
El siguiente ejemplo muestra un algoritmo en el cual se solicitan 10 n úmeros enteros y presenta en pantalla el
promedio de los números ingresados.
Datos de entrada:• Serie de números ingresados por el usuario.
Datos de salida:
• Promedio de los números ingresados por el usuario.
Variables a utilizar
• contador : Esta variable llevara el control de las iteraciones del ciclo.
• numero: Almacena el numero ingresado por parte del usuario en cada iteración.
• suma: Sera la variable que almacena la suma de todos los números ingresados.
• promedio: Almacena el promedio de todos los números ingresados.
Procedimiento:
• Definir las variables a utilizar.
• Asignar el valor 0 a la variable suma
• Solicitar al usuario ingrese una serie de 10 valores, esto se realizara utilizando el ciclo Mientras.
◦ Dentro del ciclo Mientras se irán sumando los valores ingresados. Almacenando el resultado en la
variable suma.
• Al terminar el ciclo se calculara el promedio.
• Presentar en pantalla el promedio obtenido.
Solución1. Proceso alcularromedio2.
Definir contador$ numero$ suma
Como Entero
;3. Definir promedio como real;4.5. suma
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
9/21
L gica de programaci n 9
Diagrama de flujo Resultado
Ejemplo5
Calcular la suma siguiente: 100 + 98 + 96 + 94 + . . . + 0 en este orden
Datos de entrada:
• No hay datos de entrada
Datos de salida:
• La suma de cada uno de los números pertenecientes a la serie
Variables a utilizar
• num: esta variable controla la cantidad de iteraciones del ciclos
• sum: almacena la suma de los números de la serie
II semestre de 2015
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
10/21
L gica de programaci n 1
Procedimiento:
• Definir las variables a utilizar.
• Asignar el valor 100 a la variable mun, asignar el valor 0 a la variable sum
•Crear el ciclo Mientras, el cual se repetirá hasta que el valor de num sea menor que 0◦ Sumar cada numero de la serie
◦ Restar 2 al valor actual de la variable num
Solución1. Proceso )erieNumeros2. Definir num$ sum como entero;3. num
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
11/21
L gica de programaci n 11
Estructura repetitiva REPETIR
La estructura repetitiva REPETIR permite ejecutar al menos una vez su bloque repetitivo, a diferencia de
MIENTRAS y PARA que podí an no ejecutarse. Esta estructura repetitiva se utiliza cuando conocemos deantemano que por lo menos una vez se ejecutará el bloque repetitivo ya que la condición de parada de la
estructura repetitiva está al final del bloque a REPETIR.
Sintaxis
Repetirsecuencia_de_acciones
Hasta Que expresion_logica
La estructura repetitiva REPETIR permite la ejecución del grupo de sentencias al menos una vez. Puesto que la
condición de parada será evaluada hasta que se ejecute el grupo de sentencias, el ciclo REPETIR se ejecutara
hasta que la condición de parada resulte ser verdadera.
Representación gr á fica
PseInt utiliza la siguiente manera de representar el ciclo REPETIR
Ejemplo:
Deseamos presentar en pantalla los primeros 10 números naturales
1. Proceso contarNumeros2. Definir contador Como Entero;3. contador
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
12/21
L gica de programaci n 12
Diagrama de flujo Resultado
En la sentencia repetitiva REPETIR, la condición de parada se comprueba al final del bucle. Lo que
permite que el bucle se ejecute al menos una vez antes de comprobar la condición de parada. El bucle se
repite mientras la condición sea falsa y termina cuando sea verdadera (contrario a la sentencia
mientras).
Ejemplos estructura repetitiva REPETIR
Ejemplo1
El siguiente ejemplo muestra un algoritmo en el cual se solicitan 10 n úmeros enteros y presenta en pantalla el
promedio de los números ingresados.
Datos de entrada:
• Serie de números ingresados por el usuario.
Datos de salida:
• Promedio de los números ingresados por el usuario.
Variables a utilizar • contador : Esta variable llevara el control de las iteraciones del ciclo.
• numero: Almacena el numero ingresado por parte del usuario en cada iteración.
• suma: Sera la variable que almacena la suma de todos los números ingresados.
• promedio: Almacena el promedio de todos los números ingresados.
II semestre de 2015
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
13/21
L gica de programaci n 13
Procedimiento:
• Definir las variables a utilizar.
• Asignar el valor 0 a la variable suma
• Solicitar al usuario ingrese una serie de 10 valores, esto se realizara utilizando el ciclo Repetir.
◦ Dentro del ciclo Repetir se irán sumando los valores ingresados. Almacenando el resultado en lavariable suma.
• Al terminar el ciclo se calculara el promedio.
• Presentar en pantalla el promedio obtenido.
Solución1. Proceso alcularromedio2. Definir contador$ numero$ suma Como Entero;3. Definir promedio como real;4.5. suma
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
14/21
L gica de programaci n 14
Diagrama de flujo
Ejemplo2
En el siguiente ejemplo le pediremos al usuario que nos indique si desea que se continu é ejecutando el ciclo,
dentro del ciclo se presentara en pantalla un número aleatorio generado por la función AZAR.
Datos de entrada
• El usuario ingresara “S” o “N” como respuesta a la pregunta de confirmación
Datos de salida
• Se presentara en pantalla el valor generado de forma aleatoria
Variables a utilizar
• continuar : captura la respuesta del usuario a la pregunta de confirmación
Procedimiento
• Dentro del grupo de sentencias del ciclo se presentara en pantalla el valor generado por la funci ón
AZAR, Luego se preguntara al usuario si desea continuar.
II semestre de 2015
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
15/21
L gica de programaci n 15
Solución1. Proceso numero78ar2. Definir continuar omo Caracter;3.
4. Repetir5. Escribir "Numero generado al a8ar "$ a8ar9100:;6. Escribir "esea continuar ) N ";%. Leer continuar;'. Hasta Que continuar = "N" continuar = "n"(. FinProceso
Diagrama de flujo
Resultado
II semestre de 2015
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
16/21
L gica de programaci n 16
Ejemplo3
El siguiente ejemplo muestra la tabla de multiplicar de un numero, dicho numero sera ingresado por el usuario.
Datos de entrada
➢ Número del que se presentara la tabla de multiplicar, este valor será almacenado en la variable “num”.
Datos de salida
➢ Presentar en pantalla la tabla de multiplicar del número ingresado por parte del usuario.
Procedimiento
➢ Solicitar el número al usuario
➢ Por medio del ciclo Mientras ir presentando en pantalla el resultado de multiplicar a la variable cuenta
con el numero (num) ingresado por parte del usuario
Variables a utilizar
➢ cuenta: Variable que llevara el control de las iteraciones, en este caso serán 12 iteraciones.
➢ num: Esta variable almacena el número ingresado por parte del usuario.
Solución1. Proceso a!la/ultiplicar2. Definir cuenta$ num Como Entero;3. Escribir sin saltar "+ngrese el numero ";4. Leer num;5.6. cuenta
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
17/21
L gica de programaci n 17
Ejemplo4
En este ejemplo se muestra como presentar un menú en pantalla, este menú use presentara hasta que el usuario
seleccione salir.
Datos de entrada
• Se ingresara un número (correspondiente a la opción del usuario), cuyo valor se almacenara en la
variable opción.
Datos de salida
• Se presentara en pantalla un mensaje que indique el valor de la opción ingresada por parte del usuario.
Variables a utilizar
• opción: variable de tipo entero, almacenara el valor correspondiente al número ingresado por parte del
usuario.
Procedimiento
• Utilizando el ciclo REPETIR, se presentara un menú con 4 opciones. El usuario ingresara un número
que puede o no estar en el rango de 1-4.
• Si el valor ingresado esta fuera de rango, se vuelve a mostrar cada una de las opciones.
• El ciclo se repetirá hasta que el usuario ingrese un número en el rango de 1-4
Solución1. Proceso eemplo/enu2. Definir opcion Como Entero;3.4. Repetir5. Escribir "1.- +ngrese 1 para esta >pcion";6. Escribir "2.- +ngrese 2 para esta >pcion";%. Escribir "3.- +ngrese 3 para esta >pcion";'. Escribir "4.- +ngrese 4 para esta >pcion";(. Escribir "?@ue opcion desea A";10. Leer opcion;11. Hasta Que opcion = 1 B opcion
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
18/21
L gica de programaci n 18
Diagrama de flujo
Resultado
II semestre de 2015
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
19/21
L gica de programaci n 19
Ejemplo5
Calcular la suma siguiente: 100 + 98 + 96 + 94 + . . . + 0 en este orden
Datos de entrada:• No hay datos de entrada
Datos de salida:
• La suma de cada uno de los números pertenecientes a la serie
Variables a utilizar
• num: esta variable controla la cantidad de iteraciones del ciclos
• sum: almacena la suma de los números de la serie
Procedimiento:
• Definir las variables a utilizar.
• Asignar el valor 100 a la variable mun, asignar el valor 0 a la variable sum
• Crear el ciclo Repetir, el cual se repetirá hasta que el valor de num sea menor que 0
◦ Sumar cada numero de la serie
◦ Restar 2 al valor actual de la variable num
Solución Solución1. Proceso )erieNumeros2. Definir num$ sum como entero;3. num
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
20/21
L gica de programaci n 2
REPETIR vs MIENTRAS
Como ya hemos mencionado anteriormente, la estructura repetitiva REPETIR evalúa la condición de parada al
final, luego de haber ejecutado todas las sentencias que forman parte del ciclo. Lo que permite que el bucle se
ejecute al menos una vez antes de comprobar la condición de parada, el bucle se repite mientras la condición seafalsa y termina cuando sea verdadera (contrario a la sentencia mientras).
Las estructuras repetitivas MIENTRAS y PARA evalúan la condición de parada al inicio del bucle, por lo tanto
para que el ciclo se ejecute la expresión lógica debe ser verdadera desde el principio.
Veamos el siguiente ejemplo en el que se muestra un ciclo en el que se solicitan números enteros al usuario, el
ciclo se detendrá cuando se ingrese un valor negativo.
1. Proceso leernteros2. Definir contador$ num Como Entero;3. contador
-
8/17/2019 Tema04 Estructurarepetitivas Mientras y Repetir
21/21
L gica de programaci n 21
Ejercicios propuestos
Ejercicio1
Realice un algoritmo que presente en pantalla la una serie de números llamada la conjetura de ULAM en honordel matemático S. Ulam . Por ejemplo: 26,13,40,20,10,5,16,84,2,1.
Para presentar los números que corresponden a la conjetura de ULAM, seguimos los siguientes pasos:
• Comience con cualquier entero positivo.
• Si es par, se divide entre 2; si es impar, se multiplica por 3 y se le suma 1.
• Obtenga enteros sucesivamente repitiendo el proceso .
• Al final, obtendrá el número 1, independientemente del entero inicial.
Deberá solicitar al usuario un valor, el que será el primero de la lista.
Ejercicio2
Realizar un programa que nos pida un número n, y nos diga cuantos números impares hay entre 1 y n. Para este
realice una versión utilizando mientras y otra versión utilizando para.
Ejercicio3
Hacer un algoritmo que simule el comportamiento de un cronómetro digital desde 0 segundos hasta llegar a 5
minutos en cuenta progresiva.
Ejercicio4
Hacer un algoritmo que simule el comportamiento de un cronómetro digital en cuenta regresiva desde 5 minutos
hasta 0 segundos.
Ejercicio5
Obtenga el seno, coseno y tangente de los números ubicados en un rango expresados en ángulos, dichos ángulos
(ángulo inicial y ángulo final) serán ingresados por el usuario. Considere un aumento de 10° .
II semestre de 2015