Minutenanzahl in Format HMM umwandeln

Guten Tag Leute,

Erst mal zu mir , ich bin seit einer Woche Informatik-Student und haben für diese Woche eine Schöne Hausaufgabe bekommen in EPR. Wir sind quasi noch am Anfang wenns um programmieren geht. Dementsprechend müssen wir keine Variablen oder sonst was für die Aufgabe deklarieren,die ich jetzt zusammen fasse.
Aufgabe 2.3
Realisieren Sie einen Ausdruck, der zu einer Anzahl Minuten die vollen Stunden und verbleibenden
Minuten im Format hmm liefert. h gibt die vollen Stunden, mm die verbleibenden Minuten an. Der
Ausdruck soll ausschließlich Operanden des Typs int enthalten.

Dabei sollen z.b Zahlen 5,60,61,825 die als minuten ausgedrückt werden jetzt in den format H:MM programmiert werden.
Nur hierfür stehe ich grade aufn Schlauch.
Ich weiß nämlich nicht wie ich den Restbetrag rechnen soll…
System.out.println(5 * 60 / 100 + 5 % ?? );
Dies ist mein Ansatz , doch ich komme nie auf das richtige ergebnis weil ich leider nicht mehr weiß was ich für die ?? einsetzen soll .
Falls ihr nicht versteht wie ich es meine, die Zahl 5 soll z.b als 5 ausgegeben werden, die zahl 60 als 100, die 61 als 101, und die 825 als 1345…

hoffe ihr könnt mir helfen…

warum glaubst du dass dir % hilft,
irgendeinen grundsätzlichen Plan musst du doch verfolgen, irgendwelche Beispiele im Kopf haben, welche sind dies?

wenn für 5 auch nur 5 herauskommen soll, ist ‚5 * 60 / 100‘ = 3 + (irgendwas wahrscheinlich nicht negatives) noch ein Summand,
der nicht sofort automatisch auszuschließen ist, aber inwiefern sollte die 3 helfen?

etwas mit 60 zu versuchen ist ein guter Weg, die 100 aber brauchst du nicht,
(edit: ok, zunächst nicht, später schon, ich korrigiere einfach zu: brauchst du auch bald :wink: )
du weißt dass int / int gefundet wird?

fange mit einer Rechnung an, die die Stunden bestimmt, Rest noch nicht anschauen,
wenn das fertig und an ein paar Beispielen getestet, dann höhere Ziele setzen

Danke erstmal dass du geschrieben hast,
Das Problem bei mir ist gerade , dass ich die Aufgabe schon vorhin in der Uni bearbeitet hatte. Und mein Professor meinte auch dass wir die so lösen müssen,da wir nur bestimmte Lösungswege benutzen dürfen. Und ich komme einfach nicht mehr auf die Lösung habe schon mehrere Zahlen versucht sie zu dividieren aber es klappt nicht … ich hab halt genau diese Formel noch im Kopf die dafür war leider nur nicht das letztere… wo wir mit % rechnen sollten…

% ergibt einfach den Divisionsrest. 8 % 10 = 8, 18 % 10 = 8, 55558 % 10 = 8. Überlege zuerst, durch welche Zahl du teilen musst…

und für den linken Teil mag 5 … 60 … 100 meinetwegen auch hinkommen, aber nicht mit den aktuellen Rechenzeichen :wink:

bei allen Verständnis für ‚Lösung schon im Kopf haben‘, musst du dich irgendwann auch nochmal lösen und wieder klar und systematisch vorgehen,
wenn du die ‚Lösung im Kopf‘ sowieso nicht selbst erklären kannst ist sie im Grunde cheaten,

das kann durchaus deine Frage sein, nach fertiger Lösung ohne deine Beteiligung,
aber wäre es nicht wertvoller, durch eigene Anstrengung das Problem in ein Nicht-Problem zu verwandeln?
dafür werden dir später Leute, die Geld für deine Zeit bezahlen sollen, dankbar sein

Ganz so pessimistisch sehe ich es nicht.

825 / 60 => Stunden
825 % ? => ?
schöne Formatierung => ?
0 bei 0 bis 9 => ?

Das mit Fragezeichen müsstest du jetzt beantworten.

das % ist eine Modulo Rechnung, das heißt es wird dort der Rest ausgegeben.
das / ist eine klassische Division ohne Rest und bei Int auch nur Ganzzahlen.
Somit ist um auf deine Stunden zu kommen deine Zeit durch 60 zu teilen (da üblicherweise eine Stunde 60 Minuten hat)
bei 5 Minuten ergäbe als 5/60=0 somit 0 Stunden was soweit für den linken Teil ok ist
bei 60 Minuten all 60/60 ergäbe es 1 was auch passt.
Für den Rechten Teil nimmst du nun den Modulo also das % und da kommt bei 5%60 5 raus was Stimmt, das 5 Minuten 5 Minuten sind
bei 60%60 kommt 0 raus, da diese Rechnung keinen Rest lässt, was auch Stimmt, da 60 Minuten exakt eine Stunde und keine weiteren Minuten sind.
Jetzt musst du nur bei deiner Ausgabe diese Werte zusammen setzen.
jedoch würde nun bei 61 die Aussgabe 11 ergeben, da die Fehlende 0 für das Format HMM nicht gesetzt wird.
Dafür könntest du noch überprüfen ob deine Minuten größer 9 sind.

die 100 vom Anfang sind ja auch noch da,
rein in int zu rechnen, ohne if bzw. ‘ternärer Operator’ und ohne Ziffern als String zusammenzubauen

Sry, damit es logisch Sinn macht, sollte es so lauten:

825 / 60 => Stunden
825 % ? => ?
? => schöne Formatierung
? => 0 bei 0 bis 9

(durch welche Zahl muss ich moduloen um was zu erhalten?)

@CyborgGamma : Sind sie größer 9, dann muss keine 0 angefügt werden.

Und, konntest du diese Hausaufgabe erfolgreich bearbeiten? Wofür steht eigentlich EPR? @plonka

Es handelte sich nicht um Spam, es verdeutlichte die einzelnen Schritte und durch welche Zahl er moduloen sollte… @SlaterB

Wenn wir jeden deiner Beiträge kontrollieren müssen, ist es wohl besser, dich wieder einmal auf ungewisse Zeit auf Eis zu legen.

Jeden Beitrag kontrollieren besteht doch kein Anlass, jeder möchte nur helfen, leider hat sich der TO nicht wieder gemeldet, der Ball liegt in seinem Feld, mit einer Variable zwei Zeilen, IMO.

Im Wknd ist Spam erlaubt.

Edit: Oder einfach mit einer For-Schleife. grins