C++-Programmierung/ Vorlagen

Aus Wikibooks
Zur Navigation springen Zur Suche springen

<--zurück zum Buch
Hier sind alle Vorlagen für das Buch C++-Programmierung untergebracht und es wird an neuen Entwürfen gearbeitet bzw. über diese diskutiert. Bitte helft mit, die Vorlagen zu verbessern.--FreakFlo


Einleitung[Bearbeiten]

Da wir gern die Kontrolle über die in diesem Buch verwendeten Vorlagen behalten möchten, stehen alle Vorlagen im Namensraum des Buches. Um eine Vorlage aus dem Namensraum eines Buches zu verwenden, ist es nötig, den kompletten Namen anzugeben und ihm noch einen Doppelpunkt voranzustellen. Lediglich die Inline-Quellcode-Vorlage ist global und somit im Fließtext nicht störend.

Liste[Bearbeiten]

Hier sind alle Vorlagen einfach aufgelistet, falls Sie nur auf der Suche nach dem Namen sind. Lassen Sie sich bitte nicht von den verschiedenen Versionen für HTML und PDF stören, für die Verwendung im Buch müssen Sie die verschiedenen Versionen nicht beachten. Sie sind hier nur verlinkt, falls Sie sich den Aufbau ansehen möchten.

Bucheigene Vorlagen:

Globale Vorlagen

Tipp und Hinweis[Bearbeiten]

Wenn ein Tipp oder ein Hinweis (auf Gefahren) gegeben werden soll, so geschieht dies in einer sogenannten Box. Diese Box wird durch eine Vorlage realisiert. Wie Sie die Vorlagen verwenden, erfahren Sie gleich, lesen Sie bitte auch den Inhalt der Vorschauboxen, da sie auch wichtige Tipps und Hinweise enthalten.

Tipp[Bearbeiten]

Tipps werden verwendet, wenn der Leser auf etwas Nützliches aufmerksam gemacht werden soll.

Quelltextvorschau:

{{:C++-Programmierung/ Vorlage:Tipp|
Ihr Text für den Tipp. Es ist möglich, die ''Wikiformatierung'' zu benutzen.

Auch weitere Vorlagen könnten beliebig verschachtelt werden.
}}

So sieht's aus:

Symbol confirmed.svg
Tipp

Ihr Text für den Tipp. Es ist möglich, die Wikiformatierung zu benutzen.

Auch weitere Vorlagen könnten beliebig verschachtelt werden.

Hinweis[Bearbeiten]

Hinweise werden verwendet, wenn der Leser auf einen Stolperstein aufmerksam gemacht werden soll.

Quelltextvorschau:

{{:C++-Programmierung/ Vorlage:Hinweis|
1=
Achtung, das ist ein Hinweis an alle Autoren dieses Buches: Wenn Sie innerhalb
einer Vorlage ein <code>=</code> verwenden, müssen Sie, wie auch in diesem Hinweis,
ein <code>1=</code> (Eins-Istgleich) voranstellen. Sonst wird alles vor Ihrem
<code>=</code> im Text als Parametername interpretiert.

Die Zeilenumbrüche in diesem Beispiel wurden übrigens eingefügt, um ein
ellenlanges Horizontalscrolling bei der Quelltextvorschau zu verhindern.
}}

So sieht's aus:

Symbol opinion vote.svg
Hinweis

Achtung, das ist ein Hinweis an alle Autoren dieses Buches: Wenn Sie innerhalb einer Vorlage ein = verwenden, müssen Sie, wie auch in diesem Hinweis, ein 1= (Eins-Istgleich) voranstellen. Sonst wird alles vor Ihrem = im Text als Parametername interpretiert.

Die Zeilenumbrüche in diesem Beispiel wurden übrigens eingefügt, um ein ellenlanges Horizontalscrolling bei der Quelltextvorschau zu verhindern.

Später, woanders und nicht[Bearbeiten]

Wir haben drei Vorlagen, die verwendet werden, wenn ein Thema an dieser Stelle (dort wo die Vorlage verwendet wird) nicht erklärt ist.

Später im Buch[Bearbeiten]

Quelltextvorschau:

{{:C++-Programmierung/ Vorlage:Später im Buch|
Diese Vorlage verwenden wir, wenn ein Thema später noch ausführlich behandelt wird.
Die Vorlage sollte immer einen Verweis auf die Seite(n) enthalten, auf denen das
Thema beschrieben steht. Wenn ein Thema noch innerhalb eines Kapitels (der Seite
die Sie gerade editieren) behandelt wird, so reicht ein einfacher Hinweis im Text.
Die Vorlage muss ja nicht unnötig Platz wegnehmen, wenn es sowieso nur noch ein
paar Zeilen bis zur Beschreibung sind.
}}

So sieht's aus:

Symbol move vote.svg
Thema wird später näher erläutert…

Diese Vorlage verwenden wir, wenn ein Thema später noch ausführlich behandelt wird. Die Vorlage sollte immer einen Verweis auf die Seite(n) enthalten, auf denen das Thema beschrieben steht. Wenn ein Thema noch innerhalb eines Kapitels (der Seite die Sie grade editieren) behandelt wird, so reich ein einfacher Hinweis im Text. Die Vorlage muss ja nicht unnötig Platz wegnehmen, wenn es sowieso nur noch ein paar Zeilen bis zur Beschreibung sind.

Anderes Buch[Bearbeiten]

Quelltextvorschau:

{{:C++-Programmierung/ Vorlage:Anderes Buch|
Diese Vorlage kommt zum Einsatz, wenn ein Thema nicht innerhalb des Buches behandelt
wird, aber bereits ein Wikibuch zum Thema existiert. Ein Hinweis auf den Fortschritt
des entsprechenden Buches sollte gegeben werden, damit der Leser sich nicht ärgert,
wenn er auf den Buchlink klickt und dort nur drei halbfertige Seiten vorfindet.
}}

So sieht's aus:

Symbol redirect vote.svg
Buchempfehlung

Diese Vorlage kommt zum Einsatz, wenn ein Thema nicht innerhalb des Buches behandelt wird, aber bereits ein Wikibuch zum Thema existiert. Ein Hinweis auf den Fortschritt des entsprechenden Buches sollte gegeben werden, damit der Leser sich nicht ärgert, wenn er auf den Buchlink klickt und dort nur drei halbfertige Seiten vorfindet.

Nicht näher beschrieben[Bearbeiten]

Quelltextvorschau:

{{:C++-Programmierung/ Vorlage:Nicht näher beschrieben|
Wenn alle Stricke reißen und das Thema weder in diesem noch in einem anderen Wikibuch
beschrieben ist, dann verwenden Sie diese Vorlage. Natürlich ist es möglich, den
Leser dann auf alternative Adressen im Web aufmerksam zu machen, aber mit dieser
Möglichkeit sollte sparsam verfahren werden. Außerdem sollten externe Links immer
vollständig in Textform angegeben werden, damit auch ein Leser, der das Buch
gedruckt hat, den Link nachvollziehen kann.
}}

So sieht's aus:

Symbol oppose vote oversat.svg
Nicht Thema dieses Buches…

Wenn alle Stricke reißen und das Thema weder in diesem noch in einem anderen Wikibuch beschrieben ist, dann verwenden Sie diese Vorlage. Natürlich ist es möglich, den Leser dann auf alternative Adressen im Web aufmerksam zu machen, aber mit dieser Möglichkeit sollte sparsam verfahren werden. Außerdem sollten externe Links immer vollständig in Textform angegeben werden, damit auch ein Leser, der das Buch gedruckt hat, den Link nachvollziehen kann.

Navigation[Bearbeiten]

Unsere Navigationsvorlage steht am Anfang und am Ende jedes Kapitels. Sie wird folgendermaßen eingebunden:

Quelltextvorschau:

<noinclude>
{{:C++-Programmierung/ Vorlage:Navigation}}
</noinclude>

Sie erwartet keine Parameter, da die nötigen Verlinkungen anhand des Seitennamens ermittelt werden können. Dies hat, abgesehen von der einfachen Einbindung, den Vorteil, das im Inhaltsverzeichnis problemlos die Kapitelreihenfolge geändert, Kapitel hinzugefügt oder gelöscht, umbenannt, zusammengeführt oder aufgeteilt werden können, ohne das „umliegende“ Seiten geändert werden müssen.

Kapitelanhang[Bearbeiten]

Am Ende jedes Kapitels, sollte die Vorlage "Kapitelanhang" eingebunden werden. Ohne Parameter wird nichts angezeigt, aber der Soll-Zustand eines Kapitels besagt, dass es (wenn möglich) durch eine kurze Zusammenfassung und ein paar Fragen und Aufgaben zum Üben beendet werden sollte.

Entsprechend sind die Parameter der Vorlage:

  • Zusammenfassung=Eine kurze Zusammenfassung des Kapitels
  • Fragen=Eine oder mehrere Fragen
  • Aufgaben=Eine oder mehrere Aufgaben

Quelltextvorschau:

{{:C++-Programmierung/ Vorlage:Kapitelanhang
|Zusammenfassung=
Das ist die Zusammenfassung zum Kapitel X.
|Fragen=
Hier stehen Fragen...
|Aufgaben=
Hier sind die Übungsaufgaben...
}}

So sieht's aus:

Crystal source cpp.png

Im Anhang zu diesem Kapitel finden Sie:

  • Eine Zusammenfassung zu diesem Kapitel.
  • Fragen und die dazugehörigen Antworten.
  • Aufgaben und zugehörige Musterlösungen.
Zusammenfassung
Das ist die Zusammenfassung zum Kapitel X.
Fragen
Hier stehen Fragen...
Aufgaben

Hier sind die Übungsaufgaben...

Auch für Fragen und Aufgaben gibt es eine Vorlage. Diese wird einfach in die Kapitelanhang-Vorlage verschachtelt:

Quelltextvorschau:

{{:C++-Programmierung/ Vorlage:Kapitelanhang
|Zusammenfassung=
Das ist die Zusammenfassung zum Kapitel X.
|Fragen=
{{:C++-Programmierung/ Vorlage:Frage
|Nummer=1
|Frage=Wie viele Fragen werden hier gestellte?
|Antwort=2
}}

{{:C++-Programmierung/ Vorlage:Frage
|Nummer=2
|Frage=Ist diese Beschreibung verständlich?
|Antwort=
Das müssen Sie wissen. Wenn nicht schreiben, Sie bitte auf die
Diskussionsseite, was unklar ist.
}}
|Aufgaben=
{{:C++-Programmierung/ Vorlage:Frage
|Nummer=1
|Aufgabe=Helfen Sie mit Wikibooks zu verbessern.
|Lösung=
Wenn Sie das lesen sind Sie wahrscheinlich schon dabei, daher wird an dieser
Stelle darauf verzichtet, eine Erklärung zu schreiben, wie Sie dies tun könnten.
}}
}}

So sieht's aus:

Crystal source cpp.png

Im Anhang zu diesem Kapitel finden Sie:

  • Eine Zusammenfassung zu diesem Kapitel.
  • Fragen und die dazugehörigen Antworten.
  • Aufgaben und zugehörige Musterlösungen.
Zusammenfassung
Das ist die Zusammenfassung zum Kapitel X.
Fragen
Symbol question.svg Frage 1: Wie viele Fragen werden hier gestellte?

2

Symbol question.svg Frage 2: Ist diese Beschreibung verständlich?

Das müssen Sie wissen, wenn nicht schreiben Sie bitte auf die Diskussionsseite was unklar ist.

Aufgaben
Symbol neutral vote.svg Aufgabe 1: Helfen Sie mit Wikibooks zu verbessern.

Wenn Sie das lesen, sind Sie wahrscheinlich schon dabei, daher wird an dieser Stelle darauf verzichtet, eine Erklärung zu schreiben, wie Sie dies tun könnten.

Das ist nicht sehr übersichtlich, aber immer noch die einfachste Möglichkeit und sobald Sie das Prinzip dahinter verstanden haben, ist es leicht.

Zusammengefasst:

  • :C++-Programmierung/ Vorlage:Kapitelanhang
    • Zusammenfassung=Eine kurze Zusammenfassung des Kapitels
    • Fragen=Eine oder mehrere Fragen (Vorlage: :C++-Programmierung/ Vorlage:Frage)
    • Aufgaben=Eine oder mehrere Aufgaben (Vorlage: :C++-Programmierung/ Vorlage:Aufgabe)
  • :C++-Programmierung/ Vorlage:Frage
    • Nummer=Die wievielte Frage es ist
    • Frage=Ihre Frage
    • Antwort=Ihre Antwort darauf
  • :C++-Programmierung/ Vorlage:Aufgabe
    • Nummer=Die wievielte Aufgabe es ist
    • Frage=Ihre Aufgabe
    • Lösung=Eine Musterlösung

Quelltext[Bearbeiten]

Um Quelltext darzustellen, verwenden wir die Vorlage „C++-Programmierung/ Vorlage:Code“. Sie ist etwas platzsparender als die regalweite Code-Vorlage, ähnelt ihr aber sowohl vom aussehen, als auch von den Parametern her.

{{:C++-Programmierung/ Vorlage:Code
|code=
#include <iostream>

using namespace std;

int main(){
    cout << "Hallo Welt\n";
}
}}
Nuvola-inspired-terminal.svg
1 #include <iostream>
2 
3 using namespace std;
4 
5 int main(){
6     cout << "Hallo Welt\n";
7 }

Parameter der immer übergeben wird:

code=
Ihr Quelltext

Optionale Parameter:

  • output
  • kopf
  • fuss
  • valid (Wahrheitswert)
  • error (Wahrheitswert)

Leider ist die Syntaxhervorhebung für C++ noch recht fehlerhaft, aber das wird sich mit der Zeit hoffentlich bessern.

{{:C++-Programmierung/ Vorlage:Code
|kopf=Beispiel mit Kopfzeile und Ausgabe
|code=
#include <iostream>

int main(){
    std::cout << "Hallo Welt\n";
}
|output=
Hallo Welt
}}
Nuvola-inspired-terminal.svg

Beispiel mit Kopfzeile und Ausgabe


1 #include <iostream>
2 
3 int main(){
4     std::cout << "Hallo Welt\n";
5 }
Crystal Clear app kscreensaver.svg
Ausgabe:
1 Hallo Welt

{{:C++-Programmierung/ Vorlage:Code
|kopf=So sollte man das besser nicht machen
|error=true
|code=
#include <iostream>

int main(){
    double x = 5 / 2;  // Integer-Division
    std::cout << x << std::endl;
}
|output=
2
}}
Crystal Clear action button cancel.svg

So sollte man das besser nicht machen


1 #include <iostream>
2 
3 int main(){
4     double x = 5 / 2;  // Integer-Division
5     std::cout << x << std::endl;
6 }
Crystal Clear app kscreensaver.svg
Ausgabe:
1 2

{{:C++-Programmierung/ Vorlage:Code
|valid=true
|code=
#include <iostream>

int main(){
    double x = 5.0 / 2;  // Gleitkomma-Division
    std::cout << x << std::endl;
}
|output=
2.5
|fuss=... das ist besser (dieser Text steht in der Fußzeile)
}}
CrystalClearActionApply.svg
1 #include <iostream>
2 
3 int main(){
4     double x = 5.0 / 2;  // Gleitkomma-Division
5     std::cout << x << std::endl;
6 }
Crystal Clear app kscreensaver.svg
Ausgabe:
1 2.5

... das ist besser (dieser Text steht in der Fußzeile)

Quelltext im Fließtext[Bearbeiten]

Wenn Sie C++-Code im Fließtext schreiben wollen, dann benutzen Sie die cpp-Vorlage: {{cpp|int main(){std::cout << "quatsch" << std::endl;}} wird zu int main(){std::cout << "quatsch" << std::endl;.

Zu Beachten ist bei den Vorlagen, dass die Oder-Operatoren (| und ||) durch die Vorlagen {{!}} und {{!!}} ersetzt werden müssen. Im Fließtext ist weiterhin darauf zu achten, das wenn der Quellcode ein „=“ enthält durch ein „1=“ eingeleitet werden muss. (Beispiel: {{cpp|1=c = a + b}})

Syntaxbeschreibung[Bearbeiten]

Diese Vorlage entspricht im wesentlichen der Code-Vorlage. Sie erwartet nur den Parameter „code“. Um etwas als Nicht-C++-Code auszuzeichnen wird es in «Nicht-C++-Code» gesetzt. Optionale Bestandteile werden in »optional« gesetzt.

Beispiel:

{{:C++-Programmierung/ Vorlage:Syntax
|code=
switch(«Variable»){
    case «Wert»:
        «Anweisung»
        «...»
        »break;«

    «...»

    default: // Wird ausgeführt, falls die Variable keinem der Werte entsprach
        «Anweisung»
        «...»
}
}}
Crystal Project Tutorials.png
Syntax:
switch(«Variable»){
    case «Wert»:
        «Anweisung»
        «...»
        »break;«

    «...»

    default: // Wird ausgeführt, falls die Variable keinem der Werte entsprach
        «Anweisung»
        «...»
}
«Nicht-C++-Code», »optional«

Buchinterne Links[Bearbeiten]

Da das Buch entweder Kapitelweise oder Abschnittsweise gelesen werden kann, ist es notwendig, dass Buchinterne Links sich entsprechend der verwendeten Version verhalten. Dies wird mithilfe einer Vorlage realisiert. Prinzipiell ist das Buch in Abschnitte aufgeteilt, diese Bestehen wiederum aus mehreren Kapiteln und die Kapitel haben meist mehrere Unterüberschriften. Entsprechend erwartet die Vorlage die folgenden Parameter:

  • Text (optional) – Text, der angezeigt werden soll. Falls nicht vorhanden wird Überschrift benutzt, ist diese nicht vorhanden wird Kapitel benutzt, ist dieses nicht vorhanden wird Abschnitt genutzt.
  • Abschnitt (zwingend) – Abschnitt auf den Verlinkt werden soll
  • Kapitel (optional) – Kapitel auf das Verlinkt werden soll
  • Überschrift (optional) – Überschrift innerhalb eines Kapitels

Leider kann es vorkommen, das innerhalb eines Kapitels zwei oder mehr Überschriften gleich lauten. Der MediaWiki-Parser zählt in diesem Fall eine laufende Nummer hoch, die, durch Unterstrich getrennt, an die ID der zu verlinkenden Überschrift angehängt wird. Diese ID muss nötigenfalls über den Parameter „Kapitelzusatz“ angegeben werden. Bei abschnittsweisem lesen ist das Problem sogar noch größer, denn dort werden die Überschriften aller Kapitel auf diese Weise durchnummeriert. In diesem Fall heißt der Parameter „Abschnittszusatz“. Falls ein vor Ihnen erstellter Link auf die richtige Seite, aber zur falschen Überschrift verweist überprüfen Sie, ob eventuell einer oder beide Parameter zusätzlich angegeben werden müssen. Falls Sie damit Schwierigkeiten haben, hinterlassen Sie mir einfach einen Hinweis auf meiner Diskussionsseite, dann kümmere ich mich darum. ;)

Einige Beispiel (von dieser Seite aus verhält sich die Vorlage, als würden Sie das Buch abschnittsweise Lesen):

* {{:C++-Programmierung/ Vorlage:Buchinterner Link|Abschnitt=Einführung zum Buch}}
* {{:C++-Programmierung/ Vorlage:Buchinterner Link|Abschnitt=Einführung in C++|Kapitel=Einfache Ein- und Ausgabe}}
* {{:C++-Programmierung/ Vorlage:Buchinterner Link|Abschnitt=Einführung in C++|Kapitel=Variablen, Konstanten und ihre Datentypen|Überschrift=Variablen}}
* {{:C++-Programmierung/ Vorlage:Buchinterner Link|Abschnitt=Einführung in C++|Kapitel=Zusammenfassung|Überschrift=Variablen|Abschnittszusatz=2}}
* {{:C++-Programmierung/ Vorlage:Buchinterner Link|Abschnitt=Einführung in C++|Text=Ich zeige auf einen Abschnitt}}

Abschnitt[Bearbeiten]

Die Vorlage Abschnitt werden Sie selten verwenden, daher ist Sie hier nicht genau erklärt. Wenn Sie dennoch eine Beschreibung benötigen, finden Sie diese auf C++-Programmierung/ Vorlage:Abschnitt.

Gesamter Abschnitt[Bearbeiten]

Jeder Abschnitt stellt eine Seite zur Verfügung, auf der alle Kapitel dieses Abschnitts stehen. Auf diesen Seiten wird eine andere Navigationsvorlage verwendet. Eine weitere Vorlage erstellt aus den einzelnen Kapiteln den Text der Seite. Auch diese beiden Vorlagen werden Sie mit höchster Wahrscheinlichkeit nie verwenden, da der Hauptautor das erstellen dieser Seiten übernimmt. Falls doch nötig, finden Sie eine Beschreibung auf den entsprechenden Vorlagenseiten.