Text preview for : QBasic.pdf part of QBasic tutotrial



Back to : QBasic.pdf | Home

Beginner's Programming Tutorial in QBasic
This document is meant to get you started into programming, and assumes you have some experience with computers and with Windows 95 (or 98, etc.). Since this tutorial is written for people who don't like to read a lot of text, it includes a number of examples. Therefore, you can do a lot of work in not much time. The more important chapters have a star ( ).
Feel free to distribute this tutorial, upload it to your website, link to it from your site, etc. http://www.geocities.com/progsharehouse/qbtutor Mirror: http://development.freeservers.com/qbtutor

Table of Contents
Part I: Q-Basics
Chapter 1: Before you start Chapter 2: Your first program Chapter 3: Variables Chapter 4: Retrieving keyboard input from the user Chapter 5: The IF and THEN commands Chapter 6: Labels and the GOTO and GOSUB commands Chapter 7: Loops Chapter 8: What next?

Part II: Intermediate topics
Chapter 9: QBasic interface Chapter 10: Adding documentation to your programs Chapter 11: Reading and writing to files Chapter 12: Displaying graphics Chapter 13: Mathematics functions Chapter 14: Getting the current date and time

Part III: Advanced topics
Chapter 15: Arrays Chapter 16: Variable types Chapter 17: Subroutines and functions Chapter 18: Numbering systems Chapter 19: Memory

Before you start
Before you can create a program in QBasic, you need the QBasic interpreter. It is available from your Windows 95 (or 98) CD, or you can download it below. To access QBasic from the Windows 95 CD:
1. Insert the CD into your CD-ROM drive. 2. Click "browse this CD" (if the menu screen doesn't come up, then browse the CD from My Computer. 3. Go to the \OTHER\OLDMSDOS directory. 4. Open a program called QBASIC.EXE (this is version 1.1 of the QBasic interpreter).

To access QBasic from the Windows 98 CD:
1. Insert the CD into your CD-ROM drive. 2. Click "browse this CD" (if the menu screen doesn't come up, then browse the CD from My Computer. 3. Go to the \TOOLS\OLDMSDOS directory. 4. Open a program called QBASIC.EXE (this is version 1.1 of the QBasic interpreter).

Download it here (right-click and press "Save As"):
QBASIC.ZIP (323 KB) - QBasic 1.1 interpreter and sample programs UNZIP32.EXE (90 KB) - Extracts the ZIP file

To unzip the QBASIC.ZIP file with UNZIP32.EXE:
a. Go to the Start Menu b. Click Run... c. Type the following (this loads MS-DOS): command

d. Enter the following in DOS (assuming you saved QBASIC.ZIP to C:\QBASIC): cd c:\qbasic unzip32 -n qbasic.zip

Your first program
After launching the QBasic interpreter (see before you start), you might see a window requesting a list of "parameters." If this window comes up, press the Enter key to continue. You should now see the QBasic interpreter, which has a blue background and displays a dialog box at the center. (If the interpreter fills the entire screen, then you may want to press "Alt + Enter," to make it smaller.) Press the Esc key to hide the dialog box.

QBasic interpreter - main screen Type the following (including the quotation marks) in the QBasic interpreter: PRINT "Hello World!"

Now press F5 to run the program. You should now see a black screen, with Hello World at the top, and Press any key to continue at the bottom. Press a key on the keyboard to return to the main screen.

(The figure below displays the "output screen.")

QBasic interpreter - output screen If you run the program again, the interpreter adds another Hello World. QBasic adds Hello World each time the program is run.

Deleting the program
To erase the current program: 1. Go to the "File" menu. 2. Click "New." 3. The interpreter asks if you want to save the program. 4. Select "No" (or if you'd rather keep the program, select "Yes").

Strings
There are certain types of data (or information) called "strings." Strings contain a sequence of characters (letters, numbers, and symbols) enclosed in quotation marks. For example, "Hello World!" is a string.

The following are also strings: "0123456789" "This is a string" "abc123" "1 + 1 = 2" "!@#$%^&*()"

Commands
There are also special functions called "commands" (also called "instructions"). A "command" tells the QBasic interpreter to do something. The PRINT command tells the QBasic interpreter to print something to the screen. In this case, the interpreter printed "Hello World!".

TIP: Instead of typing PRINT, you can enter a question mark. For example: ?"Hello World!"

With the PRINT command, you can also print numbers to the screen. Delete the current program (unless you already have) and write the following: PRINT 512 (or ?512) Press F5 to run the program. The program outputs: 512

Expressions
An expression is something the interpreter calculates (or evaluates). Such as: 1 + 1 100 - 47 3 * 34 80 / 4 (100 * 3) + 56 (returns 2) (returns 53) (returns 102) (returns 20) (returns 356)

NOTE: The asterisk (*) means to multiply two numbers; the slash (/) means to divide

If you pass an expression to the PRINT command, the value returned (a number) is printed. Clear the current program, and then run the following: PRINT 512 + 478 Program output: 990 If you enclose the expression with quotation marks, the expression becomes a string and isn't evaluated. For example: PRINT "512 + 478" Output: 512 + 478

TIP: To clear the output screen, use the CLS command. CLS

More about the PRINT command
You can use multiple print statements in your program. PRINT "Hello" PRINT "World" Output: Hello World

To place World onto the previous line, place a semi-colon after PRINT "Hello". PRINT "Hello"; PRINT "World" Output: HelloWorld

Also, if you put a comma instead of a semi-colon on the first line, the program will insert spaces between the two words. PRINT "Hello", PRINT "World" Output: Hello World

Variables
This chapter discusses an important topic in programming, "variables." Please read this section thoroughly. A variable is a piece of data kept in the computer's memory (RAM). The location of a variable in RAM is called the "address."

How a variable is stored in RAM The following program prints the variable X to the screen: print X Since the variable hasn't been assigned a number, the value of the variable is 0. So, the output of the program is: 0

This next program sets X to 15, and then prints the variable: X = 15 print X This time, the output is: 15

In the above example, the number 15 was stored in the computer's RAM at a certain memory address. Then the PRINT command accessed (or looked at) that address when it printed "15" to the screen.

(NOTE: The memory address of X is not necessarily 1000000)

ADVANCED TIP: Although you don't normally need to, you can find the actual memory address of a variable (X, for example) by using the VARSEG and VARPTR commands. PRINT (VARSEG(X) * 65536) + VARPTR(X) (For more information, see Memory.)

As in the programs above, a variable is accessed by calling its name. Variable names can have a combination of letters and numbers. The following are valid variables: Y num VALUE xYz abc123

Also, you can use multiple variables in your program. X = 82 Y = 101 Z = 79 PRINT X PRINT Y PRINT Z Output: 82 101 79

(NOTE: The memory addresses of these variables are not necessarily as specified)

Expressions
If you pass an expression to a variable, the expression is evaluated and the variable is set to that value. x = 500 + (10 * 7) PRINT x Output: 570

You can also use variables as expressions. rate = 50 time = 2 distance = rate * time PRINT distance Output: 100 Plus, you can have both variables and numbers in an expression. X = 100 Y = X * 7 PRINT Y Output: 700

TIP: The following increases X by 1: X=X+1

Strings
If you add a dollar sign ($) to the end of a variable, the variable is a string. X$ = "Hello World!" PRINT X$ Output: Hello World! If you try to set a string to a non-string variable, an error occurs. X = "Hello World!" The QBasic interpreter says "Type mismatch" when you try to run the above program.

A string can be added to the end of an existing variable string. X$ = "Hello" X$ = X$ + "World" PRINT X$ Output: HelloWorld You can also add variable strings together. a$ = "String1" b$ = "String2" c$ = "String3" d$ = a$ + b$ + c$ PRINT d$ Output: String1String2String3

Retrieving keyboard input from the user
One way to receive input from the keyboard is with the INPUT command. The INPUT command allows the user to enter either a string or a number, which is then stored in a variable. INPUT data$ PRINT data$ When this program is executed, the INPUT command displays a question mark, followed by a blinking cursor. And when you enter text, the program stores that text into the variable data$, which is printed to the screen.

TIP: If you place a string and a semi-colon between INPUT and the variable, the program will print the string. INPUT "Enter some text:"; data$

To receive a number, use a non-string variable. INPUT number PRINT number If you enter text instead of a number, the QBasic interpreter displays an error message ("Redo from start"). Below is another example of the INPUT command: PRINT "Enter some text:" INPUT text$ PRINT "Now enter a number:" INPUT num PRINT text$ PRINT num

TIP: You can have the question mark displayed on the previous line by using a semi-colon. PRINT "Enter some text:"; INPUT text$

The IF and THEN commands
The IF and THEN commands are used to compare an expression and then perform some task based on that expression. x = 5 IF x = 5 THEN PRINT "x equals 5" Since X does equal 5 in this case, the program outputs: x equals 5

Expression signs
You can also enter the following statements, instead of the equals sign: x < 5 (x is less than 5) x > 5 (x is greater than 5) Run the following: x = 16 IF (x > 5) THEN PRINT "x is greater than 5" Output: x is greater than 5 You can also combine the signs like this: x <= 5 (x is less than or equal to 5) x >= 5 (x is greater than or equal to 5) x <> 5 (x does not equal 5) Run the following example: CLS x = 5 IF (x >= 5) THEN PRINT "x is greater than or equal to 5" IF (x <= 5) THEN PRINT "x is less than or equal to 5" IF (x <> 5) THEN PRINT "x does not equal 5"

Output: x is greater than or equal to 5 x is less than or equal to 5

ELSE
Using the ELSE command, you can have the program perform a different action if the statement is false. x = 3 IF x = 5 THEN PRINT "Yes" ELSE PRINT "No" Since X doesn't equal 5, the output is: No

END IF
END IF allows you to have multiple commands after the IF...THEN statement, but they must start on the line after the IF statement. END IF should appear right after the list of commands. x = 5 IF (x = 5) THEN INPUT a$ PRINT a$ END IF

The following program uses ELSE with the END IF command: x = 16 IF (x = 5) THEN INPUT a$ PRINT a$ ELSE PRINT x * 2 END IF Output: 32

TIP: There is a way to have multiple commands after IF...THEN without using END IF. To do so, place a colon between each command. IF (x = 5) THEN INPUT a$: PRINT a$

ELSEIF
The ELSEIF command allows you to perform a secondary action if the first expression was false. Unlike ELSE, this task is only performed if a specified statement is true. x = 6 IF (x = 5) THEN PRINT "Statement 1 is true" ELSEIF (x = 6) THEN PRINT "Statement 2 is true" END IF Output: Statement 2 is true

You can have multiple ELSEIF commands, along with ELSE. x = 8 IF (x = 5) THEN PRINT "Statement 1 is true" ELSEIF (x = 6) THEN PRINT "Statement 2 is true" ELSEIF (x = 7) THEN PRINT "Statement 3 is true" ELSE PRINT "No above statements are true" END IF Output: No above statements are true

Multiple expressions
You can have more than one expression in IF...THEN by using either the OR operator or the AND operator. The OR operator only requires one expression to be true in order to print "Yes" in the following program: x = 20 IF (x = 5 OR x = 20) THEN PRINT "Yes" Output: Yes

The AND operator requires both expressions to be true. x = 7 IF (x > 5 AND x < 10) THEN PRINT "True" Output: True This is a slightly more complex example: x = 16 y = 3 IF ((x > 5 AND x < 10) OR y = 3) THEN PRINT "Correct" Output (since Y is 3): Correct

Strings in IF...THEN
So far in this chapter, we've only been dealing with numbers, but you can also use strings with the IF...THEN command. x$ = "Hello" IF (x$ = "Hello" OR x$ = "World") THEN PRINT x$ Output: Hello

You can also compare two variable strings: x$ = "Hello" y$ = "World" IF (x$ <> y$) THEN PRINT x$; " "; y$ Output: Hello World

Labels and the GOTO and GOSUB commands
The GOTO and GOSUB commands enables you to jump to certain positions in your program. Labels are used to specify what point in the program to continue execution.

GOTO
To use GOTO, place a label somewhere in your program, and then enter. GOTO