Benutzer-Werkzeuge

Webseiten-Werkzeuge


klassen2:attribute:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
klassen2:attribute:start [2020/11/18 10:21] – [Aufgabe 2: Längeneinheiten] Martin Pabstklassen2:attribute:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 132: Zeile 132:
 {{ :klassen2:attribute:objekte_betrachten.gif |}} {{ :klassen2:attribute:objekte_betrachten.gif |}}
  
-===== Beispiel 3Währungsumrechner ===== +{{ :klassen2:attribute:pasted:20201122-202223.png?300}} 
-Wir programmieren eine Klasse ''Währungsrechner'' mit einer Methode ''double vonAnachB(double betragA)'', der man einen Betrag in Währung A gibt und die den entsprechenden Betrag in Währung B zurückliefert. Entsprechend programmieren wir auch eine Methode ''double vonBnachA(double betragB)'' für die umgekehrte UmrechnungBeide Methoden brauchen natürlich den Umrechnungskurs, den wir im Attribut ''kurs'' speichern.+===== Beispiel 4Ampel ===== 
 +Wir programmieren eine Klasse ''Ampel'', die eine einfache Fußgängerampel Zeichnet und Methoden ''schalteGrün()'' und ''schalteRot()'' zum Umschalten besitztDie Ampel besteht aus einem ''Rectangle''-Objekt und zwei ''Circle''-Objekten. Diese speichern wir als Attribute der Klasse ''Ampel''. Sie werden in der Methode ''init()'' instanziert und initialisiert.
  
-<HTML>+<WRAP center round todo 60%> 
 +Ich habe Dir noch etwas Arbeit im Programm hinterlassen (siehe die Kommentare). Vielleicht möchtest Du die Ampel auch noch etwas umfangreicher gestalten: 
 +  * Umgib das Gehäuse mit einem dunkelgrauen Rahmen (Methode ''setBorderColor'' der ''Rectangle''-Klasse!) 
 +  * Füge ein gelbes Licht hinzu! 
 +  * Füge eine "Fuß" hinzu! 
 +</WRAP>
  
-<div class="java-online" style="height: 550px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Attribute3'}"> 
  
-<script type="text/plain" title="Attribute3.java"> +<HTML>
-Währungsumrechner euroMark = new Währungsumrechner(); +
-euroMark.kurs = 1.95583;+
  
-Währungsumrechner dollarYen new Währungsumrechner(); +<div class="java-online" style="height: 550pxwidth: 100%" data-java-online="{'withBottomPanel': true, 'id': 'Attribute4'}">
-dollarYen.kurs 103.33;+
  
-println("10 Euro sind + euroMark.vonAnachB(10+ " D-Mark."); +<script type="text/plaintitle="Attribute4.java"> 
-println("5 D-Mark sind + euroMark.vonBnachA(5+ " Euro.");+Ampel a = new Ampel()
 +a.init(); 
 +a.schalteRot(); 
 +Input.readString("Drücke die Taste Enter!"); 
 +a.schalteGrün()
 +Input.readString("Drücke die Taste Enter!"); 
 +a.schalteAus();
  
-println("10 Dollar sind " + dollarYen.vonAnachB(10) + " Yen.");+class Ampel { 
 +   Rectangle gehäuse; 
 +   Circle lichtOben; 
 +   Circle lichtUnten;
  
 +   void init() {
  
-class Währungsumrechner { +      // Instanzieren und Initialisieren des Gehäuses: 
-   double kurs  // gibt an, wie viel ein A in B Wert ist.+      gehäuse = new Rectangle(340, 140, 120, 220); 
 +      gehäuse.setFillColor(Color.gray); 
 + 
 +      // Ergänze den Code zum Instanzieren und initialisieren der beiden Lichter! 
 +      // Die Lichter sollen initial beide mit der Farbe Color.darkgray gefüllt sein.
  
-   double vonAnachB(double betragA){ 
-      return betragA * kurs; 
    }    }
  
-   double vonBnachA(double betragB){ +   void schalteRot() { 
-      return betragB / kurs;+      lichtOben.setFillColor(Color.red); 
 +      lichtUnten.setFillColor(Color.darkgray);
    }    }
  
-+   // Ergänze Methoden schalteGrün() und schalteAus()!
  
 +}
 </script> </script>
 </div> </div>
 </HTML> </HTML>
  
 +[[.ampelloesung:start|Hier geht's zur Lösung!]]
 ===== Aufgabe 1: Tiere ===== ===== Aufgabe 1: Tiere =====
 Erstelle eine Klasse ''Tier'' mit den Attributen ''art'' (Typ ''String''), ''name'' (Typ ''String'') und ''beinzahl'' (Typ ''int'') sowie einer Methode ''vorstellen()'', die im Falle der Katze Snoopy (mit zum Glück noch 4 Beinen) folgende Meldung ausgibt: Erstelle eine Klasse ''Tier'' mit den Attributen ''art'' (Typ ''String''), ''name'' (Typ ''String'') und ''beinzahl'' (Typ ''int'') sowie einer Methode ''vorstellen()'', die im Falle der Katze Snoopy (mit zum Glück noch 4 Beinen) folgende Meldung ausgibt:
Zeile 372: Zeile 388:
 Wir bestimmen den ggT von $24$ und $80$ (und nennen ihn im Folgenden kurz $x$).  Wir bestimmen den ggT von $24$ und $80$ (und nennen ihn im Folgenden kurz $x$). 
   * $x$ ist Teiler beider Zahlen und teilt daher auch $80 - 24 = 56$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $24$ und $56$) und setzen das Spiel damit fort.   * $x$ ist Teiler beider Zahlen und teilt daher auch $80 - 24 = 56$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $24$ und $56$) und setzen das Spiel damit fort.
-  * $x$ ist Teiler von $24$ und $56$ und teilt daher auch $56 - 24 = 32$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $18$ und $24$) und setzen das Spiel damit fort. +  * $x$ ist Teiler von $24$ und $56$ und teilt daher auch $56 - 24 = 32$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $32$ und $24$) und setzen das Spiel damit fort. 
-  * $x$ ist Teiler von $18$ und $24$ und teilt daher auch $24 18 6$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $6$ und $18$) und setzen das Spiel damit fort. +  * $x$ ist Teiler von $32$ und $24$ und teilt daher auch $32 24 8$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $24$ und $8$) und setzen das Spiel damit fort. 
-  * $x$ ist Teiler von $6$ und $18$ und teilt daher auch $18 12$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $6$ und $12$) und setzen das Spiel damit fort. +  * $x$ ist Teiler von $24$ und $8$ und teilt daher auch $24 16$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $16$ und $8$) und setzen das Spiel damit fort. 
-  * $x$ ist Teiler von $6$ und $12$ und teilt daher auch $12 6$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $6$ und $6$) und sind fertig, denn wir wissen jetzt, dass der ggT von $24$ und $80$ ein Teiler von $6$ ist. Gleichzeitig ist aber $6$ auch ein Teiler von $24$ und $80$, teilt also auch deren ggT. Daher ist $6$ der gesuchte ggT.+  * $x$ ist Teiler von $16$ und $8$ und teilt daher auch $16 8$. Wir nehmen jetzt die kleineren beiden dieser drei Zahlen (also $8$ und $8$) und sind fertig, denn wir wissen jetzt, dass der ggT von $24$ und $80$ ein Teiler von $8$ ist. Gleichzeitig ist aber $8$ auch ein Teiler von $24$ und $80$, teilt also auch deren ggT. Daher ist $8$ der gesuchte ggT.
  
  
-  * **Halt, halt, nicht so schnell!!** \\ Warum ist $6$ auch ein Teiler von $24$ und $80$? \\ \\ Denk' Dir einfach alle Schritte wieder rückwärts: die $6$ teilt $6$ und $6$, also teilt sie auch die Summe $12 6$. Da sie also die $6$ und die $12$ teilt, teilt sie auch $12 18$. Da sie $18$ und $6$ teilt, teilt sie auch $18 6 = 24$,  usw. Am Ende all dieser Schritte steht fest: $6$ teilt auch $24$ und $80$.+  * **Halt, halt, nicht so schnell!!** \\ Warum ist $6$ auch ein Teiler von $24$ und $80$? \\ \\ Denk' Dir einfach alle Schritte wieder rückwärts: die $8$ teilt $8$ und $8$, also teilt sie auch die Summe $16 8$. Da sie also die $8$ und die $16$ teilt, teilt sie auch $16 24$. Da sie $8$ und $24$ teilt, teilt sie auch $+ 24 = 32$,  usw. Am Ende all dieser Schritte steht fest: $8$ teilt auch $24$ und $80$.
 </WRAP> </WRAP>
  
 +===== Aufgabe 5: Bild mit verschiedenen Tageszeiten =====
 +{{ :klassen2:attribute:pasted:20201122-212921.png}}
 +{{:klassen2:attribute:pasted:20201122-212757.png }}
 +{{ :klassen2:attribute:pasted:20201122-212839.png }}
 + \\ 
 +Die Klasse Bild zeichnet das Bild einer Wüste mit Sonne und Himmel (s.u.) zu drei verschiedenen Tageszeiten. Sie besitzt die Methoden ''init()'' (zum Instanzieren und Initialisieren der Objekte), ''schalteMorgen()'' (schaltet auf das "Morgenbild" um), ''schalteMittag()'' und ''schalteAbend()''. \\ \\ 
 +**Tipp:** Orientiere Dich beim Programmieren am [[#beispiel_4ampel|Ampel-Beispiel oben]]!
 +<HTML>
 +
 +<div class="java-online" style="height: 550px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'AttributeAufgabe5'}">
 +
 +<script type="text/plain" title="AttributeAufgabe5.java">
 +Bild b = new Bild();
 +b.init();
 +b.schalteMorgen();
 +b.schalteMittag();
 +b.schalteAbend();
 +
 +class Bild {
 +
 +}
 +
 +</script>
 +</div>
 +</HTML>
 +
 +[[.aufgabe5loesung:startxx|Hier geht's zur Lösung!]]
klassen2/attribute/start.1605691270.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki