Quiz on Addition and Subtraction of Directed Numbers (2)
2020-08-18 16:51
This GeoGebra applet is an interactive quiz tool for practicing the addition and subtraction of directed numbers (positive and negative numbers). It randomly generates arithmetic questions with signs for students to solve. The interface features a custom virtual numeric keypad (including a negative sign, clear, and confirm buttons), an answer input field, a hint function, and language toggle butto
Loading the GeoGebra 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="513.4342578250381" yZero="264.32311133580845" scale="12.882411309231067" yscale="12.882411309231065"/>
<evSettings axes="false" grid="false" gridIsBold="false" pointCapturing="2" rightAngleStyle="1" checkboxSize="26" gridType="0"/>
<bgColor r="255" g="239" b="213"/>
<axesColor r="0" g="0" b="0"/>
<gridColor r="192" g="192" b="192"/>
<lineStyle axes="1" grid="10"/>
<axis id="0" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true" tickDistance="1" tickExpression="1"/>
<axis id="1" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true" tickDistance="1" tickExpression="1"/>
<grid distX="1" distY="1" distTheta="0.5235987755982988"/>
</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="2.8380000000000005" y="1.7119999999999953" 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="signA"/>
</command>
<element type="text" label="signA">
<show object="false" label="false"/>
<objColor r="0" g="102" b="102" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
</element>
<command name="Random">
<input a0="1" a1="MaxNum"/>
<output a0="a"/>
</command>
<element type="numeric" label="a">
<value val="12"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<selectionAllowed val="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="102" b="102" 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="1" a1="MaxNum"/>
<output a0="b"/>
</command>
<element type="numeric" label="b">
<value val="11"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<selectionAllowed val="false"/>
</element>
<command name="RandomElement">
<input a0="{"+", "-"}"/>
<output a0="signB"/>
</command>
<element type="text" label="signB">
<show object="false" label="false"/>
<objColor r="0" g="102" b="102" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
</element>
<command name="If">
<input a0="signB ≟ "+"" a1="b" a2="(-b)"/>
<output a0="b'"/>
</command>
<element type="numeric" label="b'">
<value val="11"/>
<objColor r="0" g="0" b="0" alpha="0.10000000149011612"/>
<selectionAllowed val="false"/>
</element>
<command name="If">
<input a0="signA ≟ "+"" a1="a" a2="(-a)"/>
<output a0="a'"/>
</command>
<element type="numeric" label="a'">
<value val="-12"/>
<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="-1"/>
<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="294" y="367"/>
<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="289" y="145"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="Hint"/>
</element>
<command name="If">
<input a0="sign ≟ "+"" a1="If[signB ≟ "+", "+", "-"]" a2="If[signB ≟ "+", "-", "+"]"/>
<output a0="textSign"/>
</command>
<element type="text" label="textSign">
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<font serif="false" sizeM="4.555555555555555" size="64" style="0"/>
<startPoint x="-0.12000000000000004" y="0.15999999999999992" z="1"/>
</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>
<expression label="textQuestion" exp=""(" + (LaTeX[signA]) + "" + (LaTeX[a]) + ") " + (LaTeX[sign]) + " (" + (LaTeX[signB]) + "" + (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="14" y="11"/>
</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="37" y="290"/>
<labelMode val="3"/>
<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="114" y="290"/>
<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="290"/>
<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="36" y="211"/>
<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="114" y="213"/>
<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="213"/>
<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="37" y="135"/>
<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="114" y="135"/>
<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="135"/>
<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="114" y="367"/>
<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="37" y="367"/>
<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="294" y="290"/>
<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="294" y="367"/>
<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="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="508" y="136" 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="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="285" y="131" 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="488" y="312"/> <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="488" y="316"/> <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>
<expression label="correct" exp="answer ≟ inputAns" />
<element type="boolean" label="correct">
<value val="false"/>
<show object="false" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
</element>
<expression label="textHint" exp=""(" + (LaTeX[signA]) + "" + (LaTeX[a]) + ") " + (LaTeX[sign]) + " (" + (LaTeX[signB]) + "" + (LaTeX[b]) + ") = " + (LaTeX[signA]) + "" + (LaTeX[a]) + "" + (LaTeX[textSign]) + "" + (LaTeX[abs(b)]) + """ />
<element type="text" label="textHint">
<show object="false" label="true" ev="8"/>
<condition showObject="hint"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="2" size="18" style="0"/>
<absoluteScreenLocation x="374" y="136"/>
</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="823" y="458"/>
<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="488" y="470"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<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"/>
<dimensions width="165" height="39" />
</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="2" size="18" style="0"/>
<absoluteScreenLocation x="499" y="375"/>
</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="21" y="-13" 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="27.98626971609805" y="-13" 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>