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.

Practicá más con arreglos

Si ya entendés el concepto básico, podés continuar con 20 ejercicios resueltos de PSeInt con vectores y después avanzar a 20 ejercicios resueltos con matrices.

También tenés disponible la guía completa de PSeInt con todos los temas ordenados.

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.

☕ Apoyar con PayPal

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.

¿Querés seguir aprendiendo PSeInt?

Podés continuar con la guía completa de PSeInt o practicar por tema:

Í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.

🇦🇷 Apoyar desde Argentina

☕ Invitame un café con Mercado Pago

🌎 Apoyar desde otro país

☕ Apoyar con PayPal

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.

Pasar de PSeInt a Python

Si ya entendés la lógica con pseudocódigo y querés dar el siguiente paso, podés continuar con De PSeInt a Python: 10 algoritmos traducidos paso a paso o recorrer la guía completa de Python.

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


Continuá practicando PSeInt

Ahora que conocés el entorno, las estructuras básicas y la forma de ejecutar algoritmos, podés seguir con la guía completa de PSeInt.