Addition and Subtraction of Directed Numbers (2)
2020-08-18 16:05
This GeoGebra applet demonstrates the addition and subtraction of directed numbers. It features interactive buttons and randomly generated questions for practice. The interface includes multilingual support and answer verification. Using vector and sequence commands, it dynamically illustrates the calculation process, helping learners master directed number arithmetic.
Loading the GeoGebra board and drawing, please wait…
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="5.0" version="5.0.288.0" 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="960" height="660" />
<perspectives>
</perspectives>
<labelingStyle val="3"/>
<font size="18"/>
</gui>
<euclidianView>
<viewNumber viewNo="1"/>
<size width="958" height="658"/>
<coordSystem xZero="883.6471336181064" yZero="329.64586005043753" scale="25.958425502496837" yscale="25.955870539356752"/>
<evSettings axes="true" grid="false" gridIsBold="false" pointCapturing="3" rightAngleStyle="1" checkboxSize="26" gridType="0"/>
<bgColor r="255" g="255" b="255"/>
<axesColor r="0" g="0" b="0"/>
<gridColor r="192" g="192" b="192"/>
<lineStyle axes="3" grid="10"/>
<axis id="0" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true" tickDistance="1" tickExpression=""/>
<axis id="1" show="true" label="" unitLabel="" tickStyle="1" showNumbers="true" tickDistance="1" tickExpression=""/>
</euclidianView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="0" spreadsheet="0"/>
<coordStyle val="0"/>
<angleFromInvTrig val="false"/>
</kernel>
<scripting blocked="false" disabled="false"/>
<construction title="" author="" date="">
<expression label ="list3" exp="{"$+$", "$-$"}"/>
<element type="list" label="list3">
<show object="true" label="true" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="255" alpha="255"/>
<layer val="0"/>
<labelOffset x="244" y="23"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<comboBox val="true"/>
<pointSize val="5"/>
<pointStyle val="-1"/>
<font serif="true" sizeM="1.4" size="8" style="0"/>
<caption val="Choose:"/>
</element>
<expression label ="MaxNum" exp="15"/>
<element type="numeric" label="MaxNum">
<value val="15"/>
<show object="false" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<command name="Sequence">
<input a0="If[i > 0, "$+", "$"] + (Text[i]) + "$"" a1="i" a2="(-MaxNum)" a3="MaxNum"/>
<output a0="list1"/>
</command>
<element type="list" label="list1">
<show object="true" label="true" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="255" alpha="255"/>
<layer val="0"/>
<labelOffset x="13" y="23"/>
<labelMode val="3"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<selectedIndex val="7"/>
<comboBox val="true"/>
<pointSize val="5"/>
<pointStyle val="-1"/>
<font serif="true" sizeM="1.4" size="8" style="0"/>
<caption val="Choose:"/>
</element>
<expression label="a" exp="SelectedIndex[list1] - MaxNum - 1" />
<element type="numeric" label="a">
<value val="-8"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<selectionAllowed val="false"/>
</element>
<command name="Sequence">
<input a0="If[i > 0, "$+", "$"] + (Text[i]) + "$"" a1="i" a2="(-MaxNum)" a3="MaxNum"/>
<output a0="list2"/>
</command>
<element type="list" label="list2">
<show object="true" label="true" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="255" alpha="255"/>
<layer val="0"/>
<labelOffset x="449" y="23"/>
<labelMode val="3"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<selectedIndex val="17"/>
<comboBox val="true"/>
<pointSize val="5"/>
<pointStyle val="-1"/>
<font serif="true" sizeM="1.4" size="8" style="0"/>
<caption val="Choose:"/>
</element>
<expression label="b" exp="SelectedIndex[list2] - MaxNum - 1" />
<element type="numeric" label="b">
<value val="2"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<selectionAllowed val="false"/>
</element>
<element type="button" label="button1">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="0" alpha="255"/>
<layer val="0"/>
<labelOffset x="313" y="148"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetVisibleInView[text1,1,lang==1] SetVisibleInView[text1eng,1,lang!=1] SetVisibleInView[u,1,true] SetVisibleInView[button2,1,true] SetVisibleInView[pic1,1,true] SetVisibleInView[pic2,1,true] SetVisibleInView[pic3,1,true] SetVisibleInView[pic4,1,true]"/>
<font serif="false" sizeM="2" size="18" style="0"/>
<caption val="Step 1"/>
</element>
<element type="button" label="button2">
<show object="true" label="true" ev="1"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="0" alpha="255"/>
<layer val="0"/>
<labelOffset x="313" y="252"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetVisibleInView[text2,1,lang==1] SetVisibleInView[text2eng,1,lang!=1] SetVisibleInView[v,1,true] SetVisibleInView[button3,1,true] SetVisibleInView[textQ2,1,true] "/>
<font serif="false" sizeM="2" size="18" style="0"/>
<caption val="Step 2"/>
</element>
<element type="button" label="button3">
<show object="true" label="true" ev="1"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="0" alpha="255"/>
<layer val="0"/>
<labelOffset x="313" y="356"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetVisibleInView[text3,1,lang==1] SetVisibleInView[text3eng,1,lang!=1] SetVisibleInView[button4,1,true] SetVisibleInView[Q,1,true] SetVisibleInView[textQ3,1,true]"/>
<font serif="false" sizeM="2" size="18" style="0"/>
<caption val="Result"/>
</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="1"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<coords x="0" y="-8" z="0"/>
<lineStyle thickness="7" type="0" typeHidden="1"/>
<coordStyle style="cartesian"/>
<startPoint x="0.5" y="0" z="1"/>
</element>
<element type="button" label="button4">
<show object="true" label="true" ev="1"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="255" g="255" b="0" alpha="255"/>
<layer val="0"/>
<labelOffset x="313" y="459"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetVisibleInView[pic1,1,false] SetVisibleInView[pic2,1,false] SetVisibleInView[pic3,1,false] SetVisibleInView[pic4,1,false] SetVisibleInView[text1,1,false] SetVisibleInView[text2,1,false] SetVisibleInView[text3,1,false] SetVisibleInView[text1eng,1,false] SetVisibleInView[text2eng,1,false] SetVisibleInView[text3eng,1,false] SetVisibleInView[u,1,false] SetVisibleInView[v,1,false] SetVisibleInView[Q,1,false] SetVisibleInView[button2,1,false] SetVisibleInView[button3,1,false] SetVisibleInView[button4,1,false] SetVisibleInView[textQ2,1,false] SetVisibleInView[textQ3,1,false]"/>
<font serif="false" sizeM="2" size="18" style="0"/>
<caption val="Start over"/>
</element>
<element type="point" label="P">
<show object="true" label="true"/>
<objColor r="0" g="0" b="255" alpha="0"/>
<layer val="0"/>
<labelOffset x="-67" y="16"/>
<labelMode val="3"/>
<fixed val="true"/>
<selectionAllowed val="false"/>
<auxiliary val="true"/>
<coords x="0" y="0" z="1"/>
<pointSize val="5"/>
<pointStyle val="1"/>
<caption val="Start"/>
</element>
<command name="If">
<input a0="SelectedIndex[list3] ≟ 1" a1="a + b" a2="a - b"/>
<output a0="answer"/>
</command>
<element type="numeric" label="answer">
<value val="-6"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
<selectionAllowed val="false"/>
</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="1"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<coords x="0" y="2" z="0"/>
<lineStyle thickness="7" type="0" typeHidden="1"/>
<coordStyle style="cartesian"/>
<startPoint x="1" y="-8" z="1"/>
</element>
<expression label="Q" exp="(0, answer)" type="point" />
<element type="point" label="Q">
<show object="true" label="true" ev="5"/>
<objColor r="255" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelOffset x="31" y="15"/>
<labelMode val="3"/>
<coords x="0" y="-6" z="1"/>
<pointSize val="5"/>
<pointStyle val="1"/>
<caption val="Destination"/>
</element>
<expression label="text3" exp=""終點是 " + answer + """ />
<element type="text" label="text3">
<show object="true" label="false" ev="9"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<absoluteScreenLocation x="427" y="377"/>
</element>
<element type="image" label="pic3">
<file name="be3baa76f13161411b0b8a955d92a7e6\images2.jpg"/>
<inBackground val="false"/>
<absoluteScreenLocation x="503" y="208"/> <show object="true" label="false" ev="1"/>
<condition showObject="a < 0"/>
<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="pic1">
<file name="f6d332056483e301db46ccfa1e64ad0c\images1.jpg"/>
<inBackground val="false"/>
<absoluteScreenLocation x="504" y="208"/> <show object="true" label="false" ev="1"/>
<condition showObject="a ≥ 0"/>
<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="pic2">
<file name="f6d332056483e301db46ccfa1e64ad0c\images1.jpg"/>
<inBackground val="false"/>
<absoluteScreenLocation x="690" y="207"/> <show object="true" label="false" ev="1"/>
<condition showObject="b ≥ 0"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="0.1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
</element>
<element type="image" label="pic4">
<file name="be3baa76f13161411b0b8a955d92a7e6\images2.jpg"/>
<inBackground val="false"/>
<absoluteScreenLocation x="689" y="207"/> <show object="true" label="false" ev="1"/>
<condition showObject="b < 0"/>
<objColor r="0" g="0" b="0" alpha="1"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<selectionAllowed val="false"/>
</element>
<element type="button" label="buttonRan">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<bgColor r="191" g="255" b="0" alpha="255"/>
<layer val="0"/>
<labelOffset x="705" y="25"/>
<labelMode val="3"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetValue[list1,Random[1,2*MaxNum+1]] SetValue[list2,Random[1,2*MaxNum+1]] SetValue[list3,Random[1,2]] RunClickScript[button4]"/>
<font serif="false" sizeM="2" size="18" style="0"/>
<caption val="Random"/>
</element>
<expression label="textQ3" exp=""= " + (LaTeX[answer]) + """ />
<element type="text" label="textQ3">
<show object="true" label="false" ev="9"/>
<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="2" size="18" style="0"/>
<absoluteScreenLocation x="16" y="346"/>
</element>
<command name="If">
<input a0="SelectedIndex[list3] ≟ 1" a1="If[b ≥ 0, "+", "-"]" a2="If[b < 0, "+", "-"]"/>
<output a0="signMiddle"/>
</command>
<element type="text" label="signMiddle">
<show object="false" label="true" ev="8"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<absoluteScreenLocation x="834" y="279"/>
</element>
<expression label="text2" exp=""" + (If[a ≥ 0, "由零開始,先上升" + (abs(a)) + "層,", "由零開始,先下跌" + (abs(a)) + "層,"] + (If[signMiddle ≟ "+", "然後上升" + (abs(b)) + "層", "然後下跌" + (abs(b)) + "層"])) + """ />
<element type="text" label="text2">
<show object="true" label="false" ev="9"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<absoluteScreenLocation x="427" y="274"/>
</element>
<expression label="textQ1" exp=""(" + (LaTeX[If[a > 0, "+", ""]]) + "" + (LaTeX[a]) + ")" + (LaTeX[If[SelectedIndex[list3] ≟ 1, "+", "-"]]) + "(" + (LaTeX[If[b > 0, "+", ""]]) + "" + (LaTeX[b]) + ")"" />
<element type="text" label="textQ1">
<show object="true" label="false" 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="2" size="18" style="0"/>
<absoluteScreenLocation x="16" y="139"/>
</element>
<expression label="textQ2" exp=""=" + (LaTeX[If[a > 0, "+", ""]]) + " " + (LaTeX[a]) + "" + (LaTeX[signMiddle]) + "" + (LaTeX[Text[abs(b)]]) + """ />
<element type="text" label="textQ2">
<show object="true" label="false" ev="9"/>
<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="2" size="18" style="0"/>
<absoluteScreenLocation x="16" y="244"/>
</element>
<element type="button" label="button0">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="3"/>
<labelOffset x="728" y="459"/>
<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] RunClickScript[button4]"/>
<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="924" y="502"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="SetCaption[button0,If[lang==1,"ENG","中文"]] SetCaption[list1,If[lang==1,"選擇:","Choose: "]] SetCaption[list2,If[lang==1,"選擇:","Choose: "]] SetCaption[list3,If[lang==1,"選擇:","Choose: "]] SetCaption[button1,If[lang==1,"第一步","Step 1"]] SetCaption[button2,If[lang==1,"第二步","Step 2"]] SetCaption[button3,If[lang==1,"結果","Result"]] SetCaption[button4,If[lang==1,"重新開始","Start over"]] SetCaption[buttonRan,If[lang==1,"隨機","Random"]] SetCaption[P,If[lang==1,"起點","Start"]] SetCaption[Q,If[lang==1,"終點","Destination"]]"/>
<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.1"/>
<layer val="3"/>
<labelMode val="1"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<expression label="text3eng" exp=""The destination is " + answer + "."" />
<element type="text" label="text3eng">
<show object="true" label="false" ev="9"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="3"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<absoluteScreenLocation x="434" y="378"/>
</element>
<expression label="text2eng" exp=""Start at 0. Move " + (If[a ≥ 0, "up for " + (abs(a)) + " unit", "down for " + (abs(a)) + " unit"]) + "" + (If[abs(a) ≟ 1, "", "s"]) + ". Then move " + (If[signMiddle ≟ "+", "up for " + (abs(b)) + " unit", "down for " + (abs(b)) + " unit"]) + "" + (If[abs(b) ≟ 1, "", "s"]) + "."" />
<element type="text" label="text2eng">
<show object="true" label="false" ev="9"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="3"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<absoluteScreenLocation x="434" y="274"/>
</element>
<expression label="text1" exp=""加上" + (abs(a)) + "個 ," + (If[SelectedIndex[list3] ≟ 1, "加上" + (abs(b)) + "個", "拿走" + (abs(b)) + "個"]) + """ />
<element type="text" label="text1">
<show object="true" label="true" ev="9"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="0"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<absoluteScreenLocation x="426" y="172"/>
</element>
<expression label="text1eng" exp=""add " + (abs(a)) + " , " + (If[SelectedIndex[list3] ≟ 1, "add " + (abs(b)), "take away " + (abs(b))]) + """ />
<element type="text" label="text1eng">
<show object="true" label="false" ev="9"/>
<objColor r="0" g="0" b="0" alpha="0"/>
<layer val="3"/>
<labelMode val="0"/>
<selectionAllowed val="false"/>
<absoluteScreenLocation x="435" y="177"/>
</element>
</construction>
</geogebra>