tema04 estructurarepetitivas mientras y repetir

Upload: ariel-mejia

Post on 06-Jul-2018

224 views

Category:

Documents


0 download

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