Einzelnen Beitrag anzeigen

-lx-
(Gast)

n/a Beiträge
 
#21

Re: Problem der Erbteilung ?

  Alt 20. Nov 2006, 23:58
So... nun hier die finale Version samt Ausgabe der Stellen der benutzen Zahlen.


Delphi-Quellcode:

[...]


type
  TFeld = Array[1..5] of Integer ;
  TFeldBoolean = Array[1..5] of Boolean ;


[...]


var
  Form1: TForm1;
  Feld: TFeld = (1,9,5,3,8) ;
  Selectiert: TFeldBoolean = (False, False, False, False, False) ;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);

    procedure ShowSelection ;
    var i: Integer ;
        begin
          For i:= 1 To length(Selectiert) Do
              begin
                If Selectiert[i] Then
                    begin
                      Memo1.Lines.Add('An Feldposition ' + IntToStr(i) + ' --> ' + IntToStr(Feld[i])) ;
                      Selectiert[i]:= False ;
                    end;
              end;
          Memo1.Lines.Add('---------------------------') ;
          Memo1.Lines.Add(' ') ;
        end;


    function Summieren(): Integer ;
    var i, tmp: Integer ;
        begin
          tmp:= 0 ;
          For i:= 1 To length(Feld) Do
              begin
                tmp:= tmp + Feld[i] ;
              end;
          result:= tmp ;
        end;


    procedure SucheLoesung(i, Erbhaelfte, TErbe: Integer) ;
    var j: Integer ;
        begin
        { Memo1.Lines.Add('i: ' + IntToStr(i)) ;
          Memo1.Lines.Add('Erbhaelfte: ' + IntToStr(Erbhaelfte)) ;
          Memo1.Lines.Add('TErbe: ' + IntToStr(TErbe)) ;
          Memo1.Lines.Add('__________') ; }


          For j:= i To length(Feld) Do
              begin

                If (TErbe + Feld[j]) = Erbhaelfte Then
                    begin
                      Selectiert[j]:= True ;
                      Memo1.Lines.Add('Erbe teilbar!') ;
                      Memo1.Lines.Add('Erbe pro Person: ' + IntToStr(TErbe+Feld[j]) + '') ;
                      Memo1.Lines.Add(' ') ;
                      Memo1.Lines.Add(' ') ;
                      Showselection;
                    end

                Else If (TErbe + Feld[j]) < Erbhaelfte Then
                    begin
                      If j < length(Feld) Then
                          begin
                            Selectiert[j]:= True ;
                            SucheLoesung(j+1, Erbhaelfte, TErbe+Feld[j]) ;
                            Selectiert[j]:= False ;
                          end;
                    end;

              end;
        end;


begin

If (Summieren mod 2) = 0 Then SucheLoesung(1, Summieren div 2, 0)
  Else Memo1.Lines.Add('Erbe nicht teilbar!') ;

end;

end.
  Mit Zitat antworten Zitat