PSeInt

Domina PSeInt: Comandos Repetir, Para y Función

Antes de ir de lleno a programar los estudiantes deben entender que son los algoritmos y tienen que aprender a escribirlos, pues no hay pilar más importante en la programación que los algoritmos. Esto desarrolla el pensamiento algorítmico en los estudiantes y hace que sea más sencillo para ellos en un futuro escribir programas complejos. Existe una gran cantidad de aplicaciones de escritorio para crear algoritmos, pero una que ha destacado en la comunidad de habla hispana es PSeInt.

¿Qué es PSeInt?

PSeInt es una herramienta para ayudar a las personas que se están iniciando en el campo de la programación mediante un simple e intuitivo pseudolenguaje en español, que incluye un creador de diagramas de flujo. PSeInt permite a estas personas enfocarse en los conceptos fundamentales del pensamiento computacional, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos.

La importancia de PSeInt en la Programación Estructurada

PSeInt es una herramienta valiosa en el contexto de la programación estructurada por varias razones fundamentales. Debido a que cuenta con una interfaz intuitiva esta facilita la comprensión de la secuencia de comandos, la toma de decisiones y la repetición, elementos centrales de la programación estructurada.

¿Qué es la Programación Estructurada?

La programación estructurada es un paradigma de programación que se basa en dividir los programas en bloques estructurados o módulos claramente definidos, con el objetivo de mejorar la claridad y la eficiencia del código. Este enfoque se centra en el uso de tres estructuras de control fundamentales: secuencia, selección y repetición. Las cuales PSeInt incluye.

  • Secuencia: Las instrucciones se ejecutan en un orden secuencial, de arriba a abajo. Esto hace que cada instrucción se ejecuta una tras otra.
  • Selección: Se utilizan estructuras condicionales (como if, else, switch) para tomar decisiones en el programa. En PSeInt estas estructuras están incluidas con los nombres de Si…Sino y Según.
  • Repetición: Se utilizan bucles (como for, while, do-while) para repetir un bloque de código varias veces. Esto mejora la eficiencia al evitar la repetición manual de código. En PSeInt encontramos los mismos comandos con los nombres de Para, Repetir y Mientras

¿Qué hace a PSeInt un Software tan útil para aprender la lógica de los algoritmos?

PSeInt es un software extremadamente útil para aprender lógica de algoritmos por diversas razones. A continuación te presentaré una lista detallada que destaca las características que hacen de este software una herramienta valiosa para el aprendizaje de la programación y la lógica de algoritmos:

  • Interfaz Amigable: PSeInt ofrece una interfaz gráfica intuitiva y fácil de usar, ideal para usuarios principiantes en programación.
  • Enfoque Didáctico: Diseñado específicamente como un entorno educativo, PSeInt se centra en la lógica de programación, simplificando la sintaxis para facilitar la comprensión de los conceptos fundamentales.
  • Ejecución Paso a Paso: Permite la ejecución paso a paso de los programas, haciendo más sencillo percibir el flujo de ejecución, ayudando a comprender cómo funcionan los algoritmos.
  • Soporte para pseudocódigo: Permite escribir algoritmos en pseudocódigo, facilitando la transición a otros lenguajes de programación.
  • Compatibilidad los Sistemas Operativos: Es compatible con varios sistemas operativos, lo que facilita su uso en diferentes entornos educativos y asegura accesibilidad para usuarios con diferentes sistemas.

Otro punto a favor de este programa es que PSeInt cuenta con la capacidad crear diagramas de flujo a cada programa que usted realize, esto es muy importante a la hora de explicarle la lógica de tu algoritmo a otro programador, para esto es super importante entender que significa cada forma y cada color en estos diagramas que PSeInt genera. Por ende he creado una especie de glosario para que comprendas los diagramas de flujo en PSeInt con más facilidad:

Elementos de los Diagramas de Flujo de PSeInt:

Este elemento en PSeInt nos indica que hay un comentario en el programa, los comentarios son mensajes que el programador escribe para mayor claridad de su proceso mental. Cabe aclarar que los comentarios serán ignorados por el interprete, es decir estos solo sirven para mayor compresión del programa por parte del mismo desarrollador u otras personas que van a leer su código

El cuadrado en los diagramas de flujo nos indican los procesos, en este caso representan una asignación o una definición de variables. Este elemento también nos representa que se está haciendo el llamado a una función

Esta figura verde indica que un texto se va a imprimir en pantalla, con imprimir nos referimos a que va a aparecer el mensaje que le coloquemos al usuario en el programa en cuestión. Normalmente estos mensajes van a ser instrucciones para generar salidas en el programa.

Este elemento nos representa la acción de Leer una entrada por parte del usuario, esto generalmente es un dato que se va a almacenar en una variable la cual aparecerá en esta figura.

Como es bien conocido cuando queremos representar condiciones en los diagramas de flujo dibujamos un rombo, en PSeInt es igual, esta figura nos representa una estructura condicional simple SI-ENTONCES que mediante sus flechas nos indica que pasa cuando la condición es falsa o verdadera.

Esta figura nos indica que estamos usando el comando según en el programa. Según es una estructura de selección multiple la cual podemos asemejar con el comando Switch de Java, Javascript, PHP, entre otros lenguajes de programación. Esta nos indica que dependiendo el valor numérico que tome una variable se ejecutará una serie de acciones correspondientes.

Este comando si bien esta representado con un rombo no es una estructura condicional, lo que representa es el comando Mientras que es una estructura iterativa o repetitiva la cual se ejecutara un cierto numero de veces hasta que una condición lógica no sea verdadera.

Otra vez vemos representado el rombo, pero en este caso no es ni el comando mientras, ni el comando, Si..Sino. Este representa el comando Repetir el cual es una estructura iterativa también que sirve para repetir una secuencia de acciones cierto número de veces hasta que una condición lógica sea verdadera,

En este caso esta figura representa el comando Para o mejor conocido en la mayoría de lenguajes de programación como el comando For.

Comando Repetir

El comando Repetir se utiliza para implementar bucles o ciclos en un programa. Un bucle es una estructura de control iterativa que permite ejecutar repetidamente un bloque de código mientras se cumple una condición específica. La característica que hace único a nuestro comando Repetir es que el bloque de código se ejecuta al menos una vez, independientemente de la condición de salida del bucle.

Sintaxis de Repetir:

Repetir
   //Código que se repetirá
Hasta Que condición
  • condición: Es la condición que se deberá cumplir para que este código pare de ejecutarse

Uso Principal

  • Ejecución Garantizada: El bloque de código dentro de Repetir se ejecutará al menos una vez, sin importar si la condición es verdadera o falsa inicialmente. Esto es útil cuando deseas asegurarte de que ciertas instrucciones se ejecuten al menos una vez antes de verificar la condición de salida.
  • Bucles con Condiciones de Salida: Después de la primera ejecución, el bucle continuará ejecutándose mientras la condición especificada en HASTA_QUE sea verdadera. Esto permite la implementación de bucles con condiciones de salida más flexibles.

Ejemplo #1 de Uso:

contador = 1
Repetir
    Escribir contador
    contador = contador + 1
Hasta Que contador > 5

Este ejemplo imprime los números del 1 al 5 utilizando un bucle Repetir. El bloque de código se ejecutará al menos una vez, y luego continuará ejecutándose hasta que contador sea mayor que 5.

Ejemplo #2 de Uso – Programa de Trivia de Fútbol

Para este programa, que es más elaborado que el ejemplo 1, contamos con un video para que entiendas aún más a fondo el comando Repetir, esto mediante la explicación del juego de fútbol que consiste en hacer preguntas y respuestas

Explicación Paso a Paso:

Contexto: Este programa es un juego de preguntas de fútbol, de trivia de fútbol, el cual cuenta con 10 preguntas y además tiene un sistema de puntuación que por cada respuesta correcta te sumará un punto. Si llegas al final del juego con más de 7 puntos te llevarás un jugoso premio

Programa creado en PSeInt

Lo que se esta ejecutando en las primera 20 líneas de código es interactuando con el usuario de manera que este escriba su nombre y que diga si se cree capaz de contestar todas las preguntas correctamente. Aquí utilizamos el comando Leer para leer la respuesta del usuario y almacenarla en una variable, también hacemos uso de la estructura condicional Si…SiNo, para ejecutar cierto mensaje cuando este escriba que si se cree capaz o cuando este escriba otra cosa distinta a “SI”, “Si”, “sI” o “si”. A partir de la línea 22 hacia adelante se escriben las reglas del juego y como se juega.

Programa creado en PSeInt

En la línea 44 del programa lo que estamos es definiendo 11 variables las cuales van a almacenar la respuesta a cada pregunta que nosotros le hagamos al usuario. También definimos los puntos totales, esto para llevar el conteo de cuantos puntos va consiguiendo a lo largo del juego.

En la línea 52 hacemos uso del Repetir y esto se realiza para que si escribe una respuesta incorrecta tenga otra oportunidad. Adentro del repetir ademas de leer la respuesta del usuario a la pregunta 1, tenemos una estructura condicional que cuando sea verdadera (cuando el usuario conteste la pregunta correctamente) va a sumar un punto a la variable de los puntos totales que se inicializó en 0, también le dirá que la respuesta es correcta y además le dirá con cuantos puntos cuenta actualmente.

En la línea 60 se puede notar que en el SiNo hay otro Si…SiNo anidado y esto lo hacemos para que cuando el usuario quiera pasar a la otra pregunta, escribiendo “no se”, el mensaje no sea mismo que cuando su respuesta es incorrecta.

Y por último en la linea 69 en el Hasta Que pusimos 3 condiciones que mientras una de esas sea verdadera se parará la ejecución de la estructura repetitiva.

La lógica de las líneas 49 hasta la 69 se repiten a lo largo de las 10 preguntas por ende te dejare un carrusel de imágenes de lo que queda de código para que no leas siempre lo mismo

Prueba de Escritorio:

A continuación verás el programa en ejecución paso a paso por medio de otro carrusel de imágenes

  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt
  • Prueba de escritorio PSeInt

Código Completo:

Diagrama de flujo del Juego:

Diagrama de Flujo creado en PSeInt

En la primera parte de este diagrama de flujo vemos como creamos un variable para almacenar el nombre del usuario, después imprimimos en pantalla la instrucción para que escriba el nombre, el cuadrilátero rojo nos representa que se hizo la lectura de la variable y se almacenará ahí.

Más adelante vemos un condicional que si la respuesta es igual a “Si” osea verdadero, imprimirá un texto diciendo que le gusta la actitud del usuario, de lo contrario imprimirá un mensaje de motivación para el usuario.

Después solamente se encuentran cuadriláteros verdes, porque únicamente estamos escribiendo las reglas del juego.

Diagrama de Flujo creado en PSeInt

Después de ejecutarse todos los “Escribir” (es decir lo cuadriláteros verdes) definimos las variables en las que se almacenarán todas las respuestas de los usuarios a las preguntas. De igual manera se inicializá la variable de los puntos totales en 0.

Debajo del cuadrilátero verde vemos una flecha que hace alusión a nuestro comando Repetir, a su vez debajo de él vemos un cuadrilátero rojo, puesto a que se hará la lectura de la respuesta a la primera pregunta de nuestro juego, después de ingresado ese valor podemos ver un rombo, que nos indica la participación de un condicional. Este va a ver si la respuesta es igual a “barcelona” o “Barcelona” si sí es igual, se sumará un punto a la variable de puntosTotales, es decir se le volverá a asignar un valor a esa variable, por eso está en amarillo. De lo contrario mira si es igual a un no sé, y si no es ninguno de los anteriores saltará al rombo morado y volverá a realizar el proceso.

El diagrama de flujo es más extenso, sin embargo es innecesario mostrarlo todo pues de la primera pregunta hacía abajo se repite el código, así mismo el diagrama de flujo.

Comando Para

El comando Para se utiliza para implementar bucles con un número específico de iteraciones en un programa. Este tipo de bucle es especialmente útil cuando se conoce la cantidad exacta de veces que se desea que se repita un bloque de código.

Sintaxis de Para

Para (variable_numerica) < (valor_inicial) Hasta (valor_final) Con Paso (paso) Hacer
	//Código a ejecutar
Fin Para
  • variable_numerica: Es la variable de control del bucle, que se utiliza para llevar la cuenta de las iteraciones.
  • valor_Inicial: Es el valor inicial de la variable de control.
  • valor_Final: Es el valor final de la variable de control, el bucle continuará hasta alcanzar este valor.
  • paso o Incremento: Es el valor que se suma a la variable de control en cada iteración. Puede ser positivo o negativo, y determina si la variable aumenta o disminuye en cada iteración.

Ejemplo #1 de Para

Supongamos que deseas imprimir los números del 1 al 5 utilizando un bucle Para en PSeInt:

Algoritmo Bucle_For
    Para i = 1 Hasta 5 Con Paso 1 Hacer
	Escribir i
    Fin Para
FinAlgoritmo
  1. En nuestro bucle inicializamos una variable con el identificador “i” (una manera común de llamar a estas variables que nos llevan el control del bucle)
  2. En cada iteración del bucle, se ejecuta el bloque de código dentro del Para. En este ejemplo, se imprime el valor actual de i.
  3. Después de ejecutar el bloque de código, la variable de control i se incrementa automáticamente según el valor de “paso” (1 en este caso). Esto continúa hasta que se alcanza o supera el valor final especificado (5 en este caso).

Ejemplo #2 de Para

Tenemos un video tutorial para el segundo ejemplo de uso de nuestro comando, ideal para aquellos que prefieren aprender mediante contenido visual. Si no quieres ver el video completo sigue leyendo y encontrarás la explicación del programa #2 de manera escrita

Explicación Paso a Paso:

Contexto: Imagina que eres un patrocinador de alguna marca (en este caso Budweiser) y quieres decirle al programa cuantas veces quiere que su anuncio aparezca en las pantallas de un estadio, le das el número y justo después ves tu anuncio ese numero de veces en pantalla.

En las primeras 5 líneas de código únicamente definimos e inicializamos las variables num1 y num2. La variable num1 controla el bucle, mientras que num2, ingresada por el patrocinador, determina la frecuencia de aparición del anuncio en las pantallas del estadio.

En la línea 10, el usuario ingresa la frecuencia deseada para mostrar el anuncio en el estadio. La condición en la línea 12 maneja la excepción cuando el usuario escribe 0. Si no es 0, ejecuta la estructura iterativa que muestra el eslogan de Budweiser y la pantalla correspondiente.

Prueba de escritorio:

Código del Programa:

Diagrama de flujo del Programa:

Primero, en los cuadros amarillos, se ve que definimos las variables num1 y num2 y luego las inicializamos ambas con el valor de 0.

Más adelante el cuadrilátero rojo nos indica que leyó un dato escrito por el usuario que se almacenó en la variable num2.

Finalmente, una condición nos indica que si la variable es diferente de 0, escribiremos un mensaje el número de veces que indique la variable num2. El círculo violeta representa una estructura iterativa FOR o PARA en PSeInt.

Comando Función:

El comando función en PSeInt se utiliza para definir funciones, que son bloques de código que realizan una tarea específica y pueden recibir parámetros (también conocidos como argumentos) y retornar un resultado en específico. Las funciones permiten modularizar el código, lo que significa que puedes dividir tu programa en bloques más pequeños y manejables.

Sintaxis de las funciones:

FUNCION nombreFuncion ( Argumentos )
	//Código de la función
FIN FUNCION

Algoritmo nombreAlgoritmo
	nombreFuncion(Argumentos)//De esta manera llamamos a la función
FinAlgoritmo
  • nombreFuncion: Es el nombre que le das a tu función.
  • Argumentos: Son los parámetros que puede recibir la función. Puedes tener cero o más parámetros.

Ejemplo #1 de Función:

Supongamos que quieres crear una función que sume dos números. Aquí está cómo podrías hacerlo en PSeInt:

Funcion sumarNumeros (num1, num2)
	Escribir num1 + num2
Fin Funcion

Algoritmo Funcion_Sumar
	sumarNumeros(4, 6) //Esto nos retorna 10
FinAlgoritmo
	
  • sumarNumeros: Es el nombre de nuestra función
  • num1 y num2: Son los parámetros que nuestra función pide.
  • sumarNumeros(4, 6): De esta manera llamamos a la función dentro de nuestro algoritmo y escribimos los dos parámetros seguidos de una coma 4 y 6. La función devolverá un 10

Este es un ejemplo básico para ilustrar el uso del comando función. Aquí hay algunos puntos a tener en cuenta:

  • Declaración de la función: Debes declarar la función antes de llamarla en tu programa principal. Debes hacerlo al principio de tu código.
  • Declaración de variables: Dentro de la función, puedes declarar variables para realizar las operaciones necesarias.
  • Llamada a la función: Utiliza la función llamándola como se muestra en el ejemplo. Puedes almacenar el resultado en una variable y utilizarlo según sea necesario.

Programa #2 de Función:

Para tener más conocimiento de este comando veamos otro programa un poco más complejo relacionado con el fútbol. Te entiendo si comprendes los conceptos más fácil viendo videos. Por eso tengo un video explicándote detalladamente este comando junto al programa relacionado con el fútbol que nos permite actualizar un resultado real de fútbol usando el comando función:

Explicación Paso a Paso:

Contexto: Estas viendo un partido de fútbol y quieres llevar el registro en vivo del marcador mientras ves el partido, este programa te ayudará a realizar dicha tarea usando el comando función y el comando repetir

Aquí creamos la función con el nombre “MostrarMarcadorConNombre” que toma 4 parámetros, el primero son los goles del equipo local. El segundo los goles del equipo visitante, el tercero el nombre del equipo local y el cuarto y último el nombre del equipo visitante. Después de haber establecido estos parámetros la función nos escribirá el marcador actual con los datos que anteriormente se mencionaron.

Acá ya trabajamos dentro del algoritmo y definimos las variables según el tipo de dato que sea cada una. Después en la línea 13 le pedimos al usuario que digite un equipo. Este se almacenará en la variable antes definida con el identificador “nombreEquipoLocal” y hace lo mismo con el nombre del equipo visitante.

En la línea de código numero 18 y en las sucesivas se le asigna el valor de 0 a las variables antes definidas como entero, pues un partido real siempre va a comenzar con un marcador de 0 – 0.

En la línea 22 llamamos a la variable asignándole en los parámetros las variables anteriormente recolectadas, en la línea consecuente hay una estructura repetitiva Repetir la cual como ya vimos se va a repetir hasta que cierta condición se cumpla, en este caso hasta que la variable con el nombre “var” sea igual a 0.

Má adelante en el numeral 26 encontramos una estructura condicional que cuando el valor sea 1 le incrementará un gol a el equipo local y esto lo hacemos asignándole de nuevo un valor a golesEquipoLocal, será esa variable más 1. Pero cuando sea 2, esta hará lo mismo pero con los goles del equipo visitante.

Prueba de escritorio #2 Programa Función

  • Prueba de escritorio de programa hecho en PSeInt
  • Prueba de escritorio de programa hecho en PSeInt
  • Prueba de escritorio de programa hecho en PSeInt
  • Prueba de escritorio de programa hecho en PSeInt
  • Prueba de escritorio de programa hecho en PSeInt
  • Prueba de escritorio de programa hecho en PSeInt
  • Prueba de escritorio de programa hecho en PSeInt

En el carrusel de imágenes se ve paso a paso como funciona nuestro programa de manera detallada.

Código Completo:

Diagrama de flujo de la función “MostrarMarcadorConNombre”

Diagrama de Flujo creado en PSeInt

Esta función nos mostrará el marcador actual del partido reemplazando los parámetros que esta tiene por las variables que se escriban. Los parámetros de la función son: ‘nombreLocal’ (nombre del equipo local), ‘local’ (goles del equipo local), ‘nombreVisitante’ (nombre del equipo visitante) y ‘visitante’ (goles del equipo visitante).

Diagrama de flujo del programa entero:

El diagrama de flujo de este programa esta representado de la siguiente manera:

Los dos rectángulos bajo el óvalo de inicio representan la creación de variables. Una es nombreEquipoLocal y la otra es golesEquipoLocal. Aunque no se muestra, también se definen nombreEquipoVisitante y golesEquipoVisitante.

La figura verde representa el comando leer, el cual se utiliza para darle al usuario la posibilidad de ingresar un dato. La figura roja que le sigue nos indica que el dato anteriormente ingresado se almacenará en cierta variable, en este caso en las variables con el nombre “nombreEquipoLocal” y “nombreEquipoVisitante”.

Volvemos a ver los rectángulos amarillos que nos dicen que se asignará el número 0 a las variables golesEquipoLocal y golesEquipoVisitante. Luego, el usuario ingresa un valor. Si es 1, se incrementa golesEquipoLocal y se llama a la función ‘MostrarMarcadorConNombre’. Por otro lado si es 2, hace lo mismo con golesEquipoVisitante. Y finalmente si es 0, se termina el algoritmo.”

Diagrama de Flujo creado en PSeInt

Conclusión

En conclusión, PSeInt se destaca como un Software clave para enseñar el paradigma de “programación estructurada”. Los tres comandos anteriormente vistos desempeñan roles fundamentales en este entorno de aprendizaje.

El comando Repetir asegura la ejecución de nuestro código al menos una vez, siendo demasiado importante cuando se necesita una ejecución inicial antes de verificar una condición. Por otro lado, el comando Para nos da un enfoque estructurado para bucles con un número específico de iteraciones, ofreciéndonos un control preciso sobre la variable de iteración.

La introducción de modularidad con el comando Función permite a las personas nuevas en la programación que dividan su código en funciones independientes, fomentando prácticas organizadas y reutilización de código.

Estos comandos, trabajados en conjunto, proporcionan un enfoque práctico y sistemático para comprender la lógica de la programación. PSeInt, con su interfaz accesible, actúa como un puente efectivo entre la teoría y la práctica en el aprendizaje de la programación

Autores: Carlos Caicedo, Mateo Maya y Johan Sierra

Editor: Carlos Iván Pinzón Romero

Código: UCPA-1

Universidad: Universidad Central

Fuentes:

Byspel, (s.f) PSeint para que sirve|Aprende algoritmos paso a paso. https://byspel.com/pseint-para-que-sirve-aprende-algoritmos-paso-a-paso/
PSeInt, (s.f) ¿Qué es PSeInt?. https://pseint.sourceforge.net/