```Part 2
Simple programming concepts

Subjects covered...

Programs
Line numbers
Editing programs using the cursor keys
RUN, LIST
GO TO, CONTINUE, INPUT, NEW, REM
PRINT
Stopping a program

Type in the following first two lines of a program (which will
eventually print the sum of two numbers). Don't forget to press ENTER
after you type each line...

20 print a
10 let a=10

Note that the screen looks like this...

10 LET a=10
[]
20 PRINT a

As we have already discussed - because these lines began with numbers,
they were not obeyed immediately but were stored away as program
lines. You will have also noticed here that the line numbers govern
the order in which the program lines are to be executed, and as you
can see on the screen, the +3 sorts all the lines into order whenever
a new line is entered.

Note also that although we typed each line in lower case letters, the
keywords (i.e. PRINT and LET) were converted to upper case as soon the
line was entered and accepted by the +3. From now on, we will show
keywords to be typed in upper case letters; however, you may continue
to type in lower case letters.

(By the way, if you don't know what a keyword is, you should have
studied chapter 6 before reading this chapter.)

So far you have only entered one number, so type...

15 LET b=15

...and press ENTER. Now you need to change line 20 to...

20 PRINT a+b

You could type out the replacement line in full, but it is far easier
to move the cursor (using the cursor keys) to just after the 'a', and
then type...

+b	(don't press ENTER yet)

Check that the line then reads...

20 PRINT a+b

...then press ENTER. The cursor will move to the line below, and the
screen should look like this...

10 LET a=10
15 LET b=15
20 PRINT a+b
[]

What you have done in this program is to have assigned the value 10 to
the variable called 'a', and the value 15 to the variable called 'b'.
You have then instructed the computer to print the sum of these two
values by simply adding the two variables.

Run this program by typing...

RUN

...and pressing ENTER. The sum of the two numbers will be displayed...

25

Run the program again and then afterwards, press ENTER and type...

PRINT a,b

Now press ENTER again and notice how the values of the variables 'a'
and 'b' are still in the +3's memory, even though the program has
finished...

10              15

Mistakes

If you enter a line by mistake, say...

12 LET b=8

...and you wish to delete the line, then simply type...

12

..and press ENTER. Line 12 will vanish, and the cursor will reappear
where line 12 used to be.

Now type...

30

...and press ENTER. The +3 will search for line 30, and since there
isn't one, it will 'fall off' the end of the program. The cursor will
be positioned just after the last line. If you enter any non-existent
line number (such as 30), then the +3 will place the cursor where it
thinks the line would have been if it really existed. This can be a
useful way of moving about large programs, but beware - it can also be
very dangerous because if the line really did exist before you entered
the line number - it certainly wouldn't exist afterwards!

To list a program on the screen, type...

LIST

...and press ENTER. You may (particularly when working with more
lengthy programs) wish to list from a certain point onwards. This can
be achieved by typing an appropriate line number after the LIST
command.

Type...

LIST 15

...and press ENTER, to see this illustrated.

When we were developing the above program, note how we were able to
insert line 15 between the other two lines - this would have been
impossible if they had been numbered 1 and 2 instead of 10 and 20. It
is always good practice, therefore, to leave gaps between line
numbers.

(Note that line numbers must be entered as whole numbers between 1 and
9999.)

If, at some time, you find that you haven't left enough space between
line numbers, then you may use the edit menu to renumber a program. To
do this, press the EDIT key then select the Renumber option from the
menu that appears; this sets the gap between each line number to 10.
Try this out and see how the line numbers change.

We are now going to use the BASIC command NEW. This erases any
existing programs and variables in the +3's memory. The command should
be used whenever you are about to start afresh, so type...

NEW

...and press ENTER. From now on, we won't mention 'press ENTER' every
time - we'll assume that you'll remember.

With the opening menu on the screen, start up BASIC by selecting the
option +3 BASIC.

Now carefully type in this program, which converts Fahrenheit

10 REM temperature conversion
20 PRINT "deg F","deg C"
30 PRINT
40 INPUT "Enter deg F",f
50 PRINT f,
60 PRINT (f-32)*5/9
70 GO TO 40

Although you can type in all of line 10 in lower case, only the REM
will be converted to upper case on entry as it's the only keyword that
the +3 recognises. Also, although the words GO TO will appear with a
space between them, they may be typed in as one word (GOTO) if you
prefer.

Now run the program. The instructions will start being carried out in
the order determined by the line numbers. First of all, you'll see
the headings deg F and deg C printed on the screen (as instructed by
line 20), but what has line 10 done? It looks like the +3 has
completely ignored it - in fact, it has! The REM in line 10 stands for
remark, so line 10 is solely to remind you of what the program does. A
REM command consists of REM followed by anything you like - the +3
will ignore everything after the REM, right up to the end of the line.

After line 20, the +3 carries out line 30 which simply prints a blank
line. When the +3 gets to the INPUT command in line 40 it waits for
you to type in a value for the variable 'f' - you can tell this
because at the bottom of the screen is a flashing cursor.

Type in a number (then press ENTER). The +3 displays the result and
then waits for you to enter another number. This is because the
instruction in line 70 says 'GO TO 40' - in other words, 'instead of
running out of program and stopping, jump back to line 40 and continue
running from there'.

So, enter another temperature, then another...

After a few more of there you might be wondering if the computer will
ever get bored of this - it won't! Next time it asks for another
number, hold down SYMB SHIFT and type A. The word 'STOP' will appear,
and when you press ENTER then +3 comes back with the report...

H STOP in INPUT in line 40:1

...which tells you why it stopped, and where (in line 40). (The ':1'
after the line number in the report tells you that the 1st instruction
in line 40 is being reported upon.)

If you wish to continue the program, type...

CONTINUE

...and the +3 will ask you for another number.

When CONTINUE is used, the +3 remembers the line number in the last
report that it sent you (as long as the report that it sent you (as
long as the report was not 0 OK) and jumps back to that line, which in
this case is line 40 (the INPUT command).

Stop the program again and replace line 70 by...

70 GO TO 31

There will be no perceptible difference to the running of the program
because if the line number in a GO TO command refers to a non-existent
line, then the jump is to the next line after the given number. The
same goes for RUN (in face, RUN on its own actually means RUN 0).

Keep entering numbers until the screen starts getting full. When it is
full, the +3 will move the whole of the top half of the screen up one
line to make room, losing the heading off the top - this is called
scrolling.

When you are tired of entering numbers, stop the program as before and
enter the editor by pressing ENTER.

Look at the PRINT statement in line 50. The ',' comma in this line is
very important.

Commas are used to make the printing start either at the left-hand
margin, or in the middle of the screen (depending upon which comes
next). Thus in line 50, the comma causes the Celsius temperature to be
printed in the middle of the line.

A semicolon ';' on the other hand, is used to make the next number (or
characters) be printed immediately after the preceding one(s).

Another punctuation mark you can use like this in PRINT commands is
the apostrophe ('). This makes whatever is printed next appear at the
beginning of the next line on the screen. This also happens by default
at the end of each PRINT command.

If you wish to inhibit this (so that whatever follows to be printed
continues on the same line) you can put a comma or semicolon at the
end of the PRINT statement. To see how this works, replace line 50 in
turn by each of these...

50 PRINT f,
50 PRINT f;
50 PRINT f

...and run the program each time to see the difference.

The line with the comma (you typed in originally) printed everything
in two columns; the line with the semicolon crams everything together,
and the line without either, prints each number on a new line (you
could have also used PRINT f' to do this).

Always remember the difference between commas and semicolons in PRINT
commands, and do not confuse them with colons which are used as
separators between commands on a single line, for example...

PRINT f: GO TO 40

Now type in these extra lines...

100 REM greeting program
120 PRINT "Hello ";n\$;"!"
130 GO TO 110

This is a separate program from the last one, but you may keep them
both in the +3 at the same time. To run the new one, type...

RUN 100

Because this program expects you to input a string (a character or
group of characters) instead of a number, it prints out two string
quotes '""' as a reminder. So type in a name and press ENTER.

Next time round, you will get two string quotes again, but you don't
have to use them if you don't want to. Try this, for example: rub out
the quotes by pressing cursor right, then DELETE twice, and type...

n\$

Since there are no string quotes, the +3 knows that it has to do some
calculation - the calculation in this case is to find the value of the
string variable called 'n\$' (which is whatever name you happen to have
typed in last time round). In this way, the INPUT statement acts like
'LET n\$=n\$', so the value of 'n\$' is unchanged.

If you wish to stop the program, delete the quotes then hold down SYMB
SHIFT and type A, then ENTER.

Now look back at that 'RUN 100' instruction which jumps to line 100
and runs the program from there. You may be asking, "What's the
difference between 'RUN 100' and 'GO TO 100'?" Well, 'RUN 100' first
of all clears all the variables and the screen, and after that works
just like 'GO TO 100'. On the other hand, 'GO TO 100' doesn't clear
anything, and there may well be occasions where you wish to run a
program without clearing any variables; here GO TO would be necessary
and RUN could be disastrous, so it is better not to get into the habit
of automatically typing 'RUN' to start a program.

Another difference of course is that you may type RUN without a line
number, and it starts off at the first line in the program; GO TO must
always be followed by a line number.

Both this program and the 'temperature conversion' program stopped
because you pressed SYMB SHIFT and typed A in the input line.
Sometimes, you may write a program that you can't stop and that won't
stop itself. Type...

200 GO TO 200
RUN 200

Although the screen is blank, the program is running - executing line
200 over and over again. This looks all set to go on forever unless
you pull the plug out or reset the computer! However, these is a less
drastic remedy - press the BREAK key. The program will stop with the
report...

L BREAK into program

At the end of every statement, the program looks to see if this key is
pressed, and if it is, then the program stops. The BREAK key can also
be used when you are in the middle of using a printer, a cassette
unit, or various other add-ons that you can attach to the +3.

In these cases there is a different report...

D BREAK - CONT repeats

The instruction CONTINUE in this case *and in most other cases too)
repeats the statement where the program was stopped and carries
straight on with the next statement (after allowing for any jumps to

Run the 'name' program again and when it asks you for input, type...

n\$	(after removing the quotes)

Because 'n\$' is an undefined variable, you will get the error
report...

If you now type...

LET n\$="Fremsley"

(which produces the report '0 OK, 0:1'), and then type...

CONTINUE

...you will find that you can use 'n\$' as input data without any
trouble.

In that case CONTINUE does a jump to the INPUT command in line 110. It
disregards the report from the LET statement because that said OK and
jumps to the command referred to in the previous report, i.e. line
110. This feature can be extremely useful as it allows you to 'fix' a
program that has stopped due to errors, and then CONTINUE from that
point.

As we said before, the report 'L BREAK into program' is special
because after it, CONTINUE does not repeat the command where the
program stopped.

You have now seen the statements, PRINT, LET, INPUT, RUN, LIST, GO TO,
CONTINUE, NEW and REM, and they can all be used either as direct
commands or in program lines - this is true of almost all commands in
+3 BASIC, however, RUN, LIST, CONTINUE and NEW are not usually of much
use in a program.

Exercises...

1. Put a LIST statement in a program, so that when you run it, it lists
itself afterwards.

2. Write a program to input prices and print out the tax due (at 15
percent). Put in PRINT statements so that the +3 announces what it is
going to do, and asks for the input price with extravagant politeness.
Modify the program so that you can also input the tax rate (to allow
for zero ratings or future changes).

3. Write a program to print a running total of numbers you input (like