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.

Número par o impar en PSeInt: ejercicio resuelto paso a paso

Aprendé a determinar si un número es par o impar en PSeInt usando MOD, con ejemplo resuelto, explicación paso a paso y ejercicios para practicar.

Determinar si un número es par o impar en PSeInt es uno de los ejercicios más comunes para comenzar a practicar condicionales y el operador MOD.

Enunciado

Crear un algoritmo que solicite un número entero al usuario e indique si ese número es par o impar.

Solución en PSeInt

Algoritmo ParOImpar
Escribir "Ingrese un numero entero"
Leer nro
Si nro MOD 2 = 0 Entonces
Escribir "El numero es par"
Sino
Escribir "El numero es impar"
FinSi
FinAlgoritmo

¿Cómo funciona?

El operador MOD devuelve el resto de una división. Si al dividir un número por 2 el resto es 0, entonces el número es par. Si el resto es distinto de 0, es impar.

Por ejemplo, 8 MOD 2 devuelve 0, mientras que 7 MOD 2 devuelve 1.

Ejemplo de ejecución

Ingrese un numero entero
15
El numero es impar

Ejercicios para practicar

  • Modificar el algoritmo para indicar además si el número es positivo, negativo o cero.
  • Ingresar 10 números y contar cuántos son pares y cuántos impares.
  • Mostrar todos los números pares comprendidos entre 1 y 100.

¿Te sirvió este ejercicio? ☕

Si este contenido te ayudó, podés apoyar a Club Programador con el monto que quieras. Tu aporte nos ayuda a seguir publicando ejercicios resueltos y material gratuito.

Más ejercicios de PSeInt

Podés seguir practicando con nuestra guía de ejercicios básicos resueltos en PSeInt y con los ejemplos de arreglos y vectores en PSeInt.

Número primo en PSeInt: ejercicio resuelto y explicado

Cómo determinar si un número es primo en PSeInt, con algoritmo optimizado, explicación paso a paso y ejercicios para practicar.

Comprobar si un número es primo en PSeInt es un excelente ejercicio para practicar ciclos, condicionales y el operador MOD.

¿Qué es un número primo?

Un número primo es un entero mayor que 1 que tiene exactamente dos divisores positivos: 1 y él mismo. Por ejemplo, 2, 3, 5, 7 y 11 son primos.

Enunciado

Crear un algoritmo que solicite un número entero e indique si es primo o no.

Solución en PSeInt

Algoritmo NumeroPrimo
Escribir "Ingrese un numero entero"
Leer nro
Si nro <= 1 Entonces
Escribir "No es primo"
Sino
divisor <- 2
esPrimo <- Verdadero
Mientras divisor * divisor <= nro Y esPrimo Hacer
Si nro MOD divisor = 0 Entonces
esPrimo <- Falso
FinSi
divisor <- divisor + 1
FinMientras
Si esPrimo Entonces
Escribir "Es primo"
Sino
Escribir "No es primo"
FinSi
FinSi
FinAlgoritmo

Explicación paso a paso

Primero se descartan todos los valores menores o iguales a 1. Después se prueban divisores comenzando por 2. Si alguno divide exactamente al número, la variable esPrimo pasa a falso.

No hace falta probar hasta el propio número. Basta con comprobar divisores mientras divisor * divisor <= nro, lo que equivale a verificar hasta la raíz cuadrada.

Ejemplo de ejecución

Ingrese un numero entero
29
Es primo

Ejercicios para practicar

  • Mostrar todos los números primos entre 1 y 100.
  • Contar cuántos números primos hay entre dos valores ingresados.
  • Modificar el algoritmo para guardar los primos encontrados en un arreglo.

¿Te sirvió este ejercicio? ☕

Si este contenido te ayudó, podés apoyar a Club Programador con el monto que quieras. Tu aporte nos ayuda a seguir publicando ejercicios resueltos y material gratuito.

Más ejercicios de PSeInt

También podés consultar nuestra colección de ejercicios básicos resueltos en PSeInt y los ejercicios de arreglos y vectores.

Suma de dígitos de un número en PSeInt: ejercicio resuelto

Ejercicio resuelto en PSeInt para sumar los dígitos de un número usando MOD y Trunc, con explicación paso a paso y ejemplos.

Sumar los dígitos de un número en PSeInt es un ejercicio clásico para practicar ciclos y operaciones matemáticas como MOD y Trunc.

Enunciado

Crear un algoritmo que solicite un número entero positivo y calcule la suma de todos sus dígitos. Por ejemplo, si el usuario ingresa 123, el resultado debe ser 6.

Solución en PSeInt

Algoritmo SumaDigitos
Escribir "Ingrese un numero positivo"
Leer nro
resultado <- 0
Mientras nro <> 0 Hacer
resultado <- resultado + nro MOD 10
nro <- Trunc(nro / 10)
FinMientras
Escribir "La suma de los digitos es: ", resultado
FinAlgoritmo

¿Cómo funciona?

La expresión nro MOD 10 obtiene el último dígito del número. Luego, Trunc(nro / 10) elimina ese último dígito para continuar con el siguiente.

Si el número es 123, las iteraciones trabajan con 3, luego 2 y finalmente 1. El acumulador termina con 3 + 2 + 1 = 6.

Ejemplo de ejecución

Ingrese un numero positivo
583
La suma de los digitos es: 16

Versión que acepta números negativos

Si querés admitir números negativos, podés convertir primero el valor a positivo con Abs:

nro <- Abs(nro)

De esa manera, por ejemplo, -583 también devolverá 16.

Ejercicios para practicar

  • Contar cuántos dígitos tiene un número.
  • Calcular el producto de todos sus dígitos.
  • Determinar cuál es el dígito mayor de un número.
  • Invertir el orden de los dígitos.

¿Te sirvió este ejercicio? ☕

Si este contenido te ayudó, podés apoyar a Club Programador con el monto que quieras. Tu aporte nos ayuda a seguir publicando ejercicios resueltos y material gratuito.

Más ejercicios de PSeInt

Encontrá más ejemplos en nuestra guía de ejercicios básicos resueltos en PSeInt y en los ejercicios de arreglos y vectores en PSeInt.

Base matemática

Una intriga muy común que surge en todo nuevo aprendiz en la programación es el nivel matemático requerido para esta disciplina. En las carreras universitarias del área siempre nos vamos a encontrar con materias como álgebra, cálculo, probabilidad, estadísticas, matemática discreta, geometría analítica, entre otras, dependiendo del grado del título de la carrera.  Estas asignaturas proporcionan un importante sustento científico a los estudiantes que obtendrán su título para ejercer como futuros profesionales.

Pero vayamos al caso que nos interesa aquí, las personas que quieren aprender a programar por cuenta propia y deciden comenzar con la visita a diversos sitios que se correspondan al tema o leen libros hasta que se topan con esta gran interrogación: ¿Necesito saber matemática para programar?

Los cálculos que se procesan en un sistema pertenecen a un algoritmo que un programador tuvo que diseñar previamente, es decir, se efectúan operaciones que su creador tuvo que entender antes de resolverlas o al menos saber aplicarlas.

Lo cierto es que para adentrarse con un pie derecho en este mundo lo primero que se necesita es aprender propiedades básicas algebraicas que nos permitan resolver cálculos o plantear ecuaciones y funciones para desarrollar un problema en papel y luego poder programarlo en la computadora. Si ya tenes un poco de este manejo entonces podrás animarte a comenzar con la introducción a la lógica de programación y aprender a desarrollar algoritmos que resuelvan  tareas sencillas que en su conjunto conformarán un programa.

Entonces, de nuevo, ¿Es necesario saber matemática para programar?, la respuesta es sí, pero lo bueno es que podemos ir aprendiendo sus utilidades a medida que las vayamos necesitando. Como en cualquier disciplina que uno se tome con responsabilidad, sino sabemos como resolver algo tendremos que informarnos e investigar hasta dar con la respuesta que sepamos que es la correcta.

Por ejemplo, se puede no saber utilizar el 100% de las herramientas y utilidades que tiene Microsoft Word, pero si manejo las que necesito en cada caso podré crear un currículum, un informe, un libro u otro documento formal sin usar mas que una pequeña parte de esas utilidades. Si un día no se como aplicar una determinada sangría por ejemplo, entonces buscaré ejemplos en internet o lo consultare con alguien que si sepa lo que necesito para así aprender y luego aplicarlo.

Lo más importante acá es estar siempre dispuesto a seguir aprendiendo cosas nuevas o que mejoren lo que ya sabemos hacer. De nada sirve ir a la universidad, obtener un título y solo quedarnos con eso. La programación es un mundo que avanza muy rápidamente y no tardara en quedar obsoleto todo aquel que no se mantenga un poco actualizado. Internet es una gran herramienta tanto para el que está aprendiendo a programar como para el que ya trabaja como programador, en ambos casos siempre es necesario buscar ejemplos de cosas que queremos hacer como también aprender acerca del manejo de nuevos lenguajes, frameworks, etc. Antes solo habían libros para consulta, que son una gran fuente de aprendizaje pero podemos tardar mucho más en encontrar una respuesta que se ajuste a nuestro problema, entonces aprovechemos esta gran ventaja que nos deja la web.

La idea de esta publicación es animar a todos aquellos que tengan miedo a encontrarse con matemáticas en la carrera del programador…sepan que no es tan difícil como suele plantearse. En la mayoría de los casos, todo depende mas bien del área en el que nos vayamos a desarrollar…pero con esfuerzo y dedicación mas que nada todo se aprende.

 

 

Ejemplo de Calculadora en PSeint

A continación se muestra un algoritmo sencillo que representa una calculadora de las cuatro operaciones básicas:

Algoritmo Calculadora
	Repetir
		Escribir "Ingrese un número:"
		Leer n1
		Escribir "Ingrese otro número:"
		Leer n2
		Escribir "Ingrese el numero de operación: "
		Escribir " 1) Suma"
		Escribir " 2) Resta"
		Escribir " 3) División"
		Escribir " 4) Multiplicación"
		Escribir "Ingrese 0 para salir"
		Leer operacion
		Segun operacion Hacer
			1:
			  Escribir n1, " + ", n2, " = ", n1+n2
			2:
			  Escribir n1, " - ", n2, " = ", n1-n2
			3:
			  Escribir n1, " / ", n2, " = ", n1/n2
			4:  
		          Escribir n1, " * ", n2, " = ", n1*n2
                        De Otro Modo:
			SI operacion <> 0 Entonces
			  Escribir  "No es una opción válida"
		        FinSi
		Fin Segun
	Hasta Que operacion == 0
FinAlgoritmo

Trazas: verificación de algoritmos

La traza de un programa indica la secuencia de instrucciones de su ejecución, así como, el valor de las variables del algoritmo después de cada instrucción. Cada fila de la tabla es un ciclo de ejecución, excepto la primera que contiene los valores iniciales. El principal objetivo de una traza es evaluar la ejecución de un algoritmo para corroborar que haga exactamente lo que se quiere y detectar errores en el caso de que no. Solo necesitamos el algoritmo a evaluar, un lápiz y un papel.

En el siguiente ejemplo puede verse un algoritmo que suma números y a su derecha la traza correspondiente para los valores iniciales de variables «nro» igual a 1 y «resul» igual a 0. Se debe seguir paso a paso cada instrucción del algoritmo como si nosotros fuéramos el procesador y en cada ciclo del «Mientras» se obtendrán nuevos valores para las variables mencionadas, en el primer ciclo se obtiene que nro = 2 y resul = 1, en el siguiente ciclo tacho estos valores (a modo de evitar confusiones) y en la fila siguiente completo los valores correspondientes que serían en este caso nro = 3 y resul = 3. Esto continúa repetitivamente hasta que se cumpla la condición de corte del ciclo «Mientras» y después seguiría hasta finalizar cada instrucción siguiente del algoritmo. Se obtienen los siguientes valores del proceso total del algoritmo: nro = 5 y resul = 10.

Arreglos en PSeInt

Arreglos y vectores en PSeInt explicados con ejemplos resueltos: carga de datos, suma de elementos, recorridos y búsqueda del mayor valor.

Los arreglos en PSeInt permiten almacenar varios valores del mismo tipo bajo un único nombre. También suelen llamarse vectores cuando tienen una sola dimensión.

En lugar de crear una variable distinta para cada dato, un arreglo permite acceder a cada elemento mediante una posición o subíndice. Esto resulta especialmente útil cuando necesitamos recorrer, sumar, buscar o comparar muchos valores.

Cómo declarar un arreglo en PSeInt

Para crear un arreglo se utiliza la palabra clave Dimension:

Dimension numeros[7]

En este ejemplo, numeros es el nombre del arreglo y 7 indica la cantidad de posiciones disponibles.

Importante: la posición inicial de los arreglos puede depender del perfil o la configuración utilizada en PSeInt. En estos ejemplos trabajaremos con posiciones desde 1, que es una configuración habitual en ejercicios introductorios.

Índice de ejemplos

  1. Crear y mostrar un arreglo de 7 elementos
  2. Ingresar 5 números en un arreglo
  3. Sumar los elementos de un arreglo
  4. Encontrar el mayor valor de un arreglo

Ejemplo 1: crear y mostrar un arreglo de 7 elementos

Enunciado: crear un arreglo de dimensión 7, asignar un valor numérico a cada posición y mostrar todos los elementos en pantalla.

Algoritmo ArregloNumeros
    Dimension numeros[7]

    numeros[1] <- 20
    numeros[2] <- 14
    numeros[3] <- 8
    numeros[4] <- 0
    numeros[5] <- 5
    numeros[6] <- 19
    numeros[7] <- 4

    Para i <- 1 Hasta 7 Hacer
        Escribir "Posicion: ", i, " - Valor: ", numeros[i]
    FinPara
FinAlgoritmo

El ciclo recorre las siete posiciones del vector. En la versión anterior de este ejemplo el recorrido terminaba en 5, por lo que los dos últimos elementos no se mostraban.

Salida de un arreglo en PSeInt

Representación gráfica:

Representación de un vector en PSeInt

Los subíndices permiten identificar cada posición. Por ejemplo, en este vector el valor 14 se encuentra en la posición 2.

¿El tamaño de un arreglo puede ser una variable?

Sí, siempre que esa variable tenga un valor válido antes de ejecutar la instrucción Dimension. Por ejemplo:

Algoritmo VectorConTamanio
    Escribir "Ingrese el tamaño del vector"
    Leer n

    Si n > 0 Entonces
        Dimension numeros[n]
    FinSi
FinAlgoritmo

Lo importante es que el tamaño sea un número entero positivo al momento de dimensionar el arreglo.

Ejemplo 2: ingresar 5 números en un arreglo

Enunciado: permitir al usuario ingresar 5 números y luego mostrar cada valor junto con su posición.

Algoritmo Arreglo5Numeros
    Dimension numeros[5]

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el numero de la posicion ", i
        Leer numeros[i]
    FinPara

    Para i <- 1 Hasta 5 Hacer
        Escribir "Posicion: ", i, " - Valor: ", numeros[i]
    FinPara
FinAlgoritmo

El primer ciclo carga los datos y el segundo recorre nuevamente el arreglo para mostrarlos.

Ejemplo 3: sumar los elementos de un arreglo

Enunciado: ingresar 5 valores numéricos en un arreglo, sumarlos y mostrar el resultado.

Algoritmo SumaArreglo
    Dimension arreglo[5]
    suma <- 0

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el numero de la posicion ", i
        Leer arreglo[i]
        suma <- suma + arreglo[i]
    FinPara

    Escribir "Los valores ingresados fueron:"
    Para i <- 1 Hasta 5 Hacer
        Escribir arreglo[i]
    FinPara

    Escribir "La suma total es: ", suma
FinAlgoritmo

La variable suma funciona como acumulador. Cada nuevo elemento leído se agrega al total.

Ejemplo 4: encontrar el mayor valor de un arreglo

Enunciado: ingresar 10 valores numéricos y mostrar cuál es el mayor.

Algoritmo MayorValorArreglo
    Dimension arreglo[10]

    Para i <- 1 Hasta 10 Hacer
        Escribir "Ingrese el numero de la posicion ", i
        Leer arreglo[i]
    FinPara

    mayor <- arreglo[1]

    Para i <- 2 Hasta 10 Hacer
        Si arreglo[i] > mayor Entonces
            mayor <- arreglo[i]
        FinSi
    FinPara

    Escribir "El numero mayor es: ", mayor
FinAlgoritmo

La variable mayor debe inicializarse con un valor real del arreglo, por ejemplo el primer elemento. Esto evita errores cuando todos los números ingresados son negativos.

Conceptos que se practican con arreglos

  • Declaración con Dimension.
  • Acceso a elementos mediante subíndices.
  • Carga de datos con ciclos Para.
  • Acumuladores.
  • Búsqueda de valores máximos o mínimos.
  • Recorrido completo de vectores.

¿Te sirvió este ejercicio? ☕

Si este contenido te ayudó, podés apoyar a Club Programador con el monto que quieras. Tu aporte nos ayuda a seguir publicando ejercicios resueltos y material gratuito.

Más ejercicios resueltos de PSeInt

Si estás practicando lógica de programación, también podés consultar:

Una buena práctica es resolver estos mismos ejercicios cambiando la cantidad de elementos del arreglo o agregando nuevas consignas, como calcular el promedio, encontrar el menor valor o contar cuántos números cumplen una condición.

PSeInt: Ejemplos básicos resueltos

12 ejercicios de PSeInt resueltos y explicados paso a paso: condicionales, ciclos, números primos, divisores, promedios y más ejemplos para practicar lógica de programación.

Si estás aprendiendo lógica de programación, estos ejercicios resueltos en PSeInt te pueden servir para practicar las estructuras más utilizadas: lectura de datos, condicionales, ciclos, acumuladores y operaciones matemáticas.

Todos los ejemplos están pensados para que puedas copiarlos en PSeInt, ejecutarlos, modificarlos y entender qué hace cada parte del algoritmo.

Índice de ejercicios

  1. Hola Mundo
  2. Mayor, menor o igual a 9
  3. Número par o impar
  4. Suma de dos números
  5. Suma de números pares entre 2 y 100
  6. Divisores de un número
  7. Promedio de calificaciones: aprobado o reprobado
  8. Repetir un nombre utilizando Mientras
  9. Suma del 1 al 50 utilizando Repetir
  10. Sumar o multiplicar tres números
  11. Determinar si un número es primo
  12. Suma de los dígitos de un número

1. Hola Mundo en PSeInt

Enunciado: escribir un programa que muestre el texto “¡Hola mundo!”.

Algoritmo hola_mundo
    Escribir "Hola mundo"
FinAlgoritmo

Es el ejemplo más simple posible: permite comprobar cómo se define un algoritmo y cómo se muestra un mensaje en pantalla con Escribir.

2. Mayor, menor o igual a 9

Enunciado: ingresar un número e indicar si es mayor, menor o igual a 9.

Algoritmo MayoresIgualesMenoresA9
    Escribir "Ingrese un numero"
    Leer N

    Si N = 9 Entonces
        Escribir "El numero es igual a 9"
    Sino
        Si N > 9 Entonces
            Escribir "El numero es mayor a 9"
        Sino
            Escribir "El numero es menor a 9"
        FinSi
    FinSi
FinAlgoritmo

Este ejercicio sirve para practicar decisiones mediante la estructura Si ... Entonces ... Sino.

3. Número par o impar en PSeInt

Enunciado: ingresar un número e indicar si es par o impar.

Algoritmo ParidadNumeros
    Escribir "Ingrese un numero"
    Leer nro

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

La operación MOD devuelve el resto de una división. Si el resto de dividir un número por 2 es 0, el número es par. Ver el ejercicio de número par o impar explicado paso a paso.

4. Suma de dos números en PSeInt

Enunciado: ingresar dos números y mostrar el resultado de su suma.

Algoritmo SumaDosNumeros
    Escribir "Ingrese el numero 1"
    Leer Num1

    Escribir "Ingrese el numero 2"
    Leer Num2

    resultado <- Num1 + Num2
    Escribir "El resultado es: ", resultado
FinAlgoritmo

Primero se leen los dos valores, luego se almacena la suma en una tercera variable y finalmente se muestra el resultado.

5. Suma de números pares entre 2 y 100

Enunciado: sumar todos los números pares comprendidos entre 2 y 100.

Algoritmo SumaDePares
    suma <- 0
    nro <- 2

    Mientras nro <= 100 Hacer
        Si nro MOD 2 = 0 Entonces
            suma <- suma + nro
        FinSi
        nro <- nro + 1
    FinMientras

    Escribir "La suma de los pares entre 2 y 100 es: ", suma
FinAlgoritmo

Aquí se utiliza suma como acumulador. En cada vuelta del ciclo se agrega el número actual solamente si es par.

6. Divisores de un número

Enunciado: ingresar un número y mostrar todos sus divisores.

Algoritmo DivisoresDeNumero
    Escribir "Ingrese un numero positivo"
    Leer num

    div <- 1

    Mientras div <= num Hacer
        Si num MOD div = 0 Entonces
            Escribir div
        FinSi
        div <- div + 1
    FinMientras
FinAlgoritmo

Un número es divisor de otro cuando el resto de la división es cero. Por eso se prueba cada valor desde 1 hasta el número ingresado.

7. Promedio de calificaciones: aprobado o reprobado

Enunciado: ingresar tres calificaciones. El alumno aprueba si su promedio es mayor o igual a 4.

Algoritmo ApruebaReprueba
    Escribir "Ingrese calificacion 1"
    Leer cal1

    Escribir "Ingrese calificacion 2"
    Leer cal2

    Escribir "Ingrese calificacion 3"
    Leer cal3

    promedio <- (cal1 + cal2 + cal3) / 3

    Si promedio >= 4 Entonces
        Escribir "Aprueba"
    Sino
        Escribir "Reprueba"
    FinSi

    Escribir "Promedio: ", promedio
FinAlgoritmo

El ejercicio combina operaciones aritméticas y una estructura condicional para tomar una decisión a partir del promedio.

8. Repetir un nombre utilizando Mientras

Enunciado: ingresar un nombre y una cantidad, y mostrar el nombre tantas veces como indique esa cantidad.

Algoritmo CantidadNombre
    Escribir "Ingrese un nombre"
    Leer nombre

    Escribir "Ingrese una cantidad"
    Leer cantidad

    Mientras cantidad > 0 Hacer
        Escribir nombre
        cantidad <- cantidad - 1
    FinMientras
FinAlgoritmo

En cada repetición se resta 1 a la cantidad hasta llegar a cero, momento en el que finaliza el ciclo.

9. Suma del 1 al 50 utilizando Repetir

Enunciado: sumar todos los números naturales comprendidos entre 1 y 50 utilizando Repetir.

Algoritmo SumaNumerosNaturales1a50
    num <- 1
    resultado <- 0

    Repetir
        resultado <- resultado + num
        num <- num + 1
    Hasta Que num > 50

    Escribir "El resultado es: ", resultado
FinAlgoritmo

El acumulador comienza en cero y recibe el valor de cada número antes de incrementar el contador.

10. Sumar o multiplicar tres números

Enunciado: ingresar tres números. Si el primero es negativo, multiplicar los tres; de lo contrario, sumarlos.

Algoritmo TresNumeros
    Escribir "Ingrese numero 1"
    Leer num1

    Escribir "Ingrese numero 2"
    Leer num2

    Escribir "Ingrese numero 3"
    Leer num3

    Si num1 < 0 Entonces
        resultado <- num1 * num2 * num3
    Sino
        resultado <- num1 + num2 + num3
    FinSi

    Escribir "Resultado: ", resultado
FinAlgoritmo

La operación que se realiza depende del signo del primer número ingresado.

11. Número primo en PSeInt

Enunciado: determinar si un número entero ingresado es primo. Un número primo es un entero mayor que 1 que solamente tiene dos divisores positivos: 1 y él mismo.

Algoritmo NumeroPrimo
    Escribir "Ingrese un numero entero"
    Leer nro

    Si nro <= 1 Entonces
        Escribir "No es primo"
    Sino
        divisor <- 2
        esPrimo <- Verdadero

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

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

No es necesario probar divisores hasta el propio número: alcanza con comprobar hasta su raíz cuadrada. Esto reduce considerablemente la cantidad de iteraciones. Ver el ejercicio de número primo explicado paso a paso.

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

Enunciado: sumar todos los dígitos de un número entero positivo. Por ejemplo, para 123 el resultado debe ser 6.

Algoritmo SumaDigitos
    Escribir "Ingrese un numero positivo"
    Leer nro

    resultado <- 0

    Mientras nro <> 0 Hacer
        resultado <- resultado + nro MOD 10
        nro <- Trunc(nro / 10)
    FinMientras

    Escribir "El resultado es: ", resultado
FinAlgoritmo

MOD 10 permite obtener el último dígito, mientras que Trunc(nro / 10) elimina ese dígito para continuar con el siguiente. Ver el ejercicio de suma de dígitos explicado paso a paso.


¿Te sirvió este ejercicio? ☕

Si este contenido te ayudó, podés apoyar a Club Programador con el monto que quieras. Tu aporte nos ayuda a seguir publicando ejercicios resueltos y material gratuito.

 

Más ejercicios de PSeInt

Si querés continuar practicando, también podés consultar estos contenidos del sitio:

¿Cómo aprovechar estos ejercicios?

Una buena forma de aprender es ejecutar primero cada solución y después intentar modificarla: cambiar los límites de los ciclos, agregar validaciones, utilizar otros valores o resolver el mismo problema con una estructura diferente. El objetivo no es solamente copiar el código, sino entender la lógica que hay detrás de cada algoritmo.

Intérprete de pseudocódigo: PSeInt

¿Qué es PSeInt?psEInt

Es una herramienta para asistir a un estudiante en sus primeros pasos en programación.

Mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite centrar su atención en los conceptos fundamentales de la lógica de los algoritmos, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos.

El proyecto es de software libre, gratuito, y se encuentra en constante desarrollo, permitiendo la descarga de las versiones mas recientes al momento de la fecha.

Sitio web oficial : www.pseint.sourceforge.net

Entrando a la web oficial de arriba se puede descargar el intérprete, su instalación es muy rápida y sencilla.

Una vez instalado PSeInt veremos como funciona:

psEInt 1.png

psEInt 2

Estructura general de un algoritmo en PSeInt

Proceso SinTitulo;

  acción 1;

  …

  acción n;

FinProceso

Tipos de datos

  • Tipos Simples: Numérico, Lógico, Caracter.
  • Estructuras de Datos: Arreglos.

Tipos de Datos Simples

Comenzaremos por los tipos de datos simples, los arreglos se veran en otro post más adelante.

  • Numérico: números, tanto enteros como decimales. Para separar decimales se utiliza el punto. Ejemplos: 12 23 0 -2.3 3.14
  • Lógico: solo puede tomar dos valores: VERDADERO o FALSO.
  • Carácter: caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples). Ejemplos ‘hola’ «hola mundo» ‘123’ ‘FALSO’ ‘etc’

Los tipos de datos simples se determinan automáticamente cuando se crean las variables.

Las dos acciones que pueden crear una variable son la lectura (LEER) y la asignación(<-).

Por ejemplo, la asignación «A<-0;» está indicando implícitamente que la variable A será una variable numérica.

Expresiones

  • Operadores.
  • Funciones.

Operadores

PSeInt dispone de un conjunto básico de operadores que pueden ser utilizados para la construcción de expresiones más o menos complejas.

operadores
Operadores en PSeInt

operadores 2
Funciones matemáticas en PSeInt

 

PRIMITIVAS SECUENCIALES

Se llama primitivas en PSeInt a las palabras que el lenguaje tiene reservadas para determinados comandos de programación.

Comandos de Entrada, Proceso y Salida

  • Lectura (Entrada).
  • Asignación (Proceso).
  • Escritura (Salida).

Lectura o entrada

La instrucción Leer permite ingresar información desde el ambiente.

Leer <variablel> , <variable2> , … , <variableN> ;

Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las N variables mencionadas. Pueden incluirse una o más variables, por lo tanto el comando leerá uno o más valores.

Escritura o salida

La instrucción Escribir permite mostrar valores al ambiente.

Escribir <exprl> , <expr2> , … , <exprN> ;

Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de evaluar N expresiones. Dado que puede incluir una o más expresiones, mostrará uno o más valores.
Estructuras de Control (Proceso)

Condicionales

  • Si-Entonces
  • Selección Múltiple

Repetitivas

  • Mientras
  • Repetir
  • Para

Condicionales

Si-Entonces (If-Then)

La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una condición lógica.

Si <condición> Entonces

   <instrucciones>

  Sino

  <instrucciones>

FinSi

La condición debe ser una expresión lógica, que al ser evaluada retorna
Verdadero o Falso.

La cláusula Entonces debe aparecer siempre, pero la cláusula Sino puede no estar. En ese caso, si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente.

condicion

Ejemplo: Algoritmo que determina si un número es par o impar.

Ejemplo condicion

Selección Múltiple (Select If)

La secuencia de instrucciones es ejecutada por una instrucción Según» depende del valor de una variable numérica.

Segun <variable> Hacer

  <número1>: <instrucciones>,

   <número2>: <instrucciones>,

  <número3>: <instrucciones>,

  <…>

  De Otro Modo: <instrucciones>

FinSegun

Esta estructura condicional permite determinar de ante mano diversos caminos que pueda tomar el programa de acuerdo a la evaluación de un valor ingresado.

segun

Ejemplo: Algoritmo que detecta la opción elegida y muestra un cartel con la misma.

segun code

Repetitivas
Mientras Hacer (while)

La instrucción «Mientras» ejecuta una secuencia de instrucciones mientras una condición sea verdadera.

Mientras <condición> Hacer

  <instrucciones>

FinMientras

Al ejecutarse esta instrucción, la condición es evaluada. Si la condición resulta verdadera, se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al finalizar la ejecución del cuerpo del ciclo se vuelve a evaluar la condición y, si es verdadera, la ejecución se repite. Estos pasos se repiten mientras la condición sea verdadera.

mientras

Ejemplo: Algoritmo que suma todos los números pares comprendidos entre 1 y 100.

mientras_ej

Repetir Hasta Que 

La instrucción «Repetir Hasta Que» ejecuta una secuencia de instrucciones hasta que la condición sea verdadera.

Repetir

   <instrucciones>

Hasta Que <condición>

Al ejecutarse esta instrucción, la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evalúa la condición. Si la condición es falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición. Esto se repite hasta que la condición sea verdadera. Note que, dado que la condición se evalúa al final, las instrucciones del cuerpo del ciclo serán ejecutadas al menos una vez.

repetir

Ejemplo: Algoritmo que permite ingresar una clave y verifica si es correcta o no.

Repetir ej

Para

La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces.

Para <variable> <- <inicial> Hasta <final> ( Con Paso <paso> ) Hacer

<instrucciones>

 FinPara

Al ingresar al bloque, la variable <variable> recibe el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó al valor <final>. Si esto es falso se repite hasta que <variable> supere a <final>. Si se omite la cláusula «Con Paso» <paso>, la variable <variable> se incrementará en 1.

para

Ejemplo: Algoritmo que imprime todos los números comprendidos entre 1 y 10 multiplicados por 2.

para ej

MENÚ EJECUTAR:

Este menú contiene diversas opciones relacionadas a cómo ejecutar un programa en PSeInt.

EJECUTAR

Modos de Ejecución:

  • Ejecución normal: ejecuta el programa completo de corrido.
  • Ejecución paso a paso: Ejecuta el programa instrucción por instrucción, permitiendo que podamos ver la secuencia de instrucciones que sigue el mismo.
  • Ejecución Explicada: ejecuta el programa paso a paso y proporciona además una breve explicación de lo que se hace en cada instrucción.

Verificar Sintaxis:

  • Esta opción permite verificar todo el código del programa en búsqueda de errores de sintaxis.
  • En caso de encontrar errores los mostrará en una ventana inferior, identificando el número de línea en que se encuentra y sus posibles causas.

Predefinir entradas

Cuando abrimos esta opción, en la ventana se explica su funcionamiento:

predefinir

Ejemplo:

ejemplo predefinido.png

En este ejemplo, si se utilizaran los valores predefinidos de la imagen de la derecha entonces las variables tomarían los valores:

a<-3

b<-433

c<-6

d<-24