Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java...

23
Einstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut f ¨ ur Angewandte und Numerische Mathematik 1 / 22

Transcript of Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java...

Page 1: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Einstieg in die Informatik mit JavaFormatierte Ausgabe

Gerd Bohlender

Institut fur Angewandte und Numerische Mathematik

1 / 22

Page 2: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Gliederung

1 Uberblick

2 Nachteile von println

3 Formatierte Ausgabe

4 Weitere Formatvarianten

2 / 22

Page 3: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Gliederung

1 Uberblick

2 Nachteile von println

3 Formatierte Ausgabe

4 Weitere Formatvarianten

3 / 22

Page 4: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Uberblick

In diesem Kapitel wird beschrieben, wie die Ausgabe vonZahlen ubersichtlich gestaltet werden kann.

Bisherige AusgabeAusgabe mit println in freiem Format.

Alternative AusgabeFormatierte Ausgabe mit printf.

4 / 22

Page 5: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Gliederung

1 Uberblick

2 Nachteile von println

3 Formatierte Ausgabe

4 Weitere Formatvarianten

5 / 22

Page 6: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Eigenschaften von println

Bei der Ausgabe mit print bzw. println werden nur so vieleStellen ausgegeben, wie fur die Darstellung des Werts notigsind.

Vorteil: sparsamer PlatzverbrauchNachteil: kann sehr unubersichtlich werden

Gutes Beispiel: Funktionswert ausgeben

x = 1;System . out . p r i n t l n ( ” s in ( ” + x + ” ) = ” +

Math . s in ( x ) ) ;

Ausgabe:

sin(1.0) = 0.8414709848078965

6 / 22

Page 7: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Nachteile von println

Schlechtes Beispiel: Funktionstabelle ausgeben

for ( double x=−0.2; x<1; x +=0.1)System . out . p r i n t l n ( x + ” \ t ” + Math . s in ( x ) +

” \ t ” + Math . cos ( x ) ) ;

Ausgabe:

-0.2 -0.19866933079506122 0.9800665778412416-0.1 -0.09983341664682815 0.99500416527802580.0 0.0 1.00.1 0.09983341664682815 0.99500416527802580.2 0.19866933079506122 0.98006657784124160.30000000000000004 0.2955202066613396 0.9553364891256060.4 0.3894183423086505 0.92106099400288510.5 0.479425538604203 0.87758256189037280.6 0.5646424733950354 0.82533561490967830.7 0.644217687237691 0.76484218728448850.7999999999999999 0.7173560908995227 0.69670670934716550.8999999999999999 0.7833269096274833 0.62160996827066450.9999999999999999 0.8414709848078964 0.5403023058681398

7 / 22

Page 8: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Gliederung

1 Uberblick

2 Nachteile von println

3 Formatierte Ausgabe

4 Weitere Formatvarianten

8 / 22

Page 9: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Formatierte Ausgabe

Mit der Methode System.out.printf() konnen Ergebnisseformatiert ausgegeben werden. Gleichbedeutend istSystem.out.format().

SyntaxSystem.out.printf ( Formatstring, Ausdrucke )

• Die Ausdrucke steht fur eine durch Komma getrennte Listevon Ausdrucken beliebigen Typs, die ausgegeben werdensollen – z.B. Variablen.

• Der Formatstring enthalt Formatangaben der Form %d, %f,%e, %s, usw.

• Die Formatangaben werden in der angegebenenReihenfolge zur Formatierung der Ausdrucke verwendet.

9 / 22

Page 10: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Formatierte Ausgabe

Bedeutung der Formatangaben:%d ganze Dezimalzahl%e Gleitkommazahl im Gleitkommaformat (mit Exponent)%f Gleitkommazahl im Festkommaformat (ohne Exponent)%s String

Regeln fur die formatierte Ausgabe:• Der restliche Formatstring wird als Text ausgegeben.• Achtung: die auszugebenden Werte sind durch Komma

getrennt, nicht durch +.• Achtung: das Zeilenende (entsprechend println) muss

durch \n im Formatstring angegeben werden.• Falls zu wenige Formatangaben vorliegen, werden nur die

ersten Ausdrucke ausgegeben.• Falls zu viele oder falsche Formatangaben vorliegen, wird

ein Fehler gemeldet.10 / 22

Page 11: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Formatierte Ausgabe – double im Gleitkommaformat

Beispiel: Funktionstabelle ausgeben

for ( double x=−0.2; x<1; x +=0.1)System . out . p r i n t f ( ”%e %e %e\n ” ,

x , Math . s in ( x ) , Math . cos ( x ) ) ;

Ausgabe:

-2.000000e-01 -1.986693e-01 9.800666e-01-1.000000e-01 -9.983342e-02 9.950042e-010.000000e+00 0.000000e+00 1.000000e+001.000000e-01 9.983342e-02 9.950042e-012.000000e-01 1.986693e-01 9.800666e-013.000000e-01 2.955202e-01 9.553365e-014.000000e-01 3.894183e-01 9.210610e-015.000000e-01 4.794255e-01 8.775826e-016.000000e-01 5.646425e-01 8.253356e-017.000000e-01 6.442177e-01 7.648422e-018.000000e-01 7.173561e-01 6.967067e-019.000000e-01 7.833269e-01 6.216100e-011.000000e+00 8.414710e-01 5.403023e-01

11 / 22

Page 12: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Formatierte Ausgabe – double im Festkommaformat

Beispiel: Funktionstabelle ausgeben

for ( double x=−0.2; x<1; x +=0.1)System . out . p r i n t f ( ”%f %f %f \n ” ,

x , Math . s in ( x ) , Math . cos ( x ) ) ;

Ausgabe:

-0.200000 -0.198669 0.980067-0.100000 -0.099833 0.9950040.000000 0.000000 1.0000000.100000 0.099833 0.9950040.200000 0.198669 0.9800670.300000 0.295520 0.9553360.400000 0.389418 0.9210610.500000 0.479426 0.8775830.600000 0.564642 0.8253360.700000 0.644218 0.7648420.800000 0.717356 0.6967070.900000 0.783327 0.6216101.000000 0.841471 0.540302

12 / 22

Page 13: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Formatierte Ausgabe – Beispiel String

Beispiel

System . out . p r i n t f ( ” Dies %seine%s\n ” ,” i s t ” , ” Ze i l e ! ” ) ;

Ausgabe:

Dies ist eine Zeile!

Beachte:• Mischung von Formatstring und den nachfolgenden

auszugebenden Strings,• Ausgabe der Leerzeichen in Formatstring oder auszugebendem

String,• kein Leerzeichen zwischen "%s" und "eine",• explizite Ausgabe des Zeilenendes.

13 / 22

Page 14: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Gliederung

1 Uberblick

2 Nachteile von println

3 Formatierte Ausgabe

4 Weitere Formatvarianten

14 / 22

Page 15: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Weitere Formatvarianten: Angabe der Zeichenzahl

• Zahlangabe zwischen % und dem Buchstaben: Anzahl derauszugebenden Zeichen.

• Falls die Zeichenzahl nicht ausreicht, wird sie erhoht.

Beispiele unterschiedliche Breite

System . out . p r i n t f ( ”%4d\n ” , 123) ;System . out . p r i n t f ( ”%5d\n ” , 123) ;System . out . p r i n t f ( ”%2d\n ” , 123) ;

Ausgabe:

123123

123

15 / 22

Page 16: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Weitere Formatvarianten – Beispiel double

Beispiele unterschiedliche Breite

System . out . p r i n t f ( ”%10e\n ” , 123.456) ;System . out . p r i n t f ( ”%15e\n ” , 123.456) ;System . out . p r i n t f ( ”%10f \n ” , 123.456) ;System . out . p r i n t f ( ”%15f \n ” , 123.456) ;

Ausgabe:

1.234560e+021.234560e+02

123.456000123.456000

16 / 22

Page 17: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Weitere Formatvarianten: Darstellung des Vorzeichens

• Leerzeichen nach %: positives Vorzeichen wird alsLeerzeichen ausgegeben.

• Pluszeichen nach %: positives Vorzeichen wird alsPluszeichen ausgegeben.

Unterschiedliche Vorzeichen

System . out . p r i n t f ( ”%3d\n ” , 123) ;System . out . p r i n t f ( ”% 3d\n ” , 123) ;System . out . p r i n t f ( ”% 3d\n ” , −123);System . out . p r i n t f ( ”%+3d\n ” , 123) ;

Ausgabe:

123123

-123+123

17 / 22

Page 18: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Darstellung des Vorzeichens – double

Unterschiedliche Vorzeichen

System . out . p r i n t f ( ”% 10e\n ” , 123.456) ;System . out . p r i n t f ( ”% 10e\n ” , −123.456);System . out . p r i n t f ( ”%+10e\n ” , 123.456) ;System . out . p r i n t f ( ”% 10 f \n ” , 123.456) ;System . out . p r i n t f ( ”% 10 f \n ” , −123.456);System . out . p r i n t f ( ”%+10f \n ” , 123.456) ;

Ausgabe:

1.234560e+02-1.234560e+02+1.234560e+02123.456000

-123.456000+123.456000

18 / 22

Page 19: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Weitere Formatvarianten: Nachkommastellen beidouble

• Zwei Zahlangaben n.m nach %:• n = Gesamtzahl der auszugebenden Zeichen,• m = Zahl der Nachkommastellen.

Unterschiedliche Nachkommastellen

System . out . p r i n t f ( ” %10.3e\n ” , 123.456) ;System . out . p r i n t f ( ” %10.4e\n ” , 123.456) ;System . out . p r i n t f ( ” %10.2e\n ” , 123.456) ;

Ausgabe:

1.235e+021.2346e+02

1.23e+02

19 / 22

Page 20: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Weitere Formatvarianten: Nachkommastellen beidouble

Unterschiedliche Nachkommastellen

System . out . p r i n t f ( ” %10.3 f \n ” , 123.456) ;System . out . p r i n t f ( ” %10.4 f \n ” , 123.456) ;System . out . p r i n t f ( ” %10.2 f \n ” , 123.456) ;System . out . p r i n t f ( ” %10.1 f \n ” , 123.456) ;System . out . p r i n t f ( ” %8.3 f \n ” , 123.456) ;

Ausgabe:

123.456123.4560123.46123.5

123.456

20 / 22

Page 21: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Beispiel: Festkommaformat mit Vorzeichen

Beispiel Funktionstabelle ausgeben

for ( double x=−0.2; x<1; x +=0.1)System . out . p r i n t f ( ”% 10.7 f % 10.7 f % 10.7 f \n ” ,

x , Math . s in ( x ) , Math . cos ( x ) ) ;

Ausgabe:

-0.2000000 -0.1986693 0.9800666-0.1000000 -0.0998334 0.99500420.0000000 0.0000000 1.00000000.1000000 0.0998334 0.99500420.2000000 0.1986693 0.98006660.3000000 0.2955202 0.95533650.4000000 0.3894183 0.92106100.5000000 0.4794255 0.87758260.6000000 0.5646425 0.82533560.7000000 0.6442177 0.76484220.8000000 0.7173561 0.69670670.9000000 0.7833269 0.62161001.0000000 0.8414710 0.5403023

21 / 22

Page 22: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Beispiel: Gleitkommaformat mit Vorzeichen

Beispiel Funktionstabelle ausgeben

for ( double x=−0.2; x<1; x +=0.1)System . out . p r i n t f ( ”% 14.7e % 14.7e % 14.7e\n ” ,

x , Math . s in ( x ) , Math . cos ( x ) ) ;

Ausgabe:

-2.0000000e-01 -1.9866933e-01 9.8006658e-01-1.0000000e-01 -9.9833417e-02 9.9500417e-010.0000000e+00 0.0000000e+00 1.0000000e+001.0000000e-01 9.9833417e-02 9.9500417e-012.0000000e-01 1.9866933e-01 9.8006658e-013.0000000e-01 2.9552021e-01 9.5533649e-014.0000000e-01 3.8941834e-01 9.2106099e-015.0000000e-01 4.7942554e-01 8.7758256e-016.0000000e-01 5.6464247e-01 8.2533561e-017.0000000e-01 6.4421769e-01 7.6484219e-018.0000000e-01 7.1735609e-01 6.9670671e-019.0000000e-01 7.8332691e-01 6.2160997e-011.0000000e+00 8.4147098e-01 5.4030231e-01

22 / 22

Page 23: Einstieg in die Informatik mit Java - math.kit. · PDF fileEinstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut fur Angewandte und Numerische Mathematik¨

Weitere Informationen

Weitere Informationen zu printf und den Formatangabenfinden Sie in der Java-Online-Dokumentation unter• http://www.j2ee.me/javase/6/docs/api/java/io/PrintStream.html

• http://www.j2ee.me/javase/6/docs/api/java/util/Formatter.html#syntax

23 / 22