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 WorldwideWalter 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.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Cómo Iniciarse en Hacking y Ciberseguridad en 2024

Curso Gratis Linux – Capitulo 1 – Introducción a Linux

Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios

Como iniciarse en TRY HACK ME – Complete Beginner #1

OSINT #1 Más de 200 Search Tools