Está en la página 1de 32

WHILE

CICLOS

Mtra. Faviola Vega.


Introd. Computación
INSTRUCCIÓN WHILE
En este tema vamos a ver una estructura
repetitiva más primitiva que FOR ya que
no maneja automáticamente el contador
y por lo tanto es más difícil de utilizar,
pero usada correctamente puede ser
bastante más flexible.
FOR se incrementa con el STEP
WHILE requiere un contador

Mtra. Faviola Vega.


Introd. Computación
Una forma más general que el FOR
para realizar interacciones es el WHILE
(mientras), el cual permite repetir una
serie de instrucciones mientras una
determinada expresión lógica sea
verdadera. Su forma general utilizando
pseudocódigo es la siguiente

Mtra. Faviola Vega.


Introd. Computación
Mientras (expresión lógica)
Instrucciones a repetir
mientas la expresión lógica
es verdadera
Fin del Mientras

Mtra. Faviola Vega. Introd.


Computación
ACTIVIDAD EN EL
LABORATORIO
Realiza una presentación en PowerPoint
dónde establezcas los siguientes puntos:
– 1.- Qué es una estructura de control
– 2.- Estructura de control del FOR-NEXT
– 3.- Estructura de Control WHILE
– 4.- Diferencias entre ambas estructuras
– 5.- Similitudes entre ambas estructuras

Mtra. Faviola Vega. Introd.


Computación
Representación gráfica del
While

Mtra. Faviola Vega.


Introd. Computación
EJEMPLO
Diseñar un algoritmo empleando el WHILE para
escribir 5 veces el texto “Hola” y realizarle
prueba de escritorio
INICIO
Hacer i = 1
while (i<=5)
imprime “Hola”
i = i +1
Fin del While
Fin
Mtra. Faviola Vega. Introd.
Computación
Como pudo observarse en el ejemplo
anterior para que el proceso para que el
proceso iterativo llevado a cabo en el
MIENTRAS no sea infinito, dentro de las
instrucciones que se ejecutan en su
interior se debe colocar una instrucción
que modifique el valor de verdad en la
expresión lógica.

Mtra. Faviola Vega. Introd.


Computación
ACTIVIDAD
•Ejemplo: Cuantas veces se escribe el texto
“HOLA” al ejecutar los siguientes
algoritmos:

Mtra. Faviola Vega. Introd.


Computación
De los ejemplos que hemos visto hasta
ahora se puede observar que para
utilizar un WHILE se deben responder
las siguientes preguntas:
•1.- En que valor inician la(s) variable(s)
de control
•2.- Cuál es la condición de terminación?
•3.- Cómo se modifican la(s) variables(s)
de control?

Mtra. Faviola Vega. Introd.


Computación
Actividad convierte el siguiente
Diagrama en algoritmo

Mtra. Faviola Vega. Introd.


Computación
EJEMPLO
Diseñar un algoritmo para escribir los números impares
menores que 100

Inicio
Variables
…..
i=1
While (i<=100)
Imprime i
i = i +2
Fin del Mientras
Fin
Mtra. Faviola Vega. Introd.
Computación
ACTIVIDAD: Realiza la prueba de escritorio con el
siguiente Algoritmo para los números 17, 25, 12, 865,
658, 1, 333 escribe los resultados y escribe su diagrama
Encontrar el valor de P que cumple la siguiente ecuación:
En otras palabras se pide contar cuantos números enteros positivos se
pueden sumar, sin que su suma exceda 1000
Inicio
..
i=0
suma = 0
While suma = 0
i=i+1
suma = suma + i
Fin del While
P = i -1
Imprime P
Fin
Mtra. Faviola Vega. Introd.
Computación
Recordemos el ejemplo de escribir los
números del 1 al 5 con la instrucción
FOR.

FOR n = 1 TO 5
PRINT n
NEXT

Mtra. Faviola Vega. Introd.


Computación
Ahora veremos como se hace lo mismo usando
la instrucción WHILE (Mientras).
n=1
WHILE n <= 5
PRINT n
n=n+1
WEND
Esto lo que hace es ejecutar el bloque de
instrucciones (Lo que hay entre el WHILE y el
WEND) una y otra vez mientras se cumpla la
condición del WHILE. Un poco más difícil que
con el FOR.
Mtra. Faviola Vega. Introd.
Computación
Se puede ver que el funcionamiento es
parecido al del FOR, solo que aquí lo
tenemos que controlar todo nosotros.
Las dos reglas que dijimos sobre los
contadores del FOR ya aquí no tienen
sentido porque de hecho nosotros
vamos a tener que incrementar el
contador haciendo una asignación y
una vez terminado podemos estar
seguro del valor que tiene la variable.
Mtra. Faviola Vega. Introd.
Computación
Una norma que sí conviene respetar
(Aunque no siempre es necesario) es que la
instrucción que incrementa el contador sea
la última del bloque, ya que si está en otro
sitio ejecutaremos unas instrucciones con
un valor y las demás con el otro, con lo que
nos podemos liar. Un error muy típico es
que se nos olvide de poner la instrucción de
incrementar el contador, produciendo un
bucle infinito que hará que nuestro
programa no termine nunca. Si un programa
se bloquea es conveniente revisar esto.
Mtra. Faviola Vega. Introd.
Computación
También puede pasar que no
lleguemos a entrar al MIENTRAS
porque la condición ya sea falsa la
primera vez, por ejemplo:

contador = 120
WHILE contador < 100
PRINT "Esto no se va a llegar a
escribir nunca.”
contador = contador + 1
Mtra. Faviola Vega. Introd.
Computación
ACTIVIDAD
Usando la instrucción mientras hacer un algoritmo
para un programa que imprima la serie 1, 3, 5, 7,9,
realiza su diagrama de Flujo y su prueba de escritorio.
Inicio
Variable
I Integer
Leer i
i =1
While i<=9
  imprime i
 i =i+2
fin mientras
Fin
Mtra. Faviola Vega. Introd.
Computación
ACTIVIDAD

1.- Hacer un algoritmo para un


programa que encuentre el primer
entero que haga que la suma de la
serie 1, 2, 3, 4, 5, 6, 7, 8,9,...; supere
30.

Mtra. Faviola Vega. Introd.


Computación
Inicio
Datos
i Integer
suma Int
leer i, suma
i= 0
suma =0
While suma<=30
i =i+1
suma suma+i
Fin del while
imprimir i
Fin
Mtra. Faviola Vega. Introd.
Computación
CONJETURA DE ULAM: Empiece con
cualquier número entero positivo. Si es
par divídalo entre 2; y si es impar
multiplique por 3 y aumente en 1.
Obténgase enteros positivos repitiendo el
proceso hasta llegar a 1. Ejemplo si
empezamos en 5 la serie sería: 5, 16, 8,
4, 2,

 Realice el algoritmo para un programa


que nos permita obtener secuencias de
números como las anteriores.

Mtra. Faviola Vega. Introd.


Computación
Inicio
variables
i int
num int
leer num
mientras num>1 hacer
  If num modulo 2 = 0 entonces num=num/2
 de lo contrario
num=num*3+1
 imprimir num
fin mientras
Fin
•El MODULO TOMA EL RESIDUO recuerda 5/2=2 y queda 1 EL RESIDUO ES EL QUE TOMA

Mtra. Faviola Vega. Introd.


Computación
ACTIVIDAD

•Hacer el algoritmo para un programa


que calcule la suma de ciertos números
ingresados por el teclado. El cálculo de
la suma se hará en cualquier momento.

Mtra. Faviola Vega. Introd.


Computación
Inicio
Variables
suma int
num int
Suma 0
While num <> 0
  Leer num
  Suma =suma+num
Wend
Imprimir suma
Fin
Mtra. Faviola Vega. Introd.
Computación
ACTIVIDAD
Escribir un algoritmo para un programa que
imprima la siguiente tabla de temperaturas
Fahrenheit y Celsius. Sugerencia  
°F  °C
32  0
34  1,1111
36  2,2222
...  ...
100  37,778

Mtra. Faviola Vega. Introd.


Computación
Inicio
variables
fareng int
cel int
fareng 30
While fareng<=100
  Cel=(fareng-32)*5/9
 fareng=fare+2
imprimir fareng, cel
Fin mientras
Fin
Mtra. Faviola Vega. Introd.
Computación
ACTIVIDAD
Escriba el algoritmo para un programa
que cuente el número de cifras de un
entero de entrada hasta 32000. Así
para una entrada de 583 la salida debe
ser "3 cifras", asegúrese que el
programa funcione para 1 y 10. Para
cero la salida debe ser "UNA CIFRA".
El programa no debe cerrarse hasta
ingresar el número 0.
Mtra. Faviola Vega. Introd.
Computación
Inicio
Variables
x int
Dame Numero; x
Leer x
While x<32000 y x<>0 hacer
 iF x>=0 y x<10 entonces imprimir x, "TIENE 1 CIFRA" Fin si
If x>9 y x<100 entonces imprimir x, "TIENE 2 CIFRAS" Fin si
IF x>99 y x<1000 entonces imprimir x,  "TIENE 3 CIFRAS"
Fin
 IF x>999 y x< 10000 entonces imprimir x, "TIENE 4
CIFRAS" Fin si
 IF x>9999 y x<=32000 entonces imprimir "TIENE 5 CIFRAS"
Fin si
Fin mientras
Fin

Mtra. Faviola Vega. Introd.


Computación
ACTIVIDAD
Escriba el algoritmo para un programa
en el que se pida al usuario ingresar 10
números enteros impares para
sumarlos. Elabore el programa de
manera que no se arruine si el usuario
escribe algunos enteros pares. El
programa debe salir del ciclo e imprimir
la suma sólo cuando se hayan
ingresado los 10 enteros impares.
Mtra. Faviola Vega. Introd.
Computación
Inicio
x int
suma int
c int
while e(c<10)
 Leer x
 si x modulo 2 <>0 entonces
  suma suma+x
          c c+1
 fin si
Fin mientras
imprimir suma
Fin
Mtra. Faviola Vega. Introd.
Computación
Fuente:
•http://www.mailxmail.com/curso-
algoritmos-lenguaje-c/bucles-while-1

Mtra. Faviola Vega. Introd.


Computación

También podría gustarte