# A-level Computing 2009/AQA/Problem Solving, Programming, Data Representation and Practical Exercise/Fundamentals of Programming/One-Dimensional Arrays

You can also declare arrays by placing the values directly into them, this code does exactly the same as the above:
You can pick out individual items by using their index
Would output:
Gertrude Barry
You can treat indexed array items as variables and change their values:
* Exercise: One-Dimensional Arrays
* Declare an array listing 5 animals in a zoo (aardvark, bear, cuckoo, deer, elephant) in alphabetical order:
* Answer:
* dim zooanimals as string = {"aardvark","bear","cow","deer","elephant"}
* Write code to output the first and last animal
* Answer:
* console.writeline(zooanimals(0))
* console.writeline(zooanimals(4))
* Someone has accidentally eaten the cuckoo, let the user add a new third animal and print them all out:
* Code Output
* Insert new third animal: Crocodile
* 1: Aardvark
* 2: Bear
* 3: Crocodile
* 4: Deer
* 5: Elephant
* Answer:
* console.write("Insert new third animal:")
* zooanimals(2) = console.readline
* console.writeline("1: " & zooanimals(0))
* console.writeline("2: " & zooanimals(1))
* console.writeline("3: " & zooanimals(2))
* console.writeline("4: " & zooanimals(3))
* console.writeline("5: " & zooanimals(4))
* ''Alternatively an A-grade student might write:
* for x = 0 to 4
* console.writeline(x + 1 & ": " & zooanimals(x))
* next
To print out the entire array it is best to use some form of iteration:
Would print out:
Barry Aubrey Gertrude
To overwrite something, you treat it like a variable:
Would output:
Barry Peter Gertrude
* Exercise: One-Dimensional Arrays
* What is the output of the following code:
* dim primes as integer = {2,3,5,7,11,13,17,19,23}
* dim count = 8
* While count >= 0
* console.write(primes(count) & ", ")
* count = count - 1
* end while
* Answer:
* Code Output
* 23,19,17,13,11,7,5,3,2
* Declare an array that will hold the names of your 5 best friends, call is befr
* Answer:
* dim befr(5) as string 'befr(4) would also be accepted
* Write a loop so that you can input each of your five best friends and it will output them in the order you input them. For example:
* Code Output
* Insert best friends:
* 1: Nell
* 2: Al
* 3: Sean
* 4: Paley
* 5: Jon
* You listed: Nell,Al,Sean,Paley,Jon
* Answer:
* dim befr(5) as string
* console.writeline("Insert best friends:")
* for x = 1 to 5
* console.write(x & ": ")
* befr(x) = Console.ReadLine
* next
* console.writeline("You listed:")
* for x = 1 to 5
* console.write(befr(x) & ", ")
* next
* Adjust the code above so that it outputs the list in reverse order:
* Answer:
* dim befr(5) as string
* console.writeline("Insert best friends:")
* for x = 1 to 5
* console.write(x & ": ")
* befr(x) = Console.ReadLine
* next
* console.writeline("You listed:")
* for x = 5 to 1 step -1
* console.write(befr(x))
* next
* Extension: For each
* Sometimes you might not know the length of an array that you area dealing with yet you will still want to cycle through all the elements. If you don't know what numbers to put into the for x = 0 to ?? code then how will you cycle through everything? Visual Basic and most languages offer a for each routine that allows you to look at each element until you find the last one. This makes for far more robust code where you don't have to keep changing the variables of loops each time you change the size of arrays:
* Dim someNumbers as integer = {1,2,3,4,5,6,7,23,77}
* For Each n In someNumbers
* Console.Write(n & ", ")
* Next
* The above code would output:
* Code Output
* 1, 2, 3, 4, 5, 6, 7, 23, 77,

## Uses

Arrays are very useful for solving all manner of problems, ranging from sorting lists to storing the results to calculations.
Take the Fibonacci sequence of numbers where: the first two numbers in the Fibonacci sequence are 0 and 1, and each subsequent number is the sum of the previous two.
    $F_{n}=F_{n-1}+F_{n-2},\!\,$
For example:
    $0,1,1,2,3,5,8,13,21,34,55,89,144,...$
This could take some time to calculate by hand but and we can use an array to calculate and store this sequence:
* Exercise: Calculating with arrays
* Update the above code to allow the user to input a number, then the program to store and display that many fibonacci numbers. Test it for 10 and 1000
* Answer:
* dim size as integer
* size = console.readline
* 'integer is too small to hold this value so we change to single
* dim fib(size) as single
* 'initiate the first two values
* fib(0) = 0
* fib(1) = 1
* for x = 0 to size - 2
* fib(x+2) = fib(x) + fib(x+1)
* next
* console.writeline("The first " & size & " fibonacci numbers are:")
* for y = 0 to size
* console.write(fib(y) & ",")
* next
Arrays are also very important when we are searching and sorting data. You will learn a lot more about this in A2, but for the moment take a look at this linear search routine:
If we were to try and find Olamide we should see the following:
Who are you searching for: Olamide Olamide found at position : 2
* Exercise: Searching arrays
* Why do we have attendance.length - 1 in the above code?
* Answer:
* As the array starts at location 0, the length of the array will be 1 more than the largest index number.
* Adjust the code above to tell you when it hasn't found a person:
* Answer:
* 'there are multiple ways of doing this:
* dim attendance as string = {"Callum", "John", "Olamide", "Mathew", "Gabriel", "Dong"}
* dim search as string
* dim found as boolean = false
* console.writeline("Who are you searching for:")
* search = console.readline
* for x = 0 to attendance.length - 1 'why do we need -1 here?
* if attendance(x) = search then
* console.writeline(search & " found at position : " & x)
* found = true
* end if
* next
* if found = false then
* console.writeline(search & " NOT found in the array")
* end if