Lotto-Programm



  • Borland C++ und Borland C ist ein großer Unterschied - C und C++ sind nämlich zwei verschiedene Sprachen.
    Wenn du C lernst, dann bist du im ANSI C-Forum besser aufgehoben - auch wenn Sachen wie gotoxy nicht sehr ANSI sind.

    Falls du doch C++ lernst (man sollte eher sagen - falls es das Ziel deines Kurses ist), wäre das eine vernünftige Umsetzung:

    #include <iostream>
    #include <vector>
    #include <algorithm> //algorithm wird nur für find benötigt
    using namespace std;
    
    int main()
    {
      vector<int> lottozahlen; //vector kann seine Größe verändern - da hier nicht nötig, wäre ein Array ebenfalls ausreichend
      for (int i=0;i<6;i++)
      {
        int zahl;
        for (;;) //falls dich der "Endlosschleifenlook" irritiert, kannst du auch for (bool zahlOk=false;!zahlOk;) und unten zahlOk=true statt break schreiben
        {
          cout << "Lottozahl " << i+1 << ": ";
          cin >> zahl;
          if (zahl<1 || zahl>45)
          {
            cout << "Die Lottozahl muss zwischen 1 und 45 liegen." << endl;
            continue;
          }
          if (find(lottozahlen.begin(),lottozahlen.end(),zahl)!=lottozahlen.end())
          { //find ist ein bequemer Standardalgorithmus - um das Prinzip zu verstehen, muss man sich über Iteratoren informiert haben
            cout << "Diese Zahl wurde bereits verwendet." << endl;
            continue;
          }
          //und das wäre die Variante ohne find:
          /*
          bool gefunden=false;
          for (int j=0;j<i;j++)
          {
            if (zahl==lottozahlen[j])
            {
              gefunden=true;
              break;
            }
          }
          if (gefunden)
          {
            cout << "Diese Zahl wurde bereits verwendet." << endl;
            continue;
          }
          */
    
          lottozahlen.push_back(zahl);
          break;
        }
      }
    }
    

    Auch wenn du C lernst, kannst du dich davon inspirieren lassen.

    Dass der Lottozahlenbereich in Österreich anders ist, wusste ich gar nicht - wieder was gelernt.



  • Ich hab deinen Quelltext mal durch den Borland, den ich gerade da hab, geschickt - ich bekomme Fehlermeldungen.

    Deshalb die Frage, mit welchem Borland compilierst du den Quelltext?



  • Ich habe das mit g++ kompiliert - aber Borland C++ muss das auch können.
    Wenn ihr wirklich Borland C einsetzt (kannte bisher nur den Borland C++Builder), dann ist klar, dass das nicht kompiliert - ein C-Compiler kann keinen C++-Code übersetzen (umgekehrt geht das dagegen meist schon).

    Edit:

    SeppJ schrieb:

    Das heißt nicht, das C++ in irgendeiner Weise besser oder schlechter wäre, es ist bloß ganz was anderes als C.

    Da kann man aber drüber streiten 😉
    Weil C++ alles bietet, was C hat, aber viele wertvolle und zeitsparende Konzepte einführt, kann man durchaus sagen, dass C++ besser ist.



  • Athar nicht dein Quelltext 😉
    Den frisst sogar der alte free bcc5.5 ohne murren und bringt das gewünschte Ergebnis.

    Thorsten schrieb doch seiner soll laufen - in seinem Fall könnte es unter bestimmten Bedingungen ohne Fehlermeldung möglich sein. Doch bei solchen Fragen lernt die Erfahrung, das die Behauptung "mein Programm läuft" nicht immer zutrifft.

    MfG f.-th.



  • Athar schrieb:

    SeppJ schrieb:

    Das heißt nicht, das C++ in irgendeiner Weise besser oder schlechter wäre, es ist bloß ganz was anderes als C.

    Da kann man aber drüber streiten 😉
    Weil C++ alles bietet, was C hat, aber viele wertvolle und zeitsparende Konzepte einführt, kann man durchaus sagen, dass C++ besser ist.

    Er hat da eher den C Stil gemeint und der hat auch Vorteile gegenüber, wie man in C++ programmiert. C ist auf eine Art denke ich einfacher zu lernen und braucht weniger Wissen, wie gewisse Dinge geregelt werden. Ein C++ Programmierer muss sich Gedanken über exception Sicherheit, Laufzeit oder Kompilierzeit polymorphie, Vererbung usw. machen, was bei einem C Programmierer nicht anfällt. Klar werden da andere Mittel gebraucht, um die Probleme zu lösen, aber das ist dann halt der C-Weg.

    Du hast im dem Sinne recht, dass man in C++ beinahe gleich auch C programmiere kann, aber dann ist es halt C und nicht C++, auch wenn es als C++ kompiliert wurde. 😉 ( ich denke du verstehst jetzt auch, worauf SeppJ raus wollte).



  • Hallo,

    DANKE für eure Antworten, sie helfen mir sehr weiter.
    Zur Frage was für eine Version ich habe:
    BORLAND C++ für Windows
    Version 3.1
    Ich werde mir aus euren sehr informativen und aufschlussreichen Antworten und Beispielprogrammen ein funktionierendes C Programm (Lotto) schreiben.
    Sollte das prog nicht funktionieren muss ich meinen Programmier-Lehrer fragen der mir weiterhelfen kann bzw. sollte.
    Nochmal recht herzlichen Dank für eure Antworten.

    mfg Thorsten



  • Dein Borland sollte zu alt sein für den hier geschriebenen C++ Quellcode.
    Ich weiss es jetzt nicht ganz exakt, der Borland C++ 3.1 ist etwa 1992 auf den Markt gekommen. Er war seiner Zeit, wenn ich mich recht erinnere, der Marktführer, aber es sind doch Weiterentwicklungen bei den Compilern zu erkennen.

    Obwohl, interessant das der schon

    for(int ...)
    

    beherrscht und ein Borland aus dem Jahr 2000 in der Basiseinstellung dies als Fehler betrachtet.

    MfG f.-th.



  • Hallo zusammen, ich habe eine Hausaufgabe in der Uni bekommen einen ähnlichen Code zu erstellen. Wir machen allerdings alles in VisualC++ und ich konnte keinen anderen vergleichebaren Code für Visual finden der auch Lottozahlen in der Art generiert. Gerne wollte ich euch fragen ob es große Unterschiede gibt zwischen den hier dargestellten Code in C und wenn ich diesen z.B. in VisualC ausgeben möchte. Ich muss natürlich die Hausaufgabe bestehen und es wäre wirklich super wenn ihr mir hier helfen könnten.



  • Zeig mal ein wenig Quelltext 😃

    VisualC++ ist ein weites Feld.

    Aber, wenn du uns genug Quelltext zeigst, wissen wir vielleicht welche C(++) Variante für dich am besten passt.

    Wenn du dir ein wenig Mühe gibst, solltest du aber aufgrund der Beiträge eine Lösung in C oder C++ schreiben können.

    MfG f.-th.



  • PcSmarter schrieb:

    ich konnte keinen anderen vergleichebaren Code für Visual finden der auch Lottozahlen in der Art generiert.

    Lottozahlen = Zufallszahlen. Was ist denn daran so schwierig? Ich behaupte jetzt einfach, dass du einfach nur faul bist.
    Du brauchst ja keinen kryptographisch sicheren Zufallszahlengenerator - ein (s)rand() würde völlig ausreichen.

    http://www.c-plusplus.net/forum/172876-full


Anmelden zum Antworten