Ausgabe mit cout



  • Hallo Leute, ich habe jetzt mit hilfe von einigen anderen aus dem Forum diesen Quelltext erarbeitet.
    Jetzt ist die Frage, wie ich den Ausgegeben bekomme.
    Die Frage ist wirklich doof, aber so sehr habe ich mich mit C++ noch nicht beschäftigt.
    Also die Funktionsweise ist die folgende:
    Ich gebe im Edit Feld eine Zahl ein und mein Programm sucht mir nun Alle möglichen Kombinationen raus, die folgende Bedungungen erfüllen:
    nums<1>=nums<n>=0 und |num<pos>-num<pos-1>| <= 1

    #include <vector>
    #include <iostream>
    
    using namespace std;
    
    //---------------------------------------------------------------------------
    void check(vector<int> &nums, int pos, int n)
    {
        if (pos == n-1)
        {
         for(int i = 0; i < n; i++)
         {
          cout << nums[i] << " ";
         }
         cout << endl;
        }
        int prev = nums[pos-1];
        int lower = prev-1;
        int equal = prev;
        int higher = prev+1;
    
        if (lower >= 0)
        {
         nums[pos] = lower;
         check(nums, pos+1, n);
        }
        if (equal <= n - pos - 1)
        {
         nums[pos] = equal;
         check(nums, pos+1, n);
        }
        if (higher <= n - pos - 1)
        {
         nums[pos] = higher;
         check(nums, pos+1, n);
        }
    }
    //---------------------------------------------------------------------------
    int start(int N)
    {
        int n = N;
    
        vector<int> nums;
        for(int i = 0; i < n; i++)
        nums.push_back(0);
    
        check(nums, 1, n);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::StartButtonClick(TObject *Sender)
    {
     N = StrToInt(Edit1->Text);
     start(N);
    }
    //---------------------------------------------------------------------------
    


  • Wenn du nur einen Wert zur Ausgabe verwendest nimm ShowMessage(variable hier rein);.
    Wenn du aber mehrere Ausgaben hintereinander verwendest, ist das ständige klicken nervig also würd ich se in ner Liste abspeichern.
    Cout = carry out ist in der Consolen Anwendug gebräuchig jedoch im VCL sehe ich dort keine direkte Verwendung für.



  • Also wie müsste es den aussehen, wenn ich nen Fenster haben möchte, das mir alle möglichen Lösungen untereinander anzeigt?



  • Es gibt bestimmt ne andere und bessere Lösung als meine, aber zu testzwecken kannst es ja benutzen.
    Erstelle ein TSringGrid.
    Schreibe folgendes bei TForm1:TForm1 rein
    StringGrid1->FixedCols=0;
    StringGrid1->FixedRows=0;
    StringGrid1->ColCount=1;

    nun verwendest du in deiner Schleife anstatt des cout´s
    StringGrid1->Cells[0][i]=nums[i];



  • Ein einfaches Memo geht hier auch.



  • Jetzt möchte ich aber das die Ausgabe in einer eigenen Prozedur geschiet die als Parameter N hat, kann mir da jemand helfen und sagen wir ich das genau mache


Anmelden zum Antworten