Kapitel 2

Alle Codedateien dieses Kapitels herunterladen

02_6_1_HalloWelt.cpp

Datei herunterladen

/*
 * Lösung für Übung 2.6.1 - Mehrsprachiges Hello-World
 */
#include <iostream>
int main()
{
  std::cout << "Hello World" << std::endl;
  std::cout << "Hallo Welt" << std::endl;
  std::cout << "Bonjour le monde" << std::endl;
  std::cout << "Ciao, mondo" << std::endl;
  return 0;
}

02_6_2_Papagei.cpp

Datei herunterladen

/*
 * Lösung für Übung 2.6.2 - Der Papagei
 */
#include <iostream>
#include <string>

int main()
{
  std::cout << "Geben Sie Ihre Meinung ein und bestätigen "
    << "Sie mit der Entertaste: ";
  std::string text;
  std::getline(std::cin, text);
  std::cout << "Ja, genau! " << text << std::endl;
  return 0;
}

02_6_3_Ganzzahlen.cpp

Datei herunterladen

/*
 * Lösung für Übung 2.6.3 - Rechnen mit Ganzzahlen.
 *
 * Nach den ganzen Verrechnungen ist die Variable input
 * wieder bei 5. Sehen Sie selbst:
 */
#include <iostream>
int main()
{
  int input = 5;
  input = input + 1;
  std::cout << input << std::endl;  // ergibt 6
  input++;
  std::cout << input << std::endl;  // ergibt 7
  input += 3;
  std::cout << input << std::endl;  // ergibt 10
  input = input - 1;
  std::cout << input << std::endl;  // ergibt 9
  input--;
  std::cout << input << std::endl;  // ergibt 8
  input -= 3;
  std::cout << input << std::endl;  // ergibt 5
  input = input * 3;
  std::cout << input << std::endl;  // ergibt 15
  input /= 3;
  std::cout << input << std::endl;  // ergibt 5
  return 0;
}

02_6_4_Fehler.cpp

Datei herunterladen

/*
 * Lösung für Übung 2.6.4 - Fehler im Code
 *
 * Den korrekten Code finden Sie unten. Die Fehler waren:
 * - Eine schließende spitze Klammer fehlte
 * - Der Einsprungspunkt (main) fehlte
 * - Die Variable "text" hatte keinen Typ angegeben.
 * - Der Zeilenumbruch direkt vor word.size ist technisch zwar
 *   in Ordnung, aber der Code ist lesbarer, wenn wir den
 *   Operator << auch noch in die nächste Zeile schreiben.
 *   Also eigentlich kein Fehler, ich habe es aber
 *   trotzdem korrigiert. Auch Verbesserungen in der Lesbarkeit
 *   sind berechtigte Code-Änderungen.
 * - Die zwei Klammern () fehlten hinter word.size
 * - Die Zeile int errorCode; errorCode = 2; funktioniert zwar
 *   (es ist tatsächlich erlaubt, mehrere Befehle mit Semikolon
 *   getrennt in eine Zeile zu schreiben), ist aber zumindest
 *   unschön. Daher habe ich das ebenfalls korrigiert.
 * - Das Semikolon nach dem letzten Befehl fehlte
 * - Das Programm beendet sich mit einem Fehlercode. Das mag
 *   aber beabsichtigt sein, daher habe ich das nicht korrigiert.
 *   Sollten Sie es allerdings zu 0 geändert haben, wäre das auch
 *   denkbar und nicht falsch. Immerhin ist das Programm ja
 *   eigentlich korrekt durchgelaufen.
 */
#include <iostream>
#include <string>

int main()
{
  std::string word = "Willkommen";
  std::cout << "Das Wort " << word << " hat "
    << word.size() << " Buchstaben " << std::endl;
  int errorCode;
  errorCode = 2;
  // Eine alternative Korrektur der beiden obigen Zeilen
  // wäre gewesen, sie zusammenzufassen:
  // int errorCode = 2;
  return errorCode;
}

02_6_5_Ausschnitte.cpp

Datei herunterladen

/*
 * Lösung für Übung 2.6.5 - Code-Ausschnitte
 *
 * Beim Ergänzen des Grundgerüstes dürfen Sie nicht die jeweils benötigten
 * include-Befehle vergessen. Hier brauchen Sie zwei Stück - <iostream> für
 * std::cout und <string> für std::string.
 */
#include <iostream>
#include <string>

int main()
{
  std::cout << "Dies ist ein Ausschnitt." << std::endl;
  std::cout << "Geben Sie einen Text ein: ";
  std::string input;
  std::getline(std::cin, input);
  std::cout << "Danke. Die Eingabe war: " << input;
  return 0;
}