Actividad 1 Construye la idea de la proposición WHILE-DO (Presentación de la idea)
Proposición WHILE-DO
Es un ejemplo de estructura de control de
ciclos que tiene la siguiente forma
general:
WHILE expresión-booleana DO
Proposición-1
Proposición-2
La palabra reservada WHILE va
seguida de una expresión booleana y después de a palabra reservada DO. Mientras se cumpla la expresión booleana, se
ejecutará la proposición-1 (o un grupo de proposiciones delimitado por una
pareja BEGIN-END). La proposición WHILE se ejecutará en forma repetida hasta
que al evaluarse la expresión booleana, resulte ser falsa, momento en el cual el control pasará a
la proposición que sigue a la proposición WHILE (proposición-2).
Contador:=0;
read(num);
WHILE
num>0 DO
BEGIN
contador:=contador+1;
read(num)
END;
writeln(‘Número de enteros
positivos=’,contador);
|
Seudocódigo
|
Explicación
|
PASO 1
|
contador:=0
|
Inicializar en cero el
contador
|
PASO 2
|
read(num)
|
Leer el primer número
|
PASO 3
|
WHILE(num>0) DO
|
Probar si num>0. Si es
así, continuar con el paso 4. Si no, seguir con el paso 7
|
PASO 4
|
Contador:=contador+1
|
Incrementar el identificador
contador mas uno
|
PASO 5
|
leer(num)
|
Leer el siguiente número
|
PASO 6
|
volver al Paso 3
|
Para evaluar y probar la
expresión booleana
|
PASO 7
|
exhibir(contador)
|
Exhibir el resultado
|
Es importante comprender que
la proposición read dentro del cuerpo del ciclo es esencial: sin ella el
programa seria un ciclo infinito es decir, el programa nunca podría salir del
ciclo. Así, sin la proposición read, la siguiente proposición WHILE sería un
ciclo infinito (suponiendo que num>0).
WHILE
num> 0 DO
BEGIN
contador:=contador+1
END
En este ciclo el valor de la
expresión booleana jamás cambia. Por tanto el ciclo se ejecutará
indefinidamente. Para el siguiente ejemplo, la proposición WHILE necesita
verificar el número de veces que se ha ejecutado el ciclo. Puede utilizarse a
una variable llamada variable de control de ciclo. El siguiente segmento en
pascal realizaría ese trabajo (suponer que i, contador y num fueron declarados
como enteros).
Contador:=0; (*Inicializar
el contador*)
i:=0; (*Inicializara
la variable de control del ciclo*)
WHILE i<20 DO (*Continuar hasta que
i>20 sea verdadera*)
BEGIN
read(num); (*capturar el
siguiente dato de estrada*)
IF
num>0
THEN
contador:=contador+1;
i:=i+1; (*Incrementar
la variable de control de ciclo*)
END;
Writeln (‘El número de enteros positivos es’,
contador:1)
Se debe asignar un valor
inicial a la variable de control de ciclo i porque la computadora no tiene la
capacidad de determinar el valor de i<=20 sin conocer el valor de i.