Quiz on Addition and Subtraction of Directed Numbers (1)
2015-01-21 12:30
This interactive applet is a quiz for practicing the addition and subtraction of directed numbers, also known as integers. It randomly generates arithmetic problems that involve both positive and negative numbers, ensuring a varied set of exercises each time the quiz is launched. Users enter their answers using the applet's built-on-screen numeric keypad, which makes the tool accessible on both desktop and touchscreen devices. After each submission, the program automatically evaluates whether the answer is correct or incorrect and displays an appropriate feedback prompt to let the user know the result immediately. Throughout the session, the applet keeps a running tally of the number of correct and incorrect responses, giving learners a clear sense of their performance. This immediate feedback loop and progress tracking support self-directed learning and encourage students to identify areas where they need further practice. The applet is designed primarily for foundational arithmetic practice, helping students reinforce their understanding of the rules for adding and subtracting positive and negative numbers. It is well suited for classroom use, homework assignments, or independent self-assessment, making it a versatile resource for learners at the introductory level of integer operations.
Loading the math board and drawing, please wait…
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="5.0" version="5.0.504.0" app="classic" platform="w" id="a35c451c-2034-4d5f-af79-0bc8ae41b1f9" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="900" height="550" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.4" orientation="1" />
</panes>
<views>
<view id="1" visible="true" inframe="false" stylebar="false" location="1" size="500" window="100,100,600,400" />
<view id="2" visible="false" inframe="false" stylebar="false" location="3" size="200" window="100,100,250,400" />
<view id="4" visible="false" inframe="false" stylebar="false" location="1,1" size="300" window="100,100,600,400" />
<view id="8" visible="false" inframe="false" stylebar="false" location="1,3" size="300" window="100,100,600,400" />
<view id="4097" visible="false" inframe="false" stylebar="true" location="1,1,1,1" size="400" window="100,100,700,550" />
<view id="512" visible="false" inframe="false" stylebar="false" location="1,1,1" size="500" window="100,100,600,400" />
</views>
<toolbar show="false" items="0 39 59 || 1 501 67 , 5 19 , 72 | 2 15 45 , 18 65 , 7 37 | 4 3 8 9 , 13 44 , 58 , 47 || 16 51 64 , 70 | 10 34 53 11 , 24 20 22 , 21 23 | 55 56 57 , 12 || 36 46 , 38 49 50 , 71 | 30 29 54 32 31 33 | 17 26 62 , 14 66 68 | 25 52 60 61 || 40 41 42 , 27 28 35 , 6" position="1" help="false" />
<input show="false" cmd="true" top="algebra" />
<dockBar show="false" east="false" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="18"/>
</gui>
<euclidianView>
<viewNumber viewNo="1"/>
<size width="898" height="548"/>
<coordSystem xZero="859.4294472970066" yZero="263.3282864726576" scale="11.374044756457936" yscale="11.372925263863793"/>
<evSettings axes="true" grid="false" gridIsBold="false" pointCapturing="2" rightAngleStyle="1" checkboxSize="26" gridType="0"/>
<bgColor r="255" g="239" b="213"/>
<axesColor r="0" g="153" b="204"/>
<gridColor r="192" g="192" b="192"/>
<lineStyle axes="3" grid="10"/>
<labelStyle axes="1" serif="false"/>
<axis id="0" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true" tickDistance="1" tickExpression="1"/>
<axis id="1" show="true" label="" unitLabel="" tickStyle="1" showNumbers="true" tickDistance="1" tickExpression="1"/>
</euclidianView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="0" spreadsheet="0"/>
<coordStyle val="0"/>
</kernel>
<scripting blocked="false" disabled="false"/>
<construction title="" author="" date="">
<expression label="textAns" exp=""""/>
<element type="text" label="textAns">
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<startPoint x="-15.47686233881971" y="-2.2667395989850867" z="1"/>
</element>
<element type="numeric" label="MaxNum">
<value val="20"/>
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelMode val="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<command name="RandomElement">
<input a0="{"+", "-"}"/>
<output a0="sign"/>
</command>
<element type="text" label="sign">
<show object="false" label="false"/>
<objColor r="0" g="100" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<font serif="false" sizeM="4.555555555555555" size="64" style="0"/>
<absoluteScreenLocation x="15" y="99"/>
</element>
<command name="Random">
<input a0="(-MaxNum)" a1="MaxNum"/>
<output a0="a"/>
</command>
<element type="numeric" label="a">
<value val="-10"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<selectionAllowed val="false"/>
</element>
<command name="Random">
<input a0="0" a1="MaxNum"/>
<output a0="b"/>
</command>
<element type="numeric" label="b">
<value val="10"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<selectionAllowed val="false"/>
</element>
<command name="If">
<input a0="sign ≟ "+"" a1="a + b" a2="a - b"/>
<output a0="answer"/>
</command>
<element type="numeric" label="answer">
<value val="-20"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<selectionAllowed val="false"/>
</element>
<element type="button" label="buttonNext">
<show object="true" label="true" ev="1"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="304" y="375"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="UpdateConstruction[] SetValue[hint,false] SetVisibleInView[buttonClear,1,true] SetVisibleInView[buttonConfirm,1,true] SetVisibleInView[buttonNext,1,false] SetValue[textAns,""] SetVisibleInView[picCorrect,1,false] SetVisibleInView[picWrong,1,false]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="165" height="67" />
<caption val="Next"/>
</element>
<element type="boolean" label="hint">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="299" y="143"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="Hint"/>
</element>
<element type="numeric" label="inputAns">
<value val="NaN"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<command name="Vector">
<input a0="(0.5, 0)" a1="(0.5, a)"/>
<output a0="u"/>
</command>
<element type="vector" label="u">
<show object="true" label="false" ev="4"/>
<condition showObject="hint"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<coords x="0" y="-10" z="0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<coordStyle style="cartesian"/>
<startPoint x="0.5" y="0" z="1"/>
</element>
<command name="Vector">
<input a0="(1, a)" a1="(1, answer)"/>
<output a0="v"/>
</command>
<element type="vector" label="v">
<show object="true" label="false" ev="4"/>
<condition showObject="hint"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<coords x="0" y="-10" z="0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<coordStyle style="cartesian"/>
<startPoint x="1" y="-10" z="1"/>
</element>
<expression label="textQuestion" exp=""" + (LaTeX[a]) + "" + (LaTeX[sign]) + "" + (LaTeX[b]) + "=\textcolor{blue}{" + (LaTeX[textAns]) + "}"" />
<element type="text" label="textQuestion">
<show object="true" label="true" ev="8"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="4" size="54" style="0"/>
<absoluteScreenLocation x="24" y="14"/>
</element>
<element type="button" label="button1">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="31" y="295"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"1"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="1"/>
</element>
<element type="button" label="button2">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="111" y="295"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"2"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="2"/>
</element>
<element type="button" label="button3">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="191" y="295"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"3"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="3"/>
</element>
<element type="button" label="button4">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="31" y="216"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"4"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="4"/>
</element>
<element type="button" label="button5">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="111" y="216"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"5"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="5"/>
</element>
<element type="button" label="button6">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="191" y="216"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"6"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="6"/>
</element>
<element type="button" label="button7">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="31" y="136"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"7"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="7"/>
</element>
<element type="button" label="button8">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="111" y="136"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"8"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="8"/>
</element>
<element type="button" label="button9">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="191" y="136"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"9"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="9"/>
</element>
<element type="button" label="button0">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="111" y="375"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"0"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="0"/>
</element>
<element type="button" label="buttonNeg">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="1"/>
<layer val="0"/>
<labelOffset x="31" y="375"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,textAns+"-"]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="60" height="70" />
<caption val="-"/>
</element>
<element type="button" label="buttonClear">
<show object="true" label="true"/>
<condition showObject="textAns ≠ """/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="304" y="295"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[textAns,""] SetValue[inputAns,-99]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="165" height="67" />
<caption val="Clear"/>
</element>
<element type="button" label="buttonConfirm">
<show object="true" label="true"/>
<condition showObject="textAns ≠ """/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="304" y="375"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="ParseToNumber[inputAns, textAns] SetValue[numCorrect,If[correct,numCorrect+1,numCorrect]] SetValue[numWrong,If[!correct,numWrong+1,numWrong]] SetVisibleInView[picCorrect,1,correct] SetVisibleInView[picWrong,1,!correct] SetVisibleInView[buttonClear,1,false] SetVisibleInView[buttonConfirm,1,false] SetVisibleInView[buttonNext,1,true]"/>
<font serif="false" sizeM="4" size="54" style="0"/>
<dimensions width="165" height="67" />
<caption val="Check"/>
</element>
<element type="numeric" label="numCorrect">
<value val="0"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="0" max="999" absoluteScreenLocation="true" width="200" x="270" y="125" fixed="false" horizontal="true" showAlgebra="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<element type="numeric" label="numWrong">
<value val="0"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="0" max="999" absoluteScreenLocation="true" width="200" x="509" y="125" fixed="false" horizontal="true" showAlgebra="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<element type="image" label="picCorrect">
<file name="96bee65b9df1ebf3a821122f720c42ff/clap_small.png"/>
<inBackground val="false"/>
<absoluteScreenLocation x="509" y="239"/> <show object="true" label="true" ev="1"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
</element>
<element type="image" label="picWrong">
<file name="e4b6a4497f2a9e29df36092a3f5cedd0/shocked-emoji_small.png"/>
<inBackground val="false"/>
<absoluteScreenLocation x="509" y="239"/> <show object="true" label="false" ev="1"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
</element>
<expression label="correct" exp="answer ≟ inputAns" />
<element type="boolean" label="correct">
<value val="false"/>
<show object="false" label="true"/>
<objColor r="255" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
</element>
<element type="button" label="buttonENG">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="3"/>
<labelOffset x="734" y="491"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[lang,If[lang==1,2,1]] RunClickScript[buttonLang] "/>
<font serif="false" sizeM="1.4" size="8" style="0"/>
<caption val="中文"/>
</element>
<element type="button" label="buttonLang">
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="3"/>
<labelOffset x="532" y="572"/>
<labelMode val="0"/>
<fixed val="true"/>
<auxiliary val="true"/>
<ggbscript val="SetCaption[buttonENG,If[lang==1,"ENG","中文"]] SetCaption[buttonClear,If[lang==1,"清除","Clear"]] SetCaption[buttonNext,If[lang==1,"下一題","Next"]] SetCaption[buttonConfirm,If[lang==1,"核對","Check"]] SetCaption[hint,If[lang==1,"提示","Hint"]]"/>
<font serif="false" sizeM="2" size="18" style="0"/>
</element>
<element type="numeric" label="lang">
<value val="2"/>
<symbolic val="true" />
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<layer val="3"/>
<labelMode val="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<expression label="textMarks" exp=""" + (If[lang ≟ 1, "答對題數", "Correct"]) + " = " + numCorrect + " " + (If[lang ≟ 1, "答錯題數", "Incorrect"]) + " = " + numWrong + """ />
<element type="text" label="textMarks">
<show object="true" label="true" ev="8"/>
<objColor r="255" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<font serif="false" sizeM="1.4" size="8" style="0"/>
<absoluteScreenLocation x="497" y="397"/>
</element>
<element type="point" label="A">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0"/>
<layer val="3"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="-14" y="-16" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="point" label="B">
<show object="false" label="true"/>
<objColor r="0" g="0" b="255" alpha="0"/>
<layer val="3"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="-6" y="-16" z="1"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="image" label="pic1">
<file name="a1438ea254ee24f940dc2e1cb2430ccf/star.png"/>
<inBackground val="false"/>
<startPoint number="0" exp="A"/>
<startPoint number="1" exp="B"/>
<show object="true" label="false"/>
<condition showObject="numCorrect - numWrong ≥ 100"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="3"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
</element>
</construction>
</geogebra>