lunes, 20 de febrero de 2012

CONCLUSION

QUE VI?


QUE APRENDI?

QUE SENTI?
ACTIVIDAD 6

Construye un programa que acepte números hasta que el usuario introduzca el número 666, para cada número el programa indicara si es múltiplo de 5 y/o de 3.
Actividad 5


¿Cuál será el programa que imprima los números 15,20,25,30, …150 con la proposición WHILE?



cont:=10

While cont<100 do

Begin

  cont:=cont+2;

  writeln(cont)

End;

Readln;

End.



¿Proponga un programa que acepte números e imprima el número, el programa terminara cuando se introduzca el número -999?



Cont:=0;

While cont=-999 do

begin

 Cont:=cont+1;

 Readln(cont);

 Writeln(cont);

End;
Problemas

Problema

En los datos de entrada aparecen una o más calificaciones de estudiantes  en la escala de 0 a 100, seguidos del valor centinela -999. Determinar y mostrar el total de las calificaciones excluyendo, al centinela.





total:=0;

read(Calif);

WHILE Calif<>-999 DO

BEGIN

total:=total+Calif;

read(Calif)

END;

Write(´El total de las calificaciones es´, total:1)



Obsérvese que se asigna a total el valor inicial 0 antes de la proposición WHILE. Dentro del cuerpo del ciclo, la proposición.



total:=total+Calif;



Calcula los totales parciales de las calificaciones







Completa en los espacios con el identificador o el valor adecuado en el programa siguiente para que también muestre el promedio de las calificaciones





total:=___;                                  (*dar valor inicial al total de calificaciones*)

contador:=0;                               (*contar el número de calificaciones*)

read(Calif);                                 (*capturar la primera calificación*)

WHILE Calif<>____ DO          (*probar el centinela*)

______:=contador+1          (*incrementar el contador*)

total:=______+Calif;           (*sumar la nueva calificación*)

read(____)                                 (*capturar la siguiente calificación*)

END;

Write(´El total de las calificaciones es´, total:1´)

(*Calcular la calificación promedio*)

Promedio:=total/contador;

Writeln(´La calificación promedio es´,promedio:6:2)



Es posible incluir expresiones booleanas compuestas en las proposiciones WHILE de Pascal a través de los operadores booleanos:  AND, OR y NOT. Las variables booleanas se pueden emplear para controlar la ejecución  de una proposición WHILE.





Problema

¿Qué sucede si se prueban todos los enteros entre uno y num  no se encuentra un divisor exacto? La variable indic seguirá teniendo el valor false, pero será preciso terminar el ciclo. Es necesario probar también el cumplimiento de esta condición. Por tanto, la expresión booleana que se usará en la proposición WHILE tendrá dos partes: “NOT ind” y “divisor<num”.



Solución

El siguiente segmento en Pascal muestra la solución:



read(num);

indic:=false;                               (*se supone que todavía no hay divisor exacto*)

divisor:=2;                                   (*se inicia la prueba de división con 2*)

WHILE NOT THEN indic AND (divisor<num) DO

BEGIN

      indic:=num MOD divisor=0;

      divisor:=divisor+1

END;

write(‘El numero’, num:1,’ ‘);

IF indic

THEN writeln(‘Tiene divisor exacto’)

ELSE writeln(‘no tiene divisor exacto’)





La proposición de asignación

indic:=num MOD divisor=0




Actividad 3
ejemplos

Sea la siguiente proposición en Pascal. ¿Qué  se exhibirá y cuántas veces se ejecutará el cuerpo del ciclo?



J:=0;

WHILE j<5 DO

BEGIN

     write(j);

     j:=j+1

END





Ejemplo

¿Qué sucedería si se cambiará el orden de las dos instrucciones del cuerpo del ciclo?



j:=0;

WHILE j<5 DO

BEGIN

      j:=j+1;

     write(j)

END




Actividad 2
Construye la idea
ejemplo 1

Contador:=0;

read(num);

WHILE num>0 DO

BEGIN

   contador:=contador+1;

   read(num)

END;

writeln(‘Número de enteros positivos=’,contador);
ejemplo 2

Contador:=0;                                                     (*Inicializar el contador*)

i:=;                                                            (*Inicializara la variable de control del ciclo*)

WHILE i=20 DO                                                (*Continuar hasta que i>20*)

BEGIN

      read(num);                                                   (*capturar el siguiente dato de estrada*)

      IF num>0

      THEN contador: contador+1 contador;

      i:=i+1                                                 (*Incrementar la variable de control de ciclo*)

END;

Writeln (‘El número de enteros positivos es’, contador:1)
Actividad 1

Construye un diagrama de flujo que acepte números hasta que el usuario introduzca el número 666,para cada número el programa indicara si es múltiplo de 5 y/o de 3.



1     Anexo 2: Material de apoyo de estrategia didáctica primer semestre


 







Actividad 1    Dilema, Resolver el siguiente problema.



Construye un diagrama de flujo que acepte números hasta que el usuario introduzca el número 666,para cada número el programa indicara si es múltiplo de 5 y/o de 3.



Actividad 2    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
sumar  1 a contador
Incrementar el contador
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:=;                                                            (*Inicializara la variable de control del ciclo*)

WHILE i=20 DO                                                (*Continuar hasta que i>20*)

BEGIN

      read(num);                                                   (*capturar el siguiente dato de estrada*)

      IF num>0

      THEN contador: contador+1 contador;

      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.





Actividad 3    Indica que se ejecuta en los programas (Sección de ejercicio)





Ejemplo

Sea la siguiente proposición en Pascal. ¿Qué  se exhibirá y cuántas veces se ejecutará el cuerpo del ciclo?



J:=0;

WHILE j<5 DO

BEGIN

     write(j);

     j:=j+1

END





Ejemplo

¿Qué sucedería si se cambiará el orden de las dos instrucciones del cuerpo del ciclo?



j:=0;

WHILE j<5 DO

BEGIN

      j:=j+1;

     write(j)

END









Actividad 4     Construye programa con centinelas y variables booleanas (movilizar sus conocimientos y poner en acción métodos adquiridos)

Centinela: es un valor especial que se emplea para indicar el final de una lista de datos. Ejemplo; sea  una lista de calificaciones de estudiantes (en una escala de 0 a 100). El número de calificaciones no se conoce,  pero la lista termina con el número -999 (este es el centinela).



Problema

En los datos de entrada aparecen una o más calificaciones de estudiantes  en la escala de 0 a 100, seguidos del valor centinela -999. Determinar y mostrar el total de las calificaciones excluyendo, al centinela.





total:=0;

read(Calif);

WHILE Calif<>-999 DO

BEGIN

total:=total+Calif;

read(Calif)

END;

Write(´El total de las calificaciones es´, total:1)



Obsérvese que se asigna a total el valor inicial 0 antes de la proposición WHILE. Dentro del cuerpo del ciclo, la proposición.



total:=total+Calif;



Calcula los totales parciales de las calificaciones







Completa en los espacios con el identificador o el valor adecuado en el programa siguiente para que también muestre el promedio de las calificaciones





total:=___;                                  (*dar valor inicial al total de calificaciones*)

contador:=0;                               (*contar el número de calificaciones*)

read(Calif);                                 (*capturar la primera calificación*)

WHILE Calif<>____ DO          (*probar el centinela*)

______:=contador+1          (*incrementar el contador*)

total:=______+Calif;           (*sumar la nueva calificación*)

read(____)                                 (*capturar la siguiente calificación*)

END;

Write(´El total de las calificaciones es´, total:1´)

(*Calcular la calificación promedio*)

Promedio:=total/contador;

Writeln(´La calificación promedio es´,promedio:6:2)



Es posible incluir expresiones booleanas compuestas en las proposiciones WHILE de Pascal a través de los operadores booleanos:  AND, OR y NOT. Las variables booleanas se pueden emplear para controlar la ejecución  de una proposición WHILE.





Problema

¿Qué sucede si se prueban todos los enteros entre uno y num  no se encuentra un divisor exacto? La variable indic seguirá teniendo el valor false, pero será preciso terminar el ciclo. Es necesario probar también el cumplimiento de esta condición. Por tanto, la expresión booleana que se usará en la proposición WHILE tendrá dos partes: “NOT ind” y “divisor<num”.



Solución

El siguiente segmento en Pascal muestra la solución:



read(num);

indic:=false;                               (*se supone que todavía no hay divisor exacto*)

divisor:=2;                                   (*se inicia la prueba de división con 2*)

WHILE NOT THEN indic AND (divisor<num) DO

BEGIN

      indic:=num MOD divisor=0;

      divisor:=divisor+1

END;

write(‘El numero’, num:1,’ ‘);

IF indic

THEN writeln(‘Tiene divisor exacto’)

ELSE writeln(‘no tiene divisor exacto’)





La proposición de asignación

indic:=num MOD divisor=0





Actividad 5     Resume las ideas esenciales  (Presentar resumen con las ideas esenciales)

Completa cada programa para introducirlo a la computadora. Indica la parte faltante y las modificaciones al programa para cumplir la función indicada.

¿Cuál será el programa que imprima los números 15,20,25,30, …150 con la proposición WHILE?



cont:=10

While cont<100 do

Begin

  cont:=cont+2;

  writeln(cont)

End;

Readln;

End.



¿Proponga un programa que acepte números e imprima el número, el programa terminara cuando se introduzca el número -999?



Cont:=0;

While cont=-999 do

begin

 Cont:=cont+1;

 Readln(cont);

 Writeln(cont);

End;



Actividad 6     Construye programa  (Resolución de situación problema)



Construye un programa que acepte números hasta que el usuario introduzca el número 666, para cada número el programa indicara si es múltiplo de 5 y/o de 3.



Actividad 7     Bitácora COL  (Conclusión)



Realiza una descripción a las siguientes preguntas

¿Qué ví?



















¿Qué aprendí?















¿Qué sentí?

















Actividad 8    Solución de cuestionario de evaluación  (Conclusión)



Para la siguiente clase responder el cuestionario de evaluación de la clase.