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

5 algoritmos de búsqueda y ordenamiento en PSeInt

5 algoritmos de búsqueda y ordenamiento en PSeInt con vectores: búsqueda secuencial, binaria, burbuja, selección e inserción, explicados paso a paso.

Los algoritmos de búsqueda y ordenamiento en PSeInt son una excelente forma de practicar vectores, ciclos, condicionales y comparaciones. En esta guía vemos cinco métodos clásicos aplicados sobre vectores usando posiciones desde 1.

Antes de comenzar, si necesitás repasar vectores, podés ver nuestros 20 ejercicios resueltos de PSeInt con vectores.

Índice

  1. Búsqueda secuencial
  2. Búsqueda binaria
  3. Ordenamiento burbuja
  4. Ordenamiento por selección
  5. Ordenamiento por inserción

1. Búsqueda secuencial

La búsqueda secuencial recorre el vector desde el primer elemento hasta encontrar el valor buscado o llegar al final. Es simple y funciona aunque el vector no esté ordenado.

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

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el valor ", i, ":"
        Leer numeros[i]
    FinPara

    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 "Valor encontrado en la posicion ", posicion
    Sino
        Escribir "El valor no se encuentra en el vector"
    FinSi
FinAlgoritmo

Ventaja: no necesita que los datos estén ordenados.

Desventaja: en el peor caso debe recorrer todo el vector.

2. Búsqueda binaria

La búsqueda binaria es más eficiente, pero requiere que el vector esté ordenado. En cada paso compara el valor buscado con el elemento central y descarta la mitad del vector.

Algoritmo BusquedaBinaria
    Definir numeros, buscado, izquierda, derecha, medio, posicion Como Entero
    Definir encontrado Como Logico
    Dimension numeros[8]

    numeros[1] <- 2
    numeros[2] <- 5
    numeros[3] <- 8
    numeros[4] <- 12
    numeros[5] <- 16
    numeros[6] <- 20
    numeros[7] <- 25
    numeros[8] <- 30

    Escribir "Ingrese el valor a buscar:"
    Leer buscado

    izquierda <- 1
    derecha <- 8
    encontrado <- Falso

    Mientras izquierda <= derecha Y encontrado = Falso Hacer
        medio <- Trunc((izquierda + derecha) / 2)

        Si numeros[medio] = buscado Entonces
            encontrado <- Verdadero
            posicion <- medio
        Sino
            Si buscado < numeros[medio] Entonces
                derecha <- medio - 1
            Sino
                izquierda <- medio + 1
            FinSi
        FinSi
    FinMientras

    Si encontrado Entonces
        Escribir "Valor encontrado en la posicion ", posicion
    Sino
        Escribir "El valor no se encuentra en el vector"
    FinSi
FinAlgoritmo

Importante: si el vector no está ordenado, la búsqueda binaria no garantiza un resultado correcto.

3. Ordenamiento burbuja

El método burbuja compara elementos vecinos y los intercambia cuando están en el orden incorrecto. Después de cada pasada, los valores mayores van quedando al final del vector.

Algoritmo OrdenamientoBurbuja
    Definir numeros, i, j, auxiliar Como Entero
    Dimension numeros[5]

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el valor ", i, ":"
        Leer numeros[i]
    FinPara

    Para i <- 1 Hasta 4 Hacer
        Para j <- 1 Hasta 5 - i Hacer
            Si numeros[j] > numeros[j+1] Entonces
                auxiliar <- numeros[j]
                numeros[j] <- numeros[j+1]
                numeros[j+1] <- auxiliar
            FinSi
        FinPara
    FinPara

    Escribir "Vector ordenado:"

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

Es uno de los métodos más fáciles de comprender, aunque no suele ser la mejor opción para grandes cantidades de datos.

4. Ordenamiento por selección

El método de selección busca el menor valor de la parte no ordenada del vector y lo coloca en la posición correspondiente.

Algoritmo OrdenamientoSeleccion
    Definir numeros, i, j, posicionMenor, auxiliar Como Entero
    Dimension numeros[5]

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el valor ", i, ":"
        Leer numeros[i]
    FinPara

    Para i <- 1 Hasta 4 Hacer
        posicionMenor <- i

        Para j <- i + 1 Hasta 5 Hacer
            Si numeros[j] < numeros[posicionMenor] Entonces
                posicionMenor <- j
            FinSi
        FinPara

        Si posicionMenor <> i Entonces
            auxiliar <- numeros[i]
            numeros[i] <- numeros[posicionMenor]
            numeros[posicionMenor] <- auxiliar
        FinSi
    FinPara

    Escribir "Vector ordenado:"

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

Selección realiza menos intercambios que burbuja, aunque igualmente requiere muchas comparaciones.

5. Ordenamiento por inserción

El método de inserción toma cada elemento y lo coloca en la posición correcta dentro de la parte del vector que ya está ordenada.

Algoritmo OrdenamientoInsercion
    Definir numeros, i, j, actual Como Entero
    Dimension numeros[5]

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el valor ", i, ":"
        Leer numeros[i]
    FinPara

    Para i <- 2 Hasta 5 Hacer
        actual <- numeros[i]
        j <- i - 1

        Mientras j >= 1 Y numeros[j] > actual Hacer
            numeros[j+1] <- numeros[j]
            j <- j - 1
        FinMientras

        numeros[j+1] <- actual
    FinPara

    Escribir "Vector ordenado:"

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

Inserción suele funcionar muy bien cuando el vector es pequeño o ya está casi ordenado.

Comparación rápida

Algoritmo Tipo Requiere datos ordenados Idea principal
Búsqueda secuencial Búsqueda No Recorrer elemento por elemento
Búsqueda binaria Búsqueda Sí Dividir el rango de búsqueda a la mitad
Burbuja Ordenamiento No Comparar elementos vecinos
Selección Ordenamiento No Buscar el menor y colocarlo en su posición
Inserción Ordenamiento No Insertar cada elemento en la parte ya ordenada

¿Cuál conviene usar?

Para aprender lógica de programación, los cinco métodos son muy útiles. La búsqueda secuencial es la más simple para empezar. Si los datos ya están ordenados, la búsqueda binaria permite encontrar valores mucho más rápido. Entre los métodos de ordenamiento, burbuja es el más fácil de visualizar, mientras que selección e inserción permiten practicar otras estrategias de recorrido e intercambio.

Seguí practicando PSeInt

También podés practicar con nuestros 20 ejercicios de vectores, los 20 ejercicios de ciclos y condicionales y los ejercicios básicos resueltos en PSeInt.


¿Te sirvió este contenido? ☕

Si esta guía te ayudó, podés apoyar a Club Programador con el monto que quieras. Tu aporte ayuda a mantener el contenido gratuito y a seguir publicando nuevos ejercicios.

🇦🇷 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.