أنت تسأل ونحن نجيب! (ics 102)

استجابة لدعوة كريمة من الاخ الفتي الذي اتسع، هذه اولى الحلقات في سلسلة انت تسأل ونحن نجيب

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

رقم الكورس: ICS 102
عنوان الكورس:Introduction to Computer Science
اسم الكتاب:Computin Concepts with Java2 Essentials
المكان: منتدى علوم الحاسب الآلي.
المؤلــفــ:Cay Horstmann
الطبعــة:Second Edition
التاريخ:(21 رمــــــضان 1425 هـ).

ملاحظة:
1- قبل طرح سؤالك تأكد من انه غير مكرر ولم تتم الاجابة عليه مسبقا
2- كل سؤال يطرح يفضل أن يكون عنوانه (السؤال رقمX) حيث X هو رقم السؤال
3- لمن يعرف الاجابة لذلك السؤال يكتب العنوان أولا (جواب السؤال X) حيث X هو رقم السؤال المعني بالاجابة
4- تكتب جميع الأسئلة ويتم ماقشتها هنا فقط لتعم الفائدة

أرجوا للجميع التوفيق والتمكن من هذه المادة الجميلة :slight_smile:

الله يعطيك العافية يا عزيزي

يثبت :slight_smile:

و هذا الكورس يحمل الكثير من المفاهيم الأساسية اللي تحتاج توضيح

و إن شاءالله يستفيد الطلاب من هذي الجهود الميمونة :slight_smile:

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

الاخ العزيز …أبو فهد …أشكرك على التثبيت وادعوك والجميع للمشاركة في الاسئلة والأجوبة … لك خالص شكري وتقديري أبا فهد :slight_smile:

بارك الله فيك يا سفمور بوي :slight_smile:

يللا يا فريشمانز، شدوا حيلكم واسألوا :slight_smile:

السؤال رقم 1

السلام عليكم

الكوس هذا على حد علمي يدرس الجافا…

فعندي كم سؤال! أتوقع أنها في صميم المادة، وإذا كانت لا، فتجاهلها :)…

* اشرح (بإسهاب وتفصيل) مفهوم (Object-Oriented Programming)؟

* ماهي المفاهيم الأخرى للبرمجة، مع شرح وافي لكل منها؟

* أشرح بإسهاب وتفصيل مفهوم الـ (class) في الجافا؟

* إشرح (بإسهاب وتفصيل) مفهوم الـ (object) في الجافا؟

* إشرح (بإسهاب وتفصيل) مفهوم الـ (Inheritance) في الجافا؟

* إشرح (بإسهاب وتفصيل) مفهوم الـ (interface) في الجافا؟

* ما المقابل لكل من المفاهيم السابقة في لغات أخرى كالـ c أو c++؟

لك التحية

إجابة السؤال رقم 1

أخي TheCollector بالنسبة لمفهوم Object-Oriented Programming ، يوجد شرح مفصل في موقع شركة Sun آمل أن يفيدك … الرابط
كما أعتقد أن بقية الأسئلة تجد إجابات لها مع الشرح المفصل والأمثلة في موقع Sun مؤسس لغة الجافا. http://java.sun.com/j2se

ولعل الأخوة يفيدوك أيضاً

تحياتي

Resources-روابط مفيدة

الشكر الجزيل للأخ الفتى الذي اتسع :slight_smile:

أذكر انني كنت أعتمد كثيرا على كتاب الكتروني مبسط وممتاز جدا في موقع الكورس …
أدعو الجميع للاستفادة منه بالذهاب للموقع التالي ثم الضغط على أيقونة OnLine book …
http://www.ccse.kfupm.edu.sa/~ics102/

تابع السؤال رقم 1

شكرا لكم…

* ماهي المفاهيم الأخرى للبرمجة، مع شرح وافي لكل منها؟

* ما المقابل لكل من المفاهيم السابقة في لغات أخرى كالـ c أو c++؟

توضيح الهدف من الموضوع

اعتذر لعدم التوضيح منذ البداية …

بالنسبة لأسئلةأخي كوليكتور فهي ممتازة وكل هذه الاسئلة (ماعدا التي عن الـ interface والـ inheritance حيث تتعلق بـics 201 ) هي في الواقع مايناقشة هذا الكورس ولكن عندما كتبت هذا الموضوع كان هدفي هو أن يتم مناقشة الأسئلة من نوعية الاسئلة التي تطرح في الساعات المكتبية أو من خلال الويب سي تي (WebCt) .

لابأس من طرح أي سؤال ولكن كما ذكرت يفضل نوعية الاسئلة التي من نوع :
1- “شباب فيه سؤال بالصفحة الفلانية حاولت حله ولكن وقفت عند هذه النقطة… مالخطا في حلي ؟”
2- “عندي بروجكت وانتهيت من جزء ولكن فيه جزئية لم افهمها وهي …مالخطأ في طريقتي؟”
3-اسئلة عن نقاط معينة غير مفهومة في موضوع معين(يفضل أن تكتب مافهمته حتى يتم تصحيح المفهوم ان كان غير صحيح).
أي >>> “المساعدة بعد المحاولة”
وهكذا … وذلك لقلة أو صعوبة الحصول على فرصة مناقشة اسئلة المنهج بين كثير من الطلاب .

لكم الشكر :slight_smile:

مين اللي راح يضع حل هومورك او بروجكت او جزء منهم !! تبغى القريدر يعطي اللي حل و اللي غش اصفار :S و المواد افرج و الافرج C و الـ C ما تاكل فيه عيش و العيش بفلوس و الفلوس تجي من عرق الجبين و اللهم اني صايم :smiley:

لاتذكرني يادكتور مجنون بمآساة الآفرج :(…
لكن الويب سي تي نفس الطريقة عبارة عن مناقشة للأسئلة بنفس طريقة هذا الموضوع ومع كذا الأفرج كان 19.5 / 40 الميجر الأول … وعشان كذا أنا ركزت أنه مانحل سؤال كامل …يعني مايجي أحد يحط بروجكت أو سؤال ويقول يالله حلوه …شعار الموضوع “المساعدة بعد المحاولة” وفي جزئيات معينة وبطريقة توضيح للكونسيبت فقط لتلك النقطة وبالباقي على السائل …وغير كذا ماباليد حيلة …
لك خالص الشكر يادكتورنا الحبيب :slight_smile:

تابع-اجابة السؤال رقم 1

شكراً لك يا كوليكتور على أسئلتك :slight_smile:
وشكراً لك أيها الفتى على أجوبتك :slight_smile:
وشكراً لك يا سفمور بوي على توضيحك… الذي عبرت فيه عن ما أردت أن أقول بأسلوبك الجميل :slight_smile:

بالنسبة للسؤالين المتبقيين…

إجابة السؤال الأول تجدها في الملف المرفق…
لم أجد الإجابة في السلايدات الجديدة الموجودة في موقع الكورس…
أتذكر الآن عندما أخبرنا الدكتور أنه سيتم حذف هذا الجزء من المنهج…

وإجابة السؤال الثاني على حد علمي، أن المقابل لمفهوم الـInterface في الجافا هو الـMultiple Inheritance في السي بلس…
وفي الحقيقة، المفهوم الأول جاء بالحلول للمشاكل الموجودة في المفهوم الثاني…
بقية المفاهيم كما هي…
شكراً لك مرة أخرى على الأسئلة…

l02 overview of programming paradigms.zip (20.3 KB)

أشكرك الجميع على التفاعل، وكانت هذي فرصة أنه نحرك الموضوع :)…

والواحد لايكتفي بالمنهج المقرر، الا أذا كان جاي يبغا شهادة وبس…

وبرضوا حتي الي يبغا شهادة، المقرر مايخارج في البترول :)…

لكم خالص التحية

تابع-جواب السؤال رقم 1

مرحبا:)…
بوركتم يا سبيبة على هذي الجهود الجميلة…
ولي في أسئلة الريِّس وقفة ونداء(أمزح:))…
لكن بغيت أقول أن معظم أسئلتك لا تدخل في صلب مادة ال 102… بل ولا في ال201 أو ال202…
معظمها يدخل في مادة ال ICS 353… التي تتكلم بإسهاب عن لغات البرمجة والفروق بينها والتشابه أيضاً…
وعلى ذلك… سأحاول أن أجيبك على أسئلتك من معلوماتي في هذه المادة:
*** اشرح (بإسهاب وتفصيل) مفهوم (Object-Oriented Programming)؟
عندما تكون اللغة من نوع ال Object-Oriented Programming, فهذا يعني أنها تتعامل مع objects وليس variabls…
بمعنى… أنه في لغة السي مثلاً… نجد أنك لا تتعمل إلا مع متغيرات على غرار:
name= “mohammad”
ID= “95555”
gpa = 3.5
وهكذا…
بينما في Object-Oriented Programming
نجد أنها تتعامل مع معلومة واحدة… هي: Student…مثلاً…
فكون محمد هو طالب… فمن المؤكد أن لديه آي دي… ولديه جي بي آيه…
فتستطيع أن تجمع هذه المعلومات الثلاثة في قارورة واحدة… هذه القارورة تسمى : object…
فالـ object هو عبارة عن variable متعدد الأبعاد…
هذا بالنسبة للسؤال الأول…

تابع-جواب السؤال رقم 1

بالنسبة للسؤال الثاني…
فلا أدري ما هي المفاهيم المطلوب شرحها…

أما السؤال الثالث:

* أشرح بإسهاب وتفصيل مفهوم الـ (class) في الجافا؟

هو نفسه مفهوم ال structure في ال C+…
ولكن الفرق أنك لا تستطيع أن تكتب أي برنامج إلا أن يكون البرنامج داخل كلاس معين…
هذا ما أستطيع الإجابة عليه…

السؤال الرابع:

* أشرح بإسهاب وتفصيل مفهوم الـ (object) في الجافا؟

هو بكل بساطة… variable ذو أبعاد متعددة…
أي أنه قد يحمل أكثر من variable في نفس الوقت…

السؤال الخامس:

* إشرح (بإسهاب وتفصيل) مفهوم الـ (Inheritance) في الجافا؟

هو قريب من مفهوم الـ friend calss… في الـ C++
وهو عبارة عن ربط أكثر من برنامج… (أو كلاس)… مع بعضهم البعض… بحيث تشترك هذه (الكلاسات:)) بنفس الـ functions أو الـ methods… وأيضاً بنفس الـ variables… ولكن بشروط محددة… يحددهخا المبرمج باستخدام key words معينة…

هذا ما أستطيع الإجابة عليه حتى الآن…
ان شاء الله تكونوا فهمتوا علي:):slight_smile:

سلمت يمناك ولاعدمناك قبطاننا :slight_smile: …بالنسبة لأسئلة اخي" كولليكتور" فكما ذكرت (يعني أنا)بأن الكورس هذا يناقش أغلبها ولكن ليس بإسهاب وتفصيل … التفاصيل يبدو أنها كما ذكرت (يعني أنت) موجودة في كورس ثاني … على العموم نحن نأخذ مايخصنا (يعني أنا وانت… وغيرنا :D) ونجاوب بناء على ماتم التطرق إليه في الكورس هذا فقط …

متشكر قوي :slight_smile:

السؤال رقم 2

أنا عندي سؤال …

في بروجتك ICS102

البروجيكت يطلب منك عمل مكتبه … فيها قائمة كما يلي :

1 - استعرض الكتب .
2 - اضف كتاب جديد .
3 - اعمل تحرير للكتاب .
4 - احذف الكتاب .
5 - ابحث عن كتاب .

كل هذا واضح ومفهوم …

المشكله عندي لما يقول اضف كتاب … واضفت كتاب لأول مره وحطيته في Array … طبعا كل كتاب لازم يحمل التالي :
اسم الكتاب = String
اسم المؤلف = String
اسم الناشر = String
رقم الكتاب = Int
سعر الكتاب = double

لما اجي اضيف كتاب ثاني راح يحذف معلومات الكتاب الأول ويحط الثاني . واذا حبيت اخليه مايحذفها لازم Database … والداتا بيس مو موجوده عندنا في ICS 102 … كيف راح احل هالمشكله ؟؟

تحيتي لكم …

إجابة السؤال رقم 2

اممممممم

اول شي… ال Array هذا من اي نوع (type)…
هل هو String او int او… الخ…
إذا كان من احد هذه الانواع… فهو خطأ…

المفروض يكون في class اسمه Book… ويصير ال Array من نوع Book…

فأنت لما تجي تضيف الكتاب:
first you have to create a new ‘Book’ object with all its coponents(name, author, price, … etc)… then
you add this Book object to the first empty cell in the Array…

note that: after you add the book to the array you have to increment the position in the array by 1
so that if you add another Book you won’t add it in the same position of the first book

مثلاً:
تجي تسأل المستخدم:
أنت: write the name of the book:
المستخدم: Lisan Al-Arab
أنت: write the name of the aouther :
المستخدم: Ibn Manthoor…



وهكذا… حتى ينتهي من وضع كل المعلومات عن الكتاب…
طبعاً كلما يدخل المستخدم معلومة… يقوم الكمبيوتر بحفظها في مكانها المناسب…
فمثلاً إسم الكتاب يحفظه في جزء “BookName”… اللي هو أحد أجزاء ال Book object…
وكذلك بالنسبة للمعلومات الأخرى…

بالأخيييييييير…
بعد ما تحفظ المعلومات كلها…
تقوم بحفظ هذا الكتاب بكل معلوماته في خلية (((واحدة )))من ال Array…
وبعدين تعمل نفس الشيء مع الكتاب الثاني… لكن لا تنسى تحفظه في خلية فاضية وليس خلية فيها كتاب آخر…

أدري أني ما فدتك في شي…
لكن حبيت إني أتذكر الجافا شوي:):):)…

تحياتي…

عذراً للكتابة بالعنجلينزي:)…

وأي سؤال حاضرين!

تصحيييييح

كاتب الرسالة الأصلية المبحر
لكن بغيت أقول أن معظم أسئلتك لا تدخل في صلب مادة ال 102… بل ولا في ال201 أو ال202…
معظمها يدخل في مادة ال ICS 353… التي تتكلم بإسهاب عن لغات البرمجة والفروق بينها والتشابه أيضاً…

أدري أني متأخر جداً جداً…
لكن توني أنتبه للخطأ…
المادة هي ICS313… وليس 353…

لحظة لحظة…
يا صروح…
سؤال:
هل المطلوب بعد إضافة الكتاب… أن يبقى إسمه مسجلاً حتى بعد إغلاق البرنامج؟؟؟؟
إن كان كذلك…
فالحل هو حفظ المعلومات في ملف…