Kategori C
Launch of Tui Widgets
Dienstag, August 16th, 2022Wir waren fleißig und haben am vergangenen Wochenende, endlich nach 5 Jahren Arbeit, Tui Widgets veröffentlicht.
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, 2008Bei 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;
}