InstagramTwitterSnapChat


 
وصف

العودة   منتديات سكاو > الكليات الجامعية > منتدى كلية الحاسبات وتقنية المعلومات > المنتدى العام لكلية الحاسبات وتقنية المعلومات > منتدى الملخصات والمواضيع المميزة بالقسم العام لكلية الحاسبات وتقنية المعلومات
التسجيل مشاركات اليوم البحث
   
   


منتدى الملخصات والمواضيع المميزة بالقسم العام لكلية الحاسبات وتقنية المعلومات قسم خاص يتم نقل المواضيع المميزة و الملخصات والملفات المهمه

[CPCS 204] الدرس الأول: Arrays & Data Structure

منتدى الملخصات والمواضيع المميزة بالقسم العام لكلية الحاسبات وتقنية المعلومات

 
 
أدوات الموضوع إبحث في الموضوع انواع عرض الموضوع
منتديات طلاب وطالبات جامعة الملك عبد العزيز منتديات طلاب وطالبات جامعة الملك عبد العزيز
  #1  
قديم 09-09-2012, 11:11 PM
الصورة الرمزية deathpain

deathpain deathpain غير متواجد حالياً

devkemo

 
تاريخ التسجيل: Dec 2010
الكلية: كلية الحاسبات وتقنية المعلومات
التخصص: Computer Science
نوع الدراسة: إنتظام
المستوى: الثامن
البلد: جــــدة
الجنس: ذكر
المشاركات: 770
Skaau.com (11) [CPCS 204] الدرس الأول: Arrays & Data Structure




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

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته


" النجاح سلالم لا تستطيع أن ترتقيها ويداك في جيبك " .. جورج إليوت

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

------------------
~l| نبذة عن تراكيب البيانات |l~
------------------

ماهي البيانات (Data) ؟
هي مجموعة من الحقائق التي من خلالها يمكن الحصول على استنتاج ما.

مثال: درجة الحرارة في جدة تتجاوز الـ 40 درجة مئوية.
الاستنتاج: الجو حار جداً في جدة << يا إلهي نقرتين لعرض الصورة في صفحة مستقلة

أنواع البيانات ( Types of Data ):

1- نصية Textual
مثال: اسمك الشخصي ( عبدالكريم )

2- عددية Numeric
مثال: الرقم الجامعي ( 1234567 )

3- صوتية Audio
مثال: صوتك الشخصي أو أي صوت لأي كائن آخر

وغيرها الكثيــــر !

ماهي تراكيب البيانات ( Data Structure ) ؟
هي طريقة محددة لجمع البيانات وترتيبها وتنظيمها في الحاسب الآلي بحيث أنه يمكن إستخدامها بكفاءة.

أنواع تراكيب البيانات ( Types of Data Structure ):


وهناك غير هذه الأشكال الكثير، ولكن لن أتطرق لها وسيكون لها موضوع آخر بعد الانتهاء من منهج 204 :)

----------------
~l| أهمية تراكيب البيانات |l~
----------------

الهدف من إيجاد تراكيب البيانات ؟
لأننا نحتاج إلى تنظيم البيانات.

الهدف من استخدام تراكيب البيانات ؟
حتى نحقق الكفاءة في تخزين البيانات والحصول على البيانات والتلاعب في البيانات حسب احتياجنا.

المشكلة الرئيسية التي تواجه المبرمج عند استخدام تراكيب البيانات:
كيف أعلم ماهي التركيبة المناسب إستخدامها لحل المشكلة التي تواجهني حاليا ؟

-------------------------------
~l| العمليات التي نقوم بها على تراكيب البيانات |l~
-------------------------------

1- العبور Traversing
وهو عبارة عن الوصول إلى كل عنصر داخل التركيبة ( سواء كان مصفوفة أو قائمة مرتبطة )،
وهي نفس طريقة اللوب للدخول للمصفوفات وتغيير عناصرها.


2- البحث Searching
العثور على موقع عنصر ما داخل التركيبة.

3- الإضافة Insertion
إضافة عنصر جديد إلى التركيبة.

4- الحذف Deletion
إزالة عنصر من التركيبة.

5- الترتيب Sorting
ترتيب عناصر التركيبة بطريقة منطقية ( مثال: هجائياً، تصاعدياً، تنازلياً ... وهكذا ).

6- الدمج Merging
دمج عناصر تركيبة واحدة أو أكثر مع بعضها البعض.

ويمكن تقسيم تراكيب البيانات إلى قسمين رئيسية:

* من حيث استخدامها للذاكرة
1- ذات الحجم الثابت Static
مثل: المصفوفات Arrays
2- ذات الحجم المرن Dynamic
مثل: القوائم المرتبطة Linked List

* من حيث تمثيلها شكلياً
1- تمثل تمثيلاً خطياً Linear
مثل: المصفوفات Arrays والقوائم المرتبطة Linked List
2- تمثل تمثيلاً غير خطي Non-Linear
مثل: التركيبة الشجرية Trees أو التركيبة البيانية Graphs


-----------------------
~l| المصفوفات كأحد تراكيب البيانات |l~
-----------------------

المصفوفات هي أحد أهم تراكيب البيانات وأكثرها شيوعاً واستخداماً، ففي السابق عندما كنا نريد أن نخزن درجات خمس طلاب على سبيل المثال فإننا نقوم بتعريف خمس متغيرات، ولكن عندما كنا بصدد أرقام كبيرة كدرجات طلاب الجامعات فهي بمئات الألاف وعندها ظهرت الحاجة إلى ابتكار ما يسمى بالمصفوفات، فبدلاً من أن نعرف مئة الف متغير فإننا نقوم بإنشاء مصفوفة حجمها مئة ألف لنحفظ البيانات بها ويمكن الرجوع لها بسهولة عند الحاجة لها.

خصائص المصفوفات:
1- تحمل عناصر من نفس النوع فقط
2- تحجز مكاناً في الذاكرة بمجرد إنشاءها
3- حجمها ثابت Static ولا يمكن تغييره بمجرد انشاءها
4- يمكن الوصول لعناصرها مباشرة
5- المصفوفات تعتبر كائنات Objects
6- يمكن نسخها بواسطة الميثود Object.clone()
7- تنتج الخطأ ArrayIndexOutOfBoundsException عندما يشار إلى عنصر خارج مجالها



مفاهيم بسيطة ( بالاعتماد على الشكل السابق ):
إسم المصفوفة: Data
نوعها: مصفوفة بعد واحد ( خطية ) One Dimension Array (Linear).
ترقيم الـIndex: من 0 إلى 9 ( في لغة Java و ++C يبدأ الترقيم من الصفر )
طول الـIndex: يساوي طول المصفوفة - 1، أي 9 في هذه الحالة.
طول المصفوفة: 10 ( عدد الخانات الموجودة ).
حجم المصفوفة في الذاكرة: عدد الخانات x الحجم بالبايت ( حسب النوع ) أي 10x4 لأن الانتجر الواحد حجمه 4 بايت، فحجم المصفوفة في الذاكرة هنا 40 بايت.
نوع العناصر: Integer ( ولاحظو جميع العناصر من نوع واحد ).

أمثلة:
* [1-]Data دائما خطأ لأن الترقيم يبدأ من الصفر.
* [10]Data خطأ في هذه الحالة لأن الرقم أكبر من آخر حد للـIndex
* [1.5]Data رقم الـIndex لا يمثل إلا بالأرقام الصحيحة Integers.
* [0]Data دائما صحيحة لأنها أول رقم تبدأ به المصفوفة.
* [9]Data صحيح لأنه آخر رقم ينتهي عنده الـIndex.

-----------------------------
~l| العمليات التي نقوم بها على المصفوفات |l~
-----------------------------

هنا سنتحدث عن سرعة العمليات التي نقوم بها على المصفوفات وسهولتها،
1- الوصول للعناصر Accessing Elements
الوصول للعنصر في المصفوفة يعتبر لحظي وسريع جداً فبمجرد كتابة رقم الـIndex فقد اصبح بإمكانك تعديل وتحرير العنصر.
مثال: [1]Array فهنا استطعنا الوصول للعنصر الموجود في الـIndex رقم 1 أي المكان الفعلي رقم 2 وبإمكاننا التعديل عليه ببساطة بمجرد كتابة 20 = [1]Array فتصبح القيمة الجديدة المخزنة هي 20.


2- إضافة العناصر Inserting Elements
إضافة العناصر للمصفوفة يملك إحدى حالتين إما تضيف في البداية أو المنتصف وهنا تكون العملية بطيئة جداً وتحتاج لأزاحة كافة العناصر Shifting.
أما إضافة العناصر في آخر المصفوفة فهو لحظي وسريع ولا يحتاج إلى عمل Shifting.


3- حذف العناصر Removing Elements
حذف العناصر في المصفوفة هو نفس حالة الإضافة، فإذا كان الحذف من بداية أو منتصف المصفوفة فإنه يكون بطيء ويجب عمل Shift لباقي العناصر.
أما حذف عنصر من آخر المصفوفة فهو لحظي وسريع لأنه لا يحتاج إلى عمل Shift.


4- البحث عن العناصر Searching for Elements
البحث عن العناصر يعتمد على الـAlgorithm المستخدمة، وسنتحدث عنها لاحقاً.

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

خلاصة الدرس: هذه مجرد مقدمة للمادة ومراجعة للأساسيات العامة وأهم الـConcepts.
أتمنى أن أن أكون وفقت فيما كتبت، ولقد راعيت في هذا الموضوع أن الدارس للمادة لا يدرك أياً من المفاهيم البرمجية وعليه سأبني باقي المواضيع.


وفقني الله وإياكم ،، والسلام عليكم ورحمة الله وبركاته.

تم بحمد الله



 


توقيع deathpain  



في حال وجود أي استفسار أو سؤال حول الجافا CPCS202 الرجاء كتابة استفسارك مباشرة في موضوعي هنا:

تطبيق - معدلي الجامعي - التطبيق الأسهل لحساب المعدل الجامعي
http://skaau.com/vb/showthread.php?t=745520

 

رد مع اقتباس

 

 


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

 


الساعة الآن 06:34 PM


Powered by vBulletin® Version 3.8.9 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Ads Organizer 3.0.3 by Analytics - Distance Education

أن كل ما ينشر في المنتدى لا يمثل رأي الإدارة وانما يمثل رأي أصحابها

جميع الحقوق محفوظة لشبكة سكاو

2003-2024