Unterrichtsmaterialien für den Informatikunterricht

Casting

Folien

Falls keine PDF-Präsentation zu sehen ist: Direktdownload der PDF-Präsentation

Übungen

Zusätzliche Dateien (Bilder, Klassendiagramme, HTML-Vorlagen) finden Sie in der Materialsammlung. Diese Übungen können Sie als txt-Datei herunterladen.


Übungen: Java - Casting


Java-Casting-1: Implizites Casting, Fehler finden

Das folgende Listing enthält 6 Fehler, die mit fehlerhaftem implizitem Casting zusammenhängen. Welche sind es? (Bitte NICHT mit einer IDE überprüfen!)

		int alter						= 83;
		float schuhgroesse				= 39.5F;
		float kontostand				= 1925.30F;
		float zinssatz					= 3.5F;
		long anzahlGehirnzellenBeiGeburt = 5000000000L;
		int verlustGehirnzellenProJahr	= 500000;
		double atomGewichtSynapsen		= 1.34823e-300;

		int anzahlGehirnzellenHeute1 = anzahlGehirnzellenBeiGeburt - verlustGehirnzellenProJahr * alter;
		long anzahlGehirnzellenHeute2 = anzahlGehirnzellenBeiGeburt - verlustGehirnzellenProJahr * alter;
		double anzahlGehirnzellenHeute3 = anzahlGehirnzellenBeiGeburt - verlustGehirnzellenProJahr * alter;

		double zusammenhangHirnSchuhe1 = schuhgroesse / anzahlGehirnzellenBeiGeburt;
		float zusammenhangHirnSchuhe2 = schuhgroesse / anzahlGehirnzellenBeiGeburt;
		long zusammenhangHirnSchuhe1 = schuhgroesse / anzahlGehirnzellenBeiGeburt;

		double kontostandIn10Jahren1 = 10 * zinssatz*kontostand;
		int kontostandIn10Jahren2 = 10 * zinssatz*kontostand;
		long kontostandIn10Jahren3 = 10 * zinssatz*kontostand;
		
		long gesamtGewicht1 = anzahlGehirnzellenBeiGeburt*atomGewichtSynapsen;
		double gesamtGewicht2 = anzahlGehirnzellenBeiGeburt*atomGewichtSynapsen;
		float gesamtGewicht3 = anzahlGehirnzellenBeiGeburt*atomGewichtSynapsen;



Java-Casting-2: Implizites Casting, Datentyp bestimmen

Ergänzen Sie die Datentypen der Ergebnisvariablen im folgenden Listing, zuerst OHNE IDE direkt hier im Dokument. Überprüfen Sie dann in der IDE, ob Sie korrekt gearbeitet haben.

		int zahl1 = 100;
		int zahl2 = 11;
		float zahl3 = 1.5F;
		long zahl4 = 10000000000L;
		double zahl5 = 4.23224e-100;
		
		// Ergänzen Sie den Datentyp vor den Ergebnisvariablen
		// z.B. int ergebnis17 = ...

		ergebnis1 = zahl1 + zahl2;
		ergebnis2 = zahl1 / zahl2;
		ergebnis3 = zahl1 * zahl3;
		ergebnis4 = zahl4 + zahl2;
		ergebnis5 = zahl4 + zahl3;
		ergebnis6 = zahl4 + zahl5;
		ergebnis7 = zahl4 * zahl5;
		ergebnis8 = zahl4 - zahl4 - zahl3;
		ergebnis9 = zahl4 * zahl3;



Java-Casting-3: Explizites Casting

Casten Sie die Terme explizit in den jeweils als Kommentar genannten Datentyp. Überprüfen Sie die Lauffähigkeit des Programms.

Überprüfen Sie das Ergebnis der ersten Rechnung (ergebnis1). Versuchen Sie herauszubekommen, nach welcher Regel sich der Datenverlust bestimmen lässt, indem Sie den Initialwert von zahl1 variieren.

		int zahl1 = 1000000000;
		int zahl2 = 11;
		float zahl3 = 1.5F;
		long zahl4 = 10000000000L;
		double zahl5 = 4.23224e-100;


		short ergebnis1 = zahl1 + zahl2;
		int ergebnis2 = zahl1 / zahl2;
		int ergebnis3 = zahl1 * zahl3;
		int ergebnis4 = zahl4 + zahl2;
		long ergebnis5 = zahl4 + zahl3;
		float ergebnis6 = zahl4 + zahl5;
		float ergebnis7 = zahl4 * zahl3;
		long ergebnis8 = zahl4 - zahl4 - zahl3;
		int ergebnis9 = zahl4 * zahl3;