Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Realizado por


          JAIRO HERNANDO RAMÍREZ MARÍN
Docente de Lógica de Programación, Algoritmos y Lenguaje de Program...
Estructuras repetitivas

Ciclo PARA

Ciclo MIENTRAS

Ciclo REPITA

Variables que se combinan con los ciclos

  Acumulador,...
ESTRUCTURAS REPETITIVAS

Las estructuras repetitivas son conocidas como
CICLOS, y se usan dentro de Algoritmos para
realiz...
INICIO
      LEA num
      Cuad = num ^ 2
      IMPRIMIR Cuad
FIN


Este es un proceso sencillo de realizar; pero si en
lu...
INICIO

      PARA X=1, 20, 1
         LEA num
         Cuad = num ^ 2
         IMPRIMIR Cuad

      FIN PARA
FIN
Este es ...
TIPOS DE ESTRUCTURAS REPETITIVAS

En Algoritmos existen los siguientes tipos de
estructuras repetitivas y sus respectivas
...
CICLO PARA
El ciclo PARA se usa cuando se conoce el número de veces
que se va a repetir el ciclo o cuando éste se hace N v...
EXPLICACIÓN:
PARA X = INICIO, FIN, [INCREMENTO o DECREMENTO]


X: Una variable cualquiera (Controladora del ciclo).
INICIO...
Ejemplo: Se pide realizar un algoritmo que imprima
los números del 1 hasta el 100.
El mismo enunciado está indicando el nú...
En este ejemplo la variable controladora del ciclo es
la misma que se puede imprimir.


                          INICIO  ...
Desarrolle un algoritmo que lea el nombre y la edad
de una persona e imprima su nombre y un mensaje
que diga si es mayor o...
Calcular el salario neto de N trabajadores, sabiendo que se
le hace una retención del 5% de su básico. Lea el número
de ho...
Desarrolle un algoritmo que imprima los números
múltiplos de 5 comprendidos entre 100 y 200.
INICIO
                      ...
FUNCIONAMIENTO DE UN CICLO PARA
Imprimir sólo los números positivos de un grupo de 5.
INICIO                              ...
Hacer un algoritmo que lea 6 números e imprimir su cubo.

                  K inicia en 1 y evalúa si se pasó del final (o...
Hacer un algoritmo que lea 6 números e imprimir su cubo.



INICIO                                          PRUEBA DE ESCR...
CICLO HAGA MIENTRAS
(Registro Identificador - Cuantitativo)
El ciclo MIENTRAS con registro identificador se usa cuando el
...
EXPLICACIÓN:
     Lea N
     X = INICIO
     MIENTRAS (X <= N)
      X = X + [INCREMENTO o DECREMENTO]
     FINMIENTRAS
N:...
Ejemplo: Se pide realizar un algoritmo que imprima
    los números de 1 hasta N.

El enunciado indica que el ciclo se hará...
Mientras que el ciclo PARA hace todo en una sola línea (inicio, fin
e incremento), el ciclo MIENTRAS toma cada una de esas...
Es muy fácil convertir un CICLO PARA hasta N en un CICLO
MIENTRAS con REGISTRO IDENTIFICADOR:


                          ...
Calcular el salario neto de N trabajadores, sabiendo que
se le hace una retención del 5% de su básico. Lea el
número de ho...
Desarrolle un algoritmo que imprima los números
       múltiplos de 5 comprendidos entre 100 y N.


INICIO
               ...
FUNCIONAMIENTO DEL REGISTRO IDENTIFICADOR
Hacer un algoritmo que lea N números e imprima sólo los positivos.

            ...
FUNCIONAMIENTO DEL REGISTRO IDENTIFICADOR
Hacer un algoritmo que lea N números e imprima sólo los positivos.

            ...
CICLO HAGA MIENTRAS
  (Registro Centinela - Cualitativo)
El ciclo MIENTRAS con Registro Centinela se usa cuando
no se sabe...
EXPLICACIÓN:
LEER VAR
MIENTRAS (CONDICIÓN)
VAR: Variable que va a controlar el ciclo (se recomienda que
sea una de las var...
Ejemplo: Se pide realizar un algoritmo que lea varios
  números positivos e imprima su raíz cuadrada.
El enunciado indica ...
Mientras que los ciclos anteriores requieren de un inicio, un fin y
un incremento; estos ciclos NO. Sólo necesitan tomar
c...
FUNCIONAMIENTO MIENTRAS (Registro Centinela)
Hacer un algoritmo que lea un grupo de números y calcule su raíz
cuadrada. El...
FUNCIONAMIENTO MIENTRAS (Registro Centinela)
 Hacer un algoritmo que lea un grupo de números y calcule su raíz
 cuadrada. ...
Calcular el salario neto de varios trabajadores, sabiendo que se le
 hace una retención del 5% de su básico. Lea el número...
CICLO REPITA HASTA
El ciclo REPITA HASTA se usa de una forma similar al
ciclo MIENTRAS con Registro Centinela; pero la
con...
EXPLICACIÓN:
     LEER VAR
     REPITA
      Instrucciones
      LEER VAR
     HASTA (CONDICIÓN)
Este ciclo empieza con LE...
Ejemplo: Se pide realizar un algoritmo que lea varios números e
imprima su raíz cuadrada hasta que se lea un número negati...
Las consideraciones a tener en cuenta en este ciclo son las
mismas que para el ciclo MIENTRAS con Registro Centinela;
pero...
FUNCIONAMIENTO DE UN CICLO REPITA HASTA
Hacer un algoritmo que lea un grupo de números y calcule su raíz
cuadrada. El cicl...
FUNCIONAMIENTO DE UN CICLO REPITA HASTA
Hacer un algoritmo que lea un grupo de números y calcule su raíz
cuadrada. El cicl...
Calcular el salario neto de varios trabajadores, sabiendo que se le
hace una retención del 5% de su básico. Lea el número ...
CONTADORES, ACUMULADORES,
 PROMEDIOS Y PORCENTAJES

Son elementos de algoritmos básicos y fundamentales para
determinar ca...
ACUMULADOR: Son variables que sirven para SUMAR o
ACUMULAR valores dentro de un algoritmo. Se usa para
determinar totales ...
PROMEDIO: Son variables que sirven para PROMEDIAR
valores. Para calcularlos se divide un ACUMULADOR por un
CONTADOR (Esto ...
PORCENTAJE:       Son variables que sirven calcular datos
estadísticos. Para calcularlos se usan un CONTADOR
PARTICULAR di...
Desarrolle un algoritmo que lea la edad y el sexo de 10 personas;
calcular e imprimir cuantas son mayores de edad y cuanta...
CONTMY, CONTMN, SUMEDH, SUMEDM, SUMTED=0       Se inicializan en 0, ANTES del
PARA X=1, 10, 1                             ...
Las consideraciones a tener en cuenta para los promedios y
porcentajes: Siempre que se vaya a calcular un promedio se
requ...
CONTH, CONTM, CONTMY, SUMEDH, SUMEDM, SUMTED=0
PARA X=1, 10, 1
LEA SEX, ED                         Se inicializan en 0, AN...
FUNCIONAMIENTO DE UN CONTADOR
Hacer un algoritmo que lea la EDAD de 6 personas e imprima cuántos
son mayores de edad y cuá...
FUNCIONAMIENTO DE UN PORCENTAJE
        Hacer un algoritmo que lea la EDAD de 6 personas e imprima el
        porcentaje d...
FUNCIONAMIENTO DE UN ACUMULADOR
Hacer un algoritmo que lea la EDAD de 6 personas e imprima la suma
de edad de los mayores ...
FUNCIONAMIENTO DE UN PROMEDIO
         Hacer un algoritmo que lea la EDAD de 6 personas e imprima el
         porcentaje d...
SWITCHES O BANDERAS
Son elementos de algoritmos fundamentales para
buscar elementos o para determinadas situaciones en
las...
SW = 0                         SW = “VERDADERO”
CICLO                          CICLO
     SI CONDICIÓN                    ...
Ejemplo: Se pide realizar un algoritmo que lea 90 números e imprima
si se digita algún número negativo.
El enunciado indic...
SE INICILIZA EN ALGÚN VALOR LA
                VARIABLE SW ANTES DEL CICLO


SW = 0
PARA K = 1, 90, 1                     ...
FUNCIONAMIENTO DE UNA BANDERA
Hacer un algoritmo que lea 90 números. Imprimir si se lee algún
número negativo.
           ...
Leer los nombres de 150 personas e imprimir si se leyó algún
nombre igual a Juan o no.
                                   ...
Nächste SlideShare
Wird geladen in …5
×

Complemento Ciclos

jhjkh hjkhkj hkjh kjhkj

  • Als Erste(r) kommentieren

Complemento Ciclos

  1. 1. Realizado por JAIRO HERNANDO RAMÍREZ MARÍN Docente de Lógica de Programación, Algoritmos y Lenguaje de Programación Institución Universitaria Salazar y Herrera Lógica de Programación
  2. 2. Estructuras repetitivas Ciclo PARA Ciclo MIENTRAS Ciclo REPITA Variables que se combinan con los ciclos Acumulador, contador, promedio y porcentaje Switche o bandera Ciclos anidados Estructuras repetitivas y estructuras de decisión
  3. 3. ESTRUCTURAS REPETITIVAS Las estructuras repetitivas son conocidas como CICLOS, y se usan dentro de Algoritmos para realizar procesos que se deben REPETIR un determinado número de veces. los ciclos permiten ahorrar tiempo en el momento de realizar instrucciones dentro de un algoritmo. Por ejemplo si se pide hacer un algoritmo que lea 1 número y calcule su cuadrado, sería un proceso muy sencillo:
  4. 4. INICIO LEA num Cuad = num ^ 2 IMPRIMIR Cuad FIN Este es un proceso sencillo de realizar; pero si en lugar de un número fueran 10, 20 o 500, no se podrían leer 10, 20 o 500 variables. Lo mejor sería usar una estructura REPETITIVA. Por ejemplo:
  5. 5. INICIO PARA X=1, 20, 1 LEA num Cuad = num ^ 2 IMPRIMIR Cuad FIN PARA FIN Este es un ejemplo de un ciclo PARA, que toma las instrucciones que hay dentro de él, y las repite 20 veces. En este caso leería 20 números y calcularía su cuadrado.
  6. 6. TIPOS DE ESTRUCTURAS REPETITIVAS En Algoritmos existen los siguientes tipos de estructuras repetitivas y sus respectivas divisiones: •Ciclo PARA •Ciclo MIENTRAS •Registro CENTINELA (Cualitativo) •Registro IDENTIFICADOR (Cuantitativo) •Ciclo REPITA - HASTA
  7. 7. CICLO PARA El ciclo PARA se usa cuando se conoce el número de veces que se va a repetir el ciclo o cuando éste se hace N veces. La SINTAXIS es la siguiente PARA X = INICIO, FIN, [INCREMENTO o DECREMENTO] Instrucciones FIN PARA ***Si el FIN no se conoce, se lee antes del ciclo
  8. 8. EXPLICACIÓN: PARA X = INICIO, FIN, [INCREMENTO o DECREMENTO] X: Una variable cualquiera (Controladora del ciclo). INICIO: Valor en el que empieza la variable controladora (Normalmente es 1). FIN: Valor en el que termina la variable controladora (Este es el número de veces que se repite el ciclo). INCREMENTO o DECREMENTO: Valor que incrementa o decrementa la variable controladora (Normalmente es 1). Dependiendo el ejercicio se pone el incremento o el decremento.
  9. 9. Ejemplo: Se pide realizar un algoritmo que imprima los números del 1 hasta el 100. El mismo enunciado está indicando el número de veces que se va a realizar el CICLO (100 veces), por tal motivo los valores para el CICLO son (INICIO=1, FIN=100, INCREMENTO=1; este último se usa para que la variable pase de 1 a 2, de 2 a 3, y así sucesivamente hasta 100). PARA NUM = 1, 100, 1 IMPRIMIR NUM FIN PARA Explicación:
  10. 10. En este ejemplo la variable controladora del ciclo es la misma que se puede imprimir. INICIO FIN INCREMENTO VARIABLE CICLO PARA NUM = 1, 100, 1 IMPRIMA NUM FIN PARA INSTRUCCIONES FIN DEL CICLO Pero en la mayoría de los casos no es así. Ejemplo:
  11. 11. Desarrolle un algoritmo que lea el nombre y la edad de una persona e imprima su nombre y un mensaje que diga si es mayor o menor de edad. Observe que la variable controladora del ciclo (X) es diferente a las otras dos variables: NOM y ED. INICIO PARA X = 1, 25,1 LEA NOM, ED SI (ED >= 18) ENT IMPRIMIR NOM, “MAYOR DE EDAD” ESTO SE REPITIRÁ SINO 25 VECES IMPRIMIR NOM, “MENOR DE EDAD” FINSI FIN PARA FIN
  12. 12. Calcular el salario neto de N trabajadores, sabiendo que se le hace una retención del 5% de su básico. Lea el número de horas trabajadas y el valor por hora. INICIO Este ciclo va desde 1 hasta N empleados; pero LEA N como no se conoce su valor (N), antes del ciclo se tiene que leer esta variable. PARA K = 1, N, 1 LEA NHORAS, VLRHORA Lo demás es igual al tipo de ciclo BAS = NHORAS * VLRHORA PARA en el que se conoce el número de veces que se repite. RET = BAS * 0.05 (Como en el ejercicio anterior) NETO = BAS - RET IMPRIMIR NETO Pero no siempre el ciclo tendrá incrementos de 1. Existen algoritmos donde se FIN PARA coloquen incrementos de 2 o 3, dependiendo el caso. FIN
  13. 13. Desarrolle un algoritmo que imprima los números múltiplos de 5 comprendidos entre 100 y 200. INICIO NUM PARA NUM = 100, 200, 5 100 IMPRIMIR NUM Observe que la variable llegó hasta 205; ya que siempre se tiene 105 que pasar del final, para que FIN PARA termine el ciclo. (Ver Funcionamiento del ciclo PARA). 110 FIN 115 En este ejemplo se muestra el inicio y el fin de la variable del ciclo (100 y 200 respectivamente); pero si ponemos incrementos de 1, se 120 mostrarán los números entre 100 y 200 (100, 101, 102, 103...200) y no los múltiplos de 5 como lo pide el ejercicio; por eso el incremento tiene ... que ser de 5. Los valores que tomará la variables serán los siguientes: 200 205
  14. 14. FUNCIONAMIENTO DE UN CICLO PARA Imprimir sólo los números positivos de un grupo de 5. INICIO PRUEBA DE ESCRITORIO PARA J = 1, 5, 1 J NUM IMPRIMA LEA NUM 1 4 4 SI (NUM > 0) ENT 2 -3 IMPRIMIR NUM 3 0 FINSI 4 10 10 FIN PARA 5 -8 FIN TERMINA 6 Cuandoprueba, la se inicializa en 1 y evalúa si se pasó variable del ciclo y va hasta la En la llega a J línea del FINPARA, se incrementa la del final que es (5), como es primer línea del ciclo y evalúa al ciclose ejecuta las instrucciones. falso (J vale 2), falso ingresa si la J y pasó del final (5); como es continua leyendo, un númerollegue a 6. Si leemos los (por ejemplo el 4). y –8 Luego se lee hasta que cualquiera en esta línea números –3, 0, 10 mostrará sólo los positivos: 4 y 10. En los demás casos sólo se lee el número; pero Luego imprime el número porque 4 es positivo (en esta línea). no se imprime.
  15. 15. Hacer un algoritmo que lea 6 números e imprimir su cubo. K inicia en 1 y evalúa si se pasó del final (o cual es FALSO; porque 1<=6). INICIO Como K no se pasó del FIN, sigue leyendo. PRUEBA DE ESCRITORIO PARA K = 1, 6, 1 K NUM CUB IMP LEA NUM Se lee NUM 1 3 27 27 CUB = NUM ^ 3 Se calcula CUB 2 8 512 512 IMPRIMIR CUB Se imprime CUB 3 4 64 64 FIN PARA 4 5 125 125 Al llegar al FINPARA incrementa FIN la variable y regresa a la primer 5 2 8 8 línea del CICLO y evalúa si K se 6 9 729 729 pasó del final. Si es Verdadero sigue después del FIN PARA, 7 sino continua leyendo.
  16. 16. Hacer un algoritmo que lea 6 números e imprimir su cubo. INICIO PRUEBA DE ESCRITORIO PARA K = 1, 6, 1 K NUM CUB IMP COMO K YA SE PASÓ LEA NUM DEL FIN. VA DESPUÉS 1 3 27 27 DEL FIN PARA. 2 8 512 512 CUB = NUM ^ 3 3 4 64 64 IMPRIMIR CUB 4 5 125 125 FIN PARA 5 2 8 8 FIN 6 9 729 729 Y TERMINA EL ALGORITMO. LEYENDO 6 NÚMEROS E IMPRIMIENDO SUS 7 RESPECTIVOS CUBOS
  17. 17. CICLO HAGA MIENTRAS (Registro Identificador - Cuantitativo) El ciclo MIENTRAS con registro identificador se usa cuando el ciclo se hace N veces (es similar al Ciclo Para hasta N). La SINTAXIS es la siguiente: Lea N X = INICIO MIENTRAS (X <= N) Instrucciones X = X + [INCREMENTO o DECREMENTO] FIN MIENTRAS
  18. 18. EXPLICACIÓN: Lea N X = INICIO MIENTRAS (X <= N) X = X + [INCREMENTO o DECREMENTO] FINMIENTRAS N: Final del ciclo (que se debe leer porque se desconoce) X: Una variable cualquiera (Controladora del ciclo). INICIO: Valor en el que empieza la variable controladora (Normalmente es 1). INCREMENTO o DECREMENTO: Valor que incrementa la variable controladora (Normalmente es 1)
  19. 19. Ejemplo: Se pide realizar un algoritmo que imprima los números de 1 hasta N. El enunciado indica que el ciclo se hará N veces (como no se sabe su valor de debe leer antes del ciclo). Por tal motivo los valores para el CICLO son (INICIO=1, FIN=N, INCREMENTO=1). Lea N NUM=1 MIENTRAS (NUM<=N) IMPRIMIR NUM NUM=NUM+1 FIN MIENTRAS Explicación:
  20. 20. Mientras que el ciclo PARA hace todo en una sola línea (inicio, fin e incremento), el ciclo MIENTRAS toma cada una de esas partes y las divide en varias líneas, que se distribuyen de la siguiente forma: FIN VARIABLE LEA N INICIO FIN NUM = 1 INSTRUCCIONES CICLO MIENTRAS (NUM <= N) IMPRIMA NUM NUM = NUM + 1 INCREMENTO FIN DEL CICLO FIN MIENTRAS Observe que el orden del INICIO, del FIN y del INCREMENTO cambian de lugar; pero su funcionamiento es el mismo.
  21. 21. Es muy fácil convertir un CICLO PARA hasta N en un CICLO MIENTRAS con REGISTRO IDENTIFICADOR: LEA N LEA N NUM = 1 PARA NUM = 1, N, 1 MIENTRAS (NUM <= N) IMPRIMIR NUM IMPRIMIR NUM NUM = NUM + 1 FIN PARA FIN MIENTRAS Observe lo fácil que es pasar un CICLO PARA a CICLO MIENTRAS. Se lee el final (igual), se cambia PARA por MIENTRAS, las instrucciones van en medio y finalmente se divide las instrucciones del PARA en el mientras: INICIO antes del ciclo, FIN en la condición del ciclo y el incremento antes de cerrar el CICLO. Y se cambia FIN PARA por FIN MIENTRAS.
  22. 22. Calcular el salario neto de N trabajadores, sabiendo que se le hace una retención del 5% de su básico. Lea el número de horas trabajadas y el valor por hora. LEA N K=1 MIENTRAS (K <= N) LEA NHORAS, VLRHORA Este ciclo va desde 1 hasta N empleados; pero como no se BAS = NHORAS * VLRHORA conoce su valor se tiene que leer antes del ciclo esta RET = BAS * 0.05 variable. NETO = BAS - RET IMPRIMIR NETO K=K+1 FIN MIENTRAS
  23. 23. Desarrolle un algoritmo que imprima los números múltiplos de 5 comprendidos entre 100 y N. INICIO En este ejemplo se tiene LEA N NUM que poner un incremento de 5 para que se muestre NUM = 100 100 los múltiplos de 5, como lo pide el ejercicio. Los MIENTRAS (NUM <= N) 105 valores que tomará la variables serán los IMPRIMIR NUM 110 siguientes: NUM = NUM + 5 ... N+5 FIN MIENTRAS FIN
  24. 24. FUNCIONAMIENTO DEL REGISTRO IDENTIFICADOR Hacer un algoritmo que lea N números e imprima sólo los positivos. PRUEBA DE ESCRITORIO INICIO Aquí evalúa si J es <= N (2 es <=3), entonces LEA N continúa leyendo N J NUM IMPRIMA J=1 3 1 15 15 2 MIENTRAS (J < = N) LEA NUM En esta línea se LEE N (en este caso 3) y se empieza J en 1 (Ver Prueba de Escritorio). SI (NUM > 0) ENT Evalua si J<=N. Como es Verdadero continua. IMPRIMA NUM Aquí se lee un # cualquiera (positivo o negativo). FINSI Aquí pregunta si el # es positivo (que lo imprima) J=J+1 Aquí incrementa la J en 1. Y al llegar al FIN MIENTRAS regresa FIN MIENTRAS a la primera línea del CICLO para volver a evaluar si J llegó al FIN final que es N.
  25. 25. FUNCIONAMIENTO DEL REGISTRO IDENTIFICADOR Hacer un algoritmo que lea N números e imprima sólo los positivos. PRUEBA DE ESCRITORIO INICIO AlAl evaluar la condiciónya evaluar la condición es FALSA porque 4 no es ésta es Verdadera (3<=3). Sigue leyendo LEA N <=3. Por lo tanto termina N J NUM IMPRIMA el ciclo 3 1 15 15 J=1 2 -8 MIENTRAS (J < = N) 3 7 7 LEA NUM 4 Aquí lee un número cualquiera (positivo o SI (NUM > 0) ENT negativo). IMP NUM Aquí pregunta si el # es positivo (que lo FINSI imprima) J=J+1 Aquí incrementa la J en 1. Y SEllegar al FIN MIENTRASen N se NOTE QUE EL ALGORITMO al HIZO HASTA 3 porque regresa a la primera línea del CICLO paraleer cualquier valor.J Aquí se leyó ese número; pero se puede volver a evaluar si llegó al FIN MIENTRAS leyeron 3 números yfinal que es N. sólo los positivos. se imprimieron FIN
  26. 26. CICLO HAGA MIENTRAS (Registro Centinela - Cualitativo) El ciclo MIENTRAS con Registro Centinela se usa cuando no se sabe el número de veces que se va a hacer el ciclo (no se da un número fijo o no se habla de la variable N). La SINTAXIS es la siguiente: LEER VAR MIENTRAS (CONDICIÓN) Instrucciones LEER VAR FIN MIENTRAS
  27. 27. EXPLICACIÓN: LEER VAR MIENTRAS (CONDICIÓN) VAR: Variable que va a controlar el ciclo (se recomienda que sea una de las variables trabajadas en el algoritmo). Muy diferente en los otros ciclos que se crea una variable controladora del ciclo. CONDICIÓN: Permite terminar el ciclo. Se usa la variable que se leyó y se le puede dar un valor que la variable nunca tome. Nota: Tenga en cuenta que este ciclo no tiene INCREMENTO, INICIO o FIN; lo único que permite terminar este ciclo es que la variable tome un valorX. La característica de este ciclo es que se lee la Variable controladora, antes del ciclo y antes del fin del ciclo. Para entender mejor el tema mire los ejemplos:
  28. 28. Ejemplo: Se pide realizar un algoritmo que lea varios números positivos e imprima su raíz cuadrada. El enunciado indica que se deben leer varios números, pero no dicen cuantos ni tampoco que son N. Por tal motivo se tiene que usar un ciclo Mientras con Registro Centinela. Se lee la variable antes del ciclo y antes del fin del ciclo y se pone una condición apropiada (si son números positivos ninguno puede ser menor igual a cero): LEER NUM MIENTRAS (NUM > 0) RAIZ = NUM ^ (1/2) IMPRIMIR RAIZ LEER NUM FIN MIENTRAS Explicación:
  29. 29. Mientras que los ciclos anteriores requieren de un inicio, un fin y un incremento; estos ciclos NO. Sólo necesitan tomar cualquiera de las variables y ponerle una condición correcta (algunos algoritmos dirán cual es la condición, otros NO. En este último caso el programador elige la condición apropiada). VARIABLE QUE SE LEE ANTES DEL CICLO CONDICIÓN DEL CICLO LEA NUM CICLO MIENTRAS (NUM > 0) RAIZ = NUM ^ (1/2) Y ANTES DEL FINAL DEL CICLO IMPRIMIR RAIZ INSTRUCCIONES LEA NUM FIN DEL CICLO FIN MIENTRAS
  30. 30. FUNCIONAMIENTO MIENTRAS (Registro Centinela) Hacer un algoritmo que lea un grupo de números y calcule su raíz cuadrada. El ciclo se hará hasta que se lea un número igual a cero. INICIO Como 100 es <> PRUEBA DE ESCRITORIO 0, continúa. LEA NUM NUM RAIZ IMPRIMA 9 3 3 MIENTRAS (NUM <> 0) 100 RAIZ = NUM ^ (1/2) En esta línea se LEE el primer número (vamos a leer 9) Ver Prueba de Escritorio. IMPRIMIR RAIZ En esta línea se evalúa si el # es diferente de 0. Como LEA NUM es Verdadero continua. FIN MIENTRAS Aquí se calcula e imprime la Raíz Cuadrada Aquí se Lee otro número. FIN Al llegar al FINMIENTRAS va a la primera línea de la estructura y evalúa si el número es diferente de 0.
  31. 31. FUNCIONAMIENTO MIENTRAS (Registro Centinela) Hacer un algoritmo que lea un grupo de números y calcule su raíz cuadrada. El ciclo se hará hasta que se lea un número igual a cero. PRUEBA DE ESCRITORIO INICIO NUM RAIZ IMPRIMA LEA NUM 9 3 3 MIENTRAS NUM <> 0 100 10 10 0 RAIZ = NUM ^ (1/2) Nuevamente viene a esta línea, calcula IMPRIMIR RAIZ e imprime la raíz. LEA NUM Este proceso repetirá mientras el número leído sea diferente de 0. Si no se desea continuar se lee FIN MIENTRAS este número. FIN ASÍ SE LEYERON VARIOS NÚMEROS, SE CALCULÓ E IMPRIMIÓ SU Al llegar al fin del ciclo, regresa a la primera línea y evalúa si es RAÍZ CUADRADA. TERMINANDO EL es, termina el ciclo y termina el diferente de 0. Como no lo PROCESO CUANDO SE DIGITÓ algoritmo. UN NÚMERO IGUAL A 0.
  32. 32. Calcular el salario neto de varios trabajadores, sabiendo que se le hace una retención del 5% de su básico. Lea el número de horas trabajadas y el valor por hora. Hacer esto mientras no se digite un número de horas negativo o igual a cero. LEA NHORAS Este ciclo se repite varias veces mientras que no se digite un número de MIENTRAS NHORAS > 0 horas negativo (esa es la condición del ciclo) y la variable contraladora del ciclo LEA VLRHORA es el número de horas. BAS = NHORAS * VLRHORA RET = BAS * 0.05 Observe que la variable NHORAS se lee antes del ciclo y antes del fin del ciclo. Como falta NETO = BAS - RET leer la variable VLRHORA se lee dentro del ciclo. Y la condición es mientras que NHORAS IMPRIMIR NETO sea MAYOR DE 0, lo que significa POSITIVO. LEA NHORAS FIN MIENTRAS
  33. 33. CICLO REPITA HASTA El ciclo REPITA HASTA se usa de una forma similar al ciclo MIENTRAS con Registro Centinela; pero la condición va al final del ciclo y no en su primera línea. La SINTAXIS es la siguiente: LEA VAR REPITA Instrucciones LEA VAR HASTA (CONDICIÓN)
  34. 34. EXPLICACIÓN: LEER VAR REPITA Instrucciones LEER VAR HASTA (CONDICIÓN) Este ciclo empieza con LEER VAR que controlará el ciclo, luego la palabra REPITA, se colocan las instrucciones a realizar. Se vuelve a leer antes del final del ciclo y finalmente se pone HASTA (CONDICIÓN), ésta última es la que permite terminar al ciclo. Nota: Este ciclo al no haber condición al inicio ESTÁ OBLIGADO A HACERSE MÍNIMO UNA VEZ, algo que no pasa con el ciclo (MIENTRAS). Es usada para validar el ingreso de información.
  35. 35. Ejemplo: Se pide realizar un algoritmo que lea varios números e imprima su raíz cuadrada hasta que se lea un número negativo. El enunciado indica que se deben leer varios números y está dando la condición para terminar el ciclo. Por tal motivo se tiene que usar un ciclo REPITA HASTA. LEER NUM REPITA RAIZ = NUM ^ (1/2) IMPRIMIR RAIZ LEER NUM HASTA (NUM = 0) Explicación:
  36. 36. Las consideraciones a tener en cuenta en este ciclo son las mismas que para el ciclo MIENTRAS con Registro Centinela; pero la condición no va al inicio del ciclo sino al final. VARIABLE QUE SE LEE ANTES DEL CICLO LEA NUM CICLO REPITA INSTRUCCIONES RAIZ = NUM ^ (1/2) Y ANTES DEL FINAL DEL CICLO IMPRIMIR RAIZ CONDICIÓN DEL LEA NUM CICLO FIN DEL CICLO HASTA (NUM = 0)
  37. 37. FUNCIONAMIENTO DE UN CICLO REPITA HASTA Hacer un algoritmo que lea un grupo de números y calcule su raíz cuadrada. El ciclo se hará hasta que se lea un número igual a cero. PRUEBA DE ESCRITORIO INICIO NUM RAIZ IMPRIMA LEA NUM 64 8 8 REPITA 81 RAIZ = NUM ^ (1/2) En esta línea se LEE el primer número IMPRIMIR RAIZ (vamos a leer 64) Ver Prueba. Y del repita pasa a la línea siguiente (Sin evaluar nada) LEA NUM Aquí se calcula e imprime la raíz cuadrada. HASTA (NUM = 0) Aquí se lee otro número FIN Al llegar al fin del ciclo evalúa: si el número es = 0 termina, de lo contrario va hasta el repita, y continúa con el proceso.
  38. 38. FUNCIONAMIENTO DE UN CICLO REPITA HASTA Hacer un algoritmo que lea un grupo de números y calcule su raíz cuadrada. El ciclo se hará hasta que se lea un número igual a cero. PRUEBA DE ESCRITORIO INICIO NUM RAIZ IMPRIMA LEA NUM 64 8 8 REPITA 81 9 9 0 RAIZ = NUM ^ (1/2) Aquí se calcula e imprime la otra raíz IMPRIMIR RAIZ cuadrada. LEA NUM Aquí se lee otro número (esto se repetirá hasta que se digite un 0.) Para terminar HASTA (NUM = 0) haremos eso. FIN Al llegar aquí, evalúa: Como el número es igual a 0, termina el proceso. Se leyeron números, se calculó su raíz cuadrada hasta digitar un cero.
  39. 39. Calcular el salario neto de varios trabajadores, sabiendo que se le hace una retención del 5% de su básico. Lea el número de horas trabajadas y el valor por hora. Hacer esto hasta se digite un número de horas negativo. LEA NHORAS El Ciclo Mientras con Registro REPITA Centinela pone condición MIENTRAS QUE NO SE CUMPLA LEA VLRHORA EL FINAL DEL CICLO; mientras que el Ciclo REPITA se hace BAS = NHORAS * VLRHORA HASTA QUE SE CUMPLA LA RET = BAS * 0.05 CONDICIÓN. Ej: Ciclo MIENTRAS: Haga Mientras la NETO = BAS - RET edad sea diferente de 80 años. El ciclo hasta diría: Repita hasta IMPRIMIR NETO que la edad sea igual a 80. LEA NHORAS HASTA (NHORAS < 0)
  40. 40. CONTADORES, ACUMULADORES, PROMEDIOS Y PORCENTAJES Son elementos de algoritmos básicos y fundamentales para determinar cantidades, sumatorias y varios datos estadísticos. CONTADOR: Como su nombre lo indica, son variables que sirven para CONTAR dentro de un algoritmo. Se usa para determinar cantidades (haciendo un conteo de 1 en 1). La SINTAXIS es la siguiente: CONTADOR = CONTADOR + 1
  41. 41. ACUMULADOR: Son variables que sirven para SUMAR o ACUMULAR valores dentro de un algoritmo. Se usa para determinar totales o todas aquellas operaciones donde se vaya a incrementar un número no constante (el contador incrementa de forma constante: de 1 en 1, 2 en 2, etc). La SINTAXIS es la siguiente: ACUMULADOR = ACUMULADOR + VARIABLE VARIABLE, es la variable que se pide acumular o sumar.
  42. 42. PROMEDIO: Son variables que sirven para PROMEDIAR valores. Para calcularlos se divide un ACUMULADOR por un CONTADOR (Esto quiere decir, se suman todos los elementos y se divide por el número de ellos). La SINTAXIS es la siguiente: PROMEDIO = ACUMULADOR / CONTADOR Algunas veces el CONTADOR se puede reemplazar por el número total de elementos.
  43. 43. PORCENTAJE: Son variables que sirven calcular datos estadísticos. Para calcularlos se usan un CONTADOR PARTICULAR divido un CONTADOR GENERAL multiplicado por 100. Al multiplicar un contador particular por el contador general, siempre dará un número entre 0 y 1; por eso se multiplica por 100, para dar la respuesta en porcentaje: 0.25 = 25%. La SINTAXIS es la siguiente: PORCENTAJE = CONT_PARTICULAR / CONT_GRAL*100 Para entender el funcionamiento de contadores, acumuladores, promedios y porcentajes, observe lo siguiente:
  44. 44. Desarrolle un algoritmo que lea la edad y el sexo de 10 personas; calcular e imprimir cuantas son mayores de edad y cuantas menores. Además, la suma de edad de los hombres, la suma de edad de las mujeres y la suma de todas las personas. Las consideraciones a tener en cuenta para los acumuladores y los contadores: Para determinar la cantidad de personas mayores de edad y las menores de edad, se tienen que usar 2 contadores diferentes; mientras que para la suma de edad de los hombres, de las mujeres y de todas las personas se necesitan 3 acumuladores. Las 4 primeras variables son contadores y acumuladores PARTICULARES (de un caso en especial: mayores o menores de edad; hombres o mujeres), mientras que el último acumulador es GENERAL (para todos, el cual va sin pregunta).
  45. 45. CONTMY, CONTMN, SUMEDH, SUMEDM, SUMTED=0 Se inicializan en 0, ANTES del PARA X=1, 10, 1 ciclo. (Todas tienen distinto nombre). LEA SEX, ED SI (ED>=18) ENT CONTMY = CONTMY + 1 Se calculan los contadores PARTICULARES SINO (CONTMY significa Contador Mayores de Edad. Igual con los menores). CONTMN = CONTMN + 1 FINSI Se calculan los Acumuladores SI (SEX=“MASCULINO”) ENT PARTICULARES (SUMEDM significa Sumatoria de Edad de las Mujeres. Igual SUMEDH = SUMEDH + ED con los hombres). SINO Se calcula el Acumulador SUMEDM = SUMEDM + ED GENERAL (Sin pregunta) FINSI SUMTED = SUMTED + ED Se imprimen FINPARA FUERA del ciclo. IMPRIMIR CONTMY, CONTMN, SUMEDH, SUMEDM, SUMTED
  46. 46. Las consideraciones a tener en cuenta para los promedios y porcentajes: Siempre que se vaya a calcular un promedio se requiere de un Acumulador y un contador. Para los porcentajes se necesita un Contador Particular y uno general. Desarrolle un algoritmo que lea la edad y el sexo de 10 personas; calcular e imprimir el promedio de edad de los hombres y el de las mujeres. Además, el porcentaje de personas mayores de edad y el promedio de edad de todas las personas. Para determinar el promedio de edad de hombres y mujeres se necesita de un contador que cuente los hombres y un acumulador que sume la edad de los hombres (igual para las mujeres). Para hallar el porcentaje de los mayores de edad se necesita un contador que cuente cuántos mayores de edad hay (no se necesita un contador general, porque el total de personas es 10). Para el promedio de edades de todos se usa un acumulador general (tampoco se necesita contar porque son 10).
  47. 47. CONTH, CONTM, CONTMY, SUMEDH, SUMEDM, SUMTED=0 PARA X=1, 10, 1 LEA SEX, ED Se inicializan en 0, ANTES del ciclo. (Todas tienen distinto nombre). SI (SEX=“MASCULINO”) ENT SUMEDH = SUMEDH + ED CONTH = CONTH + 1 Se calculan los contadores y acumuladores PARTICULARES para calcular los SINO promedios de edad de hombres y mujeres. SUMEDM = SUMEDM + ED CONTM = CONTM + 1 FINSI Se calcula el Contador PARTICULAR para SI (ED>=18) ENT calcular el Porcentaje de los mayores de edad. CONTMY = CONTMY + 1 FINSI SUMTED = SUMTED + ED Se calcula el Acumulador GENERAL para el promedio de todas las edades. FINPARA PROMEDH = SUMEDH / CONTH Los Promedios y Porcentajes se calcula e PROMEDM = SUMEDM / CONTM imprimen FUERA del Ciclo. PORCMY = CONTMY / 10 * 100 PROMTE = SUMTED / 10 IMPRIMIR PROMEDH, PROMEDM, PORCMY, PROMTE
  48. 48. FUNCIONAMIENTO DE UN CONTADOR Hacer un algoritmo que lea la EDAD de 6 personas e imprima cuántos son mayores de edad y cuántos menores. INICIO PRUEBA DE ESCRITORIO CMY, CMN = 0 X CMY CMN EDAD IMPRIMA PARA X = 1, 6, 1 1 0 0 17 4 LEA EDAD 2 1 1 23 2 SI (EDAD >= 18) 3 2 2 18 4 3 35 CMY = CMY + 1 5 4 12 SINO 6 21 CMN = CMN + 1 7 FINSI FINPARA IMPRIMIR CMY, CMN FIN
  49. 49. FUNCIONAMIENTO DE UN PORCENTAJE Hacer un algoritmo que lea la EDAD de 6 personas e imprima el porcentaje de mayores de edad y el de menores. INICIO PRUEBA DE ESCRITORIO CMY, CMN = 0 X CMY CMN EDAD PORCMY PORCMN IMP PARA X = 1, 6, 1 1 0 0 17 66,6% 33,3% 66,6% LEA EDAD 2 1 1 23 33,3% SI (EDAD >= 18) 3 2 2 18 CMY = CMY + 1 4 3 35 SINO 5 4 12 CMN = CMN + 1 6 21 FINSI 7 FINPARA PORCMY = CMY / 6 * 100 EL funcionamiento es igual al de los PORCMN = CMN / 6 * 100 contadores; sólo que al terminar el ciclo se calculan los porcentajes (Para IMPRIMIR PORCMY, PORCMN calcularlos se tiene que CONTAR). FIN
  50. 50. FUNCIONAMIENTO DE UN ACUMULADOR Hacer un algoritmo que lea la EDAD de 6 personas e imprima la suma de edad de los mayores de edad y de los menores. INICIO PRUEBA DE ESCRITORIO SMY, SMN = 0 X SMY SMN EDAD IMPRIMA PARA X = 1, 6, 1 1 0 0 17 97 LEA ED 2 23 17 23 29 SI (ED >= 18) 3 41 29 18 4 76 35 SMY = SMY + ED 5 97 12 SINO 6 21 SMN = SMN + ED 7 FINSI FINPARA IMPRIMIR SMY, SMN FIN
  51. 51. FUNCIONAMIENTO DE UN PROMEDIO Hacer un algoritmo que lea la EDAD de 6 personas e imprima el porcentaje de mayores de edad y el de menores. CMY, CMN, SMY, SMN = 0 PRUEBA DE ESCRITORIO PARA X = 1, 6, 1 X SMY SMN EDAD PROMMY PROMMN IMP LEA EDAD 1 0 0 17 24,2 14,5 24,2 SI (EDAD >= 18) 2 23 17 23 14,5 CMY = CMY + 1 3 41 29 18 CMY CMN SMY = SMY + ED 4 76 35 0 0 SINO 5 97 12 1 1 CMN = CMN + 1 6 21 2 2 SMN = SMN + ED 3 7 4 FINSI EL funcionamiento es igual al de FINPARA los contadores y acumuladores; PROMMY = SMY/ CMY sólo que al terminar el ciclo se calculan los promedios (Para PROMMN = SMN/ CMN calcularlos se tiene que CONTAR y ACUMULAR). IMPRIMIR PROMMY, PROMMN
  52. 52. SWITCHES O BANDERAS Son elementos de algoritmos fundamentales para buscar elementos o para determinadas situaciones en las cuales se cumpla una condición específica. Teniendo como principal característica que toma sólo dos estados o valores (1 o 0, Encendido o Apagado, Verdadero o False, V o F, entre otros valores). Esta variable se usa con el nombre SW o BAND. Se inicializa antes del ciclo con cualquiera de los dos valores. Y dentro de ciclo cambia al otro valor cuando cumpla determinada condición. La SINTAXIS es la siguiente:
  53. 53. SW = 0 SW = “VERDADERO” CICLO CICLO SI CONDICIÓN SI CONDICIÓN SW = 1 SW = “FALSO” FINSI FINSI FIN SI FIN SI FINCICLO FINCICLO Observe que se puede inicializar en cualquier valor (normalmente es el negativo: Apagado, F, 0, o Falso). Después del ciclo se puede preguntar por el estado o el valor de esa variable e imprimir los mensajes que correspondan o sean necesarios.
  54. 54. Ejemplo: Se pide realizar un algoritmo que lea 90 números e imprima si se digita algún número negativo. El enunciado indica que se debe determinar si se digitó un número negativo (ESA ES LA CONDICIÓN para cambiar el estado de la variable). SW = 0 PARA K = 1, 90, 1 LEER NUM SI (NUM < 0) ENTONCES SW = 1 FINSI FIN PARA SI (SW = 1) ENTONCES IMPRIMA “SE DIGITÓ UN NÚMERO NEGATIVO” FINSI Explicación:
  55. 55. SE INICILIZA EN ALGÚN VALOR LA VARIABLE SW ANTES DEL CICLO SW = 0 PARA K = 1, 90, 1 SE CAMBIA EL VALOR DE LA LEER NUM VARIABLE CUANDO LA CONDICIÓN SEA VERDADERA SI (NUM < 0) ENTONCES SW = 1 FINSI SE PREGUNTA DESPUÉS DEL CICLO POR ALGUNO DE LOS VALORES DE LA FIN PARA VARIABLE Y SE IMPRIME EL MENSAJE SI (SW = 1) ENTONCES IMPRIMA “SE DIGITÓ UN NÚMERO NEGATIVO” FINSI
  56. 56. FUNCIONAMIENTO DE UNA BANDERA Hacer un algoritmo que lea 90 números. Imprimir si se lee algún número negativo. PRUEBA DE ESCRITORIO SW = 0 SW NUM IMPRIMA 0 8 Se digitó un # PARA K = 1, 90, 1 negativo LEER NUM 1 7 SI (NUM < 0) ENT -2 SW = 1 En esta línea se INICIALIZA el sw o bandera en 0, antes del ciclo. FINSI En esta línea se leen números, y sólo FIN PARA cambia el SW a 1, cuando se lea algún número negativo. SI (SW = 1) ENTONCES Si el –2 es el número 80 leído. IMPRIMA “SE DIGITÓ UN Inmediatamente cambia sw a 1 NÚMERO NEGATIVO” Aquí se pregunta. Como sw = 1, imprime el FINSI mensaje
  57. 57. Leer los nombres de 150 personas e imprimir si se leyó algún nombre igual a Juan o no. La única aclaración que BAND = “FALSO” hay que hacer de este PARA I = 1, 150, 1 algoritmo es que la condición para cambiar el LEA NOMBRE estado de la bandera es SI (NOMBRE = “Juan”) Entonces NOMBRE = JUAN. Luego al finalizar se imprime si se BAND = “VERDADERO” encontró o no un nombre FINSI JUAN (este ejercicio pide los dos mensajes, el FINPARA ejercicio anterior, sólo pide SI BAND = “VERDADERO” Entonces imprimir si se leyó un número negativo nada IMPRIMA “Se leyó un nombre juan” mas). SINO IMPRIMA “No se leyó un nombre juan” FINSI

×