Skip to content

Instantly share code, notes, and snippets.

@kurotori
Last active June 7, 2024 17:17
Show Gist options
  • Save kurotori/b38b35580027bc91c189c6753149104b to your computer and use it in GitHub Desktop.
Save kurotori/b38b35580027bc91c189c6753149104b to your computer and use it in GitHub Desktop.
Menu de Opciones en PSeInt
//Algoritmo de Menú de Opciones
// Por Luis Sebastián de los Ángeles
// ----------------------------------
// Este algoritmo demuestra cómo se declara un menú de opciones simple
// realizando algunas modificaciones a un algoritmo Bucle Principal
Algoritmo MenuDeOpciones
//Declaramos una variable para las opciones que elija el usuario...
Definir opciones como Texto;
//... y la inicializamos
opciones = "";
//Variable para controlar la cantidad de registros
Definir cant Como Entero;
cant = 10;
//Variables para las listas de registros
Definir nombres,apellidos como Texto;
Dimension nombres(cant), apellidos(cant);
//
Definir regVacio Como Entero;
regVacio=0;
Definir pagina como Entero;
pagina = 0;
Para posicion=0 Hasta (cant-1) Con Paso 1
nombres(posicion) = "...";
apellidos(posicion) = "...";
FinPara
//Declaramos el Bucle Principal, controlado por la variable 'opciones'
Mientras opciones<>"x" Hacer
//Limpiamos la pantalla para lograr una visualización más fluida
Limpiar Pantalla;
//Se muestran en pantalla las opciones disponibles
Escribir "Elija una opción:";
Escribir "1: Agregar un registro";
Escribir "2: Ver todos los registros";
Escribir "3: Modificar un registro";
Escribir "4: Borrar registros";
Escribir "x: Salir";
//Esperamos la selección del usuario
Leer opciones;
//Transformamos el dato ingresado a minúsculas para facilitar su análisis
opciones = Minusculas(opciones);
Limpiar Pantalla;
//Evaluación de la selección del usuario
Segun opciones Hacer
//En esta opción del sistema demostraremos un submenú persistente
"1":
//Para establecer el submenu persistente, declaramos un bucle principal anidado
// y reniciamos la variable 'opciones' para evitar cierres prematuros del bucle
opciones = "";
//Este submenú funciona de forma semejante al principal
Mientras opciones <> "x" Hacer
Escribir "Eligió la opción 1";
Escribir "Opciones del sub menu 1:";
Escribir "1 - Sub Opción 1.1";
Escribir "2 - Sub Opción 1.2";
Escribir "3 - Sub Opción 1.3";
Escribir "X - Volver al Menu Principal";
Leer opciones;
opciones = Minusculas(opciones);
Limpiar Pantalla;
Segun opciones Hacer
"1":
Escribir "Nuevo Registro";
regVacio = 0;
Mientras nombres(regVacio)<>"..." Hacer
regVacio = regVacio + 1;
FinMientras
Escribir "Posicion ",regVacio;
Escribir Sin Saltar "Nombre:";
Leer nombres(regVacio);
Escribir Sin Saltar "Apellido:";
Leer apellidos(regVacio);
Esperar Tecla;
"2":
Escribir "Elegiste la opción 1.2";
Esperar Tecla;
"3":
Escribir "Elegiste la opción 1.3";
Esperar Tecla;
Fin Segun
Limpiar Pantalla;
FinMientras
//Reiniciamos la variable opciones para evitar que el bucle principal
// se cierre prematuramente
opciones = "";
"2":
Escribir "Ver Todos los Registros";
pagina=0;
opciones="";
Mientras opciones != "x" Hacer
Escribir "Atrás: A Adelante: D Salir: X";
Leer opciones;
opciones = Minusculas(opciones);
FinMientras
opciones = "";
Para posicion=0 Hasta cant-1 Con Paso 1 Hacer
FinPara
Esperar Tecla;
//En caso de que el usuario elija la opción de salir, le advertimos
// que ha seleccionado esa opción y le pedimos confirmación
"x":
Escribir "Vas a salir del programa";
Escribir "¿Deseas continuar?";
Escribir "S: Si N:No";
//Obtenemos la selección del usuario y la almacenamos en la variable 'opciones'
Leer opciones;
opciones = Minusculas(opciones);
//Analizamos la selección del usuario
Si opciones="s" Entonces
//Si el usuario confirma la salida, debemos modificar el valor de
// la variable 'opciones' a 'x' para permitir el cierre del bucle
opciones="x";
SiNo
//Si el usuario no confirma la salida, o si ingresa cualquier otro
// valor, reiniciamos el valor de la variable 'opciones' para evitar
// el cierre prematuro del bucle
opciones="";
FinSi
Fin Segun
Fin Mientras
FinAlgoritmo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment