Listas en Python: 20 ejercicios resueltos paso a paso

Aprendé listas en Python con 20 ejercicios resueltos: índices, append, insert, remove, pop, recorridos, búsquedas, ordenamiento y listas anidadas.

Las listas son una de las estructuras más utilizadas en Python. Nos permiten guardar varios valores dentro de una misma variable y trabajar con ellos de forma ordenada.

En esta guía vamos a aprender cómo crear listas, acceder a sus elementos, modificarlas, recorrerlas y resolver 20 ejercicios prácticos para afianzar los conceptos.

Idea clave: una lista permite almacenar varios valores dentro de una misma estructura. En Python, los índices comienzan en 0.

¿Qué es una lista en Python?

Una lista es una colección ordenada de elementos.

numeros = [10, 20, 30, 40]

En este caso la lista tiene cuatro elementos.

También puede contener texto:

nombres = ["Ana", "Luis", "Pedro"]

O incluso distintos tipos de datos:

datos = ["Ana", 25, 1.70, True]

Índices: las posiciones comienzan en 0

Este punto es fundamental.

numeros = [10, 20, 30, 40]

print(numeros[0])
print(numeros[1])

El resultado será:

10
20

La primera posición es 0, la segunda es 1 y así sucesivamente.

Modificar un elemento

numeros = [10, 20, 30]

numeros[1] = 99

print(numeros)

Resultado:

[10, 99, 30]

Conocer la cantidad de elementos con len()

numeros = [10, 20, 30, 40]

print(len(numeros))

El resultado será 4.

Agregar elementos con append()

numeros = [10, 20]

numeros.append(30)

print(numeros)

Insertar elementos con insert()

numeros = [10, 30]

numeros.insert(1, 20)

print(numeros)

Eliminar elementos

Podemos eliminar por valor con remove():

numeros = [10, 20, 30]

numeros.remove(20)

print(numeros)

O eliminar por posición con pop():

numeros = [10, 20, 30]

eliminado = numeros.pop(1)

print(numeros)
print(eliminado)

Comprobar si un elemento existe

numeros = [10, 20, 30]

if 20 in numeros:
    print("El valor existe")

También podemos usar not in:

if 50 not in numeros:
    print("El valor no existe")

Recorrer una lista con for

numeros = [10, 20, 30]

for numero in numeros:
    print(numero)

Recorrer una lista utilizando índices

numeros = [10, 20, 30]

for i in range(len(numeros)):
    print(i, numeros[i])

Este enfoque resulta útil cuando necesitamos conocer tanto el valor como su posición.

Listas vacías

numeros = []

numeros.append(10)
numeros.append(20)

print(numeros)

Cuidado al asignar una lista a otra variable

Este código puede sorprender al principio:

lista1 = [10, 20, 30]
lista2 = lista1

lista2[0] = 99

print(lista1)
print(lista2)

Ambas variables hacen referencia a la misma lista, por lo que la modificación aparece en las dos.

Si queremos una copia independiente podemos usar:

lista2 = lista1.copy()

Listas anidadas

Una lista puede contener otras listas.

matriz = [
    [1, 2, 3],
    [4, 5, 6]
]

print(matriz[0][1])

El resultado será 2.

Índice de ejercicios

  1. Mostrar todos los elementos
  2. Sumar los valores
  3. Calcular el promedio
  4. Encontrar el mayor y el menor
  5. Contar números pares
  6. Buscar un elemento
  7. Contar repeticiones
  8. Agregar elementos
  9. Eliminar un elemento
  10. Invertir una lista
  11. Eliminar duplicados
  12. Separar positivos y negativos
  13. Crear una lista con datos ingresados
  14. Comparar dos listas
  15. Encontrar el segundo mayor
  16. Combinar dos listas
  17. Ordenar una lista
  18. Buscar un nombre
  19. Recorrer una matriz
  20. Sistema de notas

1. Mostrar todos los elementos

numeros = [5, 10, 15, 20]

for numero in numeros:
    print(numero)

2. Sumar los valores

numeros = [5, 10, 15, 20]
suma = 0

for numero in numeros:
    suma += numero

print("Suma:", suma)

3. Calcular el promedio

notas = [7, 8, 6, 9, 10]
suma = 0

for nota in notas:
    suma += nota

promedio = suma / len(notas)

print("Promedio:", promedio)

4. Encontrar el mayor y el menor

numeros = [8, 3, 15, 2, 11]

mayor = numeros[0]
menor = numeros[0]

for numero in numeros:
    if numero > mayor:
        mayor = numero

    if numero < menor:
        menor = numero

print("Mayor:", mayor)
print("Menor:", menor)

5. Contar números pares

numeros = [1, 2, 4, 7, 10, 13]
cantidad = 0

for numero in numeros:
    if numero % 2 == 0:
        cantidad += 1

print("Cantidad de pares:", cantidad)

6. Buscar un elemento

numeros = [10, 20, 30, 40]
buscado = int(input("Ingrese el numero a buscar: "))

if buscado in numeros:
    print("El valor existe")
else:
    print("El valor no existe")

7. Contar repeticiones

numeros = [1, 2, 2, 3, 2, 4]
buscado = 2
cantidad = 0

for numero in numeros:
    if numero == buscado:
        cantidad += 1

print("Cantidad de apariciones:", cantidad)

8. Agregar elementos

numeros = []

for i in range(5):
    numero = int(input("Ingrese un numero: "))
    numeros.append(numero)

print(numeros)

9. Eliminar un elemento

nombres = ["Ana", "Luis", "Pedro", "Maria"]
nombre = input("Ingrese el nombre a eliminar: ")

if nombre in nombres:
    nombres.remove(nombre)
    print("Lista actualizada:", nombres)
else:
    print("El nombre no existe")

10. Invertir una lista

numeros = [1, 2, 3, 4, 5]

invertida = numeros[::-1]

print(invertida)

11. Eliminar duplicados

numeros = [1, 2, 2, 3, 4, 4, 5]
sin_duplicados = []

for numero in numeros:
    if numero not in sin_duplicados:
        sin_duplicados.append(numero)

print(sin_duplicados)

12. Separar positivos y negativos

numeros = [5, -3, 8, -1, 0, 4, -7]

positivos = []
negativos = []

for numero in numeros:
    if numero >= 0:
        positivos.append(numero)
    else:
        negativos.append(numero)

print("Positivos:", positivos)
print("Negativos:", negativos)

13. Crear una lista con datos ingresados

cantidad = int(input("Cuantos numeros desea ingresar: "))
numeros = []

for i in range(cantidad):
    numero = float(input("Ingrese un numero: "))
    numeros.append(numero)

print("Lista:", numeros)

14. Comparar dos listas

lista1 = [1, 2, 3]
lista2 = [1, 2, 3]

if lista1 == lista2:
    print("Las listas son iguales")
else:
    print("Las listas son diferentes")

15. Encontrar el segundo mayor

numeros = [8, 3, 15, 10, 15, 4]

unicos = []

for numero in numeros:
    if numero not in unicos:
        unicos.append(numero)

unicos.sort()

if len(unicos) >= 2:
    print("Segundo mayor:", unicos[-2])
else:
    print("No hay suficientes valores distintos")

16. Combinar dos listas

lista1 = [1, 2, 3]
lista2 = [4, 5, 6]

combinada = lista1 + lista2

print(combinada)

17. Ordenar una lista

numeros = [8, 3, 10, 1, 6]

ordenados = sorted(numeros)

print("Original:", numeros)
print("Ordenada:", ordenados)

sorted() devuelve una nueva lista ordenada sin modificar la original.

18. Buscar un nombre

nombres = ["Ana", "Luis", "Pedro", "Maria"]

buscado = input("Ingrese un nombre: ")

encontrado = False

for nombre in nombres:
    if nombre.lower() == buscado.lower():
        encontrado = True

if encontrado:
    print("Nombre encontrado")
else:
    print("Nombre no encontrado")

19. Recorrer una matriz

matriz = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for fila in matriz:
    for valor in fila:
        print(valor, end=" ")

    print()

20. Sistema de notas

Terminamos con un pequeño programa que permite cargar notas y calcular estadísticas básicas.

notas = []

cantidad = int(input("Cuantas notas desea ingresar: "))

for i in range(cantidad):
    nota = float(input("Ingrese una nota: "))
    notas.append(nota)

if len(notas) > 0:
    suma = 0

    for nota in notas:
        suma += nota

    promedio = suma / len(notas)

    mayor = notas[0]
    menor = notas[0]

    for nota in notas:
        if nota > mayor:
            mayor = nota

        if nota < menor:
            menor = nota

    print("Notas:", notas)
    print("Promedio:", promedio)
    print("Mayor:", mayor)
    print("Menor:", menor)
else:
    print("No se ingresaron notas")

Métodos útiles de las listas

Método Uso
append() Agregar al final
insert() Insertar en una posición
remove() Eliminar por valor
pop() Eliminar por posición
sort() Ordenar la lista original
reverse() Invertir la lista original
count() Contar apariciones
index() Obtener la posición de un valor
copy() Crear una copia superficial
clear() Vaciar la lista

Errores comunes al trabajar con listas

  • Usar una posición inexistente: intentar acceder a un índice fuera del rango genera IndexError.
  • Olvidar que los índices empiezan en 0.
  • Eliminar un valor que no existe: remove() genera error si el elemento no está presente.
  • Confundir una copia con otra referencia: lista2 = lista1 no crea una lista independiente.
  • Modificar una lista mientras la recorremos: puede producir resultados inesperados y conviene evitarlo al comenzar.

Cómo practicar listas

Una buena forma de avanzar es tomar cada ejercicio y modificarlo:

  • pedir los datos al usuario;
  • agregar validaciones;
  • buscar más de un valor;
  • crear nuevas listas a partir de condiciones;
  • combinar listas con condicionales y ciclos;
  • convertir partes repetidas del código en funciones.

Próximo paso: funciones en Python

Ahora que ya podemos trabajar con varios datos dentro de una misma estructura, el siguiente paso es aprender a organizar mejor nuestros programas mediante funciones. Esto nos permitirá reutilizar código, separar responsabilidades y construir programas cada vez más grandes.

Seguí aprendiendo Python

Si necesitás reforzar la lógica de recorrido, repasá condicionales y ciclos en Python.

El siguiente paso es aprender a organizar y reutilizar esa lógica:

Funciones en Python: parámetros, return y 20 ejercicios resueltos →

Ver la ruta completa de Python


¿Te sirvió esta guía? ☕

Si estos ejercicios te ayudaron a aprender Python, podés apoyar a Club Programador. Cada aporte ayuda a mantener el sitio online y a seguir publicando material gratuito.

🇦🇷 Apoyar desde Argentina

☕ Invitame un café con Mercado Pago

🌎 Apoyar desde otro país

☕ Apoyar con PayPal

De PSeInt a Python: 10 algoritmos traducidos paso a paso

Aprendé a pasar de PSeInt a Python con 10 algoritmos traducidos paso a paso: condicionales, ciclos, listas, búsquedas, funciones y más.

Si ya aprendiste lógica de programación con PSeInt, pasar a Python no significa empezar de cero. Los conceptos siguen siendo los mismos: variables, decisiones, ciclos, listas, funciones y algoritmos. Lo que cambia es la sintaxis y algunas convenciones del lenguaje.

En esta guía vamos a tomar 10 algoritmos conocidos y traducirlos paso a paso de PSeInt a Python. La idea es que puedas reconocer rápidamente qué parte del pseudocódigo corresponde a cada instrucción real.

La lógica no cambia: cambia la forma de escribirla.

En PSeInt nos concentrábamos en describir el algoritmo. En Python escribimos código real que será interpretado y ejecutado por la computadora. Por eso aparecen reglas concretas como la indentación, los índices desde 0 y la conversión de datos ingresados con input().

Equivalencias rápidas entre PSeInt y Python

PSeInt Python
Escribir print()
Leer input()
Si if
Sino else
Mientras while
Para for
MOD %
SubProceso def
vector desde posición 1 lista desde posición 0

1. Entrada y salida de datos

PSeInt

Algoritmo Saludo
    Definir nombre Como Caracter

    Escribir "Ingrese su nombre:"
    Leer nombre

    Escribir "Hola ", nombre
FinAlgoritmo

Python

nombre = input("Ingrese su nombre: ")
print("Hola", nombre)

En Python no necesitamos declarar previamente la variable. input() recibe el dato y lo guarda como texto.

2. Número par o impar

PSeInt

Algoritmo ParImpar
    Definir numero Como Entero

    Escribir "Ingrese un numero:"
    Leer numero

    Si numero MOD 2 = 0 Entonces
        Escribir "Es par"
    Sino
        Escribir "Es impar"
    FinSi
FinAlgoritmo

Python

numero = int(input("Ingrese un numero: "))

if numero % 2 == 0:
    print("Es par")
else:
    print("Es impar")

MOD se reemplaza por %. También convertimos el resultado de input() con int() porque necesitamos trabajar con un entero.

3. Mayor de dos números

PSeInt

Algoritmo MayorDeDos
    Definir a, b Como Real

    Escribir "Ingrese dos numeros:"
    Leer a
    Leer b

    Si a > b Entonces
        Escribir "El mayor es ", a
    Sino
        Si b > a Entonces
            Escribir "El mayor es ", b
        Sino
            Escribir "Son iguales"
        FinSi
    FinSi
FinAlgoritmo

Python

a = float(input("Ingrese el primer numero: "))
b = float(input("Ingrese el segundo numero: "))

if a > b:
    print("El mayor es", a)
elif b > a:
    print("El mayor es", b)
else:
    print("Son iguales")

Python incorpora elif, que permite expresar una segunda condición sin anidar otro if.

4. Promedio de notas

PSeInt

Algoritmo PromedioNotas
    Definir nota1, nota2, nota3, promedio Como Real

    Leer nota1
    Leer nota2
    Leer nota3

    promedio <- (nota1 + nota2 + nota3) / 3

    Escribir "Promedio: ", promedio
FinAlgoritmo

Python

nota1 = float(input("Nota 1: "))
nota2 = float(input("Nota 2: "))
nota3 = float(input("Nota 3: "))

promedio = (nota1 + nota2 + nota3) / 3

print("Promedio:", promedio)

La asignación que en PSeInt escribíamos con <- en Python se realiza con =.

5. Factorial de un número

PSeInt

Algoritmo Factorial
    Definir numero, i, resultado Como Entero

    Escribir "Ingrese un numero:"
    Leer numero

    resultado <- 1

    Para i <- 1 Hasta numero Hacer
        resultado <- resultado * i
    FinPara

    Escribir "Factorial: ", resultado
FinAlgoritmo

Python

numero = int(input("Ingrese un numero: "))
resultado = 1

for i in range(1, numero + 1):
    resultado = resultado * i

print("Factorial:", resultado)

En Python, el límite final de range() no se incluye. Por eso usamos numero + 1 para recorrer desde 1 hasta el número ingresado.

6. Determinar si un número es primo

PSeInt

Algoritmo NumeroPrimo
    Definir numero, divisor Como Entero
    Definir esPrimo Como Logico

    Escribir "Ingrese un numero:"
    Leer numero

    esPrimo <- Verdadero
    divisor <- 2

    Si numero < 2 Entonces
        esPrimo <- Falso
    FinSi

    Mientras divisor * divisor <= numero Y esPrimo Hacer
        Si numero MOD divisor = 0 Entonces
            esPrimo <- Falso
        Sino
            divisor <- divisor + 1
        FinSi
    FinMientras

    Si esPrimo Entonces
        Escribir "Es primo"
    Sino
        Escribir "No es primo"
    FinSi
FinAlgoritmo

Python

numero = int(input("Ingrese un numero: "))

es_primo = numero >= 2
divisor = 2

while divisor * divisor <= numero and es_primo:
    if numero % divisor == 0:
        es_primo = False
    else:
        divisor += 1

if es_primo:
    print("Es primo")
else:
    print("No es primo")

Los valores lógicos se escriben True y False. El operador lógico Y pasa a ser and.

7. Suma de los dígitos de un número

PSeInt

Algoritmo SumaDigitos
    Definir numero, suma, digito Como Entero

    Escribir "Ingrese un numero positivo:"
    Leer numero

    suma <- 0

    Mientras numero > 0 Hacer
        digito <- numero MOD 10
        suma <- suma + digito
        numero <- Trunc(numero / 10)
    FinMientras

    Escribir "Suma de digitos: ", suma
FinAlgoritmo

Python

numero = int(input("Ingrese un numero positivo: "))
suma = 0

while numero > 0:
    digito = numero % 10
    suma += digito
    numero //= 10

print("Suma de digitos:", suma)

En Python, // realiza división entera. Esto nos permite eliminar el último dígito sin utilizar Trunc().

8. Recorrer un vector: de vector a lista

PSeInt

Algoritmo RecorrerVector
    Definir numeros, i Como Entero
    Dimension numeros[5]

    numeros[1] <- 10
    numeros[2] <- 20
    numeros[3] <- 30
    numeros[4] <- 40
    numeros[5] <- 50

    Para i <- 1 Hasta 5 Hacer
        Escribir numeros[i]
    FinPara
FinAlgoritmo

Python

numeros = [10, 20, 30, 40, 50]

for numero in numeros:
    print(numero)

Python permite recorrer directamente los elementos de una lista sin necesidad de manejar el índice.

Si necesitáramos acceder por posición, debemos recordar que los índices comienzan en 0:

print(numeros[0])  # 10
print(numeros[4])  # 50

9. Búsqueda secuencial

PSeInt

Algoritmo BusquedaSecuencial
    Definir numeros, i, buscado, posicion Como Entero
    Definir encontrado Como Logico
    Dimension numeros[5]

    numeros[1] <- 10
    numeros[2] <- 20
    numeros[3] <- 30
    numeros[4] <- 40
    numeros[5] <- 50

    Escribir "Ingrese el valor a buscar:"
    Leer buscado

    encontrado <- Falso
    posicion <- 1

    Mientras posicion <= 5 Y NO encontrado Hacer
        Si numeros[posicion] = buscado Entonces
            encontrado <- Verdadero
        Sino
            posicion <- posicion + 1
        FinSi
    FinMientras

    Si encontrado Entonces
        Escribir "Encontrado en la posicion ", posicion
    Sino
        Escribir "No encontrado"
    FinSi
FinAlgoritmo

Python

numeros = [10, 20, 30, 40, 50]
buscado = int(input("Ingrese el valor a buscar: "))

encontrado = False
posicion = 0

while posicion < len(numeros) and not encontrado:
    if numeros[posicion] == buscado:
        encontrado = True
    else:
        posicion += 1

if encontrado:
    print("Encontrado en la posicion", posicion)
else:
    print("No encontrado")

Aquí el índice 0 sí es una posición válida. Si buscamos 10, Python lo encuentra en la posición 0.

Más adelante veremos que Python ofrece herramientas más directas para ciertas búsquedas, pero implementar el algoritmo manualmente sigue siendo fundamental para entender cómo funciona.

10. Función que devuelve un resultado

PSeInt

SubProceso resultado <- Sumar(a, b)
    resultado <- a + b
FinSubProceso

Algoritmo EjemploFuncion
    Definir total Como Real

    total <- Sumar(10, 5)

    Escribir total
FinAlgoritmo

Python

def sumar(a, b):
    return a + b

total = sumar(10, 5)

print(total)

En Python utilizamos def para definir una función y return para devolver el resultado.

Un detalle fundamental: la indentación

En PSeInt las estructuras terminan explícitamente con palabras como FinSi, FinMientras o FinPara. Python no utiliza esas palabras.

En cambio, los bloques se identifican mediante indentación:

if edad >= 18:
    print("Mayor de edad")
    print("Puede continuar")

print("Fin del programa")

Las dos primeras instrucciones pertenecen al if. La última queda fuera porque ya no está indentada.

Otro cambio importante: input() devuelve texto

Este código:

numero = input("Ingrese un numero: ")

guarda el valor como texto. Si necesitamos realizar operaciones matemáticas debemos convertirlo:

numero = int(input("Ingrese un numero: "))

o:

precio = float(input("Ingrese un precio: "))

¿Qué aprendimos al traducir estos algoritmos?

El cambio de PSeInt a Python es mucho menos brusco cuando ya entendemos la lógica. Los algoritmos siguen teniendo:

  • datos de entrada;
  • variables;
  • operaciones;
  • condiciones;
  • repeticiones;
  • estructuras para almacenar datos;
  • funciones para separar responsabilidades;
  • resultados de salida.

Python simplemente nos obliga a expresar esas ideas utilizando la sintaxis de un lenguaje real.

Próximo paso

Ahora que ya vimos cómo trasladar algoritmos conocidos, el próximo paso será resolver ejercicios directamente en Python, sin depender de una versión previa en PSeInt.

Si necesitás repasar la base algorítmica, podés recorrer nuestro centro de contenidos de PSeInt.

Seguí aprendiendo Python

Podés volver a la introducción a Python o continuar resolviendo problemas directamente en el lenguaje:

20 ejercicios resueltos de Python para principiantes →

Ver la ruta completa de Python →


¿Te sirvió esta guía? ☕

Si este contenido te ayudó a dar el salto de PSeInt a Python, podés apoyar a Club Programador. Cada aporte ayuda a mantener el contenido gratuito y a seguir publicando nuevas guías.

🇦🇷 Apoyar desde Argentina

☕ Invitame un café con Mercado Pago

🌎 Apoyar desde otro país

☕ Apoyar con PayPal

20 ejercicios resueltos en PSeInt: ciclos y condicionales

20 ejercicios resueltos en PSeInt para practicar condicionales, ciclos Para, Mientras y Repetir, con algoritmos completos y explicaciones claras.

Practicar con ejercicios concretos es una de las mejores formas de aprender pseudocódigo. En esta guía reunimos 20 ejercicios resueltos en PSeInt centrados en condicionales y ciclos, desde problemas básicos hasta otros un poco más completos.

Todos los algoritmos están escritos con sintaxis estándar de PSeInt y pueden copiarse directamente para probarlos y modificarlos.

1. Determinar si un número es par o impar

Algoritmo ParOImpar
    Definir numero Como Entero

    Escribir "Ingrese un número:"
    Leer numero

    Si numero MOD 2 = 0 Entonces
        Escribir "El número es par"
    Sino
        Escribir "El número es impar"
    FinSi
FinAlgoritmo

Si el resto de dividir por 2 es 0, el número es par. Para ver la explicación paso a paso, casos de prueba y variantes, consultá Número par o impar en PSeInt.

2. Determinar si un número es positivo, negativo o cero

Algoritmo PositivoNegativoOCero
    Definir numero Como Real

    Escribir "Ingrese un número:"
    Leer numero

    Si numero > 0 Entonces
        Escribir "El número es positivo"
    Sino
        Si numero < 0 Entonces
            Escribir "El número es negativo"
        Sino
            Escribir "El número es cero"
        FinSi
    FinSi
FinAlgoritmo

3. Encontrar el mayor de tres números

Algoritmo MayorDeTres
    Definir a, b, c, mayor Como Real

    Escribir "Ingrese tres números:"
    Leer a
    Leer b
    Leer c

    mayor <- a

    Si b > mayor Entonces
        mayor <- b
    FinSi

    Si c > mayor Entonces
        mayor <- c
    FinSi

    Escribir "El mayor es: ", mayor
FinAlgoritmo

Inicializar mayor con el primer valor evita usar números arbitrarios como valor inicial.

4. Sumar los números del 1 hasta N

Algoritmo SumaDeUnoAN
    Definir n, i, suma Como Entero

    Escribir "Ingrese un número entero positivo:"
    Leer n

    suma <- 0

    Para i <- 1 Hasta n Hacer
        suma <- suma + i
    FinPara

    Escribir "La suma es: ", suma
FinAlgoritmo

5. Mostrar la tabla de multiplicar de un número

Algoritmo TablaDeMultiplicar
    Definir numero, i Como Entero

    Escribir "Ingrese un número:"
    Leer numero

    Para i <- 1 Hasta 10 Hacer
        Escribir numero, " x ", i, " = ", numero * i
    FinPara
FinAlgoritmo

6. Cuenta regresiva desde N hasta 1

Algoritmo CuentaRegresiva
    Definir n, i Como Entero

    Escribir "Ingrese un número entero positivo:"
    Leer n

    Para i <- n Hasta 1 Con Paso -1 Hacer
        Escribir i
    FinPara
FinAlgoritmo

7. Sumar los números pares entre 1 y N

Algoritmo SumaDePares
    Definir n, i, suma Como Entero

    Escribir "Ingrese un número entero positivo:"
    Leer n

    suma <- 0

    Para i <- 2 Hasta n Con Paso 2 Hacer
        suma <- suma + i
    FinPara

    Escribir "La suma de los pares es: ", suma
FinAlgoritmo

8. Calcular el factorial de un número

Algoritmo CalcularFactorial
    Definir n, i, fact Como Entero

    Escribir "Ingrese un número entero mayor o igual a 0:"
    Leer n

    Si n < 0 Entonces
        Escribir "El factorial no está definido para números negativos"
    Sino
        fact <- 1

        Si n > 0 Entonces
            Para i <- 1 Hasta n Hacer
                fact <- fact * i
            FinPara
        FinSi

        Escribir "El factorial es: ", fact
    FinSi
FinAlgoritmo

Para n = 0 el ciclo no realiza iteraciones y el resultado permanece en 1, que es justamente 0! = 1.

9. Contar cuántos dígitos tiene un número entero

Algoritmo CantidadDeDigitos
    Definir numero, cantidad Como Entero

    Escribir "Ingrese un número entero:"
    Leer numero

    Si numero < 0 Entonces
        numero <- -numero
    FinSi

    Si numero = 0 Entonces
        cantidad <- 1
    Sino
        cantidad <- 0

        Mientras numero > 0 Hacer
            numero <- Trunc(numero / 10)
            cantidad <- cantidad + 1
        FinMientras
    FinSi

    Escribir "Cantidad de dígitos: ", cantidad
FinAlgoritmo

10. Sumar los dígitos de un número

Algoritmo SumaDeDigitos
    Definir numero, digito, suma Como Entero

    Escribir "Ingrese un número entero:"
    Leer numero

    Si numero < 0 Entonces
        numero <- -numero
    FinSi

    suma <- 0

    Mientras numero > 0 Hacer
        digito <- numero MOD 10
        suma <- suma + digito
        numero <- Trunc(numero / 10)
    FinMientras

    Escribir "La suma de los dígitos es: ", suma
FinAlgoritmo

La idea es tomar el último dígito con MOD 10, acumularlo y eliminarlo del número. Para ver el desarrollo completo y más ejemplos, consultá Suma de dígitos de un número en PSeInt.

11. Invertir un número entero

Algoritmo InvertirNumero
    Definir numero, digito, invertido Como Entero

    Escribir "Ingrese un número entero positivo:"
    Leer numero

    invertido <- 0

    Mientras numero > 0 Hacer
        digito <- numero MOD 10
        invertido <- invertido * 10 + digito
        numero <- Trunc(numero / 10)
    FinMientras

    Escribir "Número invertido: ", invertido
FinAlgoritmo

Por ejemplo, si se ingresa 1234, el resultado será 4321.

12. Determinar si un número es capicúa

Algoritmo NumeroCapicua
    Definir numero, original, digito, invertido Como Entero

    Escribir "Ingrese un número entero no negativo:"
    Leer numero

    Si numero < 0 Entonces
        Escribir "Ingrese un número no negativo"
    Sino
        original <- numero
        invertido <- 0

        Mientras numero > 0 Hacer
            digito <- numero MOD 10
            invertido <- invertido * 10 + digito
            numero <- Trunc(numero / 10)
        FinMientras

        Si original = invertido Entonces
            Escribir "El número es capicúa"
        Sino
            Escribir "El número no es capicúa"
        FinSi
    FinSi
FinAlgoritmo

13. Determinar si un número es primo

Algoritmo NumeroPrimo
    Definir numero, divisor, cantidadDivisores Como Entero

    Escribir "Ingrese un número entero:"
    Leer numero

    Si numero < 2 Entonces
        Escribir "El número no es primo"
    Sino
        cantidadDivisores <- 0

        Para divisor <- 1 Hasta numero Hacer
            Si numero MOD divisor = 0 Entonces
                cantidadDivisores <- cantidadDivisores + 1
            FinSi
        FinPara

        Si cantidadDivisores = 2 Entonces
            Escribir "El número es primo"
        Sino
            Escribir "El número no es primo"
        FinSi
    FinSi
FinAlgoritmo

Un número primo tiene exactamente dos divisores positivos: 1 y él mismo. Para ver una explicación paso a paso y pruebas con distintos valores, consultá Número primo en PSeInt.

14. Contar los divisores de un número

Algoritmo ContarDivisores
    Definir numero, i, cantidad Como Entero

    Escribir "Ingrese un número entero positivo:"
    Leer numero

    Si numero <= 0 Entonces
        Escribir "Debe ingresar un número positivo"
    Sino
        cantidad <- 0

        Para i <- 1 Hasta numero Hacer
            Si numero MOD i = 0 Entonces
                cantidad <- cantidad + 1
            FinSi
        FinPara

        Escribir "Cantidad de divisores: ", cantidad
    FinSi
FinAlgoritmo

15. Calcular el promedio de N notas

Algoritmo PromedioDeNotas
    Definir n, i Como Entero
    Definir nota, suma, promedio Como Real

    Escribir "¿Cuántas notas desea ingresar?"
    Leer n

    Si n <= 0 Entonces
        Escribir "La cantidad debe ser mayor que cero"
    Sino
        suma <- 0

        Para i <- 1 Hasta n Hacer
            Escribir "Ingrese la nota ", i, ":"
            Leer nota
            suma <- suma + nota
        FinPara

        promedio <- suma / n
        Escribir "Promedio: ", promedio
    FinSi
FinAlgoritmo

16. Encontrar el mayor y el menor de N números

Algoritmo MayorYMenor
    Definir n, i Como Entero
    Definir numero, mayor, menor Como Real

    Escribir "¿Cuántos números desea ingresar?"
    Leer n

    Si n <= 0 Entonces
        Escribir "La cantidad debe ser mayor que cero"
    Sino
        Escribir "Ingrese el número 1:"
        Leer numero

        mayor <- numero
        menor <- numero

        Para i <- 2 Hasta n Hacer
            Escribir "Ingrese el número ", i, ":"
            Leer numero

            Si numero > mayor Entonces
                mayor <- numero
            FinSi

            Si numero < menor Entonces
                menor <- numero
            FinSi
        FinPara

        Escribir "Mayor: ", mayor
        Escribir "Menor: ", menor
    FinSi
FinAlgoritmo

El primer valor ingresado se utiliza para inicializar tanto el mayor como el menor. Así el algoritmo funciona correctamente incluso si todos los valores son negativos.

17. Contar positivos, negativos y ceros

Algoritmo ContarTiposDeNumeros
    Definir n, i, positivos, negativos, ceros Como Entero
    Definir numero Como Real

    Escribir "¿Cuántos números desea ingresar?"
    Leer n

    positivos <- 0
    negativos <- 0
    ceros <- 0

    Para i <- 1 Hasta n Hacer
        Escribir "Ingrese un número:"
        Leer numero

        Si numero > 0 Entonces
            positivos <- positivos + 1
        Sino
            Si numero < 0 Entonces
                negativos <- negativos + 1
            Sino
                ceros <- ceros + 1
            FinSi
        FinSi
    FinPara

    Escribir "Positivos: ", positivos
    Escribir "Negativos: ", negativos
    Escribir "Ceros: ", ceros
FinAlgoritmo

18. Validar una contraseña con un máximo de 3 intentos

Algoritmo ValidarContrasena
    Definir clave Como Cadena
    Definir intentos Como Entero
    Definir acceso Como Logico

    intentos <- 0
    acceso <- Falso

    Mientras intentos < 3 Y acceso = Falso Hacer
        Escribir "Ingrese la contraseña:"
        Leer clave

        intentos <- intentos + 1

        Si clave = "programar" Entonces
            acceso <- Verdadero
        Sino
            Escribir "Contraseña incorrecta"
        FinSi
    FinMientras

    Si acceso Entonces
        Escribir "Acceso permitido"
    Sino
        Escribir "Se agotaron los intentos"
    FinSi
FinAlgoritmo

19. Menú de operaciones con Segun y Repetir

Algoritmo MenuDeOperaciones
    Definir opcion Como Entero
    Definir a, b Como Real

    Repetir
        Escribir "1. Sumar"
        Escribir "2. Restar"
        Escribir "3. Salir"
        Escribir "Seleccione una opción:"
        Leer opcion

        Segun opcion Hacer
            1:
                Escribir "Ingrese dos números:"
                Leer a
                Leer b
                Escribir "Resultado: ", a + b
            2:
                Escribir "Ingrese dos números:"
                Leer a
                Leer b
                Escribir "Resultado: ", a - b
            3:
                Escribir "Fin del programa"
            De Otro Modo:
                Escribir "Opción inválida"
        FinSegun
    Hasta Que opcion = 3
FinAlgoritmo

20. Mostrar los primeros N términos de Fibonacci

Algoritmo Fibonacci
    Definir n, i, a, b, siguiente Como Entero

    Escribir "¿Cuántos términos desea mostrar?"
    Leer n

    Si n <= 0 Entonces
        Escribir "La cantidad debe ser mayor que cero"
    Sino
        a <- 0
        b <- 1

        Para i <- 1 Hasta n Hacer
            Escribir a

            siguiente <- a + b
            a <- b
            b <- siguiente
        FinPara
    FinSi
FinAlgoritmo

La secuencia generada comienza con 0, 1, 1, 2, 3, 5.... En cada iteración se muestra el término actual y luego se actualizan los dos valores necesarios para calcular el siguiente.

Cómo aprovechar estos ejercicios

No conviene limitarse a copiar y ejecutar los algoritmos. Una buena práctica consiste en probarlos con distintos valores y después modificarlos. Por ejemplo, podés cambiar límites, agregar validaciones o pedir que un mismo ejercicio se repita hasta que el usuario elija salir.

Si recién estás empezando, también te recomendamos nuestra colección de ejemplos básicos resueltos en PSeInt. Para practicar estructuras de datos, podés continuar con Arreglos en PSeInt.