Skip to content
ExamplesEspañolWorkspace →

Modular Menu

A unit converter with a menu that keeps coming back.

Level
Intermediate
Concepts:
Input & output
SubProcesos
Segun
Repetir
Open in Codoritmo

Run, change and debug this example in your browser.

What you'll learn

The program is split into SubProceso blocks without parameters, each with one job. Repetir ... Mientras Que shows the menu again until you choose to quit.

Code

modular-menu.psc · 39 lines
SubProceso MostrarMenu    Escribir ""    Escribir "1. Kilómetros a millas"    Escribir "2. Litros a galones"    Escribir "3. Salir"    Escribir "Elige una opción:"FinSubProcesoSubProceso KilometrosAMillas    Definir km Como Real    Escribir "Kilómetros:"    Leer km    Escribir km, " km = ", Redon(km * 0.621371 * 100) / 100, " millas"FinSubProcesoSubProceso LitrosAGalones    Definir litros Como Real    Escribir "Litros:"    Leer litros    Escribir litros, " L = ", Redon(litros * 0.264172 * 100) / 100, " galones"FinSubProcesoAlgoritmo MenuModular    Definir opcion Como Entero    Repetir        MostrarMenu        Leer opcion        Segun opcion Hacer            1:                KilometrosAMillas            2:                LitrosAGalones            3:                Escribir "¡Hasta luego!"            De Otro Modo:                Escribir "Esa opción no existe."        FinSegun    Mientras Que opcion <> 3FinAlgoritmo

Flowchart

Each block in the flowchart matches one instruction in the code.

Algoritmo MenuModular
Algoritmo MenuModular123De Otro ModoSíNoAlgoritmo MenuModularAlgoritmo MenuModularDefinir opcion Como EnteroDefinir opcion Como EnteroMostrarMenuMostrarMenuLeer opcionLeer opcionSegun opcion HaceropcionKilometrosAMillasKilometrosAMillasLitrosAGalonesLitrosAGalonesEscribir "¡Hasta luego!"Escribir "¡Hasta luego!"Escribir "Esa opción no existe."Escribir "Esa opción noexiste."Mientras Que opcion <> 3opcion <> 3FinAlgoritmoFinAlgoritmo
SubProceso MostrarMenu
SubProceso MostrarMenuSubProceso MostrarMenu()SubProceso MostrarMenu()Escribir ""Escribir ""Escribir "1. Kilómetros a millas"Escribir "1. Kilómetros amillas"Escribir "2. Litros a galones"Escribir "2. Litros a galones"Escribir "3. Salir"Escribir "3. Salir"Escribir "Elige una opción:"Escribir "Elige una opción:"FinSubProcesoFinSubProceso
SubProceso KilometrosAMillas
SubProceso KilometrosAMillasSubProceso KilometrosAMillas()SubProceso KilometrosAMillas()Definir km Como RealDefinir km Como RealEscribir "Kilómetros:"Escribir "Kilómetros:"Leer kmLeer kmEscribir km, " km = ", Redon(km * 0.621371 * 100) / 100, " millas"Escribir km, " km = ",Redon(km * 0.621371 * 100) /100, " millas"FinSubProcesoFinSubProceso
SubProceso LitrosAGalones
SubProceso LitrosAGalonesSubProceso LitrosAGalones()SubProceso LitrosAGalones()Definir litros Como RealDefinir litros Como RealEscribir "Litros:"Escribir "Litros:"Leer litrosLeer litrosEscribir litros, " L = ", Redon(litros * 0.264172 * 100) / 100, " galones"Escribir litros, " L = ",Redon(litros * 0.264172 * 100)/ 100, " galones"FinSubProcesoFinSubProceso

Sample run

This is what the program shows when it runs. The answers typed by the user are highlighted.

 1. Kilómetros a millas2. Litros a galones3. SalirElige una opción:User answer: 1Kilómetros:User answer: 1010 km = 6.21 millas 1. Kilómetros a millas2. Litros a galones3. SalirElige una opción:User answer: 2Litros:User answer: 55 L = 1.32 galones 1. Kilómetros a millas2. Litros a galones3. SalirElige una opción:User answer: 7Esa opción no existe. 1. Kilómetros a millas2. Litros a galones3. SalirElige una opción:User answer: 3¡Hasta luego!

Challenge

Add an option to convert kilograms to pounds.

Show hint

Create a new SubProceso (1 kg = 2.20462 lb), add it to the menu, and move Salir to option 4.

Open in Codoritmo
  • Quicksort

    Picks a pivot, splits smaller from larger values and sorts each side recursively.

    Advanced
  • By Reference and by Value

    Sorts three numbers by swapping them in subprocesses.

    Intermediate
  • Tic-Tac-Toe

    The classic three-in-a-row game for two players.

    Advanced