Usil FP S06
Usil FP S06
Usil FP S06
Sesión 06
Práctica Dirigida.
ESTRUCTURA WHILE
Estructura Repetitiva: While
La sentencia while es otro ciclo o
bucle disponible en C.
Su formato es:
while ( expresion)
sentencia;
Donde sentencia puede ser una
sentencia vacía, una sentencia única No
o un bloque de sentencias que se ¿Expresión?
repetirán.
Cuando el flujo del programa llega a
esta instrucción, primero se revisa si Sí
la condición es verdad para ejecutar
la(s) sentencia(s), y después el ciclo
while se repetirá mientras la
condición sea verdadera.
Cuando llega a ser falsa, el control
del programa pasa a la línea que
sigue al ciclo.
Representación : While
Pseudocódigo
mientras <expresión lógica> hacer
acción
fin_mientras
Ejemplo 1 : While
En el siguiente ejemplo se muestra Antes de entrar al ciclo se inicializa
una rutina de entrada desde el la variable carac igualando a X.
teclado, la cual se repite en forma Después pasa a la sentencia while
ciclica mientras no se pulse la letra donde se comprueba si carac no es
A igual a 'A', como sea verdad
entonces se ejecuta la sentencia del
#include <iostream> ciclo (carac = getchar();).
La función getchar() lee el siguiente
using namespace std; carácter del flujo estándar (teclado)
y lo devuelve, que en nuestro
main() ejemplo es el caracter que haya
sido tecleado.
{ Una vez que se ha pulsado una
char carac; tecla, se asigna a carac
Se comprueba la condición
carac = 'X'; nuevamente.
while ( carac != 'A' ) Después de pulsar A, la condición
llega a ser falsa porque carac es
carac = getchar(); igual a A, con lo que el ciclo
termina.
} Nota: El ciclo while comprueba la
condición al principio del ciclo,
por lo que el código dentro del
ciclo no se ejecuta siempre, sólo
cuando la condición se cumple.
Ejemplo 2 : While
A continuación mostramos Que genera la siguiente
otro ejemplo: salida en pantalla:
x=3
#include <iostream> x=2
using namespace std; x=1
Como se observa, dentro
main() del ciclo tenemos más de
{ una sentencia.
int x; Por lo que se requiere usar
x = 5; la llave abierta y la llave
cerrada { ... }
while ( x>0 ) Para que el grupo de
{ sentencias sean tratadas
cout<<x<<endl; como una unidad.
x--;
}
cout<<endl;
system("PAUSE");
}
Ejemplo 3 : While
Como el ciclo while pueda aceptar Por ejemplo:
también expresiones, y no
solamente condiciones lo siguiente #include <iostream>
es válido: using namespace std;
main()
while ( x-- ); {
while ( x = x + 1 ); char carac;
while ( x += 5 ); carac = 'X';
while ( carac = getchar() != 'A' )
Si se usan este tipo de expresiones, cout<<“Letra "<<carac<<endl;
solamente cuando el resultado de x- system("PAUSE");
-, x=x+1 o x+=5 sea cero, la }
condición fallará y se podrá salir del
ciclo.
En este ejemplo se usan las
funciones de la biblioteca estándar
De acuerdo a lo anterior, podemos getchar(), que lee un caracter del
realizar una operación completa teclado
dentro de la expresión.
Luego se escribe un caracter dado
en pantalla.
El ciclo while procederá a leer del
teclado y lo mostrará hasta que el
caracter A sea leído.
Fundamentos de Programación
ESTRUCTURAS DO WHILE
Estructura Repetitiva: Do …While
Al contrario del ciclo while que
comprueba la condición al inicio del
bucle, el bucle do ... while la examina
en la parte baja del mismo.
No
Si
Pseudocódigo
Hacer
acción
Mientras <expresión lógica>
Ejemplo 4 : Do …While
#include <iostream>
using namespace std;
main()
{
int num;
do {
cin>>num;
} while (num>10);
}
Ejemplo 5 : Do …While
Otro uso común de la estructura #include <iostream>
do ... while es una rutina de using namespace std;
selección en un menú, ya que main()
siempre se requiere que se
ejecute al menos una vez. {
int opc;
cout<<"1. Derivadas"<<endl;
cout<<"2. Limites"<<endl;
cout<<"3. Integrales"<<endl;
do {
cout<<"Selecciona una opcion: ";
cin>>opc;
cout<<endl;
switch(opc)
{ case 1 : cout<< "Opcion 1 seleccionada"<<endl;
break;
case 2 : cout<< "Opcion 2 seleccionada"<<endl;
break;
case 3 : cout<< "Opcion 3 seleccionada"<<endl;
break;
default: cout<<"Opcion no disponible"<<endl;
break;
}
} while( opc!=1 && opc!=2 && opc!=3);
system("PAUSE");
}
Ejemplo 6 : Do …While
Se muestra un ejemplo ya visto, pero ahora utilizando do ...
While.
Escribir la secuencia de 1 a 5.
#include <iostream>
using namespace std;
main()
{
int x;
x = 1;
do {
cout<<x<<endl;
x++;
} while ( x<=5 );
cout<<endl;
system("PAUSE");
}
Seguimiento de un programa en seudo-código 1
Int i, j, pot, suma, n n i j pot suma
Imprimir “Ingrese N”
Leer n
Repetir (i=1; i<=n; i=i+1)
Pot=1
Repetir (j=1; j<=i && !(i%2); j=j+1)
Pot=pot*i
Fin_Repetir
Si (i%2==0)
Suma=suma+pot
Fin_si
Fin_repetir
Ingrese el valor 5.
Cuál es el resultado.
Utilices while
Seguimiento de un programa en seudo-código 2
Int i, j, stop, suma, n n i j pot suma
Imprimir “Ingrese N”
Leer n
Repetir (i=1; i<=n && stop!=0; i=i+1)
Repetir (j=1; j<=i && stop!=0 ; j=j*2)
Si (j==(n/2))
Stop=0
Si_no
suma=suma+i+j*2
Fin_Si
Fin_repetir
Fin_repetir
Imprimir “El resultado es:”, suma
Ingrese el valor 5.
Cuál es el resultado.
Utilice Do…while.
Transformar este diagrama de flujo a seudo-código
Inicio
a seudo-código. un
número
N
Utilice Do - While
V
N<1
“ERRO
F R”
i=1
i<=N V
valor=i*i
F
suma=suma+valor
i=i+1
suma
Fin
Ejercicio
San Agustín