
Computerpraktikum SS2009IEinführung in Linux undder Programmierung in C++Ein die Veranstaltung ”Computerpraktikum” ergänzendes Skript vonMatthias Knau
4 Kapitel 1: Einführung in UNIX / Linux• Webbrowser: Internet Explorer, Firefox, . . .• . . .Unterscheidungsformen:• Systemsoftware (Computerprogramme
94 Kapitel 3: Einführung in C/C++normale Ausgabe( 123)( 3.142)( 1.235e+08)( 1.2e-05)( 123)( 3.14153)(1.23457e+08)( 1.2e-05)feste Ausgabe( 123.000)( 3.
3.10 Formatierte Ausgabe 95Manipulator entsprechende Elementfunktioncout << setw(8) cout.width(8)cout << setfill(’#’) cout.fill(’#’)cout &
96 Kapitel 3: Einführung in C/C++17 cout . setf ( ios :: fixed );18 cout << "␣␣pi␣=␣" << right << setw (14)19 << set
3.11 Zeiger 97double *v;Durch diese Definition wird eine Variable name vom Typ Zeiger auf Datentypvereinbart. Durch diese Definition sind Zeiger und der
98 Kapitel 3: Einführung in C/C++double *v = new double (2.718);Was passiert hier ? new erzeugt im Speicher eine Variable vom Typ double,initialisiert
3.11 Zeiger 99freigeben, da C++ dieses nicht automatisch macht (auch wenn gar keine Zeigermehr existieren, die auf diesen Bereich „zeigen“):delete Nam
100 Kapitel 3: Einführung in C/C++3.11.5 Benutzung des Referenzierungs- und Dereferenzierungs-operatorsreference.cpp: (De-)Referenzierung von Zeigern1
3.11 Zeiger 1014 double vektornorm ( double *, double *, double *, double );56 int main () {7 double x [3] = {4.0 ,2.0 ,2.0};8 double y [3] = { -0.5 ,
102 Kapitel 3: Einführung in C/C++• Bei Benutzung des Feldindexes (vgl. vektornorm) wird derDereferenzierungsoperator nicht benötigt, da sich bei Zugr
3.11 Zeiger 10321 void initMatrix ( double **m , int size ) {22 for ( int i =0;i< size ;i++) {23 for ( int j =0;j< size ;j++) {24 m[i][ j] = i =
1.1 Betriebssysteme 5• Shell, d.h. eine Benutzerschnittstelle, die Befehle bzw. Kommandos entge-gennimmt (über Tastatur), diese mittels eines Kommando
104 Kapitel 3: Einführung in C/C++13 deleteMatrix (v , size );14 }1516 double ** newMatrix (int size ) {17 double ** m = new double *[ size ];18 for (
3.11 Zeiger 105Beachte: Ein Funktionszeiger kann nur Adressen von Funktionen aufneh-men, die gleichen Rückgabetyp und gleiche Parameterliste besitzen.
106 Kapitel 3: Einführung in C/C++pointer3.cpp: Vergleich von Zeigern12 #define n 334 double vektornorm ( double *, double *, double *, double );56 in
3.12 Zeichenketten 1075 v = new double [100000];6 cout << i << "␣" << v << endl ;7 }8 }9 catch ( bad_alloc ) {10 cer
108 Kapitel 3: Einführung in C/C++eindeutig durch eine Zahl −128 ≤ c ≤ 127 beschrieben. Der Compiler unter-scheidet nicht zwischen Zeichen und Zahl, m
3.12 Zeichenketten 10917 << ( char ) tolower (z) << " ’" << endl ;18 }19 while ( isgraph (z));20 }Bitte ein Zeichen eingeb
110 Kapitel 3: Einführung in C/C++die Möglichkeit die Zeichenketten (Strings) der Standardbibliothek zu verwen-den. Die damit verbundenen Vereinfachun
3.12 Zeichenketten 1113.12.5 Ein- und Ausgabe von ZeichenkettenFür die Ausgabe von Zeichenketten benutzt man std::cout, die Eingabe ist mitstd::cin mö
112 Kapitel 3: Einführung in C/C++Konstanten, mit dem man klarstellt, dass der Wert von s in der Funktionnicht verändert werden kann.• strcpy dient zu
3.13 Strings 113int main ( int argc , char * argv []) {/* ... */}Dabei gibt argc an, wieviele Argumente bereitstehen. Die einzelnen Argumentestehen al
6 Kapitel 1: Einführung in UNIX / Linuxab1991 Entwicklung von LINUX als UNIX-Derivat für Intel386-Prozessor, LinusTorvalds u.v.a. im Rahmen der GNU/GP
114 Kapitel 3: Einführung in C/C++3.13.1 Konstruktoren für StringsErzeugen eines leeren Strings.string ();Erstellen einer Kopie eines anderen Strings
3.13 Strings 115• const string &str, size_type pos, size_type n• const char* s• const char* s, size_type n• size_type n, char chDie Bedeutung der
116 Kapitel 3: Einführung in C/C++3.13.3 Informationen über StringsAktuelle Länge des Strings.size_type length () const ;size_type size () const ;Derz
3.13 Strings 117int compare ( size_type index , size_type n,const string & str );int compare ( size_type index , size_type n,const string & st
118 Kapitel 3: Einführung in C/C++Der Operator [] liefert ebenfalls ein Zeichen zurück.str_char.cpp: Zeichenumwandlung von Strings1 int main () {2 str
3.14 Umgang mit Dateien 119Anfügen eines Zeichens ans Ende.void push_back (const char val );3.14 Umgang mit DateienSind komplexe Daten zu verarbeiten,
120 Kapitel 3: Einführung in C/C++file2.cpp: Schnell eine Datei öffnen1 int main () {2 char c;3 cout << " Ausgabe ?␣";4 cin >> c;
3.14 Umgang mit Dateien 12111 if (! input ) break ;12 cout << buf << endl ;13 }14 }
122 Anhang A: HeaderAHeaderA.1 Die Funktionen von ctype.hNützliche Funktionen zur Behandlung von char-Variablen und -Konstantenfindet man in dem Modul
A.2 Die Funktionen von string.h 123A.2 Die Funktionen von string.hWeitere nützliche Funktionen zum Umgang mit C-Strings liefert <string.h>.Proto
1.2 Die Etikette im Rechnerpool des Fachbereichsnetzes 7Mac OS XDas Betriebssystem Mac OS X ist im Kern ein Unix Betriebssystem. Der Kernliegt als Ope
124 Anhang A: HeaderA.3 Mathematische FunktionenVon C++ werden in dem Modul <cmath> die Prototypen für eine Reihemathematischer Standardfunktion
A.3 Mathematische Funktionen 125Prototyp Funktionsweisedouble ldexp(double,int)Umkehrfunktion zu frexp.w=ldexp(a,b); ⇐⇒ w = a · 2bdouble log(double) L
126 Anhang B: Kompatibilitäten zu CBKompatibilitäten zu CB.1 Ein-/AusgabeUnter C wird die Kommunikation mit der Konsole im Modul <stdio.h> er-kl
B.1 Ein-/Ausgabe 127Flag Bedeutung0 Auffüllen mit Nullen- Linksbündig+ Vorzeichen (+ oder -) immer mit ausgeben’ ’ Platzhalter für VorzeichenTypspezifi
128 Anhang B: Kompatibilitäten zu CLinksbündige Ausgabe mit 6 (Leer-)Stellenprintf ("Wert ␣1␣=␣%-6 i\n", 42);printf ("Wert ␣2␣=␣%-6 i\n
B.1 Ein-/Ausgabe 129B.1.2 Formatierungsanweisungen für FließkommazahlenDie Ausgabe von Fließkommazahlen kann in Fixpunktnotation (z.B. x=123.456)oder
130 Anhang B: Kompatibilitäten zu C41 printf ("␣% -8s␣|␣"," %.3 f" );42 printf (" %.3 f" ,x);43 printf ("\n" )
B.1 Ein-/Ausgabe 13191 printf ("\n" );9293 printf ("␣% -8s␣|␣"," %15.2 e" );94 printf (" %+15.2 e" ,x);95 prin
132 Anhang B: Kompatibilitäten zu CB.1.4 Ein-/Ausgabe in C-StringsMit sprintf und sscanf kann man in C-String schreiben oder aus C-Stringslesen (statt
B.2 Speicherverwaltung 133Andernfalls wird der durch ptr angesprochene Speicherbereich in Abhängigkeitvon groesse verkleinert oder vergrößert, wobei i
8 Kapitel 1: Einführung in UNIX / Linux1.3 An- und Abmelden beim SystemZu Beginn jeder Sitzung muss man sich mit seiner Benutzerkennung (account,login
134 Anhang B: ProgrammverzeichnisProgrammverzeichniszero.cpp Das nullte und kürzeste C++-Programm . . . . . . 49hello.cpp Hello world in C++, erster V
135reference.cpp (De-)Referenzierung von Zeigern . . . . . . . . . . 100pointerret.cpp Rückgabe mehrerer Werte . . . . . . . . . . . . . . 100matrix.c
1.3 An- und Abmelden beim System 9Terminal - Eingabe von KommandozeilenNachdem eine graphische Benutzerschnittstelle gestartet wurde, ist die Eingabev
10 Kapitel 1: Einführung in UNIX / Linux1.4 Aufbau von UNIX-KommandosUnter UNIX kommuniziert der Benutzer mit dem Computer über Kommandos,die in einem
1.5 Editoren 11zurück), SPACE (eine Seite vorwärts), PageUp , PageDown (Seite vor / zu-rück) navigiert man auf der SeiteLinks zu verwandten Themen sin
12 Kapitel 1: Einführung in UNIX / LinuxneditDer nedit ist ein vielseitiger Text-Editor, der gut für die Eingabe von Compu-ter Programmen geeignet ist
1.5 Editoren 13integriert und wird z.B. gestartet, wenn man eine C++ Datei in der KDE-GUIdoppelklickt. Das Menü ist ähnlich wie bei nedit aufgebaut.em
14 Kapitel 1: Einführung in UNIX / LinuxEine extrem ausführliche Einleitung findet sich wiederum unter dem MenüpunktHelp.Hinweis: Auf den Macs sollte d
1.7 Verzeichnisse und Dateien 15pacc Information über aktuelles DruckkontingentWeitere Informationen finden sich unterhttp://www.informatik.uni-bremen.
16 Kapitel 1: Einführung in UNIX / Linux/ffffffffffffffffffffffffffffffffjjjjjjjjjjjjjjjjjjjRRRRRRRRRRRRRRRRRWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXX
1.7 Verzeichnisse und Dateien 17more ../../editor.txtzeigt die Datei editor.txt an, welche sich im Unterverzeichnis/home/benke/SKRIPTEMathe/ befinden m
18 Kapitel 1: Einführung in UNIX / Linuxcd verzeichnis Wechsel in ein Unterverzeichnis des aktuel-len Verzeichnis (relativer Pfad)cd /home/benke/AWI/
1.7 Verzeichnisse und Dateien 19rm -r verzeichnis Rekursives Löschen von Verzeichnissen inkl.deren Inhalt, d.h. alle Dateien und alle Un-terverzeichni
20 Kapitel 1: Einführung in UNIX / Linux• einen Referenzzähler für die Verweise auf die Datei (i.d.R 1) bzw. dasVerzeichnis (Anzahl ≥ 2, denn bei Verz
1.7 Verzeichnisse und Dateien 21Und drei Arten von Zugriffsrechten:r Read Leserechtew Write Schreibrechtex eXecute Ausführbarkeit bei Dateien, Zutritt
22 Kapitel 1: Einführung in UNIX / LinuxNumerische Form400 read Leseberechtigung des Eigentümers200 write Schreibberechtigung des Eigentümers100 execu
1.8 UNIX-Shells 231.8 UNIX-ShellsÖffnet man ein Terminal-Fenster, dann läuft im Hintergrund eine Shell, die dieeingegebenen Kommandos interpretiert und
Inhaltsverzeichnis iiiInhaltsverzeichnisInhaltsverzeichnis iiiVorwort bzw. Disclaimer 11 Einführung in UNIX / Linux 21.1 Betriebssysteme . . . . . . .
24 Kapitel 1: Einführung in UNIX / LinuxSolche Sonderzeichen sind z.B.; Kommandos hintereinander ausführen&& Kommandos hintereinander ausführe
1.8 UNIX-Shells 25$ BLA=fasel$ echo $BLAfaselwird eine Shell-interne Variable BLA gesetzt und mittels echo wieder ausge-geben. Mit printenv bekommt ma
26 Kapitel 1: Einführung in UNIX / LinuxDie verschiedenen Verzeichnisse werden mit Doppelpunkten getrennt.Ein weiteres Verzeichnis kann man dem Pfad z
1.8 UNIX-Shells 27rm * löscht alle Dateien (in diesem Verzeichnis)!Also vorsichtig mit * in manchen Situatio-nen!1.8.5 UmleitungBis jetzt haben wir Ko
28 Kapitel 1: Einführung in UNIX / Linux1.8.6 Vorverarbeitung der KommandosNoch bevor das eigentliche Kommando (Programm) gestartet wird, erledigtdie
1.9 Prozesse 292. Wir wollen eine Reihe von Dateien in ein anderes Verzeichnis verschieben,vergessen aber, das Zielverzeichnis anzugeben.$ mv *.texMög
30 Kapitel 1: Einführung in UNIX / LinuxPID TTY TIME CMD23629 pts/1 00:00:00 bash23671 ? 00:02:02 mozilla-bin23686 ? 00:00:00 gconfd-223775 pts/1 00:0
1.10 Arbeiten auf entfernten Rechnern 31[1] Running nedit weiterebefehle.tex \&[2] Stopped make[3]- Stopped make[6]+ Stopped make[7] Running acror
32 Kapitel 1: Einführung in UNIX / Linux.bashrc Konfigurationsdatei für Shell, die beim Startjeder neuen Shell automatisch ausgeführtwird. Hier können
1.11 Weitere nützliche Befehle 33tar -cvf archiv.tar ordnerLegt Datei-Archiv von ordner an, wobei cfür create (d.h. erzeuge Archiv), v für ver-bose (d
iv Inhaltsverzeichnis3 Einführung in C/C++ 453.1 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.1.1 Geschichte . . . . .
34 Kapitel 1: Einführung in UNIX / Linuxchmod 770 BOERSE Nur Mitglieder der Gruppe dürfen in dasVerzeichnisDisketten und USB-Sticksmount /floppy Diske
352Algorithmen2.1 Begriff(Versuch einer) Definition:Ein Algorithmus ist eine endliche Vorschrift, die genau angibt, wie ein be-stimmtes Problem in einze
36 Kapitel 2: Algorithmen• Berechenbarkeit: Existiert ein Algorithmus, der das gegebene Problem löst?• Korrektheit: Löst der Algorithmus die gegebene
2.3 Auswahl (Selektion) 37Verfeinerung des Algorithmus1.1 Fülle Wasserkocher mit Wasser1.2 Schalte Wasserkocher an1.3 Warte bis es kocht1.4 Schalte Wa
38 Kapitel 2: Algorithmen2.1.1 Nimm Kaffeeglas aus dem Schrank2.1.2 FALLS Kaffeeglas leer istDANN Nimm neues Kaffeeglas2.1.3 Öffne KaffeeglasDer SONST-Teil
2.4 Schleifen (Wiederholung, Iteration) 39erfülltDo-While-Schleife, d.h. Schleife mit (weiterführendem) Nachtest.Der Schleifendurchlauf wird wiederum
40 Kapitel 2: Algorithmen2.4.1 Maximumsbestimmung (Bsp. zur 2. bzw. 1. Schleifenart)Eingabe: Liste von ZahlenAusgabe: Größte Zahl in der ListeSetze er
2.5 Funktionen 412.5 FunktionenFunktionen erleichtern die schrittweise Verfeinerung eines Algorithmus und er-lauben die wiederholte Verwendung von Alg
42 Kapitel 2: Algorithmen2.6 Vom Algorithmus zum ProgrammUm den Algorithmus durch einen Computer ausführen zu lassen, muss manihn in einer Programmier
2.6 Vom Algorithmus zum Programm 43• Semantik, d.h. Bedeutung und Sinnhaftigkeit formal korrekter Sätze. Siebeschreibt also, welche Aktion das Program
Programmverzeichnis v3.10.1 Bit-Operatoren . . . . . . . . . . . . . . . . . . . . . . . . 903.10.2 Formatierung über Elementfunktionen . . . . . . .
44 Kapitel 2: Algorithmen• Mischformen: Just-In-Time-Compiler, Byte-Code-InterpreterMerke: Ein Algorithmus ist unabhängig von der Programmiersprache,
453Einführung in C/C++3.1 Überblick3.1.1 GeschichteC++ ist eine der verbreitetsten und industriell wichtigsten Programmierspra-chen. Sie ist als Mehrz
46 Kapitel 3: Einführung in C/C++dard wird 1990 von der ISO2(bis auf kleinere Änderungen) vollständigübernommen ( C90).1980 Bei AT&T erweitert Bja
3.1 Überblick 473.1.2 Compiler und ToolsNachdem der Quelltext (engl. source code) mit einem Editor geschrieben wurde,wird der Quelltext (*.cpp oder *.
48 Kapitel 3: Einführung in C/C++Größere Programme werden in der Regel nicht mehr mit einfachen Texteditorenerstellt, sondern mit Integrierten Entwick
3.1 Überblick 49• Krüger, Guido: GoTo C-Programmierung, Addison-Wesley, 1998.• C Von A bis Z (http://www.pronix.de/pronix-4.html)(siehe auch http://ww
50 Kapitel 3: Einführung in C/C++Dies erzeugt das Programm a.out, das man mit$ a.outbzw.$ ./a.outausführen kann. Probiere zuerst die erste Version, da
3.2 Hello, world! 51mit denen z.B. Anweisungen abgeschlossen oder in Blöcken zusammenge-faßt werden. In diesem Programm sind die (geschweiften) Klamme
52 Kapitel 3: Einführung in C/C++hello.cpp: Hello world in C++, erster Versuch1 #include <iostream >23 int main () {4 std :: cout << Hello
3.3 Fundamentale Datentypen 53Warum erscheint das Prompt $ direkt hinter dem ausgegebenen Text? In demString, der std::cout übergeben wird, muss noch
vi Programmverzeichnis
54 Kapitel 3: Einführung in C/C++Integer- und Float-Typen können die unendlichen Mengen Z und R nicht voll-ständig darstellen.In ?? werden wir aus die
3.3 Fundamentale Datentypen 55$ g++ declare.cpp$ a.outDie Zahlen lauten 12, 88 und 100.$declare2.cpp: kürzere Deklaration1 #include <iostream >2
56 Kapitel 3: Einführung in C/C++wobei size die Größe des Datentyps in Vielfachem vom Typ char angibt.3.3.3 GrundrechenartenDie Symbole +,-,*,/ werden
3.3 Fundamentale Datentypen 57c = a + b;std :: cout << a <<"␣plus ␣" << b<< "␣ gleich ␣" << c;lassen
58 Kapitel 3: Einführung in C/C++3.3.6 Inkrement- und DekrementoperatorenEine weitere Kurzschreibweise bieten die Operatoren zum Inkrement (erhöheWert
3.3 Fundamentale Datentypen 59• Sie müssen aus Buchstaben (a-z, A-Z), Ziffern (0-9) und Unterstrichen(_) bestehen.• Sie dürfen nicht mit einer Ziffer be
60 Kapitel 3: Einführung in C/C++23 int main (){45 float a = 1000012000 , c =2.0 e -06;6 double b = 1000012000 , d =2.0 e -06;78 std :: cout . precisi
3.3 Fundamentale Datentypen 61eine Warnung liefert, die aber ignoriert werden kann (im Gegensatz zur richtigenFehlermeldung), wenn diese Typumwandlung
62 Kapitel 3: Einführung in C/C++3.4 Ein- und AusgabeC++ selbst verfügt über keine direkte Möglichkeit der Ein- und Ausgabe. Statt-dessen bietet die C
3.4 Ein- und Ausgabe 633.4.2 StandardeingabeDie Standardeingabe std::cin wird wie std::cout im Modul <iostream> er-klärt. Sie nimmt Eingaben von
1Vorwort bzw. DisclaimerDieses Skript wurde in seiner erster Fassung von Matthias Knauer erstellt. Esbegleitete den ersten Teil einer zweisemestriegen
64 Kapitel 3: Einführung in C/C++Genauso lässt sich jede andere Ausgabe mit | in das Programm weiterleiten:$ cat person.txt | eingabeBitte gib dein Ge
3.5 Anweisungen zur Auswahl 65Dabei ist false als 0 definiert. Alle anderen Werte (also insbesondere 1) gel-ten als true. Die explizite Benutzung von t
66 Kapitel 3: Einführung in C/C++Vergleich wahr ist, sonst 0.Operator Ergebnisa < b wahr, wenn a kleiner ba <= b wahr, wenn a kleiner oder gleic
3.5 Anweisungen zur Auswahl 673.5.4 if-AnweisungenDie in Kapitel 2 eingeführte Anweisung zur Auswahl kann direkt in C++-Syntaxübersetzt werden:if ( Be
68 Kapitel 3: Einführung in C/C++if (a > b)if (a > 2 * b)cout << "a␣ist ␣ mehr ␣ als ␣ doppelt ␣"<< " so ␣ gross ␣ wi
3.5 Anweisungen zur Auswahl 693.5.5 Bedingte Ausdrücke mit ?:Die Schreibweise von if-else kann in einigen Fällen mit dem bedingten Aus-drucksoperator
70 Kapitel 3: Einführung in C/C++67 cout << " Bitte ␣geben ␣ Sie ␣ eine ␣ Zahl ␣ ein :";8 cin >> z;9 cout << endl ;1011 sw
3.6 Funktionen 71Vor dem ersten Aufruf einer Funktion, muss diese bereits dem Compiler bekanntsein (Deklaration). Dies geschieht entweder durch ihre v
72 Kapitel 3: Einführung in C/C++beendet. Steht die Funktionsdeklaration allein als Prototyp, dann wird sie mitSemikolon beendet.Der Funktionsaufruf s
3.6 Funktionen 733.6.3 FunktionsparameterMan kann einer Funktion einen oder mehrere Parameter als Argument über-geben. Die Parameter werden in der Fun
2 Kapitel 1: Einführung in UNIX / Linux1Einführung in UNIX /Linux1.1 Betriebssysteme1.1.1 Aufbau eines ComputersHardwarekomponenten eines Computer-Sys
74 Kapitel 3: Einführung in C/C++3 a = b;4 b = help ;56 cout << "a␣=␣" << a << "␣b␣=␣" << b << endl
3.6 Funktionen 75es werden keine Kopien der Variablen angelegt. Werden die Parameter in derUnterfunktion geändert, so ändern sie sich auch in der aufr
76 Kapitel 3: Einführung in C/C++10 cout << "x␣=␣" << x << endl ;11 }x = 4x = 10x = 4Die Änderung des Wertes von x in der
3.6 Funktionen 77Je enger eine Information begrenzt ist, d.h. je kleiner der Gültigkeitsbereicheiner Variablen ist, desto weniger Fehler kann man z.B.
78 Kapitel 3: Einführung in C/C++Die Fakultät einer Zahl n ist definiert als n! = 1 · 2 · 3 · 4 ···nrekursiv.cpp: Fakultät als rekursive Funktion1 int
3.7 Schleifen 7945 int main () {6 double x;7 cout << " Zahl ␣ eingeben :␣";8 cin >> x;9 cout << " Wurzel ␣ von ␣"
80 Kapitel 3: Einführung in C/C++3.7.1 while-SchleifenAuch die in Kapitel 2 eingeführten Algorithmen-Bausteine zur Wiederholungvon Anweisungen werden
3.7 Schleifen 81In diesem Beispiel ist die do-Schleife angebrachter als die while-Schleife, weildie Eingabeaufforderung in jedem Fall mindestens einmal
82 Kapitel 3: Einführung in C/C++}Eine solche Schleife wird folgendermaßen abgearbeitet:-Initia-lisierung-@@@@@@@@@@Bedingungfalschwahr?Anwe
3.7 Schleifen 83for ( int x =1, y =100; x <= y; x++ , y - -) {cout << "x␣=␣" << x << "␣y␣=␣" << y <&
1.1 Betriebssysteme 3• Der Inhalt des Arbeitsspeichers ist flüchtig, d.h. nach dem Abschalten desComputers geht der Inhalt des Arbeitsspeichers komplet
84 Kapitel 3: Einführung in C/C++break.cpp: Die Schleife endet mit break sofort1 int main () {2 int i;3 for (i =1; i <10; i ++) {4 if (i >5) {5
3.7 Schleifen 8516 << z << "␣ist ␣" << p << endl ;17 break ;18 }19 }20 cout << " Nochmal ?␣( ja␣=␣1,␣ nei
86 Kapitel 3: Einführung in C/C++1 #include <iostream >2 #include <cmath >3 using namespace std ;45 int main () {67 double x;8 cout <&l
3.8 Felder 87Zum Beispielint x [4];int y [4] = {4 , 7, 1, 1};Felder dürfen sich auch über mehrere Dimensionen erstrecken:Datentyp Name [ Dim1 ][ Dim2
88 Kapitel 3: Einführung in C/C++4 /* Ausgabe : Summe */5 int s =0;6 for ( int i =0; i <n; i ++) {7 s += v[i];8 }9 v [0] = 42;10 n = 42;11 return s
3.9 Präprozessoranweisungen 893.9 PräprozessoranweisungenVor der Kompilierung wird der C++-Quelltext vom sogenannten Präprozessorverarbeitet. Dieser n
90 Kapitel 3: Einführung in C/C++3.9.2 #includeTrifft der Präprozessor auf den #include Befehl, liest er die entsprechendeHeader-Datei ein. Alle in ihr
3.10 Formatierte Ausgabe 91Operator Erläuterung Beispiel Ergebnisbinär dezimalchar a = 14; 00001110 14char b = 19; 00010011 19& Bitweises UND a &a
92 Kapitel 3: Einführung in C/C++gesetzt oder gelöscht. Die möglichen Flags stehen dabei als Formatierungsanwei-sungen zur Verfügung:Bitfeld Flags Bed
3.10 Formatierte Ausgabe 9313 cout . fill ( ’_ ’);1415 writenumbers (a , 4, 0);1617 writenumbers (a , 4, 10);1819 cout . setf ( ios :: left );20 write
Commenti su questo manuale