UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 16. Instrucción For. Do loop. 16. INSTRUCCION FOR. Do loop La sentencia for se emplea para indicar que una acción será repetidamente ejecutada, mientras se asigna una progresión ordenada de valores a una variable de control. Es una instrucción de repetición, similar al repeat y al while; y suele emplearse cuando se conoce de antemano el número de veces que debe repetirse la acción. Existe en dos formas: a) Progresiva: for v:=a to b do B b) Regresiva: for v:=a downto b do B Donde: v: es la variable de control; debe ser de tipo ordinal, y debe definirse como local. No debe asignarse valores a esta variable dentro de B. a y b: son expresiones de igual tipo que la variable de control. No pueden cambiarse sus valores vía asignaciones, dentro del bloque de repetición. B: es la acción o grupo de acciones que serán repetidas. Es recomendable aplicar esta instrucción en la manipulación de arreglos, que se verán más adelante. También es conveniente restringir su uso a casos simples, sobre todo en las expresiones de las cotas a y b. La forma progresiva es equivalente, semánticamente, a: if a<=b then begin v:=a; B; while v<b do begin v:=succ(v); B Prof. Leopoldo Silva Bijit. 07-07-2003 183 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 16. Instrucción For. Do loop. end end La que muestra que el nivel de abstracción del for es mayor que el del while. Además, la descripción formal define semánticamente la instrucción. Una forma alternativa, más simple es: begin v:=a; while v<=b do begin B; v:=succ(v); end end Para la forma regresiva, se tiene el equivalente: if a>=b then begin v:=a;B; while v>b do begin v:=pred(v); B end end También se tiene, en forma alternativa: begin v:=a; while v>=b do begin B; v:=pred(v); end Prof. Leopoldo Silva Bijit. 07-07-2003 184 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 16. Instrucción For. Do loop. end Prof. Leopoldo Silva Bijit. 07-07-2003 185 UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 16. Instrucción For. Do loop. Ejemplo. Tabla de potencias de 2. Debe indicarse en una línea: 2^i, i, 2^(-i) .... d:=1; f:=1.0; for exp:=1 to n do begin d:=2*d; write(d); write(exp); f:=f/2.0; writeln(f) end .... Se verán suficientes ejemplos de esta instrucción, cuando se desarrollen arreglos. Prof. Leopoldo Silva Bijit. 07-07-2003 186