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

الطريق الى البرمجة

مغلق
بدأه omartomi1983 في 23 أكتوبر 2004 · 4 رد · 1,705 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

طريقك الى البرمجة

الطريق إلى البرمجة

في هذا الجزء تتناول ما يعرف بالخوارزميات، و تتحدث عن أهميتها في البرامج، و الطريقة المثالية في تصميم البرنامج، و الأخطاء التي تواجه المبرمج أثناء إعداد البرنامج.

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

الخوارزمية:

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

Example

إذا أعطيت العددين A b أوجد c الناتج من جمع العددين?

1.Start

2.A B اقرأ العددان

3.C = A + B اجعل

4.C اطبع العدد

5.Stop

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

Example 2

فصل دراسي به عدد من الطلبة أوحد متوسط درجات هؤلاء الطلبة؟

يجب تحديد بعض المتغيرات الأساسية و هي:

مجموع الدرجات S

درجة الطالب G

K عداد التكرار

N عدد الطلبة في الفصل

و حيث أن المتوسط = مجموع الدرجات / عدد الطلبة

فيكون البرنامج كالأتي:

1.Start

2.Do k = 0

3.S = 0

4.N اقرأ

5.G اقرأ

6.Do s = s + 0

7.K = k + 1

8.اذا كانت K ≠ n ارجع إلى الخطوة رقم (5)

9.احسب المتوسط بي: المتوسط = مجموع الدرجات / عدد الطلبة

10.اطبع المتوسط

11.Stop

شرح المثال:

نلاحظ في المثال وجود حلقة من اجل تكرار عد عدد الطلبة و المتمثلة في المجموع، كما ن لاحظ وجود شرط بالحلقة و طالما لم يتحقق الشرط أي k≠N وعندما تتساوى تنتهي الحلقة و يتم طباعة المتوسط.

Example 3

اكتب خوارزمية لإيجاد مساحة الدائرة و محيطها؟

الخوارزمية

1.star

2.do pi=3.14

3.read R

4.do a =pi*r^2

5.do b=2*pi*r

6.print a b r

7.stop

شرح المثال:

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

Example 3

اكتب خوارزمية إيجاد القيمة العظمى لقيمتين غير معلومتين؟

الخوارزمية

1.start

2.read a b

3.if a > b print b

4.print a

5.stop

نلاحظ استخدام الشرط if للمقارن بين العددين و للشرط مخرجين نعم أو لا فإذا كان الجواب نعم فيتم طباعة العدد b و ألا يتم طباعة العدد a

Example 4

اكتب خوارزمية لترتيب عددين ترتيب تصاعدي؟

الخوارزمية

1.start

2.read a b

3.if b>a print

4.Do

C=a

A=b

B=c

5.print a b

6.stop

Example 5

اكتب خوارزمية لقراءة x1 x2 x3 x4 و حساب الوسط الحسابي و طباعته لعدد غير محدد من مجاميع القيم

الخوارزمية

1.start

2.read x1 x2 x3 x4

3.z=x1+x2+x3+x4

4.AVG=z/4

5.print AVG

6.go to step two(2)

7.stop

الشرح

استخدمنا في هذا المثال المتغير z لمجموع القيم و المتوسط بنفس الطريقة السابقة و الجملة go to أي اذهب إلى الخطوة الثانية لان السؤال يقول لعدد غير محدد من مجاميع القيم.

Example 6

اكتب خوارزمية التكلم بالهاتف؟

الخوارزمية

1.start

2.search for phone

3. go to step 2(الهاتف معطل) if

4.phone number

5. go to step four(4) (الهاتف مشغول) if

6.المكالمة

7.stop

البحث for phone للبحث عن الهاتف، phone number أي رقم الهاتف، يوجد في هذا المثال شرطين الأول للمعرفة صلاحية الهاتف من عدمه، و الثاني لطلب رقم الهاتف.

Example 7

اكتب خوارزمية لإيجاد الأجور المستحقة من الكهرباء؟

الخوارزمية

A القراءة السابقة

B القراءة اللاحقة

C الاستهلاك

D الوحدة

P سعر الوحدة

X الديون

M الأجور الكلية الواجب دفعها

1.start

2.read a b p x

3.c = b –a

4.d = c * p

5.if m = 0 m=d

6.m = d+x

7. print m

8.stop

الشرح

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

Example 8

اكتب خوارزمية لإيجاد مجموع مربعات الأعداد:

X1 x2 x3 x4 ……………….x 20

الخوارزمية:

1.start

2.read x

3.do I = 0 , sum = 0.0

4.I = I + 1

5.sumsqr=sumsqr+x^2

6.if I < 20 go to step four

7.print sumx^2

8.stop

الشرح:

بعد قراءة القيمة الأولى و جعل قيمة I = 0 يتم تربيع قيمة sumsqr و إضافتها إلى المجموع مع إضافة قيمة واحد إلى المتغير I و الدخول في حلقة مستمرة حتى يتحقق الشرط أي I < 20 و عندها يتم طباعة مجموع المربعات، مع ملاحظة أن الرمز( 2^) يعني مربع القيمة.

Example 9

قامت إحدى المعارض بتخفيض أسعار بضاعتها فاذا كانت قيمة الشراء 50 دينار تكون نسبة التخفيض 5 % و إذا كانت نسبة الشراء أكثر من 50 دينار أو اقل من 100 يكون التخفيض 15% اكتب خوارزمية هذا البرنامج؟

لنفرض أن:

1. قيمة الشراء = g من الدنانير

2.قيمة الشراء بعد التخفيض = net

3.عندما تكون قيمة الشراء 50 أو اقل تكون قيمة الشراء الصافي net=g-g*5/100

4.عندما تكون قيمة الشراء أكثر من 50 و اقل من 100 تكون قيمة الشراء بعد التخفيض net= g – g *15/100

1.start

2.read (g)

3.if g = 0 go to step ( 7 )

4.if g <=50 net=g-g*5/100

5.if g > 100 net=g – g*15/100

6.go to step two ( 2 )

7.print net

8.stop

الشرح:

يكون كالاتي:

قراءة قيمة الشراء، اختبار هذه القيمة اذا كانت = 0 فالتخفيض لا وجود له، و الا ينتقل الى الخطوة التالية، التي تقوم باختبار قيمة الشراء، فاذا كان اصغر من او يساوي 50 يحسب الصافي كما هو مبين في الخطوة رقم (4) و الا فيذهب الى الخطوة رقم (5) التي تقوم بدورها باختبار قيمة الشراء ، فاذا كان اكثر من 50 و اقل من 100 تحسب الشراء كما هو مبين في الخطوة رقم (5) و في حالة عدم تحقق الشرط يذهب الى الخطوة رقم (2) أي يعيد قراءة المشتريات مرة اخرى ، و في النهاية تتم طباعة الصافي، و ينتهي البرنامج.

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

الأخطاء البرمجية

يوجد ثلاث فئات من العلل( الأخطاء) Bugs هم:

1.الأخطاء الشكلية Syntax errors

2.الأخطاء المنطقية logical errors

3.أخطاء التشغيل runtime errors

الأخطاء الشكلية syntax errors

يعتبر من أسهل أنواع الأخطاء لأنه عادة يكون عبارة عن أخطاء في أوامر البرمجة ( هجائية ) أو مشكلات قواعد نحوية، مثل خطأ في تركيب جملة برمجية، او استخدام كلمات محجوز كمتغيرات، او عدم الأعلام عن متغير، أو غير ذلك من عدم فهم تركيب الجمل، و أرحب

الأخطاء المنطقية logical errors

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

خطأ التشغيل runtime errors

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

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

I.مراجعة تصميم البرنامج

II.استخدام الوحدات النمطية القصيرة

III.فحص البرنامج أثناء إنشائه

IV.استخدام شفرات عزل الأخطاء

V.استخدام أسماء واضحة للمتغيرات

VI.الالتزام بمنهجية وقياسية استخدام الأسماء و المتغيرات

VII.إضافة تعليقات على معظم الأجزاء

و أرحب بأي استفسار أو مناقشة في خصوص ما كتبته في هذا المقال.

Omartomi1983@yahoo.com

#2

شكرا جزيلا لك اخي العزيز omartomi1983 علي هذا المجهود الكبير أعانك الله .

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#3

جزاك الله خير على هذا الشرح و هذه الأمثلة التي و جدت فيها ظالتي

#4

السلام عليكم

لقد أثبت هنا أن البرمجة لها علاقة كبيرة بالحسابات.

ربما نستطيع تصنيفها أنها رياضيات كاملة..

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

تحياتي

#5

جزاك الله خير

وما قصرت وشاكرين مجهودك في الشرح الشيق والممتع

هذا الموضوع مغلق.

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