| Programmieraufgaben Hier wird regelmäßig eine neue Programmieraufgabe gestellt, die dann gelöst werden soll und in Zusammenarbeit mit den Moderatoren auch besprochen werden kann. |
Diskussion: Uhrzeitenrechner im Forum Programmieraufgaben, in der Kategorie Code Kitchen; Eingereicht von ICHdasICH: Zitat: Task: gib alle uhrzeiten aus, welche entstehen, wenn man 11h 11m 11s zu einer uhrzeit addiert ...
![]() |
| | #1 (permalink) | ||
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() Likes: 156 | Eingereicht von ICHdasICH: Zitat:
Zitat:
Code: 0h 0m 0s <-- 11h 11m 11s 22h 22m 22s 9h 33m 33s ... 2h 38m 38s 13h 49m 49s <--- Ende - da die nächtste Uhrzeit 0:00:00 wäre
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | ||
| | |
| | #2 (permalink) |
| Senior Member | Ich hab nur mal Teil 1 ins Java gemacht ![]() Code: package de.odigo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Uhr {
public static void main(String[] args) throws Exception {
Calendar cal = Calendar.getInstance();
cal.clear();
cal.setLenient(false);
Integer stunde = null;
Integer minute = null;
Integer sekunde = null;
try {
BufferedReader bin = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("Stunde eingeben: ");
stunde = Integer.valueOf(bin.readLine());
cal.set(Calendar.HOUR_OF_DAY, stunde);
System.out.println("Minute eingeben: ");
minute = Integer.valueOf(bin.readLine());
cal.set(Calendar.MINUTE, minute);
System.out.println("Sekunde eingeben: ");
sekunde = Integer.valueOf(bin.readLine());
cal.set(Calendar.SECOND, sekunde);
SimpleDateFormat sdf = new SimpleDateFormat("HH'h' mm'm' ss's'");
do
{
System.out.println(sdf.format(cal.getTime()));
cal.add(Calendar.HOUR_OF_DAY, 11);
cal.add(Calendar.MINUTE, 11);
cal.add(Calendar.SECOND, 11);
}
while (!(cal.get(Calendar.HOUR_OF_DAY) == stunde
&& cal.get(Calendar.MINUTE) == minute && cal
.get(Calendar.SECOND) == sekunde));
}
catch (NumberFormatException nfe)
{
System.out.println("Eine Uhrzeit besteht immer aus Zahlen!!!");
}
catch (IllegalArgumentException iae)
{
System.out.println("Die Eingaben sind nicht plausibel!!!");
}
}
}
__________________ [HaBo] @ Facebook - Gefällt mir! |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Registriert seit: 24.11.04 ![]() Likes: 0 | So, das ganze mal in 34 Zeilen haeszlichem Prolog. Fuer den != CDW, der mir den Code erklaeren kann, gibts nochmal nen Keks. ;-) Das ganze loest beide Teile der Aufgabe. Wenn auch ARG langsam. Am Ende lassen sich alle benoetigten startzeiten mit -? st(X). finden. [SPOILER]:- dynamic(time/1). :- dynamic(st/1). gentimes :- stime(H,M,S), uhrzeit(H,M,S), gentimes. stime(H,M,S) :- random(0,25,X), random(0,61,Y), random(0,61,Z), ( ( not(st([X,Y,Z])),not(time([X,Y,Z])), assert(st([X,Y,Z])),assert(time([X,Y,Z])), H is X,M is Y,S is Z, write('StartTime: '),write(X),write('h '),write(Y),write('m '),write(Z),write('s'),nl ) ![]() stime(H,M,S) ) ). uhrzeit(H,M,S) :- Z is (S + 11) mod 60, ((Z < 11, MT is 1) Z >= 11,MT is 0)),Y is ((M + 11) + MT) mod 60, ((Y < 11, HT is 1) Y >= 11,HT is 0)),X is ((H + 11) + HT) mod 24, not(time([X,Y,Z])), write('GenerTime: '),write(X),write('h '),write(Y),write('m '),write(Z),write('s'),nl, assert(time([X,Y,Z])), uhrzeit(X,Y,Z).[/SPOILER] Geändert von throjan (16.11.09 um 20:59 Uhr) |
| | |
| | #4 (permalink) |
| Member of Honour ![]() Registriert seit: 11.09.03 ![]() Likes: 2 | HRHRHR DAS ist mal was für Abap ![]() Teil A zumindest. ich hab das jetzt einfach mal runter geschrieben... kA obs 100% korrekt ist Code: REPORT Zuhrzeit. DATA: time TYPE sy-utime. PARAMETERS: eingangsuhrzeit TYPE sy-utime. START-OF-SELECTION. IF eingangsuhrzei IS INITIAL. ADD '11111' TO eingangsuhrzeit. ENDIF. DO. IF eingangsuhrzeit IS INITIAL. EXIT. ENDIF. ADD '11111' TO eingangsuhrzeit. WRITE / eingangsuhrzeit. ENDDO. |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |