westermann Informatik 1 Seite 90 Nummer 12?

2 Antworten

Ein Klassendiagramm hat ja, wie du sehen kannst, (von oben nach unten) Klassenname, Attribute und Methoden.

Denkbare zusätzliche Attribute wären:

  • Stoppuhr
  • Split
  • Weckzeit
  • Wecker_an (Wecker klingelt zur eingestellten Zeit? true/false)
  • Snooze_time (Springt bei Snooze() um 9 Minuten weiter und gibt an, wann der Wecker wieder klingeln soll.)
  • Alarm (Wecker klingelt gerade? true/false)

und Methoden

  • toggle_alarm (Wecker an/aus)
  • Alarm_an (Wecker klingelt)
  • Alarm_aus (Wecker abstellen)
  • Snooze
  • Stoppuhr_StartStop
  • Stoppuhr_Reset
  • Stoppuhr_Split (Zwischenzeit anzeigen/freigeben)
  • setTime
  • getTime

Und für die analoge Uhr hast du die drei Attribute Stunde, Minute und Sekunde als Drehwinkel.

Methoden:

  • SekundeVor (Erhöht Winkel für Sekunde um 1/60 Vollkreis, also 6 Grad. Zugleich für Minute um 1/60 davon, also 0,1 Grad, und für Stunden nochmal 1/60 davon. Da die Zeiger ja alle gekoppelt sind, reicht eine Methode für alle Zeiger.)
  • set_time (Stellt eine Zeit ein, die als Parameter übergeben wird. Intern ruft diese Methode dann einfach SekundeVor so oft auf, bis die Zeit steht.)
Woher ich das weiß:Studium / Ausbildung – studiere Informatik an der TU Kaiserslautern

Schule19000 
Fragesteller
 07.02.2023, 17:59

Vielen Dank, das hilft mir sehr weiter !!

1
Neuerfan1  07.02.2023, 18:12
@Schule19000

Es gibt übrigens verschiedene Wege nach Rom, also auch hier verschiedene Wege, das zu implementieren. Zum Beispiel bei der analogen Uhr, würde statt dreier Drehwinkel auch einer reichen. Man startet halt nicht nach einer Runde des Sekundenzeigers wieder bei Null, sondern erst nach 720 Runden (=12h - 1 Runde Stundenzeiger). Dann könnte man Methoden hinzufügen, um aus dem Drehwinkel des Sekundenzeigers die Position des Stunden- und Minutenzeigers zu berechnen und zurückzugeben. Aber es war ja nur nach einer möglichen Lösung gefragt - und auch nicht nach dem konkreten Inhalt der Methoden, nur nach dem Vorhandensein.

0
Neuerfan1  07.02.2023, 18:09

Im Prinzip ist das schon der Großteil von dem, was man zu Klassendiagrammen wissen muss. Ein paar Dinge fehlen allerdings noch:

  • Methoden haben immer Klammern dahinter, also z.B: minuteVor()
  • Das liegt daran, dass sich in diesen Klammern Parameter befinden können, die übergeben werden, wenn die Funktion aufgerufen wird. Zum Beispiel setTime(Zeit: Zahl). Also auch wieder mit Datentyp. Der Aufruf von setTime(12:00) stellt dann also die Zeit auf 12 Uhr. Bei manchen Methoden, wie den meisten oben genannten in diesem Beispiel, braucht man keine Parameter, da sie bei jedem Aufruf das Gleiche tun. Dann steht nichts in den Klammern; angegeben werden müssen sie aber auf jeden Fall.
  • hinter dem Funktionsnamen steht noch der Typ des Rückgabewertes. Also etwa getTime(): Zahl, oder setTime(zeit: Zahl): void. Void = kein Rückgabewert. Es kann mehrere Parameter in einer Funktion geben, aber niemals mehr als einen Rückgabewert (in der Programmierung wird mit Tricks oder besonderen Datentypen gearbeitet, um mehrere Werte zurückgeben zu können, z.B. Arrays).
  • Im weiteren Informatikunterricht wirst du sehen, dass sich vor den Attributen im Diagramm ein Minuszeichen befinden wird (private) und vor den Methoden ein Pluszeichen (public). Die Methoden kann jedes Objekt aufrufen; die Attribute einer Instanz dieser Klasse, also eines Objekts, kann aber nur dieses Objekt "sehen" oder bearbeiten. Deshalb gibt es Methoden wie setTime oder getTime, um schreibend bzw. lesend auf die Attribute zugreifen zu können. Nur über diese Methoden ist der Zugriff auf private Attribute möglich, es ist nicht mehr möglich, den Wert direkt über "zeit = xy" o.a. zu ändern (Datenkapselung). Man müsste die entsprechende Methode dazu verwenden.
0

bei c musst du überlegen welche variablen du brauchst für eine Stoppzeit bzw Weckzeit , ein tipp eine stoppzeit besteht nicht nur aus minuten und stunden . eine weckfunktion muss ja ein ziel haben , auch das musst du ausdrücken

und entsprechend die funktionen / methoden dazu und auch wenn das ziel etc erreicht ist .