Ejercicios de Lógica de programación con PSeInt
¿Qué tal amigos ? Continunado con esta introducción a la lógica de programación. El día de hoy vamos a continuar con algunos ejercicios de lógica de programación, utilizando PSeInt.

En esta clase vamos a abordar temas como: bucles (repeticiones) y funciones (bloques reutilizables). Con estos conceptos, podrás crear algoritmos más dinámicos y eficientes.
Requisitos:
- Tener instalado PSeInt (descarga aquí).
- Haber completado los ejercicios de la Parte 1.
1. Bucles: Automatizando Repeticiones
Bucle Para
(For)
Repite un bloque de código un número específico de veces.
Ejemplo: Contador del 1 al 5
Algoritmo Contador
Definir i Como Entero
Para i <- 1 Hasta 5 Con Paso 1 Hacer
Escribir "Número: ", i
FinPara
FinAlgoritmo
PascalSalida:
Número: 1
Número: 2
...
Número: 5
PascalEjercicio 1:
Crea un algoritmo que muestre los números pares del 2 al 10.
Bucle Mientras
(While)
Repite un bloque mientras se cumpla una condición.
Ejemplo: Sumar números hasta ingresar 0
Algoritmo SumarNumeros
Definir numero, suma Como Entero
suma <- 0
Escribir "Ingresa números (0 para terminar):"
Leer numero
Mientras numero != 0 Hacer
suma <- suma + numero
Leer numero
FinMientras
Escribir "La suma total es: ", suma
FinAlgoritmo
PascalEjercicio 2:
Crea un algoritmo que pida números hasta que el usuario ingrese un negativo. Luego, muestre el promedio.
2. Funciones: Código Reutilizable
Las funciones son bloques de código que realizan una tarea específica. Pueden recibir parámetros y devolver resultados.
Función sin Retorno (SubProceso
)
SubProceso Saludar(nombre)
Escribir "¡Hola ", nombre, "! 👋"
FinSubProceso
Algoritmo PruebaSaludo
Saludar("Ana") // Salida: ¡Hola Ana! 👋
FinAlgoritmo
PascalFunción con Retorno (Funcion
)
Funcion resultado <- Sumar(a, b)
resultado <- a + b
FinFuncion
Algoritmo PruebaSuma
Definir total Como Entero
total <- Sumar(3, 5)
Escribir "3 + 5 = ", total // Salida: 8
FinAlgoritmo
PascalEjercicio 3:
Crea una función llamada EsPar
que reciba un número y devuelva Verdadero
si es par.
✨ Proyecto: Juego de Adivinanza
Crea un juego donde el usuario deba adivinar un número secreto entre 1 y 10. El programa dará pistas («muy alto» o «muy bajo»).
Solución en PSeInt:
Algoritmo JuegoAdivinanza
Definir numeroSecreto, intento, intentos Como Entero
numeroSecreto <- Aleatorio(1, 10) // Genera un número aleatorio
intentos <- 0
Escribir "¡Adivina el número secreto (1-10)!"
Repetir
Escribir "Intento #", intentos + 1, ":"
Leer intento
intentos <- intentos + 1
Si intento < numeroSecreto Entonces
Escribir "Muy bajo ⬆"
Sino Si intento > numeroSecreto Entonces
Escribir "Muy alto ⬇"
FinSi
Hasta Que intento == numeroSecreto
Escribir "¡Correcto! 🎉 Lo lograste en ", intentos, " intentos."
FinAlgoritmo
Pascal3. Ejercicios de Consolidación
Ejercicio 4: Tabla de Multiplicar
Crea un algoritmo que:
- Pida al usuario un número.
- Muestre su tabla de multiplicar del 1 al 10.
Ejemplo:
5 x 1 = 5
5 x 2 = 10
...
PascalEjercicio 5: Calculadora de Factorial
El factorial de un número nn (escrito n!n!) es el producto de todos los enteros positivos hasta nn.
Ejemplo: 4!=4×3×2×1=244!=4×3×2×1=24.
Instrucciones:
- Usa un bucle para calcular el factorial de un número ingresado por el usuario.
Solución Factorial
Algoritmo CalculoFactorial
Definir numero, factorial, i Como Entero
// Pedir al usuario un número positivo
Escribir "Ingresa un número para calcular su factorial:"
Leer numero
// Validar que el número sea no negativo
Si numero < 0 Entonces
Escribir "Error: El factorial no está definido para números negativos."
Sino
// Calcular factorial (0! = 1 por definición)
factorial <- 1
Para i <- 1 Hasta numero Con Paso 1 Hacer
factorial <- factorial * i
FinPara
Escribir "El factorial de ", numero, " es: ", factorial
FinSi
FinAlgoritmo
PascalConsejos para Depurar en PSeInt
- Ejecuta Paso a Paso (F8): Verifica cómo cambian las variables en cada línea.
- Usa
Escribir
para Debuggear: Muestra valores intermedios.
Ejemplo:Escribir "Valor de i: ", i
dentro de un bucle. - Prueba Casos Extremos: Ejemplo: ¿Qué pasa si el usuario ingresa 0 o números negativos?