Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

habe eine Aufgabe in der Uni bekommen und komme nicht weiter.

Vielleicht kann mir einer helfen. Danke!

Uhrenarithmetik

Schreiben Sie eine Funktion mit der man eine übliche Digitaluhranzeige (Stunden, Minuten, Sekunde) um einen Zeitbetrag (Stunden, Minuten, Sekunden) vorstellen kann.

Die Uhranzeige soll 24 Stunden haben.

Das Resultat soll ein

Array

der Größe 3 sein ([hour,min,sec] z.B.

[12,30,10]).

  • Autor

def_class(:Clock24,[:hour24,:min,:sec]) {

def invariant? ()

self.hour24.hour24? and self.min.min? and self.sec.sec?

end

}

def_class(:ClockSec,[:day_sec]) {

def invariant?() self.day_sec.day_sec? end

}

Bin jetzt soweit, scheint aber nicht ganz richtig zu sein...:upps

Wie gesagt, komme ja an dieser Stelle einfach nicht weiter.
Es sieht mir mehr danach aus, als hättest du das irgendwo abgeschrieben und keinen blassen Schimmer, was das tut.

Vielleicht könntest du mir einen Lösungsvorschlag anbieten:old
Suchst du einfach nur jemanden, der deine Hausaufgaben macht?

Mach mal einen Schritt nach dem anderen, bevor du versuchst so einen Stunt hinzulegen.

Wir bilden eine Zeit erstmal genau so ab, wie der vorgegebene Parameter: ein Array aus Stunde, Minute und Sekunde. Dann brauchen wir eine Methode, die diesen Wert entsprechend verändert. Würde in etwa so aussehen:


current_time = [12, 15, 0]

def add_time(time_array)

  hours = time_array[0]

  minutes = time_array[1]

  seconds = time_array[2]


  # add this to your time

end

Wenn das funktioniert, behandle die Fälle, wenn Minuten und Sekunden den Wert 60 überschreiten (bzw. Stunden 24). Wenn das dann auch funktioniert, fängt man mit Refactoring an und baut eleganten Code, gern auch objektorientiert.

Das was du da oben versuchst, ist a) syntaktisch völliger Unsinn, B) unvollständig und c) ein Doppel-Salto-Versuch, wo du einfach nur einen Schritt gehen solltest.

Wenn das funktioniert, behandle die Fälle, wenn Minuten und Sekunden den Wert 60 überschreiten (bzw. Stunden 24).

Hast du schon mal eine Digitaluhr gesehen, auf der 24:60:60 zu lesen war? Es wird bei Erreichen von 60 bzw. 24 (oder beim Überschreiten von 59/23) umgestellt. ;)

  • 3 Wochen später...
  • Autor

Hallo zusammen,

bin fertig geworden und es funktioniert. Vielen Dank für Eure Hilfe!

MINS = 60

SEC = 60

def clock(modus, hour_a, min_a, sec_a, hour, min, sec)

check_pre((

hour_a.nat? and min_a.nat? and sec_a.nat? and hour.nat? and min.nat? and sec.nat? and

modus.nat? and (modus == 24 or modus == 12) and

(hour_a >= 0) and (min_a >= 0) and (sec_a >= 0) and (hour >= 0) and (min >= 0) and (sec >= 0) and

(hour_a < modus) and (min_a < 60) and (sec_a < 60) and (hour < modus) and (min < 60) and (sec < 60)))

#Zeit in Sekunden umwandeln

time_in_sec_a = time_to_sec(hour_a, min_a, sec_a)

time_in_sec = time_to_sec(hour, min, sec)

#Zeiten mit einander Addieren

time_in_sec_sum = time_in_sec_a + time_in_sec

#Array berechnen

[new_time_hour(time_all(modus, time_in_sec_sum)),

new_time_min(time_all(modus, time_in_sec_sum)),

new_time_sec(time_all(modus, time_in_sec_sum))]

end

#Methode zum Zeit in Sekunden wandeln

def time_to_sec(hour, min, sec)

(((hour * MINS ) + min ) * SEC) + sec

end

#Maximale sekunden anzahl

def time_all(modus, sec_all)

sec_all % (modus * MINS * SEC)

end

#Neue Anzahl von Stunden

def new_time_hour(sec_all)

sec_all / (MINS * SEC)

end

#Neue Anzahl von Minuten

def new_time_min(sec_all)

(sec_all % (MINS * SEC)) / SEC

end

#Neue Anzahl von Sekunden

def new_time_sec(sec_all)

(sec_all % (MINS * SEC)) % SEC

end

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.