So funktioniert JustAnswer:
  • Fragen Sie einen Experten
    Tausende Experten in über 200 Kategorien.
  • Erhalten Sie eine professionelle Antwort
    Per E-Mail oder sofortiger Benachrichtigung, während Sie auf unserer Website warten. Stellen Sie ggf. weitere Anschlussfragen.
  • 100%ige Zufriedenheit garantiert
    Bewerten Sie die erhaltene Antwort.
Stellen Sie Ihre Frage an Dr-Ing-Singer.
Dr-Ing-Singer
Dr-Ing-Singer, Dr. -Ing.
Kategorie: Programmierung
Zufriedene Kunden: 49
Erfahrung:  Master of Engineering and Computer Science und Diplomingenieur der Luft- und Raumfahrttechnik
61769379
Geben Sie Ihre Frage in der Kategorie Programmierung hier ein
Dr-Ing-Singer ist jetzt online.

Aufgabe 2: Datumszerlegung Erstellen Sie ein Java-Programm,

Beantwortete Frage:

Aufgabe 2: Datumszerlegung
Erstellen Sie ein Java-Programm, das ein Datum einliest und daraus Tag, Monat, und Jahr ermittelt.
Die Eingabe soll dabei immer so interpretiert werden, dass zuerst der Tag, dann das Monat und
schlussendlich das Jahr, jeweils durch ein Trennzeichen (Punkt, Slash, Minus; gemischte Eingabe
erlaubt) getrennt, folgt.
Datumseingabe: 11.3.2010
Tag: 11
Monat: 3
Jahr: 2010
Datumseingabe: 11/3-2010
Tag: 11
Monat: 3
Jahr: 2010
Das Programm soll eine Fehlermeldung ausgeben, falls ein ungültiges Datum eingegeben wurde.
Datumseingabe: 29.2.2010
Kein gültiges Datum!
Datumseingabe: 2.2010
Kein gültiges Datum!
Datumseingabe: 2-32.2010
Kein gültiges Datum!
Datumseingabe: wxkrft
Kein gültiges Datum!
Besonders wichtig ist hier die Definition der Testfälle!
Hinweise zu Aufgabe 2:
Lesen Sie die Eingabe zeichenweise (Input.readCharSequence(); siehe unten) und wandeln Sie
selbst die Eingabe entsprechend um. Beachten Sie, dass das letzte Zeichen der Eingabe dabei
ein '\n' ist.
􀂃 Berücksichtigen Sie dabei bitte auch Schaltjahre. Jahre die durch 4 teilbar sind, sind
Schaltjahre; allerdings trifft dies nicht für ganze Jahrhunderte zu (z.B. nicht für 1900),
allerdings doch wieder falls es sich dabei um eine Jahrtausendwende handelt (z.B. das Jahr
2000 war ein Schaltjahr).
Hinweise für beide Übungsaufgaben:
Für Benutzereingaben (read-Operationen) ist (bis inkl. Übung 5) zwingend die Input-
Klasse zu verwenden. Die Klasse finden Sie im Angabeordner der Übung
(www.pervasive.jku.at/Teaching/lvaInfo.php?key=303&do=uebungen).
Die Klasse Input.java bietet verschiedene Funktionen zum Einlesen von Werten, abhängig
vom Datentyp. Zum Einlesen von Zahlen gibt es u. a. folgende Funktionen:
− Input.readInt() liest eine ganze Zahl ein (Typ int)
− Input.readFloat() liest eine Gleitkommazahl ein (Typ float)
Beispiel:
int x;
float y;
System.out.println("x = ");
x = Input.readInt (); // ganze Zahl x einlesen
System.out.println("y = ");
y = Input.readFloat(); // Gleitkommazahl y einlesen
Geben Sie pro Programmieraufgabe folgendes ab:
a) Textuelle Lösungsidee
b) Quelltext (Java-Programm inklusive Kommentaren)
c) Testplan, zum Testen der Grenzen (z.B. minimal zulässige Temperatur, maximale
Eingaben je Berechnung) und Sonderfälle (z.B.: Eingeben eines Textes obwohl eine
Zahl gefordert). Geben Sie für jede Eingabe an, wie sich das Programm verhalten
soll. Es darf kein "undefiniertes" Verhalten geben, bzw. darf das Programm zu
keinem Laufzeitfehler führen. Listen Sie alle Testfälle in einer Tabelle (TestfallNr.,
Beschreibung, Benutzereingabe, zu erwartende Rückgabewerte).
d) Ausgabe des Programms für die Testfälle aus dem Testplan
Achten Sie bei der Implementierung besonders auf die Verwendung adäquater Datentypen, die
Überprüfung der Benutzereingaben und die Ausgabe von Fehlermeldungen
bitte auch mit ausgabe .......ich mache mit java -eclipse
Gepostet: vor 6 Jahren.
Kategorie: Programmierung
Experte:  Dr-Ing-Singer hat geantwortet vor 6 Jahren.
Sehr geehrter Ratsuchender,

die Enwicklung eines solchen algorithmus dauert etwa eine Stunde, ohne den Pseudo-Code in java -eclipse zu übersetzen und ohne die Testfälle zu überprüfen. Daher ist es mir nicht möglich diese Aufgabenstellung für den angegebenen Preis zu bearbeiten. Die Komplexität und der Arbeitsaufwand für den Pseudo-Code und die Testtabelle kann ich Ihnen für 50$ Eigeneinkommen (d.h. 50% der Gesamtsumme) anbieten. Bitte erhöhen sie den Betrag entsprechend.

Mit freundlichen Grüßen,
Csaba Singer
Dr-Ing-Singer und weitere Experten für Programmierung sind bereit, Ihnen zu helfen.
Experte:  Dr-Ing-Singer hat geantwortet vor 6 Jahren.
a.)
Pseudo-Code mit Dokumentation:

#Eine gültige Eingabe besitzt 8, 9 oder 10 Stelleneingaben

Sta = Zähle_Eingabestellen(Eingabe)

if Sta > 10 or if Sta < 8
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
else
n=1

#zwischen den Stellenangaben ist keine Leereingabe#
for i=1:Sta
if Stelle(i)=" "
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
else
n=1
end

#Die gültige Eingabe weist Zahlen und /, -, oder . als Sonderzeichen auf (== bedeutet ungleich, = bedeutet gleich)
#Die Sonderzeichen sind entweder "/" und "-" oder "."
for i=1:Sta
if Stelle(i)=="Zahl" oder "/" oder "-" oder "."
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

elseif Stelle(i)="/"
for i=1:Sta
if Stelle(i)=="Zahl" oder "/" oder "-"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
end


elseif Stelle(i)="."
for i=1:Sta
if Stelle(i)=="Zahl" oder "."
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
end
else
n=1
end


#Die erste Stelle darf keine 0 oder ein Sonderzeichen aufweisen
if Stelle(1)=0 oder "/" oder "-" oder "."
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
else
n=1

#Die zweite oder die dritte Stelle der gültigen Eingabe ist ein . oder ein /
tz=0
for i=2:3
if Stelle(i)="." oder "/"
tz=i
n=1

elseif Stelle(2)="." oder "/" und Stelle(3)="." oder "/"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

elseif tz=0
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
end

#Ist die zweite Stelle ein . oder ein / so ist die erste Zahl zwischen 1 und 9 und eine Tagesangabe
#Ist die dritte Stelle ein . oder ein / so ist die aus den ersten zwei Stellen gebildete Zahl die Tageseingabe sofern die Zahl zwischen 10 und 31 liegt
if tz=2
Tag=Stelle(1)
elseif tz = 3
Tag=(Stelle(1,2))

if Tag>31 oder Tag<1
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
else
n=1

#Ist die zweite Stelle ein . oder ein / muss die vierte oder fünfte Stelle ein . oder entsprechend ein - sein
if tz=2
mz=0
for i=4:5
if Stelle(2)="." und Stelle (i)="."
mz=i

elseif Stelle(4)="." und Stelle(5)=="Zahl"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

elseif Stelle(4)="Zahl" und Stelle(5)=="."
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

if Stelle(2)="/" und Stelle (i)="-"
mz=i

elseif Stelle(4)="-" und Stelle(5)=="Zahl"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

elseif Stelle(4)="Zahl" und Stelle(5)=="-"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

elseif mz=0
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
end

#Ist die dritte Stelle ein . oder ein / muss die fünfte oder sechste Stelle ein . oder entsprechend ein - sein
if tz=3
mz=0
for i=4:5
if Stelle(3)="." und Stelle (i)="."
mz=i

elseif Stelle(5)="." und Stelle(6)=="Zahl"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

elseif Stelle(5)="Zahl" und Stelle(6)=="."
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

if Stelle(3)="/" und Stelle (i)="-"
mz=i

elseif Stelle(5)="-" und Stelle(6)=="Zahl"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

elseif Stelle(5)="Zahl" und Stelle(6)=="-"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

elseif mz=0
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
end

#Die Monatsangabe mit einstelliger oder zweistelliger Tagesangabe muss größer sein als 1 und kleiner als 12
if tz=2 und mz=4
Monat=Stelle(3)
elseif tz = 3 und mz=5
Monat=(Stelle(3,4))

if Monat>12 oder Monat<1
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
else
n=1

#Die aus den letzten vier Stellen gebildete Zahl ist eine Jahresangabe (Stellen n-3 bis n)
for i=n-3:n
if Stelle(i)=="Zahl"
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

else
Jahr=(Stelle(n-3,n-2,n-1,n))
n=1
end

#Ist die Jahreszahl durch vier teilbar ist es ein Schaltjahr ... s.Aufgabe
St=0
if Jahr/4=Ganze Zahl
St=1
elseif Jahr/4=Ganze Zahl und Jahr/100=Ganze Zahl und Jahr/1000=Dezimalzahl
St=0
elseif Jahr/4=Ganze Zahl und Jahr/1000=Ganze Zahl
St=1

# XXXXXültigkeit bezüglich Schaltjahr und Tage im Monat
if Monat=1 und Tag>31
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=2 und St=1 und Tag>29
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=2 und St=0 und Tag>28
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=3 und Tag>31
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=4 und Tag>30
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=5 und Tag>31
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=6 und Tag>30
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=7 und Tag>31
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=8 und Tag>31
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=9 und Tag>30
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=10 und Tag>31
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=11 und Tag>30
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=11 und Tag>30
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
if Monat=12 und und Tag>31
Ausgabe ("Kein gültiges Datum!"
Abbruch Program
else
n=1

#Ausgabe
if n=1
Ausgabe (Tag, Monat, Jahr)
Abbruch Program
else
Ausgabe ("Kein gültiges Datum!"
Abbruch Program

c.)Testplan

Eingabe Ausgabe
xxx Kein gültiges Datum!
xxxxxxxx Kein gültiges Datum!
32.12.2000 Kein gültiges Datum!
29.2.1900 Kein gültiges Datum!
0.2.1900 Kein gültiges Datum!
28.0.1900 Kein gültiges Datum!
29/2.1900 Kein gültiges Datum!
28.002.1900 Kein gültiges Datum!
213.2.1900 Kein gültiges Datum!
12-2/1900 Kein gültiges Datum!
12.01.1234 Kein gültiges Datum!
01.01.2000 Kein gültiges Datum!
1.1.2000 Tag: 1 Monat:1 Jahr:2000
31.1.2000 Tag: 31 Monat:1 Jahr:2000
29.2.2000 Tag: 29 Monat:2 Jahr:2000
31/1-2000 Tag: 31 Monat:1 Jahr:2000
9/2-2000 Tag: 9 Monat:2 Jahr:2000
12.12.1212 Tag: 12 Monat:12 Jahr:1212
12/12-1212 Tag: 12 Monat:12 Jahr:1212
Dr-Ing-Singer und weitere Experten für Programmierung sind bereit, Ihnen zu helfen.
Kunde: hat geantwortet vor 6 Jahren.
danke XXXXX XXXXXöchte gern wie mann richtig in java programm schreiben .meine mainmethode und eingabe + ausgaben und die schleifen .
Kunde: hat geantwortet vor 6 Jahren.
Hallo
ich habe mit winzip geöffnet aber ich kann nicht offnen ...ich benutze eclipse ,und geht nicht.....bitte um hilfe sonst habe ich probleme ich möchte selbe mit java in eclipse machen .................
Kunde: hat geantwortet vor 6 Jahren.
danke XXXXX XXXXX kann jetzt öffnen.

mfg
avin
Experte:  Dr-Ing-Singer hat geantwortet vor 6 Jahren.
Gut. Das mit der Bewertung ist nicht so schlimm. Das nächste mal können Sie ja besser bewerten. Wenn Sie sonst noch Fragen haben, helfe ich Ihnen gerne.
Kunde: hat geantwortet vor 6 Jahren.
ich habe probleme mit aufgaben zu datum zerlegung ......ich meine wie mann in java eingeben ...........kommt immer fehler exception...........frage mich ob sie kurz in java compileren .............ich weiß dass kostet was
Experte:  Dr-Ing-Singer hat geantwortet vor 6 Jahren.
Hallo Avin,

ich kann den Pseudo-Code gerne in Java übertragen und Ihnen das Ergebnis so liefern, wie bei der Aufgabe mit der Temperaturzerlegung. Da der Großteil schon fertig ist (Pseudo-Code) könnte ich das für 70€ machen. Bis wann brauchen Sie das Ergebnis?
Dr-Ing-Singer und weitere Experten für Programmierung sind bereit, Ihnen zu helfen.
Kunde: hat geantwortet vor 6 Jahren.
ich weiß aber irgend wie funktioniert nicht bei mir ..........
Kunde: hat geantwortet vor 6 Jahren.
ok sie haben recht ich werde noch mal schauen ..........wo liegt dass problem
danke nochmal
Experte:  Dr-Ing-Singer hat geantwortet vor 6 Jahren.
Hallo Avin,

was wissen Sie, und was funktioniert bei Ihnen nicht? Bitte geben sie mir genauere Angaben, damit ich Ihnen helfen kann.

Nochmal meine Fragen:
Bis wann brauchen Sie das Ergebnis?
70€ für Datumzerlegung in Java? (so wie Temperaturumrechnung)
Dr-Ing-Singer und weitere Experten für Programmierung sind bereit, Ihnen zu helfen.
Kunde: hat geantwortet vor 6 Jahren.
so snell wie möglich heute noch
Kunde: hat geantwortet vor 6 Jahren.
ja wie temperaturumrechnung
Kunde: hat geantwortet vor 6 Jahren.
frage wielange dauert ..............
??
mfg
avin
Experte:  Dr-Ing-Singer hat geantwortet vor 6 Jahren.
Ich denke 21:00h.

Dr-Ing-Singer und weitere Experten für Programmierung sind bereit, Ihnen zu helfen.
Kunde: hat geantwortet vor 6 Jahren.
ok , super danke
Kunde: hat geantwortet vor 6 Jahren.
ich warte noch und jetzt ist 21:25 ................nur dass Sie wissen

mfg
avin
Experte:  Dr-Ing-Singer hat geantwortet vor 6 Jahren.
Ich sitze seit 16:00h dran. Es geht nicht schneller. Ich schicke es sobald es fertig ist. Nur noch die Schaltjahrabfrage ...
Dr-Ing-Singer und weitere Experten für Programmierung sind bereit, Ihnen zu helfen.
Kunde: hat geantwortet vor 6 Jahren.
ok .danke
Kunde: hat geantwortet vor 6 Jahren.
dann vielleicht ......bis jetzt ....was Sie programmieret haben .....mich schicken lassen ....ich möchte auch lernen und üben . ich muss eh bis morgen um 8:00 uur auch lernen.....und vorbreiten für dieses aufgabe,......mindesten bis jetzt .....was senden .............bis die ganze fertigt wird .................

mfg
avin
Experte:  Dr-Ing-Singer hat geantwortet vor 6 Jahren.

Hallo Avin,

 

anbei das Programm. Wenn es Fragen gibt, melden Sie sich bitte.

 

Attachment: 2011-11-08_225625_date.zip

Dr-Ing-Singer und weitere Experten für Programmierung sind bereit, Ihnen zu helfen.