Zur Haupt­na­vi­ga­ti­on sprin­gen [Alt]+[0] Zum Sei­ten­in­halt sprin­gen [Alt]+[1]

Vi­sua­li­sie­rung von Ar­rays

Auf­ga­be: Ein Array von gan­zen Zah­len (int) soll als Bal­ken­dia­gramm dar­ge­stellt wer­den.

Balkendiagramm

Bild: Screen­shot von Aus­füh­rung des Pro­gramms „bal­ken­dia­gramm“ (Schal­ler, ZPG IMP)

Du hast bei der "Kaf­fee­haus-Täu­schung" die not­wen­di­gen Tech­ni­ken für den Um­gang mit Ar­rays schon an­ge­wen­det. Schaue dir zu­nächst noch­mals deine Lö­sung an.

Zu­nächst musst du die rich­ti­gen Ko­or­di­na­ten für die blau­en Recht­ecke be­stim­men. Für den Be­fehl um ein Recht­eck zu zeich­nen, be­nö­tigst du die x- und die y-Ko­or­di­na­te des lin­ken obe­ren Eckes und die Brei­te und Höhe des Recht­ecks: rect(x, y, width, height);

Tabelle

 

Auf­ga­be:

  1. Lege in dei­nem Heft eine Ta­bel­le wie oben an und fülle die lee­ren Ta­bel­len­fel­der aus.

    Damit man die Werte in einer Schlei­fe ver­wen­den kann, muss ein Term ge­fun­den wer­den, der für jedes i als Er­geb­nis die Werte der Ko­or­di­na­ten, bzw. der Recht­eck­grö­ße lie­fert.

  2. Finde einen Term der Form m * i + c, bei der die obi­gen y-Ko­or­di­na­ten her­aus­kom­men.

  3. Gib den Term an, mit dem man die Brei­te des Bal­kens unter Ver­wen­dung des zah­len-Ar­rays und i aus­drü­cken kann.

Im­ple­men­ta­ti­on:

Lade das Pro­gramm al­g10_bal­ken­dia­gramm.

  1. Ver­si­on 1:

    Im­ple­men­tie­re die ers­ten vier Bal­ken durch An­ga­be der Ko­or­di­na­ten aus der Ta­bel­le. Er­gän­ze dazu die Me­tho­de zeicheBalken an der "ToDo"-Stel­le.

  2. Ver­si­on 2:

    Er­set­ze die y-Ko­or­di­na­te und die Brei­te durch die oben er­mit­tel­te For­mel. De­kla­rie­re vor­her eine In­te­ger-Va­ria­ble i. Setze i vor dem ers­ten Recht­eck auf 0, vor dem zwei­ten auf 1 usw. Über­prü­fe, ob deine Recht­ecke immer noch kor­rekt ge­zeich­net wer­den.

  3. Ver­si­on 3:

    Ver­wen­de eine for-Schlei­fe, um alle Bal­ken zeich­nen zu las­sen. Diese muss das i in jedem Durch­gang um 1 er­hö­hen. Die An­zahl der Ele­men­te im Array be­kommst du durch zahlen.length.

    Tipp: Ver­glei­che mit dei­ner Im­ple­men­ta­ti­on von der Kaf­fee­haus-Täu­schung.

Nun soll noch der Text des Bal­ken­dia­gramms er­gänzt wer­den. Dazu gibt es einen Be­fehl

text(an­zu­zei­gen­der­Text, x, y);

also z.B.

text("Hallo", 10, 10);

text("x ist "+x, 20, 40);

 

Auf­ga­be:

Abbildung zur Aufgabe

  1. Be­stim­me wie oben die Ko­or­di­na­ten der ein­zel­nen Texte. Über­le­ge dir wie­der einen Term, um die Ko­or­di­na­ten mit i aus­zu­drü­cken.

  2. Schrei­be die Texte für i=0 bis i=3 ab. Mar­kie­re mit einem far­bi­gen Stift die Teile, die in den Tex­ten nicht iden­tisch sind.

    Die iden­ti­schen Teile sind feste Texte. Sie wer­den in An­füh­rungs­zei­chen ge­schrie­ben. Die sich ver­än­dern­den Teile sind Va­ria­blen­wer­te. Sie müs­sen an die fes­ten Texte an­ge­hängt wer­den (siehe Ab­bil­dung rechts).

  3. Im­ple­men­tie­re das An­zei­gen des Tex­tes.

Am Ende jeder Im­ple­men­ta­ti­on steht das Tes­ten des Pro­gramms auf mög­li­che Feh­ler. Es reicht­nicht, ein Bei­spiel er­folg­reich aus­zu­füh­ren.

Auf­ga­be:

  1. Ver­än­de­re die Ein­trä­ge des Ar­rays.Ver­än­de­re auch die An­zahl der Ein­trä­ge.

  2. esten: Über­le­ge dir, was pas­siert, wenn das Array gar kei­nen Ein­trag hat. Was pas­siert, wenn ein Ein­trag 0 ist? Was pas­siert bei ne­ga­ti­ven Ein­trä­gen? Teste diese Grenz­fäl­le in dei­nem Pro­gramm. Trifft deine Er­war­tung zu?

  3. Be­wer­te deine Tests: Kön­nen die Test­fäl­le so über­haupt bei der Auf­ga­ben­stel­lung vor­kom­men? Ist eine Än­de­rung des Pro­gramms not­wen­dig?

 

Vi­sua­li­sie­rung von Ar­rays

Hil­fe­kar­te 1

Hil­fe­kar­ten 2-3

Hil­fe­kar­ten 4-5

 

Vi­sua­li­sie­rung von Ar­rays: Her­un­ter­la­den [odt][138 KB]

Vi­sua­li­sie­rung von Ar­rays: Her­un­ter­la­den [pdf][145 KB]

Hil­fe­kar­ten: Her­un­ter­la­den [odt][134 KB]

Hil­fe­kar­ten: Her­un­ter­la­den [pdf][92 KB]

 

Wei­ter zu Hil­fe­kar­te 1