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.

`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 docuenta deaab.downtocuenta hacia atrás.- El contador no se cambia dentro del bucle.
- El contador puede ser un entero, un
Charu otro tipo ordinal.
Ejercicio
Escriba la tabla de multiplicar completa del 1 al 9 con dos for anidados, alineando los resultados con :4.