Hallo, ich versuche seit gestern einen algo zu programieren der mir alle Lösungen vom Huas vom Nikolaus findet
nach zahlreichen versuchen hab ich dann versucht denn c algo von dieser seite:
nikohaus in delphi zu übersetzten allerdings klappt das noch nicht so ganz
vielleicht könnt ihr mir ja sagen wo meine fehler liegen
hier mein code:
Delphi-Quellcode:
unit nikolaus;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
matrx:
Array[1..5]
of string;
function nikohaus(matrix:
array of string;
const kn:integer; count:integer):
string;
implementation
{$R *.dfm}
function nikohaus(matrix:
array of string;
const kn:integer; count:integer):
string;
//noch keine rückgabem, weiß auch noch nicht genau wie ich die machen soll
var i: integer;
begin
for i := 1
to 5
do
begin
if matrix[kn][i] = '
1'
then
begin
if count = 7
then exit;
showmessage(matrix[kn]);
matrix[kn][i] := '
0';
matrix[i][kn] := '
0';
//nach einigen duchgängen bekomme ich hier immer die exception ERage Error
nikohaus(matrix, i, count + 1);
//with message "range check error"
matrix[kn][i] := '
1';
matrix[i][kn] := '
1';
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
matrx[1] := '
01110';
// ich hab statt den innerenarrays strings genommen weil sie leichter zuzuweisen sind
matrx[2] := '
10110';
//(weniger schreibarbeit)
matrx[3] := '
11011';
matrx[4] := '
11101';
matrx[5] := '
00110';
end;
procedure TForm1.Button1Click(Sender: TObject);
var s:
string;
begin
nikohaus(matrx, 1, 0);
end;
end.
weiß jemand wodurch dieser range error kommt?
und kann mir jemand einen tipp geben wie ich die rückgabe sinnvoll gestallte?
freue mich auf eure antworten,
grüße,
David