Kategori C

Tui Widgeds Video

Sonntag, August 21st, 2022

Unser Vortag auf der #FrOSCon17 ist Online:

Launch of Tui Widgets

Dienstag, August 16th, 2022

Wir waren fleißig und haben am vergangenen Wochenende, endlich nach 5 Jahren Arbeit, Tui Widgets veröffentlicht.

Demo Tui Widgets

Für unseren Vortag: Tui Widgets: Ein Baukasten für Terminal-Anwendungen auf der #FrOSCon17 erstellen wir gerade die Präsentation und Doku.

Überladen von Operatoren

Freitag, Februar 8th, 2008

Bei meinen Prüfungsvorbereitungen bin ich auf ein c++ Kapitalmittel gestoßen, dass ich noch nie zuvor gesehen habe. Mann braucht ein paar Minuten um es erst mal zu verstehen was dort geschieht. Aber beim zweiten hinsehen versteht man, was man mit der Methode bool operator == (const Uvo& op2) const; machen kann.

#include <iostream>

using namespace std;

//Überladen Von Operatoren
class Uvo
{
public:
    int wert1, wert2;
    Uvo();
    bool operator == (const Uvo& op2) const;
};

Uvo::Uvo()
{
    wert1 = wert2 = 0;
}

bool Uvo::operator == (const Uvo& op2) const
{
    if(wert1 == op2.wert1 && wert2 == op2.wert2)
         return true;
    return false;
}

int main()
{
    Uvo *oop1 = new Uvo();
    Uvo *oop2 = new Uvo();

    oop1->wert1 = 10;
    oop1->wert2 = 20;

    if (*oop1 == *oop2)
        cout << "Die Werte sind gleich\n";
    else
        cout << "Die Werte sind unterschiedlich\n";

    oop2->wert1 = 10;
    oop2->wert2 = 20;

    if (*oop1 == *oop2)
        cout << "Die Werte sind gleich\n";
    else
        cout << "Die Werte sind unterschiedlich\n";

    return 0;
}

Quelle: cpp-tutor.de

GIP 11

Montag, Dezember 17th, 2007
#include 

using namespace std;

void datumEinlesen(short &tag, short &monat, short &jahr);

short codewertMonat(short monat, short jahr);

bool schaltjahr(short jahr);

string ermittleWochentag(short ergebnis);


int main(void)
{
	short tag, monat, jahr;
	double ret;

	datumEinlesen( tag, monat, jahr );

	ret = jahr + (int)(jahr / 4);
		
	ret = ret + codewertMonat( monat, jahr ) + tag;
	ret = (int)ret%7;

	cout << "Dieser Tag war ein " << ermittleWochentag(ret) << endl << endl;

	return 0;
}

void datumEinlesen(short &tag, short &monat, short &jahr)
{
	int tage[] = { 	31, 28, 31, 30, 31, 30, 
					31, 31, 30, 31, 30, 31 };
	if( schaltjahr(jahr) )
	{
		tage[1] = tage[1] + 1;
	}

	do 
	{
		cout << "Datum eingeben:\nTag   = ? ";
		cin >> tag;
	
		cout << "Monat = ? ";
		cin >> monat;
	
		cout << "Jahr  = ? ";
		cin >> jahr;

		if(jahr <= 99 && jahr >= 1)
			if( monat <= 12 && monat >= 1 )	
				if(tag <= tage[monat - 1] && tag >= 1)
					break;
	} 
	while(true);		
}

short codewertMonat(short monat, short jahr)
{
	// Codewert des Monats 
	// Juni                0 Mai                     4
	// September, Dezember 1 August                  5
	// April, Juli         2 Februar, März, November 6
	// Januar, Oktober     3
	int cwm[] = {3,6,6,2,4,0,2,5,1,3,6,1};
	
	if( schaltjahr(jahr) )
	{
		cwm[0] = cwm[0] -1;
		cwm[1] = cwm[1] -1;
	}
	 
	return cwm[monat - 1];
}

bool schaltjahr(short jahr)
{
	if(jahr%4 == 0 && jahr%100 != 0)
	{
		return true;
	}
	return false;
}

string ermittleWochentag(short ergebnis)
{
	// Donnerstag 0
	// Freitag    1
	// Samstag    2
	// Sonntag    3
	// Montag     4
	// Dienstag   5
	// Mittwoch   6

	string wochentag[] = {	"Donnerstag", "Freitag", "Samstag", "Sonntag", 
						 	"Montag", "Dienstag", "Mittwoch" };
	return wochentag[ergebnis];
}

GIP 10

Montag, Dezember 10th, 2007
#include 

using namespace std;

const int anfangsbestand = 13;

int rehe_i(int jahr)
{
	int reh = anfangsbestand;

	for(int i=1; i <= jahr ; i++)
	{
		cout << reh << " -> ";

		reh = ((reh * 3) - 10);
		if(reh > 40)
			reh = reh - (reh * 0.6);

		cout << reh << endl;
	}

	return reh;
}

int rehe_r(int jahr, int reh=anfangsbestand)
{
	cout << reh << " -> ";
	
	reh = ((reh * 3) - 10);
	if(reh > 40)
		reh = (reh - (reh * 0.6));

	cout << reh << endl;

	if(jahr <= 1)
		return reh;
	return rehe_r(--jahr, reh);
}


int main ()
{
	cout << "Iterativ: Ende des 3. Jahres: " << rehe_i(3) << " Rehe\n";
	cout << "Rekursiv: Ende des 3. Jahres: " << rehe_r(3) << " Rehe\n";
	return 0;
}