(Gast)
n/a Beiträge
|
Re: Problem der Erbteilung ?
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.
|
|
Zitat
|