delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف نعرف مصفوفة ذات قيم ثابتة ومن نوع Integer
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم


أولا حياكم الله وبياكم وجعل الجنة مثواكم لما تبذلوه من جهد في نشر العلم
وبارك الله لكم في هذا الصرح العربي المتألق ونسأل الله أن يجازيكم عنا خير الجزاء
==============================================

إستفسار :
لتعريف مصفوفة ذات قيم ثابتة ومن نوع String نقوم بالتالي :

PHP كود :
const ArrayTest: array[0..4] of string = ('Hello', 'Test', 'AT4RE', 'Delphi4Arab', 'Bye'); 

السؤال : كيف نعرف مصفوفة ذات قيم ثابتة ومن نوع Integer


والسلام عليكم
وعليكم السلام
إذا لم يكن هذا ما تبحث عنه:
PHP كود :
const
  
ArrayTest: array[0..4] of Integer = (12, 10, 3, 15, 45); 
فوضح أكثر.
جزاك الله خيرا هذا هو المطلوب ... كنت أقوم بنفس الشء وكان يظهر لي خطأ .

لكن المشكل كان من نوع المتغير الذي اسند له قيم المصفوفة

بارك الله فيك أخي
السلام عليكم ,,

كالتالي :

PHP كود :
const  m:array[0..4] of integer =(5,4,3,2,1); 
سبقني الأخ آسف للتو رأيت الرد : )

إقتباس :كنت أقوم بنفس الشء وكان يظهر لي خطأ .

ربما قد وضعت علامة ' بين الأرقام ؟

هكذا ('2','3','4') ؟
أنا أحاول ترتيب عناصر مصفوفة من نوع Integer
Dr.MOT كتب :حسنا ما المشكلة ؟

أرجـو التوضيح قليلا !

شكرا لاهتمامك Smile
كل ما في الأمر أنني حاولت صياغة دالة تقوم بترتيب عناصر مصفوفة عددية :
PHP كود :
const TABLEAU: array[0..11] of integer = (2, 12, 98, 35, 4, 76, 30, 1, 54, 81, 26, 44); 

الطريقة مفهومة لكن أتعرض لأخطاء أثناء صياغة الكود

والمبدأ يعتمد على المقارنة ثم قلب المواضع كيف ذلك ؟ ... نقوم بمقارنة أول عناصر المصفوفة بباقي العناصر
في حالة وجد أصغر منه يتم قلب المواضع ثم ننتقل للعنصر الثاني ونقارنه بالبقية .... وهكذا..
تبقى الحلقة حتى يتم الترتيب من الأصغر إلى الأكبر..

المهم إستعملت الطريقة التالية

PHP كود :
const TABLEAU: array[0..11] of integer = (2, 12, 98, 35, 4, 76, 30, 1, 54, 81, 26, 44);
var 
i, j, Temp: integer;

begin
 
for i := 0 to High(TABLEAU) - 1 do
   for 
j := (i + 1) to High(TABLEAU) do
   
begin
       
if TABLEAU[i] > TABLEAU[j] then
       begin
         Temp        
:= TABLEAU[i];
         
TABLEAU[i]  := TABLEAU[j];
         
TABLEAU[j]  := Temp;
       
end;
    
end;

      for 
i := 0 to 11  do
      
Memo1.Lines.Add(IntToStr(TABLEAU[i])); 

يعطيني ×طأ أثناء تحويل المواضع هنا :

PHP كود :
Temp  := TABLEAU[i];
         
TABLEAU[i]  := TABLEAU[j];
         
TABLEAU[j]  := Temp; 
من خلال نظرة سريعة ::

I من 0 الى طول المصفوفة - 1 = 11

ولكن انتبه :

عندما يصل I الى ال 11 >>

سيكون J = i + 1 ... = 12

و بالتالي خرجت عن حدود المصفوفة ... فلايوجد J[12]s

بالتوفيق
يمكن أنجاز العملية من خلال الكود التالي ووفق اي طول للمصفوفة :

PHP كود :
Uses ... Math;

procedure TForm1.Button1Click(Sender: TObject);
Const
ArrInt: Array [0..11] Of Integer = ( 100,55,66,74,1,8,5,9,133,557,88,914);
var
I,M,N:Integer;
J:Variant;
ordArr:Array of integer;
begin
J
:= 0; M:= 0; N:= 0;

For 
I:= 0 To Length(ArrInt) -1 Do
    If 
Length(inttostr(ArrInt[I])) > J Then J:= Length(inttostr(ArrInt[I]));


J:= Power(10,J);

SetLength(OrdArr,Length(arrint));

For 
I:=0 To J Do
    For 
M:= 0 To Length(ArrInt) -1 Do
         if 
ArrInt[M] = I Then
                 begin
                 OrdArr
[N]:= ArrInt[M];
                 
N:= N+1;
                 
end;

Memo1.Clear;
For 
I:=0 To Length(OrdArr) -1 do
   
Memo1.Lines.Add(inttoStr(OrdArr[I]));

end; 
hichampro كتب :أنا أحاول ترتيب عناصر مصفوفة من نوع Integer
يمكنك الاطلاع على الموضوع
http://www.delphi4arab.net/forum/showthr...?tid=11583
http://www.delphi4arab.net/forum/showpos...ostcount=4