9 Streams. 9.1 Einführung und Architektur
|
|
- Bernd Kappel
- vor 6 Jahren
- Abrufe
Transkript
1 9.1 9 Streams 9.1 Einführung und Architektur Die C++ Standardbibliothek stellt eine Klassehierarchie zum Umgang mit Streams zur Verfügung, welche im wesentlichen folgende Gebiete abdeckt: Umgang mit Inhalten von Dateien. Verwendung von Strings als Stream-Quelle und Ziel (ähnlich wie beispielsweise ByteArrayInputStream). Formatierung von Ein- und Ausgabe. Klassenhierarchie der Stream-Bibliothek (auszugsweise): cin istream ios ostream cout cerr clog Technisch gesehen ist die hier abgebildete Hierarchie eine <char>-instanz einer generischen Stream-Hierarchie. Die ursprüngliche Hierarchie aus Templates (siehe auch: Stamm, 8.5) kann mit beliebigen Typen umgehen, während die hier auf 8Bit- Zeichen beschränkt ist. ifstream ofstream istringstream ostringstream iostream Dies gilt übrigens auch für die string- Klasse: Sie ist eine Template-Instanz von basic_string (basic_string<char>). Die Stream-Templates beginnen auch alle mit basic_ fstream stringstream Im weiteren gibt es noch die Buffer-Klassen streambuf, filebuf und stringbuf. Die Basisklasse ios repräsentiert die unterste Schicht des Ein- und Ausgabesystems und wird üblicherweise nicht direkt verwendet. Sie nimmt folgende Aufgaben wahr: Formatierungen, Locales und Datenbufferung. istringstream und ostream enthalten Operationen für Ein- und Ausgaben, die in der Klasse iostream zu einem bequemen Paket zusammengeschnürt sind. Für den Datentransfer mit Dateien und mit Strings existiert ebenfalls eine Hierarchie von Klassen, die in fstream münden. Aus Programmierersicht sind vor allem folgende Klassen interessant: iostream fstream stringstream Funktionen zur Arbeit mit geschlossenen Dateien, wie sie die Java-Klasse File anbietet (Dateien umbenennen oder löschen), sind in der C-Bibliothek CSTDLIB zu finden (konsultieren Sie zu diesem Zweck die MSDN-Library).
2 Ausgabe formatieren Die Operatoren << und >> haben wir bisher für unformatierte Ein- und Ausgabe im Zusammenhang mit den Standard-Streams cin und cout verwendet. Häufig möchte man die Ausgabe genauer zu spezifizieren, was mit Formatanweisungen erreicht wird. Für parameterlose Format-Manipulatoren reicht es, iostream einzubinden. Wollen Sie die erweiterten Manipulatoren verwenden, müssen Sie die Library iomanip zusätzlich einfügen. Basiskonversion (Ganze Zahlen) Die Manipulatoren dec, oct und hex dienen dazu, eine ganze Zahl in der entsprechenden Basis darzustellen. Eine solch Einstellung ist im Programm dauerhaft und ändert sich erst, wenn man ein neues Format angegibt. int i = 2047; cout << hex << i; // 7FF cout << oct << i; // 3777 cout << dec << i; // wieder 2047 Gleitkommazahlen Für die Ausgabe von Zahlen der Typen float, double usw. sind zwei Parameter von Belang: Stil (Exponentialdarstellung oder Festkomma) Anzahl der dargestellten Nachkommastellen Die Wahl des Anzeigestils wird mit folgenden Manipulatoren bewerkstelligt: float f = ; cout << scientific << f; cout << fixed << f; Die Anzahl der angezeigten Stellen kann ebenfalls eingestellt werden. Zum Beispiel: cout << setprecision(5) << scientific << f; // Ausgabe hier: 3.142e+00 Auch diese Einstellungen bleiben erhalten und müssen nicht für jede Ausgabe neu eingestellt werden. Die Exponentenschreibweise (gross, klein) wird durch die Manipulatoren uppercase und nouppercase gesteuert. Mit ihnen kann auch die Ausgabe der Ziffern A..F bei der hex-ausgabe ganzer Zahlen festgelegt werden. Mit showpos zeigen Sie positive Vorzeichen an (noshowpos macht dies rückgängig). setprecision(n) zeigt unterschiedliche Wirkung, je nachdem, ob die Zahl in Normal- oder Exponentialschreibweise ausgegeben wird: fixed: n = totale Anzahl Stellen scientific: n = Anzahl Nachkommastellen Boolesche Werte Werte vom Typ bool werden normalerweise numerisch (z.b. 0 und 1) ausgegeben. Ist eine symbolische Ausgabe (also true und false) erwünscht, so ist dies mit einem Manipulator zu spezifizieren: cout << boolalpha << b; cout << noboolalpha << b; // abschalten Feldbreite und -ausrichtung Wirklich Sinn bekommen die Formatierwerkzeuge erst durch die Möglichkeit, Ausgaben in einem Feld beliebiger Grösse auszurichten. Dazu sind drei Angaben möglich: Feldbreite: setw(int w) Ausrichtung: left, right oder internal Füllzeichen: setfill(char c) cout << setw(15) << setfill( _ ) << right << i; Defaults Text: linksbündig; bool: numerisch, linksbündig; Zahlen: linksbündig, 6 Stellen, fixed, nouppercase, dec
3 String-Streams Entsprechend den beiden Java-Klassen ByteArrayInputStream und ByteArrayOutputStream bietet die C++ Standardbibliothek Streams an, die mit Strings verbunden werden können (zur Erinnerung: Die Klasse string definiert in C++ änderbare Objekte): Einzubindender Header: <sstream> Eingabe Anstatt eine Eingabe per Tastatur vorzunehmen, erzeugen Sie einen String-Stream und verbinden ihn mit einem char-array (leider ist es nicht möglich, ein C++ String-Objekt zu verwenden). Ein Beispiel: #include <iostream> #include <iomanip> #include <sstream> using namespace std; const int ZSIZE = 256; // Grösse des Lesebuffers const int dread = 6; // Portionengrösse beim Einlesen (5 Zeichen + Terminierung) char quelle[] = "Das ist ein Beispiel"; char ziel[zsize]; int anzahl; istringstream in(quelle,0); // Stream mit Quelle verbinden, null-terminierte Quelle do{ in.get(ziel,dread, \x00 ); // aus Quelle einlesen: siehe Kommentar anzahl = in.gcount(); // Anzahl der gelesenen Zeichen ermitteln cout << setw(6) << anzahl << ; cout << ziel << endl; while (anzahl!=0); Kommentar: Die Methode get() benötigt drei Parameter: (1) Ziel-Array, (2) maximale Portionengrösse+1, (3) Trennzeichen Im Prinzip hätte auch der Eingabe-Operator >> verwendet werden können, er hat aber den manchmal unerwünschten Nachteil, dass er das Leerzeichen als Trennzeichen auffasst damit den Lesevorgang beendet. Von get() existiert auch eine parameterlose Überladung, sie liest genau ein Zeichen. Ausgabe Mit der Klasse ostrstream werden Daten anstatt auf den Bildschirm in einen String ausgegeben. Es können alle in Kapitel 9.2 beschriebenen Formatierungswerkzeuge benutzt werden. Beispiel: #include <iostream> #include <iomanip> #include <stringstream> #include <string> using namespace std; const float f = ; ostringstream out; out << "Eine Zahl: "; out << fixed; out << setprecision(3) << f << endl; out << "In Exponentialschreibweise: "; out << scientific;
4 9.4 out << setprecision(2) << f; cout << string(out.str(), out.pcount()); cout << endl << endl; Wie bei der Java-Klasse ByteArrayOutputStream wird bei der Erzeugung eines ostringstream-objekts kein Ziel angegeben. Es wird vom Objekt intern abgelegt und kann mit der Methode str() abgerufen werden. Der mit str() erhaltene char-array ist nicht terminiert, so dass er nicht wie ein gewöhnlicher C-String benutzt werden kann: Man muss zu dessen Umwandlung in ein string-objekt entweder die gewünschte Zeichenmenge angeben (wie im Beispiel) oder vorher die Terminierung explizit schreiben (out << \x00 ). 9.4 File-Streams Von weit grösserem Interesse sind Streams, die mit einer externen Datei verbunden werden. Dazu werden drei Klassen angeboten (Header: <fstream>): ifstream : von einer Datei lesen ofstream : in eine Datei schreiben fstream : beides Dateien öffnen/erzeugen/schliessen Als erstes müssen die benötigten Streams angelegt werden (Mit Objekten aus den Klassen ifstream und ofstream werden üblicherweise die gewünschten Dateien direkt beim Konstruktor-Aufruf verbunden): fstream datei; Eine Datei wird mit den Methoden open() bzw. close() geöffnet bzw. geschlossen. Beim Öffnen muss der Dateiname in Form eines C-Strings angegeben werden. Des weiteren ist ein Zugriffsmodus zu spezifizieren (Im Gegensatz zu Java existiert keine File-Klasse, welche Dateinamen repräsentieren): datei.open("a:/beispiel.txt", ios::out); Wird eine Datei zum Schreiben geöffnet, wird sie geleert, sofern man nicht den Append-Modus spezifiziert hat (ios::app). Der Erfolg der Verbindungsherstellung kann einfach geprüft werden (auch mit fail() möglich): if (!datei) { // Stream konnte nicht ordnungsgemäss geöffnet werden Modi für das Öffnen von Dateien: Modus ios::app ios::ate ios::in ios::out ios::binary ios::trunc ios::nocreate ios::noreplace Kurzbeschreibung Daten am Ende anhängen (zusammen mit ios::out. Datei wird nicht geleert) Zeiger nach dem Öffnen auf das Dateiende stellen Daten lesen Daten schreiben (Datei wird automatisch vor dem ersten Schreiben geleert) Binärmodus Beim Öffnen Daten löschen Keine Datei erzeugen (falls noch keine existiert) Schreiben verhindern Es können mehrere Flags auf einmal gesetzt werden (durch bitweise Oder-Verknüpfung: Hinter den Modus- Konstanten verbergen sich Zahlenwerte mit genau einem gesetzten Bit).
5 9.5 Einige Kommentare zu den Modi Bidirektionaler Datenverkehr: Öffnen Sie eine Datei zu diesem Zweck mit ios::in ios::out. Binäre Dateien: Normalerweise wird eine Datei im Textmodus geöffnet. Dies bewirkt, dass Zeilentrennzeichen in plattformabhängiger Weise geschrieben werden (z.b. Windows: als \x0d \x0a). Benutzen Sie den Binärmodus, wenn Sie dies verhindern möchten. ios::trunc: Dateiinhalt wird gelöscht, wenn folgende Bedingungen erfüllt sind: Datei existiert bereits, Modus ios::out ausgewählt, weder ios::app noch ios::ate sind ausgewählt. ios::nocreate: Existiert die Datei nicht, wird der Stream in den Fehlerzustand versetzt. Einfaches Lesen und Schreiben Wie aus dem vereinfachten Klassendiagramm (Kapitel 9.1) ersichtlich wird, ist fstream unter anderem von iostream und somit von istream abgeleitet, erbt also deren Eigenschaften. Mit anderen Worten: Für die Einund Ausgabe verwenden Sie genau die gleichen Methoden, wie für das Streaming mit den Standard-Streams cin und cout sowie mit den String-Streams. Sie können also auch formatierte Ausgabe benutzen. Verwenden Sie get() oder getline() anstelle des Operators >>, wenn Sie Leerzeichen nicht als Trennzeichen interpretiert haben möchten! Beispiele: // Einfache Ein- und Ausgabe char s[bsize]; char t[bsize]; fstream datei; datei.open("f:/test/file0.txt", ios::out); if (!datei) cout << "Fehler beim Öffnen" << endl; else{ cout << "Datei geöffnet" << endl; cin.getline(s,bsize); // Leerzeichen mit einlesen datei << s; datei.close(); datei.open("f:/test/file0.txt", ios::in); datei.getline(t,bsize); // Leerzeichen mit einlesen cout << s << endl; cout << t << endl; datei.close(); // Datei kopieren char ch; ifstream f1("datei.in"); ofstream f2("datei.out"); while (f2 && f1.get(ch)){ // falls Stream f2 OK und Lesen von f1 OK... f2.put(ch);
6 Random Access Files Die Standard-Bibliothek bietet nicht wie in Java eine gesonderte Klasse (RandomAccessFle) für den nichtsequentiellen Dateizugriff an, sondern erlaubt entsprechende Operationen auf gewöhnlichen Streams. Folgende Methoden werden benutzt, um den Dateizeiger zu bearbeiten, den Zustand des Streams abzufragen oder zurückzusetzen: int eof() // gibt 0 (false) zurück, falls das Ende der Datei noch nicht erreicht wurde. int fail() // gibt einen Wert ungleich 0 zurück, falls eine Operation fehlgeschlagen ist. void clear() // Stream zurücksetzen, setzt Stati eof und fail zurück. pos_type tellg() // Dateizeiger abfragen. void seekg(pos_type) // Dateizeiger setzen (absolut) void seekg(pos_type pos, seek_dir mode) // Dateizeiger setzen (verschiedene Modi möglich) Verhalten am Dateiende Eine Leseoperation, die nicht zum Ende der Datei führt, hinterlässt normalerweise folgenden Zustand: eof() == false fail() == false Erreicht der Dateizeiger während einer Leseoperation das Dateiende, sieht der Status des Streams so aus: eof() == true fail() == false Der Stream behält den eof-status auch bei, wenn der Dateizeiger anschliessend wieder zurückversetzt wird. Versucht man, aus einer Datei zu lesen, deren Ende vorher einmal erreicht wurde (also eof==true), wird die Leseoperation mit einem Fehler abgebrochen und der Stream auf folgenden Status gesetzt: eof() == true fail() == true Dieser Status kann nur mit der Methode clear() wieder verlassen werden. Relative Positionierung des Dateizeigers ios::beg (pos wird ab Dateibeginn (0) gemessen. Entspricht der einfacheren Signatur von seekg()) 0 EOF seekg(17,ios::beg) 0 EOF ios::cur (pos wird zur aktuellen Dateizeiger- Position addiert (relative Positionierung)) ios::end (pos wird zum Positionswert des EOF- Zeichens addiert. Macht nur Sinn für Werte 0) seekg(3,ios::cur) 0 EOF seekg(-5,ios::end) Lesen und Schreiben von primitiven Datentypen als Binärdaten Die Stream-Bibliothek bietet keine Schnittstellen zum Verarbeiten primitiver Datentypen an. Der einfachste Weg, um binäre Daten in einen Stream zu übertragen, besteht darin, Zeiger auf beliebige primitive Variablen mit reinterpret_cast in char* umzuwandeln und die Daten als Folge von Zeichen an den Stream zu übertragen (vergessen Sie nicht, den Stream im Binärmodus zu betreiben!). double d = 34.5e-12; char* c = reinterpret_cast<char*>(&d); for (int i=0; i<sizeof(double); ++i) file.put(c[i]);
Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling
Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
MehrGrundlegende Anweisungen in C++
Grundlegende in C++ Peter Bastian Dieses Dokument basiert auf einer ursprünglich englischen Fassung von Katharina Vollmayr-Lee (http: // www. eg. bucknell. edu/ ~ kvollmay/ caps_ s2010/ C+ +_ summary.
MehrInformationsverarbeitung
1/19 Informationsverarbeitung Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2011/2012 Vorlesung 13 (Download Quelldateien)
MehrZ:\Informatik 3\Labor_GINF3\Labor_01-Sonstiges.txt
Z:\Informatik 3\Labor_GINF3\Labor_0-Sonstiges.txt Laborbericht Nils Gemba Informatik 3 - OOP Labor 0 Vorbereitungszeit: ca. 4 Stunden Durchführungszeit: ca. 3 Stunden z:\informatik 3\Labor_GINF3\Labor_0\Labor_0.0\main.cpp
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrInhalte. Einführung. Algorithmus, Programmiersprache, Compiler und Linker. Kontrollstrukturen. Präprozessoranweisungen. Libraries
INFIO.1 Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen Präprozessoranweisungen Libraries Funktionen und Klassen Inhalte INFIO.2 Auszug Daten
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
MehrPraktikum Betriebssysteme 1. Aufgabe (1)
FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrObjektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
Mehr10 Lesen und Schreiben von Dateien
10 Lesen und Schreiben von Dateien 10 Lesen und Schreiben von Dateien 135 10.1 Mit load und save Binäre Dateien Mit save können Variableninhalte binär im Matlab-Format abgespeichert werden. Syntax: save
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrC++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen
C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,
MehrEinführung in das Objektorientierte Programmieren mit C++
BEREICH DATENTECHNIK I CP 800 00 TH 02 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 8 8. Ein- und Ausgabe mit Stream-Klassen 8.1. Standard-I/O-Bibliothek und Stream-Klassen 8.2. Ein-
Mehr5.4 Klassen und Objekte
5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen
MehrGrundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrInformatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692
Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b
MehrErste Schritte mit HG 2
Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................
MehrDer C++ Crashkurs v1.0
Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der
MehrC vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg
C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrVisual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!
Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist
MehrC++ - eine Einführung
Inhalt des Vortrags C++ - eine Einführung Wilfried Elmenreich Voraussetzungen Unterschiede C++ / Java C++ Grundkonzepte: Operatoren, Schleifen, I/O Klassenstruktur, Hauptprogramm Entwicklungschritte eines
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16
Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrEinführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
MehrProgrammieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.
Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter
MehrKurzeinführung in C++
Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
MehrProgrammierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
MehrLösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02
Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02 Prof. Dr.-Ing. Holger Vogelsang (FH-Karlsruhe) Dipl.-Inform. (FH) Gudrun Keller (FH-Karlsruhe) Dipl.-Inform. Mathias Supp (.riess
MehrPIWIN 1 Übung Blatt 5
Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:
MehrKlausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber
Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber 1) Welche Antworten zur Operatorüberladung sind richtig? (1) a) C++ - Operatoren können zusammen mit Objekten funktionieren b) C++ - Operatoren wird
MehrEin erstes Java-Programm
Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrC++ - eine Einführung
C++ - eine Einführung Wilfried Elmenreich Folien basieren auf dem Vortrag From Java to C++ von Ulrik Schröder Inhalt des Vortrags Voraussetzungen Unterschiede C++ / Java C++ Grundkonzepte: Operatoren,
MehrEinführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrZiel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind
Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt
MehrÜbersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung
Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrC Überlebenstraining
C Überlebenstraining Dies ist nur ein Schnellkurs in C, der genug Einstiegswissen vermitteln soll, daß weiterführende Literatur schnell benutzt werden kann. Dies ist kein vollständiger Programmier oder
MehrProgrammieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen
Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2
Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrUlla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp
Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen
MehrEs gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:
3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert
MehrZusammengesetzte Datentypen -- Arrays und Strukturen
Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14
MehrProgrammieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer
MehrGetName(), GetName(), GetGeschlecht() und AelterWerden().
11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer
MehrDie Programmiersprache C
Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,
MehrFB Informatik. Fehler. Testplan
Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout
MehrDefinition: Algorithmus
Definition: Algorithmus Ein Algorithmus ist eine allgemeine Rechenvorschrift, die aus mehreren elementaren Instruktionen (Anweisungen bei Programmiersprachen, Befehlen bei Maschinensprachen) besteht, die
MehrGrundlagen. Kapitel 1
Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die
MehrKurzeinführung in C. Johannes J. Schneider 27.10.2004
Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrProgrammieren in Java
Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang
MehrInformatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-
Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik
MehrAutor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH
Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich
MehrAK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de
Aufgaben: Ein Ausgabe Ein Rechner verwaltet nicht nur Daten, die während der Laufzeit des Programms erzeugt werden. Die meisten Programme greifen auf ältere Datenbestände zurück oder erzeugen für einen
MehrC++ - Operatoren. Eigene Klassen mit neuen Funktionen
C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
MehrJava 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7
Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
MehrDie LogTrace-Bibliothek
Die LogTrace-Bibliothek Debugging-Hilfsmittel Weiteres Beispiel Motivation void Func() { FunktionLog var( Func );... Func2();... Ausgabe sollte hier sein: >Func > Func2 < Func2 < Func void Func2() { FunktionLog
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrAbschnitt 9: Schnittstellen: Interfaces
Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung
MehrProgrammieren in C++ Arrays, Strings und Zeigerarithmetik
Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik
MehrCodingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008
I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrProgrammieren für Physiker: C++
Programmieren für Physiker: C++ Termine: Vorlesung: Di. 8:00-9:30 Uhr, Lehmann-HS (M. Steinhauser) Hörsaalübungen: Fr. 8:00-9:30 Uhr, Lehmann-HS (A. Mildenberger) Computerübungen: (voraussichtlich) (Fragen
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrDownload von Updates von www.syll.de > Support > Download Stand: 13.01.2010. - Systemvoraussetzungen PC
- Systemvoraussetzungen PC o Betriebssystem: Windows 2000 / XP / Vista o Java Version: 1.4.2 o WinZip 9.0 - Vorgehensweise Laden Sie das gewünschte Update aus unserem Download-Bereich auf Ihren PC herunter.
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung
MehrPython Programmierung. Dipl.-Ing.(FH) Volker Schepper
Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013
MehrMAXIMUM2.STR 02.10.2002. Struktogramme. Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben.
Struktogramme 02.10.2002 Aufgabe: 3 Zahlen eingeben, größte Zahl ermitteln und ausgeben. MAX_DOZ1 Integer a, b, c, max M AX IM U M 1.S T R Inte g er a, b, c Ausgabe "Zahlen eingeben" E ing abe a, b, c
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen This semester s menu... Imperative Programmierung
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrKapitel 11: Wiederholung und Zusammenfassung
Wiederholung und Zusammenfassung 1: Begriff und Grundprobleme der Informatik Begriff Informatik Computer als universelle Rechenmaschine Grenzen der Berechenbarkeit Digitalisierung Problem der Komplexität
Mehr3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten
O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...
Mehr17.2 MS-Access Projekte
964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten.
MehrZum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...
Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrC allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.
C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von
MehrModellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 9.1.2013 IAM Institut für Angewandte Mathematik Fortgeschrittene Ein- und Ausgabe Bisher: Ein- und Ausgabe nur über die Kommandozeile Erweiterung: Konzept
MehrÜbungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
Mehr