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;
}