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:

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
Pascal

Salida:

Número: 1  
Número: 2  
...  
Número: 5  
Pascal

Ejercicio 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
Pascal

Ejercicio 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
Pascal

Funció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
Pascal

Ejercicio 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
Pascal

3. Ejercicios de Consolidación

Ejercicio 4: Tabla de Multiplicar

Crea un algoritmo que:

  1. Pida al usuario un número.
  2. Muestre su tabla de multiplicar del 1 al 10.
    Ejemplo:
5 x 1 = 5  
5 x 2 = 10  
...  
Pascal

Ejercicio 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
Pascal

Consejos para Depurar en PSeInt

  1. Ejecuta Paso a Paso (F8): Verifica cómo cambian las variables en cada línea.
  2. Usa Escribir para Debuggear: Muestra valores intermedios.
    Ejemplo: Escribir "Valor de i: ", i dentro de un bucle.
  3. Prueba Casos Extremos: Ejemplo: ¿Qué pasa si el usuario ingresa 0 o números negativos?