System: You are ChatGPT, a large language model trained by OpenAI.
User: I will send you a body of text, I will then state what you do next.
User: 8●Sequencing instructions correctly is critical when programming. In simple terms this means making sure that each line of code is executed in the rightorder. For example, a DVD recorder may have a simple program to record aTV channel at a certain time. The sequence of events would be: Set time to record = 15: 00Set channel to record = Channel 4Check timeIf time = 15: 00 Then RecordIf any of these instructions were wrong, missed out or executed in thewrong order, then the program would not work correctly.2 Programming conceptsLEARNING OBJECTIVESIn this chapter you will learn how to: •put lines of code in the correct sequence •write an assignment statement•write a selection statement •write an iterative (repeat) statement•use loops. INTRODUCTIONIn simple terms, programming is just a case of writing a series of instructions in order to complete a task. Depending on which programming language you use, this is done in different ways. However, there are certain constructs that are common to all high-level languages. These building blocks of programming are sequence, selection and repetition (also known as iteration). There is also a further fundamental principle called assignment.SPECIFICATION COVERAGE 3.1.1.2 Programming concepts9SELECTIONThe actual process of writing statements varies from one programming language to another. This is because all languages use different syntax . Common usage of the word syntax refers to the way that sentences are structured to create well-formed sentences. For example, the sentence ‘Birds south fly in the winter’ is syntactically incorrect because the verb needs to come after the noun. Programming languages work in the same way and have certain rules that programmers need to stick to otherwise the code will not work. ●AssignmentWe met the concept of an assignment statement in Chapter 1. Assignmentgives a value to a variable or constant. For example you might be using avariable called Age  so the code: Age  34will set the variable Age  to have the value 34. The value stored in the variable could change as the program is run. Forexample, a computer game might use a variable called Score . At thebeginning of the game the value is set to 0. Each time the player scoresa point, the assignment process takes place again to reset the value ofScore  to 1 and so on. Assigning values will take place over and over again while a program isbeing run. Initially, the programmer will assign a value to the variable.Then as the program runs, the algorithms in the program code willcalculate and then return (re-assign) the latest value. Assignments are thefundamental building blocks of any computer program because they definethe data the program is going to be using.
 ●SelectionThe selection  process allows a computer to compare values and then decide what course of action to take. For example you might want your program to decide if someone is old enough to drive a car. The selectionprocess for this might look something like this: If Age < 17 Then Output = "Not old enough to drive"Else Output = "Old enough to drive"End IfIn this case, the computer is making a decision based on the value of the variable Age. If the value of Age  is less than 17 it will output the text string "Not old enough to drive" . For any other age it will output the text string "Old enough to drive" . The If  statement is a very common construct. In this case it is used to tell the program what to do if the statement is true using the If...Then  construct. If the statement is false, it uses the Else  part of the code. This is a very simple selection statement with only two outcomes.KEYWORD Selection: the principle of choosing what action to take based on certain criteria.KEYWORD Syntax: the rules of how words are used within a given language. 2 Programming concepts 10Nested selectionYou can carry out more complex selections by using a nested statement. For example, a program could be written to work out how much to charge to send parcels of different weights. This could be achieved using the following sequence of selection statements: If Weight >= 2000 Then Price = £10Else If Weight >= 1500 Then Price = £7.50Else If Weight >= 1000 Then Price = £5Else Price = £2.50End IfWhen the weight is input, it works through the lines of code in the If statement and returns the correct value. For example, if the parcel weighs 1700 g it will cost £7.50 as it is between 1500 g and 1999 g. If it weighed 2000 g or more, the If  statement would return £10.In some languages complex selections can be implemented using constructs such as this Case  statement. The following example shows a section of code that allows the user to type in a country code to identify where a parcel is being sent to: Select Case ParcelDestinationCase 1 WriteLine ("Mainland UK")Case 2 WriteLine ("Europe")Case 3 WriteLine ("USA")Case Else WriteLine ("Rest of the World")End SelectThis routine takes the value of the variable ParcelDestination  and compares it against the different criteria. So if ParcelDestination  is  1 then Mainland UK  will be printed to the screen.
 ●Repetition (Iteration)It is useful to be able to repeat a process in a program. This is usually called iteration . For example you might want to count the number of words ina block of text or you may want to keep a device moving forward until it reaches a wall. Both these routines involve repeating something until aKEYWORD Nesting: placing one set of instr uctions within another set of instructions. KEYWORDIteration: the principle of repeating processes.REPETITION (ITERATION) 11condition is met – either you run out of words to count or the device comes to a wall. An iterative process has two parts – a pair of commands that show the start and finish of the process to be repeated and some sort of condition. There are two basic forms of iteration – definite and indefinite. Definite iteration  mean s that the instructions are repeated in a loop a certain number of ti mes. Indefinite iteration  means that the instructions are repeated in a loop  until some other event stops it. Iteration statements are often referred to as loops , as they go round and round. Let’s look at an example of each. Definite iterationIf you want a process to be carried out a set number of times you will need to use definite iteration. For example, the following code could be used to operate a robotic device. It will move a device forward 40 units: For Counter = 1 To 40  Move forward 1 unitNextAfter it has moved forward 40 units it will stop. It will try and move irrespective of whether it meets an obstacle or not. This is known as a For...Next loop as it will carry out the instruction for a set number of times. Indefinite iterationIn this case the loop is repeated until a specified condition is met – so it uses a selection process to decide whether or not to carry on (or even whether to start) a process.
 This routine moves a device forward until the sensor detects an obstacle: Repeat  Move forward 1 unitUntil Sensors locate an obstacle Figure 2.1 Parking sensorKEYWORDS Definite  iteration: a process that repe ats a set number of times.
 Indefinite iteration: a process that rep eats until a certain condition is met. Loop: a repeated process. 2 Programming concepts12There is no way of knowing how many times this loop will be repeated so potentially it could go on forever – a so-called infinite loop. This example is also known as a Repeat...Until  loop as it repeats the instruction until a condition is met.To check for a condition before the code is run, you can use what is commonly called a While  or Do while  loop. For example, a program that converts marks to grades might use the following line of code: While Mark <=100  Convert Mark to GradeEnd WhileIn this case, it checks the condition before the code is run. If the mark is over 100, then the code inside the While  loop will not even start. Nested loopsIn the same way that you can nest selection statements together, it is also possible to have a loop within a loop. For example, an algorithm to create a web counter on a web page may have 8 digits allowing for numbers up to 10 million. Starting with the units, the program counts from 0 to 9. When it reaches 9, it starts again from 0, but it also has to increment the value in the tens column by 1. The units will move round 10 times before the tens, then moves once. The tens column moves around 10 times and then the hundreds increments by 1 and so on.
 The same algorithm can therefore be used for each digit and can be nested together so that the code is carried out in the correct sequence . The code below shows a nested loop just for the units and tens: Tens = 0 Units = 0While Tens < 10   While Units < 10Output Tens and Units to web counterUnits = Units + 1   End While   Tens = Tens + 1   Units = 0End WhileNotice that the way the code is indented indicates the sequence of events. This shows that for every iteration of the outer loop, the inner loop will be completed. Structures such as those mentioned in this chapter are one of the characteristics of a high-level language. They are easy to understand when they are viewed in isolation, but the problems start when you try to put a series of constructs together to do something more useful than deciding if someone is old enough to drive a car or to move a device forwards. In order to create larger, more useful programs, you need to plan ahead and organise your code. Practice questions can be found at the end of the section on pages 46 and 4 7.KEYWORDSequence: the principle of putting the correct instructions in the right order within a program.
 Figure 2.2 A web counter82530000Tens UnitsREPETITION (ITERATION)13STUDY / RESEARCH TASKS1 Identify a real-life situation where it might be useful to use the following constructs within a program: a)iterationb)selection.2 Write a program that reads in a ﬁle of test marks and then converts them to grades.3 Write a program that works out the postage charges for parcels of different weights.4 Write a program that simulates the odometer on a car.KEY POINTS •Programming statements are built up using four main constructs: sequence,selection, repetition (alsoknown as iteration) andassignment.
 •Sequence is putting theinstructions in the correct order to perform a task.
 •Selection statementschoose what action to take based on specified criteria.For example, If...Thenstatements. •Iteration is where a particularstep or steps are repeatedin order to achieve a certaintask. For example, For...Next  statements. •Assignment is the processof giving values to variables and constants. For example,Age = 25 .TASKS1 Write examples of the three main types of programming statement: assignment, selection, iteration.2 Give two examples where an iterative process might be used. 3 Explain the difference between definite and indefinite iteration.
 4 Explain the concept of a nested statement.
 5 Why is the sequence of programming statements so important? Use an example to explain. 6 What is syntax and why is it important? Use an example to explain.
User: Make the following text more clear.
Format it properly.
Do NOT change the meaning of the words or methods used to obtain the answer or anything like that.
This is for AQA A(S)-Level Computer Science. I repeat, do not alter the words as it could have an effect on the marks acquired from the marking scheme.
However, remove any redundant information or USELESS examples that are not needed for a student to know, or simplify unnecessary information (if it has a definition or keywords, it is not unnecessary).
If you can, use different values for the examples.
For things that will not score a mark or are generally useless, for example, "we will cover" or a fun fact, change the wording.
Link the 'sections' of your answer to the following spec-points (by title):
e.g. "**Topic** (Spec Points: a.b.c. Whatever)
3.1.1.2 Programming concepts
None


You MUST make sure they are ALL met. Everything it says on there you should meet.

I already provided the available exam questions you MAY choose to add on to the notes, with 'des' explaining what it's about, and 'fil' meaning the Question ID.
The content, too. Delivered in the form 'fil', JSON
Ignore exam questions that contain 'Skeleton Program'. Do not only put like 2 exam questions, try to put more!
For the exam questions, in the original text, there is a label named 'Tasks'. Those (usually) six questions are NOT the exa questions. The exam questions are the ones that were given in JSON form to you, do NOT do the 'Tasks'. Do the exam questions that contain HTML in JSON!

In the markscheme, a ';' typically means that a mark was gained.
When mentioning exam questions, you *must* answer them, according to the markscheme, scoring full marks. No 'do it yourself'.

If necessary for scoring marks, try to embed the exam-questions into your notes, sometimes without even referencing the fact that it is an exam question. For example, if an exam question is a definition or benefits, use the answer in your notes.
Remember. DO NOT ADD USELESS STUFF. Your task is to create the MOST EFFICIENT (SHORTEST [for an explanation] BUT STILL SCORES ALL MARKS) possible notes resource, which will score all marks easily, so its wording has to be mostly like that of the exam questions. By any means, if necessary, please include examples and exam questions! At the end you can have a 'try these exam questions' thing.
At the end of your answer, you will give a 'breakdown'/'summary' of each thing you covered which will tell the most concise FULLY MARK-SCORING explanation possible.

In summary, your answer must:

* Be efficient, useful
* For topics in an exam that may require some form of mathematical working, always show an example of a question.
* Be clear – provide clear, step-by-step examples/instructions when needed.
* Follow the entire specification and everything it says.
* Link your section to a spec point. E.g. **Topic** (Spec Points: a.b.c Whatever)
* Score ALL marks.
* Include ALL exam questions S at the end (except ones that contain 'Skeleton Program'), with the same wording as the original ones in the JSONs sent to you – and INCLUDE THE QUESTION CONTENT, AND THE ANSWERS/MARK SCHEME. Only the ones that I provided to you, include Question IDs.
* Remove redundant, unnecessary and useless information that would not be brought up in an exam answer.
* Be helpful to the reader
* Include a summary at the end that goes through everything you need to score all marks.

At the end of the formatted text, after everything is done, fill out the JSON:
Remove the type clarification.
{
"chapter": (int),
"page": (int),
"chapter_name": (str),
"topics": (list)
}

User: And these are the available exam questions, with 'des' explaining what it's about, and 'fil' meaning the Question ID.
{'S1$.1.b': [{'index1': '|D.A$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S1$.1.b', 'index5': '|', 'index6': 'Q22S1B09p1', 'qid': 'Q22S1B09p1', 'des': 'Explain differences between definite and indefinite iteration; loops', 'index7': '', 'marks': '2 marks', 'time': '3', 'ttext': 'Programming concepts', 'fld': 'AA_COM', 'fil': 'Q22S1B09P1', 'year': 2023, 'res': '', 'flag1': None}, {'index1': '|D.A$|K$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S1$.1.b', 'index5': '|19$|', 'index6': 'Q22S1B09p2', 'qid': 'Q22S1B09p2', 'des': 'State identifier of subroutine in skeleton program that uses definite iteration; loops', 'index7': '', 'marks': '1 marks', 'time': '1', 'ttext': 'Programming concepts | Preliminary material', 'fld': 'AA_COM', 'fil': 'Q22S1B09P2', 'year': 2023, 'res': '/RESOURCES/AA_COM/RESOURCES/2022_AS_SectionB_resources.html', 'flag1': None}, {'index1': '|D.A$|K$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S1$.1.b', 'index5': '|19$|', 'index6': 'Q22S1B09p3', 'qid': 'Q22S1B09p3', 'des': 'State identifier of subroutine in skeleton program that uses indefinite iteration; loops', 'index7': '', 'marks': '1 marks', 'time': '1', 'ttext': 'Programming concepts | Preliminary material', 'fld': 'AA_COM', 'fil': 'Q22S1B09P3', 'year': 2023, 'res': '/RESOURCES/AA_COM/RESOURCES/2022_AS_SectionB_resources.html', 'flag1': None}, {'index1': '|D.A$|D.C$|K$|', 'index2': '|3$|', 'index3': '1$', 'index4': 'S1$.1.b', 'index5': '|21$|', 'index6': 'QS17L1PM', 'qid': 'QS17L1PM', 'des': 'PM - Rabbits and Foxes', 'index7': '', 'marks': '0 marks', 'time': '0', 'ttext': 'Programming concepts | Practical programming | Preliminary material', 'fld': 'AA_COM', 'fil': 'QS17L1PM', 'year': 2017, 'res': '/RESOURCES/AA_COM/RESOURCES/AL_P1_Summer2017.html', 'flag1': 1}, {'index1': '|K$|', 'index2': '|2$|', 'index3': '1$', 'index4': 'S1$.1.b', 'index5': '|7$|', 'index6': 'QS171PM', 'qid': 'QS171PM', 'des': 'PM - Capture the Sarrum', 'index7': '', 'marks': '0 marks', 'time': '0', 'ttext': 'Preliminary material', 'fld': 'AA_COM', 'fil': 'QS171PM', 'year': 2017, 'res': '/RESOURCES/AA_COM/RESOURCES/COMP1Summer2017.html', 'flag1': 0}]}

User: These are the content of said exam questions, these are the ONLY exam questions, you will use these later, delivered in form 'fil', JSON: {'Q22S1B09P1': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Explain the differences between definite and indefinite iteration.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 2 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>2 marks for AO1 (understand)</b></p>\r\n<p class="indent1new indentright">Definite iteration: the number of iterations is known (at the time of execution);</p>\r\n<p class="indent1new indentright m-t-0">Indefinite iteration: the number of iterations depends on a condition (that is tested before / after each iteration);</p>\r\n<p class="indent1new indentright"><b>NE.</b> indefinite iteration: number of iterations not known</p>\r\n<p class="mark">[2]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Many students failed to secure full marks in this question, with responses that were insufficiently specific rather than incorrect. The most common way in which a mark was dropped was to correctly define definite iteration, and then to present indefinite iteration as the opposite of definite iteration. Where a mark is available for providing a definition, a standalone definition should be provided.</p></h5>', 'notes': '', 'resources': ''}, 'Q22S1B09P2': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">State the identifier of a subroutine in the <b>Skeleton Program</b> that contains <b>definite</b> iteration.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 1 mark)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Mark is for AO2 (analyse)</b></p>\r\n<p class="indent1new indentright comp-top">ResetDataStructures / LoadSolution / ResetAnswer / TransferAnswerIntoGrid / DisplayGrid / KeepPuzzle / CheckSolution / DisplayResults;</p>\r\n<p class="indent1new indentright"><b>R.</b> if any additional code</p>\r\n<p class="indent1new indentright m-t-0"><b>R.</b> if spelt incorrectly</p>\r\n<p class="indent1new indentright m-t-0"><b>I</b> case and spacing</p>\r\n<p class="mark">[1]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question required students to identify subroutines that contained examples of definite and indefinite iteration. The majority of students secured this mark.</p></h5>', 'notes': '', 'resources': ''}, 'Q22S1B09P3': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">State the identifier of a subroutine in the <b>Skeleton Program</b> that contains <b>indefinite</b> iteration.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 1 mark)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Mark is for AO2 (analyse)</b></p>\r\n<p class="indent1new indentright comp-top">LoadPuzzleFile / TransferPuzzleIntoGrid / LoadPartSolvedPuzzle / SolvePuzzle / GetMenuOption / NumberPuzzle;</p>\r\n<p class="indent1new indentright"><b>R.</b> if any additional code</p>\r\n<p class="indent1new indentright m-t-0"><b>R.</b> if spelt incorrectly</p>\r\n<p class="indent1new indentright m-t-0"><b>I</b> case and spacing</p>\r\n<p class="mark">[1]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question required students to identify subroutines that contained examples of definite and indefinite iteration. The majority of students secured this mark.</p></h5>', 'notes': '', 'resources': ''}, 'QS17L1PM': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>RABBITS AND FOXES</b></p>\r\n<p class="indent1new">Scientists are often interested in predicting how the population of a species of animal might change over time. Significant changes can have an impact on other animal species as well as on food production for humans. There are a huge number of factors that can impact on population, making it far too complex for us to be able to predict population changes with one hundred per cent accuracy in the real world. Scientists often develop computer models to try to predict how population may change over time; a computer model is an abstraction of a real world scenario. Scientists can use the computer model to make predictions about likely population changes in the real world. When a computer model is run it is called a simulation.</p>\r\n<p class="indent1new">The more accurate the rules in the computer model are, the more reliable the predictions based on the outputs of the computer model will be.</p>\r\n<p class="indent1new">The <b>Skeleton Program</b> accompanying this <b>Preliminary Material</b> is a program that models the population of rabbits and red foxes on an island.</p>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left1">\r\n\t<tr>\r\n\t\t<td class="col-10 no-border"><p class="padded"><img src="AA_COM/QS17L1PM_files_Q/img01.jpg"/>&nbsp;</p></td>\r\n\t\t<td class="col-12 no-border vert-top">\r\n\t\t<p class="padded text-left">Rabbits live in a collection of underground burrows called a warren.</p>\r\n\t\t<p class="padded text-left">They feed on grass and leafy plants. Rabbits breed at a fast rate and it is not unknown for rabbit populations to grow almost exponentially, which can cause significant ecological problems.</p>\r\n\t\t</td>\r\n\t</tr>\r\n</table>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left1">\r\n\t<tr>\r\n\t\t<td class="col-10 no-border"><p class="padded"><img src="AA_COM/QS17L1PM_files_Q/img02.jpg"/>&nbsp;</p></td>\r\n\t\t<td class="col-12 no-border vert-top">\r\n\t\t<p class="padded text-left">Red foxes tend to hunt for food on their own, ranging over a wide geographical area in their search for prey.</p>\r\n\t\t<p class="padded text-left">Red foxes will eat many different animals but rabbits are their main prey.</p>\r\n\t\t</td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new m-t-0">In the simulation in the <b>Skeleton Program</b> the island is represented by a square grid (the landscape). Each cell in the grid can contain either a rabbit warren or a fox or both. A rabbit warren is represented by a number that indicates the number of rabbits currently living in the warren and a fox is represented by the letter <b>F</b>.</p>\r\n<p class="indent1new"><b>Table 1</b> describes some of the data stored about each <b>fox</b>.</p>\r\n<p class="graph"><b>Table 1</b></p>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left1">\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left"><b>Attribute</b></p></td>\r\n\t\t<td class="col-15"><p class="padded text-left"><b>Description</b></p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">ID</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">A unique number allocated to each animal.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Age</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The fox&#8217;s age in years (starting value is 0). If a fox does not get enough food it will age at a faster rate.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Natural lifespan</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">Indicates the age at which the fox will die of old age. If default values are used then the lifespan for each fox will be 7.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Probability of death from other causes</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The percentage chance that, when the simulation is advanced to the next time period, the fox will die from a cause other than old age or lack of food (eg disease or being hit by a car). If default values are used then the probability of death from other causes for each fox will be 10%.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Food units needed</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The number of rabbits the fox needs to eat in one time period to stay healthy. If default values are used then the food units needed for each fox will be 10.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Food units consumed</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The number of rabbits the fox has eaten in the last time period. If a fox hasn’t eaten any rabbits it will die. If a fox hasn’t eaten as many rabbits as indicated by the food units needed attribute then the fox will age at a faster rate.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new"><b>Table 2</b> describes some of the data stored about each <b>rabbit</b>.</p>\r\n<p class="graph"><b>Table 2</b></p>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left1">\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left"><b>Attribute</b></p></td>\r\n\t\t<td class="col-15"><p class="padded text-left"><b>Description</b></p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">ID</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">A unique number allocated to each animal.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Age</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The rabbit’s age in years (starting value is 0).</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Natural lifespan</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">Indicates the age at which the rabbit will die of old age. If default values are used then the lifespan for each rabbit will be 4.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Probability of death from other causes</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The percentage chance that, when the simulation is advanced to the next time period, a rabbit will die from a cause other than old age or lack of food (eg being hit by a car or being eaten by a predator other than a fox). If default values are used then the probability of death from other causes for each rabbit will be 5%.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Reproduction rate</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">If default values are used then the reproduction rate for each rabbit will be 1.2. The higher the reproduction rate the higher the likelihood that this rabbit will mate with another rabbit (of a different gender) and have a kit (baby rabbit) that survives its first time period.</p></td>\r\n\t</tr><tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Gender</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The gender of a rabbit. When a rabbit is born there is a 50% chance that it will be male and a 50% chance that it will be female.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new"><b>Table 3</b> describes some of the data stored about each <b>warren</b>.</p>\r\n<p class="graph"><b>Table 3</b></p>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left1">\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left"><b>Attribute</b></p></td>\r\n\t\t<td class="col-15"><p class="padded text-left"><b>Description</b></p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Rabbits</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">A list containing all the rabbits currently living in the warren.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Periods run</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The number of time periods that the warren has existed within the simulation.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Rabbit count</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">The number of rabbits currently living in the warren.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-10"><p class="padded text-left">Already spread</p></td>\r\n\t\t<td class="col-15"><p class="padded text-left">This attribute indicates if the warren has already spread into a new warren. There is a maximum size of 99 for a warren (the maximum number of rabbits that can live in a warren) and when this value is reached for the first time a new warren is created at a random location in the landscape.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">In the <b>Skeleton Program</b> there is a main menu containing three options.</p>\r\n<p class="indent1new">The first option is to run the simulation with default settings. The second option is to run the simulation with custom settings. The third option is to exit the program.</p>\r\n<p class="indent1new">If the user chooses to run the simulation with default settings then each rabbit and fox will have default values as described in <b>Table 1</b> and <b>Table 2</b>. The landscape will contain five warrens and five foxes, in the positions shown in <b>Figure 1</b>.</p>\r\n<p class="graph"><b>Figure 1</b></p>\r\n<p class="graph"><img src="AA_COM/QS17L1PM_files_Q/img03.jpg"/>&nbsp;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">If the user chooses to run the simulation with custom settings then the user can choose the size of the landscape, the initial number of foxes, the initial number of warrens and the amount of variability to build into the model. The higher the variability chosen the more difference there will be between individual rabbits and individual foxes and the more difference there will be in the number of rabbits in each warren at the start of the simulation. Individual rabbits and foxes vary in terms of their lifespan, their probability of death from other causes, their reproduction rate (rabbits only) and the amount of food they need to eat (foxes only).</p>\r\n<p class="indent1new">When the simulation is run (either using default or custom settings) the current state of the landscape is displayed and the user is shown a menu containing five options.</p>\r\n<p class="indent1new"><b>Option one</b> is to advance the simulation to the next time period showing details about the changes that have happened to each warren and each fox.</p>\r\n<p class="indent1new"><b>Option two</b> is to advance the simulation to the next time period but without showing details of the changes that have happened to the warrens and foxes.</p>\r\n<p class="indent1new"><b>Option three</b> is to inspect a fox. When this option is chosen the user will be shown the details of the fox that is at coordinates specified by the user.</p>\r\n<p class="indent1new"><b>Option four</b> is to inspect a warren. When this option is chosen the user will be shown the details of the warren that is at coordinates specified by the user. After the warren details have been displayed the user can also choose to view details about all the rabbits currently living in the warren.</p>\r\n<p class="indent1new"><b>Option five</b> is to exit the simulation. When the user chooses this option they will be taken back to the program’s main menu.</p></h5>', 'markscheme': '', 'examinerreport': '', 'notes': '', 'resources': ''}, 'QS171PM': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>CAPTURE THE SARRUM</b></p>\r\n<p class="indent1new">The <b>Skeleton Program</b> is for the board game CAPTURE THE SARRUM.</p>\r\n<p class="indent1new">CAPTURE THE SARRUM is an ancient variant of the game of chess. It is a two player game &#8211; one player has the white pieces and the other player has the black pieces. Each player takes it in tum to move one of their pieces; different pieces have different rules that determine how they can move. To win the game a player needs to take (capture) the opponent&#8217;s sarrum. The player using the white pieces always moves first.</p>\r\n<p class="indent1new"><b>Figure 1</b> shows an empty board. The board consists of an 8 &#215; 8 grid of squares. The rows are called <b>ranks</b> and the columns are called <b>files</b>. Each file is labelled with a number between one and eight and each rank is also labelled with a number between one and eight.</p>\r\n<p class="graph"><b>Figure 1</b></p>\r\n<p class="graph"><img src="AA_COM/QS171PM_files_Q/img01.png"/>&nbsp;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">In <b>Figure 2</b> the third file has been shaded.</p>\r\n<p class="graph"><b>Figure 2</b></p>\r\n<p class="graph"><img src="AA_COM/QS171PM_files_Q/img02.png"/>&nbsp;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">In <b>Figure 3</b> the second rank has been shaded.</p>\r\n<p class="graph"><b>Figure 3</b></p>\r\n<p class="graph"><img src="AA_COM/QS171PM_files_Q/img03.png"/>&nbsp;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">There are six different types of piece in the game; the rules for moving each of the pieces are described in <b>Table 1</b>. If a piece moves into a square containing one of the opponent&#8217;s pieces then that piece is taken (it is removed from the board). No piece can move into a square containing another piece of the same colour.</p>\r\n<p class="graph"><b>Table 1</b></p>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left1">\r\n\t<tr>\r\n\t\t<td class="col-6"><p class="padded text-left"><b>Piece name</b></p></td>\r\n\t\t<td class="col-18"><p class="padded text-left"><b>How the piece moves</b></p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-6"><p class="padded text-left">Sarrum (king)</p></td>\r\n\t\t<td class="col-18 vert-top"><p class="padded text-left">A sarrum can move one square at a time in any  direction.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-6 vert-top"><p class="padded text-left">Marzaz pani (royal attendant)</p></td>\r\n\t\t<td class="col-18 vert-top"><p class="padded text-left">A marzaz pani can move one square at a time either vertically or horizontally &#8211; it cannot make diagonal moves.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-6 vert-top"><p class="padded text-left">Nabu (seer)</p></td>\r\n\t\t<td class="col-18 vert-top"><p class="padded text-left">A nabu can move one square at a time along a diagonal &#8211; it cannot make horizontal or vertical moves.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-6 vert-top"><p class="padded text-left">Etlu (warrior)</p></td>\r\n\t\t<td class="col-18 vert-top"><p class="padded text-left">An etlu can move two squares at a time in either a vertical or horizontal line &#8211; it must move exactly two squares and it cannot make diagonal moves. An etlu can jump over other pieces.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-6 vert-top"><p class="padded text-left">Gisgigir (chariot)</p></td>\r\n\t\t<td class="col-18 vert-top"><p class="padded text-left">A gisgigir can move any number of squares at a time in either a vertical or horizontal line &#8211; it cannot make diagonal moves. A gisgigir cannot jump over other pieces.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-6 vert-top"><p class="padded text-left">Redum (soldier)</p></td>\r\n\t\t<td class="col-18 vert-top">\r\n\t\t<p class="padded text-left">A redum can move foiward one square at a time. If the square directly in front  of a redum is empty then the redum can move into that square.</p>\r\n\t\t<p class="padded text-left">If a square that is one rank in front of and directly to the left or right of a redum contains an opponent&#8217;s piece, then the redum can move into that square and will capture the piece.</p>\r\n\t\t<p class="padded text-left">If a redum reaches the back rank (the first rank for a white redum, the eighth rank for a black redum) it is promoted (changes) into a marzaz  pani.</p>\r\n\t\t\r\n\t\t</td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new"><b>Figure 4</b> shows the position of the pieces at the start of a game of CAPTURE THE SARRUM. Each piece has been represented using the first letter of its name eg <span class="comp">s</span> = sarrum. <span class="comp">A B</span> is used to indicate a black piece and <span class="comp">a W</span> indicates a white piece.</p>\r\n<p class="graph"><b>Figure 4</b></p>\r\n<p class="graph"><img src="AA_COM/QS171PM_files_Q/img04.png"/>&nbsp;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">In <b>Figure 5</b> shaded squares in the diagrams show the legal moves that a piece can make.</p>\r\n<p class="graph"><b>Figure 5</b></p>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left2">\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img05.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s sarrum <b>can</b> move one square in any direction.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><table class="data-table left2">\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img06.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s marzaz pani <b>can</b> move one square vertically or horizontally.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img07.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s marzaz pani <b>cannot</b> move to a square containing another white piece.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><table class="data-table left2">\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img08.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s nabu <b>can</b> move one square in a diagonal direction.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img09.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s etlu <b>can</b> move two squares in a vertical or horizontal direction.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><table class="data-table left2">\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img10.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s etlu <b>cannot</b> move into the same square as another white piece but <b>can</b> move into the same square as a black piece (the black piece will be captured). An etlu <b>can</b> jump over other pieces of either colour.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img11.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s gisgigir <b>can</b> move any number of squares in a straight line, either horizontally or vertically.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><table class="data-table left2">\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img12.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s gisgigir <b>cannot</b> move to a square occupied by another white piece and it <b>cannot</b> jump over other pieces.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img13.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s redum <b>can</b> move one square forward; it <b>cannot</b> move diagonally forward unless it is capturing a black piece.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><table class="data-table left2">\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img14.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s redum <b>can</b> either move one square forward or it can move diagonally forward one square to capture the black marzaz pani.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img15.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s redum <b>cannot</b> move to the square immediately in front of it as this is occupied by another piece; it <b>can</b> move diagonally forward one square to capture either the black marzaz pani or the black sarrum.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><table class="data-table left2">\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img16.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">White&#8217;s redum has no legal moves.</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-15 no-border"><p class="padded text-left"><img src="AA_COM/QS171PM_files_Q/img17.png"/>&nbsp;</p></td>\r\n\t\t<td class="col-6 no-border"><p class="padded text-left">Black&#8217;s redum <b>can</b> either move one square forward or it can capture the white etlu - it <b>cannot</b> move to the square containing the black gisgigir.</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">When the Skeleton Program is run, the user is given the option to play using a sample game. If they choose to play the sample game then the initial board position will be as shown in <b>Figure 6</b>; otherwise the initial board position will be as shown in <b>Figure 4</b>.</p>\r\n<p class="graph"><b>Figure 6</b></p>\r\n<p class="graph"><img src="AA_COM/QS171PM_files_Q/img18.png"/>&nbsp;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">When the sample game starts it is White\'s move.</p>\r\n<p class="indent1new">To enter a move the player types in the grid reference of the square containing the piece that they would like to move (the start square) and then the grid reference of the square that they would like  to move the selected piece to (the finish square). A grid reference is the number of the file followed by the number of the rank, eg in <b>Figure 6</b> the grid reference 41 indicates the position of Black\'s sarrum. If the move entered is a legal move then the board will be updated and it will now be the other player\'s turn.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new"><b>Figure 7</b>, <b>Figure 8</b> and <b>Figure 9</b> show three examples of White entering a move and the positions after these moves, from the start position shown in <b>Figure 6</b>.</p>\r\n<p class="graph"><b>Figure 7</b></p>\r\n<p class="graph">White enters a start square of 13 and a finish square of 23.</p>\r\n<p class="graph"><img src="AA_COM/QS171PM_files_Q/img19.png"/>&nbsp;</p>\r\n<p class="graph">White\'s sarrum has captured Black\'s etlu.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="graph"><b>Figure 8</b></p>\r\n<p class="graph">White enters a start square of 81 and a finish square of 41.</p>\r\n<p class="graph"><img src="AA_COM/QS171PM_files_Q/img20.png"/>&nbsp;</p>\r\n<p class="graph">White\'s gisgigir has captured Black\'s sarrum and wins the game.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="graph"><b>Figure 9</b></p>\r\n<p class="graph">White enters a start square of 12 and a finish square of  13.</p>\r\n<p class="graph m-t-0">A message saying \'That is not a legal move &ndash; please try again\' is  displayed.</p>\r\n<p class="graph m-t-0">White then enters a start square of 12 and a finish square of  21.</p>\r\n<p class="graph"><img src="AA_COM/QS171PM_files_Q/img21.png"/>&nbsp;</p>\r\n<p class="graph">White\'s redum has captured Black\'s gisgigir and White\'s redum has reached the</p>\r\n<p class="graph m-t-0">eighth rank and so is promoted to a marzaz pani.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">The game continues until one of the players captures the opponent\'s sarrum. The user is then  given the option to play another game &ndash; if they don\'t choose to play another game then this will exit the <b>Skeleton Program</b>.</p>\r\n<p class="indent1new"><b>Notes</b></p>\r\n<p class="indent1new">Your chosen programming language may use arrays with a lower bound value of <span class="comp">O</span>. If so, array ells with indices of <span class="comp">O</span> are not used.</p></h5>', 'markscheme': '', 'examinerreport': '', 'notes': '', 'resources': ''}}
User: Now, the user will ask questions after this message. Use everything I gave you and the knowledge you have acquired, and from the notes you made, to answer their question in a very concise way that WILL score ALL marks. Just like the notes. For this, your answer will not have the same structure as the revision notes. Think of it as answering an exam question: short, consice, useful, scores ALL marks. Just like the exam questions provided to you, you will not leave your response in a 'notes' manner. You are just answering an exam question: which means it has to be very short unless explicitly specified by the user that it must be long and detailed. So, keep it short, concise, and only a couple of sentences that score ALL marks. Remember, it is an A-Level exam question and you will style it as such: incredibly concise sentences (essentially like bullet points but without the bullet points) that score marks. Most sentences won't even have commas, this does not mean you can't use them. Also do not repeat the question in your answer, just do it. Score all marks, assume how many marks there are based on the question if it is not provided to you. Imagine that for every sentence you make, you score a mark (for simpler questions), for high (>5 mark) questions that may differ.
In summary, you must:
* Answer very concisely. Kind of like bullet points but as a short para. Most of the time, a sentence, or point, will be a mark.
* Do not repeat the question at the start.
* Don't over-do your answer. Please. 1 mark (e.g., usually, 'What' questions) is like one very short sentence usually. Remember the summary from the notes? Your answer will essentially be like that for most questions but a bit (a bit!) more developed. Remember, this is just A-Levels. Use some of the exam questions that I provided as an example of how you should model your answers.
* When you're listing examples, don't list every example in the universe.
* Score all marks. Be helpful.
User: Write the notes you made
Assistant: