Ejercicios con estructura repetitiva Mientras – parte 2

Esta publicación es la continuación de la parte 1: https://algoritmosyalgomas.com/algoritmos-estructura-repetitiva-mientras/

Ejercicio 11

Elabora un algoritmo que imprima el mayor y el menor de una serie de cinco números que vamos introduciendo por teclado.

Pseudocódigo

				
					Proceso Ejercicio11
	Definir i, numero, minimo, maximo como Entero
	
	i <- 1
	Mientras i <= 5 Hacer
		Escribir "Ingrese número Nº: ", i
		Leer numero
		Si i = 1 Entonces
			minimo <- numero
			maximo <- numero
		Sino
			Si numero > maximo Entonces
				maximo = numero
			FinSi
				
			Si numero < minimo Entonces
				minimo <- numero
			FinSi
		FinSi
		i <- i + 1
	FinMientras
	Escribir "Mínimo: ", minimo
	Escribir "Máximo: ", maximo
FinProceso
				
			

Ejercicio 12

Introducir dos números por teclado. Imprimir los numeros naturales que hay entre ambos números empezando por el más pequeño, contar cuantos hay y cuantos de ellos son pares. Calcular la suma de los impares.

Pseudocódigo

				
					Proceso Ejercicio12
	Definir i, numeroInicial, numeroFinal, contador, contadorPares, sumaImpares como Entero
	numeroInicial <- 0
	numeroFinal <- 0
	
	Mientras numeroInicial <= 0 Hacer
		Escribir "Ingrese el número inicial: "
		Leer numeroInicial
	FinMientras
	
	Mientras numeroFinal <= 0 Hacer
		Escribir "Ingrese el número final: "
		Leer numeroFinal
	FinMientras	
	
	i <- numeroInicial
	contador <- 0
	contadorPares <- 0
	sumaImpares <- 0
	Mientras i <= numeroFinal Hacer
		Escribir i
		contador <- contador + 1
		
		Si i mod 2 = 0 Entonces
			contadorPares <- contadorPares  + 1
		SiNo
			sumaImpares <- sumaImpares + i
		FinSi
		
		i <- i + 1
	FinMientras
	
	Escribir "Cantidad de números entre ", numeroInicial, " y ", numeroFinal, " es: ", contador
	Escribir "Cantidad de números pares entre ", numeroInicial, " y ", numeroFinal, " es: ", contadorPares
	Escribir "Suma de impares entre ", numeroInicial, " y ", numeroFinal, " es: ", sumaImpares
FinProceso
				
			

Ejercicio 13

Elabora un algoritmo que permita leer dos números positivos. Debe validar que el segundo número debe ser mayor que el primero. Luego se deben imprimir todos los números pares que se encuentran entre ambos números (en caso que sean pares). Además debe imprimir la cantidad de números múltiplos de 5 entre ambos números.

Pseudocódigo

				
					Proceso Ejercicio13
	Definir numero1, numero2 como Entero
	Definir contador, contMultiplos5 como Entero
	Repetir
		Escribir "Ingresa el primer número: "
		Leer numero1 
	Hasta Que numero1 > 0
	
	Repetir
			Escribir "Ingresa el segundo número: "
			Leer numero2		
	Hasta Que (numero2 > numero1)
	
	contador <- numero1
	Mientras contador <= numero2 Hacer
		Si (contador % 2) = 0 Entonces
			Escribir contador
		FinSi
		contador <- contador + 1
		
		Si contador % 5 = 0 Entonces
			contMultiplos5 <- contMultiplos5 + 1
		FinSi
	Fin Mientras
	
	Escribir "La cantidad de números múltiplos de 5 son: ", contMultiplos5
FinProceso
				
			

Diagrama de flujo

Explicación del pseudocódigo

Las líneas 2-3 declaran las variables que se van a usar en el proceso: “numero1“, “numero2“, “contador” y “contMultiplos5“. Los primeros dos son los números que el usuario ingresará, el “contador” se utiliza para iterar a través de los números entre “numero1” y “numero2“, y “contMultiplos5” se utiliza para contar la cantidad de números múltiplos de 5 entre los dos números.

Las líneas 4-7 utilizan una estructura de repetición “Hasta Que” para asegurarse de que “numero1” sea un número positivo. En otras palabras, el programa seguirá pidiendo al usuario que ingrese “numero1” hasta que este valor sea mayor que cero.

Las líneas 9-12 utilizan una estructura de repetición similar para asegurarse de que “numero2” sea mayor que “numero1”. En otras palabras, el programa seguirá pidiendo al usuario que ingrese “numero2” hasta que este valor sea mayor que “numero1”.

La línea 14 inicializa “contador” con el valor de “numero1”.

Las líneas 15-24 utilizan una estructura de repetición “Mientras” para iterar a través de todos los números entre “numero1” y “numero2”. Si el “contador” actual es un número par, entonces se imprime ese número en la línea 17. Además, si el “contador” actual es un múltiplo de 5, se incrementa el valor de “contMultiplos5” en la línea 22.

La línea 26 imprime la cantidad total de números múltiplos de 5 encontrados entre “numero1” y “numero2”.

Ejercicio 14

Elabora un algoritmo que permita leer dos números positivos. Debe validar que el segundo número debe ser mayor que el primero. Luego se deben imprimir todos los números primos que se encuentren entre ambos números.

Pseudocódigo

				
					Proceso Ejercicio14
	Definir numero1, numero2 como Entero
	Definir contador, contadorDivisores como Entero
	Repetir
		Escribir "Ingresa el primer número: "
		Leer numero1 
	Hasta Que numero1 > 0
	
	Repetir
		Escribir "Ingresa el segundo número: "
		Leer numero2		
	Hasta Que (numero2 > numero1)
	
	contador <- numero1
	Mientras contador <= numero2 Hacer
		contadorDivisores <- 0
		Para i <- 1 Hasta contador Con Paso 1
			Si contador % i = 0 Entonces
				contadorDivisores <- contadorDivisores + 1
			FinSi
		FinPara
		
		Si contadorDivisores = 2 Entonces
			Escribir contador
		FinSi
		
		contador <- contador + 1
	Fin Mientras
FinProceso
				
			

Diagrama de flujo

Explicación del pseudocódigo

Las líneas del 2 al 3 definen dos variables de tipo entero llamadas numero1 y numero2, así como también dos contadores de tipo entero llamados contador y contadorDivisores.

Las líneas del 4 al 7 son un ciclo repetir-hasta-que que le pide al usuario ingresar un número entero positivo para el valor de numero1, y se repite hasta que se cumple la condición numero1 > 0.

Las líneas del 9 al 12 son un ciclo repetir-hasta-que similar al anterior, pero esta vez le pide al usuario ingresar un valor para numero2, que debe ser mayor que numero1.

La línea 14 inicializa la variable contador con el valor de numero1.

Las líneas del 15 al 28 describen una estructura repetitiva mientras que se ejecutará mientras contador sea menor o igual a numero2. En cada iteración, se inicializa el contadorDivisores con cero. Luego, se utiliza un ciclo para con variable i que va desde 1 hasta el valor de contador, verificando si el valor de contador es divisible por i (si el resto de la división es cero). Si es así, se incrementa el contadorDivisores. Después de finalizar el ciclo, si contadorDivisores es igual a 2, significa que el contador es primo, y se imprime su valor. Por último, se incrementa el contador en 1.

Ejercicio 15

Diseñe un algoritmo que permita ingresar un número entero positivo. Luego, indicar la cantidad de cifras que tiene dicho número.

Pseudocódigo

				
					
Proceso Ejercicio15
	Definir numero, contador como Entero
	Repetir
		Escribir "Ingresa el número: "
		Leer numero
	Hasta Que numero > 0
	
	contador <- 0
	Mientras numero <> 0 Hacer
		numero <- trunc(numero / 10)
		contador <- contador + 1
	FinMientras
	
	Escribir "La cantidad de dígitos que tiene el número es: ", contador
FinProceso
				
			

Diagrama de flujo

Explicación del pseudocódigo

Este pseudocódigo corresponde al algoritmo para contar la cantidad de dígitos que tiene un número entero positivo.

Se inicia definiendo las variables “numero” y “contador” como enteros en la línea 2.

Se utiliza un bucle repetir-hasta-que en las líneas 3 a 6 para que el usuario ingrese un número positivo. Si el número ingresado es menor o igual a cero, el bucle se seguirá repitiendo hasta que se ingrese un número positivo.

Luego, se inicializa la variable “contador” en cero en la línea 8.

Se utiliza una estructura repetitiva mientras en las líneas 9 a 12 para contar la cantidad de dígitos del número ingresado. El bucle se repetirá mientras “numero” sea diferente de cero. Dentro del bucle, se divide el número entre 10 y se trunca su valor en la línea 10 para obtener el cociente sin el último dígito del número original. Luego, se incrementa el valor de “contador” en 1 en la línea 11.

Una vez que el bucle ha finalizado, en la línea 14 se muestra el resultado de la cantidad de dígitos que tiene el número ingresado.

Ejercicio 16

Diseñe un algoritmo que permita ingresar un número entero positivo. Luego mostrar el número invertido y la cantidad de dígitos del número ingresado.

Pseudocódigo

				
					Proceso Ejercicio16
	Definir numero, contador, digito, invertido como Entero
	Repetir
		Escribir "Ingresa el número: "
		Leer numero
	Hasta Que numero > 0
	
	contador <- 0
	invertido <- 0
	Mientras numero <> 0 Hacer
		digito <- numero % 10
		invertido <- invertido * 10 + digito
		numero <- trunc(numero / 10)
		contador <- contador + 1
	FinMientras
	
	Escribir "La cantidad de dígitos que tiene el número es: ", contador
	Escribir "El número invertido es: ", invertido
FinProceso
				
			

Diagrama de flujo

Explicación del pseudocódigo

Línea 2: Se declaran las variables que se utilizarán. Las variables numero y contador se utilizan para almacenar el número ingresado y la cantidad de dígitos de dicho número, respectivamente. Las variables digito e invertido se utilizan para invertir el número ingresado.

Líneas 3-6: Se solicita al usuario ingresar un número y se valida que el número ingresado sea positivo.

Líneas 10-15: Se utiliza una estructura repetitiva Mientras para obtener la cantidad de dígitos del número ingresado y su inverso. La variable contador se inicializa en 0 y se utiliza para contar la cantidad de dígitos del número ingresado. La variable invertido se inicializa en 0 y se utiliza para almacenar el número invertido. En cada iteración del bucle, se obtiene el último dígito del número ingresado (utilizando la operación módulo %), se lo agrega al número invertido (multiplicando por 10 y sumando el dígito obtenido) y se elimina el último dígito del número ingresado (dividiendo por 10). Además, se incrementa en 1 la variable contador en cada iteración.

Líneas 17-18: Se muestra por pantalla la cantidad de dígitos del número ingresado y su inverso.

Ejercicio 17

Diseñe un algoritmo que permita ingresar una cantidad incierta de números enteros positivo. Para cada número ingresado mostrar su número invertido y su número de cifras.

Pseudocódigo

				
					Proceso Ejercicio17
	Definir numero, contador, digito, invertido como Entero
	Definir respuesta como Caracter
	
	Repetir
		Repetir
			Escribir "Ingresa el número: "
			Leer numero
		Hasta Que numero > 0
		
		contador <- 0
		invertido <- 0
		Mientras numero <> 0 Hacer
			digito <- numero % 10
			invertido <- invertido * 10 + digito
			numero <- trunc(numero / 10)
			contador <- contador + 1
		FinMientras
		
		Escribir "La cantidad de dígitos que tiene el número es: ", contador
		Escribir "El número invertido es: ", invertido
		
		Repetir
			Escribir "Desea seguir ingresando números? (S/N)"
			Leer respuesta
		Hasta Que respuesta = 'S' o respuesta = 'N'
	Hasta Que respuesta = 'N'
FinProceso
				
			

Diagrama de flujo

Explicación del pseudocódigo

Líneas 2-3: Definición de variables. En esta sección se definen las variables “numero”, “contador”, “digito” e “invertido” como enteros y “respuesta” como carácter.

Líneas 5-27: Bucle principal. Este bucle se repetirá hasta que el usuario decida no ingresar más números (respuesta = ‘N’). Dentro de este bucle, se solicita al usuario que ingrese un número hasta que este sea mayor que cero. Luego, se inicializan las variables “contador” e “invertido” en cero. A continuación, se utiliza un bucle mientras para determinar la cantidad de dígitos del número ingresado y su inverso. 

El bucle mientras se repetirá mientras el número sea diferente de cero. Dentro de este bucle, se utiliza el operador módulo (%) para obtener el último dígito del número ingresado, se multiplica el número invertido por 10 y se le suma el último dígito obtenido y finalmente se divide el número ingresado por 10 y se trunca su valor (eliminando los decimales) para continuar obteniendo los dígitos restantes del número. También se incrementa en 1 el contador en cada iteración del bucle mientras.

Líneas 20-21: Se muestra al usuario la cantidad de dígitos que tiene el número ingresado y su inverso.

Líneas 23-26: En este bucle se solicita al usuario si desea ingresar otro número (respuesta = ‘S’ o respuesta = ‘N’). Si el usuario ingresa una respuesta diferente, se vuelve a solicitar que ingrese su respuesta hasta que sea una respuesta válida.

Línea 27: El bucle principal se repetirá mientras el usuario ingrese la respuesta ‘S’.

Ejercicios con estructura repetitiva Repetir_Hasta en Pseint – parte 3

Ejercicio 3.1: Suma de Números Pares e Impares

Diseña un algoritmo que pida al usuario ingresar números enteros uno por uno hasta que ingrese cero. Luego, muestra la suma de los números pares y la suma de los números impares utilizando la estructura “repetir_hastaque”.

Peudocódigo

				
					Proceso SumaNumerosParesImpares
	Definir numero, sumaPares, sumaImpares como Entero
	sumaPares <- 0
	sumaImpares <- 0
	
	Repetir
		Escribir "Ingrese un número entero (ingrese 0 para terminar): "
		Leer numero
		Si numero <> 0 Entonces
			Si numero % 2 = 0 Entonces
				sumaPares <- sumaPares + numero
			Sino
				sumaImpares <- sumaImpares + numero
			FinSi
		FinSi
	Hasta Que numero = 0
	
	Escribir "La suma de los números pares es: ", sumaPares
	Escribir "La suma de los números impares es: ", sumaImpares
FinProceso
				
			

Ejercicio 3.2: Números Primos

Diseña un algoritmo que solicite al usuario ingresar un número entero positivo y determine si es un número primo o no. Un número primo es aquel que solo es divisible por 1 y por sí mismo.

Peudocódigo

				
					Proceso NumerosPrimos
	Definir numero, i, contador como Entero
	contador <- 0
	
	Repetir
		Escribir "Ingrese un número entero positivo mayor que 1: "
		Leer numero
	Hasta Que numero > 1
	
	i <- 1
	Repetir
		Si numero % i = 0 Entonces
			contador <- contador + 1
		FinSi
		i <- i + 1
	Hasta Que i > numero
	
	Si contador = 2 Entonces
		Escribir numero, " es un número primo."
	Sino
		Escribir numero, " no es un número primo."
	FinSi
FinProceso
				
			

Ejercicio 3.3: Suma de Fracciones

Diseña un algoritmo que solicite al usuario ingresar un número entero positivo “n” y luego calcule la suma de las primeras “n” fracciones utilizando la fórmula: 1/1 + 1/2 + 1/3 + … + 1/n.

Peudocódigo

				
					Proceso SumaDeFracciones
	Definir n, i como Entero
	Definir suma como Real
	Definir textoSalida como Caracter
	
	Repetir
		Escribir "Ingrese un número entero positivo: "
		Leer n
	Hasta Que n > 0
	
	suma <- 0
	i <- 1
	Repetir
		textoSalida <- textoSalida  + "1/" + ConvertirATexto(i)
		Si i < n Entonces
			textoSalida <- textoSalida + " + "
		FinSi
		
		suma <- suma + 1 / i
		i <- i + 1
	Hasta Que i > n
	
	Escribir "La suma de las primeras ", n, " fracciones es "
	Escribir textoSalida " = ", suma
FinProceso
				
			

Ejercicio 3.4: Generación de números primos

Diseña un algoritmo que genere y muestre los primeros N números primos, donde N es un número ingresado por el usuario.

Peudocódigo

				
					Proceso GenerarPrimos
	Definir N, contadorPrimos, numero, i, contadorDivisores como Entero
	
	Repetir
		Escribir "Ingrese la cantidad de números primos que desea generar: "
		Leer N
	Hasta Que N > 0
		
	contadorPrimos <- 0
	numero <- 2
	Escribir "Los primeros ", N, " números primos son:"
	
	Repetir
		contadorDivisores <- 0
		Para i <- 1 Hasta numero Hacer
			Si numero % i = 0 Entonces
				contadorDivisores <- contadorDivisores + 1
			FinSi
		FinPara
		
		Si contadorDivisores = 2 Entonces
			contadorPrimos <- contadorPrimos + 1
			Escribir numero
		FinSi
		
		numero <- numero + 1
		
	Hasta Que contadorPrimos >= N
	
FinProceso