DMarlon Studio

Lección 10 · 10 de 20

Bucles for con to y downto · Pascal

Cuente con for en Pascal: to para subir, downto para bajar, sumas, contadores de tipo Char y bucles anidados para los asientos de un cine.

Pascal · Bucles for con to y downto en DMarlon Studio: el código del ejemplo y su salida en la terminal

`for i := 1 to 5 do` repite la orden con i valiendo 1, 2, 3, 4 y 5: la tabla del 7. El contador sube de uno en uno él solo; de hecho, el compilador no deja cambiarlo dentro del bucle.

`downto` cuenta hacia atrás: 3 downto 1 hace la cuenta atrás. Write deja los números en la misma línea y el WriteLn final la cierra con el despegue.

Un for se combina con un if: de 1 a 99 solo se suman los números con i mod 2 = 1, los impares, y el resultado es 2500. Si con to el inicio es mayor que el final, el bucle no se ejecuta ninguna vez.

El contador puede ser de cualquier tipo ordinal, también Char: for c := 'A' to 'E' recorre esas letras. Y dentro de un for puede ir otro: por cada fila i, el bucle interior escribe sus cinco asientos, y entre los dos dibujan la sala.

Código · main.pas

program main;var  i, total: Integer;  c: Char;begin  // for ... to counts up, one at a time.  for i := 1 to 5 do    WriteLn('7 x ', i, ' = ', 7 * i);  // downto counts down.  for i := 3 downto 1 do    Write(i, '... ');  WriteLn('Lift-off!');  // Add up the odd numbers from 1 to 99.  total := 0;  for i := 1 to 99 do    if i mod 2 = 1 then      total := total + i;  WriteLn('Odd numbers up to 99 add up to ', total);  // The counter can also be a Char: a grid of cinema seats.  for i := 1 to 3 do  begin    Write('Row ', i, ':');    for c := 'A' to 'E' do      Write(' ', i, c);    WriteLn;  end;end.

Salida · fpc main.pas && ./main

7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
3... 2... 1... Lift-off!
Odd numbers up to 99 add up to 2500
Row 1: 1A 1B 1C 1D 1E
Row 2: 2A 2B 2C 2D 2E
Row 3: 3A 3B 3C 3D 3E

Para recordar

  • for i := a to b do cuenta de a a b.
  • downto cuenta hacia atrás.
  • El contador no se cambia dentro del bucle.
  • El contador puede ser un entero, un Char u otro tipo ordinal.

Ejercicio

Escriba la tabla de multiplicar completa del 1 al 9 con dos for anidados, alineando los resultados con :4.