Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Schaltjahr/Musterloesung: Unterschied zwischen den Versionen

K (fix alignment and compilation error)
 
Zeile 2: Zeile 2:
  
 
== Lösung ==
 
== Lösung ==
<nowiki>
+
<pre>
 
/**
 
/**
 
  * @author Andy Gunschl (Freitagsrunde)
 
  * @author Andy Gunschl (Freitagsrunde)
  *
+
  *  
 
  */
 
  */
public class Schaltjahr {
+
public class LeapYear {
 
 
 
public static void main(String[] args) {
 
public static void main(String[] args) {
int[] years = {1900,1905,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996};
+
int[] years = { 1900, 1905, 1952, 1956, 1960, 1964, 1968, 1972, 1976,
for(int y : years){
+
1980, 1984, 1988, 1992, 1996 };
System.out.println(y + " = "+isLeapYear(y));
+
for (int y : years) {
 +
System.out.println(y + " = " + isLeapYear(y));
 
}
 
}
  
//Zusatzaufgabe
+
// Zusatzaufgabe
int number = Terminal.askInt("Bitte geben Sie eine Zahl ein: ");
+
System.out.println("Bitte geben Sie eine Zahl ein: ");
System.out.println("Ist "+numer+" ein Schaltjahr: " +isLeapYear(number));
+
int number = Integer.parseInt(System.console().readLine());
 +
System.out.println("Ist " + number + " ein Schaltjahr: " + isLeapYear(number));
 
}
 
}
+
 
 
/**
 
/**
* Ein Jahr ist ein Schaltjahr,
+
* Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4 teilbar ist.
* wenn die Jahreszahl durch 4 teilbar ist.
+
* wenn die Jahreszahl durch 4, aber nicht durch 100 teilbar ist. wenn die
* wenn die Jahreszahl durch 4, aber nicht durch 100 teilbar ist.
+
* Jahreszahl durch 4, durch 100 und durch 400 teilbar ist.
* wenn die Jahreszahl durch 4, durch 100 und durch 400 teilbar ist.  
 
 
*/
 
*/
+
public static boolean isLeapYear(int year) {
public static boolean isLeapYear(int year){
+
if (year % 4 == 0) {
if(year%4==0){
+
if (year % 100 == 0 && year % 400 == 0) {
if(year%100==0 && year%400==0){
 
 
return true;
 
return true;
}
+
} else {
else {
+
if (year % 100 == 0 && year % 400 != 0) {
if(year%100==0 && year%400!=0){
 
 
return false;
 
return false;
 
}
 
}
Zeile 41: Zeile 39:
 
return false;
 
return false;
 
}
 
}
 
 
}
 
}
</nowiki>
+
</pre>
  
 
== Kommentare ==
 
== Kommentare ==

Aktuelle Version vom 4. März 2013, 13:33 Uhr

Hinweis: Die Musterlösung kann von eurer Lösung abweichen, da es immer mehrere Varianten gibt ein Problem zu lösen. Im Zweifelsfall Fragt einen Tutor.

Lösung

/**
 * @author Andy Gunschl (Freitagsrunde)
 * 
 */
public class LeapYear {
	public static void main(String[] args) {
		int[] years = { 1900, 1905, 1952, 1956, 1960, 1964, 1968, 1972, 1976,
				1980, 1984, 1988, 1992, 1996 };
		for (int y : years) {
			System.out.println(y + " = " + isLeapYear(y));
		}

		// Zusatzaufgabe
		System.out.println("Bitte geben Sie eine Zahl ein: ");
		int number = Integer.parseInt(System.console().readLine());
		System.out.println("Ist " + number + " ein Schaltjahr: " + isLeapYear(number));
	}

	/**
	 * Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4 teilbar ist.
	 * wenn die Jahreszahl durch 4, aber nicht durch 100 teilbar ist. wenn die
	 * Jahreszahl durch 4, durch 100 und durch 400 teilbar ist.
	 */
	public static boolean isLeapYear(int year) {
		if (year % 4 == 0) {
			if (year % 100 == 0 && year % 400 == 0) {
				return true;
			} else {
				if (year % 100 == 0 && year % 400 != 0) {
					return false;
				}
			}
			return true;
		}
		return false;
	}
}

Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)