miércoles, 8 de marzo de 2017

PseInt - Estructuras Repetitivas

Estructuras Repetitivas

Las estructuras repetitivas son aquellas que permiten ejecutar repetidamente un conjunto de instrucciones, bien un número predeterminado de veces, o bien hasta que se verifique una determinada condición.

En términos de un lenguaje de programación, que se verifique o no una condición se traduce en que una (adecuada) expresión lógica tome el valor VERDADERO (TRUE) o tome el valor FALSO (FALSE). En los casos más sencillos y habituales la condición suele ser una comparación entre dos datos, como por ejemplo:

si a < b hacer una cosa y en caso contrario hacer otra distinta.

Existen tres tipos de estructuras repetitivas en PseInt:

Estructura Mientras:



La instrucción Mientras ejecuta una secuencia de instrucciones mientras una condición sea verdadera.

Mientras <condición> Hacer
<instrucciones>
FinMientras

Al ejecutarse esta instrucción, la condición es evaluada. Si la condición resulta verdadera, se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al finalizar la ejecución del cuerpo del ciclo se vuelve a evaluar la 4 condición y, si es verdadera, la ejecución se repite. Estos pasos se repiten mientras la condición sea verdadera.

Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si al evaluar por primera vez la condición resulta ser falsa.

Si la condición siempre es verdadera, al ejecutar esta instrucción se produce un ciclo infinito. A fin de evitarlo, las instrucciones del cuerpo del ciclo deben contener alguna instrucción que modifique la o las variables involucradas en la condición, de modo que ésta sea falsificada en algún momento y así finalice la ejecución del ciclo.

Ejemplo 1:


Enunciado:

Diseñar un algoritmo que permita ingresar n cantidad de notas validas, sabiendo que el rango de nota valida es de 1 a 5 pts.


Algoritmo


Estructura Repetir - Hasta:


La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condición sea verdadera.

Repetir
<instrucciones>
Hasta Que <condición>

Al ejecutarse esta instrucción, la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evalúa la condición. Si la condición es falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición.

Esto se repite hasta que la condición sea verdadera.

Note que, dado que la condición se evalúa al final, las instrucciones del cuerpo del ciclo serán ejecutadas al menos una vez. Además, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna instrucción que modifique la o las variables involucradas en la condición de modo que en algún momento la condición sea verdadera y se finalice la ejecución del ciclo.

Ejemplo 2:


Enunciado:


Diseñar un algoritmo que permita ingresar n cantidad de notas validas, sabiendo que el rango de nota valida es de 1 a 5 pts.

Algoritmo



Teniendo en cuenta que el ejemplo es el mismo utilizado en la estructura MIENTRAS-HACER pero adaptándolo a esta nueva estructura, apreciamos la primera y al ingresar la cantidad de notas igual a cero sencillamente no se ejecuta el ciclo ya que el evalúa la condición en el inicio, pero ingresamos cero también en el segundo y el ciclo se ejecuta una vez para luego detenerse, esto sucede porque en esta otra se evalúa al final, por lo tanto REPITA-HASTA se debe utilizar solo en problemas que necesiten por lo menos una vez su ejecución.

Estructura Para:



La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces.

Para <variable> <- <inicial> Hasta <final> Con Paso <paso> Hacer
<instrucciones>
FinPara

Al ingresar al bloque, la variable <variable> recibe el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó al valor <final>. Si esto es falso se repite hasta que <variable> supere a <final>. Si se omite la cláusula Con Paso <paso>, la variable <variable> se incrementará en 1.

Ejemplo 3:


Enunciado:


Diseñar un algoritmo que permita repetir n cantidad de veces un mensaje cualquiera:

Algoritmo



En esta estructura la instrucción Para es un poco más compleja que las otras dos, pero simplifica la ejecución de los ciclos.

En la instrucción comenzamos con una variable de repetición que 8 se inicializa en la misma instrucción y no afuera como en las anteriores, luego se delimita, en el caso del ejemplo de n y por último se indica el valor del incremento de la variable, en el ejemplo se incrementa de 1 en 1, pero ese valor puede variar y además si el incremento es igual a 1 este se puede omitir, por ejemplo: (Para i=1 Hasta n Hacer)

Vamos a comparar las distintas estructuras:


Por acá unos vídeos donde el profesor Juan Laya hace una excelente explicación



9 comentarios:

  1. Disculpe el ejemplo 1 y 2 es mal (la estructura es correcta) pero su enunciado no pide eso.

    ResponderEliminar
    Respuestas
    1. Un banco nacional tiene una línea de crédito para pequeñas
      empresas por $1.250.000.000. Por tal motivo, este banco
      requiere algoritmo que le permita controlar la asignación de
      créditos según este cupo. El algoritmo debe, mientras aun
      exista cupo de crédito, solicitar el NIT de la empresa, el
      nombre y el monto solicitado. Asimismo, si el monto solicitado
      por la empresa es mayor al cupo que queda disponible debe
      informar al cliente.

      Eliminar
  2. como se realiza en pseint ejercicios de contador como del 1 al 10 contador de dos en dos hasta 60 etc

    ResponderEliminar
    Respuestas
    1. Tu pregunta es un poco confusa, pero entendí y creo que te refieres a que haga un ciclo que imprima numeros del 1 al 10 con paso en 1 en 1 con el contador así (1,2,3..10) y otro que sea del 2 al 60 pero en 2 en 2.
      Bueno tampoco dijiste en que ciclo, en ese caso voy a utilizar el ciclo PARA en este ejemplo sencillo.

      Numero del 1 al 10 en 1 en 1.

      Algoritmo ejercicio_contador
      Definir contador Como Entero;

      Para contador <-1 Hasta 10 Con Paso 1 Hacer
      Escribir contador;
      Fin Para

      FinAlgoritmo

      Definimos la variable contador como un entero primero luego use el ciclo PARA en la varible contador la inicialize en 1 porque si lo iniciaba en 0 solo iba a llegar a 9, ya que recordemos que el valor 0 se incluye. Hasta el 10 y con paso a 1 o sea que vaya en 1 en 1 y por ultimo imprimimos el contador que es el que lleva la secuencia de números.

      Número del 2 al 60 en 2 en 2.

      Algoritmo ejercicio_contador
      Definir contador Como Entero;

      Para contador<-2 Hasta 60 Con Paso 2 Hacer
      Escribir contador;
      Fin Para

      FinAlgoritmo

      Aquí solo se hizo lo mismo que el primer enunciado solo que en ves que la variable "contador" inicie en 1 cambia a 2 porque así es como lo queremos, que vaya del 2 al 60, también cambiamos a donde va a terminar, en ves de 10 ponemos 60 y para que las secuencia corra en ves de 1 en 1 y sea en 2 en 2 (2,4,6..60) o como queramos, vamos en el ciclo donde dice paso en vez que corra en 1 le ponemos 2 y listo imprimimos el contador.

      Pd: Tambien puedes hacerlo con los demas ciclos como el MIENTRAS o REPETIR solo debes poner el contador bien dentro del ciclo o sea así contador = contador + 1 y inicializarlo antes del ciclo;

      Ejemplo con el Mientras:

      1 en 1 del 1 al 10:
      Algoritmo ejercicio_contador
      Definir contador Como Entero;

      contador = 1; //Inicializar el contador

      Mientras contador <= 10 Hacer
      Escribir contador;
      contador = contador + 1; //Contador que lleva la secuencia
      Fin Mientras

      FinAlgoritmo

      2 en 2 del 2 al 60:

      Algoritmo ejercicio_contador
      Definir contador Como Entero;

      contador = 2;

      Mientras contador <= 60 Hacer
      Escribir contador;
      contador = contador + 2;
      Fin Mientras

      FinAlgoritmo

      Espero que te sirva o ayudado.
      Saludos!

      Eliminar
  3. hola estoy buscando el nombre de una estructura que nunca termina es decir de los que estan emm supongamos que tengo un edificio dentro de otro edificio y dentro de otro y supongamos que segimos asi infinitamente como se llamaria eso ?

    ResponderEliminar
    Respuestas
    1. Solo hay 3 ciclos y son esos que estan en la explicación: Para, mientras, repetir. Ahora si quieres hacer un ciclo que no acabe, eso se le llama ciclo infinito, porque nunca va a salir del ciclo. Eso se puede hacer con cualquiera de los ciclos pero el Mienstras puede ser bueno para eso. Lo unico que debes hacer es poner bien la condición para que el ciclo no acabe. Ejemplo:

      Definir i como entero;
      i <- 1; //Asignamos el valor 1 a la variable i
      Mientras i = 1 Hacer
      // Evalua que i = 1 como es verdadero se va a repertir siempre
      Escribrir "Hola Mundo";
      FinMientras

      Va imprimir "Hola Mundo" hasta el infinito, nunca va a acabar.

      Es un ejemplo fácil y sencillo, como seria un ciclo infinito pero si deseas, que salga solo debes ponerle un contador como:

      Definir i como entero;
      i <- 1;
      Mientras i = 1 Hacer
      Escribrir "Hola Mundo";
      i=i+1; //Contador
      FinMientras

      Un contador hará que finalice el ciclo solo imprimiendo una sola vez, ya que el contador llevara la secuencia dentro del ciclo, y como solo dice 1, la variable i entonces solo se hara una vez.

      Puedes copiar el algoritmo y lo pegas en el Pseint para que veas el ejemplo y el resultado, espero que sirva o ayudado.

      Saludos!

      Eliminar
  4. me ayudas con una breve introducion de repetir hasta, en pseint

    ResponderEliminar
  5. hola puedes ayudarme por favor
    1. Usando estructura selectivas y repetitivas desarrollar:
    a) Diversia SAC, empresa dedica a la promoción de espectáculos públicos tiene la necesidad de que le construyan una aplicación que le controle la entrada a un espectáculo público para un aforo de 500 personas.
    El valor de las entradas es: Simples S/ 20.00 y dobles de 30.00
    Se desea mostrar la cantidad de entradas dobles vendidas y el monto total recaudado.

    ResponderEliminar