At My Fingertips

Documentation

Auf dem Markt - Teil 2

alt text

Ziel dieser Aktivität ist, dass du in grösstmöglicher Eigenregie die Aufgaben zu den Kombinatoren neben und ueber löst. Dafür begeben wir uns mit einem Einkaufskorb auf den Markt.

Du sollst deinen Code Parametrisieren und Verschachteln.

Hilfestellungen für die einzelnen nummerierten Aufgaben findest du unten an dieser Seite.

Aufgabe 1: Tisch

Marktverkäufer präsentieren ihre Ware auf einem Tisch. Ein ganz simpler ist hier dargestellt. Versuche diesen (oder einen von dir kreiierten) über ein Programm nachzubilden.

alt text

Loading...

Aufgabe 2: Lollipop / Eis

Magst du lieber einen Lollipop oder ein Eis am Stiel? Erstelle entweder oder.

alt text ODER alt text

Hinweis: die Farbe "braun" kannst du weitergebrauchen, wenn du die Aufgabe 1 ausgeführt hast.

Loading...

Aufgabe 3: Kuchenstück

Nun wagen wir eine etwas erweiterte Verwendung von Variablen. Du siehst, dass in der Codezelle unten die "länge" und "breite" vordefiniert sind. Grund dafür ist, dass jede Schicht des Tortenstücks gleich lang und breit ist und wir dadurch die nachfolgenden Zeilen stärker parametrisieren, d.h. mit weniger Zahlen versehen, mehr Variablen benutzen.

Immernoch süss ;) erstelle mit dem Code unten ein Kuchenstück. Ersetze nur die ... .

alt text

Loading...

Parametrisierung

Ein Parameter, deutsch auch Übergabewert genannt, bezeichnet in der Informatik Variablen, durch die man ein Programm flexibel einstellen kann. Parameter sind - wie bei Experimenten in der Biologie - äussere Einflussfaktoren.

"Äussere" Faktoren, weil du sie von aussen mitgeben kannst (dies sehen wir noch im Zusammenhang mit Funktionen) oder sie zu Beginn eines Programms definierst.

Die Parametrisierung ist das Beschreiben eines Codeteils oder Unterprogramms durch Parameter, die vom Computer erst beim Aufruf eingelesen werden.

Im Beispiel des Kuchenstücks ist der Vorteil der Parametrisierung, dass die Werte für die Parameter (auch Variablen) zu Beginn des Programms einmal genannt oder verändert werden und das Kuchenstück dadurch beliebige Grössen annimmt.

Aufgabe Verändere den Wert der Variablen breite. Was stellst du fest?

Zum Beispiel

Loading...

Aufgabe 4: Torte

Vielleicht hast du dir soeben gedacht, dass man die Länge ja auch halbieren oder vierteln könnte. Diesen Ansatz brauchen wir für die nächste Aufgabe. Vervollständige in die Torte in Seitansicht, indem du die ... nur durch die richtigen Variablen ersetzt. Keine Zahlen und explizite Farben verwenden!

alt text

Loading...

Aufgabe 5: Texte

Das war eine grosse Portion Süssigkeiten... Gehe nun an eine andere "Ecke" des Marktes.

  • Verwende zwei text, die du neben-einander stellst.
  • Dein Programm sollte mit folgenden Aufrufen -> diesen Output generieren.
    • zeige_grafik(fischecke) -> Fisch-ecke
    • zeige_grafik(gemueseecke) -> Gemüse-ecke
    • zeige_grafik(fruchtecke) -> Frucht-ecke
Loading...

Aufgabe 6: Dip

Am Gemüsestand kannst du das frische Gemüse mit einer Dipsauce probieren. Dafür sind gelbe Karotten, Kohlrabi und Gurken in Stängel geschnitten und abwechslungsweise nebeneinander angeordnet.

Implementiere den Code auch unter Gebrauch von Parametern.

Loading...

Aufgabe 7: Marktstanddach

Deine Grafik sieht aus wie ein Marktstanddach. Könnten wir dies für den Fruchtstand vielleicht farblich etwas anders aussehen lassen?

Parametrisiere deinen Code aus Aufgabe 6 nun auch noch für die Farbe.

Loading...

Hilfestellungen

  1. Der einfache Tisch besteht aus Rechtecken unterschiedlicher Grösse.
    • Für die "tischplatte" wählst du ein Rechteck beliebiger Grösse.

    • Das "tischbein" bestehe z.B. aus einem vertikalen Bein über einem horizontalen Sockel.

    • Die Tischplatte wird im Anschluss über das tischbein gestellt.

  1. Du benötigst einmal die ueber-Funktion und beim Eis am Stiel nur Rechtecke. Für den Lollipop kannst du entweder die ellipse-Funktion verwenden oder den Kreis, den du aber aus der Toolbox (und nicht aus Pytamaro) importieren musst.
  1. Das Kucheninnere verlangt nur am richtigen Ort ein rotes oder ein weisses Rechteck. Probiere aus und versuche die korrekte Lösung zu verstehen.
    • Frage dich dann, wie lange die längste (erste) Seite des Dreiecks sein muss. Genau! Wie die vordefinierte "breite".
    • Ausgeben möchtest du das Kuchenstück.
  1. Setze an die Stellen der ... entweder "hoehe" oder eine der "Farben".
  1. Erstelle zuerst den text für "ecke". Setze dann den neuen Text (Frucht-, Gemüse-, Fisch-) neben diese "ecke" und weise sie der neuen Variable fischecke, gemueseecke oder fruchtecke zu.

    Schaue allenfalls in der Dokumentation (API) nochmal nach, welche Angaben du für einen text() brauchst.

  1. Es braucht ein verschachteltes neben(..., neben(..., ...)) sowohl für sticks_3 wie auch für sticks_9. Du darfst aber auch eine ganz andere Herangehensweise nehmen und den Vorschlag der Codezelle löschen.
  1. Jetzt sollte in deinen Rechtecken keine Zahl mehr vorkommen, sondern nur noch Parameter.

    Z.B. neben(rechteck(breite, hoehe, farbe1), rechteck(breite, hoehe, farbe2))

Was du gelernt hast

  • Du hast die Funktionen neben und ueber angewendet.

  • Du hast Programmteile parametrisiert. Dies erlaubt, dass du Werte zu Beginn eines Programms einmalig verändern kannst, wenn du andere Grössen oder Farben haben willst und nicht in jedem Codefragment den Wert austauschen musst.

  • Du weisst, dass ein Programm dank Parametern flexibler und übersichtlicher wird. Diese Übersichtlichkeit wird erst greifbar, wenn es sich um Teilprogramme grösserer Programme handelt.

  • Du weisst, wie Funktionen verschachtelt genutzt werden. Du darfst (musst nicht) dies für kürzeren, weniger variablenreichen Code verwenden. Der Code und damit das Verständnis wird jedoch komplexer.

    • z.B. für die französische Flagge:

      neben(blaues_rechteck, neben(weisses_rechteck, rotes_rechteck))

      alt text


This activity has been created by Bernhard and is licensed under CC BY-SA 4.0.

Auf dem Markt 2

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version c08406b (Wed, 20 Nov 2024 12:30:00 GMT)