Übung 3 Java 

Status
Für weitere Antworten geschlossen.

buba

Registered +
Registriert
Jan. 2007
Beiträge
33
So, dank eurer Hilfe bin ich mit den Aufgaben fast fertig. Danke nochmals.
Das Script läuft super! hab es geschafft, dass alles in einer endlos schlaufe läuft, doch nun ist die Aufgabe das Script zu beenden und zwar wie folgt:

Sobald in der Tag eingabe ein "enter" also nix eingegeben wird, soll das programm beendet werden, mit der aussage programm wurde beendet.

Die Eingabe wird vorzugsweise zuerst in eine String-Variable eingelesen (Beispiel: tagStr = sc.nextLine();).
Die String-Variable kann nun mit der Methode length() geprüft werden. Ist die Länge 0, hat der Benutzer eine Leerzeile eingegeben.
Der String soll für die weiteren Berechnungen wieder als Integer genutzt werden können. Die Konvertierung des Strings kann nun folgendermassen erfolgen: tag = Integer.parseInt(tagStr);

hier noch der neue code (funzt)


PHP:
import java.util.*;
public class Aufgabe6 {
public static void main (String args[]) {

int tag, monat, jahr,
jh, ja, formel;


Scanner sc = new Scanner (System.in);

do {

System.out.println("Tag: ");
tag = sc.nextInt(); //("Tag: ");
System.out.println("Monat: ");
monat = sc.nextInt();//("Monat: ");
System.out.println("Jahr: ");
jahr = sc.nextInt();//("Jahr: ");

System.out.print("Das Datum " + tag + "." + monat + "." + jahr + " ist ein ");

jh = jahr / 100; /* Jahrhundert */
ja = jahr % 100; /* Jahr im Jahrhundert */

if (monat>2) {
monat -=3;
} else {
monat += 9;
ja--;
}


formel = (146097*jh)/4 + (1461*ja)/4 + (153*monat+2)/5 + tag + 1721119;


switch (tag%7) {
case 0:
System.out.println("Montag");
break;
case 1:
System.out.println("Dienstag");
break;
case 2:
System.out.println("Mittwoch");
break;
case 3:
System.out.println("Donnerstag");
break;
case 4:
System.out.println("Freitag");
break;
case 5:
System.out.println("Samstag");
break;
case 6:
System.out.println("Sonntag");
break; }




if (jahr%400 == 0 || jahr%100 != 0 && jahr%4 == 0) {


System.out.println(" Das Jahr " +jahr +" ist ein Schaltjahr");
}

else
{

System.out.println(" Das Jahr " +jahr +" ist kein Schaltjahr");
}


} while(true);



}
}

Vielen Dank
:tata: :drum: :band: :hit:

Keiner ne Ideeeeee?

:confused:
 
Mal abgesehen davon das pushes nicht erlaubt sind imho,

In deinem Post steht ja schon die Lösung zu deinem Problem,
also wo genau klappts denn nicht?
 
was ist den ein push?

ich weiss ja auch wie das eigentlich machbar währe, doch bei mir gehts nicht, hab irgendwo einen kleinen fehler gemacht.

z.b. weiss ich nicht ob der befehl

tagStr = sc.nextLine();

vor oder nach Scanner sc = new Scanner (System.in); kommt.

ausserdem verstehe ich nicht wieso man diesen schritt:

"Die Konvertierung des Strings kann nun folgendermassen erfolgen: tag = Integer.parseInt(tagStr);"

durchführen muss

ich probiers nochmal, doch wäre nett wenn ich etwas hilfe krieg.

danke
 
PHP:
import java.util.*;

public class Test {
public static void main(String args[]) {

int tag, monat, jahr, jh, ja, formel;

Scanner sc = new Scanner(System.in);

do {

System.out.println("Tag: ");
String tagStr = sc.nextLine();
if (tagStr.equals("")){
break;
}
else{
tag = Integer.parseInt(tagStr);
}
System.out.println("Monat: ");
monat = sc.nextInt();// ("Monat: ");
System.out.println("Jahr: ");
jahr = sc.nextInt();// ("Jahr: ");

System.out.print("Das Datum " + tag + "." + monat + "." + jahr
+ " ist ein ");

jh = jahr / 100; /* Jahrhundert */
ja = jahr % 100; /* Jahr im Jahrhundert */

if (monat > 2) {
monat -= 3;
} else {
monat += 9;
ja--;
}

formel = (146097 * jh) / 4 + (1461 * ja) / 4 + (153 * monat + 2)
/ 5 + tag + 1721119;

switch (tag % 7) {
case 0:
System.out.println("Montag");
break;
case 1:
System.out.println("Dienstag");
break;
case 2:
System.out.println("Mittwoch");
break;
case 3:
System.out.println("Donnerstag");
break;
case 4:
System.out.println("Freitag");
break;
case 5:
System.out.println("Samstag");
break;
case 6:
System.out.println("Sonntag");
break;
}

if (jahr % 400 == 0 || jahr % 100 != 0 && jahr % 4 == 0) {

System.out.println(" Das Jahr " + jahr + " ist ein Schaltjahr");
}

else {

System.out
.println(" Das Jahr " + jahr + " ist kein Schaltjahr");
}

} while (true);

}
}
 
Thank You Stelzi

doch kann mit " if (tagStr.equals("")){ " nicht viel anfangen, denn in der aufgabe steht nix von equals :( es sollte mit lenght machbar sein, doch vielen dank, nun werde ich es selber nochmal ausprobieren, jetzt hab ich ja deine vorlage, nun ist es nicht schwer ein lenght einzufügen.

melde mich.

danke
 
dann mach die Abfrage mit length...

Warning, untested: :)
PHP:
if(tagStr.length() == 0) {
break;
}
 
hatte die gleiche Idee, doch funzt neeed :(
jetzt endet das progi sobald ich irgend eine zahl eingebe :( ausser wenn ich nix eingebe:confused: ich krieg die kriese:mad:
nix läuft so wie es sollte.:würg:

hat jemand ne ideeeeeeeeee

PHP:
import java.util.*;

public class Aufgabe66 {
public static void main(String args[]) {

int tag, monat, jahr, jh, ja, formel;

Scanner sc = new Scanner(System.in);

do {

System.out.println("Tag: ");
String tagStr = sc.nextLine();
if(tagStr.length() == 0) {
break;
}

else{
tag = Integer.parseInt(tagStr);
}
System.out.println("Monat: ");
monat = sc.nextInt();// ("Monat: ");
System.out.println("Jahr: ");
jahr = sc.nextInt();// ("Jahr: ");

System.out.print("Das Datum " + tag + "." + monat + "." + jahr
+ " ist ein ");

jh = jahr / 100; /* Jahrhundert */
ja = jahr % 100; /* Jahr im Jahrhundert */

if (monat > 2) {
monat -= 3;
} else {
monat += 9;
ja--;
}

das ist nur der obere teil, probierts mal aus, doch dazu braucht ihr auch den unteren teil
wieso funzt das mit dem length nicht?
ich denke man muss irgendwo noch bemerken das length ein Variable ist, oder nicht? mit dem befehl length () solte das progi die länge automatisch bestimmen wenn sie 0 ist könnte man mit (true) weiterfahren.

wer hat ne ideeee

:ööm: :thx:
 
Joa, kopier die deklaration vom Scanner in die do while schleife, dann gehts...

PHP:
do {
Scanner sc = new Scanner(System.in);
...
 
Hab zwar nur ein paar wenige Änderungen gemacht, hab aber lieber mal den ganzen Code gepostet, nicht das es Fehler beim c&p gibt ;-)
Sollte jetzt eigentlich gehen.

PHP:
import java.util.*;

public class Test {
public static void main(String args[]) {

int tag, monat, jahr, jh, ja, formel;

do {
Scanner sc = new Scanner(System.in);
System.out.println("Tag: ");
String tagStr = sc.nextLine();

if (tagStr.length() == 0){
break;
}
else{
tag = Integer.parseInt(tagStr);
}
System.out.println("Monat: ");
monat = sc.nextInt();// ("Monat: ");
System.out.println("Jahr: ");
jahr = sc.nextInt();// ("Jahr: ");

// Scanner "löschen"
sc = null;

System.out.print("Das Datum " + tag + "." + monat + "." + jahr
+ " ist ein ");

jh = jahr / 100; /* Jahrhundert */
ja = jahr % 100; /* Jahr im Jahrhundert */

if (monat > 2) {
monat -= 3;
} else {
monat += 9;
ja--;
}

formel = (146097 * jh) / 4 + (1461 * ja) / 4 + (153 * monat + 2)
/ 5 + tag + 1721119;

switch (tag % 7) {
case 0:
System.out.println("Montag");
break;
case 1:
System.out.println("Dienstag");
break;
case 2:
System.out.println("Mittwoch");
break;
case 3:
System.out.println("Donnerstag");
break;
case 4:
System.out.println("Freitag");
break;
case 5:
System.out.println("Samstag");
break;
case 6:
System.out.println("Sonntag");
break;
}

if (jahr % 400 == 0 || jahr % 100 != 0 && jahr % 4 == 0) {

System.out.println(" Das Jahr " + jahr + " ist ein Schaltjahr");
}

else {

System.out.println(" Das Jahr " + jahr + " ist kein Schaltjahr");
}

} while (true);

}
}

Tjo war einer schneller ^^
 
ich glaubs nicht :mad: nur weil ich den scanner vor dem do gestellt habe, hat nix funktioniert!!!!! :dreck:

Meine Güte ist das ärgerlich, jetzt scheint es mega logisch, doch ohne eure hilfe wäre ich nieeeee im leben darauf gekommen!!!:depp:

"Danke stelzi & Zerd"

und alle andern..........

ps: na, was meint ihr? wollt ihr noch ne aufgabe?

:D :confused: :D
:thx: :thx:

weiss jemand wie ich die Anführungszeichen " text " in java darstellen kann? als System.out.println("Bitte eine "Tag" eingeben.");
so wirds leider nicht geschluckt :( ist es überhaupt möglich??
 
Ja das ist möglich, da es sich um ein Sonderzeichen handelt musst du es escapen, also:

Warning: Untested ;)
PHP:
System.out.println("Hallo \"du\" da");
 
dann kann ich hier wohl dicht machen!? :D

~ C L O S E D ~

ceeyaa.mex
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten