BPG401 CH1
BPG401 CH1
البرمجة ( ) 1
الفصل األول :البرنامج الحاسوبي
-0-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
-1-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
-2-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
الكممات المفتاحية:
ترميزُ ،مترجػ ،لغة برمجة ،خؽارزمية ،لغة اآللة ،لغة برمجة إجرائية ،لغة برمجة غرضية التؽجه ،ترػسيػ
مؼ القسة إلى القاعدة ،لغة الخؽارزميات.
ممخص:
يدتعرض هذا القدػ مفهؽـ البرنامج الحاسؽبي مؼ خالؿ عرضه لسراحل تطؽر العتػا الحاسػؽبي الرػم ،
الترميػػز ،ولغػػات البرمجػػة السدػػتخدمة لتطػػؽير األنعسػػة البرمجيػػة ،ا ضػػا ة إلػػى وأنعسػػة تذػػغيمه ،وأسػػالي
م ارحػل تطػؽر مشهجيػػات وأ وات ترػسيػ وبشػػا هػذ األنعسػػة مػؼ خػػالؿ التركيػز عمػى "لغػػة الخؽارزميػات"
Code Pseudo-ك ػػة اة مد ػػاعدة عم ػػى تر ػػسيػ البػ ػرامج الر ػػغيرة الحج ػػػ ،أو التعبي ػػر عشه ػػا عم ػػى نح ػػؽ
مدػػتقل عػػؼ لغػػة البرمجػػة .كسػػا يدػػتعرض أنسػػا لغػػات البرمجػػة وأنؽاعهػػا كمغػػات البرمجػػة ا جرائيػػة ولغػػات
البرمجة الغرضية التؽجه.
أهداف تعميمية:
ي هذا الفرل عمى: يتعرؼ الطال
نعاـ التذغيل ،البرنامج الحاسؽبي
السترجػ
أنسا الترميز
أنسا لغات البرمجة
مفهؽـ الخؽارزمية وأمثمة عشها
مشهجية تطؽير البرمجيات
لغة الخؽارزميات
السخططات التد قية
-3-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
المخطط:
.1الحاسؽب – اآللة
"الشخبة" إلى معمؽماتية الجسيع
.2تطؽر العتا الحاسؽبي والديسقراطية السعر ية مؼ معمؽماتية ُ
.3نعػ التذغيل
.4الحاسؽب ونعاـ التذغيل
.5الترشيفات الرئيدة ألنؽاع نعػ التذغيل وتطؽرها
.6ترميز السعمؽمات
.7البرامج الحاسؽبية
.8لغات البرمجة
.9المغات البرمجية عالية السدتؽى :لسحة تاريخية
.11المغات البرمجية عالية السدتؽى :المغات ا جرائية ()1
.11المغات البرمجية عالية السدتؽى :المغات ا جرائية ()2
.12المغات البرمجية عالية السدتؽى :المغات الؽظيفية
.13المغات البرمجية عالية السدتؽى :المغات السشطقية
.14المغات البرمجية عالية السدتؽى :المغات الغرضية التؽجه
.15السترجسات
.16أسئمة
.17التطؽير السشهجي لمبرمجيات
.18استراتيجيات وضع الحمؽؿ البرمجية
.19السخططات التد قية
.21الخؽارزميات
.21لغة الخؽارزميات )(pseudo code
.22التعميسات األساسية لمغة الخؽارزميات )(pseudo code
.23تعميسة الق ار ة read
.24تعميسة الكتا ة write
.25تعميسة ا سشا
.26التعميسة الذرطية
.27التعميسة التك اررية while
.28مشهجية كتا ة نعاـ برمجي
-4-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
-5-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.1الحاسهب -اآللة
يبػػدأ تػػاريع السعمؽماتيػػة وعمػػؽـ الحاسػػؽب مػػع اخت ػراع أ وات األتستػػة والحدػػاب التػػي ارتػػب تطؽرهػػا بثال ػػة
كرية أساسية جرى التعبير عشها بثال ة أنسا مؼ اآلالت: خطؽ
اآللة الحاسبة
األوتؽمات
اآللة القابمة لمبرمجة
يبػػدأ تػػاريع السعمؽماتيػػة وعمػػؽـ الحاسػػؽب مػػع اخت ػراع أ وات األتستػػة والحدػػاب التػػي ارتػػب تطؽرهػػا بثال ػػة
كريػػة أساسػػية مثمػػظ مػػا يشتعػػر ا ندػػاف مػػؼ اآللػػة التػػي يخترعهػػا ويطؽرهػػا ،وجػػرى التعبيػػر عشهػػا خطػػؽ
بثال ة أنسا مؼ اآلالت :اآللة الحاسبة ،األوتؽمات ،اآللة القابمة لمبرمجة.
-6-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
اآللة الحاسبة:
اخترع Pascalي القرف الدا ع عذر آلة حداب عاها La Pascalineلتشفيذ عسميتي الجسع والطرح،
الرػػيشي القػػديػ والػػذم يرجػػع تاريخػػه إلػػى مئػػات األعػؽاـ قبػػل السػػيال . وقػػد اعتسػػد ػػي بشائهػػا عمػػى السحدػ
ومع نهاية القرف الدا ع عذر َّ
حدؼ Leibnizآلة اسكاؿ إضا ة عسميتي الزرب والقدسة عميها.
ال اسكاليؼ
آلة ليبشيتز
-7-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
األوتهمات:
بدأ تطؽير اآلالت السيكانيكية التي كانظ تُدتخدـ ي العسميات العدكرية و ػي الدػاعات الفمكيػة مشػذ القػرف
الثاني عذر السيال م واستسرت هذ اآلالت السيكانيكية التطؽر حتػى القػرف الثػامؼ عذػر .وتعهػر نسػا ج
Leonardoلمكثيػػر مػػؼ اآلالت De عسمهػػا ػػي الترػػاميػ التػػي تركهػػا Vinci هػػذ اآلالت وأسػػالي
العدكرية والسدنية.
ترسيػ ا شذي
-8-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
-9-
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.2تطووهر العتوواد الحاسووهبي والديمقراطيووة المعرفيووة موون معمهماتيووة "الُنخبووة" إلووى معمهماتيووة
الجميع
مػ ّػر تطػػؽر الحاسػػؽب عػػدة م ارحػػل يجػػرم عػػا ًة ترػػشيفها تحػػظ إسػػػ أجيػػاؿ الحاسػػؽب ،وتُ َ
قدػػػ هػػذ األجيػػاؿ
إلى:
- 10 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
الػػدوؿ الس اركػػز العدػػكرية الكبػػرى ػػي ع ػ ػػي لػػغ الؽقػػظ كػػاف اسػػتخداـ الحاسػػؽب محرػػؽ اًر ػػي ع ػ
الععسى.
- 11 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 12 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مشذ لغ الؽقظ ،صار الحاسؽب ي متشاوؿ عد أكبر مؼ الدوؿ والبمداف وصار ا مكاف اقتشػاؤ مػؼ قبػل
الجامعات والسؤسدات الحكؽمية والخاصة الكبيرة الستخدامه ي األعساؿ العمسية.
- 13 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
DOSأو Microsoft Disk Operating Systemػي البدايػة نعػاـ تذػغيل دػي ،مرػسساً لتذػغيل
برن ػ ػػامج واح ػ ػػد ،ػ ػػي آف واح ػ ػػد ،ولسد ػ ػػتخدـ وحي ػ ػػد .ػ ػػي ع ػ ػػاـ ،1984س ػ ػػؽقظ ش ػ ػػركة Appleحاس ػ ػػؽب
Apple Macintoshواجهػات بيانيػة رسػؽمية Macintoshعمػى نطػاؽ واسػع .وقػد اسػتخدمظ حؽاسػي
تعسل السؤشر ،بدالً مؼ لؽحة السفاتيذ ،كسا كاف األمػر عميػه ػي نعػاـ .DOSػي نفػس الؽقػظ أصػدرت
Microsoftالشدخة األولى مؼ نعاـ )windows 3( Windowsوطؽرته عبر عقديؼ لتحؽله مؼ نعػاـ
خاص حاسؽب شخري إلى نعاـ تذغيل يسكؼ استخدامه ضسؼ شبكات حاسؽبية ي السؤسدات.
و ػػي عػػاـ 1991طػػؽر Linus Torvaldنعػػاـ التذػػغيل LINUXالسجػػاني و الػػشب البرمجػػي السفتػػؽح
الذخرية والسذا ه لشعاـ UNIXمؼ حيث السكؽنات ،بهػدؼ محاربػة احتكػار الذم يعسل عمى الحؽاسي
الذخرية. Microsoftألنعسة الحؽاسي
ي عررنا هذا ،أصبذ الحاسؽب أ اة متؽ رة لمجسيع ولػ يعد مقتر اًر عمى مجسؽعة األخرائييؼ ق !!!
- 14 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.3نعم التذغيل
تعريف:
يدير/يذغل عتا الحاسؽب حيث يؽ ر البرمجيات والتطبيقات الزرورية ِّ عرؼ نعاـ التذغيل ةنه برنامج ُي َّ
لتذػػغيل هػػذ العتا يػػات ،كسػػا يعسػػل كؽسػػي بػػيؼ السدػػتخدـ والحاسػػؽب حيػػث يدػػسذ لمسدػػتخدـ اسػػتثسار
مؽار الحاسؽب (الذاكرة ووحدة السعالجة ذكل رئيدي) وتطبيقاته.
- 15 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
التطبيقات
نعام التذغيل
العتا
يتػؽلى نعػاـ التذػغيل مهسػة ا شػراؼ والسراقبػة وتػػؽ ير البيئػة السالئسػة لمتطبيقػات والسدػتخدميؼ لكػي ُيشفػػذوا
أعسالهػ ويدتثسروا مؽار الحاسؽب وتطبيقاته .إ تذكل العتا يات ي الشعاـ الحاسؽبي السؽار التي يجرم
االعتس ػػا عميهػػػا عشػػػد اس ػػتثسار الحاسػػػؽب ،وهػ ػػي تذ ػػسل وحػػػدة السعالجػ ػػة السركزي ػػة ،وال ػػذاكرة ،وتجهي ػ ػزات
- 16 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 17 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
تُ ِّ
عبػػر نعػػػ السهسػػة الؽحيػػدة عػػؼ نعػػػ التذػػغيل البدػػيطة التػػي كػػاف الحاسػػؽب يهػػا يقػػؽـ بتشفيػػذ تطبيػػق واحػػد
قػ ،وتُسِثّػػل هػػذ الػػشعػ الذػػكل األوؿ لػػشعػ التذػػغيل عشػػد بدايػػة ظهؽرهػػا ،حيػػث كانػػظ الحاسػػبات ػػي لػػغ
الؽقظ ات حجػؽـ ضػخسة جػداً وكانػظ تُػدار مػؼ خػالؿ واجهػات تعميسػات خاصػة ،أمػا أ وات الػدخل/خرج
قد كانظ تتسثل قارئات البطاقات السثقبة وسؽاقات األشرطة السسغشطة ،كسا كانػظ وسػائ التخػزيؼ تتسثػل
عسؽماً البطاقات السثقبة واألشرطة السسغشطة.
وتُ ِّ
عبر نعػ السهسػات الستعػد ة عػؼ نعػػ التذػغيل التػي تدػتثسر السػؽار عمػى نحػؽ يزيػد مػؼ معػدؿ اسػتخداـ
وحدة السعالجة السركزية وبحيث يتػ تشفيذ إجرائية ي كػل لحعػةي يجػرم تخػزيؼ البػرامج ػي قػرص تخػزيؼ،
كسا يجرم انتقا مجسؽعة مؼ تمغ البرامج ونقمهػا إلػى الػذاكرة الرئيدػية لكػي يجػرم تشفيػذها معػاً ،وال يجػرم
نقل كا ة البرامج السخزنة ألنه غالباً ما تكؽف السعطيات السخزنة عمى القرص أكبػر مػؼ سػعة التخػزيؼ ػي
الذاكرة الرئيديةي تدسى عسمية انتقا البرامج التي يشبغي اختيارها أوالً جدولة األعساؿ.
ومع االنخفاض الكبير ي تكمفة السعالجات أصبذ ا مكاف امػتالؾ السدػتخدـ لشعامػه الحاسػؽبي الخػاص
الذخريةي وتزامؼ ظهؽر هذا الشؽع مؼ الشعػ مع ه .أُطمق عمى هذا الشؽع مؼ الشعػ اسػ نعػ الحؽاسي
تطػػؽر التجهي ػزات الحاسػػؽبية تطػػؽ اًر كبي ػ اًر عمػػى صػػعيد الذػػكل واأل ا ،عمػػى سػػبيل السثػػاؿ تغيػػرت مععػػػ
الػػدخل التػػي كانػػظ سػػائدة لتتحػػؽؿ إلػػى ط ارئػػق اسػػتخداـ لمؽحػػة السفػػاتيذ والفػػةرة ،كسػػا تغيػػرت مععػػػ أسػػالي
الخرج لتربذ مؼ خالؿ شاشات عرض أو طا عات صغيرة الحجػ عالية األ ا . أسالي
عمى مفهؽـ تؽزيع الحدا ات بػيؼ عػدة معالجػات ،يختمػت يعتسد االتجا الحالي ي ترسيػ نعػ الحؽاسي
هشا السفهؽـ السطروح عؼ مفهؽـ الشعػ التفرعية مؼ مبدأ أف السعالجات ال تذػترؾ الػذاكرة أو السيقاتيػة إ
بػػيؼ السعالجػػات مػػؼ خػػالؿ أسػػمؽب يستمػػغ كػػل معػػالج مشهػػا اكرتػػه السحميػػة الخاصػػة ،كسػػا يػػتػ التخاط ػ
- 18 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
اتراؿ مشاس كذبكة محمية أو خطؽ هاتت أو أية وسيمة أخرىُ .يطمق عمػى هػذا الشػؽع مػؼ الػشعػ اسػػ
الشعػ السؽزعة .يسكؼ أف تختمت السعالجات السكؽنة لمشعػاـ السػؽزع حجسػاً أو أ ا ً ،ػيسكؼ أف تكػؽف عبػارة
رػػات ،كسػػا يسكػػؼ ا شػػارة إليهػػا ةسػػسا
عػػؼ معالجػػات أو محطػػات عسػػل أو حؽاسػ شخرػػية أو حتػػى مش ّ
مختمفة كسؽاقع وب أو كعقػد شػبكية ،حيػث تختمػت التدػسية حدػ الدػياؽ الػذم يػتػ يػه ا شػارة إلػى تمػغ
السعالجات.
.6ترميز المعمهمات
تعريف:
خزنة ي الحاسؽب عمى شكل سمدمة مػؼ 0و( 1المغػة الثشائيػة) ،وبسػا أف ا ندػاف ال تكؽف السعمؽمات الس َّ
ُ
يػػتكمػ المغ ػػة الثشائي ػػة ،نحت ػػاج لترجسػػة تعميس ػػات السد ػػتثسر السكتؽب ػػة بمغ ػػة برمجيػػة خاص ػػة ،إل ػػى ه ػػذ المغ ػػة
الثشائية .لذا ُن ِّ
عرؼ الترميػز عمػى أنػه تػا ع تقابػل بػيؼ معمؽمػة ،وبػيؼ سمدػمة مػؼ 0و 1تسثػل هػذ السعمؽمػة
وتكؽف قابمة لمتخزيؼ ضسؼ اآللة.
- 19 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 20 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 21 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
تمارين:
القيػ العذرة السؽا قة لمقيػ الثشائية التالية: احد
)10000000 ( 128
)10000010 ( 130
)10000011 ( 131
)11111111 ( 255
)11111110 ( 254
- 22 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.7البرامج الحاسهبية
حدابية ومشطقية ،و لغ استخداـ إحدى لغات تجرم كتا ة البرامج الحاسؽبية عمى شكل تعميسات وتراكي
إلػى سالسػل مػؼ الرمػؽز الرقسيػة الثشائيػة 0,1 البرمجة ،مثل .C#وتجرم ترجسة هذ التعميسػات والتراكيػ
التي تعبر عؼ ترميز يفهسه الحاسؽب وتدعى لغة اآللة.
تتزػسؼ عسميػة البرمجػػة كتا ػة مجسؽعػة مػػؼ التعميسػات عمػػى نحوه متدمدوول ،حيػث يجػػرم الحرػؽؿ عمػػى
الشتيجػػة السطمؽبػػة عشػػد تشفيػػذ التعميمووات المتدمدوومة ػػي الحاسػػؽب .ويجػػرم تخ ػزيؼ الب ػرامج عمػػى القػػرص
وتحسيمها ي الذاكرة الرئيدية عشد بد تشفيذ البرنامج و لغ لمبد عسمية التشفيذ. الرم
تكػػؽف وحػػدة السعالجػػة السركزيػػة مدػػؤولة عػػؼ معالجػػة التعميسػػات المغػػة الثشائيػػة 0,1الشاتجػػة عػػؼ عسميػػة
ترجسة البرنامج ،هذ التعميسات هي ما ندسيه لغة اآللة .يجرم التشفيذ مؼ خالؿ:
نقػػل السعطيػػات ضػػسؼ وحػػدة السعالجػػة :أم مػػؼ وحػػدة السعالجػػة إلػػى الػػذاكرة ،أو مػػؼ الػػذاكرة إلػػى
وحدة السعالجة ،أو مؼ وحدة السعالجة إلى الطر يات
تشفيذ العسميات الحدابية
تشفيذ العسميات السشطقية
- 23 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 24 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.8لغات البرمجة
هشػػاؾ نؽعػػاف مػػؼ المغػػات البرمجيػػة السدػػتخدمة ػػي الحؽاس ػ :المغػػات مشخفزػػة السدػػتؽى والمغػػات عاليػػة
السدتؽى.
(نس وحدة السعالجػة ،نسػ الشؽاقػل وسػعتها... ، ترتب المغات البرمجية مشخفزة السدتؽى العتا الرم
ػتخدـ رمػػؽ اًز تسثػػل عسميػػات الحاسػػؽب ،ويتؽج ػ ترجسػػة كا ػػة الرمػػؽز جسػػع وتَدػ ِ
ِ
الس ّ
الػػع) وتػػدعى عػػا ًة بمغػػة ُ
جسػػع إلػػى لغػػة اآللػػة السسثمػػة بترميػػز خػػاص وسالسػػل شائيػػة (مؤلفػػة مػػؼ 0و .)1تجػػرم ِ
الس ّالسكتؽبػػة بمغػػة ُ
الس َج ِسعات.
عسمية الترجسة استخداـ برامج خاصة تُدعى ُ
أم ػػا المغ ػػات البرمجي ػػة عالي ػػة السد ػػتؽى تك ػػؽف مد ػػتقمة ع ػػؼ العت ػػا الر ػػم ،حي ػػث تج ػػرم كتا ػػة البػ ػرامج
بتعميس ػػات وعب ػػارات مذ ػػابهة لمغ ػػة ا نكميزي ػػة .وله ػػذ المغ ػػات ع ػػدة أص ػػشاؼ :المغ ػػات ا جرائي ػػة ،والمغ ػػات
ترجسػة كا ػة الشرػؽص السكتؽبػة بمغػة برمجػة عاليػة السدػتؽى الؽظيفية ،والمغات غرضية التؽجػه .ويتؽجػ
إلػػى لغػػة اآللػػة السسثمػػة دالسػػل شائيػػة (مؤلفػػة مػػؼ 0و .)1تجػػرم عسميػػة الترجسػػة اسػػتخداـ بػرامج خاصػػة
السترجسات.
تُدعى ُ
- 25 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 26 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
و ي عاـ 2001أصدرت Microsoftلغة البرمجة C#لتكؽف المغة األساسية لها ي بشا التطبيقات ػي
القرف الحا م والعذريؼ .وستكؽف هذ المغة هي أ اتشا ي تطبيق مبا ى البرمجة.
- 27 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
write(*,*) K
end
يعؽ أصل لغات البرمجة ا جرائية جسيعها إلى لغة FORTRANوالتي جرى تدؽيقها كمغة برمجة ألوؿ
مرة عاـ .1958وقد تخررظ المغة ي الحداب العمسي.
تعتسد لغات البرمجة ا جرائية عمى تقديػ العسل الذم يشفذ البرنامج إلى مجسؽعػة مػؼ األعساؿ/التعميسػات
التي ندعؽها إجرائيات .أمػا التعميسػات عمػى األساسػية هػي عسميػة ا سػشا التػي الست ار طة ببعزها البع
تعبر عؼ نقل قيسة إلى الذاكرة ،وتعميسات التحكػ سدار البرنامج (التعميسة الذرطية ،ifوالحمقة whileأو
.)goto
إ يسكؼ عمى سبيل السثاؿ تقدػيػ برنػامج يعبػر عػؼ آلػة حاسػبة دػيطة ،إلػى مجسؽعػة إجرائيػات تسثػل كػل
مشهػػا عسميػػة حدػػابية محػػد ة (جسػػع ،طػػرح ،ضػػرب ،قدػػسة) .وخػػالؿ تشفيػػذ العسميػػة الحدػػابية ،يجػػرم إسػػشا
عبر عػؼ أمػاكؼ ػي الػذاكرة يجػرم تخػزيؼ القيػ السطمؽب تشفيذ العسمية عميها إلى رمؽز ندعؽها متحؽالت وتُ ِّ
عبر عؼ حجػ الذاكرة السحجؽزة لهذ القيػ (نس عد صحيذ ،أو نسػ القيػ يها وتكؽف لها أنسا محد ة تُ ِّ
عػػد حقيقػػي ،أو سمدػػمة محػػارؼ ... ،الػػع) ،ولتكػرار تشفيػػذ مجسؽعػػة مػػؼ التعميسػػات يسكػػؼ اسػػتخداـ الحمقػػة
معتسديؼ عمى تعميسة ifو gotoكسا ػي السثػاؿ الدػابق .يقػؽـ السثػاؿ حدػاب مجسػؽع عذػرة أعػدا يػدخمها
السدتخدـ.
- 28 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
التعميمات:
لمغػ ػػات البرمجيػ ػػة معجػ ػػػ محػ ػػد مػ ػػؼ الكمسػ ػػات والتعميسػ ػػات الخاصػ ػػة ،كمسػ ػػات مثػ ػػل MainأوProgram
وتعميسات مثل ….if, while, for
أنماط المعطيات:
تعبر أنسا السعطيات عؼ أنؽاع السعطيات التي نتعامل معهػا (عد يػة ،حر يػة ،مشطقيػة )...ويػرتب الػشس
حجػػػ محػػد مػػؼ خانػػات الػػذاكرة ،شس /أنسػػا األعػػدا الرػػحيحة Integerعمػػى سػػبيل السثػػاؿ ،تةحػػذ 16
بػػظ أو 32بػػظ .أم هػػذ هػػي مدػػاحة الػػذاكرة السخررػػة لتخػزيؼ عػػد صػػحيذ .نػػدعؽ األنسػػا األساسػػية
(أع ػ ػ ػػدا ص ػ ػ ػػحيحة ،أع ػ ػ ػػدا حقيقي ػ ػ ػػة ،مح ػ ػ ػػارؼ ،ق ػ ػ ػػيػ مشطقي ػ ػ ػػة) األنس ػ ػ ػػا البد ػ ػ ػػيطة ،ػ ػ ػػي ح ػ ػ ػػيؼ ن ػ ػ ػػدعؽ
السركبة.
السرفؽ ات/الجداوؿ وسالسل السحارؼ األنسا ُ
العمميات:
تؽجػػد ،ا ضػػا ة إلػػى التعميسػػات ،رمػػؽز أخػػرى تػػدعى العسميػػات يػػتػ اسػػتخدامها ل شػػارة إمػػا إلػػى عسميػػة
حدابية ،+,-*,/أو إلى عالقة مشطقية .and, or, not
- 29 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
الدخل والخرج:
يتػ تشفيذ عسمية الدخل استخداـ تعميسػات محػد ة مثػل ،READ, INPUTكسػا يجػرم تشفيػذ عسميػة الخػرج
استخداـ تعميسات محد ة مثل WRITEأو .PRINT
السبػرمج بتعريػ
خدـ ػي إ خػاؿ السعطيػات هػؽ لؽحػة السفػاتيذ ،إال إ ا قػاـ ُ يكؽف الؽسي اال تراضي ُ
السدتَ َ
خدـ ي إخراج السعطيات ،غالباً ما يكؽف شاشة الحاسؽب ما لػ السدتَ َ
وسي آخر .أما الؽسي اال تراضي ُ
يقػ السبرمج بتعري وسي آخر.
اإلجرائيات والمكتبات:
تتكؽف ا جرائية مؼ سمدػمة مػؼ التعميسػات التػي تُع ّػد جػز اً مػؼ البرنػامج ،لكشهػا تكػؽف مدػتقمة عػؼ الدمدػمة
الرئيدػػية لتعميسػػات البرنػػامج التػػي يجػػرم تشفيػػذها .ال تذػػكل ا جرائيػػة حػػد اتهػػا برنامج ػاً مدػػتقالً ،ويجػػرم
استدعاؤها بؽساطة البرنامج الرئيدي حيؼ الحاجة لها ق .تستمغ كل لغة برمجة مجسؽعة مؼ ا جرائيات
عر ة ُمدبقاً ضسؼ لؽائذ جاهزة ندعؽها مكتبات برمجية.
الس َّ
ُ
- 30 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 31 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.15المترجمات
يدعى البرنامج الذم يقؽـ السبرمج كتابته إحػدى المغػات البرمجيػة ،إسػػ البرنوامج المرودر أو البرنػامج
األصػػمي .ولكػػي يػػتسكؼ الحاسػػؽب مػػؼ تشفيػػذ البرنػػامج ،يشبغػػي عمػػى السبػػرمج أف يقػػؽـ بترجسػػة البرنػػامج إلػػى
لغة اآللة وبشا برنامج تنفيذ مكا ئ لمبرنامج السردرم.
- 32 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.16أسئمة
أوالً -حد المغات ا جرائية مؼ بيؼ المغات التالية:
C++ )a
Pascal )b
COBOL )c
Java )d
C# )e
ِ
فدػر )،(Interpreter
لسعشػى كمسػة ُم ّ السترجػ ،وحاوؿ استخداـ ا نترنظ البحث عؼ تعري
عرؼ ُ
ار عاًّ -
السفدرات. السفدر وأع مثاالً عؼ ع ؽ
ُ السترجػ و ُ
وحد الفر بيؼ ُ
- 33 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
خامداً -حد التدمدل الزمشي التاريخي لعهؽر المغات التالية مؼ األقدـ إلى األحدث:
PASCAL
FORTRAN
C
JAVA
COBOL
C#
األجهبة
الجهاب الدؤال
BوC أوالا
AوD ثانيا
B ثالثا
- 34 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 35 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
إمكانيػػة تقدػػيػ البرنػػامج إلػػى إجرائيػػات وواحػػدات ،و مكانيػػة تؽزيػػع العسػػل عمػػى أعزػػا ريػػق
البرمجة
.4كتا ة تعميسات و جرائيات الشعاـ.
.5اختبار جسيع مكؽنات وواجهات الشعاـ ،قبل وضعه ي حيز التشفيذ الكامل بهدؼ التحقق مؼ
نجاحه وعسمه الذكل السطمؽب.
الشعاـ ،يتزسؼ السمفات التشفيذية وممحقاتها. .6إنذا تطبيق خاص إعدا وتشري
- 36 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
المقترح:
لمحل ُ
ّ وضع ترميم
نحتاج عد تحديد متطمبات البرنػامج وتػةطير السذػكمة التػي يعالجهػا ،إلػى تحديػد خطؽطػه الرئيدػية الالزمػة
لتشفي ػػذ وتحقي ػػق الستطمب ػػات .ل ػػذا يج ػػرم اس ػػتخداـ أ وات ومشهجي ػػات متع ػػد ة كالسخطط ػػات التد قي ػػة ولغ ػػة
الحل.
ّ التحميل مؼ القسة إلى القاعدة لتؽصيت خطؽ الخؽارزميات ،وأسالي
ويعتبر أسمؽب الترسيػ مؼ القسة إلػى القاعػدة أسػمؽباً مشهجيػاً لتحميػل السذػكالت اسػتخداـ مبػدأ الؽحػدات.
ومػػؼ الستعػػارؼ عميػػه هػػؽ أف وضػػع ترػػسيػ اسػػتخداـ أسػػمؽب الترػػسيػ مػػؼ القسػػة إلػػى القاعػػدة ،ومبػػا
البرمجة السهيكمة يعطي برامجاً واضحة ،وصحيحة ،وسهمة االختبار ،والريانة.
الحل:
تنفيذ مجمهعة من االختبارات عمى ّ
ويذ ػػسل اس ػػتخداـ معطي ػػات االختب ػػار لمتحق ػػق ي ػػدوياً م ػػؼ تعميس ػػات البرن ػػامج ،حي ػػث يسك ػػؼ مقارن ػػة الشت ػػائج
الستؽقعة مشها مع الشتائج الفعمية التي يقؽـ البرنامج بتشفيذها.
التهثيق:
أف يتزسؼ تؽ يق البرنامج: يج
تؽصيت الشعاـ وتؽصيت الدخل والخرج ،والخطؽ العريزة ألقدامه
ترسيػ البرنامج ،سا ي لغ بشى السعطيات والخؽارزميات معب اًر عشهػا سخططػات أو بمغػة قريبػة
مؼ لغات البرمجة
البرنامج الشهائي التفريل ،ويتزسؼ خطة االختبارات ،وسجالت االختبار
ويعد التؽ يق أم اًر أساسياً لألسباب التالية:
عطا السدتخدـ كرة عؼ كيفية إعدا معطيات البرنامج وطريقة تفدير الخرج
لتدهيل عسمية صيانة البرنامج
لتدهيل التعديالت السدتقبمية التي تهدؼ إلى تطؽير البرنامج
- 37 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.19المخططات التدفقية
تُعتََبػػر السخططػػات التد قيػػة إحػػدى أ وات الترػػسيػ السرئػػي لألنعسػػة البرمجيػػة وخرؽص ػاً الرػػغير مشهػػا.
خدـ السخططات التد قية رمؽ اًز خاصة بها ندتعرضها يسا يمي: وتُدتَ ِ
- 38 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثال :1
صسػ السخط التد قي الذم يسثل برنامجاً يداعد ي حداب مجسؽع األعدا مؼ 1إلى .50
الحل:
ّ
مثال :2
صسػ السخط التد قي الذم يسثل برنامجػاً يدػاعد ػي إيجػا العػد األكبػر مػؼ بػيؼ ال ػة أعػدا A, B, C
يدخمها الس ِ
دتخدـ. ُ ُ
الحل:
ّ
- 39 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثال :3
صػػسػ السخطػ التػػد قي الػػذم يسثػػل برنامجػاً يدػػاعد ػػي حدػػاب ! N( Nعػػاممي) حيػػث Nهػػؽ عػػد ُيدخمػػه
الس ِ
دتخدـ. ُ
)(N! = N * (N-1) * (N-2) * (N-3) * … * 3 * 2 * 1
الحل:
ّ
- 40 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.21الخهارزميات
ػامل لمسدػةلة السطروحػػة .وهػذا يتزػػسؼ
قبػل كتا ػة أم برنػػامج لحػل مدػػةلة مػا ،يجػ أف يتػػؽ ر لػديشا هػ ةػػ ش ة
تحديد وتهصيف المعطيات التي نعتسد عميها أو ننطمق منها ،والنتائج التي نريد الهصهل إليها.
قبل كتا ة البرنامج نتبع أسمؽباً مشهجيػاً لمحػل ،ونعبػر عػؼ هػذا الحػل طريقػة موؤطرة مهيكموة ال لوبس فيهوا
كا ية لتشقمشا يسا عد إلى لغة برمجة معيشة وف عشا كبير.
الخهارزمية:
يتػ حل أم مدةلة برمجية مؼ خالؿ تشفيذ سمدمة من األفعال وفق ترتيب معين ،إنها خطة الحل ،ونطمق
عميها تدسية الخؽارزمية ،Algorithmوتتزسؼ خطؽات حل مدةلة عبر تحديد:
.1األفعال الهاجب تنفيذها.
إتباعه مؼ أجل تشفيذ األ عاؿ الدا قة. .2الترتيب الؽاج
أف تكؽف األفعال وترتيب التشفيذ مؽصفاً عمى وجه ال يدعه إلى المبس أو التأويل. يج
- 41 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
خهارزميات حاسهبية
هشػػا يكػػؽف التعبيػػر عػػؼ الخؽارزميػػة خطؽات/أ عػػاؿ محػػد ة ال لػػبس يػػه وقابمػػة لالنتقػػاؿ لبرنػػامج لمتشفيػػذ مػػؼ
قبل الحاسؽب.
مثاؿ :خؽارزمية تحديد العد األكبر مؼ مجسؽعة أعدا :
التؽصيت الدقيق :مجسؽعة األعدا يدخمها السدتخدـ وتُ َّ
حد نهاية السجسؽعة قيسة خاصة ولتكؼ .999
تحديد متحؽالت السدةلة( :كسا ي السدةلة الحدابية الرياضية حتى البديطة)
Kلمقيسة التي يدخمه السدتخدـ KMAXلقيسة العد األكبر
خطؽات (تعميسات) الخؽارزمية:
.1أ خل العد األوؿ إلى الستحؽؿ KMax
.2أ خل العد التالي إلى الستحؽؿ K
إلى الخطؽة 6 .3إ ا ( Kتداوم )999ا ه
.4إ ا Kأكبر مؼ KMaxأسشد Kإلى KMAX
إلى الخطؽة 2 .5ا ه
"قيسة العد األكبر"KMax ، .6اكت
ك ػرة الحػػل هػػي كالتػػالي ،تػػدخل العػػد األوؿ ،تعتبػػر األكبػػر ( )1إلػػى أف يثبػػظ العكػػس :أم تكػػرر إ خػػاؿ
ػدخل أكبػر
الس َ ف
ػدخل Kمػع مػؼ اعتبرتػه األكبػر KMAXػإف كػاف ُ
الس َ
أعدا السجسؽعة ( ،)2تقػار العشرػر ُ
تجعمه يحل مكاف مؼ اعتبرته األكبر ) ،(4وهكذا حتى نهاية السجسؽعة.
- 42 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 43 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 44 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
وهي عبارة عؼ أمر يقؽؿ خذ القيسة (القيػ) السؽجؽ ة ي الدخل وضعها ي خانة (خانات) اكرة الستحؽؿ
(الستحؽالت).
أمثمة:
اق أر N
- 45 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مؼ متحؽالت و ؽابظ وتؽا ع وعسميات ،و ي والريغة أو التعبير ( :)formula, expressionهي تركي
الحالة البديطة يكؽف التعبير متحؽالً ق أو ابتاً ق .
إ ف تعميسة الكتا ة هي أمر يقؽؿ أظهر قيسة التعبير عمى وحدة الخػرج .وكسػا ػي تعميسػة الػدخل يسكػؼ أف
مؼ تعميسة الكتا ة اظهار أكثر مؼ قيسة (عدة صيغ). نطم
أمثمة:
متحؽالت
N اكت
20 اكت
- 46 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 47 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.25تعميمة اإلسناد
وهي إسشا قيسة صيغة لستحؽؿ (لخانة اكرة)
نعطي شكالً نعامياً لهذ التعميسة:
أمثمة:
مثاؿ :1
لديشا ي خانتي الذاكرة t, iالقيػ الخزنة (.)t = 10, i=25
عشد تشفيذ تعميسة ا سشا التالية:
i←t
تربذ ي الخانة iالقيسة 10أيزاً .أو نقؽؿ أف الستحؽؿ tيداوم .10
وبتشفيذ ا سشا :
i ← i + 4*t
تربذ قيسة iتداوم .50
مثاؿ :2
حداب قيسة التا ع y = x2 - 16 :ي حالة ،x=4نكت :
x←4
y ← x2 - 16
ما هي قيسة الستحؽؿ yبهذا ا سشا ؟
- 48 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثاؿ :3
مجسؽعة العبارات أو التعميسات التي تدسذ حداب التا ع y=x3-9و ظهار الشتيجة مؼ أجل قػيػ x اكت
يجرم إ خالها.
إق أر x
y ← x2-9
y اكت
و ا أر نا إظهار الشتيجة عمى نحؽ معبر أكثر ،ندتبدؿ تعميسة الكتا ة ،التعميسة التالية:
- 49 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.26التعميمة الذرطية
و يها تتحد التعميسات التالية ي التشفيذ بشا ً عمى اختبار شر .
وتر ةحد الذكميؼ التالييؼ:
.1التعميسة الذرطية البديطة أو التشفيذ ذر if
.2التعميسة الذرطية االختيارية أو التشفيذ اختيار بيؼ مداريؼ و قاً لمذر if else
و ي هذ التعميسة يجرم اختبار الذر إف محققاً (صحيحاً) تُ َّشفذ مجسؽعػة التعميسػات ( .ػالطبع يسكػؼ أف
تقترر مجسؽعة التعميسات عمى تعميسة واحدة كسا ي أمثمتشا السبدطة).
و ف لػ يكؼ الذر محققاً ما الذم يجرم برأيغ؟
الج ػؽاب :ػػالطبع لػػؼ َّ
تشفػػذ مجسؽعػػة التعميسػػات ،وسػػيشتقل التشفيػػذ إلػػى التعميسػػة التاليػػة ،عػػد كامػػل التعميسػػة
الذرطية .ألػ نقل أف تشفيذ التعميسات هؽ ضسشياً تدمدمي.
ما معنى شرط؟
الذػػر هػػؽ السعشػػى السػػةلؽؼ لػػديغ ،أم أمػػر يسكػػؼ البػػظ ذػػةنه :محقػػق أو غيػػر محقػػق (نعػػػ أو ال) (صػػذ
trueأو خطة .)false
- 50 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
أمثمة:
مثاؿ :1
بداية
a ← s/N
نهاية
نريد مؼ هذ التعميسة هشا أف نقدػ عمى قيسة الستحؽؿ Nذر أف تكؽف Nأكبر مؼ الرفر.
وبتعبير آخر :إ ا كانظ Nأكبر مؼ الرفر ،عشدها نِّفذ تعميسة ا سشا لمتعبير s/Nإلى الستحؽؿ .a
مثاؿ :2
نريد إ خاؿ (ق ار ة) عالمة ما ة ونريد كتابتها ق إ ا كانظ ي السجاؿ مؼ 0إلى .100
ليكؼ xالستحؽؿ الذم نكرسه لمعالمة.
اق أر x
بداية
اكتب x
نهاية
- 51 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
ي هذ التعميسة يجرم االختيار بيؼ مدارم تشفيػذ :إمػا تشفيػذ مجسؽعػة تعميسػات 1-ػي حػاؿ كػاف الذػر
محققاً (صحيحاً) أو تشفيذ مجسؽعة تعميسات 2-ي الحالة السعاكدة.
مثاؿ :1
نريػػد مػػؼ هػػذ التعميسػػة هشػػا أف تقدػػػ عمػػى قيسػػة الستحػػؽؿ Nذػػر أف تكػػؽف Nال تدػػاوم الرػػفر ،و ال
نعهر عبارة تدؿ عمى الخطة.
- 52 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثاؿ :2
إليغ هذا السثاؿ السشتهي البداطة ،ولكشه سيعمسشا ،أمؽر عديدة :نريد قػ ار ة عػد يؼ ،وكتا ػة السقارنػة بيشهسػا
(أكبر ،أصغر ،يداوم).
أمثمة عؼ التشفيذ:
خل 3و 10خرج 10 > 3
خل 15و 10خرج 10 < 15
خل 10و 10خرج 10=10
الخؽارزمية:
إف مػػا كتبشػػا هشػػا هػػؽ شػػكل مهيكػػل ومػػؤطر لسػػا تفكػػر ػػه ذ ػ ػػكل طبيعػػي :إمػػا العػػد األوؿ ( )aأكبػػر مػػؼ
الثاني ( )bو ال هؽ أصغر مشه أو يداويه ،إ ا كاف أصغر كتبشا لغ و ال هؽ حتساً يداويه.
الحػ ػ هش ػػا ت ػػداخل التعميس ػػات ػػي مد ػػتؽيات أو هياك ػػل .التعميس ػػات الت ػػي تشف ػػذ اخ ػػل التعميس ػػة الذ ػػرطية
االختيارية هي بدورها تعميسة شػرطية ،وهػذ بػدورها يسكػؼ أف تةخػذ أم تعميسػة سػا يهػا التعميسػة الذػرطية.
بهذا يسكششا أف نبػدأ ا راؾ أف هػذ البشػى أو التعميسػات الخؽارزميػة األساسػية يسكشهػا أف تجعمشػا نعبػر عػؼ
حمؽلشا (مهسا كانظ متذعبة) بتسييز الحاالت السختمفة عمى نحؽ مهيكل ومؤطر.
تنهيه هام:
تدػػسى التعميسػػة الذػػرطية أيزػاُ ،بتعميسػػة التفريووع .ألف مدػػار الػػتحكػ ػػي تشفيػػذ البرنػػامج يتفػػرع عشػػدها إلػػى
االختيار بيؼ مداريؼ و قاً لذر .
- 53 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
كرر
مادام ( شر ) ّ
بداية
مجسؽعة تعميسات
نهاية
تدسى هذ التعميسة أيزاً ،مػؼ بػيؼ بشػى الػتحكػ ،control structureالحمقػة التك ارريػة .إ أنػه ػي حػاؿ
تحقػػق الذػػر تشفػػذ مجسؽعػػة التعميسػػات ،ليعػػؽ التشفيػػذ إلػػى اختبػػار الذػػر مػػؼ جديػػد ،لتشفػػذ التعميسػػات مػػؼ
جديػػد مػػا اـ الذػػر محقق ػاً .وتبقػػى هػػذ الحمقػػة أو التك ػرار مدػػتس اًر ػػي تشفيػػذ مجسؽعػػة التعميسػػات واختبػػار
الذر ،حتى يربذ الذر غير محقق ،عشدها يشتقل التشفيذ ،إلى التعميسة التالية لتعميسة التكرار.
- 54 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثاؿ :1
كتا ة جدوؿ الزرب لمعد .7
الفكرة الخؽارزمية:
هي ما تقؽـ ه عمياً بيدؾ .تكرار كتا ة أسطر مؼ الذكل:
7x1=7
7 x 2 = 14
..............
7 x 10 = 70
أم تكرار كتا ة 7 x i = 7*i :حيث iتبدأ القيسة 1وتتزايد لتتؽقت عشد القيسة .10
خؽارزمية الحل:
i←1
مادام ( ) i ≤ 10كرر
بداية
i ← i +1
نهاية
ي كثيػر مػؼ حػاالت التكػرار ندػتخدـ متحػؽالً يت ازيػد مػع تشفيػذ التكػرار ،مثػل حالػة iػي مثالشػا ،ندػسي مثػل
(يعد مرات التكرار) ،وبسا أف التكرار هؽ حمقة ندسيه أيزاً عدا الحمقة التك اررية.
ّ هذا الستحؽؿ عدا
- 55 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثاؿ :2
السطمؽب حداب مجسؽع األعدا 1, 2, 3,... M
حيث Mتُعطى كدخل.
اآلف وقد اكتسمظ لػديشا التعميسػات الخؽارزميػة األساسػية ،وقػد ا عيشػا أنهػا كا يػة لشعبػر عػؼ حػل أم مدػةلة،
لشبدأ التفكير خؽارزمية الحل بهذ التعميسات.
السهػػ أف نبػدأ بتؽصػيت السدػةلة جيػداً ،ويكػؽف لػغ بتحديػد السعطيػات والشتػائج ذػكل قيػق ،ويكػؽف الحػػل
(الخؽارزمية) سحاولة بشا الخطؽات لسعالجة السعطيات وصؽالً إلى الشتائج.
المعطيات M :عد صحيذ مؽج .
النتائج :مجسؽع األعدا 1, 2, 3,... Mولشجعل لهذا السجسؽع متحؽالً .S
الخؽارزمية:
العالقة بيؼ Sو MهيS=1+2+...+M :
آ ،إف الحل بديهي هشا ،ما هي إال تعميسة إسشا وأحرل عمى السطمؽب ،أم:
اق أر M
S ← 1+2+3+...M
اكتب S
ما رأيغ!!!
الطبع لؼ يكؽف هذا الحل مقبؽؿ خؽارزمياً ألنه لؼ يكؽف مقبؽؿ برمجياً وال حاسؽبياً.
ال يسكؼ أف تكػؽف تعميسػة ا سػشا مقبؽلػة بهػذا الذػكل :أيػة صػيغة رياضػية هػذ السكتؽبػة ب ػ !....+Mهػذا
يسكؼ أف يعبر عؼ كرة مفهؽمة لشا ،ولكشه غير قابل لمحداب.
ولكؼ نتا ع نفس الفكرة ةسمؽب مختمت قميالً ،نجسع إلى الستحؽؿ القيسة 1ػ 2ػ 3حتى .M
وجدنا بداية الفكرة S ← S + i :حيػث سػيكؽف iهػؽ الستحػؽؿ الػذم يةخػذ ....،2 ،1حتػى .Mولكػؼ لػػ
نتخمب عد مؼ هذ الشقا المعيشة .M,...,..
ال ليدظ بهذ الرعؽبة ،إنها قػيػ متحػؽؿ عػدا يت ازيػد ذػكل تكػرارم ،نكػرر زيا تػه قيسػة 1إلػى أف يرػل
إلى القيسة .Mأم شر التكرار (.)i ≤ M
- 56 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
خؽارزمية الحل:
اق أر M
S←0
i←1
مادام ( ) i ≤ Mكرر
بداية
S←S+i
i ← i +1
نهاية
اكتب S
لشتةكد مؼ صحة الخؽارزمية و لغ اختبارها يدوياً مؼ أجل قيػ مختمفة لمستحؽؿ :M
الدخلM=1 :
الدخلM=3 :
- 57 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
اق أر M
S←1
i←1
بداية
i ← i +1
S←S+i
نهاية
اكتب S
- 58 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثاؿ:
اق أر M
S←0
i←1
مادام ( ) i ≤ Mكرر
بداية
S←S+i
i ← i +1
نهاية
اكتب S
- 59 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
- 60 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مالحعة هامة:
مؼ الدائد مشذ بداية الدبيعشيات التعبير بمغة الخؽارزميػات pseudo-codeوتفزػيمها عمػى السخططػات
التد قية flowchartsلدببيؼ:
.1السخططات التد قية تؽحي استخداـ تعميسة القفز gotoوقد أ بتظ الدراسات تة يرها الدمبي عمى
سهؽلة ق ار ة البرامج و هسها واختبارها وصيانتها.
.2انتذار ما ندسيه البرمجة السهيكمة structured programmingالسؽجؽ ة ي مععػ لغات
البرمجة السشتذرةPascal, Basic, C, C++, Java, C# :
إف التعبيػر بمغػة الخؽارزميػػات ،هػؽ تعبيرنػا عػػؼ الحػل كمسػػات مفهؽمػة الداللػة ،وهيكميػػة واضػحة ،ال تػػدعؽ
لاللتبػػاس .وهػػي كسػػا كرنػػا pseudo-codeشػػبيهة ال ػ codeأم ػػالشب البرمجػػي ػػي لغػػات البرمجػػة.
يها كسا نفكر ال قيؽ قؽاعدية صارمة تفرضها لغػات البرمجػة .هػي مدػؽ ة البرمجػة ( الؽرقػة ولكؼ نكت
" ةية "لغة برمجة" .لذلغ اخترنا مثالً ،وخرؽصػي ػي بدايػة والقمػ) ،ولكشها مدؽ ة مفهؽمة قابمة "لمتبيي
البرمجة أف نعِّبر سفر ات المغة العربية ،لغة تفكيرنا.
عد أف تتةقمػ مع لغة برمجة وتتعرؼ اللة التعميسػات األساسػية ،يسكشػغ اسػتخداـ المفوردات اإلنكميزيوة إ ا
كاف لغ أكثر راح ًة لغ ،ولكؼ ضسؼ نفس الذكل السؤطر والسهيكل الذم كرنا .
مثاؿ( Pseudo-Code :تعبير عؼ خؽارزمية المغة ا نكميزية)
- 61 -
البرنامج الحاسؽبي:الفرل األوؿ )1( مقرر البرمجة
read a,b,c;
delta b2 4 a c
if delta<0
begin
write “No Real Solution”
end
if delta = 0
begin
write “One Solution”
b
x
2a
write x
end
if delta >0
begin
write “Two Solutions”
b delta
x1
2a
b delta
x2
2a
write x1,x2
end
- 62 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
خهارزمية إقميدس:
خؽارزمية رائعة ال تحتاج إلى أية عسميات قدسة أو ضرب.
وهي كالتالي ،نطرح األصغر مؼ األكبر ونزعه مكانه ،نكرر لغ حتى يتداوى العد اف.
لشطبق لغ عمى العد يؼ 75, 45
A B
75 45
30 45
30 15
15 15
- 63 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
الخؽارزمية:
إنها خؽارزمية رائعة وبديطة ،واستخدمشا يها جسيع التعميسػات الخؽارزميػة األساسػية ( خػل ،خػرج ،إسػشا ،
تعميسة شرطية ،تعميسة تك اررية).
سؤاؿ:
هل تتغير الشتيجة إ ا غيرنا تعميسة ا سشا g ← aالتعميسة .g ← b
الجؽاب:
ال تغيير ،ألف هذ التعميسة تمي تعميسة التكرار ،التي ال نشتقل إلى ما عدها إال عد عػدـ تحقػق الذػر (a
ال تداوم .)bوبالتالي عشد وصؽلشا إلى تعميسة ا سشا ،تكؽف قيسة aو bمتداويتاف الزرورة.
- 64 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثال :2
حداب العد األكبر بيؼ مجسؽعة أعدا يدخمها السدتخدـ.
المعطيات :مجسؽعة األعدا التي يجرم إ خالها.
النتيجة :العد األكبر.
لشتةمل قميالً ،هل السدةلة مؽصفة جيداً؟ ما السقرؽ سجسؽعة ،ما هؽ عد عشاصػر السجسؽعػة ،أو كيػت
لشا أف نعرؼ أف السجسؽعة التي يجرم إ خالها قد انتهظ.
إ ف ،لتحديػػد السجسؽعػػة التػػي نػػدخمها ،نعطػػي أوالً عػػد العشاصػػر ،ػػػ العشاصػػر .أو نقػػؽـ إ خػػاؿ العشاصػػر
ونرطمذ عمى رمز يدؿ عمى نهاية السجسؽعة (عشرر غير مةلؽؼ مثل .)999
ولشفكر معاً بالخهارزمية:
أرجؽ أال تبدأ التفكير حػل مدػةلة بؽاسػطة الحاسػؽب ،ال بمغػة الخؽارزميػات ،وقطعػاً ػي السدػتقبل ال تفكػر
عمػى مدػؽ تغ بمغة برمجة معيشة ،بل ع تفكيرؾ الطبيعي الحدسي يتمسس ويتخيل السدةلة وارسػ وشػط
والسهػ جداً أف تكؽف قا اًر عمى حل السدةلة يدوياً ( ي الحاالت البديطة) ،تذكر لؼ يقدـ الحاسؽب الحل.
نؤكد لغ أف تفكيرؾ العا م لمحل يسكؼ جهد قميل صػياغته بمغػة خؽارزميػة ،سػيسكؼ يسػا عػد نقمهػا جهػد
قميل أيزاً إلى أية لغة برمجة عالية السدتؽى.
فػػي مدػػةلتشا هشػػا ،تخيػػل أنػػغ تريػػد معر ػػة الذػػخب األطػػؽؿ بػػيؼ مجسؽعػػة أشػػخاص يػػر وف إلػػى غر تػػغ
إال عد اً محد و جداً مؼ السجسؽعة ،أم ال تدتطيع الشعر التتالي ،وبالطبع ال يسكؼ لغر تغ أف تدتؽع
إليهػ جسيعاً لتقؽؿ بشعرة خاطفة هذا هؽ األطؽؿ.
الحل هؽ كالتالي ،تدخل العشرر األوؿ ،تعتبر األطؽؿ إلى أف يثبظ العكس ،أم تكػرر إ خػاؿ العشاصػر،
تقارف العشرر السدخل مع مؼ اعتبرته األطؽؿ إف كاف أطؽؿ مشػه تجعمػه يحػل مكانػه ،وهكػذا حتػى نهايػة
السجسؽعة.
إنها الخؽارزمية ،وما عميشا إال التعبير عسا كتبشا خطؽات محد ة ،وبهيكمية واضحة و قيقة ال لػبس يهػا،
عد أف نحد الستحؽالت السعبرة عسا نعالجه.
يه العشرر األكبر. ليكؼ kهؽ عشرر السجسؽعة السدخل ،و kmaxهؽ الستحؽؿ الذم نحتف
- 65 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
الخؽارزمية:
إ ا ( ) k > kmaxنِّفذ
إ ا ( kmaxاليداوم ) 999نِّفذ
”max= ”, kmax اكت
تػػدري :اختبػػر الخؽارزميػػة يػػدوياُ ػػي حػػاالت مجسؽعػػات مختمفػػة( .ال تػػشس اختبػػار الحػػاالت الحديػػة :حالػػة
مجسؽعة مؼ عشرر واحد ،وحالػة السجسؽعػة الخاليػة حيػث الػدخل هشػا يقترػر قػ عمػى نهايػة السجسؽعػة
أم .)999
- 66 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
مثال :3
كتا ة برنامج لحل معا الت مؼ الدرجة الثانية.
معر ة عمى الذكل ، a.x 2 b .x c 0لذا إف حمها يتطم سا أف معا لة مؼ الدرجة الثانية تُكت
3عشاصر هي a :و bو cإ ًا:
خل البرنامج :الث أعدا حقيقية هي c ،b ، aتسثل أمثاؿ حدو السعا لة.
حل وحيد ،أو حميؼ ،أو اليكؽف لها
حل السعا لة ،سؼ السسكؼ أف يكؽف لمسعا لة ّ
سا أف السطمؽب هؽ ّ
حمؽؿ .إ اً:
خرج البرنامج :إحدى الحاالت التالية:
حل حقيقي.
.1رسالة تعمؼ عدـ وجؽ ّ
الحل.
.2رسالة تعمؼ عؼ وجؽ حل وحيد مع إظهار ّ
.3رسالة تعمؼ عؼ وجؽ حميؼ مع إظهار الحّميؼ.
معالجتها ،والحقيقة أنه ال تؽجد أية رضيات عمى قيػ aو b لشدةؿ نفدشا اآلف عؼ الفرضيات التي يج
و cالتي يسكؼ أف تكؽف أم أعدا حقيقية (سالبة أو مؽجبة ،صحيحة أو ةج از كدرية!) ،ولكؼ الذر
الزسشي والؽحيد هؽ a≠0ألف السعا لة مؼ الدرجة الثانية.
خؽارزمية الحل:
( ي هذا السثاؿ سشعبر عؼ الخؽارزمية سفر ات المغة ا نكميزية)
- 67 -
البرنامج الحاسؽبي:الفرل األوؿ )1( مقرر البرمجة
read a,b,c;
delta b 2 4 a c
if delta<0
begin
write “No Real Solution”
end
if delta = 0
begin
write “One Solution”
b
x
2a
write x
end
if delta >0
begin
write “Two Solutions”
b delta
x1
2a
b delta
x 2
2a
write x1,x2
end
- 68 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.31أسئمة
رذ أو خطة: .1أج
)1ترتب البرامج السكتؽبة بمغات عالية السدتؽى العتا
مؼ كتابتها بمغات ات مدتؽى مشخف )2تكؽف كتا ة البرامج بمغات عالية السدتؽى أصع
)3يكػػؽف تذػػغيل البػرامج السكتؽبػػة بمغػػات عاليػػة السدػػتؽى أ طػػة مػػؼ البػرامج السكتؽبػػة بمغػػات ات
مدتؽى مشخف
)4يكؽف ترحيذ البرامج السكتؽبة بمغات عالية السدتؽى أسهل مؼ البرامج السكتؽبػة بمغػات ات
مدتؽى مشخف
)5يتحكػ نعاـ التذغيل السؽار الحاسؽبية
)6إف نعاـ التذغيل هؽ Windows
)7يعد نعاـ التذغيل جز اً مؼ العتا
)8يسكؼ تحسيل أكثر مؼ برنامج ي الذاكرة ي آف واحد
)9يسكؼ تشفيذ وتذغيل أكثر مؼ برنامج ي آف واحد
يسكؼ أف تدتخدـ عدة برامج الطا عة ي آف واحد )01
- 69 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
األجهبة
رذ أو خطة: .1أج
خطة 1
خطة 2
صذ 3
صذ 4
صذ 5
خطة 6
خطة 7
صذ 8
صذ 9
صذ 11
- 70 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
.31نذاط
إف السدائل ي هذا الشذا مؼ الشؽع البدي ،وال شغ أنػغ تدػتطيع الحرػؽؿ عمػى الحػل دػهؽلة بؽاسػطة
أ وات الجدول ػػة مث ػػل ،Excelولك ػػؼ اله ػػدؼ هش ػػا ت ػػدريبغ عم ػػى التعبي ػػر ع ػػؼ الح ػػل اس ػػتخداـ التعميس ػػات
األساسية (الخسدة) بمغة الخؽارزميات.
تدمد ػػل تشفي ػػذ ع ػػد تعبي ػػرؾ ع ػػؼ الح ػػل ،ح ػػاوؿ أف تن ّفوووذ الخؽارزمي ػػة يووودويا بتغيي ػػر ق ػػيػ الستحػ ػؽالت حدػ ػ
التعميسػػات .ابػػدأ التشفيػػذ عمػػى عيشػػة صػػغيرة مػػؼ قػػيػ الػػدخل ،تةكػػد مػػؼ قيسػػة الخػػرج اسػػتخداـ Excelإف
أر ت.
المدألة األولى:
نريد كتا ة برنامج حداب الستؽس الحدابي:
n
x i
Average i 1
n
تعبػػر xiعػػؼ معػػدالت طػػالب صػػت مػػؼ صػػفؽؼ الجامعػػة اال ت ارضػػية .مػػع العمػػػ أف عػػد طػػالب
حيػػث ّ
(السذار إليه الستحؽؿ ُ )nيعطى مؼ الدخل ،وأف السعدالت محدؽبة مؼ 100عالمػة وأف الرت الؽاحد ُ
السدتخدـ يقؽـ إ خاؿ السعدالت عشد تشفيذ البرنامج.
ُ
حد عشد تؽصيفغ ومعالجتغ لمسطمؽب:
.1خل البرنامج.
.2خرج البرنامج.
معالجتها. .3الفرضيات األساسية التي يج
.4خؽارزمية الحل بمغة الخؽارزميات.
- 71 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
المدألة الثانية:
نريد كتا ة برنامج حداب ا نحراؼ السعيارم:
n
(x i ) Average
S tan dardDeviation i 1
n
تعب ػػر xiع ػػؼ مع ػػدالت ط ػػالب ص ػػت م ػػؼ ص ػػفؽؼ الجامع ػػة اال ت ارض ػػية ،ويعب ػػر Averageع ػػؼ
حي ػػث ّ
(السذػػار إليػه ػػالستحؽؿ ُ )nيعطػػى
الستؽسػ الحدػػابي لمسعػدالت .مػػع العمػػػ أف عػد طػػالب الرػت الؽاحػػد ُ
السدػػتخدـ يق ػػؽـ إ خ ػاؿ السع ػػدالت عشػػد تشفي ػػذ
مػػؼ ال ػػدخل وأف السعػػدالت محد ػػؽبة مػػؼ 100عالم ػػة وأف ُ
البرنامج.
حد عشد تؽصيفغ ومعالجتغ لمسطمؽب:
.1خل البرنامج.
.2خرج البرنامج.
معالجتها. .3الفرضيات األساسية التي يج
.4خؽارزمية الحل بمغة الخؽارزميات.
- 72 -
الفرل األوؿ :البرنامج الحاسؽبي مقرر البرمجة ()1
المدألة الثالثة:
فرض أف لديغ معا لة مدتقيػ:
ax by c
تعبػػر a,b,cعػػؼ قػػيػ صػػحيحة أوحقيقيػػة ،ػػي حػػيؼ يعبػػر كػػل مػػؼ xو yعػػؼ متحػػؽليؼ ،إ يعبػػر xعػػؼ
(السحؽر .)OY السعبر عؼ محؽر التراتي
ّ محؽر الفؽاصل (السحؽر )OXويكؽف yهؽ الستحؽؿ
xوy نقؽؿ عؼ نقطة ) (x0,y0أنها مشتسية إلى السدتقيػ ax+by=cإ ا تحققظ معا لة السدتقيػ بتعػؽي
بػ x0و y0عمى الترتي ،كسايمي:
a x 0 b y 0 c
عمى سبيل السثاؿ ،ومؼ أجل السدتقيػ 5x 4 y 13تكؽف الشقطة ) (1,2مشتسية إلى السدتقيػ ألف:
5 1 4 2 13
السطمؽب كتا ة خؽارزمية التحقق مؼ انتسا نقطة إلى مدتقيػ حيث تحد :
.1خل البرنامج (مداعدة :السدتقيػ والشقطة).
.2خرج البرنامج (مداعدة :انتسا أو عدـ انتسا ).
معالجتها ي البرنامج. .3الفرضيات األساسية التي يج
.4التعبير عؼ الحل بمغة الخؽارزميات.
- 73 -