29
C++ (Subject) / Vokabeln (Lesson)
Das, was man einfach auswendig können muss
This lesson was created by cfreak.
This lesson is not released for learning.
Advertisement
- Wie sieht das Grundgerüst für ein C++ Hello World Programm aus? #include<iostream.h>int main(){ cout<<”Hello,World!”; return 0;}
- Wie macht man Kommentare in C++? // double slash für single-line comment /* slash star für block kommentar ... */
- In welchen Datentypen können Zeichen wie *, ?, # gespeichert werden? char
- Mit welcher Bibliothek können Input und Output Dinge in der Konsole vorgenommen werden? iostream.h oder (deprecated!) stdio.h
- Was ist ein Präprozessor? Ein Präprozessor wird auf den nackten Quellcode angewandt, bevor der Compiler beginnt die Syntax zu prüfen. Man könnte sagen, es ist stumpfes "suchen und ersetzen".
- Was passiert hier genau? #include <iostream.h> Der Inhalt der Datei iostream.h wird kopiert und genau an der Stelle im Code eingefügt.
- Ich brauche eine Ganzzahl (ohne Komma), die 0 muss aber mit drin sein und bis mindestens 255 gehen. Welche Datentypen brauche ich hier? short
- Was heißt unsigned? sign = Vorzeichen Unsigned kommt normalerweise nur bei Datentypen vor, die Zahlen speichern. Der Compiler weiß durch das "unsigned", dass er den ganzen Speicher für positive Zahlen nutzen kann, dadurch kommen wir höher. Beispiel: Ein Integer hat 4 Bytes (= 16 Bit). Damit lassen sich 2^16 = 65536 Zahlen darstellen. Ein signed Integer müsste die gleiche Range im positiven wie im negativen haben, sodass signed int mit (min = -32768; max = 32768) hat, ein unsigned int aber die volle positive Range 0-65536 nutzen könnte.
- Ich brauche ein Integer Array 'a', dass zehn Werte speichern kann. An der 10. Stelle möchte ich gerne die Zahl 7. Wie sieht die Syntax aus? int a[10]; a[9] = 7; Weil das Array dann von a[0] bis a[9] geht, was 10 Werten entspricht.
- Ich möchte gerne in einer Variable Speichern, ob ich nach dem Werfen einer Münze "Kopf" geworfen habe, oder nicht ("Zahl"). Was ist der effizienteste Weg das umzusetzen? Mit einem Boolean, da dieser meist nur 1 Byte braucht. Dies ist auch die Option die am wenigsten Logik benötigt. bool is_head = true;
- Advertisement
- Was heißt void? Void ist der "unvollständige Typ". Man kann keine Variablen mit diesem Typen erzeugen. Man nutzt ihn zumeist, wenn eine Funktion keinen Wert zurück liefern soll. void funktionsname();
- Warum heißt es int main() und nicht void main()? void liefert keinen Rückagbewert zurück. Man möchte allerdings sehen können, ob die Funktion "main" vernünftig terminiert ist und gibt daher meist zum beenden des Programms den Wert "0" zurück, ansonsten Wert die >0 sind (z.B. 1 bei einem Error).
- Wie viel Speicher benötigt ein short? 16 bytes.
- Wie viel Speicher benötigt ein char? 8 Bit
- Wie viel bytes benötigt ein long? 32 bit = 4 Bytes
- Warum sieht man manchmal Ausdrücke, wie: Beispiel A: std::cout << "hallo"; statt Beispiel B: cout << "hallo"; ? Das std:: ist der Namespace. Falls der Namespace nicht gesetzt ist, muss dieser bei jedem Befehl mitgegeben werden. Cout wird durch die Bibliothek iostream geshippt, und liegt dort in einem Namespace, der "std" heißt. Das std:: ist also praktisch der Weg dahin. In Beispiel B muss der Namespace explizit gegeben worden sein, wie z.B.: namespace std; cout << "hallo"; Ansonsten funktioniert das nicht.
- Wo ist der Unterschied zwischen "b" und 'b'? "b" ist ein String. 'b' ist ein char.
- Welche länge hat die Zeichenkette "hallo"? "hallo" hat die Länge 6, da das System immer einen Nullterminator ans Ende packt, um sehen zu können wo die Zeichenkette aufhört: ('h', 'a', 'l', 'l', 'o', '\0')
- Ich möchte im voraus die Zahl Pi als 3.142 definieren, aber keine Variable dafür verschwenden. Was für Möglichkeiten habe ich? Über den Präprozessor #define ist es möglich ein "suchen und setzen" im ganzen File zu veranlassen. Codebeispiel: #include<iostream.h>#define PI 3.142int main (){ float radius =5, area; area = PI * r * r; cout<<”Area of a Circle = “<<area;}
- Erkläre +, -, /, *, % + = Addition - = Subtraktion / = Division * = Multiplikation % = MODULO, es wird ganzzahlig geteilt und der Rest, der über bleibt wird ausgegeben. Modulo Beispiel, bei 10%3 passiert folgendes: 10 / 3 = 3 Rest 1, es wird 1 zurück gegeben, daher: 10%3 = 1.
- Ich möchte meine variable int x = 4 um eins imkrementieren. Nenne 3 möglichkeiten, wie das syntaktisch bei C++ geht. int x = 4; x++; x = x + 1; x += 1;
- Was ist goto? Warum sollte man das nicht nutzen? Goto ist die Möglichkeit im Code eine Stelle zu definieren, an die man mit dem Befehl 'goto' springen kann, ohne die Programmlogik zu berücksichtigen. Das sollte man tunlichst vermeiden, denn dadurch geht die Übersichtlichkeit und Nachvollziehbarkeit komplett flöten.
- Ich habe eine Variable int a = 4; Was passiert jeweils, wenn ich eine Funktion folgendes zurückgeben lasse: Beispiel A: return ++a; Beispiel B: return a++; Beispiel A: Es wird 5 zurückgegeben, weil a zuerst inkrementiert, dann zurückgegeben wird. Beispiel B: Es wird 4 zurückgegeben, weil a erst zurückgegeben, dann inkrementiert wird. Der Wert von a ist dann nach dem Zurückgeben 5.
- Ich möchte eine Anweisung energy_trinken(0.25); genau 4 mal wiederholen. Wie stelle ich das an? Mit einer For-schleife: for(int i=0;i<4;i++) { energy_trinken(0.25); }
- Was heißt return? return wird angewandt, um die aktuelle Funktion, in der man sich befindet, zu Terminieren und einen ausgewählten wert an die Übergeordnete Funktion der aktuellen Funktion weiterzugeben. Beispiel: int meineFunktion(){ return 3; } int main(){ int x = meineFunktion(); return 0; } Main bekommt von meineFunktion den Wert 3 zurück, und kann damit arbeiten.
- x ? y : z; Was ist das? Das ist einfach ein if-else in kurz. Falls x Wahr (true) ist, mache y, sonst mache z.
- Wie kann ich namespaces definieren? (3 Möglichkeiten) 1. ich schreibe jedes mal den namespace for den ausdruck: std::cout << "hallo"; 2. ich definiere mir einen bereich, in dem der namespace gilt: namespace std { cout << "hallo"; } 3. ich lade den namespace in das ganze dokument (unschön, weil braucht mehr speicher) using namespace std; cout << "hallo";
- Ich schreibe ein programm, was eine Usereingabe verlangt. Was muss ich tun, um zu verhindern, dass er User einfach enter drückt und das feld dadurch leer bleibt? Meine Variable heißt int num; und wir arbeiten mit iostream. while(!(cin >> num)){ } Fragt solange nach einer Eingabe, bis eine Getätigt wurde.
- Ich habe den User per cin eine Eingabe in meine Variable int num; machen lassen. Ich gehe davon aus, dass dieser leider wohl mindestens eine Zeichenkette in meinen Integer geschrieben hat. Mit welchen beiden Funktionen kann ich das händeln? Falls es Fehler gegeben hat, steht in cin ein EOF (End Of File) und ein Error Flag. 1. Errors löschen cin.clear(); löscht die Error Flags 2. cin bereinigen cin.ignore(123, '\n'); ignoriert die nächsten 123 Zeichen bis zum nächsten Zeilenumbruch und bereinigt somit den cin Code: while (!(cin >> num)){// Explain errorcout << "ERROR: a number must be entered: "; // Clear input streamcin.clear(); // Discard previous inputcin.ignore(123, '\n');}