Boolsche Matrix extern einlesen und Ergebnis ermitteln



  • Hallo zusammen,

    hab ein kleines Problem:
    In meinem Programm können 4 interne Variablen 2 Zustände haben 0 bzw. 1.
    Alle vier Variablen in Kombination ergeben ein Schlussfolgendes Ergebnis, das in einer externen Datei realisiert ist.
    Das heißt also, alle Möglichkeiten die es gibt (2^4 verschiedene) ergeben ein Ergebnis:

    Folgender Aufbau der externen Datei:

    A B C D
    0 0 0 0 5
    0 0 0 1 6
    0 0 1 0 7
    0 0 1 1 8

    ...usw.

    Das heißt also, ich möchte alle Bedingungen intern mit der externen Tabelle abgleichen.
    Bsp: Interner zustand: 0 0 0 1 würde ich extern abgleichen und könnte dann auf die "6" schließen
    Alle Zeichen sind durch einen Tab getrennt.

    Wie könnte man sowas am besten lösen?
    Danke schon mal für die Antworten

    Gruß
    Thomas



  • 1. Einlesen der Datei in einen String (AnsiString, TString)
    2. Erzeugen eines Arrays oder Vectors entsprechend den Daten des Strings (Dimensionierung)
    4. Zuordnen der Daten ins Array
    3. Ergebnisse berechnen und ausgeben (in Datei...)

    So würde ich grob skizziert an die Sache herangehen.



  • int res=0;
    String vgl=EmptyStr;
    TStringList *li=new TStringList();
    li->LoadFromFile("liste.txt");
    TCheckBox *werte[4]={CheckBox1,CheckBox2,CheckBox3,CheckBox4};
    int i=0;
    for (i;i<4;i++) vgl+=IntToStr(werte[i]->Checked)+" ";
    i=0;
    while(i<li->Count&&!li->Strings[i].Pos(vgl))i++;
    if(li->Count!=i)
    {
       li->Delimiter =' ';
       li->DelimitedText = li->Strings[i];
       Edit1->Text = li->Strings[4];
    }
    else Edit1->Text ="nicht gefunden";
    delete li;
    

Anmelden zum Antworten