Adrian Dymorz

2-3.

Schreiben Sie das Umrahmungsprogramm so um, dass es den Nutzer um die Eingabe der Anzahl von Leerraumen zwischen Rahmen und Text bittet.

#include <iostream>
#include <string>

// Namen der Standardbibliothek freigeben
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
 // Nach dem Namen fragen
 cout << "Bitte geben Sie Ihren Namen ein: ";

 // Name einlesen
 string name;
 cin >> name;
 
 // Nachricht aufbauen
 const string greeting = "Hallo, " + name + "!";
 
 // Abstand um die Meldung
 cout << "Geben Sie den Abstand ein: ";
 
 int unsigned pad = 0;
 cin >> pad;
 //TODO: Abfangen von Fehleingaben (z.B. Buchstaben) 
 
 // Die Nummer von Zeilen und Spalten
 const unsigned int rows = pad * 2 + 3;
 const string::size_type cols = greeting.size() + pad * 2 + 2;

 // Input und Output teilen
 cout << endl;

 // rows Ausgabezeilen schreiben
 // Invariante: Wir haben r Zeilen geschrieben
 for (unsigned int  r = 0; r != rows; ++r) {
   string::size_type c = 0;
  // Invariante: Wir haben c Zeichen geschrieben
  while (c != cols) {
   // Müssen wir die Grussmeldung ausgeben
   if (r == pad + 1 && c == pad + 1) {
    cout << greeting;
    c += greeting.size();
   } else {
    // Sind wir am Rand?
    if (r == 0 || r == rows - 1 || c == 0 || c == cols - 1)
     cout << "*";
    else
     cout << " ";
     ++c;
    }
   }
   cout << endl;
 }
 return 0;
}

2-9.

Schreiben Sie ein Programm, dass den Nutzer bittet, zwei Zahlen einzugeben, und dem Nutzer dann ausgibt, welche der beiden Zahlen die grossere ist.

#include <iostream>
#include <algorithm>

// Namen der Standardbibliothek freigeben
using std::cin;
using std::cout;
int main()
{
 // Nach der ersten Zahl fragen
 cout << "Bitte geben Sie die erste Zahl ein: ";

 // Zahl einlesen
 unsigned int zahl1;
 cin >> zahl1;

 // Nach der zweiten Zahl fragen
 cout << "Bitte geben Sie die zweite Zahl ein: ";

 // Zahl einlesen
 unsigned int zahl2;
 cin >> zahl2;
  
 if (zahl1 == zahl2) {
  cout << "Beide Zahlen sind gleich gross.";
 }
 else if (zahl1 > zahl2) {
  cout << "Die erste Zahl ist grösser als die zweite.";
 }
 else {
  cout << "Die zweite Zahl ist grösser als die erste.";
 }
 return 0;
}