jueves, 5 de abril de 2012

 Esta es Mí exposición "RECURSIVIDAD"
http://alejandroperezandestebansolis.blogspot.mx/

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)