Yassine Einstein
منور يا برنس لو مش مسجل يشرفنا تسجيلك ولو مسجل يلا يا باشا الشله كلها مستنياك جوه
Yassine Einstein
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

Yassine Einstein

أهلاً بمن أتانا بتحية وسلام
 
الرئيسيةاللهأحدث الصورالتسجيلدخول

 

  ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } »

اذهب الى الأسفل 
كاتب الموضوعرسالة





تاريخ التسجيل : 31/12/1969

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » Empty
مُساهمةموضوع: ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } »    ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » I_icon_minitimeالخميس مارس 10, 2011 5:53 am

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » Icon
 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » Bism


الحمد لله على إحسانه
والشكر له على توفيقه وامتنانه
وأشهد أن لا إله إلا الله وحده لا شريك له تعظيما لشانه
وأشهد أن محمدا عبده ورسوله الداعي إلى رضوانه
صلى الله عليه وعلى صحبه وإخوانه
وبعد :
السلام عليكم ورحمة الله وبركاته
أهلا بكم أحبتي في الله
طبتم وطاب بكم موضوعنا لهذا اليوم بإذن الله
أهلا وسهلا بكم .
 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » Icon


 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 91743646
أهلا بكم اخواني الأعزاء في موضوعي لليوم في هذا المنتدى الرائع :)
-----------------------------
و هو هدية لكل الأعضاء و خاصة الإشراف ^^"

و الموضوع هو عبارة عن
المرجع الشامل في المصفوفات للغة الباسكال و الدلفي
 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 91743646
ما هي المصفوفة ؟

المصفوفة array هي مجموعه من مواقع تخزين البيانات، والتي يشتمل كل موقع منها على نفس نوع البيانات . وكل موقع

يسمى "عنصر" في المصفوفة وكل موقع ( عنصر ) له قيمه معينة.

الإعلان عن المصفوفة :

يعلن عنها في قسم الإعلان عن المتغيرات ، بهذا الشكل :

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » ZVMNz

Type هي احد أنواع المتغيرات

مثال :

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » RZl1r



يمكن إعلان المصفوفات بأي اسم كما تريد ، أيضا من الممكن إن تكون المصفوفات متغير عالمي أو محلي .

لنفترض أن لدينا مصفوفة مكونه من 20 عنصر

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » S2scD

هذا يعني أن لكل عنصر في المصفوفة قيمه معينه، لإدخال القيم إلى المصفوفة يكون ذلك إما عن طريق التعيين، أو جمله

الإدخال. كما سيأتي بعد قليل.

لإدخال قيمه عن طريق جمله التعيين :

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » QEp5d

إذا العنصر الأول أصبح لديه قيمه وهي 3 ، والعنصر الثاني له القيمة5 ، وهكذا ....

مثال :

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » O7ccl


شرح البرنامج :

بعد تعريف المتغير X من النوع مصفوفة لها 30 عناصر من النوع الصحيح قمنا بتعيين العنصر الأول للقيمة 3

) يجب أن تكون من النوع الصحيح بسبب أننا عرفنا المصفوفة من النوع الصحيح (

وتعيين العنصر 5 للقيمة 2



الآن قمنا بطباعه قيمه متغير وهي حاصل ضرب قيمه العنصر الأول في قيمه العنصر الخامس أي ( 3*2 )

أخيرا قمنا بطباعه قيمة العنصر الأول في المصفوفة.


لإدخال القيم عن طريق جمله الإدخال :

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


 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » SUY4I

لذلك وجب إستخدام تكرار بحيث نقوم بقراءة جميع القيم في سطرين فقط !


 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » BDUtN


متى تكون هناك الحاجة للمصفوفات ؟

لنفترض أن لدينا قائمه من الأسماء لنفترض10 ، سيكون تعريفها بهذا الشكل :

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » YzHtE

أما بالمصفوفات سوف يكون الإعلان كالتالي :

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » BdaxB
 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 91743646
المصفوفة الثنائية الأبعاد :

يكون الإعلان عنها بهذا الشكل :

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » AEEYC

ويتم إدخال القيم إليها هكذا :

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 3nfvf


أي أن في الصف الخامس والعمود الثاني ، القيمة تساوي 13

وهكذا في المصفوفة الثلاثية الأبعاد ، والرباعية ، إلى 100 بعد .كلها بنفس المفهوم !!

الذي تحتاجه انه في المصفوفة من البعد الثاني ستحتاج إلى حلقتين الأولى للبعد الأول والثانية للثاني.

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 91743646

الآن سنقوم بحل التطبيقات المشهورة الخاصة بالمصفوفات :

-------------------------------

1- مقلوب مصفوفة ( العمود يصبح سطر و السطر عمود ).

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » WOwMG

النتيجة ↓

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » Ucokd

أو بطريقة أخرى

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » C5MK2
النتيجة ↓

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » JQvQX

2- ترتيب الأعداد تصاعدياً أو تنازلياً بواسطة مصفوفة أحادية.

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » LfZ58
النتيجة ↓

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » MHFRu

يمكن تغيير علامة أكبر من (>) لترتيب العناصر تنازلياً

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 1KFTT



3- يجاد أكبر عنصر داخل مصفوفة ثنائية و موضعه داخلها.

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » PXYgF
النتيجة ↓

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » BneTx



4- دمج مصفوفتين.

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 94pjM
النتيجة ↓

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » DOYhN

كما أني قمت بعمل برنامج شامل جمعت به كل التظبيقات التي سبق ذكرها

هذه صورة له ↓

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » W5s1N
سورس ↓




Program xxxxx;
Uses crt;
Const N=4; M=6;
Var Mat : array [1..N,1..M] of Integer;
H : Char;
Procedure Meni;
Begin
Writeln ('1- Lire');
Writeln ('2- Affiche');
Writeln ('3- Grand');
Writeln ('4- Min');
Writeln ('5- Trier_i');
Writeln ('6- Trier_j');
Writeln ('7- Somme');
Writeln ('8- Trans');;
Writeln ('9- Exit');
End;
Procedure Lire;
Var i,j : Integer;
Begin
Writeln ('Entrez les elements de matrice');
For i:=1 To N Do
For j:=1 To M Do
Readln (Mat[i,j]);
End;
Procedure Affiche;
Var i,j : Integer;
Begin
For i:=1 To N Do
Begin
Write (' ');
For j:=1 To M Do
Write (Mat[i,j],' ');
Writeln (' ');
End;
End;
Procedure Grand;
Var i,j,A,B,Max : Integer;
Begin
Max := Mat[1,1];
A := 0; B :=0;
For i:=2 To N Do
For j:=2 To M Do
If (Mat[i,j] > Max) Then
Begin
Max := Mat[i,j];
A := i;
B := j;
End;
Writeln ('Le pluse Grand : ',Max);
Writeln ('(i,j) : (',A,',',B,')');
End;
Procedure Min;
Var i,j,A,B,Min : Integer;
Begin
Min := Mat[1,1];
A := 0; B := 0;
For i:=2 To N Do
For j:=2 To M Do
If (Mat[i,j] < Min) Then
Begin
Min := Mat[i,j];
A := i;
B := j;
End;
Writeln ('Le pluse Petit : ',Min);
Writeln ('(i,j) : (',A,',',B,')');
End;
Procedure Trier_i;
Var i,j,x,Temp : Integer;
Begin
For i:=1 To (N-1) Do
For j:=1 To M Do
For x:=i+1 To N Do
If (Mat[i,j] < Mat[x,j]) Then
Begin
Temp := Mat[i,j];
Mat[i,j] := Mat[x,j];
Mat[x,j] := Temp;
End;
For i:=1 To N Do
Begin
Write (' ');
For j:=1 To M Do
Write (Mat[i,j],' ');
Writeln (' ');
End;
End;
Procedure Trier_j;
Var i,j,y,Temp : Integer;
Begin
For i:=1 To N Do
For j:=1 To (M-1) Do
For y:=j+1 To M Do
If (Mat[i,j] < Mat[i,y]) Then
Begin
Temp := Mat[i,j];
Mat[i,j] := Mat[i,y];
Mat[i,y] := Temp;
End;
For i:=1 To N Do
Begin
Write (' ');
For j:=1 To M Do
Write (Mat[i,j],' ');
Writeln (' ');
End;
End;
Procedure Somme;
Var i,Somme : Integer;
Begin
Somme := 0;
For i:=1 To N Do
Somme := Somme + Mat[i,i];
Writeln ('La Somme : ',Somme);
End;
Procedure Trans;
Var i,j : Integer;
Begin
For i:=1 To M Do
Begin
Write (' ');
For j:=1 To N Do
Write (Mat[j,i],' ');
Writeln (' ');
End;
End;
Begin
Clrscr;
Repeat
Meni;
Write ('Donnez un choix corecte: ');
Readln (H);
Case H Of
'1' : Lire;
'2' : Affiche;
'3' : Grand;
'4' : Min;
'5' : Trier_i;
'6' : Trier_j;
'7' : Somme;
'8' : Trans;
'9' : Exit;
End;
Until (H = '9');
End.











 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 1189936661wd4









 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 5

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » But_download
100%







 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 1

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » But_download
100%







 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 7

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » But_download
100%







 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 9

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » But_download
100%







 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 6

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » But_download
100%







 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 10

 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » But_download

أي حرف في السورس غير مفهوم أن مجود للرد :)
 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 91743646







نأتي الى الختام
أرجو أن يكون الموضوع قد أعجبكم و تكونو قد إستمتعتم و لو بالشيئ البسيط :)
الى اللقاء مع موضوع آخر ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » Icon
تحياتي لجميع المشرفين و جميع الأعضاء

أخوكم عبد الله بلخير - برهوم - المسيلة
 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » 2vbjxft
 ••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } » H2oTT
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
••●| دليلك الشامل في المصفوفات |●•• { Pascal - Delphi } »
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
Yassine Einstein :: البرمجة والتطوير :: لغات البرمجة-
انتقل الى: