Function or Not a Function: Testing Single-Valued Correspondence from a Diagram
Loading the math board and drawing, please wait…
In collections
Einführung Funktionsbegriff
This GeoGebra example helps students decide whether a given correspondence is a function by visually inspecting the diagram and the resulting input–output behavior (single-valued vs. multi-valued for the same input). It highlights the key mathematical idea of a function as a unique (single-valued) mapping, using graphical cues to detect when the same input leads to more than one output. The constr
GeoGebra Commands & Parameters
Textfield(input1) → InputBox1Textfield(input2) → InputBox2Shuffle(1…10) → ExNumList, {10, 1, 4, 3, 5, 6, 7, 2, 8, 9}Join({{4, 8}, ExNumList \ {4, 8}}) → ExNumListRealIf(Mod[anzahlR, 2] ≟ 1, floor(anzahlR / 2), floor(anzahlR / 2) - 0.5) → abstandRSequence(TopR + (0, ((-dy2) * i)) + (0, (abstandR * dy2)), i, 0, AnzahlR(exNum) - 1) → PRIf(Kind1 ≟ "Vicky", 1, Kind1 ≟ "Trixi", 2, Kind1 ≟ "Max", 3, Kind1 ≟ "Alex", 4, Kind1 ≟ "Anna", 5) → connection1startIf(Kind2 ≟ "Vicky", 1, Kind2 ≟ "Trixi", 2, Kind2 ≟ "Max", 3, Kind2 ≟ "Alex", 4, Kind2 ≟ "Anna", 5) → connection2startIf(connection1start ≟ 1, PL1, connection1start ≟ 2, PL2, connection1start ≟ 3, PL3, connection1start ≟ 4, PL4, connection1start ≟ 5, PL5) → ActivePoint1If(connection2start ≟ 1, PL1, connection2start ≟ 2, PL2, connection2start ≟ 3, PL3, connection2start ≟ 4, PL4, connection2start ≟ 5, PL5) → ActivePoint2If(ActivePoint1 ≟ PR(1), 1, ActivePoint1 ≟ PR(6), 6, 0, ActivePoint1 ≟ PR(2), 2, ActivePoint1 ≟ PR(3), 3, ActivePoint1 ≟ PR(4), 4, ActivePoint1 ≟ PR(5), 5) → inputConn1If(ActivePoint2 ≟ PR(1), 1, ActivePoint2 ≟ PR(6), 6, 0, ActivePoint2 ≟ PR(2), 2, ActivePoint2 ≟ PR(3), 3, ActivePoint2 ≟ PR(4), 4, ActivePoint2 ≟ PR(5), 5) → inputConn2SelectedIndex(DD1) → index1Sequence(TopL + (0, ((-dy1) * i)), i, 0, 4) → PLSegment(PL(3), Point[Segment[PL(3), PL3], 0.97]) → connection3Segment(PL(1), Point[Segment[PL(1), PL1], 0.97]) → connection1Segment(PL(2), Point[Segment[PL(2), PL2], 0.97]) → connection2Segment(PL(4), Point[Segment[PL(4), PL4], 0.97]) → connection4Segment(PL(5), Point[Segment[PL(5), PL5], 0.97]) → connection5If(Length[connection1] ≠ 0, 1, Length[connection2] ≠ 0, 2, Length[connection3] ≠ 0, 3, Length[connection4] ≠ 0, 4, Length[connection5] ≠ 0, 5) → inputLPolygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, rectangleCorrectS3, rectangleCorrectS4, rectangleCorrectS2, rectangleCorrectS1Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForX, {1, 6, 2, 1, 10, 3, 5, 2, 6, 6, 9, 7, 1, 8, 0, 1, 8, 9, 3, 5, 10, 9, 3, 10, 5, 6, 7, 7, 0, 2, 4, 10, 2, 10, 3, 0, 3, 9, 5, 4, 3, 8, 5, 2, 5, 5, 10, 8, 3, 10, 6, 4, 10, 5, 10, 1, 10, 2, 3, 4, 4, 5, 10, 9, 3, 8, 0, 2, 2, 9, 0, 4, 8, 6, 3, 8, 6, 7, 3, 0, 6, 7, 6, 8, 9, 5, 10, 4, 1, 4, 10, 3, 4, 0, 10, 9, 4, 10, 4, 7}Element(randomNosForX, Mod[questionCount, 100] + 1) → numXShuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForY, {10, 3, 3, 8, 1, 2, 3, 0, 3, 0, 2, 8, 0, 6, 3, 5, 2, 1, 3, 2, 6, 8, 5, 5, 2, 9, 10, 10, 7, 4, 3, 10, 10, 5, 2, 1, 7, 2, 8, 8, 6, 8, 1, 2, 7, 9, 7, 1, 1, 10, 3, 3, 8, 4, 2, 10, 10, 4, 0, 8, 8, 7, 5, 0, 5, 8, 0, 7, 0, 0, 2, 8, 9, 7, 10, 3, 1, 9, 1, 1, 9, 0, 3, 8, 0, 4, 0, 9, 6, 1, 2, 0, 1, 10, 4, 3, 0, 2, 5, 10}Element(randomNosForY, Mod[questionCount, 100] + 1) → numYAppend(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayXAppend(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayYRemove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeatRemove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeatElement(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeatElement(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeatLength(ExNumList) → questionCountMaxElement(TextRGlobal, exNum) → TextRLocalSequence(Text[(("\textsf{" * TextRLocal(i)) * "}"), PR(i) + (0.1, 0.05), false, true, 1, 0], i, 1, anzahlR) → TextRBeschText("$\textsf{Vicky}$", PL(1) + (-0.1, 0.05), false, true, -1, 0) → Text4Text("$\textsf{Trixi}$", PL(2) + (-0.1, 0.05), false, true, -1, 0) → Text5Text("$\textsf{Max}$", PL(3) + (-0.1, 0.05), false, true, -1, 0) → Text6Text("$\textsf{Alex}$", PL(4) + (-0.1, 0.05), false, true, -1, 0) → Text7Text("$\textsf{Anna}$", PL(5) + (-0.1, 0.05), false, true, -1, 0) → Text8Distance(Corner[Aussage1Helper, 4], Corner[Aussage1Helper, 3]) → laengeAussage1Distance(Corner[Aussage2Helper, 4], Corner[Aussage2Helper, 3]) → laengeAussage2If(phase ≟ 1, laengeAussage1, laengeAussage2) → langeAussageMasterSpeechBubbleLeft(SpeechAnchor1, langeAussageMaster, 0.6) → Speech1Circle(PR(1), radius) → VCirc1Circle(PR(2), radius) → VCirc2Circle(PR(3), radius) → VCirc3Circle(PR(4), radius) → VCirc4Circle(PR(5), radius) → VCirc5Circle(PR(6), radius) → VCirc6Ellipse(Ell11, Ell12, Ell13) → ell1Translate(ell1, Vector[(-(x(TopR) - (x(TopL) * 3.5), 0))]) → ell1'Segment(If[connection1start ≟ 1, PL(1), connection1start ≟ 2, PL(2), connection1start ≟ 3, PL(3), connection1start ≟ 4, PL(4), connection1start ≟ 5, PL(5)], If[connection1end ≟ 1, PR(1), connection1end ≟ 2, PR(2), connection1end ≟ 3, PR(3), connection1end ≟ 4, PR(4), connection1end ≟ 5, PR(5)]) → sol1Segment(If[connection2start ≟ 1, PL(1), connection2start ≟ 2, PL(2), connection2start ≟ 3, PL(3), connection2start ≟ 4, PL(4), connection2start ≟ 5, PL(5)], If[connection2end ≟ 1, PR(1), connection2end ≟ 2, PR(2), connection2end ≟ 3, PR(3), connection2end ≟ 4, PR(4), connection2end ≟ 5, PR(5)]) → sol2Text(ZuordnungsTxtHelper, ZuordnungsTxtPos, false, true, -1, 0) → ZuordnungsTxtElement(OtherConnectionsL, exNum) → OtherConnectionsLocalSegment(PL(x(OtherConnections1)), PR(y(OtherConnections1))) → connectionother1Segment(PL(x(OtherConnections2)), PR(y(OtherConnections2))) → connectionother2Segment(PL(x(OtherConnections3)), PR(y(OtherConnections3))) → connectionother3Text(Text10, C, false, true, 0, 0) → Text11If(exNum ≟ 1, PL(3), PL(2), exNum ≟ 2, PL(3), exNum ≟ 5, PL(5), exNum ≟ 6, PL(5), exNum ≟ 8, PL(2)) → HintCircCenterCircle(HintCircCenter, 0.25) → HintCircSegment(PL(3), PR(4)) → ExtraEx1Circle(PL(5), 0.25) → HintCirc2Segment(PL(2), PR(4)) → ExtraEx8Sequence(L + ((dfxBalken * i), 0), i, 0, 3) → BalkenObenCircle(D, rcirc) → cSequence(Rotate[D + (0, rcirc), ((-360°) / 3 * i), D], i, 0, 3) → KreisPIf(validate ∧ (correct ∨ showsolution), phase + 1, phase) → phaseProgressIf(phaseProgress < 4, {CircleSector[D, E, KreisP(1)]}, {Circle[D, rcirc]}) → l1Sequence(Segment[D, KreisP(i)], i, 1, 3) → l2Segment(PL(5), PR(3)) → connectionotherEx5