• Keine Ergebnisse gefunden

Einführung in die Informatik –Algorithmen und Datenstrukturen

N/A
N/A
Protected

Academic year: 2022

Aktie "Einführung in die Informatik –Algorithmen und Datenstrukturen"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einführung in die Informatik – Algorithmen und Datenstrukturen

Thema 12 – Datenverarbeitung

Aufzeichnungen und Veröffentlichungen der Vorlesung sind aus urheberrechtlichen Gründen unzulässig!

(2)

Daten - Definitionen

Text?

Foto?

Zeichnung?

Musik?

Video?

Programm?

Daten, urspr. svw. geschichtl. Zeitangaben; heute allg. Bez. für die Zahlenwerte der Merkmalsgrößen von physikal.-techn. Objekten (Kenndaten), Ereignissen,

Prozessen und Abläufen (z. B. Betriebsdaten bei techn. Vorgängen und Geräten, Bahndaten der Bewegungen von Raumflugkörpern). In der Informatik sind D. durch Zeichenfolgen (digitale D.) oder kontinuierl. Funktionen (analoge D.) dargestellte Informationen oder Sachverhalte, die maschinell bearbeitet werden können.

(c) Meyers Lexikonverlag.

(3)

Ein- und Ausgabe in Java

Die Ein – und Ausgabekomponenten werden in Java im Package java.io zusammengefasst.

Mögliche Eingabequellen für Daten:

• Tastatur

• lokale Dateien

• Internet

Zum Einlesen von Daten stehen die Methoden der abstrakten Klasse InputStream und zur Ausgabe von Daten die Methoden der abstrakten Klasse OutputStream zur Verfügung.

(4)

Grundkonzept - Streams

Unter einem Stream versteht man eine Verbindung zwischen einem Programm und einer Datenquelle oder einem Datenziel. Die Verbindung verläuft dabei stets in einer Richtung.

Für die Eingabe muss ein Programm zunächst einen mit der Datenquelle verbundenen Stream öffnen und die ankommenden Informationen sequentiell lesen.

Für die Ausgabe muss das Programm erst einen Stream zu einem Datenziel öffnen und dann die Informationen sequentiell in den Stream schreiben.

 Streams können als abstrakte unidirektionale Verbindungen eines Programms mit der „Außenwelt“ betrachtet werden

(5)

Streams in Java

In Java werden entsprechend der transportierten Daten zwei Klassen von Streams unterschieden:

Character-Streams – Zeichenströme

transportieren die Daten in Form von 16-Bit-Einheiten (Datentyp byte)

Die Basisfunktionalität wird durch die abstrakten Klassen Reader und Writer bereitgestellt.

Byte-Streams – Byteströme

transportieren die Daten in Form von 8-Bit-Einheiten (Datentyp char bzw. Unicode- Zeichen)

Die Basisfunktionalität wird durch die abstrakten Klassen InputStream und OutputStream bereitgestellt.

(6)

Eingabedatenverarbeitung

Intern werden von Java die Daten im Unicode-Format verarbeitet. Daten liegen häufig im ASCII-Code vor. Daher ist eine Konvertierung notwendig.

Pro- gramm

Stream:Bytes Reader:char DataInput:Daten

Bytes

Internet- Daten InputStraem

(7)

Unicode

Ziel: für jedes sinntragende Schriftzeichen oder Textelement aller bekannten Schriftkulturen und Zeichensysteme soll ein digitaler Code festgelegt werden.

Zeichen: Einzelne Codes von Unicode-Zeichen – „Codepoints“ genannt – werden hexadezimal mit vorangestelltem U+ dargestellt, z. B.

U+00DF für das ß.

Struktur: Unicode ist untergliedert in 17 Codebereiche zu jeweils 16 Bit bzw. 65.536 Zeichen, sogenannte Ebenen (engl. planes). Die

wichtigste Ebene ist die erste Ebene, die Basic Multilingual Plane (BMP, dt. Grundlegender mehrsprachiger Codebereich), auch Plane 0 genannt.

(8)

Unicode - Basic Multilingual Plane

(9)

Streams in Java - Konsolenausgabe

In Java stehen für die Streams vordefinierte Klassen zur Verfügung:

System.out.println()

In der abstrakten Klasse System enthält ein ist eine Klassenvariable mit dem Namen out vom Typ PrintStream definiert. In der Klasse PrintStream sind u.a. die überladenen Methoden println(), print() und printf() definiert.

Darstellung von Sonderzeichen:

Zeichen Bedeutung Zeichen Bedeutung

\‘ Hochkomma \“ Anführungszeichen

\\ Backslash \t Tabulator

\b Zeichen löschen \n Neue Zeile

(10)

Dateien und Verzeichnisse – Klasse File

Ein Ziel der Datenverarbeitung besteht darin, Daten permanent auf Datenträgern zu speichern und gespeicherte Daten zu lesen.

Im Paket java.io befindet sich die Klasse File, deren Objekte eine Datei oder ein Verzeichnis repräsentieren. Der Objektname entspricht dem logischen Dateinamen.

public boolean canRead()

gibt true zurück, wenn das Fileobjekt für das Programm lesbar ist

public boolean canWrite()

gibt true zurück, wenn das Fileobjekt für das Programm schreibbar ist

public boolean createNewFile()

legt eine neue Datei mit dem Namen des File-Objektes an

public boolean delete()

löscht die zum File-Objekt gehörende Datei

(11)

Methoden der Klasse File

public boolean exists()

gibt true zurück, wenn das Fileobjekt existiert

public String getName()

gibt den Namen des Fileobjektes zurück

public boolean isDirectory()

gibt true zurück, wenn das File-Objekt ein Verzeichnis ist

public boolean isFile()

gibt true zurück, wenn das File-Objekt eine Datei ist

public long length()

gibt die Größe der Datei in Byte zurück

public boolean mkdir()

legt ein neues Verzeichnis mit dem Namen des File-Objektes an

(12)

Dateneingabe unter Verwendung der Scanner-Klasse

Zur Eingabe von Daten über die Tastatur und aus Dateien kann ein Objekt der Klasse Scanner verwendet werden. Die Klasse befindet sich im Paket java.io.

public String next()

Liefert das nächste abgeschlossene Token der Eingabe als String

public int nextInt()

public float nextFloat()

public double nextDouble()

Liefert das nächste abgeschlossene Token der Eingabe als elementaren Datentyp

public String nextLine() Liefert die nächste Eingabe als String.

public boolean hasNext()

Liefert true, wenn noch ein weiteres Taken bereitsteht, bzw. noch nicht das Ende der Datei erreicht ist.

(13)

Eingabe über Character-Streams

public abstract int read()

gibt das nächste Zeichen aus dem Reader-Objekt als int-Wert zurück.

public int read(char[] c)

füllt das von c referenzierte Feld mit Zeichen (maximal c.length vile) aus dem Reader- Objekt und liefert die Anzahl der gelesenen Zeichen zurück

public int read(char[] c, int off, int n)

füllt das von c referenzierte Feld ab dem Index off mit den nächsten n Zeichen aus dem Reader-Objekt und liefert die Anzahl der tatsächlich gelesenen Zeichen zurück

public void close() schließt den Strom.

Die abstrakte Klasse Reader stellt für die Eingabe über Character-Streams u.a. folgende Methoden bereit

read liest ein Zeichen gibt jedoch einen Integer-Wert zurück

(14)

Ausgabe über Character-Streams

public abstract void write(int c) schreibt das Zeichen c in das Writer-Objekt

public void write(char[] c)

schreibt die im von c ref. Feld gespeicherten Zeichen in das Writer-Objekt

public void write(char[] c, int off, int n)

schreibt die im von c ref. Feld gespeicherten n Bytes ab Index off in das Writer-Objekt

public void write(String s)

schreibt die im im String s gespeicherten Zeichen in das Writer-Objekt

public void write(String s, int off, int n)

schreibt die im String s gespeicherten n Zeichen ab Index off in das Writer-Objekt

public void close() schließt den Strom

public void flush()

leert einen ev. Puffer des Writer-Objektes durch die sofortige Abarbeitung aller noch anstehender Zeichen

(15)

Literatur

/BALZERT96/ Balzert, Helmut; Lehrbuch der Softwaretechnik; Spektrum Verlag, 1996 /BARNES09/ David J. Barnes, Michael Kölling

Java lernen mit BlueJ

Pearson Studium, 2009, ISBN-13: 978-3-86894-001-5 /HEROLD10/ Herold, Helmut; Lurz, Bruno; Wohlrab, Jürgen

Grundlagen der Informatik, Pearson Studium, 2007 ISBN 987-3-8273-7305-2

/LOUIS14/ Lois, Dirk; Müller, Peter

Java – eine Einführung in die Programmierung, Carl Hanser Verlag München, 2014

ISBN 987-3-8273-7305-2

/RATZ14/ Ratz, Dietmar; Scheffler, Jens; Seese, Detlef; Wiesenberger, Jan; Grundkurs Programmieren in JAVA (7. Auflage); Carl-Hanser-Verlag, München, Wien;

2014

ISBN 978-3-446-44073-9

Referenzen

ÄHNLICHE DOKUMENTE

Verbessern Sie die Funktion sortiere() aus Aufgabe 1, indem Sie jetzt in jedem Schritt gleichzeitig ein gr¨ oßtes und ein kleinstes Element bestimmen und dann im zweiten Schritt

Ein Algorithmus ist eine endliche Folge von eindeutigen Anweisungen, mit- tels derer in endlich vielen Schritten aus vorgegebenen spezifizierten Einga- begr¨ oßen

Regular train tickets have time stamping printed up to date, but a platform ticket is printed up to minutes. At that time, the ticket collectors suddenly started purchasing

Erg¨ anzen sie dessen Ausgabe durch die zus¨ atzliche Ausgabe einer War- nung, wenn nach dem Prompt Bitte einen Wochentag eingeben: mehr als ein Wort eingegeben wurde...

(Ein Stack oder Kellerspeicher ist ein linearer Speicher mit Zugriff nach dem FILO — first in last out — Prinzip.) Die Operationen sollen heißen: new, push, pop,

Vergessen Sie bitte nicht, daß in einem sicher- heitskritischen Raum nur berechtigte Personen Eintritt erlangen d¨ urfen und daß die Menge der zutrittsberechtigten Personen

they told the dispatchers that an alarm had been given to a fire station, when in reality the fire station did not receive the alarm, and kept playing cards and wondering why there

• inOrder: ¨ Ahnlich; hier wird ein Baum-Knotenzeiger jedoch h¨ ochstens zweimal auf den Stack gepush’t: Beim ersten pop’en wird sowohl der Baum-Knotenzeiger als auch sein linker