Einzelnen Beitrag anzeigen

Salazriel

Registriert seit: 13. Feb 2010
33 Beiträge
 
#12

Re: Problem im Umgang mit Sets

  Alt 18. Feb 2010, 14:18


Wie man ja auch meinem Post zur Grundüberlegung von NakedSingles entnehmen kann, wollte ich es ja auch so machen, dass zuerst alle FeldMengen abgezogen werden und DANN die Restmenge überprüft wird, so wie du es vorgesclagen hast funktionierts

Delphi-Quellcode:
For Zeile:=0 to 8 do
  For Spalte:=0 to 8 do
    begin
    RestMenge:=FeldMenge[Spalte,Zeile];
    For Verschiebung:=1 to 8 do
      begin
      RestMenge:=RestMenge-FeldMenge[(Spalte+Verschiebung) mod 9,Zeile];
      end;
         For i:=1 to 9 do
        If RestMenge=[i]
        then
          begin
          StringGrid1.Cells[Spalte,Zeile]:=inttostr(i);
          RestMengeNeuZuOrdnen(i,Spalte,Zeile);
          end;
    end;

Zitat von Amateurprofi:
Die Geschichte mit der Verschiebung und Mod 9 finde ich nicht so glücklich. Ist unklar und teuer.....
Das verstehe ich nicht. Zwar ist deine Methode die einfachere (daher werd ich die auch dann nutzen), aber was soll unklar und teuer sein? Meinst du damit, dass beim Lesen des Quelltextes nicht sofort die Funktion davon klar wird oder was? Und funktionell sind die ja identisch, bloß wird bei mir als 1. die RestMenge der Zelle rechts daneben abgezogen und bei dir die RestMenge der Zelle ganz links.


Zitat von Amateurprofi:
Und, nach RestMengeNeuZuOrdnen(i,Spalte,Zeile) meine ich sollte die Prüfung abgebrochen werden, weil sich die Voraussetzungen geändert haben.
Die If-Bedingung wird ja nur maximal 1-mal passiert, daher würde der then-Block nur einmal passiert werden. Wenn er passiert wurde, wird die If-Anfrage für alle restlichen i false.
Dein Exit würde nur 'etwas' Leistung sparen, oder?



PS: Heißt das then-Block, ich habe kurz überlegt ob ich Schleifenkörper schreibe, aber if ist ja keine Schleife ?
  Mit Zitat antworten Zitat