pippo
2004-11-08, 11:24:17
Habe folgendes Programm bisher geschrieben:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
char Aufgabe = 'a', Auswahl = 'b';
short int Zahl;
int Bits[8];
cout << "Informatik I - Uebungsblatt 5" << "\n1) Umrechnung einer Zahl in die Binaerdarstellung" << "\n2) Berechnung eines Loesungsvektors" << endl;
cout << "\nBitte waehlen sie die Aufgabe: ";
cin >> Aufgabe;
fflush(stdin);
while ((Aufgabe != '1') && (Aufgabe != '2'))
{
cout << "Falsche Eingabe, bitte wiederholen sie:";
cin >> Aufgabe;
fflush(stdin);
}
switch (Aufgabe)
{
case '1': //Beginn Aufgabe 1
{
cout << "Geben sie die gewuenschte Zahl ein: ";
cin >> Zahl;
while ((Zahl <= (-127)) || (Zahl >= 127))
{
cout << "Falsche Eingabe, bitte wiederholen sie: ";
cin >> Zahl;
fflush(stdin);
}
cout << "\na) ueber das \"most significant bit\"\nb) ueber die Einerkomplementdarstellung\nc) ueber die Zweierkomplementdarstellung" << endl;
cout << "\nWaehlen sie bitte die Vorgehensweise: ";
cin >> Auswahl;
while ((Auswahl != 'a') && (Auswahl != 'b') && (Auswahl != 'c'))
{
cout << "Falsche Eingabe, bitte wiederholen sie: ";
cin >> Auswahl;
fflush(stdin);
}
switch (Auswahl)
{
case'a':
{
if (Zahl>0)
Bits[7]=0;
else
{
Zahl=Zahl*(-1);
Bits[7]=1;
}
for(int i=6; i>=0; i--)
{
if(Zahl>=pow(2,i))
{
Bits[i]=1;
Zahl=Zahl-pow(2,i);
}
else
Bits[i]=0;
}
cout << Bits[7] << Bits[6] << Bits[5] << Bits[4] << Bits[3] << Bits[2] << Bits[1] << Bits[0] << endl;
}break;
case 'b':
{
}break;
case 'c':
{
}
}
}break;
case '2': //Beginn Aufgabe 2
{
}
}
return 0;
}
Das Programm beendet sich jedesmal korrekt mit Code 0. Das Dumme ist nur, dass das Konsolenfenster nicht offen bleibt. Denke das ist nur eine Einstellungssache, oder? In Visual Studio 6 gings, aber in .net läuft irgendwas schief. Konnte aber unter Einstellungen nichts passendes finden.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
char Aufgabe = 'a', Auswahl = 'b';
short int Zahl;
int Bits[8];
cout << "Informatik I - Uebungsblatt 5" << "\n1) Umrechnung einer Zahl in die Binaerdarstellung" << "\n2) Berechnung eines Loesungsvektors" << endl;
cout << "\nBitte waehlen sie die Aufgabe: ";
cin >> Aufgabe;
fflush(stdin);
while ((Aufgabe != '1') && (Aufgabe != '2'))
{
cout << "Falsche Eingabe, bitte wiederholen sie:";
cin >> Aufgabe;
fflush(stdin);
}
switch (Aufgabe)
{
case '1': //Beginn Aufgabe 1
{
cout << "Geben sie die gewuenschte Zahl ein: ";
cin >> Zahl;
while ((Zahl <= (-127)) || (Zahl >= 127))
{
cout << "Falsche Eingabe, bitte wiederholen sie: ";
cin >> Zahl;
fflush(stdin);
}
cout << "\na) ueber das \"most significant bit\"\nb) ueber die Einerkomplementdarstellung\nc) ueber die Zweierkomplementdarstellung" << endl;
cout << "\nWaehlen sie bitte die Vorgehensweise: ";
cin >> Auswahl;
while ((Auswahl != 'a') && (Auswahl != 'b') && (Auswahl != 'c'))
{
cout << "Falsche Eingabe, bitte wiederholen sie: ";
cin >> Auswahl;
fflush(stdin);
}
switch (Auswahl)
{
case'a':
{
if (Zahl>0)
Bits[7]=0;
else
{
Zahl=Zahl*(-1);
Bits[7]=1;
}
for(int i=6; i>=0; i--)
{
if(Zahl>=pow(2,i))
{
Bits[i]=1;
Zahl=Zahl-pow(2,i);
}
else
Bits[i]=0;
}
cout << Bits[7] << Bits[6] << Bits[5] << Bits[4] << Bits[3] << Bits[2] << Bits[1] << Bits[0] << endl;
}break;
case 'b':
{
}break;
case 'c':
{
}
}
}break;
case '2': //Beginn Aufgabe 2
{
}
}
return 0;
}
Das Programm beendet sich jedesmal korrekt mit Code 0. Das Dumme ist nur, dass das Konsolenfenster nicht offen bleibt. Denke das ist nur eine Einstellungssache, oder? In Visual Studio 6 gings, aber in .net läuft irgendwas schief. Konnte aber unter Einstellungen nichts passendes finden.