The Student Room Group

AS AQA Computer Science 2016 Revision Help

Scroll to see replies

Original post by mahmzo
Ok a List is an Array, it is a very fundamental data structure lol. You can declare one using (in Python) square brackets ([ ])
What we have there is an empty list, you can do ALOT using lists, they are a very strong for programmers because they are muteable (changeable).

Parameters are used in functions (def etc etc), the parameters can be used to do alot of things such as move data from one function to other (very bad explanation). It can stop the use of global variables which are not good to have when coding.

EG
def main():
a = 5
example(a) # here the function example is taking one parameter (a)


Thank you :smile: why are global variables bad? Xx
Original post by abc_123_
The difference between lists and arrays and why they help writing code easier
Also what do parameters do and why they make programs easier? Xx
Sorry I don't understand the revision guide xxx


It's okay the revision guides for computing really aren't very good.

A list is an array but an array isn't always a list. For gcse I expect that you would just need to know that lists are one dimensional data structures that store data of more than one type. An array can be multi-dimensional with each location in the array referenced by one or more index numbers depending on the number of dimensions but each 'box' must contain data of the same type. Look at bbc bite size for gcse computing as they give a very good notes on this topic.

Parameters are variables names that are passed into functions to allow the passing of local variables between functions. Again bbc bite size explains this quite well

Hope that helps :smile:
Original post by OllieGidman
It's okay the revision guides for computing really aren't very good.

A list is an array but an array isn't always a list. For gcse I expect that you would just need to know that lists are one dimensional data structures that store data of more than one type. An array can be multi-dimensional with each location in the array referenced by one or more index numbers depending on the number of dimensions but each 'box' must contain data of the same type. Look at bbc bite size for gcse computing as they give a very good notes on this topic.

Parameters are variables names that are passed into functions to allow the passing of local variables between functions. Again bbc bite size explains this quite well

Hope that helps :smile:


Thank you that helped a lot xx :smile:
Reply 63
They are always contained in memory even when not being used. They have a scope of the whole program. Itd better to use local variables which have a smaller scope
Original post by OllieGidman
It's okay the revision guides for computing really aren't very good.

A list is an array but an array isn't always a list. For gcse I expect that you would just need to know that lists are one dimensional data structures that store data of more than one type. An array can be multi-dimensional with each location in the array referenced by one or more index numbers depending on the number of dimensions but each 'box' must contain data of the same type. Look at bbc bite size for gcse computing as they give a very good notes on this topic.

Parameters are variables names that are passed into functions to allow the passing of local variables between functions. Again bbc bite size explains this quite well

Hope that helps :smile:


Hiya I'm so sorry but could you explain the cache to me please? x
Like this diagram
Reply 65
Original post by abc_123_
Hiya I'm so sorry but could you explain the cache to me please? x
Like this diagram


Uh ill try my best.

Cache is basically a small volume of fast RAM. In other words its another type of memory. But its used so that the processor doesnt need to specifically retrieve the information from the main memory. Its faster and easier for the processor.

Again its hard to explain lol from the diagram as you see the information gets retrieved fron cache. It stores instructions that are frequently used in software.

As the processsor processes the data it would look into the cache memory first then if the instruction is not found then itll go in to the main memory
please i got the exam tomorrow this is my code:

''
-
'Skeleton Program for the AQA AS Paper 1 Summer 2016 examination
'this code should be used in conjunction with the Preliminary Material
'written by the AQA Programmer Team
'developed in the Visual Studio 2008 programming environment

'Version Number 1.0

Imports System.IO

Module Module1
Const TrainingGame As String = "Training.txt"
Dim score As Integer = 0
Dim Missiles As Integer = 50

Structure TShip
Dim Name As String
Dim Size As Integer
End Structure

Sub GetRowColumn(ByRef Row As Integer, ByRef Column As Integer)


Console.WriteLine()
Console.WriteLine("Please enter 11 to return to menu and 12 to quit!")
Console.WriteLine("You currently have a score of " & score & " points! ")
Console.WriteLine("You have " & Missiles & " missiles left!")

If Missiles = 0 Then
Console.ForegroundColor = ConsoleColor.Red
Console.WriteLine("Game Over!!! No More Missiles Left! ")
Console.ResetColor()
End If


Do
Console.Write("Pleaser column: ")
Column = Console.ReadLine()


If Column = 11 Then

Main()
ElseIf Column = 12 Then
End
End If
If Column > -1 And Column < 13 Then
Exit Do
Else : Console.WriteLine("Please enter a boundary between 0 - 10")
End If
Loop

Do
Console.Write("Pleaser row: ")
Row = Console.ReadLine()
If Row = 11 Then
Main()
ElseIf Row = 12 Then
End
End If
If Row > -1 And Row < 13 Then
Exit Do
Else : Console.WriteLine("Please enter a boundary between 0 - 10")
End If
Loop
Console.WriteLine()
End Sub

Sub MakePlayerMove(ByRef Board(,) As Char, ByRef Ships() As TShip)
Dim Row As Integer
Dim Column As Integer
GetRowColumn(Row, Column)
If Board(Row, Column) = "m" Or Board(Row, Column) = "h" Then
Console.WriteLine("Sorry, you have already shot at the square (" & Column & "," & Row & "). Please try again.")
ElseIf Board(Row, Column) = "-" Then
Console.WriteLine("Sorry, (" & Column & "," & Row & ") is a miss.")
Board(Row, Column) = "m"
If Board(Row, Column) = "m" Then
Missiles = (Missiles - 1)
End If
Else
Console.WriteLine("Hit at (" & Column & "," & Row & ").")

If Board(Row, Column) = "A" Then
Board(Row, Column) = "h"
Missiles -= 1
score = (score + 5)
Console.WriteLine("You have hit part of the Aircraft carrier")

ElseIf Board(Row, Column) = "B" Then
Board(Row, Column) = "h"
Missiles -= 1
score = (score + 4)
Console.WriteLine("You have hit part of the Battleship")

ElseIf Board(Row, Column) = "S" Then
Board(Row, Column) = "h"
Missiles -= 1
score += 3
Console.WriteLine("You have hit part of the Submarine")

ElseIf Board(Row, Column) = "D" Then
Board(Row, Column) = "h"
Missiles -= 1
score += 2
Console.WriteLine("You have hit part of the Destroyer")

ElseIf Board(Row, Column) = "P" Then
Board(Row, Column) = "h"
Missiles -= 1
score += 1
Console.WriteLine("You have hit part of the Patrol Boat")

ElseIf Board(Row, Column) = "C" Then
Board(Row, Column) = "h"
Missiles -= 1
score += 1
Console.WriteLine("You have hit part of the Cruiser")
End If
End If
End Sub

Sub SetUpBoard(ByRef Board(,) As Char)
Dim Row As Integer
Dim Column As Integer
For Row = 0 To 10
For Column = 0 To 10
Board(Row, Column) = "-"
Next
Next
End Sub

Sub LoadGame(ByVal Filename As String, ByRef Board(,) As Char)
Dim Row As Integer
Dim Column As Integer
Dim Line As String
Using FileReader As StreamReader = New StreamReader(Filename)
For Row = 0 To 10
Line = FileReader.ReadLine()
For Column = 0 To 10
Board(Row, Column) = Line(Column)

Next
Next
End Using
End Sub
Sub Savegame(ByRef Board(,) As Char)
Dim Row, Column As Integer
Dim Line As String

Using Filewriter As StreamWriter = New StreamWriter("SavedGame.txt")
For Row = 0 To 10
For Column = 0 To 10
Line = Board(Row, Column)
Filewriter.WriteLine(Line)

Next
Next

End Using
End Sub

Sub PlaceRandomShips(ByRef Board(,) As Char, ByVal Ships() As TShip)
Dim Valid As Boolean
Dim Row As Integer
Dim Column As Integer
Dim Orientation As Char
Dim HorV As Integer
For Each Ship In Ships
Valid = False
While Not Valid
Row = Int(Rnd() * 11)
Column = Int(Rnd() * 11)
HorV = Int(Rnd() * 2)
If HorV = 0 Then
Orientation = "v"
Else
Orientation = "h"
End If
Valid = ValidateBoatPosition(Board, Ship, Row, Column, Orientation)
End While
Console.WriteLine("Computer placing the " & Ship.Name)
PlaceShip(Board, Ship, Row, Column, Orientation)
Next
End Sub

Sub PlaceShip(ByRef Board(,) As Char, ByVal Ship As TShip, ByVal Row As Integer, ByVal Column As Integer, ByVal Orientation As Char)
Dim Scan As Integer
If Orientation = "v" Then
For Scan = 0 To Ship.Size - 1
Board(Row + Scan, Column) = Ship.Name(0)
Next
ElseIf Orientation = "h" Then
For Scan = 0 To Ship.Size - 1
Board(Row, Column + Scan) = Ship.Name(0)
Next
End If
End Sub

Function ValidateBoatPosition(ByVal Board(,) As Char, ByVal Ship As TShip, ByVal Row As Integer, ByVal Column As Integer, ByVal Orientation As Char)
Dim Scan As Integer
If Orientation = "v" And Row + Ship.Size > 10 Then
Return False
ElseIf Orientation = "h" And Column + Ship.Size > 10 Then
Return False
Else
If Orientation = "v" Then
For Scan = 0 To Ship.Size - 1
If Board(Row + Scan, Column) <> "-" Then
Return False
End If
Next
ElseIf (Orientation = "h") Then
For Scan = 0 To Ship.Size - 1
If Board(Row, Column + Scan) <> "-" Then
Return False
End If
Next
End If
End If
Return True
End Function

Function CheckWin(ByVal Board(,) As Char)
Dim Row As Integer
Dim Column As Integer
For Row = 0 To 10
For Column = 0 To 10
If Board(Row, Column) = "A" Or Board(Row, Column) = "B" Or Board(Row, Column) = "S" Or Board(Row, Column) = "D" Or Board(Row, Column) = "P" Or Board(Row, Column) = "C" Then
Return False
End If
Next
Next
Return True
End Function

Sub PrintBoard(ByVal Board(,) As Char)
Dim Row As Integer
Dim Column As Integer
Console.WriteLine()
Console.WriteLine("The board looks like this: ")
Console.WriteLine()
Console.Write(" ")
For Column = 0 To 10
Console.Write(" " & Column & " ")
Next
Console.WriteLine()
For Row = 0 To 10
Console.Write(Row & " ")
For Column = 0 To 10
If Board(Row, Column) = "-" Then
Console.Write(" ")
ElseIf Board(Row, Column) = "A" Or Board(Row, Column) = "B" Or Board(Row, Column) = "S" Or Board(Row, Column) = "D" Or Board(Row, Column) = "P" Or Board(Row, Column) = "C" Then
Console.Write(" ")
Else
Console.Write(Board(Row, Column))
End If
If Column <> 10 Then
Console.Write(" | ")
End If
Next
Console.WriteLine()
Next
End Sub

Sub DisplayMenu()
Console.WriteLine("MAIN MENU")
Console.WriteLine()
Console.WriteLine("1. Start new game")
Console.WriteLine("2. Load training game")
Console.WriteLine("9. Quit")
Console.WriteLine()
End Sub

Function GetMainMenuChoice()
Dim Choice As Integer
Console.Write("Pleaser your choice: ")
Choice = Console.ReadLine()
Console.WriteLine()
Return Choice
End Function

Sub PlayGame(ByVal Board(,) As Char, ByVal Ships() As TShip)
Dim GameWon As Boolean = False
Do
PrintBoard(Board)
MakePlayerMove(Board, Ships)
GameWon = CheckWin(Board)
If GameWon Then
Console.WriteLine("All ships sunk!")
Console.WriteLine()
End If
Loop Until GameWon
End Sub

Sub SetUpShips(ByRef Ships() As TShip)
Ships(0).Name = "Aircraft Carrier [Worth 5 points]"
Ships(0).Size = 5
Ships(1).Name = "Battleship [Worth 4 points]"
Ships(1).Size = 4
Ships(2).Name = "Submarine [Worth 3 points]"
Ships(2).Size = 3
Ships(3).Name = "Destroyer [Worth 2 points]"
Ships(3).Size = 3
Ships(4).Name = "Patrol Boat [Worth 1 point]"
Ships(4).Size = 2
Ships(5).Name = "Cruiser [Worth 1 point]"
Ships(5).Size = 1
End Sub

Sub Main()
Dim Board(10, 10) As Char
Dim Ships(5) As TShip
Dim MenuOption As Integer
Do
SetUpBoard(Board)
SetUpShips(Ships)
DisplayMenu()
MenuOption = GetMainMenuChoice()
If MenuOption = 1 Then
PlaceRandomShips(Board, Ships)
PlayGame(Board, Ships)
ElseIf MenuOption = 2 Then
LoadGame(TrainingGame, Board)
PlayGame(Board, Ships)
End If
Loop Until MenuOption = 9
End Sub
End Module
-
"

how can I call the savegame when user enters 11 or 12 when choosing what co ordinates to enter?
Does anyone else feel they don't know slot even when I do
as you can easly crack it with brut force ( try shifting the alphabet unitl the encryption makes sence)
Reply 70
Overall paper 2 went well, a few tricky questions such as the Assembly language question.

Predicted grade boundaries:
A - 56
B - 49
C- 44


Don't have a google account, anyway you could make it public for people without google accounts?


Posted from TSR Mobile
Reply 73
Original post by theamazingone
Don't have a google account, anyway you could make it public for people without google accounts?

Done :smile:
Posted from TSR Mobile


Done

Quick Reply

Latest

Trending

Trending