/* 2. Nibbles
Definieren Sie eine Klasse nibbles, die ein (privates) Nibble repräsentiert,
das einen der Werte von 0 bis 15 darstellt, also nur aus 4 Bit besteht.
Größere oder kleinere Werte sind durch ggf. wiederholte Addition oder Subtraktion
von 16 umzurechnen. Die Klasse soll
einen Default-Konstruktor besitzen und außerdem die öffentlichen Elementfunktionen
'gib', mit der der Wert des Nibbles geliefert wird,
'nimm', mit der das Nibble gesetzt bzw. geändert werden kann, sowie
eine Methode für das Addieren von Nibbles, wobei die Summe wieder ein Nibble sein soll.
Schreiben Sie ausserdem eine globale Funktion zum Anzeigen des Wertes mit Kommentar.
Alle Deklarationen sind zu testen. */
#include <iostream>
#include <string>
using namespace std;
class cnibble
{
private:
int x;
public:
cnibble ();
~cnibble ();
void gib ();
void nimm();
int rueckgabe ();
};
int cnibble::rueckgabe ()
{
return x;
}
void cnibble::nimm ()
{
if(0<=x && 15>=x)
{
cout << "Der Nibble: " << x << endl;
}
else
{
x= x%15;
cout << "Der Nibble: " << x << endl;
}
}
void cnibble::gib()
{
do
{
cout << "Gib eine Zahl groesser als 0 ein" << endl;
cin >> x;
} while(x<0);
}
cnibble::cnibble ()
{
int nibble= 0;
int x= 0;
int y= 0;
cout << "Konstruktor wurde aufgerufen" <<endl;
}
cnibble::~cnibble ()
{
cout << "Destruktor wurde aufgerufen" << endl;
}
int main ()
{
while (true)
{
int addition;
cnibble nibble1;
cnibble nibble2;
cout << "1. Nibble: " << endl;
nibble1.gib ();
cout << "2. Nibble: " << endl;
nibble2.gib ();
cout << "1. Nibble: " << endl;
nibble1.nimm ();
cout << "2. Nibble: " << endl;
nibble2.nimm ();
cout << "Addition der Nibble" << endl;
addition= nibble1.rueckgabe () + nibble2.rueckgabe ();
cout << addition%15 << endl;
}
}