Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplos Con While (Usuario y Centinela)
Ejemplos Con While (Usuario y Centinela)
A continuación, unos ejemplos utilizando estructura repetitiva while controlada por el usuario
1. Suponga que usted tiene una tienda y desea registrar las ventas en una computadora. Diseñe un
pseudocódigo que lea por cada cliente, el monto total de su compra. Al final del día escriba la
cantidad total de las ventas y el número de clientes atendidos.
Solución 1:
Explicación: Si observa, se ha hecho uso de contador y acumulador, debido a que nos están pidiendo la
cantidad total vendida (uso de acumulador) y el total de clientes atendidos (uso de contador).
Los contadores y acumuladores deben inicializarse con cero, en el caso de los contadores deben ser int y
los acumuladores, dependerá de las variables que deba ir sumando.
La estructura utilizada es while y el método para controlar el lazo es por respuesta del usuario, debido a
que no podríamos determinar con anticipación cuantos clientes llegaran a la tienda durante el día.
A continuación, otra forma de resolver el problema, en el cual se le da un valor inicial a la variable resp y
de esa manera se evita capturar la respuesta del usuario y en la validación del while, se convierte de una
sola vez a minúscula la respuesta.
Veamos la solución 2:
2. Hacer un programa que pida la estatura (en metros) y sexo (M/F) de un número indeterminado de
personas (mientras el usuario desee). Posteriormente escribirá la estatura media de los varones y la
estatura media de las mujeres.
Explicación: La solución del ejercicio ha sido con estructura while controlada por el usuario y al final
del while se ha hecho una validación, por si se da el caso que no haya datos del sexo masculino o
femenino, porque de ser así daría como resultado un valor indefinido por dividir entre cero.
Salida:
Explicación: Para solucionar este ejercicio ha sido necesario utilizar dos lazos, uno que es el
externo y permitirá controlar el lazo dependiendo de la respuesta del usuario y el otro que es el
interno, será controlado por contador y es el que se encargará de imprimir la tabla de multiplicar
seleccionada.
El lazo interno puede ser resuelto con la estructura while controlada por contador, con un do while
o con un lazo for.
En la primera solución es resuelto con dos lazos while controlado por contador, solamente que
hay que tener cuidado cuando finalice el lazo interno, hay que volver a inicializar el contador con
1, porque de no hacerlo, la segunda vez ya no entrará al lazo porque el contador ha finalizado con
el valor de 11 y al validar (while cont<=10) ya no cumple.
En la segunda solución este problema no se da porque se hace uso de un lazo for y es el quien se
encarga de volver a iniciar en 1 el contador.
Solución 1:
Solución 2:
Salida:
1. Leer una serie de números enteros e ir sumando hasta que se ingrese el número 0, mostrar el
resultado de la suma y la cantidad de números leídos.
Solución:
Explicación: Observe que en el while se establece la condición, en la cual, entrará al lazo siempre y
cuando el numero sea diferente de cero y antes de finalizar el lazo se vuelve a preguntar por otro
número y si en dado caso el número es cero ya no entraría de nuevo al lazo y mostrará los resultados.
Solución:
Explicación: Esta es una de las soluciones, validando en el while que la opción sea diferente de 4, pero
se puede resolver de varias maneras, ustedes piensen que otra solución se le puede dar a este
problema.
También observen que he realizado los procesos de captura e impresión en cada case debido a que
los datos son distintos dependiendo de la opción que se seleccione, por lo tanto, no podría pedirlos
todos de una sola vez, lo mismo con la impresión del resultado, ya que si lo dejo al final del switch, no
funcionaría adecuadamente porque si se selecciona una opción que no existe en el menú, me
aparecerá el mensaje “Opción no existe”, pero de igual manera imprimirá el valor del área del ultimo
dato que se ingresó.
Salida: