Oktober, 2007

GIP 4

Montag, Oktober 29th, 2007
#include 
#include 

using namespace std;

int game(int max);

int main (void)
{
	int level=0;

	while(true)
	{
		cout << "Welchen Level moechten Sie spielen? (1, 2 oder 3) ";
		cin >> level;

		switch(level)
		{
			case 1:
				return game(10);			
				break;
			case 2:
				return game(100);
				break;
			case 3:
				return game(1000);
				break;
			default:
				break;
		}
	}
	return 0;
}

int game(int max)
{
	int ip=0, zahl=0;

	srand ( time(NULL) );
	zahl = rand()%max + 1;

	for(int i=1; ip != zahl; i++ )
	{
		cout << "Zahl = ? (1 bis " << max << ") ";
		cin >> ip;
		
		if(ip < zahl)
		{
			cout << "Die eingegebene Zahl ist zu klein!" << endl << endl;
		}
		else if (ip > zahl)
		{
			cout << "Die eingegebene Zahl ist zu gross!" << endl << endl;
		}
		else if(ip == zahl)
		{
			cout << "Richtig! Die Zahl lautet " << zahl << endl <<"Sie haben " << i << " Versuche gebraucht." << endl << endl;
			return i;
		} 
		else 
			--i;
	}
	return 0;
}

Partiton Kopiren

Freitag, Oktober 26th, 2007

Da meine Notebook HD seit längeren immer mal wieder ein helles "Fipsn" von sich gegeben hat, habe ich mir mal eine neue WD gegönnt. Und da ich keine Lust hatte alles neu zu installieren habe ich die Folgenden Befehle zum Kopieren der Partition auf meinen Renchener und dann auf die neue HD gefunden.

1. Image erstellen:
dd if=/dev/hda of=/mnt/hdb1/myimage.img

2. Image zurückschreiben:
dd if=/mnt/hdb1/myimage.img of=/dev/hda

Quelle: unixboard.de

Noch nie vorgekommen

Mittwoch, Oktober 24th, 2007

Das erste mal das ich so ratlos bin und selbst bei Googel nix gefunden habe, das ich ein Linux System neu installieren musste. Hier mal ein Ausschnitt was alles nicht mehr lief.


Linux vm04 2.6.20-16-server #2 SMP Sun Sep 23 18:36:55 UTC 2007 x86_64

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Tue Oct 23 17:24:14 2007 from 192.168.1.43
/usr/bin/lesspipe: 28: basename: Input/output error
/usr/bin/lesspipe: 253: dirname: Input/output error
[: 253: lessfile: unexpected operator
-bash: [: !=: unary operator expected
-bash: [: too many arguments
-bash: [: too many arguments
-bash: [: =: unary operator expected
-bash: [: too many arguments
-bash: [: too many arguments
-bash: [: too many arguments
-bash: [: too many arguments
-bash: [: too many arguments
-bash: [: too many arguments
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: =: unary operator expected
-bash: [: too many arguments
-bash: [: =: unary operator expected
-bash: /bin/sed: Input/output error
benutzer@host:~$ apt-get upgade
-bash: /usr/bin/apt-get: Input/output error
benutzer@host:~$ sudo shutdown -r now
-bash: /usr/bin/command-not-found: Input/output error
benutzer@host:~$ who
-bash: /usr/bin/who: Input/output error
benutzer@host:~$ ls
-bash: /bin/ls: Input/output error
benutzer@host:~$ cd /etc/apt/
-bash: cd: /etc/apt/: No such file or directory
benutzer@host:~$ cd /etc/
benutzer@host:/etc$ cd apt
-bash: cd: apt: No such file or directory
benutzer@host:/etc$ uname -a
Segmentation fault
benutzer@host:/etc$

GIP 3

Montag, Oktober 22nd, 2007
#include 

using namespace std;

int main (void)
{
	int lz=0;
	double ak=0, zs=0, sume=0; 

	cout << "Anfangskapital   = ? ";
	cin >> ak;
	
	cout << "Zinssatz (%)     = ? ";
	cin >> zs;

	cout << "Laufzeit (Jahre) = ? ";
	cin >> lz;

	sume = ak;
	for(int i=1; i <= lz; i++)
	{
		sume = sume * (zs / 100) + sume;
		cout << "Kapital am Ende von Jahr " << i << ": " << sume << " EURO" << endl;
	}
	cout << endl << "Das Kapital erhoehte sich waehrend der Laufzeit um "<< sume - ak << " EURO" << endl;

	return 0;
}

GIP 2

Freitag, Oktober 19th, 2007

Schreiben Sie ein Programm zur Lösung der quadratischen Gleichung ax2 + bx + c = 0 Die Koeffizienten a, b und c sollen von der Tastatur eingelesen werden. Ist die Diskriminante (b2 -4ac) negativ, gebe man den Text „Keine reellen Loesungen“ auf dem Bildschirm aus. Ist die Diskriminante nicht negativ, berechne man die Lösungswerte x1 sowie x2 und gebe sie auf dem Bildschirm aus.
Für a ≠ 0 gilt:

Hinweise:

  • Überlegen Sie, welchen Datentyp die Variablen haben sollten.
  • Denken Sie daran, dass auch Zahlenkonstanten (wie 1, 2 oder 4) einen passenden
  • Datentyp haben müssen.

  • Berechnen Sie zuerst die Diskriminante und speichern Sie das Ergebnis in einer Variablen. Prüfen Sie danach, ob die Diskriminante nicht negativ ist und berechnen Sie nur in diesem Fall die Wurzel. Sonst geben Sie die Meldung laut Aufgabenstellung aus.
  • Die Funktion double sqrt(double x) liefert die Quadratwurzel von x. Sie ist in der Datei <math.h> deklariert. Diese muss also mit include eingebunden werden. Für den Eingabewert a=0 muss die Division durch Null abgefangen werden, vgl. Testlauf 4!

Testdaten:

  1. a=1, b=2, c=-3
  2. a=4, b=8, c=0
  3. a=1, b=2, c=3
  4. a=0, b=8, c=4
#include 
#include 

using namespace std;

int main (void)
{
	int a=0, b=0, c=0, term1=0;
	double x1=0, x2=0;
	cout << "Loesung der quadratischen Gleichung" << endl;

	cout << "a = ? ";
	cin >> a;
	
	if(a == 0)
	{
		cout << "Keine Loesung (Division durch Null)" << endl;
		return 0;
	}

	cout << "b = ? ";
	cin >> b;
		
	cout << "c = ? ";
	cin >> c;


	term1 = ( b * b ) - ( 4 * a * c);
	if(term1 < 0)
	{
		cout << "Keine reellen Loesungen" << endl;
		return 0;
	}

	x1 = (1.0 / (2.0 * (double)a ) ) * ( (double)(b * -1) + sqrt( term1 ) );
	x2 = (1.0 / (2.0 * (double)a ) ) * ( (double)(b * -1) - sqrt( term1 ) );
	cout << "Loesung: " << endl << "x1 = " << x1 << endl << "x2 = " << x2 << endl << endl;

	return 0;
}