تراكيب البيانات
Download
Report
Transcript تراكيب البيانات
قسم علوم الحاسوب و تكنولوجيا المعلومات
تخصص دبلوم البرمجيات و قواعد البيانات
تراكيب البيانات
الوحدة الثانيــة
المصفوفات أحاديـة و ثنائيــة األبعــاد
المادة العلمية إعداد
http://mfarra.cst.ps
أ .محمود رفيق الفـــرَّ ا
الفـــرا
مدرسـا المساق /أ .محمود رفيق
َّ
2010-2011
محاور المحاضرة
2
المقصود بتراكيب البيانات
الهدف من تعلم تراكيب البيانات
طباعة عناصر المصفوفة
تخزين معلومات في المصفوفـة
استبدال عناصر في المصفوفات
حذف عنصر من المصفوفة دون تأثير
إضافة عنصر دون تأثير
مفهوم دراسة الخوارزميات
التعامل مع الـ ArrayList
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
بذكرك ربنـا نحيــا
3
الذكر لمن دخل السوق
ال إله إال اهلل وحده ال شريك له ،له الملك وله الحمدد
يحيي ويميت وهو حي ال يموت بيده الخير وهو علد
كل شيء قدير
عن عمر بن الخطاب رضي هللا عنه أن رسول هللا صلى هللا عليه وسلم قال :منن دخنل
السوق فقال :ال إله إال هللا وحده ال شريك لنه لنه الملنك ولنه الحمند يحيني ويمينت وهنو
حي ال يموت بيده الخير وهو على كل شيء قدير "كتنب هللا لنه ألنف ألنف حسننة ومحنا
[حسنه األلباني]
عنه ألف ألف سيئة ورفع له ألف الف درجة.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
المقصود بتراكيب البيانات ؟
4
هي بناء منطقي كبير من عناصر البيانات أو مجموعات منظمة من
عناصننننر البيانننننات تعامننننل كوحنننندة واحنننندة مثننننل المصننننفوفات أو
السجالت.
تستخدم من أجل تسهيل بناء تطبيقات محددة مثنل تخنزين معلومنات
طلبنننة أو تخنننزين معلومنننات زبنننائن أو طلبنننات للبينننع و الشنننراء أو
معالجة لبيانات مستند ما ,و غير ذلك.
أنواع تراكيب البيانات
5
تنقسم تراكيب البيانات إلى عدة أنواع يناظر كل منها أسلوبا ً خاصا ً
في تصميم البرامج والمعالجة االلكترونية و هي:
.1
.2
.3
هياكل بيانات خطية :و فيها يتم تخزين البيانات متجناورة فني النذاكرة
مثل المصفوفات و المكدسات و السالسل المترابطة و غير ذلك.
هياكننل بيانننات شننجرية :و فيهننا يننتم تخننزين البيانننات بصننورة تماثننل
تركيبة األشجار حيث تتجاور معلومنات و تتباعند معلومنات بننا ًء علنى
بيانات منطقية محددة و مثال ذلك ما يعرف بـ .Tree
هياكننل بيانننات شننبكية :و هنني تشننابه الشننجرية إال أن العناصننر هن نا قنند
ترتبط مع أكثنر منن عنصنر منن المسنتول العلنو و هنو منا يعنرف بنـ
Graph
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
الهدف من تعلم تراكيب البيانات؟
6
علنننم تراكينننب البياننننات هنننو منننن العلنننوم المينننر أساسينننـة فننني عنننالم
البرمجـة ,بمعنى يمكنك تطوير البرمجيات دون الحاجة له ,و لكن!!
ظهرت الحاجة لعلم تراكيب البيانات بهدف زيادة جنودة البرمجينات
من حيث سرعة التنفيذ ,و تقليل كمية الذاكرة المستخدمة.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
التعامل مع عناصر المصفوفة؟
7
بما أنَّ المصفوفة سوا ًء األحاديـة أو الثنائيـة تعتبر مجموعة من
العناصر (المتميرات) المتجاورة يزيد عنوان الواحدة عن التي قبلها
بعدد ثابت هو 1فإن التعامل مع هذه العناصر سيكون سهال من
خالل استخدام التكرارات للوصول للعناصر ثم القيام بالعملية التي
نرغب في القيام بها سواء طباعة ,تخزين ,بحث ,ترتيب ,حذف و
غير ذلك
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
طباعة عناصر المصفوفة؟
8
1. static void Main(string[] args)
2.
{
3.
string[] names = { "Ali", "Mahmoud", "Hussam", "Ala" };
4.
for (int i = 0; i < names.Length; i++)
5.
Console.WriteLine("The next name is "+names[i]);
6.
Console.Read();
7.
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
طباعة عناصر المصفوفة؟
9
من الطرق األخرل لتعريف المصفوفة –عند معرفة عناصر سلفا-
كما يلي string[] names = { "Ali", "Mahmoud", "Hussam", "Ala" }; :و في
هذه الحالة يتعرف المترجم على عدد عناصر المصفوفة بشكل
ضمني.
من الدوال التي يكثر استخدامها للتعامل مع المصفوفات دالة
lengthو هي تستخدم إلعادة عدد عناصر المصفوفة.
يستخدم االمر Console.WriteLineللطباعة كما تشاهد في السطر
5بينما االمر Console.Readللقراءة.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
طباعة عناصر المصفوفة
10
1.
2.
3.
4.
5.
6.
7.
static void Main(string[] args)
{
string[,] names = { {"Ali", "Mahmoud"}, {"Hussam", "Ala"} };
for (int i = 0; i < names.GetLength(0); i++)
Console.WriteLine("The next name is " + names[i,0]+" “ + names[i,1]);
Console.Read();
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
طباعة عناصر المصفوفة
11
من الطرق األخرل لتعريف المصفوفة ذات البعدين كما يلي تشاهد
في السطر الثالث.
من الدوال التي يكثر استخدامها للتعامل مع المصفوفات ذات
البعدين دالة ) GetLength(0و هي تستخدم إلعادة عدد عناصر
المصفوفة في الصف الواحد ,بينما عند استبدال القيمة 0بالقيمة 1
فإنها ستعيد عدد العناصر في العمود.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
تخزين معلومات في مصفوفـة أحاديـة
12
تخزين المعلومات داخل المصفوفات في عموم التطبيقات يتم بشكل
آلي ,و ذلك لمعلومات يتلقاها التطبيق إما من المستخدم و إما من
مصدر خارجي (قاعدة بيانات ,ملفات معلوماتية).
لهذا فأنت دائما بحاجة إلى تقدير حجم المصفوفة التي تحتاجها,
معرفة نوع البيانات ,و تحتاج كذلك إلى تخزين البيانات بصورة
صحيحة و ترتيب صحيح.
لهذا نحن بحاجة إلى استخدام جملة تكرار باإلضافة إلى جملة قراءة
القيم.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
تخزين معلومات في مصفوفـة أحاديـة
13
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
static void Main(string[] args)
{
int[] id = new int[5];
for (int i = 0; i < 5; i++)
id[i] =int.Parse(Console.ReadLine());
Console.WriteLine("==== The numbers in Array are =====");
for (int i = 0; i < 5; i++)
Console.WriteLine(" Next Number is " + id[i]);
Console.ReadLine();
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
تخزين معلومات في مصفوفـة أحاديـة
14
من المعروف سلفا أن القيم التي يتم إدخالها من خالل جمل اإلدخال
يعتبرها المترجم من النوع نص stringو لكي نخزنها في مصفوفة
من النوع الصحيح نحتاج إلى تحويل النوع و هو ما يمكن فعله من
خالل الدالة Parseكما هو واضح في السطر الخامس.
الكود بد ًء من السطر السادس ال يعتبر لتخزين القيم و إنما لطباعة
القيم التي تم إدخالها.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
تخزين معلومات في مصفوفـة ثنائيـة
15
تخزين المعلومات داخل المصفوفات في عموم التطبيقات يتم بشكل
آلي ,و ذلك لمعلومات يتلقاها التطبيق إما من المستخدم و إما من
مصدر خارجي (قاعدة بيانات ,ملفات معلوماتية).
لهذا فأنت دائما بحاجة إلى تقدير حجم المصفوفة التي تحتاجها,
معرفة نوع البيانات ,و تحتاج كذلك إلى تخزين البيانات بصورة
صحيحة و ترتيب صحيح.
لهذا نحن بحاجة إلى استخدام جملة تكرار باإلضافة إلى جملة قراءة
القيم.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
تخزين معلومات في مصفوفـة ثنائيـة
16
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
static void Main(string[] args)
{
string[,] names = new string[2, 3];
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; j++)
names[i, j] = Console.ReadLine();
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
Console.Write(names[i, j]);
Console.WriteLine();
}
Console.Read();
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
تخزين معلومات في مصفوفـة ثنائيـة
17
من خالل المثال السابق قمنا بتخزين االسم الثالثي لشخصين ,و
لهذا كانت المصفوفة تحتو على صفين (للشخصين) و ثالثة
أعمدة (كل عمود يحتو على جزء من االسم الثالثي).
و طالما كنا نمتلك تكرار أفقي (األعمدة) و عمود (الصفوف)
فنحن نحتاج لتكرارين كل واحد منهما يعالج اتجاه.
مستخدما جمل الطباعة قم بالتعديل على المثال السابق بحيث ترشد المستخدم إلدخال األسماء على الشكل
التالي
أدخل الجزء 1من اسم الشخص األول
أدخل الجزء 2من اسم الشخص األول
أدخل االسم الثالث للشخص األول
و هكذا ...
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
استبدال عناصر في المصفوفات
18
من العمليات المشهورة في البرمجة استبدال قيم العناصر و هو ما
يعرف باسم ,swapحيث نقوم باستبدال قيم العنصر الثالث مع
الخامس مثال
و للقيام بهذه المهمة نحتاج إلى استحداث متمير كـ (مخزن مؤقت)
يتم فيه تخزين قيمة أحد المتميرين.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
استبدال عناصر في المصفوفات
19
1. static void Main(string[] args)
2.
{
3.
int[] numbers = { 3, 5, 7, 23, 56, 12 };
4.
int x;
5.
x = numbers[0];
6.
numbers[0] = numbers[1];
7.
numbers[1] = x;
8.
Console.WriteLine(" ");
9.
Console.WriteLine(" The elements of array after swap");
10.
for (int i = 0; i < numbers.Length; i++)
11.
Console.WriteLine(" "+numbers[i]);
12.
Console.Read();
13.
}
قم بتطبيق هذا المفهوم مع مصفوفة ثنائيـة األبعاد مخزن بها االسماء
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
بذكرك ربنـا نحيــا
20
الذكر لمن ركب الدابـة
اهلل أكب د ددر ...اهلل أكب د ددر ...اهلل أكب د ددر ...س د ددبح اهلل ...
سبح اهلل ...سبح اهلل ...سدبح الد س سدخر لند هد ا
و م كند له موقنين و إن إل ربن لمنقلبو
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
حذف عنصر من المصفوفة دون تأثير
21
حننذف العنصننر مننن المصننفوفة ال يعننني اسننتبداله بالقيمننة صننفر !! بننل
يقصد به إزالة وجوده و الحفاظ على بقية العناصر.
هذا يعني أننا نحتاج إلى كتابة قيمة على القيمة المراد حذفها.
حذف العنصر قد يتم بطريقين هما/
.1
.2
طلب حذف عنصر بالقيمة (مثال :حذف العنصر ذو القيمة )10
طلب حذف عنصر بالعنوان(مثال :حذف العنصر الثالث)
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
حذف عنصر من المصفوفة دون تأثير
22
9
10 11 12 13 14
7
8
5
6
4
3
12 15 23 30 45 70 77 80 88 90 99
9
9
8
7
10 11 12 13 14
5
6
9
4
8
3
7
6
9
7
2
array
To delete the 5’th cell
15
2
2
1
0
1
5
3 4
12 15 23 30 45 15 77 80 88 90 99
2
9
1
0
7
2
array
Null
10 11 12 13 14
9
8
7
6
5
4
23 30 45 15 77 80 88 90 99 99
مساق تراكيب البيانات
3
12
2
9
1
0
7
2
array
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
حذف عنصر من المصفوفة دون تأثير
23
1. static void Main(string[] args)
2.
{
3.
int[] id = { 10, 12, 11, 45 };
4.
// to delete the value 12
5.
int i;
6.
for ( i = 0; i < id.Length-1; i++)
7.
{
8.
if (id[i] == 12)
9.
{
10.
break;
11.
} }
12.
for (int j =i ; j < id.Length-1; j++)
13.
id[j] = id[j + 1];
14.
for (int k = 0; k < id.Length; k++)
15.
Console.WriteLine(" "+id[k]);
16.
Console.Read();
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
حذف عنصر من المصفوفة دون تأثير
24
1. static void Main(string[] args)
2.
{
3.
int[] id = { 10, 12, 11, 45 };
4.
// to delete the value of index 2
5.
for (int i =2 ; i < id.Length-1; i++)
6.
id[i] = id[i + 1];
7.
for (int k = 0; k < id.Length; k++)
8.
Console.WriteLine(" "+id[k]);
9.
Console.Read();
10.
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
إضافة عنصر دون تأثير
25
نقصنند بإضننافة عنصننر داخننل المصننفوفة دون تننأثير ,أ يننتم إضننافة العنصننر فنني
موضع محدد دون حذف القيمة الموجودة في ذلنك الموضنع أو دون تميينر ترتينب
المصفوفة إن كانت مرتبـة.
و إلضافة عنصر جديد داخل المصفوفة نحتاج إلى:
تحديد عنوان الموضع الذ نرغب في إضافة العنصر فيه.
عمننل إزاحننة للقيمننة الموجننودة سننلفا فنني ذلننك الموضننع فنني اتجنناه اليمننين إلفننرا موضنع
فار .
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
إضافة عنصر دون تأثير
26
10 11 12 13 14
9
8
7
6
5
4
2
3
12 15 23 30 45 70 77 80 88 90 99
10 11 12 13 14
9
8
7
6
7
2
array
To insert value
13
5
9
1
0
4
13 15 23 30 45 70 77 80 88 90 99
3
12
2
9
1
0
7
2
array
الشكل العلو يوضح طريقة إضافة عنصر في مصفوفة مرتبـة العناصر حسب القيمة بشكل تصاعد
إضافة عنصر في مصفوفة غير مرتبـة دون تأثير
27
1. static void Main(string[] args)
2.
{
3.
int[] salary = new int [6];
4.
salary[0] = 1200;
5.
salary[1] = 2000;
6.
salary[2] = 1000;
7.
salary[3] = 3210;
8.
salary[4] = 4310;
9.
// to add value 3000 in the position 3
10.
for (int i = salary.Length - 1; i >= 3; i--)
11.
salary[i] = salary[i - 1];
12.
salary[3] = 3000;
13.
Console.WriteLine(" === Values of Array after inserting === ");
14.
for (int j = 0; j < salary.Length; j++)
15.
Console.WriteLine(" Value: "+salary[j]);
16.
Console.Read();
مساق تراكيب البيانات
17. محمود رفيق الفــرَّ ا
} . أ/المادة العلمية إعداد
إضافة عنصر في مصفوفة مرتبـة دون تأثير
1. static void Main(string[] args)
{
2.
int[] salary = new int[6];
283.
salary[0] = 100;
4.
salary[1] = 200;
5.
salary[2] = 300;
6.
salary[3] = 1210;
7.
salary[4] = 2310;
8.
// To add value 250
9.
int i;
قدددم: تددددريب ذاتدددي
بالتعددددددددددديل علددددددددددى
10.
for (i = 0; i < salary.Length; i++)
البرندددامي فدددي حدددال
11.
if (salary[i] > 250)
كانددت كافددة عنا ددر
12.
break;
الم دددددفوفة أ ددددد ر
13.
for (int j = salary.Length - 1; j >= i; j--)
مدددن الةيمدددة المدددراد
14.
salary[j] = salary[j - 1];
إدخالها
15.
salary[i] = 250;
16.
Console.WriteLine(" ");
17.
Console.WriteLine(" === Values of Array after inserting === ");
18.
for (int j = 0; j < salary.Length; j++)
19.
Console.WriteLine(" Value: " + salary[j]);
. أ/المادة العلمية إعداد
مساق تراكيب البيانات
20. محمود رفيق الفــرَّ اConsole.Read();
}
مفهوم دراسـة الخوارزميات
29
يقصد بمفهوم دراسة الخوارزميات هو دراسـة ما تحتاجه هذه الخوارزمينات منن
وقت و مساحة تخزين للوصول للحنل ,و يعنرف هنذا العلنم باسنم Complexity of
Algorithms
الوقت (يعتمد على عدد خطوات)
مساحة تخزين (يعتمد على عدد المعلومات التي نحتاج لتخزينها في الذاكرة العشوائية)
فمثـال :إذا أردننا تخنزين عنصنر جديند فني المصنفوفة ,فننحن هننا نحتناج لحسناب
عدد العناصر التي نحتناج لتحريكهنا باإلضنافة لعملينة التخنزين ,لنحسنب الوقنت و
المساحة.
)exp (n
و هننناك مقننادير عامننة لمنندل تعقينند الوقننت
المستخدم ,و هي موضحة بالشكل المقابل.
n
log n
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
مفهوم دراسـة الخوارزميات
30
و يعرف Time complexityبأنه الوقت الالزم لتنفينذ البرننامج (الخوارزمينة)
مقارنة بعدد المدخالت (مثال عدد عناصر المصفوفة).
و يعننرف Space complexityبأنهننا مسنناحة التخننزين الالزمننة لتنفيننذ البرنننامج
مقارنة بعدد المدخالت.
و طالما أنها مرتبطـة بالمدخالت ,فستجد أنَّ درجنة تعقيند الخوارزمينـة تقناس بمنا
يعنرف بنـ ) O(nأو Big o notationعلمنا بنأنَّ nهننا يقصند بهنا عندد منرات
المعالجة أو التخزين ,و كلما قلة قيمنة nكلمنا كاننت هنذه الخوارزمينـة أفضنل منن
حيث الوقت و التخزين.
)exp (n
هذا المفهوم من العلدوم التدي يدتم دراسدتها بعنايدة
دي علدوم الحاسدوب و محللدي
شديدة مدن متخ
الدددن م ,ألن نتيجتهدددا قدددد تجعلهدددم يعتمددددون علدددى
خوارزميـة دون أخرى
مساق تراكيب البيانات
n
log n
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
مفهوم الـ ArrayList
31
الشنننك أننننك انتبهنننت خنننالل تعاملننننا منننع المصفوفنننـة فننني إصننندارها
التقليد أنَّ حجمها ثابت و ال يمكن زيادته خالل عمنل البرننامج ,و
هذا األمر جعلها غير مناسبة لكثير من البرامج.
منن الحلنول لهنذه المشننكلة اسنتخدام منا يعنرف Dynamic Data
Structureحيث الحجم يمكن زيادته خالل تنفيذ النظام ,و من هنذه
التراكيب:
Stack
Queue
Array List
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
مفهوم الـ ArrayList
32
و تعتمد الـ ArrayListعلى حجنم مبندئي قندره 4عناصنر ,بمجنرد
الوصول له يتم تلقنائي إضنافة 4عناصنر جديندة و هكنذا ,و بالتنالي
فال وجود لخطأ انتهاء الحجم ( ,يمكننا طلب عدد أكبر منن الخاننات
من بداية العمل).
تعتبر الـ ArrayListمن تراكيب البيانات المبنيـة سلفـا في لمة سني
شارب ,و لكي يمكننا التعامل معها نحتاج لتضمين المكتبـة Collections
;using System.Collections
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
مفهوم الـ ArrayList
33
و يتم تعريف مصفوفة اسمها namesمن هذا النوع كما يلي:
;)(ArrayList names = new ArrayList
كما تالحظ في تعريف الـ ArrayListلم نحندد عندد العناصنر ,و لنم
نستخدم ] [ و ذلك ألنه يعتبر صنف معرف سلفا Predefined class
و بالتالي فتعريف أ مصفوفة من هذا الننوع ينتم كأننك تشنتق كنائن
من صنف.
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
مفهوم الـ ArrayList
34
و يمتلننك صنننف ArrayListمجموعننة مننن النندوال التنني يمكنننك مننن
خاللها التعامل مع عناصر المصفوفة ,بعضها موضح فيما يلي.
الدالة
)(Add
)(AddRange
)(Clear
و يفتها
من خاللها يتم إضافة عناصر للمصفوفة في نهايتها.
يتم من خاللها إضافة مصفوفة لمصفوفـة أخرل من النوع ArrayListو تضاف
العناصر في نهاية المصفوفة المضاف لها.
تسمح بحذف كافة العناصر الموجودة داخل المصفوفة
)(Contains
دالة تستخدم لفحص وجود عنصر في المصفوفة من عدمه و هي بالتالي تعيد القيمة
الشرطيـة ()T, F
)(CopyTo
دالة تمكنك من نسخ عدد من عناصر مصفوفة ArrayListإلى مصفوفة أخرل
)(Insert
تسمح لك بإدراج عنصر ما في موضع محدد داخل المصفوفة و ليس شرطــا في
نهايتها
مستخدما خدمة البحث عبر اإلنترنت ,ابحث عن مزيد من الدوال مع مفهوم كل منها
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا
ArrayList مفهوم الـ
35
1. static void Main(string[] args)
2.
{
3.
ArrayList names = new ArrayList();
4.
int po1 = names.Add("Ali");
متمير ُم َعرَّ ف سلفا داخل
5.
int po2 = names.Add("hussam");
الصنف و يعيد عدد العناصر
6.
int po3 = names.Add("hassan");
التي تحتويها المصفوفة
7.
int po4 = names.Add("Alaa");
8.
int po5 = names.Add("wael");
9.
Console.WriteLine();
10.
Console.WriteLine(" Position of PO1: " + po1 +
11.
" Position of PO2: " + po2 + " Position of PO5: " + po5);
12.
Console.WriteLine(" number of names in the ArrayList: " + names.Count);
13.
Console.ReadLine();
14.
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
ArrayList مفهوم الـ
36
1. static void Main(string[] args)
2.
{
3.
ArrayList list1 = new ArrayList();
4.
list1.Add(40);
5.
list1.Add(50);
6.
list1.Add(60);
7.
list1.Add(70);
8.
ArrayList list2 = new ArrayList();
9.
list2.Add(80);
10.
list2.Add(90);
11.
list1.AddRange(list2);
12.
Console.WriteLine(" === The elements of list1 are ===");
13.
foreach (object x in list1)
14.
Console.WriteLine(" "+x);
15.
Console.ReadLine();
16.
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
ArrayList مفهوم الـ
37
1. static void Main(string[] args)
2.
{
3.
ArrayList list1 = new ArrayList();
4.
list1.Add(40);
5.
list1.Add(50);
6.
list1.Add(60);
7.
list1.Add(70);
8.
ArrayList list2 = new ArrayList();
9.
list2 = list1.GetRange(0, 3);
10.
Console.WriteLine();
11.
foreach (object x in list2)
12.
Console.WriteLine(" "+x);
13.
Console.ReadLine();
14.
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
تددددمGetRange مددددن خددددةل الدالددددة
استةطاع ثةثة عنا ر من الم دفوفة
بدايددددددة مددددددن الع ددددددرlist1 األولددددددى
الموجود في الموضع فر و تخزينها
.list2 في الم فوفة
مساق تراكيب البيانات
ArrayList مفهوم الـ
38
1. static void Main(string[] args)
2.
{
3.
ArrayList list1 = new ArrayList();
4.
list1.Add(40);
5.
list1.Add(30);
6.
list1.Add(10);
7.
list1.Add(100);
8.
list1.Sort();
9.
Console.WriteLine();
10.
foreach (object x in list1)
11.
Console.WriteLine(" " + x);
12.
Console.ReadLine();
13.
}
محمود رفيق الفــرَّ ا. أ/المادة العلمية إعداد
مساق تراكيب البيانات
أشكركم
39
السؤال مفتاح للعلوم كلها...
تذكر أن نيوتن عندما سأل لماذا وقعت التفاحـة وصل إلى قوانين الجاذبيــة ...
مساق تراكيب البيانات
المادة العلمية إعداد /أ .محمود رفيق الفــرَّ ا