Showing posts with label arrays. Show all posts
Showing posts with label arrays. Show all posts

Monday, May 23, 2011

Beginning Programming with Just BASIC -- Tutorial 6: File Input and Output



Tutorial 6: File Input and Output

Suppose we want to be able to close a program to go eat supper and come back later. But we want to save all our data. By now you should be familiar with the fact that variables and arrays reset when you close a program.

You can print data to a file. Like this:

input "Give your file a name: "; filename$
open filename$ for output as #save
print #save, "Yotta yotta homina homina jiggabuh."

Some notes about this code: #save is called a handle, and it is used to refer to the output file. Any variable name preceded by a # is a handle, which are used to describe windows in general. So, if you run this program and name your file "output.txt", a new file will be created in the folder that your basic file is saved in named "output.txt," and it will contain a line that says:

Yotta yotta homina homina jiggabuh.

You can also do input files, so you can load a file into your program that you previously saved.

input "What file would you like to open? "; filename$
open filename$ for input as #load
for i = 1 to n
    input data$(i)
next

Here is an example program that allows you to save your work:

[start]
    print "Would you like to (1) write a story, (2) read one you wrote, or (3) exit?"
    input answer
    select case answer
        case 1: goto [write]
        case 2: goto [read]
        case 3: goto [quit]
    end select

[write]
    input "How many lines will your story be? "; n
    dim txt$(n)
    print "Write your story:"
    for i = 1 to n
        input txt$(i)
    next
    input "Enter a name for the file: "; filename$
    open filename$ for output as #save
    for i = 1 to n
        print #save, txt$(i)
    next
    close #save '<- Closes the file afterward
    goto [start]

[read]
    input "What is the file name? "; filename$
    open filename$ for input as #load
    input #load, n
    dim txt$(n)
    for i = 1 to n
        input #load, txt$(i)
        print txt$(i)
    next
    close #load
    goto [start]

[quit]
    end


Some notes about this code: This is a basic example of a program where the user will be producing something (in this case, a story), and then can read it later. Instead of doing it this way, you should look into how to do a file dialog window (it's easier than you might suppose!).

goto [nextTutorial] 

Sunday, May 22, 2011

Beginning Programming with Just BASIC -- Tutorial 5: Arrays



Tutorial 5: Arrays

Arrays are similar to variables, except that they can hold more than one value. For instance, a list of names and grades. This is a good way to organize data, especially when little is known about the data that is going into them, in particular how many data point there are.

To set up an array in your program requires a little more work than it takes to use a variable. First you have to define how big the array will be, that is, how many values it can hold. You do that with the DIM command:

dim myArray(100)

In parentheses you put a number defining the size of the array. In this case I can put 100 values into the array called myArray(). So how do I do that?

With loops! Arrays are often used in conjunction with FOR loops because of how easy it is to systematically define every value.

for i = 1 to 100
    input myArray(i)
next

This is far easier than having to write out

input myArray(1)
input myArray(2)
input myArray(3)...

You get the picture.

You can also have multidimensional arrays. Say you want to associate two parameters to the same value. You can do that easily:

dim twoDimensional(10,10)
for i = 1 to 10
    for j = 1 to 10
        twoDimensional(i,j) = i*j
    next
next

Those are the essentials of making an array. I decided to include them early on so you don't waste time trying to use variables for some complex program.

goto [nextTutorial]