Kategori C

GIP 9

Montag, Dezember 3rd, 2007
#include 
#include 

using namespace std;

int power_of(int basis, int exponent=2)
{
	long int retur = basis; 

	if(basis == 0)
		return false;
	
	for( int i=1; i <= exponent; i++ )
		retur = retur * basis;

	return retur;
}

int biner(int zahl)
{
	const short binerstellen = 8;
	int max = power_of( 2, binerstellen );
	//cout << max << endl;	
	long int bin = 0;

	for( int i=binerstellen; i>=0; i-- )
	{
		if(zahl >= max)
		{
			bin = bin + power_of(10, i);			
		}
		cout << bin << " -> " << i << endl;
		
		max = max / 2;
	}
	return bin;
}

int oktal(int zahl)
{
	//string oktalziffer[8]={"0","1","2","3","4","5","6","7"};
	return 0;	
}

int main(void)
{
	int zahl;

	cout << "Dezimalzahl = ? ";
	cin >> zahl;
	cout << "Umrechnung einer ganzzahligen, positiven Dezimalzahl in" << endl << 
			"- eine Dualzahl nach der Potenzenmethode : Dualzahl    = " << biner(zahl) << endl <<
			"- eine Oktalzahl nach der Restwertmethode: Oktalzahl   = " << oktal(zahl) << endl;
	return 0;
}

GIP 8

Mittwoch, November 28th, 2007
#include 
#include 

using namespace std;

void zahlen(short int z, string &zt);

int main()
{
    short int zahl;
    string zahlentext;

    while(true)
	{
    	cout << "Zahl = ? ";
        cin >> zahl;
        zahlen(zahl, zahlentext);
        cout << zahl << " = " << zahlentext << endl;
	}
    return 0;
}

void zahlen(short z, string &zt)
{
     string einer[9] = {"ein", "zwei", "drei",
                        "vier", "fuenf",
                        "sechs", "sieben",
                        "acht", "neun"};
     string zehner [2] = {"zwanzig", "dreissig"};
     if(z== 20)
          zt = zehner[0];
     else if(z==30)
          zt = zehner[1];
     else if(z>=21 && z<=39)
          zt = einer[(z%10)-1] + "und" + zehner[(z/10)-2];
     else
          zt = "unbekannt";
     //return zt;
}

GIP 7

Montag, November 19th, 2007
#include 
#include 

using namespace std;

int main(void)
{
	string text;
	int b[20]={0};

	cout << "Text = ? ";		
	getline(cin, text);

	int iz;
	for(int i=0; i < 20; i++)
	{
		if(text[i] == ' ')
		{
			b[iz]++;
			iz=0;
		}
		cout << text[i] << endl;				
	}
	// b[iz]++;

	for(int i=0; i < 20; i++)
	{
		if(b[i] > 0)
		{
			cout << endl << i << " ";
			for(int ii=0; b[i] > ii; ii++)
				cout << "#";
		}
	}
	return 0;	
}

GIP 6

Montag, November 12th, 2007
#include 

using namespace std;

int addiren( int augend, int addend  )
{
	return augend + addend;
}

int subtrahieren( int minuend, int subtrahend )
{
	return minuend - subtrahend;
}

int multiplizieren( int multiplikand, int multiplikator )
{
	return multiplikand * multiplikator;
}

int dividieren(int dividend, int divisor)
{
	if(divisor == 0)
	{
		return 0;
	}
	return dividend / divisor;
}

/* Überladene Funktionen */
double addiren( double augend, double addend  )
{
	return augend + addend;
}

double subtrahieren( double minuend, double subtrahend )
{
	return minuend - subtrahend;
}

double multiplizieren( double multiplikand, double multiplikator )
{
	return multiplikand * multiplikator;
}

double dividieren(double dividend, double divisor)
{
	if(divisor == 0)
	{
		return 0;
	}
	return dividend / divisor;
}


int main (void)
{
	char id, jn='j', ra;
	double erg=0, z1, z2;

	do 
	{

		cout << "Minirechner: (i)nteger oder (d)ouble ? ";
		cin >> id;
		
		if(id != 'i' && id != 'd')
			continue;			

		cout << "Zahl 1 = ? "; 
		cin >> z1;

		cout << "Rechenart (+ - * /) ? ";
		cin >> ra;

		cout << "Zahl 2 = ? ";
		cin >> z2;

		if(id == 'i')
		{
			z1 = (int)z1;
			z2 = (int)z2;

			switch(ra)
			{
				case '+':
					erg = addiren( (int)z1, (int)z2 );
					break;
				case '-':
					erg = subtrahieren( (int)z1, (int)z2 );
					break;
				case '*':
					erg = multiplizieren( (int)z1, (int)z2 );
					break;
				case '/':
					erg = dividieren( (int)z1, (int)z2 );
					break;
				default:
					break;	
			}
		}
		else 
		/* if(id == 'd') */
		{
			switch(ra)
			{
				case '+':
					erg = addiren( z1, z2 );
					break;
				case '-':
					erg = subtrahieren( z1, z2 );
					break;
				case '*':
					erg = multiplizieren( z1, z2 );
					break;
				case '/':
					erg = dividieren( z1, z2 );
					break;
				default:
					break;	
			}
		}		
		cout << z1 << ra << z2 << "=" << erg << endl; 
		
		cout << "Noch einmal (j/n)? ";
		cin >> jn;
		
	} 
	while (jn == 'j');	

	return 0;
}

GIP 5

Montag, November 5th, 2007
#include 

using namespace std;

void hw(void)
{
	cout << "Hello wordl!" << endl;
}

void cbv1(double d)
{
	cout << d << endl;	
}

char cbv2 (double d)
{
	if(d >= 0)
	{
		return 'p';
	}
	return 'n';
}
void cbr1(float &f)
{
	f = 12.345;
}

int cube(int l, int b, int h=1)
{
	return l * b * h;
}

int main (void)
{
	/* Aufgabe a) */
	hw();

	/* Aufgabe b) */
	cout << "Wert von a in cbv1 = ";
	cbv1(12.6);

	/* Aufgabe c) */
	double d = 7.1234;
	cout << "Wert von a in cbv1 = ";
	cbv1( d );

	/* Aufgabe d) */
	cout << "Ergebnis von cbv2 mit Parameter -23: " << cbv2 (-23) << endl;;
	cout << "Ergebnis von cbv2 mit Parameter +10: " << cbv2 (10) << endl;;

	/* Aufgabe e) */
	float f=0;
	cout << "Vor dem Aufruf von cbr1: f = " << f << endl;
	cbr1(f);
	cout << "Vor dem Aufruf von cbr1: f = " << f << endl;
	
	/* Aufgabe f) */
	cout << "Daten (L: 10 B: 11 H: 12)" << endl << "Rauminhalt: " << cube( 10, 11, 12 ) << endl;

	cout << "Daten (L: 10 B: 11 H: 1)" << endl << "Flaeche: " << cube( 10, 11 )  << endl;

	return 0;	
}