Bienvenidos a este nuevo capítulo de este Curso Gratis de Programación #13 Estructuras Algorítmicas: While (Mientras)
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
Estructura mientras:
Se ejecuta un conjunto de sentencias mientras el resultado de una expresión (condición) sea verdadera. se evalúa primero la condición y si esta es verdadera, entonces se ejecutan las sentencias definidas en el bucle.
Al finalizar la iteración, se vuelve a evaluar la condición para volver a ejecutar una nueva iteración hasta que la condición dé como resultado un valor falso. El bucle se repite mientras la expresión P sea cierta (verdadera), si al llegar por primera vez al bucle mientras la condición es falsa, el cuerpo del bucle no se ejecuta ninguna vez. El diagrama de flujo de esta estructura se muestra en la figura.
Tener presente que primero se evalúa la expresión P, si esta es verdadera, entonces se ejecutan el conjunto de sentencias asociadas al mientras, la ejecución del bucle se repite siempre que la expresión de cómo resultado booleano: verdadero.
Con cada nueva iteración, la expresión vuelve a evaluarse. Es importante tener claro que si se desea que la iteración acabe en la expresión asociada al mientras debe haber alguna variable que cambie dentro del bucle, de lo contrario se corre el riesgo de generar estructuras repetitivas que no acaban nunca. A esto se le llama bucle infinito.
A veces se desea generar bucles infinitos, por algún requerimiento del problema. Dentro del Rombo se usa una condición. El bucle no tiene ramas (aunque en la representación pueda parecerlo), se produce una entrada de bucle o una salida. Se representa de la siguiente forma:
Ciclos con un Numero Indeterminado de Iteraciones( Hacer-Mientras, Repetir-Hasta) Son aquellos en que el número de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa.
Hacer-Mientras:
Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso. En pseudocódigo la estructura mientras tiene la siguiente forma:
mientras <condición> hacer
sentencia I
sentencia 2
sentencia n
fin-mientras
Tener presente que primero se evalúa la expresión P, si esta es verdadera, entonces se ejecutan el conjunto de sentencias asociadas al mientras, la ejecución del bucle se repite siempre que la expresión de cómo resultado booleano: verdadero. Con cada nueva iteración, la expresión vuelve a evaluarse.
Es importante tener claro que si se desea que la iteración acabe en la expresión asociada al mientras debe haber alguna variable que cambie dentro del bucle, de lo contrario se corre el riesgo de generar estructuras repetitivas que no acaban nunca. A esto se le llama bucle infinito. A veces se desea generar bucles infinitos, por algún requerimiento del problema.
Debemos también repetir las mismas operaciones, una cantidad controlada de veces, y cuando se cumple una condición terminar con esta repetición. Es decir hay una cláusula de escape de esa repetición.
Si no hubiera ninguna condición de escape o la misma estuviera mal condicionada podría provocar un loop infinito con errores no esperados. Lo que veremos en este ítem es justamente el concepto de repetición o loop, la condición de escape de la misma, los puntos que debemos tener en cuenta y las palabras que conforman a las instrucciones que podemos usar en nuestros algoritmos.
EJEMPLO 1
Para ver este tipo de estructura pensemos en el siguiente problema Nos piden calcular el valor de la suma 1+2+3+4+……+100. Por lo visto hasta ahora, podemos entender que:
Utilizaremos un CONTADOR, de los números desde el 1 al 100. Y también un acumulador Suma para almacenar las sumas parciales:
1, 1+2, 1+2+3, etc.
La representación por Diagrama:
La representación en pseudocódigo sería:
Algoritmo: Contarcien
Var
Contador: entero
Suma: entero
Inicio
Contador = 1.
Suma = 0.
Mientras (contador sea menor al número 100) Hacer
Suma = Contador + Suma
Contador = Contador + 1.
Fin mientras.
Mostrar(Suma)
Fin
1. Definimos dos campos, SUMA y CONTADOR como enteros.
2. Luego los “INICIALIZAMOS”, esto significa, que al comienzo del proceso nos aseguramos los valores que ambos tienen.
3. Le asignamos un 1 al campo CONTADOR
4. Le asignamos un 0 al campo SUMA.
5. Luego, te presento una de las estructuras repetitivas que más uso le daremos, empieza con la palabra MIENTRAS y en negritas indico las palabras a utilizar.
El proceso ejecutará las operaciones que están entre la cláusula MIENTRAS….HACER y la cláusula FINMIENTRAS. La repetirá tantas veces, hasta que la condición de escape se cumpla. Al momento que esto ocurra, el proceso se dirigirá a la instrucción que este inmediatamente después de la cláusula FIN MIENTRAS. En el caso del ejercicio hasta que contador llegue a 100. Es muy importante que, en este tipo de cláusulas, donde se basa en un valor que es parte del propio proceso repetitivo, que el contador que realice esta operación este indicado y sea el mismo que nos referimos en la cláusula de escape
La condición de un bucle siempre va a ser una condición lógica que se reducirá a un valor lógico como Verdadero o Falso, de modo que si la condición resulta ser verdadera el bucle repite hasta que la condición resulte ser falsa, entonces el bucle se rompe y se vuelve al flujo normal del programa.
Ejemplo 2:
Si empleáramos este ciclo para determinar de un conjunto de personas, cuántos son mayores de edad, cuántos no lo son, y establecer un promedio de edades, utilizaremos una variable que controlará el ciclo para determinar si se continúa con la carga de individuos o se detiene la misma. Observa cómo quedaría desarrollado el algoritmo; sólo representaremos la zona de INICIO.
Inicio
Continua=”S”
MIENTRAS (Continua=”S”) hacer
INGRESAR (“Ingresar Edad “, EDAD)
SI (EDAD >= 21) ENTONCES
Mayores = Mayores + 1
SINO
Menores = Menores + 1
FIN SI
Suma = Suma + EDAD
INGRESAR (“Continua S/N:”, Continua)
FINMIENTRAS
Promedio=Suma/(Mayores+Menores)
MOSTRAR (“La Cantidad de Personas Mayores de edad es “, Mayores)
MOSTRAR (“La Cantidad de Personas Menores de edad es “, Menores)
MOSTRAR (“El Promedio de edades es “, Promedio) FIN
FIN
Ejemplo 3:
En una estructura mientras, lo primero que se ejecuta es la evaluación de la condición y si esta es falsa la primera vez que se ingresa a esta estructura, las sentencias asociadas al bucle nunca se ejecutarán.
Dato <- 5
Dato2 <- 1
mientras dat02 > dato1 hacer
leer(t)
mostrar(t)
dat02 z- dat02 + 1
fin-mientras
Las sentencias definidas en el bucle de la estructura mientras nunca se ejecutarán, ya que se ejecutan si dato2 es mayor que dato1, pero en este caso dato1 contiene el entero 5 y dato2 contiene el entero 1, por lo tanto, dato2 no es mayor que dato1.
Bucle infinito:
es un bucle de una estructura repetitiva que nunca deja de ejecutarse.
Dato1 <- 5
dato2 <- 1
mientras dato1 > dato2 hacer
leer(t)
mostrar(t)
fin-mientras
Ejemplo 4:
Ingresar dos números enteros positivos (X y N) y se muestre por pantalla la N-ésima potencia de X.
algoritmo potencia_mientras
var
entero: X, N, potencia
inicio
mostrar("lngrese dos números positivos")
leer(X,N)
potencia <- 1
si (X > 0) y (N > O) entonces
mostrar("Potencia de base ", X, "y exponente", N)
mientras N > 0 hacer
potencia <- potencia * X
fin-mientras
mostrar("La potencia es: ", potencia)
si-no
mostrar("Debe ingresar números positivos! ")
fin-si
fin
Ejemplo 5:
Ingresar dos números enteros positivos y se muestre por pantalla el producto de ambos aplicando el algoritmo de sumas sucesivas.
algoritmo producto _ mientras
var
entero: A, B, suma
inicio
mostrar("lngrese dos números enteros positivos")
leer(A,B)
suma <- 0
si (A > O) y (B > O) entonces
mientras B <> 0 hacer
suma <- suma + A
B <- <-1
fin-mientras
mostrar("El producto es: ", suma)
si-no
mostrar("Debe ingresar números positivos!")
fin-si
fin
Ejemplo 6:
Ingresar caracteres por teclado y mostrarlos por pantalla. El programa debe finalizar cuando el usuario ingresa la primera letra vocal.
algoritmo mostrar _ caracter
var
logico: bandera
caracter: dato
inicio
bandera <- verdadero
mientras bandera hacer
leer(dato)
segun-sea dato hacer
'a': bandera <- falso
'A': bandera <- falso
'e': bandera <- falso
'E': bandera <- falso
'i': bandera <- falso
'l': bandera <- falso
'o': bandera <- falso
'O': bandera <- falso
'u': bandera <- falso
'U': bandera <- falso
fin-segun
si bandera = verdadero entonces
mostrar("Carácter ingresado: ' dato)
fin-si
fin-mientras
fin
Ejemplo 7:
Ingresar tres números por teclado que representan las dimensiones de los lados de un triángulo, y que muestre por pantalla si el triángulo es equilátero, isósceles o escaleno.
El algoritmo debe finalizar cuando el usuario ingresa la palabra salir.
algoritmo clasificacion_triangulo
var
entero: lado1, lado2, lado3
cadena: clave
inicio
clave <-""
mientras no (clave = "salir") hacer
mostrar("lngrese los lados de un triángulo")
leer(lado1, lado2, lado3 )
mostrar("Clasificación del triángulo: ")
si (lado1 = lado2) y (lado2 = lado3) entonces
mostrar("Equilátero")
si-no
Si (lado1 <> lado2) y (lado2 <> lado3) y (lado1 <> lado3) entonces
mostrar("Escaleno ")
si-no
mostrar("lsósceles")
fin-si
fin-si
mostrar("Para finalizar ingrese la palabra salir en minúscula
fin -mientras
fin
Ejemplo 8:
Ingresar un número entero positivo por teclado y que muestre por pantalla su factorial. Fórmula del factorial de N: N! = N * (N-1) * (N-2) * … * 2 * 1
algoritmo factorial _ repetir
var
entero: num, factorial, contador
cadena: clave
inicio
mostrar("lngrese un número entero positivo para calcular su factorial")
leer(num)
si num = 0 o num = 1 entonces
factorial <- 1
si-no
factorial <-num
contador <- num -1
repetir
factorial <- factorial * contador
contador <- contador - 1
hasta-que contador <=1
fin-si
mostrar("Elfactorial de ", num, " es factorial)
fin
ESTRUCTURAS REPETITIVAS ANIDADAS
De igual forma que se puede anidar o encajar estructuras de selección, es posible insertar un bloque dentro de otro. Las reglas para construir estructuras repetitivas anidadas son iguales en ambos casos: la estructura interna debe estar totalmente incluida dentro de la externa y no puede bajo ningún aspecto existir solapamiento.
En la figura se muestran bucles correctamente anidados
Mientras que en esta figura se muestran anidamientos incorrectos.
No te detengas, sigue avanzando
Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera!
Python Practicando. Desde 0 hasta Desarrollador en Python
Aprende Python, donde iniciamos desde 0, sin conocimientos previos hasta desarrollar aplicaciones con mucha practica!
Calificación: 4,6 de 5 (20.833 calificaciones) 249.493 estudiantes Creado por Alvaro Chirou • 1.800.000+ Enrollments Worldwide, Walter Coto || +450,000 Estudiantes Español.
Lo que aprenderás
- Ejercitar la lógica de programación
- Comprender cómo la vida cotidiana puede ser fácilitada o simulada con código
- Aprender programación desde cero
- Usar Visual Studio Code como Editor de Código
- Conocer y aprender el lenguaje de programación Python
- Ser un programador desde cero, sin conocimiento en otro lenguaje o con algo previo
- Mejorar las habilidades de programación, mejorar procesos y fácilitar la comprensión de código
- Preparar un entorno dónde programar en Python
- Operaciones aritméticas y jerarquía de Python
- Manejo de cadenas en Python
- Digitar datos por teclado con Python
- Mostrar Datos por Pantalla al usuario en Python
- Operadores Relacionales de Python
- Operadores Lógicos de Python
- Condicionales en Python
- Estructuras de Datos: Listas, Tuplas y Diccionarios
- Iteraciones y bucles repetitivos de Python
- Segmentar Código y hacerlo más eficaz con las Funciones en Python
- Gestionar posibles errores que puedan dar tus programas
- Programación Orientada a Objetos
- HTML y CSS
- Selenium Web Driver con Python
- Ejercitar todo lo Aprendido con Ejercicios
Este curso incluye:
- 25,5 horas de vídeo bajo demanda
- 21 artículos
- 148 recursos descargables
- Acceso en dispositivos móviles y TV
- Certificado de finalización
Python es Hoy uno de los lenguajes más utilizados por Excelencia.
Esto se debe por su simpleza al momento de Desarrollar aplicaciones.
Por su capacidad de procesamiento a altas velocidades con grandes volúmenes de información.
Es un increíble lenguaje con el cual si no sabes programar, podrás aprender.
Y si ya sabes desarrollar, te aconsejo aprenderlo ya que en el mercado cada vez se solicitan más desarrolladores en Python.
Aspirar al trabajo que desean, o mejorar sus ingresos con un aumento de salario.
Python se utiliza para muchisimas cosas como:
- Machine Learning
- Data Science
- Inteligencia Artificial.
- Y mucho más!
En este curso te acompañare en el proceso por el cual aprenderás las bases del lenguaje, para luego determinar qué camino quieres seguir.
Te invito que me acompañes a conocer este Gran Lenguaje!
Aprende con nuestros más de 100 cursos que tenemos disponibles para vos
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
Sobre los autores
Álvaro Chirou
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes serguirme en mis redes:
Laprovittera Carlos
Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:
¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.