CONCLUSION
QUE VI?
QUE APRENDI?
QUE SENTI?
lunes, 20 de febrero de 2012
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
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
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)
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.
Suscribirse a:
Entradas (Atom)