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

منتديات شعاع الاحساس


 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول

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


 

 الخـوا رزميـات

اذهب الى الأسفل 
كاتب الموضوعرسالة
Mohammad AbuFares
المدير العام
المدير العام
Mohammad AbuFares


ذكر عدد المساهمات : 1306
تاريخ التسجيل : 05/02/2010
العمر : 29
الموقع : الاردن -عمان

الخـوا رزميـات Empty
مُساهمةموضوع: الخـوا رزميـات   الخـوا رزميـات I_icon_minitimeالخميس فبراير 11, 2010 9:01 pm

الخـوا رزميـات

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

• طبيعة المخرجات(النتائج) و تنظيم كتابتها.
• المدخلات (البيانات أو المعلومات) و تحديد نوعها و تنظيم إدخالها إلى الحاسب الالكتروني.
• طرق الحل المناسبة و تقييمها بما يتلاءم مع كيفية تنفيذها بالحاسب الالكتروني و في ضوء ذلك يتم اختيار الحل الأفضل.

• برمجة الحل خطياً:
بعد اختيار طريقة الحل المثالية و تحديد كل ما تشمله من علاقات رياضية، يتم التعبير عنها على شكل خطوات متسلسلة ومترابطة منطقياً، دقيقة الوصف تؤدي إلى الوصول إلى حل المسألة.و هذه الخطوات المتسلسلة تعرف بخوارزمية المسألة Algorithm of the Problem و يمكن تمثيل هذه الخوارزمية بعد إيضاح جميع التعليمات والأوامر المتسلسلة التي يراد تنفيذها في كل خطوة بمخطط وصفي تسلسلي يدعى بمخطط سير العمليات Flowchart وذلك باستخدام مجموعة من الأشكال الاصطلاحية الرمزية. إن كلمة Algorithm
مشتقة نسبة إلى العالم العربي المشهور الخوارزمي الذي قام بوضع أسس حل المسائل بشكل تتابعي.

•برمجة الحل باستخدام إحدى لغات البرمجة:
إن مخطط سير العمليات هو عبارة عن تخطيط تصوري مساعد سهل الملاحظة بالنسبة للمبرمج و لكنه غير مفهوم عند الحاسب الالكتروني، لذلك فإن طريقة الحل الممثلة بمخطط سير العمليات يجب أن تكتب بإحدى لغات الحاسب التي يفهمها و التي تتلاءم مع حل المسألة.
و يلي ذلك كتابة البرنامج على الوسط الخارجي المناسب و إدخال البرنامج إلى الحاسب و البرنامج الناتج من هذه الخطوة و المكتوبة بإحدى اللغات الرمزية أو الراقية يسمى بالبرنامج المصدري source program.

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

1. مرحلة التحليل المعجمي Lexical analysis:
في هذه المرحلة يتم مطابقة مفردات برنامج المصدر والعلاقات و الأسماء مع تلك المسموح بها في اللغة و اكتشاف أي أخطاء فيها.
2. مرحلة التحليل اللغوي والنحوي Syntax analysis:
في هذه المرحلة تجري عملية مطابقة تعليمات البرنامج المصدري مع القواعد اللغوية المستخدمة، و اكتشاف أي أخطاء فيها، بالإضافة إلى عملية تحويل البرنامج المصدري إلى تعليمات و أوامر رمزية بلغة التجميع.
3.مرحلة ترجمة البرنامج إلى لغة الآلة:
في هذه المرحلة نحصل على البرنامج الهدفي object program و الذي بموجبه يمكن البدء في عملية التنفيذ.

• تجربة البرنامج و تنفيذه:
بعد الحصول على البرنامج الهدفي، تتم تجربته للتأكد من صحته منطقياً وذلك باستخدام عينة من المعطيات الاختبارية Test Data فإذا ثبت صحة طريقة الحل بمطابقة النتائج الخارجة من الحاسب مع النتائج التي تم الحصول عليها يدوياً على سبيل المثال، يمكن تنفيذ البرنامج على المعطيات الحقيقية.
الخوارزمية هي عبارة عن مجموعة من الخطوات المتسلسلة التي تصف بصورة مضبوطة وبدون أي غموض جميع الخطوات الرياضية والمنطقية اللازمة لحل مسألة ما. ولكن هذا الوصف في كثير من الأحيان يكون معقداَ وصعب الملاحظة والتتبع لذلك فإن خريطة سير العمليات التي تمثل وصفاً تصويرياً لخطوات الخوارزمية تكون أكثر وضوحاً. وخريطة سير العمليات تقوم مقام الخوارزمية ويمكن بواسطتها ملاحظة تتبع التسلسل المنطقي لحل المسألة بكل سهولة، وغالباً ما تكون استخراج الخوارزمية من خريطة سير العمليات أسهل بكثير من كتابة الخوارزمية مباشرة.
و عند رسم خريطة سير العمليات لمسألة معينة فإننا نستخدم مجموعة من الأشكال الرمزية الاصطلاحية المبينة في الجدول التالي:


من أهم فوائد استخدام خرائط سير العمليات قبل كتابة البرنامج لمسألة ما، ما يأتي:
1. تمكن المبرمج من الإلمام الكامل بالمسألة المراد حلها و السيطرة على كل أجزائها بحيث تساعده على اكتشاف الأخطاء المنطقية (Logic Error) و التي تعتبر من أهم الأخطاء التي تجهد المبرمج.
2. تساعد بيسر و سهولة على تعديل البرامج الموضوعة بمجرد النظر.
3. يعتبر الاحتفاظ برسوم خرائط سير العمليات لحلول مسائل معينة أمراً مهماً إذ يكون مرجعاً عند إجراء تعديلات عليها أو استخدامها لحل مسائل أخرى مشابهة دون الحاجة إلى الرجوع إلى المبرمج الأول باعتبار أن الحلول الأولى قد صيغت في خطوات واضحة بسيطة و مفهومة.
4. توفير وسيلة مناسبة ومساعدة في كتابة البرامج ذات التفرعات الكثيرة.
هذا و يمكن تصنيف خرائط سير العمليات بما يلي:
•خرائط التتابع البسيط (Simple sequential Flowchart).
•خرائط التفرع (Branched Flowchart).
•خرائط الدوران البسيط (Loop Flowchart).
•خرائط الدورانات المتداخلة (Nested).
و يمكن للبرنامج الواحد أن يشتمل على أكثر من نوع واحد من هذه الأنواع. و سنتناول فيما يأتي شرح هذه الأنواع بشيء من التفصيل.
يخلو هذا النوع من التفرعات Branches و الدورانات loops و يكون الشكل العام لهذا النوع كما هو مبين في الشكل 12-1:

الشكل 12-1خرائط التتابع البسيط
و كلمة Event الواردة في شكل 12-1 تعني الحدث أو العملية المطلوب تنفيذها.
مثال : أرسم خريطة سير العمليات لإيجاد مساحة و محيط دائرة نصف قطرها معلوم R.

وقيمتها العددية ثابتة و تساوي 3.14 بينما R متغير.
وتكون خطوات الحل المبينة في الشكل 12-2 كما يلي:


الشكل 12-2

1.ابدأ.
2.اقرأ قيمة R.
3. ضع قيمة 3.14=PIE
4. احسب المساحة(A) من المعادلة A =(PIE)*R*R.
5. احسب المحيط (C) من المعادلة C =2*(PIE)*R .
6. اطبع قيم كل من C, A, R.
7. توقف.
مثال:ارسم خريطة سير العمليات لحساب قيمة كل من المتغيرات C, B, A في المعادلة الآتية:

إذا علمت أن قيم كل من Y, X معطاة (معلومة)، ثم اطبع قيم كل من C, B, A, Y, X.
الحل: من الواضح أنه يمكننا من حساب قيمة المتغير A في المعادلة(1) لمعرفتنا بقيم المعطيات الأولية Y, X، ويمكننا من حساب قيمة المتغير B في المعادلة (2) بالاعتماد على قيمة X المعلومة لدينا وقيمة المتغير Aالمحسوبة في الخطوة السابقة، أما قيمة المتغير C في المعادلة (3) بالاعتماد على قيم كل من المتغيرات B, A, X وكلها معلومة.
وتكون خطوات حل المسألة كما هو مبين في الشكل 12-3 كما يلي:


1.ابدأ.
2.اقرأ قيمة كل من Y, X.
3.احسب قيمة A من المعادلة (1).
4.احسب قيمة B من المعادلة (2).
5.احسب قيمةC من المعادلة (3).
6.اطبع قيمة كل من C, B, A, Y, X.
7.توقف.
ويحدث التفرع في البرامج بسبب الحاجة لاتخاذ قرار أو مفاضلة بين اختيارين أو أكثر، وهناك أسلوبان في تنفيذ القرار(انظر شكل 12-4).



قرار ذو تفرعين قرار ذو ثلاثة تفرعات
الشكل 12-4
وبشكل عام فإن خرائط التفرع يمكن أن تأخذ إحدى الصورتين الآتيتين (انظر شكل 12-5 و الشكل 12-6 ).



الشكل 12-5 الشكل 12-6
يمكننا ملاحظة أن شكل 12-5 يبين أنه إذا كان جواب الشرط YSE (Condition) فإن الحدث التالي في التنفيذ يكون الحدث (a) أما إذا كان الجواب NO فإن الحدث التالي يكون الحدث(b) كما يمكننا أن نلاحظ في الشكل 12-6 أنه إذا كان جواب الشرط YSE فإن الحدث التالي في التنفيذ يكون الحدث (a) ثم يتبعه الحدث (b) أما إذا كان جواب الشرط NO فإن الحدث التالي يكون الحدث (b) مباشرة.
مثال:ارسم خريطة سير العمليات لإيجاد قيمة الاقتران F(x) المعرف حسب القاعدة التالية:
X if X>=0 F(X) = ׀X׀
-X if X<0
حيث كلمة (if) هنا تعني عندما.
خطوات الحل المبينة في الشكل 12-7 تكون:
خطوات الحل المبينة في الشكل 12-7 تكون:
1. ابدأ
2. اقرأ قيمة المتغير X .
3. إذا كانت X أكبر أو تساوي صفرًا اذهب إلى خطوة(4) وإلا فأذهب إلى الخطوة(5).
4.احسب قيمة الاقتران منF(X)=X ثم اذهب إلى الخطوة(6).
5.احسب قيمة الاقتران من F(x)= -X.
6. اطبع قيمة كل من X ,F(x).
7. توقف.


الشكل 12-7
مثال:ارسم خريطة سير العمليات لحساب قيمة Wطبقًا للمعادلات الآتية علمًا بأن قيمة المتغير X معطاة معلومة:

W=
خطوات الحل كما هي مبينة في الشكل 12-8 :
1. ابدأ.
2. اقرأ قيمة المتغيرX .
3. إذا كانت X أكبر من صفر فاذهب إلى الخطوة 4 أما إذا كانت ليست أكبر من فاذهب إلى خطوة 5.
4. احسب W من المعادلة (1) ثم اذهب إلى الخطوة 8.
5. إذا كانت X تساوي صفر فاذهب إلى الخطوة 6 وإلا فاذهب إلى الخطوة 7.
6. احسب W من المعادلة (2) ثم اذهب إلى الخطوة 8.
7. احسب W من المعادلة (3) ثم اذهب إلى الخطوة 9.
8. اطبع قيمة W.
9. توقف.


الشكل 12-8
وهذه الخرائط نحتاج إليها لإعادة عملية أو مجموعة من العمليات في البرنامج عددًا محدودًا أو غير محدود من المرات، ويكون الشكل العام لمثل هذه الخرائط كما يلي (انظر الشكل12-9 ).



الحدث (a) يتكرر تنفيذه في كل دوره حتى يصبح جواب الشرط YES. الحدث (a) يتكرر تنفيذه في كل دورة طالما كان جواب الشرط YES.
الشكل 12-9
مثال: ارسم خريطة سير العمليات لإيجاد مساحة مجموعة من الدوائر أنصاف أقطارها معلومة:
تكون خطوات الحل المبينة في الشكل 12-10 كما يلي:
1. ابدأ.
2. اقرأ نصف قطر الدائرة (R).
3. أوجد مساحة الدائرة (A).
4. اطبع قيم كل من A, R.
5. هل هناك مزيد من الدوائر؟
فإن كان نعم فعد إلى الخطوة(2) وإن كان لا فعد إلى الخطوة (6).
6. توقف.

الشكل 12-10
في كثير من الأحيان نحتاج في برامج الحاسب الإلكتروني إلى جمع مجموعة كبيرة من الأعداد التي تمثل معطيات ظاهرة معينة، فمثلاً قد نرغب في إيجاد الوسط الحسابي لأعمار طلاب الجامعة، ولتحقيق هذا أولاً يجب أن نحسب مجموع أعمار الطلاب، وطبعًا ليس عمليًا إعطاء رمز أبجدي لكل عمر طالب فقد تحتاج لأكثر من عشرة الآلاف رمز، في مثل هذه الحالات نصمم خوارزمية معينة للتجميع تسمى خوارزمية التجميع summers Algorithm تتضمن خطوات محددة إذا اتبعها الحاسب استطاع أن يجمع أي كمية من البيانات باستخدام متغيرين اثنين إحداهما هو المتغير الذي نجمعه والآخر هو الجمع الإجمالي (المجمع)، ويمكن تحديد الخطوات التي يجب أن يتبعها الحاسب لتحقيق ذلك في أربع خطوات هي:
1. اجعل المجمع مساويًا الصفر.
2. ادخل قيمة واحدة للمتغير.
3. اجعل القيمة الجديدة للمجمع تساوي القيمة القديمة له زائد القيمة المدخلة للمتغير، أي أن:
قيمة المجمع الجديدة=قيمة المجمع القديمة + آخر قيمة مدخلة للمتغير.
4. كرر ابتداءًا من الخطوة الثانية.
مثال:ارسم خريطة سير العمليات لإيجاد الوسط الحسابي لأعمار طلاب شعبتك.
الحل: نفترض أن إجمالي عدد الطلاب =N ونستخدم عددًا لرقم كل طالب ونرمز له بالرمز I ونرمز لعمر الطالب بX ونستخدم مجمعًا لأعمار الطلبة ونرمز له بالرمزS ونستخدم الرمز A ليدل على معدل أعمار الطلبة.
وتكون خطوات الحل كما هو مبين في الشكل 12-12هي:
1. ابدأ.
2. ادخل إجمالي عدد الطلاب (N).
3. اجعل I=0.
4. اجعل S=0.
5. اجعل I=I+1.
6. ادخل X.
7. اجعل S=S+X.
8. إذا كانت I=N اذهب إلى الخطوة 9 وإلا اذهب إلى الخطوة 5.
9. اجعل A=S/N.
10. توقف.

الشكل 12-12
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://www.sho3a3.alafdal.net
 
الخـوا رزميـات
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات شعاع الاحساس :: علوم وتكنولوجيا :: الحاسوب-
انتقل الى: