User Validation

function validate_user()
	const pw = "pass"
	pwguess = ""
	attempts = 1
	do
		print("Attempt number " + attempts)
		pwguess = input("Password: ")
		attempts += 1
	until pwguess == pw OR attempts > 3

	return pwguess == pw
endfunction

if validate_user() then
	print("yay")
else
	print("no")
endif

Calculator

a = real(input("Enter number: "))

op = ""
do
	op = input("Enter operation: ")
until op == "+" OR op == "-" OR op == "*" OR op == "/" OR op == "^" OR op == "sqrt"

b=0

if op != "sqrt" then
	b=real(input("Enter number: "))
endif

result = 0
switch op:
	case "+":
		result = a+b
	case "-":
		result = a-b
	case "*":
		result = a*b
	case "/":
		result = a/b
	case "^":
		result = a^b
	case "sqrt":
		result = sqrt(a)
	default:
		print("Operation " + op + " not implemented")
endswitch

print("Answer: " + result)

Base X to Decimal

function lookup(char, base)
	index = -1
	symbols = [
		"0", "1", "2", "3",
		"4", "5", "6", "7",
		"8", "9", "A", "B",
		"C", "D", "E", "F"
	]
	if base > symbols.length then
		print("Sorry, only bases 1 to "+symbols.length+" are supported")
	endif
	for j = 0 to base - 1
		if char == symbols[j] then
			index = j
		endif
	next j
	if index == -1 then
		print("Invalid character "+char)
	endif
	return index
endfunction

function convert(hex, base)
	out = 0
	for i = 0 to hex.length-1
		out += base ^ (hex.length-1-i) * lookup(hex.substring(i, 1), base)
	next i
	return out
endfunction

print(convert("111101", 2)) //61

Maths and Formatting

const bookingFee = 1.50
const childPrice = 2.50
const adultPrice = 5.00

function price(adults, children)
	return adults * adultPrice + children * childPrice + bookingFee
endfunction

function format(price)
	s = str(price)
	out = ""
	for i=0 to s.length - 1
		if s.substring(i, 1) == "." then
			if i+2 == s.length then //one dp
				return "£" + out + "." + s.substring(i+1, 1) + "0"
			else //two dp
				return "£" + out + "." + s.substring(i+1, 1) + s.substring(i+2, 1)
			endif
		endif
		out += s.substring(i, 1)
	next i
	//no dot, no dp
	return "£" + out + ".00"
endfunction

print(format(price(3, 5)))

Phonetic Alphabet

alphabet = [
	"Alfa", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf",
	"Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November",
	"Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform",
	"Victor", "Whiskey", "X-ray", "Yankee", "Zulu"
]

x = input("Word:").lower
result = ""

for i=0 to x.length-1
	if i != 0 then
		result += " "
	endif
	result += alphabet[ASC(x.substring(i, 1))-97]
next i

print(result)

String Reverser

function reverse(x)
	out = ""
	for i = x.length - 1 to 0 step -1 
		out += x.substring(i, 1)
	next i
	return out
endfunction

print(reverse("Hello world!"))

File handling

// file creation
if NOT existsFile("stuff.txt") then
	newFile("stuff.txt")
endif

// file write
f = open("stuff.txt")
for i = 1 to 5
	f.writeLine(str(random(1, 100)))
next i
f.close()

// file read
f = open("stuff.txt")
while NOT f.endOfFile()
	print(f.readLine())
endwhile
f.close()

// file deletion
if random(1, 2) == 1 then
	print("Deleting file")
	delFile("stuff.txt")
endif

String comparison

wordA = input("wordA: ")
wordB = input("wordB: ")
switch wordA.compareAlphabetical(wordB):
	case -1:
		print("wordA < wordB")
	case 0:
		print("wordA == wordB")
	case 1:
		print("wordA > wordB")
endswitch