Hausaufgabe (Schleifen)

Mojtaba1986

Mitglied
Hallo liebe Leute,
hätte eine Frage: ich muss eine Hausaufgabe (Schleifen) machen, leider kriege es nicht hin. bitte um Hilfe
(Schreibe ein Programm, das einen Zeitpunkt (Stunde, Minuten) und beliebig viele Zeiträume (nur in Minuten) einliest (Ende durch Eingabe von 0 Minuten); die Minuten sollen zum Zeitpunkt addiert werden und der Endzeitpunkt soll ausgegeben werden.)
danke im Voraus!
 
Zwei Fragen:
1. was hast du bis jetzt bereits alleine/selbständig geschafft?
2. wobei hast du ganz genau (ganz konkret) Probleme? -> was eine Schleife ist? die verschiedenen Arten einer Schleife? etc.

Dann kann man hier zusammen mit dir eine Lösung erarbeiten.
Die Lösung muss selbstverständlich von dir kommen.
Wir können nur ganz konkrete Antworten zu ganz konkreten Verständnisfragen geben.
 
package Schleifen;

import java.util.Scanner;

public class HausUebung {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);

int stunde = 0;
int minute = 0;
int zeitpunkt;
int zeitraum;

System.out.println("bitte einen Zeitpunkt in hh:mm eingeben");
zeitpunkt = input.nextInt();
System.out.println("bitte den beliebigen Zeitraum in mm eingeben");
zeitraum = input.nextInt();

for(int i = 0; i > zeitpunkt; i++) {







System.out.println("Der Endzeitpunkt ist :" + stunde + minute);
input.close();





}
}

}
 
Schauen wir uns das erst einmal an:

Was ist denn ein Integer? Kann eine Eingabe im Formal hh:mm in einem int gespeichert werden?

Evtl. beschreibst Du erst einmal in Worten, was Du genau machen willst. Und dann auch noch einmal die Schleife im Detail ansehen: Wie lange soll die Schleife denn laufen?
 
Vermutlich sollte man auch die passende Date Time API inkl. Formatierung verwenden
Da wäre aber dann keine Schleife notwendig denke ich mal, oder?
(oder manuell auf Minuten %60 und Stunden %24 prüfen)
Das denke ich auch, wobei man noch nicht mal ein % brauchen wird, wenn man in der Schleife hochzählt. Mit % wäre man auch hier wieder die Schleife los 🙂

Oder habe ich jetzt etwas übersehen?
 
Zwei Fragen:
1. was hast du bis jetzt bereits alleine/selbständig geschafft?
2. wobei hast du ganz genau (ganz konkret) Probleme? -> was eine Schleife ist? die verschiedenen Arten einer Schleife? etc.

Dann kann man hier zusammen mit dir eine Lösung erarbeiten.
Die Lösung muss selbstverständlich von dir kommen.
Wir können nur ganz konkrete Antworten zu ganz konkreten Verständnisfragen geben.

Schauen wir uns das erst einmal an:

Was ist denn ein Integer? Kann eine Eingabe im Formal hh:mm in einem int gespeichert werden?

Evtl. beschreibst Du erst einmal in Worten, was Du genau machen willst. Und dann auch noch einmal die Schleife im Detail ansehen: Wie lange soll die Schleife denn laufen?
ich soll manuell einen Zeitpunkt eingeben zB. 12:00 (Stunde:Minute) dann einen bliebigen Zeitraum(in Minuten) dazu addieren (zB.200min).und der Endzeitpunkt soll augegeben werden. zB. 12:200 aber es muss in richtige minuten gezeigt werden. 12:200min gibt es in wirklichkeit nicht dann muss --> 15:20
 
Du sollst eine Zeit eingeben getrennt in Stunden und Minuten. Dann mache. Das doch auch erstmal.
Dann sollst du den Zeitraum eingeben in Minuten. Mache das doch auch erstmal bevor du mit rechnen.... Anfängst.
 
@httpdigest Danke! Da hatte ich nicht gut genug gelesen!

@Mojtaba1986
- Also ein Integer ist eine Zahl. Eine Kombination aus Stunden und Minuten besteht aber doch aus zwei Zahlen.
Da ist dann die Frage, wie man diese Eingabe lesen kann. Da gibt es viele Wege und da werdet ihr vermutlich irgend etwas schon gemacht haben:
-> ggf. als String einlesen und dann den String auswerten um die zwei Zahlen zu bekommen.
-> ggf. mit Scanner einlesen (Delimiter auf : setzen und dann wären da zwei nextInt Aufrufe denkbar.)
-> ...

Dann nehmen wir einmal an, dass Du diese Eingaben hast: Wie bekommst Du denn dann die richtige Endzeit? Wie kannst Du das berechnen? Das erst einmal in Worten genau beschreiben. Zur Umsetzung hat dann @M.L. schon zwei Möglichkeiten genannt.

Wenn Du das dann soweit hast, dann wäre am Ende nur noch die Frage, wie Du eine Schleife um die Berechnung bekommst, damit Du dann so lange Zeiträume hinzu addieren kannst, bis Du 0 addieren sollst.
 
Tipp gehen wir mal davon aus das du die Stunden und Minuten getrennt in zwei int Variablen hast. Jetzt sollt du 100 min dazu addieren überlege wie du das machen würdest.
Was musst du dabei beachten?
 
ich soll manuell einen Zeitpunkt eingeben zB. 12:00 (Stunde:Minute) dann einen bliebigen Zeitraum(in Minuten) dazu addieren (zB.200min).und der Endzeitpunkt soll augegeben werden. zB. 12:200 aber es muss in richtige minuten gezeigt werden. 12:200min gibt es in wirklichkeit nicht dann muss --> 15:20
Ist das nicht schon die Antwort auf die Frage, was man beim addieren von Minuten beachten muss? ^^

Du hast ja schon selbst rausgefunden, dass die richtige Lösung für 12:00 + 200min = 15:20 ist. Welche Schritte hast du gemacht, um auf diese Lösung zu kommen?
 
Also, würde man das genau machen, kann das durch Sommer/ Winterzeit, Schaltjahren und Sekunden, schnell etwas umständlich werden. Ich will dem TE nix vorwegnehmen, aber mit % (Modulo/Remainder) lag er doch schon richtig.
 
Die lösung weiß ich aber ich weiß nicht wie ich es i in praxis umsetzen kann!
Das ist die Frage!!!!
Das liegt einfach daran, dass Du immer noch viel zu oberflächig bist!

Da hat @Jw456 aus meiner Sicht 100% Recht!

Stell Dir vor du musst jemandem erklären, was er rechnen soll. Diese andere Person hat absolut keine Ahnung von Uhrzeit, Minuten und so ...
Aber er kann Mathe. Du kannst ihm als Werte geben (die Du benennen kannst) und dann kann er rechnen.

Also sowas wie:
a ist 1
b ist 2
c ist 3
Dann rechnest Du b * a + c ... So auf die Art und Weise.

12:30 + 100 =
100%60 —>> 14:10
Das ist absolut unverständliches. Du musst korrekte, mathematische Anweisungen geben!

Und auch ordentlich aufteilen:

Stunden: 13
Minuten: 30
Dauer: 100

Was berechnest Du? Bitte genaue Details!

Und wenn Du das hast: Schau mal, was Du bei Dauer: 60100 heraus bekommst. So als Test, ob da nicht irgendwas fehlt.


@Mojtaba1986 Nur um es noch einmal ganz deutlich zu benennen: Du musst eine Aufgabe immer als erstes komplett herunter brechen und dir über jeden einzelnen Schritt klar werden. Das musst Du üben! Ohne das wirst du keine einfachen Algorithmen schreiben können. Was helfen kann, ist immer Stift und Zettel um es sich genau aufzuschreiben. Wenn Du jeden Schritt genau aufschreibst, dann hast Du eine solide Grundlage, es 1:1 in Code umzuwandeln.
 
Java:
minute = (minute + zeitraum) % 60;
stunde = stunde + (minute + zeitraum) / 60;

Das könnte der Anfang sein. jetzt musst du aber noch prüfen ob die Stunde nach 24 Uhr ist

und entsprechend darauf reagieren.
beachte das es auch mehrerer Tage sein können.
 
Java:
minute = (minute + zeitraum) % 60;
stunde = stunde + (minute + zeitraum) / 60;

Das könnte der Anfang sein. jetzt musst du aber noch prüfen ob die Stunde nach 24 Uhr ist

und entsprechend darauf reagieren.
beachte das es auch mehrerer Tage sein können.
Das compiliert doch gar nicht! Du kannst während der Initialisierung nicht auf eine Variable zugreifen, die noch nicht initialisiert ist bzw gerade initialisiert werden soll! Wir sind hier nicht in C...
 
Das compiliert doch gar nicht! Du kannst während der Initialisierung nicht auf eine Variable zugreifen, die noch nicht initialisiert ist bzw gerade initialisiert werden soll! Wir sind hier nicht in C...
Also dem kann ich nicht folgen. Die Eingaben müssen natürlich vorher erfolgt sein ...

Aber da sehe ich einen anderen Fehler, aber es hilft dem TE meiner Meinung nach nicht, da so viel an Lösung vor zu geben. Er sollte lernen, so Dinge selbst zu lösen ... aber da scheint kein Interesse dran zu bestehen.
 
Aber da sehe ich einen anderen Fehler, aber es hilft dem TE meiner Meinung nach nicht, da so viel an Lösung vor zu geben. Er sollte lernen, so Dinge selbst zu lösen ... aber da scheint kein Interesse dran zu bestehen.
Ich habe ja auch gesagt das es noch nicht die Endlösung ist.

Es ging erstmal darum das er beide Werte braucht die Ganzzahl und den Rest. Und das geht halt nur mit zwei Berechnung eine Ganzzahl Division und der Rest mit Modulo.
 

Zurück
Oben