Язык QBasic в отличии от традиционных версий Basic-a имеет развитый аппарат описания подпрограмм и функций с параметрами, что позволяет создавать в нем сложные модульные программы подобно языкам Pascal, Ada, Modula, С и т.п.
Основная часть программы имеет следующий вид:
<название программы>
<операторы>
end
Подпрограммы в языке QBasic могут быть двух типов — без параметров и с параметрами. Аппарат подпрограмм без параметров построен на следующих правилах вызова подпрограмм и их описания:
1. вызов подпрограмм без параметров:
gosub <имя>
2. описание подпрограммы без параметров:
<имя>:где <имя> — идентификатор длиной до 40 символов
<операторы>
return
В подпрограммах с параметрами в языке QBasic все переменные считаются локальными. Поэтому, одно и то же имя (например, n), используемые в нескольких подпрограммах, означает совершенно разные переменные, если они не используются в качестве параметров или аргументов при вызове подпрограмм.
Аппарат подпрограмм с параметрами в языке QBasic строится на описании вызова подпрограмм с параметрами, операторах вызова подпрограмм с фактическим параметрами и собственно описании подпрограмм с [формальными] параметрами:
При вызове подпрограмм обязательно совпадение типов значений формальных параметров и фактических аргументов обращений к подпрограммам. Контроль за соответствием фактических аргументов и формальных параметров система QBasic проводит автоматически сравнением этих описаний. В силу этих причин описание вызова подпрограмм должно включаться в начале программы.