[Logo der Universität Bayreuth]
Universität Bayreuth

Mathematisches
Institut



 Einleitung

 Erste Schritte

 Mail und News

 Drucken

 KDE

 LaTeX/TeX

 Linksammlung

 Linuxtools

 Netzwerk

 Programmieren

 Windows

 X Window

 Anträge

 Kontakt


Liste der Fachbegriffe rund ums Programmieren ("Fachchinesisch")

Stand: 08. November 2011, 09:50 Uhr

(Robert Baier, Matthias Höger, Simon Pirkelmann)

1. Arbeitsspeicher

2. CPU

3. Betriebssystem

4. Laufzeit

5. Stellenwertsysteme

6. Zeichensatz

7. ASCII

8. Programmiersprache

9. Funktionsorientiert/Objektorientiert

10. Schlüsselwörter

11. Entwicklungsumgebung (IDE)

12. Code::Blocks

13. Compiler/Assembler

14. Präprozessor

15. Linker

16. Debugger

17. Kommandozeile/Konsole

18. Sourcecode/Quelltext

19. Deklaration

20. Bezeichner

21. Wertzuweisung

22. Anweisung

23. Operator/Operand

24. Datentypen

25. Variable

26. globale/lokale Variablen

27. Konstante

28. Array

29. String

30. Implementierung

31. Funktion

32. Rückgabewert

33. Parameter

34. Prozedur

35. Iteration

36. Rekursive Programmierung

37. Headerfile/Realisierungsfile/Anwendungsfile

38. Kommentar

39. Syntax

40. Syntaxhervorhebung

41. Input/Output

42. Algorithmus

43. Datenstruktur

1. Arbeitsspeicher (RAM):

Beispiel:

  Heutzutage besitzen die Computer i.d.R. 1 bis 4 Gigabyte Arbeitsspeicher.
  

Erklärung:

Beim Arbeitsspeicher (engl: Random Access Memory, wörtlich: Speicher mit wahlfreiem Zugriff) handelt es sich um den Hauptspeicher im Computer, der aus RAM-Chips besteht und in dem Programme ablaufen sowie Dateien und Programmcodes zwischengelagert werden. Er ist ein sogenannter flüchtiger Speicher, dessen Inhalte beim Ausschalten bzw. bei einem Reset gelöscht werden.

weitere Informationen

2. CPU (central processing unit):

Beispiel:

  CPUs/Prozessoren werden z.B. von Intel, AMD, ... gebaut und verkauft. Die CPU bildet den Motor/das Gehirn des Computers.
  

Erklärung:

Die CPU (Hauptprozessor), oft auch nur Prozessor genannt, ist das Bauteil im Computer, das Programme ausführen kann. Sie stellt damit die zentrale Verarbeitungseinheit (ZVE) eines Computers dar.

weitere Informationen

3. Betriebssystem (OS=operating system):

Beispiel:

  Gängige Betriebssysteme sind Windows, Linux, Mac OS oder Android.
  

Erklärung:

Ein Betriebssystem steuert und verwaltet den Computer mit Hilfe von Programmen und Befehlen und stellt zumeist auch grafische Bedienungshilfen zur Verfügung. Ohne ein Betriebssystem kann ein Rechner nicht/nur mühsam verwendet werden. Es verwaltet wesentliche Bestandteile wie Speicher, Ein- und Ausgabegeräte (Tastatur, Mouse, Monitor, ...) und steuert die Ausführung von Programmen. Da sich Betriebssysteme hinsichtlich der Art, wie Dateien, insbesondere ausführbarer Code, behandelt wird, unterscheiden, ist es für die Programmierung in C++ von entscheidender Bedeutung, für welche Plattform entwickelt wird. Eine unter Windows erstellte "*.exe"-Datei ist beispielsweise auf einem PC mit Mac OS nicht ohne weiteres lauffähig, ein unter Mac OS erstelltes Executable ist normalerweise nicht verwendbar unter Windows.

In der Programmiersprache Java besteht dieses Problem dagegen kaum, da statt eines Executables ein Bytecode erzeugt wird, der auf der Java Virtual Machine ausgeführt wird. Diese hat den Vorteil, dass sie auf nahezu jeder beliebigen Hard- und Softwarekombination lauffähig ist. Der Nachteil ist die im Normalfall auftretende langsamere Verarbeitung von Bytecode.

weitere Informationen

4. Laufzeit:

Beispiel:

  Bei einem Studenten entspricht im übertragenen Sinn die Zeitspanne vom Erhalt einer Klausur bis zur Abgabe (=Dauer der Klausur),
  der Laufzeit eines Programmes.
  

Erklärung:

Die Laufzeit beschreibt die Zeitspanne, während der ein Programm von einem Rechner ausgeführt wird. Man unterscheidet zwischen der Realzeit (real time), die das Programm zum Ablauf braucht und der Zeit, die das Programm in der CPU abläuft (cpu time/user time). Da das Betriebssystem mehrere (scheinbar) gleichzeitig laufende Prozesse/Programme unterstützt, die CPU aber immer nur einen Prozess/ein Programm ablaufen kann (und dann andere Programme warten lässt und auslagert), ist die CPU-Laufzeit meist viel kürzer als die reale Laufzeit.

weitere Informationen

5. Zahlensystem/Stellenwertsystem:

Beispiel:

Die Dezimalzahl 42 in verschiedenen Zahlensystemen:
  Dezimalsystem: 42
  Binärsystem: 101010
  Oktalsystem: 52
  Hexadezimalsystem: 2A
  

Erklärung:

Ein Zahlensystem dient dazu, Zahlen durch Ziffern/Zeichen darzustellen. Es basiert dabei auf einer Basis b, mit Hilfe derer man mit Potenzen eine beliebig große Zahl darstellen kann. Die Basis ist dabei auch die Anzahl der verschiedenen Ziffern/Zeichen. Jede ganze Zahl b>=2 ist als Basis für ein Stellenwertsystem geeignet.

Zahlensystem Basis Ziffern Beispiel
Dezimalsystem 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 42 = 4*101 + 2*100
Dualsystem 2 0, 1 101010 = 1*25 + 0*24 + l*23 + 0*22 + 1*21 + 0*20
= 32 + 8 + 2
Oktalsystem 8 0, 1, 2, 3, 4, 5, 6, 7 52 = 5*81 + 2*80 = 40 + 2
Hexadezimalsystem 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
A=10, B=11, C=12, D=13, E=14, F=15
2A = 2*161 + 10*160 = 32 + 10

synonyme Begriffe:

Grundzahl = Basis
Stellenwertsystem = Positionssystem = Zahlensystem

weitere Informationen

6. Zeichensatz:

Beispiel:

  ASCII (American Standard Code for Information Interchange)
  Unicode
  

Erklärung:

Unter einem Zeichensatz versteht man eine Vorrat an Elementen (Zeichen), aus denen die Zeichenketten (=Strings) zusammengesetzt sind. Solche Elemente können Buchstaben, Ziffern, aber auch Symbole wie Sonderzeichen sein. Die Zeichen besitzen eine zugehörige Zeichensatznummer (normalerweise von 0 bis zur Anzahl der Zeichen - 1).

weitere Informationen

7. ASCII:

Beispiel:

  ASCII-Zeichen:
   !"#$%&'()*+,-./0123456789:;<=>?
   @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
   `abcdefghijklmnopqrstuvwxyz{|}~
  Zusätzlich gibt es noch einige nicht druckbare Zeichen.
  Der C++ Compiler interpretiert nur ASCII-konforme Zeichen.
  Bei sog. ASCII-Art werden Bilder, bestehend nur aus ASCII-Zeichen, erstellt:
      |\ _,,,---,,_
      /,`.-'`' -. ;-;;,_
     |,4- ) )-,_..;\ ( `'-'
    '---''(_/--' `-'\_)  fL
  

Erklärung:

Der ASCII-Zeichensatz besteht aus 128 verschiedenen Zeichen (verschlüsselt durch eine 7-Bit-Zeichenkodierung). Die druckbaren Zeichen umfassen das lateinische Alphabet in Groß- und Kleinschreibung, die zehn arabischen Ziffern sowie einige Satzzeichen. Der Zeichenvorrat entspricht weitgehend dem einer Tastatur oder Schreibmaschine für die englische Sprache. In Computern und anderen elektronischen Geräten, die Text darstellen, wird dieser in der Regel gemäß ASCII oder abwärtskompatibel (ISO 8859, Unicode) dazu gespeichert. Die nicht druckbaren Steuerzeichen enthalten Ausgabezeichen wie Zeilenvorschub oder Tabulator, Protokollzeichen wie Übertragungsende oder Bestätigung und Trennzeichen wie Datensatztrennzeichen.

weitere Informationen

8. Programmiersprache:

Beispiel:

  C, C++, Java, Pascal, FORTRAN, u.v.m.
  

Erklärung:

Eine Programmiersprache ist eine formale Sprache, die Regeln festlegt, die den Aufbau, die Deklarationen und die Anweisungen von Computerprogramme festlegen. Die Anweisungen (Befehle) des Programmes sind dabei entweder in Maschinencode geschrieben, der vom Prozessor direkt (ohne weitere Übersetzung) ausgeführt werden kann, oder in Form eines abstrakteren Quelltextes angegeben. Dieser ist für den Menschen besser lesbar und veränderbar, muss aber noch durch den Compiler in Maschinencode übersetzt werden.

Die Zeile "erg = 3;" aus einem C++-Programm wird durch den Compiler über das Zwischenresultat Assembler-Code in einen Maschinencode übersetzt und entspricht dort dem Assembler-Befehl "movl $3, -8(%rbp)". Damit dieser von einem AMD-Opteron-Prozessor ausgeführt werden kann, muss der Assembler-Code noch in einen Maschinencode (Folge von Bytes) übersetzt werden.

weitere Informationen

9. Funktionsorientiert/Objektorientiert:

Beispiel:

  vgl. die Dateien "tanken_fkt_ges.cpp" (funktionsorientiert) und "tanken_obj.cpp" (objektorientiert) aus den Vorlesungsbeispielen zu Kapitel 0
  

Erklärung:

Bei der funktionsorientierten Programmierung liegt der Schwerpunkt auf der Implementierung von Funktionen, die die gegebenen Daten (im Beispiel die gefahrenen Kilometer, den Benzinpreis und das verbrauchte Benzin in Litern) auswerten. Im Gegensatz dazu entwirft man bei der objektorientierten Programmierung eigene Datentypen (im Beispiel die Klasse "Verbrauch"), die einerseits die gegebenen Daten zusammenfassen (im Beispiel die gefahrenen Kilometer, den Benzinpreis und das verbrauchte Benzin in Litern zu einem Objekt der Klasse "Verbrauch") und auf denen andererseits durch sog. Methoden Operationen (im Beispiel z.B. die Operatoren "=" und "==" sowie die Methoden "read_daten()" und "read_liter()") definiert sind, die die Auswertung der Daten ermöglichen.

weitere Informationen

10. Schlüsselwörter:

Beispiel:

   using, namespace, if, else, return, ...
   Liste von Schlüsselwörtern
  

Erklärung:

Schlüsselwörter (engl.: keywords) sind reservierte Bezeichner mit vordefinierter Bedeutung für die Programmiersprache. Sie können nicht als Namen für Variablen, Funktionen, Klassen usw. benutzt werden. Verwendet man eine IDE mit Syntaxhervorhebung (wie z.B. Code::Blocks) werden die Schlüsselwörter meist besonders hervorgehoben.

weitere Informationen

11. Entwicklungsumgebung (IDE):

Beispiel:

  Häufig verwedete IDEs sind Code::Blocks, Eclipse oder Microsoft Visual Studio.
  Es gibt auch IDEs, die speziell zum einfachen Erlernen einer Programmiersprache konzipiert sind, z.B. BlueJ.
  

Erklärung:

Eine integrierte Entwicklungsumgebung (engl.: integrated development environment, Abkürzung IDE) ist ein Programm, das mehrere Werkzeuge/Anwendungsprogramme zum Programmieren in einer (oder mehrerer) Programmiersprache(n) in einer grafischen Bedienoberfläche zusammenfasst. Damit kann man dann verschiedene Aufgaben zur Softwareentwicklung (Editieren des Quelltextes, Debuggen, Start von Programmen, ...) durchführen, ohne das Programm wechseln zu müssen.
Integrierte Entwicklungsumgebungen besitzen in der Regel folgende Komponenten:
  • Texteditor
  • Compiler bzw. Interpreter
  • Linker
  • Debugger
  • Quelltextformatierungsfunktion
  • Werkzeuge zum Auffinden von Variablendefinitionen, zur Codevervollständigung (z.B. Vorschlag von Namen, bereits definierten Variablen), ...

weitere Informationen bei Wikipedia
Compiliervorgang im Detail

12. Code::Blocks:

Erklärung:

Code::Blocks ist eine freie, quelloffene, integrierte Entwicklungsumgebung für die Programmiersprachen C, C++ und D.

weitere Informationen

13. Compiler/Assembler:

Beispiel:

  In unserem Fall der GNU GCC Compiler.
  

Erklärung:

Der Compiler erstellt aus der Ausgabe des Präprozessors (enthält keinerlei Präprozessor-Befehle mehr und nur noch C-/C++-Code) einen Assembler-Code (eine lesbare Variante der Prozessorbefehle). Anschließend erzeugt der Assembler aus dem Output des eigentlichen Compilers ein binäres Objectfile (eine binäre Auflistung aller Prozessorbefehle als eine Folge von Bytes, wobei die Bytes entweder für einen Prozessorbefehl stehen oder reine Datenbytes sind).

weitere Informationen bei Wikipedia
Compiliervorgang im Detail

14. Präprozessor:

Erklärung:

Der Präprozessor hat folgende Aufgaben:
  • Beendigung jeder Zeile mit Zeilenumbruch
  • Umwandlung von Trigraph- und Escape-Sequenzen in zugehörige Zeichen
  • Zusammenfassen jeder mit "\" (Backslash) abgeschlossenen Zeile mit der Folgezeile zu einer Zeile
  • Ersetzen aller Kommentare durch ein Leerzeichen
  • Ausführung der Präprozessor-Direktiven, die mit "#" beginnen und stets eine Zeile lang sind, z.B. Textersetzung und Erweiterung der Makros sowie das Einladen aller Headerfiles, die mit "#include" eingeladen wurden.
Als Ausgabe erstellt der Präprozessor einen C- bzw. C++-Code ohne Präprozessorbefehle.

weitere Informationen bei Wikipedia
Compiliervorgang im Detail

15. Linker:

Beispiel:

                Der Linker bewirkt bei einem Funktionsaufruf des Sinus in einem
                C++-Programm einen Sprung zur Funktionsdefinition des Sinus,
                die in einer mathematischen Bibliothek (Library) bereits
                vorübersetzt ist.
  

Erklärung:

Ein Linker ist ein Werkzeug, das aus einem oder mehreren vom Compiler vorübersetzten Programmteilen ein ausführbares Programm erstellt. Dabei werden symbolische (d.h. noch nicht aufgelöste) Funktionsaufrufe ersetzt durch konkrete Sprungadressen zu den übersetzten Funktionsdefinitionen, die sich entweder im Quelltext derselben Datei befinden oder in sogenannten Bibliotheken (Archiven von vorcompilierten Objectfiles).

Dabei unterscheidet man statisches und dynamisches Linken. Beim statischen Linken sind diese Sprünge zu den übersetzten Funktionsdefinitionen durch das Compilieren aufgelöst, so dass die übersetzten Funktionsdefinitionen im ausführbaren Executable enthalten sein müssen (das Executable wird größer als beim dynamischen Linken).

Beim dynamischen Linken wird erst zur Laufzeit des ausführbaren Programmes der durch einen Funktionsaufruf verursachten Sprung zur (übersetzten) Funktionsdefinition in der (dynamischen) Bibliothek (Library) durchgeführt.

synonyme Begriffe:

Binder = Bindelader = Linker
Programmmodul = Programmteil
Executable = ausführbares Programm
Library = Bibliothek

weitere Informationen bei Wikipedia
Compiliervorgang im Detail

16. Debugger:

Beispiel:

                Im Debugger kann man ein übersetztes Programm schrittweise ablaufen lassen und kann dabei jederzeit Werte der Variablen kontrollieren.
                Wenn ein Programm abbricht bzw. abstürzt, kann man
                die fehlerverursachende Zeile des Programmes finden.
  

Erklärung:

Ein Debugger ist ein Werkzeug zum Diagnostizieren und Auffinden von Fehlern in Computersystemen. So kann z.B. der Programmablauf gesteuert werden, indem man Haltepunkte setzt und Anweisungen des Programmes Schritt für Schritt ausführen lässt. Es können aber auch Werte der Variablen inspiziert werden.

weitere Informationen bei Wikipedia
Fehlersuche mit einem Debugger

17. Kommandozeile/Konsole:

Beispiel:

  DOS-Box (Eingabeaufforderung) bei Windows bzw. Terminal unter Linux/Mac OS
  

Erklärung:

Die Konsole ist ein Werkzeug (meist ein Programm, das in einem speziellen Fenster abläuft), das es erlaubt, Befehle des Betriebssystems einzugeben, mit dem man andere Programme (z.B. einen Compiler, einen Bildbetrachter, ....) starten kann oder den aktuellen Zustand des Betriebssystems (z.B. Speicherauslastung, laufende Prozesse, ....) kontrollieren kann. Die verfügbaren Befehle hängen stark vom Betriebssystem selbst ab und laufen oft nur im Textmodus ab.

Unter Windows kann man z.B. den Befehl "dir" zur Anzeige der Dateien/Unterverzeichnisse des aktuellen Verzeichnisses eingeben oder "path", um den Suchpfad für startbare Programme sich anzeigen zu lassen.

Unter Linux/Mac OS kann man analog den Befehl "ls -l" zur Anzeige der Dateien/Unterverzeichnisse des aktuellen Verzeichnisses eingeben oder "echo $PATH", um den Suchpfad für startbare Programme sich anzeigen zu lassen.

Beim Programmieren kann man z.B. den Compiler bei komplizierteren Übersetzungsvorgängen starten. Da der GCC-C++-Compiler eine nahezu identische Eingabeform unter verschiedenen Betriebssystemen hat, hängt normalerweise der Aufruf gar nicht vom Betriebssystem ab. "g++ -ansi -Wall -pedantic tanken_fkt_main.cpp tanken_fkt.cpp" übersetzt sowohl die Quelldatei "tanken_fkt_main.cpp" mit der main()-Funktion als auch die Quelldatei "tanken_fkt.cpp" für die Funktionen und startet danach automatisch den Linker, der dann das ausführbare Programm erzeugt.

synonyme Begriffe:

Befehlszeile = Kommandozeile = command line interface (CLI)
Terminal = Konsole (engl.: console)
Programmmodul = Programmteil
Interface = Eingabebereich

weitere Informationen

18. Sourcecode/Quelltext:

Beispiel:

  Ein erstes Beispiel wäre die Datei "bsp_01.cpp" mit dem Hello-World-Programm aus der Vorlesung.
  

Erklärung:

Der Quelltext ist der in einer Datei gespeicherte Text, der Anweisungen/Deklarationen nach den Regeln einer Programmsprache enthält. Dieser ist im Gegensatz zu Maschinencode für einen Menschen (leicht) lesbar.
Die Datei, die einen C++-Sourcecode enthält, trägt im Allgemeinen die Endung ".cpp".

synonyme Begriffe:

Quellcode (engl.: source code) = Programmcode = Quelltext

weitere Informationen

19. Deklaration:

Beispiel:

  Beispiele für Variablendeklarationen:
   int wert;
   double erg;
   string name;

  Deklaration einer Funktion durch Funktionsprototyp:
   int summe(int a, int b);
  

Erklärung:

Eine Deklaration dient dazu, dem Compiler wichtige Eigenschaften von Variablen oder Funkionen mitzuteilen. Darunter fallen der Name der Variable, ihr Datentyp, bei Arrayvariablen ihre Dimension, aber auch weitere Aspekte (z.B. ob die Variable konstant oder veränderbar ist, ob sie in einer externen Programmdatei definiert ist oder lokal vorliegt, ...). Der Compiler kann dann bei späteren Verwendungen der Variable oder der Funktion prüfen, ob diese korrekt benutzt wird (z.B. die Argumentanzahl einer Funktion passt, ob die Wertanweisung an die Variable durchführbar ist, ...). Zudem kann auch der Datentyp eines Terms (Ausdruckes) abhängig vom Datentyp des Funktionsergebnisses oder der Variable berechnet werden.
                  double zahl = 1.25, erg;

                  // der Term "1/zahl" wird als double-Wert erkannt,
                  // da "zahl" eine double-Variable ist
                  cout << "Kehrbruch = " << 1/zahl << endl;


                  // der Term "2*exp(-zahl)" wird als double-Wert erkannt,
                  // weil die Funktion "exp(..)" fuer double-Argumente
                  // einen double-Wert als Funktionsergebnis liefert
                  erg = 2*exp(-zahl);
                

Eigentlich muss man strikt zwischen einer Deklaration und einer Definition unterscheiden. Eine Definition legt eine Funktionsrealisierung fest, eine Deklaration kündigt nur u.a. die Argumentliste, den Datentyp des Funktionsergebenissen und den Funktionsnamen dem Compiler an.

                   // Funktionsprototyp = Deklaration der Funktion
                   double maximum(double x, double y);

                   // Funktionsdefinition
                   double maximum(double x, double y)
                   {
                     if (x <= y)
                       return y;
                     else
                       return x;
                   }

                   int main()
                   {
                     // (Deklaration und) Definition der Variable "zahl"
                     double zahl;
                     // nur Deklaration der extern angelegten Variable "parameter"
                     // (die Variable wird in einem anderen Quelltext definiert)
                     extern double parameter;
                   }
                

weitere Informationen

20. Bezeichner:

Beispiel:

  Der Name einer Variable, z.B. „variable1“ im folgenden Beispiel:
   int variable1;

  Wird später etwas mit der Variable gemacht, wird sie durch den Bezeichner eindeutig identifiziert:
   variable1 = 42;

  In C++ wird dabei zwischen Groß- und Kleinschreibung unterschieden.
  

Erklärung:

Ein Bezeichner dient zur eindeutigen Identifikation einer Variable, Funktion, eines Datentyps, ... . Die Eindeutigkeit kann auch mit sogenannten Namensräumen auf einen Teilbereich des Quelltextes eingeschränkt werden.

synonyme Begriffe:

Identifikator (engl.: identifier) = Bezeichner

weitere Informationen

21. Wertzuweisung:

Beispiel:

  Der Variablen "zahl" wird der Wert 2 zugewiesen:
   zahl=2;

  Der booleschen Variable "aussage" wird der logische Wert "true" zugewiesen:
   aussage=true;

  Der Wert, den der Benutzer mit der Tastatur eingibt, wird
                der Variablen "nummer" zugewiesen:
   cin >> nummer;
  

Erklärung:

Die Wertzuweisung ändert den Inhalt einer Variablen. Dabei ist zu beachten, dass der zugewiesene Wert (steht rechts von dem Gleichheitszeichen) im einfachsten Fall denselben Datentyp wie die Variable hat. Ist dies nicht der Fall, versucht der Compiler, den zuzuweisenden Wert vom Datentyp an den Datentyp der Variable (links von dem Gleichheitszeichen) anzupassen (eine implizite Datentypumwandlung tritt auf). Bei einer impliziten Datentypumwandlung kann entweder der Wert erhalten bleiben (nur das Format ändert sich evtl.) oder dieser wird beim Anpassen geändert.

weitere Informationen

22. Anweisung:

Beispiel:


   if (3 > zahl)
      zahl=3;
   else
      zahl=1;

  Diese vier Zeilen entsprechen einer Anweisung (if-Anweisung),
                die selbst wieder Teilanweisungen enthält (z.B. die Wertzuweisung "zahl=3;", falls "3 > zahl" ist).
  

Erklärung:

Eine Anweisung ist eine Arbeitsvorschrift in einem Programm. Diese kann aus mehreren Teilanweisungen bestehen oder sie ist nicht weiter zerlegbar (direkter Befehl).
In der Maschinensprache kann die Bezeichnung "Anweisung" direkt als Synonym für Befehl gesehen werden, in höheren Programmiersprachen (z.B. C++) gilt dies nicht, da eine Anweisung aus mehreren Befehlsfolgen bestehen kann.

weitere Informationen

23. Operator/Operand:

Beispiel:

   2*3
   a==4

  Hier sind 2, 3, 4 bzw "a" die Operanden, * und == sind die Operatoren, wobei letzterer in C++ auf Gleichheit testet.
  Weitere Operatoren sind u.a.:
   +, -, /, !=, <, &&
  

Erklärung:

Der Operator ist das Zeichen, das symbolisiert, welche mathematische oder logische Operation ausgeführt werden soll. Der Operator bezieht sich immer auf Operanden und hat selbst wieder einen Wert (und damit einen Datentyp). Der Operand ist im einfachsten Fall z.B. ein numerischer Wert oder ein String, kann aber auch selbst wieder ein Ausdruck (Term) sein, der selbst wieder aus Operanden und Operatoren besteht.

weitere Informationen

24. Datentypen:

Beispiel:

  In C++ gibt es z.B. die Standarddatentypen int (ganze Zahlen), float und double (einfach und doppelt genaue Gleitkommazahlen), char (Zeichen).
  Weiterhin lassen sich Aufzählungsdatentypen (engl.: enumerations oder enums) sowie komplett selbst definierte Datentypen (Strukturen, Klassen,
  wie z.B. string für Zeichenketten) festlegen.
  

Erklärung:

Der Datentyp gibt an, welchen Wertebereich eine Variable (von diesem Datentyp) annehmen kann und welche Operationen für diese Variable erlaubt sind. Beispiele können Ganz- oder Gleitkommazahlen, Zeichenketten oder auch komplexere Datentypen wie Strukturen (zusammengesetzt aus Variablen i.a. unterschiedlichen Datentyps) oder Klassen sein.
Ohne die Angabe eines Datentyps kann man in C++ keine Variablen anlegen/benutzen.
Selbst numerische Zahlenwerte, konstante Zeichenketten oder ganz allgemein Ausdrücke (Terme) haben einen zugehörigen Datentyp.

weitere Informationen

25. Variable:

Beispiel:

   int zahl;

   zahl=2;
                        ...
   zahl=4;

  Der Wert der ganzzahligen Variablen "zahl" lässt sich beliebig oft ändern.


   bool aussage;

   aussage=true;
                        ...
   aussage=false;

  Dies ist eine boolesche Variable. Sie kann die logischen Werte "true" und "false" annehmen. Im Rechner werden sie mit
  "true" bzw "false" repräsentiert.
  

Erklärung:

Eine Variable ist eine Größe, deren Wert sich (im Gegensatz zu Konstanten) ändern kann. Sie muss in typgebundenen Programmiersprachen wie C, C++, Java einen Datentyp besitzen. Ihr Name bietet eine einfache Möglichkeit, um Werte in einem vom Compiler (automatisch) festgelegten Speicherort abzulegen oder den abgespeicherten Wert abzurufen.

weitere Informationen

26. globale/lokale Variablen:

Beispiel:

   int zahl=0;

   int main()
   {
      for (int i=1; i<10; i++)
     zahl=zahl+i;
         ...
         return 0;
   }

  Hier ist "zahl" eine globale Variable und "i" eine lokale Variable.
  

Erklärung:

Globale Variablen sind für das ganze Programm deklariert und können i.d.R. jederzeit aufgerufen werden. Lokale Variablen existieren jeweils nur in den (Teilbereichen von) Funktionen, in denen sie deklariert wurden.
Wegen schlechter verständlichen Quelltext und wegen schwer feststellbaren, versehentlichen Änderungen sollte man auf globale Variablen verzichten. Dagegen sind globale Konstante durchaus üblich.

weitere Informationen

27. Konstante:

Beispiel:


   const int zahl=4;
   zahl=2;

  "zahl" ist hier eine Konstante und hat immer den Wert 4.
  Versucht man der Konstante einen neuen Wert zuzuweisen, bringt der Compiler eine Fehlermeldung.
  

Erklärung:

Eine Konstante muss sofort bei der Definition einen festen Wert zugewiesen bekommen und behält diesen dauerhaft. Weder durch eine neue Anweisung im Quellcode kann man den Wert einer Konstante ändern noch können Konstanten einen Wert zugewiesen bekommen, der z.B. durch die Standardeingabe durch den Anwender festgelegt wird.

28. Array:

Beispiel:

   int zahlen[7];
       zahlen = {2,3,5,7,11,13,17};

  Die erste Arraykomponente hat in C++ den Index 0, d.h. zahlen[0] = 2, während zahlen[1] = 3.
  

Erklärung:

Ein Array (Betonung auf 2. Silbe) ist einerseits ein zusammengesetzter Datentyp, meint aber auch gleichzeitig eine Variable dieses Datentyps. Eine Arrayvariable speichert (ein oder) mehrere Variablen desselben Datentyps und bietet über einen Index einen bequemen Zugriff auf die im Array zusammengefassten Variablen. Mit dem Index und z.B. einer for-Schleife kann man elegant mehrere/viele Variablen ansprechen und bearbeiten.

Kann sich die Länge des Arrays zur Laufzeit ändern, spricht man von dynamischen Arrays, ansonsten von statischen Arrays.

synonyme Begriffe:

Feld = Array
Vektor = (eindimensionales) Array
Matrix = (zweidimensionales) Array

weitere Informationen

29. String:

Beispiel:

   #include <string>
   ...
   string name;
   name = "Marvin";
  

Erklärung:

Eine Zeichenkette (engl.: String) ist wie ein Array einerseits ein zusammengesetzter Datentyp und andererseits auch eine Variable dieses Typs. Die Zeichenkette besteht aus einer geordneten Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen und Steuerzeichen) aus einem definierten Zeichensatz. Zeichen können sich in einer Zeichenkette wiederholen, die Reihenfolge der Zeichen ist festgelegt. Die Länge ist je nach konkretem Datentyp zur Abspeicherung fest oder kann sich zur Laufzeit ändern. Da Leerzeichen und der Punkt erlaubte Zeichen sind, kann man ganze Wörter oder Sätze in einer Zeichenkette ablegen. In C ist eine Realisierung einer Zeichenkette ein Array aus Zeichen vom Datentyp char, in C++ wird eine Zeichenkette häufig in ein Objekt der vordefinierten Klasse string abgelegt.

weitere Informationen

30. Implementierung:

Erklärung:

Implementierung wird meist als Synonym für Programmierung verwendet. Die Implementierung einer Funktion bedeutet nichts anderes als die Funktionsdefinition. Bei einer Implementierung einer ganzen Klasse (spezieller Datentyp) versteht man normalerweise die Bereitstellung aller in der Klasse festgelegten Methoden (Funktionen) und objektunabhängiger Datenelemente.

31. Funktion:

Beispiel:

   int summe(int zahl)
   {
      int summe=0;
       for (int i=1; i<=zahl; i++)
            summe=summe+i;
     return summe;
   }

  Das erste "int" gibt an, dass der Datentyp des Rückgabewertes vom Typ "int" ist. "summe" ist der Name der
  Funktion und "int zahl" der (einzige) Parameter vom Datentyp "int".
  

Erklärung:

Eine Funktion ist ein Programmteil, dessen Aufgabe sich meist darauf beschränkt, einen numerischen oder logischen Wert zurückzugeben. Funktionen setzt man zur besseren Gliederung (oft funktionsorientierter) Programme ein (z.B. eine Funktion zur Eingabe aller Werte, eine zur Berechnung von Werten, eine zur Ausgabe, ...). Sie dienen auch dazu, gleiche oder sehr ähnliche Programmteile durch einen Funktionsaufruf mit gleichen (oder leicht verschiedenen) Funktionsargumenten abzukürzen.
Bei einer Funktion muss man neben den eigentlichen Anweisungen deren Namen, den Datentyp des Rückgabewertes und optional Funktionsargumente definieren.

weitere Informationen

32. Rückgabewert:

Beispiel:

   int fakultaet(int zahl)
   {
       if (zahl<0)
          {
           cout << "Die Fakultät ist nicht für negative Zahlen definiert!" << endl;
           return -1;
       }
          else
          {
                 int erg=1;
                  for (int i=1; i<=zahl; i++)
              erg=erg*i;
              }
          return erg;
   }

  Hier ist entweder "erg" oder "-1" der Rückgabewert. Sollte "-1" zurückgegeben werden, dann weiß der Benutzer
  (auch ohne der Fehlermeldung), dass bei der Fakultätsberechnung etwas schief gelaufen ist.
  

Erklärung:

Der Rückgabewert ist ein Wert, den eine Prozedur beim Programmieren zurückgbit, nachdem sie ausgeführt wurde. Anhand des Rückgabewertes kann entschieden werden, welche Schritte als nächstes auszuführen sind. Rückgabewerte können auch angeben, ob eine Prozedur erfolgreich ausgeführt wurde oder nicht.

33. Parameter:

Beispiel:

   zahl=pow(7, 3);

  Diese Funktion berechnet 7^3. Hier sind 7 und 3 die (Übergabe-)Parameter.
  

Erklärung:

Platzhalter für die Übergabe von Daten bei Befehlen oder Funktionen.

weitere Informationen

34. Prozedur:

Beispiel:

   void ausgabe(int zahl)
   {
    cout << "Es wurde die Zahl " << zahl << " übergeben." << endl;
   }
  

Erklärung:

Eine Prozedur ist ein gesonderter Teil eines Programmes. Sie lässt sich einzeln aufrufen und ausführen. Oft werden sie in Bibliotheken zusammengefasst und immer wieder benutzt, auch von mehreren Programmen.
Funktionen, die keinen Rückgabewert besitzen, werden auch als Prozedur bezeichnet.

weitere Informationen

35. Iteration:

Beispiel:

   int summe=0;
   for (int i=1; i<=10; i++)
       summe=summe+i;

  Ein Algorithmus, mit dem man die ersten 10 Zahlen aufsummiert. "i<=10" ist die Bedingung und nach jedem
  Schleifendurchang wird "i" um 1 erhöht.
  

Erklärung:

Die wiederholte Ausführung einer oder mehrerer Anweisungen um Probleme bzw Aufgaben zu lösen, wird Iteration genannt. Dabei muss es mindestens eine Bedingung geben, die dafür sorgt, dass die Iteration irgendwann beendet wird. Iterationen lassen sich mit Hilfe von Schleifen realisieren. Im obigen Beispiel ist "i" der sogenannte Iterator.

36. Rekursive Programmierung:

Beispiel:

   fakultaet_rekursiv(n)
   {
      if (n <= 1)
           return 1;
          else
     return ( n * fakultaet_rekursiv(n-1) );
   }
  

Erklärung:

Bei der rekursiven Programmierung ruft sich eine Prozedur, Funktion oder Methode in einem Computerprogramm selbst wieder auf. Auch der gegenseitige Aufruf stellt eine Rekursion dar.

weitere Informationen

37. Headerfile/Realisierungsfile/Anwendungsfile:

Beispiel:

   
Headerfile funktionen.hpp:
#include using namespace std; int summe(int a, int b); bool gleich(int a, int b);
Realisierungsfile funktionen.cpp:
#include "funktionen.hpp" int summe(int a, int b) { return a+b; } bool gleich(int a, int b) { return a==b; }
Anwendungsfile main.cpp:
#include "funktionen.hpp" int main() { int zahl1 = 1, zahl2 = 2, erg; bool equals; erg = summe(zahl1,zahl2); equals = gleich(zahl1,zahl2); return 0; }

Erklärung:

Eine Header-Datei ist in der Programmierung, insbesondere bei den Programmiersprachen C++ und C, eine Textdatei, die Deklarationen und andere Bestandteile des Quelltextes enthält. Quelltext, der sich in einer Header-Datei befindet, ist im Allgemeinen zur Verwendung in mehreren Programmen oder mehreren Teilen eines Programmes vorgesehen. Das Realisierungsfile enthält die tatsächliche Definition der im Headerfile deklarierten Methoden und Funktionen. Im Anwendungsfile erfolgt schließlich der Aufruf der deklarierten und definierten Funktionen.

weitere Informationen

38. Kommentar:

Beispiel:








  

Erklärung:

Kommentare werden beim kompilieren des Quellcodes ignoriert und stellen "nur" eine Anmerkung zum Quelltext dar. Kommentare machen Programme bei (sinnvollen) Gebrauch leichter verständlich.

39. Syntax:

Beispiel:

  Deklaration und Wertzuweisung einer Variable in C++:
   int wert;
   wert = 42;

  Formal muss zunächst der Typ der Variable, hier int, angegeben werden, anschließend der Bezeichner, der eindeutig sein muss
  und zugleich kein Schlüsselwort sein darf. Bei der Zuweisung muss der Bezeichner der Variable zwingend links stehen, rechts
  steht, getrennt durch ein =, der zugewiesene Wert. Jede Codezeile muss außerdem durch ein Semikolon abgeschlossen werden.

  Ein äquivalentes Programmstück ist:
   int wert = 42;

  Das zeigt auch, dass die Syntax nicht immer eindeutig festgelegt ist.

  Bei falscher Syntax wie z.B.
   42 = wert;
   wert := 42;
   wert <- 42;
  zeigt der Compiler einen Syntaxfehler an.
  

Erklärung:

Unter der Syntax einer formalen Sprache (formale Syntax) – wie etwa Programmiersprachen in der Informatik oder Kalküle in der Logik – versteht man ein System von Regeln, nach denen erlaubte Konstruktionen bzw. wohlgeformte Ausdrücke aus einem grundlegenden Zeichenvorrat (dem Alphabet) gebildet werden – wobei von der inhaltlichen Bedeutung der Zeichen abgesehen wird bzw. werden kann.

40. Syntaxhervorhebung:

Beispiel:

  Der Editor in Codeblocks stellt in den Standardeinstellungen Kommentare grau dar.
  Präprozessorbefehle werden dagegen grün markiert.
  

Erklärung:

Syntaxhervorhebung, auch Syntax highlighting genannt, bezeichnet die Möglichkeit eines Computerprogrammes, bestimmte Wörter und Zeichenkombinationen in einem Text abhängig von ihrer Bedeutung in unterschiedlichen Farbe, Schriftarten und -stilen darzustellen.

weitere Informationen

41. Input/Output (I/O):

Beispiel:

  Das Programm fordert den Benutzer auf, eine Zahl einzugeben (Output):
   cout << "Geben Sie eine Zahl ein: ";

  Das Programm empfängt die eingegebene Zahl (Input):
   cin >> zahl;
  

Erklärung:

Mit Input/Output (Ein-/Ausgabe) bezeichnet man die Kommunikation bzw Interaktion eines Informationssystems mit seiner "Ausßenwelt", z.B. seinen Benutzern oder anderen Informationssystemen, und Aktionen zum Lesen und Schreiben von Daten.

weitere Informationen

42. Algorithmus:

Beispiel:

  Euklidischer Algorithmus zur Berechnung des ggT zweier Zahlen (in Pseudocode):
   EUCLID(a,b)
   1 solange b != 0
   2 h <- mod b
   3 a <- b
   4 b <- h
   5 return a
  

Erklärung:

Ein Algorithmus ist ein schrittweises, präzises Verfahren zur Lösung eines Problems.

weitere Informationen

43. Datenstruktur:

Beispiel:

   Array, verkettete Liste, Stack, ...
  

Erklärung:

Eine Datenstruktur ist ein mathematisches Objekt zur Speicherung von Daten. Es handelt sich um eine Struktur, weil die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden, um den Zugriff auf sie und ihre Verwaltung geeignet zu ermöglichen. Datenstrukturen sind daher nicht nur durch die enthaltenen Daten charakterisiert, sondern vor allem durch die Operationen auf diesen Daten, die Zugriff und Verwaltung realisieren.

weitere Informationen

top top