AnteriorPosterior

8 - Repetir un cierto número de veces: Para

Por: Nacho Cabanes
Actualizado: 25-05-2019 22:50
Tiempo de lectura estimado: 7 min.

 

Versión en video (3:18 min):

Pseudocódigo

8 - Repetir un cierto número de veces: Para

En muchas ocasiones, no querremos que algo se repita mientras se cumpla una condición, sino un cierto número de veces. Por ejemplo, para escribir "Hola" 3 veces en pantalla existe una orden más cómoda que la orden "mientras" o la orden "repetir... hasta". Es la orden "para", que hace que una variable tome una serie de valores que se van incrementando. Por ejemplo, una estructura como "para x con valores desde 2 hasta 4" haría que un bloque de programa se repitiera 3 veces. En la primera repetición, la variable "x" tendría el valor 2, en la segunda tendría el valor 3 y en la tercera tendría el valor 4. La sintaxis exacta en PSeInt es: " Para variable <- valorInicial Hasta valorFinal Hacer"

Su representación en un diagrama de flujo sería:

Para

Y en el caso de PSeInt, ese icono generaría un esqueleto de programa como éste:

Para, esqueleto

Por ejemplo, un programa que mostrara los números del 1 al 10, podría ser:

Algoritmo Para01
    Para x <- 1 Hasta 10 Hacer
        Escribir x
    FinPara
FinAlgoritmo

Cuyo resultado sería:

Para, resultado

Si no queremos avanzar de uno en uno, sino con un incremento distinto, podemos indicar otro tamaño de "paso":

Algoritmo Para02
    Para x <- 10 Hasta 20 Con Paso 2 Hacer
        Escribir x
    FinPara
FinAlgoritmo

Y obtendríamos:

Para + paso, resultado

Hemos visto casi todas las construcciones que podremos encontrar en los lenguajes de programación convencionales (y, por tanto, al planificarlos usando pseudocódigo). En la próxima entrega veremos alguna otra posibilidad, como el manejo de matrices y las funciones matemáticas, para pasar después a algunos ejemplos completos.

Ejercicio de repaso propuesto 8.1: Crea un programa que escriba los números del 5 al 15, ambos incluidos.

Ejercicio de repaso propuesto 8.2: Crea un programa que escriba los múltiplos del 3, desde el 3 hasta el 30, usando un paso de tamaño 3.

Ejercicio de repaso propuesto 8.3: Crea un programa que escriba los múltiplos del 3, desde el 3 hasta el 30, contando del uno al diez pero mostrando ese contador multiplicado por tres.

Ejercicio de repaso propuesto 8.4: Crea un programa que escriba los números del 20 al 10, descendiendo.

Ejercicio de repaso propuesto 8.5: Crea un programa que escriba la tabla de multiplicar del 5: desde "5 x 0 = 0" hasta "5 x 10 = 50"

Ejercicio de repaso propuesto 8.6: También se puede contar usando una orden "mientras" o una orden "repetir", si usas una variable como contador e incrementas (o disminuyes) su valor en cada pasada de forma manual. Compruébalo creando un programa que escriba los números del 1 al 15 usando "mientras" en vez de "para".

Las estructuras repetitivas ("bucles") se pueden incluir una dentro de otra si fuera necesario. El resultado se conoce como un "bucle anidado". Por ejemplo, si se desea dibujar un rectángulo usando asteriscos, se puede plantear como escribir de forma repetitiva varias filas que, a su vez están formadas cada una por varias columnas, de forma también repetitiva, como muestra este ejemplo:

// Rectángulo formado por asteriscos

Algoritmo Rectangulo

  Escribir Sin Saltar "Introduce el ancho: "
  Leer ancho
  Escribir Sin Saltar "Introduce el alto: "
  Leer alto

  Para fila<-1 Hasta alto Hacer

    Para columna <- 1 Hasta ancho Hacer
      Escribir Sin Saltar "*" 
    FinPara

    Escribir ""  // Avance de línea tras cada fila

  FinPara

FinAlgoritmo 

Ejercicio de repaso propuesto 8.7: A partir del ejemplo que dibuja un rectángulo de asteriscos, crea un que dibuje un cuadrado (deberá pedir sólo un dato, el lado, y ambas órdenes "para" deberán tener ese valor como límite).

Ejercicio de repaso propuesto 8.8: Dibuja un triángulo creciente de asteriscos, del tamaño que indique el usuario. Por ejemplo, si escoge 4, el resultado debería ser:

*
**
***
****

162728 visitas desde el 15-04-2019

AnteriorPosterior