الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار بخصوص التشابه بين لغات البرمجة

بدأه put down في 3 يوليو 2010 · 3 رد · 930 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لمل لأني مقبل على الدراسة الجامعية تخصص اعلام آلي بحول الله

احببت أن احضر شيئا من البرمجة خلال أشهر الصيف

لم أجدد الكتب المفيدة الكافية لكني وجدت كتاب الكتروني اقصد اعجبني لكنه عن الفيجوال بيسك يشرح بريمجات بسيطة للمبتدئين للتعود على البرمجة

فتبادر لذهني السؤال الآتي

ما مدى التشابه بين لغات البرمجة و الخوارزميات و ما مدى التشابه بين لغات البرمجة فيما بينها

و هل حين أتعلم البرمجة بالفيجوال بيسك مثلا يبسهل عليا التأقلم مع باقي اللغات

هل في الجامعة ستدرس لغة وحيدة تعتمد عليها أو تمس كل اللغات

يرجى الإجابة بنوع من التفصيل جزاكم الله خيرا.. :)

نصيحة أكيدة عن تجربة ... حب التخصص الذي تنتج عنه ممارسة مستمرة + إرادة و همة عالية ... ستصل لأبعد الحدود في كل تخصص متعلق بالإعلام آلي

#2
اقتباس

ما مدى التشابه بين لغات البرمجة و الخوارزميات

الخوارزميه هي الطريقه التي تحل بها المشكله

على سبيل المثال المشكلة الآتية :

احسب القيمة الأكبر بين عديين A , B و اطبع الناتج

الحل

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

إذا كان A أكبر من B نطبع A

إذا كان B أكبر من A نطبع B

خلاف ذلك نطبع رسالة تنبيه بأن المتغيرين متساويين

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

و هذه هي الخوارزمية المتبعه لحل المشكله . إذن الخوارزمية هي طريقة الحل

طبعا في تلك الحالة إذا كان A = 5 و B = 7 فإن حسب الخوارزمية التي صممناها سوف نطبع الرقم B

إذا كان A = 5 و B = 3 فإن حسب الخوارزمية التي صممناها سوف نطبع الرقم A

لنفترض ان هذا الخوارزمية السابقة اسمها Algorithm 1

ممكن مبرمج آخر يفكر في طريقة أخرى (يعني خوارزمية أخرى) للحل

مثلا :

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

إذا كان A - B > 0 نطبع A

إذا كان A - B < 0 نطبع B

خلاف ذلك نطبع رسالة تنبيه بأن المتغيرين متساويين

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

أيضا في تلك الحالة إذا كان A = 5 و B = 7 فإن حسب الخوارزمية التي صممناها سوف نطبع الرقم B

و إذا كان A = 5 و B = 3 فإن حسب الخوارزمية التي صممناها سوف نطبع الرقم A

يعني النتائج هي نفسها لكن الخورازمية هي التي اختلفت

لنفرض ان الخوارزميه الثانيه هي Algorithm 2

لاحظ اننا نتكلم عن حل المشكلة بتفكير مجرد . بدون أي تفاصيل مثل الجهاز الذي يتم عليه تنفيذ العملية أو نوع نظام التشغيل هل هو ويندوز أو لينكس مثلا و كم عدد الرامات و ماهو نوع الشاشه المستخدمه ..... إلخ

لم نهتم بأي شيء من ذلك . فقط ركزنا على طريقة حل المشكله بدون ان نعرف كيف سننفذها أو على أي جهاز سننفذها ..... إلخ

طيب ماذا لو طلب منك أحد ( برنامج ) يدخل له المستخدم رقمين و يطبع البرنامج القيمة الأكبر ؟

ساعتها ستحدد أولا ما هي الأداه التي ستصنع بها هذا البرنامج

إذا اخترت الفيجوال بيسيك فسوف تصمم برنامج من على الفيجوال بيسيك

و سوف تقوم بتحويل الخوارزميه التي تختارها إلى لغة البرمجه . عملية التحويل أو التنفيذ هذه تعرف بال Implementation

انا صممت برنامجين بالفيجوال بيسيك واحد لتنفيذ الحل من خلال Algorithm 1 و الآخر من خلال من خلال Algorithm 2

أرفقتهم مع ردي هذا و اذا كان عندك فيجوال بيسيك على جهازك تشوفهم

طيب مثلا لو هاصمم برنامج فيجوال بيسيك لحل المشكله عن طريق Algorithm 1

هيكون الكود مثلا بالشكل الآتي

If A > B Then
MsgBox A
ElseIf A < B then
MsgBox B
Else
msgbox "الرقمين متساويين"
End If

لا حظ هنا ان في الخوارزمية كنا بنقول (إذا كان) و في البرنامج قلنا If Then

لماذا ؟

لأن هذه هي قواعد لغة البرمجه المستخدمه . يجب أن يتم كتابتها بهذه الطريقة في الفيجوال بيسيك لكي يتم تنفيذها

طيب , مثلا لو أردنا أن ننفذ نفس الخوارزمية من داخل برنامج نفذناه بلغة برمجة برمجة سي++

سيكون الحل

if(A > B)
{cout << A ;}
elseif(A < B)
{cout << B;}
else
{cout << "الرقمين متساويين" ; }

لا حظ انه في الكود هنا لا يوجد (إذا كان ) لكن الكود مختلف عن كود فيجوال بيسيك السابق لأن الكود هنا هو كود لغة برمجه أخرى لها قواعد أخرى و هكذا

إذا هنا لاحظنا تنفيذ خوارزمية واحدة بأكثر من لغة برمجه

مثلا عند تنفيذ Algorithm 2 بلغة فيجوال بيسيك :

If (A - B) > 0 Then
MsgBox A
ElseIf (A - B) < 0 then
MsgBox B
Else
msgbox "الرقمين متساويين"
End If

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

اقتباس

ما مدى التشابه بين لغات البرمجة فيما بينها

يوجد تشابه شكلي بين الكثير من لغات البرمجه

مثلا سي و سي++ و سي شارب و جافا و بي اتش بي متشابهين شكلا إلى حد كبير

لكن من حيث الآداء و الإمكانيات كل لغة برمجة تكون لها نقاط قوة و نقاط ضعف و الاختيار يكون بناء على عدة عوامل

طبعا لو في شخص متعصب لأحد اللغات لن يقتنع بكلامي لكن ده رأيي بناء على الخبره البسيطة التي لدي

اقتباس

و هل حين أتعلم البرمجة بالفيجوال بيسك مثلا يبسهل عليا التأقلم مع باقي اللغات

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

اقتباس

هل في الجامعة ستدرس لغة وحيدة تعتمد عليها أو تمس كل اللغات

كل اللغات مستحيل . لكن في الغالب ستدرس بعض اللغات . و في الغالب ستكون دراسة للمباديء العامة . ممكن يكون هناك بعض المشاريع التي ستكتسب منها خبره جيده نوعا ما . لكن سيكون عليك ان تمارس كثيرا لو هدفك أن تصل لدرجة الإحتراف .

اقتباس

يرجى الإجابة بنوع من التفصيل

أتمنى ألا يكون تفصيلي مملا :)

اسأل الله العلي القدير ان يوفقك إلى ما يحبه و يرضاه

و في انتظار باقي تساؤلاتك

Algorithms.rar

تم تعديل هذه المشاركة بواسطة بن حسن في 11 يوليو 2010 في 14:18

1

أسألكم الدعاء لأبي و أمي

#3

شكرا بارك الله فيك أخي العزيز بن حسن اجابة مقنعة كافيا ... جزاك الله خيرا .. و زادك اله علما .. :)

نصيحة أكيدة عن تجربة ... حب التخصص الذي تنتج عنه ممارسة مستمرة + إرادة و همة عالية ... ستصل لأبعد الحدود في كل تخصص متعلق بالإعلام آلي

#4
put down كتب:

شكرا بارك الله فيك أخي العزيز بن حسن اجابة مقنعة كافيا ... جزاك الله خيرا .. و زادك اله علما .. :)

و إياكم

أسألكم الدعاء لأبي و أمي

مواضيع مشابهة