المشاركات : 975
المواضيع 50
:
: 218
الإنتساب : Feb 2008
belnono كتب :شكرا أخي
.fateh
على الكود الأخير، لكنني لم أفهم منه شيئا
بالنسبة للكود يعتمد على Recursive Function اي ان الدالة تقوم باعادة استدعاء نفسها عند
النهاية اما بالنسبة الى اين تنسخ يجب ان تراجع دروسك

و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
المشاركات : 49
المواضيع 12
:
: 0
الإنتساب : Aug 2012
السلام عليكم.....هذا كود انشاته ..مع العلم ان تشكيل اعداد من 4ارقام مختلفة ذون تكرار هو ترتيبة من 4 الى 4 والتي هي بعد الختزال 4*3*2*1=24....اي 24 حالة...للعلم الكود يقبل اربعة ارقام فقط مختلفة ....وشكرا
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
s,s1,a:string;
s2:char;
i,j,k:integer;
begin
s:=edit1.Text;
memo1.Clear;
for i:=1 to 4 do
begin
s1:='';
for j:=1 to 4 do
begin
if j<>i then
s1:=s1+s[j];
end;
for j:=1 to 3 do
begin
for k:=1 to 2 do
begin
a:='';
a:=s1[1]+s1[2*k-k div 2]+s1[2+k mod 2];
memo1.Lines.Add(s[i]+a);
end;
if j<=2 then
begin
s2:=s1[1];
s1[1]:=s1[2*j-j div 2];
s1[2*j-j div 2]:=s2;
end;
end;
end;
end;
السلام عليكم.....هذا كود تكوين اعداد مختلفة من 5 أرقام مختلفة ..مع العلم ان تشكيل اعداد من 5ارقام مختلفة ذون تكرار هو ترتيبة من 5 الى 5 والتي هي بعد الختزال 5*4*3*2*1=120....اي 120 حالة...للعلم الكود يقبل خمسة ارقام مختلفة ....وشكرا
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
s,s1,a,s3:string;
s2:char;
i,j,k,l,m:integer;
begin
s:=edit1.Text;
memo1.Clear;
for l:=1 to 5 do
begin
s1:='';
for j:=1 to 5 do
begin
if j<>l then
s1:=s1+s[j];
end;
for m:=1 to 4 do
begin
s3:='';
for j:=1 to 4 do
begin
if j<>m then
s3:=s3+s1[j];
end;
for j:=1 to 3 do
begin
for k:=1 to 2 do
begin
a:='';
a:=s3[1]+s3[2*k-k div 2]+s3[2+k mod 2];
memo1.Lines.Add(s[l]+s1[m]+a);
end;
if j<=2 then
begin
s2:=s3[1];
s3[1]:=s3[2*j-j div 2];
s3[2*j-j div 2]:=s2;
end;
end;
end;
end;
label1.Caption:=inttostr(memo1.Lines.Count) ;
end;
بنفس الطريقة تستطيع التعديل في كل مرة عند اضافة رقم ...فمثلا عندما نريد تشكيل اعداد من 6أرقام مختلفة فالناتج يكون 720 حالة