Learn JOVIAL with Real Code Examples
Updated Nov 21, 2025
Code Sample Descriptions
1
JOVIAL Counter and heme Toggle
PROGRAM CounterTheme;
INTEGER COUNT := 0;
BOOLEAN ISDARK := FALSE;
PROCEDURE UPDATEUI;
BEGIN
PUT('Counter: ' || COUNT);
IF ISDARK THEN
PUT('Theme: Dark');
ELSE
PUT('Theme: Light');
END;
END UPDATEUI;
PROCEDURE INCREMENT;
BEGIN
COUNT := COUNT + 1;
CALL UPDATEUI;
END INCREMENT;
PROCEDURE DECREMENT;
BEGIN
COUNT := COUNT - 1;
CALL UPDATEUI;
END DECREMENT;
PROCEDURE RESET;
BEGIN
COUNT := 0;
CALL UPDATEUI;
END RESET;
PROCEDURE TOGGLETHEME;
BEGIN
ISDARK := NOT ISDARK;
CALL UPDATEUI;
END TOGGLETHEME;
BEGIN
CALL UPDATEUI;
CALL INCREMENT;
CALL INCREMENT;
CALL TOGGLETHEME;
CALL DECREMENT;
CALL RESET;
END CounterTheme;
Demonstrates a simple counter with theme toggling using JOVIAL variables and procedures.
2
JOVIAL Random Number Generator
PROGRAM RandomNumbers;
INTEGER I;
INTEGER NUM;
FOR I := 1 TO 3;
BEGIN
NUM := RANDOM(100) + 1;
PUT('Random ' || I || ': ' || NUM);
END;
Generates random numbers between 1 and 100 and prints them.
3
JOVIAL Todo List
PROGRAM TodoList;
INTEGER COUNT := 0;
CHARACTER TODOS(10,20);
PROCEDURE ADD(TASK);
BEGIN
TODOS(COUNT) := TASK;
COUNT := COUNT + 1;
PUT('Todos count: ' || COUNT);
END ADD;
PROCEDURE REMOVE(IDX);
INTEGER I;
BEGIN
FOR I := IDX TO COUNT-2 DO
TODOS(I) := TODOS(I+1);
END;
COUNT := COUNT - 1;
END REMOVE;
BEGIN
CALL ADD('Buy milk');
CALL ADD('Write JOVIAL code');
CALL REMOVE(0);
END TodoList;
Maintains a simple todo list with add and remove functionality.
4
JOVIAL Dice Roller
PROGRAM DiceRoller;
INTEGER I;
INTEGER ROLL;
FOR I := 1 TO 3;
BEGIN
ROLL := RANDOM(6) + 1;
PUT('Roll ' || I || ': ' || ROLL);
END;
Rolls a six-sided dice three times.
5
JOVIAL Countdown Timer
PROGRAM Countdown;
INTEGER COUNT := 5;
WHILE COUNT >= 0 DO
BEGIN
PUT('Countdown: ' || COUNT);
COUNT := COUNT - 1;
END;
PUT('Done!');
Counts down from 5 to 0.
6
JOVIAL Prime Checker
PROGRAM PrimeCheck;
INTEGER NUMS(3) := (7,10,13);
INTEGER N,I;
BOOLEAN ISPRIME;
FOR N := 1 TO 3 DO
BEGIN
ISPRIME := TRUE;
FOR I := 2 TO NUMS(N)-1 DO
IF NUMS(N) MOD I = 0 THEN ISPRIME := FALSE;
END;
PUT(NUMS(N) || IF ISPRIME THEN ' is Prime' ELSE ' is Not Prime');
END;
Checks if numbers are prime.
7
JOVIAL Temperature Converter
PROGRAM TempConvert;
REAL C,F;
C := 25;
F := C*9/5+32;
PUT('25°C = ' || F || '°F');
F := 77;
C := (F-32)*5/9;
PUT('77°F = ' || C || '°C');
Converts Celsius to Fahrenheit and Fahrenheit to Celsius.
8
JOVIAL Shopping Cart
PROGRAM ShoppingCart;
CHARACTER CART(10,20);
INTEGER PRICES(10);
INTEGER COUNT := 0;
PROCEDURE ADDITEM(ITEM,PRICE);
BEGIN
CART(COUNT) := ITEM;
PRICES(COUNT) := PRICE;
COUNT := COUNT + 1;
END ADDITEM;
PROCEDURE REMOVEITEM(IDX);
INTEGER I;
BEGIN
FOR I := IDX TO COUNT-2 DO
CART(I) := CART(I+1);
PRICES(I) := PRICES(I+1);
END;
COUNT := COUNT - 1;
END REMOVEITEM;
BEGIN
CALL ADDITEM('Apple',2);
CALL ADDITEM('Banana',3);
CALL REMOVEITEM(0);
END;
Adds and removes items in a shopping cart with total cost.
9
JOVIAL Name Greeting
PROGRAM Greeting;
PROCEDURE GREET(NAME);
BEGIN
PUT('Hello, ' || NAME || '! Welcome!');
END GREET;
BEGIN
CALL GREET('Saurav');
CALL GREET('Alice');
CALL GREET('Bob');
END Greeting;
Greets users by name.
10
JOVIAL Stopwatch
PROGRAM Stopwatch;
INTEGER TIME := 0;
WHILE TIME < 5 DO
BEGIN
PUT('Stopwatch: ' || TIME || ' seconds');
TIME := TIME + 1;
END;
PUT('Done!');
Simulates a stopwatch incrementing seconds.