Ezequiel Vásquez
Mi solución a la vieja escuela:
Genaro Carrillo Jr
Buen aporte maestro, saludos
¿Te imaginas probar cada estrategia con papel y lápiz una y otra vez? Aprender pseudocódigo con PSeInt te permite automatizar la evaluación de algoritmos y comprobar si tu solución funciona en segundos. Esta guía es ideal si estás dando tus primeros pasos en lógica de programación y quieres traducir un diagrama de flujo a código ejecutable.
¿Qué es el pseudocódigo y para qué sirve?
El pseudocódigo es una técnica para diseñar algoritmos usando únicamente texto, con palabras reservadas muy parecidas a las que verás luego en lenguajes como JavaScript, Python o PHP. Funciona como un puente entre el diagrama de flujo y la programación real.
¿Qué es el pseudocódigo? Es una forma de escribir algoritmos en lenguaje natural estructurado, usando palabras clave como escribir, leer o si entonces, sin atarte a un lenguaje de programación específico.
La gran ventaja es que existen entornos que ejecutan ese pseudocódigo y te permiten probar si tu lógica realmente resuelve el problema.
¿Cómo instalar PSeInt paso a paso?
PSeInt es el programa que vamos a usar para escribir y ejecutar nuestro algoritmo. Está disponible para los principales sistemas operativos.
Una vez dentro, lo primero es darle un nombre a tu algoritmo. En el ejemplo se usa problema_puente. Recuerda: nada de espacios ni caracteres especiales en el nombre.
¿Cómo escribir un algoritmo en PSeInt usando variables?
Con el diagrama de flujo a la vista, traduces cada paso a pseudocódigo. En la barra derecha tienes los símbolos que ya conoces y junto a ellos las palabras reservadas equivalentes [01:30].
Un símbolo nuevo aparece aquí: escribir, con forma de paralelogramo igual que leer. Sirve para imprimir datos en la terminal o, en el caso de leer, pedirle un dato al usuario.
¿Cómo se declaran y actualizan variables?
Para organizar el código puedes usar // y dejar comentarios que no se ejecutan. Luego declaras tu variable y le asignas un valor inicial:
tiempo = 0 declara e inicializa la variable.tiempo = tiempo + 8 suma ocho minutos al valor previo.tiempo = tiempo + 1 agrega un minuto del regreso.Así vas acumulando los minutos de cada cruce del puente. Al final, para mostrar el resultado, usas el comando escribir seguido de un texto entre comillas y el nombre de la variable fuera de las comillas:
escribir "el tiempo total fue: ", tiempo
Al pulsar el botón verde de ejecutar, se abre la terminal y aparece el mensaje con el valor calculado [03:20].
¿Cómo evaluar automáticamente si tu estrategia funciona?
Aquí entra en juego el condicional, que en el diagrama de flujo era un rombo y en PSeInt usa las palabras reservadas si y entonces. Esta estructura le pide al programa que tome una decisión por ti.
¿Cómo funciona un condicional en PSeInt? Escribes
Si expresion_logica Entoncesseguido de la acción a ejecutar si la condición se cumple, y luego un bloqueSinopara el caso contrario.
En el problema del puente, la condición es que el tiempo total sea menor o igual a 15 minutos. Cuando tipeas el = después del <, el editor lo convierte automáticamente en el signo de menor o igual.
En la primera prueba el resultado fue 18 minutos, así que la estrategia falló. Al cambiar uno de los cruces a 4 minutos, el total bajó a 14 y el programa imprimió el mensaje de éxito [04:50]. Esto demuestra que tu evaluador automático está sumando bien y comparando bien.
¿Por qué automatizar la prueba de algoritmos cambia tu forma de resolver problemas?
Probar manualmente cada combinación es lento y propenso a errores. Con un script en pseudocódigo puedes lanzar decenas de hipótesis en minutos y enfocarte en lo que realmente importa: pensar la estrategia.
La respuesta al problema del puente no te la voy a dar. Es tu turno de descubrirla, y ahora tienes una herramienta que prueba cada intento por ti. En el próximo módulo vamos a explorar las estructuras de datos que se usan tanto en lógica como en programación para resolver problemas más complejos.
¿Ya descargaste PSeInt? Cuéntame en los comentarios qué estrategia se te ocurrió para cruzar el puente en menos de 15 minutos.
Ezequiel Vásquez
Mi solución a la vieja escuela:
Genaro Carrillo Jr
Buen aporte maestro, saludos
Diego Fernando Bolaños Chamorro
Increíble como PSeInt continúa vigente como una muy buena herramienta para iniciar en el aprendizaje de programación.
Gustavo Bautista Hernández
Sirve perfecto antes de complicarte la vida aprendiendo Sintaxis
Brian Ortiz
Hay opciones online similares?
Albert Jose Salas Yustiz
Al probar todas las demás estrategias mediante el pseudocodigo del pseint se tiene que el tiene mínimo es de15 minutos en dos estrategias.
Estrategia 1
Total: 15 minutos
Estrategia 2
Total: 15 minutos
Del resto de las estrategias ninguna esta por debajo de los 15 minutos...
Danny Alexander Carvajal Rincon
Algoritmo problemaPuente
Definir Tiempo, A,B,C,D Como Entero
Tiempo = 0
A = 1
B = 2
C = 5
D = 8
//Primer cruce A y B
Tiempo = Tiempo + ( B)
//Regreso B
Tiempo = Tiempo + (B)
//Segundo Cruce C y D
Tiempo = Tiempo + (D)
//Regreso A
Tiempo = Tiempo + (A)
//Tercer Cruce A y B
Tiempo = Tiempo + (B)
Si Tiempo > 15 Entonces
Escribir 'El algoritmo no es valido El tiempo es: ' Tiempo
SiNo
Escribir 'El algoritmo es valido El tiempo es: ' Tiempo
Fin Si
FinAlgoritmo
Harvin Andres Zapata Vidal
Dejo este dato por aquí espero que les pueda servir... Si les pasa igual que a mí que marcaba los siguientes errores
Puedes ir a ->Configuraciones ->Opciones de lenguaje (perfiles) ->Personalizar Desmarcan: Obligar a definir los tipos de variables Marcan: Permitir asignar con el signo igual (=)
De igual forma entiendo que es buena practica definir las variables que se van a utilizar en el algoritmo.
Joseph Frias
Uff mucha gracias bro
Henrry Morales Bastidas
Graciasss
Deise Isamar García Molina
Les comparto si no pueden o no quiern descargar PSeInt, pueden usar pseint-web.app online, no necesitan sacar una cuenta o loguearse (a no ser que quieran guardarlo), si es solo para practicar y hacer este tipo de análisis.
Datita Studio
Resolví el algoritmo aunque no era el fin mismo de la clase, está bueno pensar en lógicas algorítmicas para resolver un problema.
EDWARD STEVEN TORRES MARTINEZ
Brayan García
Un poquito de humor xD
Jhon Murcia
No me funciona el programa en mac que puedo hacer?
Agustina Bussi
Profesormira este tutorial, es viejito pero por ahí te sirve =)
Jhon Murcia
Muchas gracias lo voy a revisar y te cuento.
Daniel Martinez
me demore tres dias en lograr instalar el programa en Mac y encontrar la configuración de lenguaje que no me diera errores jajaja fue mas difícil esa labor que el problema en si.
se pudoooo jaja
Valeria Hernández
Gerardo Isael Gomez Mora
Me aparecía un error, " instrucción no valida" no me reconocía la variable tiempo,
investigando un poco, pude resolverlo cambiando de perfil de lenguaje,
en la opción configurar -> buscas opciones de lenguaje (perfiles)
luego en buscar -> buscas flexible
y finalmente en aceptar,
esto resovio el problema y ya me permite realizar el ejercicio sin problema
Jorge Guzman Suir
Hola.
Les comparto los comandos para ejecutar Pseint en Ubuntu:
tar -xzvf pseint-l64-20250314.tgz cd pseint ./pseint
Gabriel Obregón
🧠 ALGORITMOS Y PSEUDOCÓDIGO: GUÍA RÁPIDA
📌 ¿Por qué algoritmizar?
🛠️ ¿Qué es el pseudocódigo?
Una herramienta textual que ayuda a diseñar algoritmos de forma clara.
✅ Características:
💻 Instalación de PC Int
⚙️ Uso básico en PC Int
🔹 Inicializa variables 🔹 Usa comentarios para organizar el código 🔹 Imprime resultados con escribir
🧾 Ejemplo básico:
tiempo = 0
tiempo = tiempo + 8
escribir "El tiempo total fue: ", tiempo
✅ Evaluación automática
Usa estructuras condicionales para verificar si una estrategia es efectiva.
🧾 Ejemplo con condición:
si tiempo <= 15 entonces
escribir "La estrategia funcionó :)"
sino
escribir "La estrategia no funcionó :("
fin si
🎯 Ventaja: Validación rápida y ajustes eficientes.
Víctor Manuel Ramírez Guerrero
Algoritmo problema_puente //primero cruzan 1min y 2min Tiempo=0 Tiempo=Tiempo+2 //vuelve 1min a buscar a otro Tiempo=Tiempo+1 //cruzan 8min y 5min para así no hacer un trayecto adicional del número 5 Tiempo=Tiempo+8 //regresa 2min Tiempo=Tiempo+2 //cruzan 2min y 1min Tiempo=Tiempo+2 //ya todos están del otro lado Escribir "El tiempo total fue: " Tiempo Si Tiempo<=15 Entonces Escribir "La estrategia funcionó" SiNo Escribir "La estrategia no funcionó" Fin Si FinAlgoritmo
Stiven Jiménez
📌 Estas es una web de PSeInt:
Para no instalarlo
Miguel Augusto Ruiz Jiménez
Ufff! Genial, justo tenía problemas para instalarlo en mi macbook...Gracias!!
julian andres caracas
Algoritmo problema_punte
// primero cruzan 1min y 2min
Tiempo =0
Tiempo = Tiempo+2
//vuelve 1min
Tiempo = Tiempo+1
//cruzan 5min y 8min
Tiempo = Tiempo+ 8
// 2min vuelve
Tiempo = Tiempo+2
// cruzan 1 y 2 min
Tiempo = Tiempo+2
// todos llegan al otro lado
Escribir 'el tiempo total fue' Tiempo
Si Tiempo <= 15 Entonces
Escribir 'la estrategia funciono'
SiNo
Escribir 'la estrategia no funciono'
Fin Si
mi solucion
Marcos Aron Gutierrez Reyes
No conocia la existencia del programa PSint este proceso me parece muy interesante para inicar
Jesus Perez
Yo cree un pequeño script en Python a manera de juego para resolver el ejercicio donde básicamente el jugador debe ir seleccionando al explorador que desea que cruce el puente.
Inicialmente decidí que seria adecuado que cada uno de los exploradores estuviera identificado con un ID así que para ello decidí crear un diccionario que contuviese este ID pero también el tiempo que cada uno demoraba en cruzar el puente:
exploradores = {1:1, 2:2, 3:5, 4:8}
Como es un juego que requiere análisis y el tener los datos visibles en todo momento ya que de esto depende la decision que tomemos decidí crear un par de conjuntos (Los elegí porque en Python dentro de los conjuntos los datos no se repite.)
exploradores_inicio = {1, 2, 3, 4} exploradores_fin = set() ```Posterior a esto declare dos funciones que me ayudaran a reutilizar la lógica: Una de estas funciones para el viaje de ida:```js def travel_go(): global tiempo_recorrido print(f'Exploradores pendientes por cruzar: {exploradores_inicio}') explorador_principal = int(input("Seleccione el Explorador que llevará la linterna: ")) explorador_acompañante = int(input("Seleccione el Explorador acompañante: ")) if explorador_principal in exploradores.keys() and explorador_acompañante in exploradores.keys(): tiempo_nuevo = max(exploradores[explorador_principal], exploradores[explorador_acompañante]) tiempo_recorrido += tiempo_nuevo print(f'Tiempo: {tiempo_recorrido}') exploradores_fin.add(explorador_principal) exploradores_fin.add(explorador_acompañante) print(f'Exploradores que cruzaron: {exploradores_fin}') exploradores_inicio.remove(explorador_principal) exploradores_inicio.remove(explorador_acompañante) print(f'Exploradores pendientes por cruzar: {exploradores_inicio}') print("") print("_"*50) print("") ```Y otra para el viaje de regreso: ```js def travel_back(): global tiempo_recorrido print(f'Exploradores que cruzaron: {exploradores_fin}') explorador_regresa = int(input("Seleccione el Explorador que regresa con la linterna: ")) if explorador_regresa in exploradores.keys(): tiempo_nuevo = exploradores[explorador_regresa] tiempo_recorrido += tiempo_nuevo print(f'Tiempo: {tiempo_recorrido}') exploradores_fin.remove(explorador_regresa) print(f'Exploradores que cruzaron: {exploradores_fin}') exploradores_inicio.add(explorador_regresa) print(f'Exploradores pendientes por cruzar: {exploradores_inicio}') print("") print("_"*50) print("") ```Finalmente establecí un bucle `while` que me ayudaría a validar la variable de tiempo recorrido constantemente hasta que superara o igualara el tiempo limite. ```js # Bucle principal while exploradores_inicio and tiempo_recorrido <= 15: travel_go() if exploradores_inicio and tiempo_recorrido <= 15: travel_back() # Evaluación final print(f"\n⏱ Tiempo total: {tiempo_recorrido} minutos") if tiempo_recorrido == 15 and not exploradores_inicio: print("🎉 ¡Reto completado exactamente en el tiempo límite!") elif tiempo_recorrido < 15 and not exploradores_inicio: print("🎉 ¡Reto completado con tiempo de sobra!") else: print("❌ Has perdido. El tiempo ha superado el límite o no cruzaron todo ```Y también se añadieron unos mensajes que indican si el reto se supero o no. Espero les sea de ayuda para personas que estén aprendiendo Python y si tiene recomendaciones con mucho gusto estoy dispuesto a escucharlos.