You are on page 1of 33

‫أساسيات البرمجة الهيكلية‬

‫دكتور مهندس‪ /‬محمود أبو الفتوح‬


‫الفصل األول‬

‫مبادئ البرمجة الهيكلية‬


‫البرنامج‬

‫• البرنامج عبارة عن مجموعه من التعليمات‬


‫المكودة والتي تقوم بتوجيه الحاسب ألداء‬
‫معالجات معينة علي البيانات المدخلة‪.‬‬
‫• تعليمات مكودة تعني استخدام كود طبقا للغة‬
‫البرمجة المستخدمة في كتابة البرنامج‪.‬‬
‫لغات البرمجة‬
‫• هناك لغات مختلفة للبرمجة‪ ،‬لكل منها قواعد بنائية‬
‫خاصة بها‪.‬‬
‫• وقد مرت لغات البرمجة بمراحل تطور مختلفة‪.‬‬
‫‪ .1‬بدأت بلغة اآللة‪.‬‬
‫‪ .2‬ثم لغة التجميع‪.‬‬
‫‪ .3‬ثم لغة المستوى العالي‪.‬‬
‫إنشاء برنامج‬
‫إلنشاء برنامج للحاسب لحل مشكلة ما يجب‬ ‫•‬
‫اتباع الخطوات اآلتية‪:‬‬
‫تعريف المشكلة‪.‬‬ ‫‪.1‬‬
‫تصميم البرنامج‪.‬‬ ‫‪.2‬‬
‫كتابة البرنامج باستخدام إحدى لغات البرمجة‪.‬‬ ‫‪.3‬‬
‫اختبار وتصحيح البرنامج‪.‬‬ ‫‪.4‬‬
‫توثيق البرنامج‪.‬‬ ‫‪.5‬‬
‫‪ -1‬تعريف المشكلة‬

‫تعريف المشكلة يجب أن يضع إجابات لألسئلة األساسية‬ ‫•‬


‫اآلتية ‪:‬‬
‫‪ -1‬ما هو الخرج المطلوب ؟‬ ‫•‬
‫‪ -2‬ما هو الدخل المتاح ؟‬ ‫•‬
‫‪ -3‬ما هو اإلجراء المطلوب ؟ وذلك بوضع الخطوات‬ ‫•‬
‫المنطقية والحسابية لتنفيذ المطلوب طبقا ً للبيانات‬
‫المدخلة ‪.‬‬
‫‪ -1‬تعريف المشكلة‬
‫• مثال‪ :‬مطلوب إيجاد مجموع درجات الطالب في مادتين‪.‬‬
‫• ومن تحليل هذه المشكلة نجد أن‪:‬‬
‫– الخرج المطلوب‪ :‬هو إيجاد مجموع الدرجات وطباعته‪ ،‬نرمز‬
‫له بالرمز (ج)‪.‬‬
‫– المدخالت عبارة عن‪:‬‬
‫– درجة المادة األولي‪ :‬نرمز لها بالرمز (أ)‬
‫– درجة المادة الثانية‪ :‬نرمز له بالرمز(ب)‬
‫– اإلجراء المطلوب تنفيذه هو إجراء العملية الحسابية اآلتية‪:‬‬
‫ج=أ‪+‬ب‬
‫‪ -2‬أساليب تصميم البرامج‬

‫• تتم مرحلة التصميم بعد تفهم المشكلة‪.‬‬


‫• توجد األساليب اآلتية لتصميم البرنامج‪:‬‬
‫أ‪ -‬خرائط التدفق‪.‬‬
‫ب‪ -‬الخوارزميات‪.‬‬
‫أ‪-‬خرائط التدفق‬
‫• تعتبر خرائط التدفق إحدى الوسائل التى تستخدم‬
‫لتوضيح كيفية سير وعمل البرنامج ‪.‬‬
‫• إلنشاء خرائط التدفق يتم استخدام رموز خاصة تعبر عن‬
‫مدلوالت معينه‪.‬‬
‫• فيما يلي سوف نوضح الرموز القياسية المستخدمة في‬
‫إنشاء خرائط التدفق‪.‬‬
‫أ‪-‬خرائط التدفق‬
‫• ‪ -1‬رمز البداية والنهاية‬
‫يستخدم الشكل البيضاوي للداللة‬
‫علي بداية ونهاية خريطة التدفق‪.‬‬

‫• ‪-2‬رمز إدخال وإخراج البيانات‬


‫يستخدم متوازي األضالع في‬
‫عملية إدخال وإخراج البيانات‪.‬‬
‫أ‪-‬خرائط التدفق‬
‫• ‪-3‬رمز المعالجة والتخصيص‬
‫يستخدم المستطيل للداللة علي‬
‫عملية معالجة لعمليات حسابية‬
‫أو تخصيص قيمة إلى متغير‪.‬‬

‫• ‪-4‬رمز القرار‬
‫يستخدم المعين للداللة علي وجود‬
‫قرار يستوجب التفرع طبقا‬
‫لنتيجة القرار‬
‫أ‪-‬خرائط التدفق‬
‫• ‪-5‬رمز توصيل‬
‫تستخدم الدائرة في عملية‬
‫توصيل اكثر من طرف‬

‫• ‪-6‬رمز اتجاه البيانات‬


‫يستخدم السهم في توضيح‬
‫اتجاه البيانات‬
‫أ‪-‬خرائط التدفق‬
‫مثال‪:‬ارسم خريطة التدفق لبرنامج يقوم بقراءة قيمة‬ ‫•‬
‫رقمين ثم يقوم بإيجاد حاصل جمعهما وطبعه‪.‬‬
‫يجب أوال تحديد المدخالت والعمليات المطلوبة ثم‬
‫المخرجات كاآلتي‪:‬‬
‫الخرج‪ :‬إيجاد حاصل جمع الرقمين (د)‬ ‫•‬
‫المدخالت‪ :‬الرقم األول (ن‪ )1‬والرقم الثاني (ن‪) 2‬‬ ‫•‬
‫اإلجراءات‪ :‬حساب حاصل الجمع‪ :‬د= ن‪ + 1‬ن‪2‬‬ ‫•‬
‫المخرجات‪ :‬طباعة قيمة حاصل الجمع د‬ ‫•‬
‫خرائط التدفق‬
‫ابدء‬ ‫• أرسم خريطة التدفق‬
‫لبرنامج يقوم بجمع‬
‫أدخل ن‪ ، 1‬ن‪2‬‬
‫رقمين‬

‫د = ن‪ + 1‬ن‪2‬‬
‫المدخالت‪ :‬ن‪ ، 1‬ن‪2‬‬ ‫•‬
‫اطبع د‬ ‫المخرجات‪ :‬د‬ ‫•‬
‫االجراءات‪:‬‬ ‫•‬
‫إنهاء‬ ‫د = ن‪ + 1‬ن‪2‬‬ ‫•‬
‫خوارزمات‬
‫أكتب خوارزم لبرنامج يقوم بضرب رقمين‬
‫‪-1‬ابدأ‬
‫‪ -2‬أدخل الرقم األول ن‪1‬‬
‫‪ -3‬أدخل الرقم الثاني ن‪2‬‬
‫‪ -4‬احسب د = ن‪ ×1‬ن‪2‬‬
‫‪ -5‬اطبع د‬
‫‪ -6‬انهاء‬
‫أشكال البرمجة‬
‫يوجد أربعة أشكال رئيسية يتم استخدامها في بناء‬
‫البرامج وهى‪:‬‬
‫الشكل التتابعي‪.‬‬ ‫•‬
‫الشكل االختياري‪.‬‬ ‫•‬
‫الشكل التكراري‪.‬‬ ‫•‬
‫استخدام الروتين الفرعي‪.‬‬ ‫•‬
‫البرمجة الهيكلية ذات الشكل التتابعى‬
‫• في البرمجة الهيكلية ذات الشكل التتابعى يقوم الحاسب‬
‫بمعالجة البيانات الموجودة بالبرنامج طبقا ً لترتيب أسطر‬
‫البرنامج ‪ ،‬الواحد تلو اآلخر‪.‬‬
‫الشكل التتابعي‬

‫• أرسم خريطة التدفق لبرنامج‬


‫يقوم بحساب متوسط أربعة‬
‫ارقام‬

‫• المدخالت‪ :‬األرقام أ‪،‬ب‪،‬ج‪،‬د‬


‫• المخرجات‪ :‬م‬
‫• االجراءات‪:‬‬
‫م = (أ‪+‬ب‪+‬ج‪+‬د)\‪4‬‬
‫الشكل التتابعي‬
‫ابدء‬ ‫أرسم خريطة التدفق لبرنامج يقوم‬ ‫•‬
‫بحساب مرتب علي أساس ضرب‬
‫أدخل س ‪ ،‬ج‬
‫عدد ساعات العمل في اجر الساعة‬
‫المدخالت‪ - :‬عدد الساعات س‬ ‫•‬
‫م = س×ج‬
‫‪ -‬اجر الساعة ج‬
‫أطبع م‬ ‫المخرجات‪ :‬مرتب م‬ ‫•‬
‫االجراءات‪ :‬م = س × ج‬ ‫•‬
‫انهاء‬
‫البرمجة الهيكلية ذات الشكل االختياري‬
‫• هناك حالة تتحكم في سير الحاسب وتبعده عن األسلوب‬
‫التتابعى وهي‪-:‬‬
‫• ‪ -‬وجود شرط ‪ :‬في حالة تحقيقه يتم توجيه سير البرنامج‬
‫إلى اتجاه معين وفى حالة عدم تحقيقه يوجه البرنامج إلى‬
‫اتجاه آخر ‪.‬‬
‫الشكل االختياري‬
‫• توجيه البرنامج إلى أحد اتجاهين‬
‫أو مسارين وذلك باختيار شرط في‬
‫تعليمات البرنامج ‪.‬‬
‫• إذا كانت نتيجة اختيار الشرط‬
‫إيجابية يسلك بالبرنامج اتجاه‬
‫معين‪.‬‬
‫• وإذا كانت نتيجة الشرط سلبية‬
‫يسلك البرنامج اتجاه آخر‪.‬‬
‫الشكل االختياري‬
‫• مثال‪ :‬ارسم خريطة التدفق لبرنامج يقوم بإدخال رقمين ثم‬
‫طبع أكبرهما‪.‬‬

‫المخرجات‪ :‬الرقم األكبر‪ :‬ب‬ ‫•‬


‫المدخالت‪ :‬الرقم األول‪ :‬س ‪ ،‬الرقم الثاني‪ :‬ص‬ ‫•‬
‫المعالجات‪ :‬مقارنة الرقمين إليجاد أكبرهما‬ ‫•‬
‫س > ص اذا ب = س‬ ‫•‬
‫ص > س اذا ب = ص‬ ‫•‬
‫الشكل االختياري‬

‫ابدء‬

‫أدخل س ‪،‬ص‬

‫نعم‬ ‫ال‬
‫س> ص‬

‫ب= س‬ ‫ب= ص‬

‫اطبع ب‬

‫انهاء‬
‫الشكل االختياري‬
‫أكبرهما‪.‬‬ ‫ارسم خريطة التدفق لبرنامج يقوم بإدخال رقمين ثم طبع‬
‫مثال‬
‫‪-‬ارسم خريطة التدفق لبرنامج يقوم بتقرير أحقية المواطن‬ ‫•‬
‫في االنتخاب من عدمه‪ ،‬حيث يتم إدخال عمر الفرد‪ ،‬ثم يقوم‬
‫البرنامج بطبع رسالة له الحق في االنتخاب إذا كان عمره‬
‫اكثر من أو يساوي ‪20‬عاما‪ .‬وإذا كان عمره اقل من ‪20‬‬
‫عاما يقوم بطبع الرسالة اآلتية ليس له حق االنتخاب‬
‫نفرض عمر المواطن ‪ :‬ع‬ ‫•‬
‫في حالة‪ :‬ع >= ‪ 20‬طبع رسالة (له الحق في االنتخاب )‬ ‫•‬
‫في حالة‪ :‬ع < ‪ 20‬طبع رسالة (ليس الحق في االنتخاب )‬ ‫•‬
‫خريطة التدفق‬
‫ابدء‬

‫أدخل عمر المواطن ‪ :‬ع‬

‫نعم‬ ‫ال‬
‫ع > = ‪20‬‬

‫اطبع له حق االنتخاب‬ ‫اطبع ليس له حق االنتخاب‬

‫انهاء‬
‫مثال‬
‫‪-‬ارسم خريطة التدفق لبرنامج يقوم بتقرير خصم الضريبة‬ ‫•‬
‫من عدمه‪ ،‬حيث يتم إدخال مرتب الموظف‪ ،‬ثم يقوم‬
‫البرنامج بطبع رسالة تخصم الضريب إذا كان المرتب اكثر‬
‫من أو يساوي ‪ 5000‬جنيه‪ .‬وإذا كان المرتب اقل من‬
‫‪ 5000‬جنيه يقوم بطبع الرسالة اآلتية ال تخصم الضريب‬
‫نفرض مرتب الموظف ‪ :‬ع‬ ‫•‬
‫في حالة‪ :‬ع >= ‪ 5000‬طبع رسالة (تخصم الضريب )‬ ‫•‬
‫في حالة‪ :‬ع < ‪ 5000‬طبع رسالة (ال تخصم الضريب)‬ ‫•‬
‫•‬
‫خريطة التدفق‬
‫ابدء‬

‫أدخل مرتب الموظف‪ :‬ع‬

‫نعم‬ ‫ال‬
‫ع > = ‪5000‬‬

‫اطبع تخصم الضريبة‬ ‫اطبع ال تخصم الضريبة‬

‫انهاء‬
‫الشكل التكراري‬

‫•في كثير من األحيان قد تحتاج بعض التطبيقات إلى‬


‫تكرار تنفيذ بعض العمليات لعدد معين من المرات‪ ،‬ويتم‬
‫تنفيذ ذلك باستخدام الحلقات التكرارية‪.‬‬
‫•تقوم الحلقات التكرارية بتكرار تنفيذ أجزاء من البرنامج‬
‫لعدد من المرات المحددة مسبقا أو لحين تحقيق شرط‬
‫معين‪.‬‬
‫• إرسم خريطة التدفق لبرنامج‬
‫يقوم بطباعة كلمة مرحبا ثالث‬
‫ابدأ‬ ‫مرات‬
‫ن= صفر‬
‫يتم وضع عداد باسم ن‬ ‫•‬
‫ن= ن‪1+‬‬
‫يبدأ العداد بقيمة صفر‬ ‫•‬
‫يتم عمل حلقة تكرارية وفي كل دورة‬ ‫•‬
‫يتم زيادة العداد بواحد ن = ن ‪1+‬‬
‫اطبع مرحبا‬
‫وطباعة كلمة مرحبا‬
‫ن=‪3‬‬ ‫يتم اختبارقيمة العداد ن بالرقم ‪3‬‬ ‫•‬
‫ال‬
‫نعم‬ ‫اذا كانت ن > ‪ 3‬يعاود الدوران‬ ‫•‬
‫انهاء‬ ‫اذا كانت ن= ‪ 3‬ينهي الدوران وينهي‬ ‫•‬
‫البرنامج‬
‫• إرسم خريطة التدفق لبرنامج يقوم بطباعة كلمة مرحبا ثالث‬
‫مرات‬
‫• إرسم خريطة التدفق لبرنامج يقوم بطباعة االرقام من ‪ 3‬الي ‪9‬‬

‫ابدء‬ ‫يتم وضع عداد باسم ن‬ ‫•‬


‫ن= ‪2‬‬
‫يبد العداد بقيمة ‪2‬‬ ‫•‬
‫يتم عمل حلقة تكرارية وفي كل دورة يتم‬ ‫•‬
‫ن= ن‪1+‬‬ ‫زيادة العداد بواحد ن = ن ‪1+‬‬
‫وطباعة الرقم ن‬
‫يتم اختبارقيمة العداد ن بالرقم ‪9‬‬ ‫•‬
‫اطبع ن‬
‫اذا كانت ن > ‪ 9‬يعاود الدوران‬ ‫•‬
‫ن=‪9‬‬ ‫اذا كانت ن= ‪ 9‬ينهي الدوران وينهي البرنامج‬ ‫•‬
‫ال‬
‫نعم‬
‫انهاء‬
‫إرسم خريطة التدفق لبرنامج يقوم بطباعة االرقام من ‪ 1‬الي ‪100‬‬

‫يتم وضع عداد باسم ن‬ ‫•‬


‫يبد العداد بقيمة ‪1‬‬ ‫•‬
‫يتم عمل حلقة تكرارية وفي كل دورة يتم‬ ‫•‬
‫زيادة العداد بواحد ن = ن ‪1+‬‬
‫وطباعة الرقم ن‬
‫يتم اختبارقيمة العداد ن بالرقم ‪100‬‬ ‫•‬
‫اذا كانت ن > ‪ 100‬يعاود الدوران‬ ‫•‬
‫اذا كانت ن> ‪100‬ينهي الدوران‬ ‫•‬
‫وينهي البرنامج‬ ‫•‬

You might also like