Wie programmiert man das der Computer eine Zahl erratet in der Programmiersprache C++ (Visual Studio 2013) ?

...komplette Frage anzeigen Computer_Errät eine Zahl - (Computer, programmieren)

4 Antworten

Es geht hier um einen Algorithmus, der logischerweise in einer Schleife abzuarbeiten ist. Als Schleifenformat bietet sich eine while-Schleife an.

Der Algo ist schon vorgegeben.

Also Schleifenkopf

unsigned int LB, UB;

// unsigned int MyNr;

char eingabe;

bool ich_suche_noch=true;

while(ich_suche_noch)

{

   // um die Performance zu verbessern auf Kosten des -Speichers:

   // MyNr= (int)((LB+UB)/2) :-) hier eher Unsinn.

    cout<<"\nIst "<<(int)((LB+UB)/2)<<" die gesuchte Zahl? (j = Ja\g = "<< 

               "gesuchte Zahl ist groesser\k=gesuchte Zahl ist kleiner)";

    cin>>eingabe;

    switch(eingabe)

    case 'J':

    case 'j':

              ich_suche_noch=false;

              break;

    case 'K':

    case 'k':

               // die Obergrenze ist zu hoch

               UB=(int)((LB+UB)/2)-1; //wenn MyNr verwendet dann UB=MyNr-1;

              break;

    case 'G':

    case 'g':

               // die Untergrenze ist zu gering

               LB=(int)((LB+UB)/2)+1; //wenn MyNr verwendet dann UB=MyNr+1;

               break;

    default:

              cout<<"\nFalsche Eingabe, Eingabe wiederholen"; 

   }// Ende Switch

}// Ende While

Es gibt ein Buch von Jürgen Wolf zu C, welches die einfachen Algos gut erklärt, auch wenn manche C++Profis dogmatische Purifizierungen in den Büchern von Jürgen Wolf fordern, ich finde seine Bücher sehr hilfreich. Sein Buch zu C++ geht hingegen auf die Algos nicht ein. Daneben gibt noch andere - wirklich spezifische Bücher zu Algos (das von Kaiser / Guddat finde ich eher schwer - für Informatikstudis.)
 

huck mal im Forum "stackoverflow", das ist eine Forum zur Informatik- und Programmierthemen. Ich denke, da gibt es bestimmt ein paar hilfreiche Antworten.

mein antwort bleibt fast die selbe wie in deiner anderen (gleichen) frage.

Auch wenn die frage auf dem blatt und deiner überschrift der genaue gegensatz ist.

BirgitHerz 23.02.2017, 20:07

Ja, schon mir. Mir ist aber nicht klar. Wie ich das ganze auf setzen soll. #include<Studio.h>, # include<conio.h> usw. ist mir klar. void main (), int  i z.B. Aber was nehme ich weiter? randum, while und do?

0

Das steht in der Aufgabenstellung.... siehe "Algorithmus"....

Was möchtest Du wissen?