مدخلك الى تعلم
البرمجة العادية 2
مثال
B = 7
C = 7
D = B-C
A = B/D
قام البرنامج
بالقسمة على صفر حيث ان قيمة بي = 7 وسي = 7 ودي = بي – سي اي 7-7 وتساوي بذلك
صفر ثم تأتي مرحلة انهيار البرنامج عندما يقسم بي على دي وقيمتها صفر بعد
الحسابات السابقة (احذر ذلك )
كل ماهو
خطأ رياضي سيكون خطأ في البرنامج مثل حساب الجذر التربيعي لعدد اقل من الصفر
وهكذا
·
حافظ دائما على ان يكون عدد الاقواس المفتوحة يساوي عدد الاقواس المغلقه
·
اقصد عدد الاقواس ذات الاتجاه اليمين = عدد الاقواس ذات الاتجاه اليسار
·
لان الكوميوتر عندما تفتح له قوس ايسر معناها بدء عملية حسابية منفصلة
·
حتى لوكانت داخل معادلة واحدة فاءذا لم تغلق بالقوس الايمن فمعنى ذلك عملية
·
لم تغلق وتنهار المعادلة وبالتالي البرنامج.
مثال لاحظ فيه ان
عدد الاقواس متساوي
A = (A+B) * ( C
– D) – (Q * M)
رابعا :
يجب ان تعرف اوامر القفز داخل اللغة التي تتعلمها
عمليات القفز
المقصود بها ان البرنامج سيقوم بالقفز على مجموعة من الامر دون تنفيذها
ليتجه الى اجزاء
اخرى داخل البرنامج لها أولوية حسب فكر المبرمج
مثال
A = (A+B) * ( C
– D) – (Q * M);
goto
final;
Z = 3 * m;
U = Z + 4;
final :
I = A * 10;
اوامر القفز مثل goto يليها عنوان لايتكرر حتى
لايضل البرنامج طريقه وهو في مثالنا العنوان final جعلت البرنامج يقفز فوق
المعادلتين
Z = 3 * m;
U = Z + 4;
ولا ينفذهم او
يجري حساباتهم وقفز مباشرة حيث يوجد العنوان final
ليستكمل عمله من
هناك وسوف تعرف فوائد ذلك في ختام هذا الشرح مع التطبيق الكامل
خامسا :
يجب ان تعرف اوامر الدوران داخل اللغة التي تتعلمها
الدوران او عمل looping من الاوامر الاساسية في
جميع لغات البرمجة فمثلا اذا كان البرنامج سيدخل اسماء الف موظف هل تعتقد انك
ستكتب الف امر لادخال هذه الاسماء بالطبع ستكون حماقه ولكن لو وضعنا امر واحد
فقط لادخال اسم الموظف وطلبنا من البرنامج الدوران الف مرة حول هذا الامر
بالطبع سيكون شئ جميل ان يدخل الف بيان بمجهود بسيط نتيجة تسهيل اعطته لغة
البرمجة مثال لبرنامج غبي جدا جدا
gets (employer1);
gets
(employer2);
gets
(employer3);
gets
(employer4);
gets
(employer5);
gets
(employer6);
gets
(employer7);
:
اكتب نفس الاوامر
حتى تصل للعدد الف شئ استفزازي بالفعل
:
:
gets (employer1000);
ولكن مع الدوران
for (I = 0 ; I < 1000 ; I++){
gets (employer
[I]);
}
ياله من شئ جميل
فعلا حسب صيغة اللغة التي تستخدمها طلبنا من الكومبيوتر انشاء عداد يعد من صفر
الى الف ورمزنا لها بالرمز I
ثم داخل العداد
طلبنا منه ادخال الموظف رقم I وهو عداد متغير حتى يكتمل العداد بوصوله للالف ويكون قد تم
تنفيذ الامر معه الف مرة بأدنى مجهود وكلما تغير العد من 1 الى 2 الى 1000
تغير معه رقم الموظف بنفس الطريقة
الخلاصة
لاتلتفت الى صيغة
الكود المكتوب فهو بلغة سي ونحن نتحدث عن اللغات عموما
فقط افهم الفكرة
وابحث في كتب اللغة التي تتعلمها عن الصيغة المعتمدة لهذه اللغة
سادسا :
يجب ان تعرف اوامر الشروط داخل اللغة التي تتعلمها
الشرط هو افتراض
معين يتوقف عليه عمليات اخرى فمثلا تريد ان تضع شرط الا يدخل رقم موظف اكبر من
الف لان عدد موظفين الشركة لايزيدون عن الف وبالتالي اذا ادخل من يعمل على
البرنامج رقم موظف اكبر من الف
يقوم البرنامج
باصدار رسالة تفيد بذلك وهكذا لها حالات كثيرة حسب فكرة البرنامج
مثال
scanf (“%d”,EmployerNumber);
if
(EmployerNumber > 1000 )
cprintf (“ثكلتك
امك لايوجد موظف بهذا الرقم الا تعرف عدد زملائك اعد الادخال “);
وتستخدم الشروط
ايضا في عمليات القفز اي عند شرط معين يتم القفز بالطبع تعلم شكل اكبر من واصغر
من ويساوي وصيغة كتابتها حسب اللغة التي تتعلمها
سابعا :
يجب ان تعرف كيف تبني دوال فرعية داخل اللغة التي تتعلمها
الدوال الفرعية subroutines هي شبه برنامج صغير اذا كان
عندك سلسله عمليات متشابهه سوف تجريها داخل البرنامج كثيرا وتكررها كثيرا فلا
داعي لاعادة كتابتها كل مرة بل يكفيك ان تكتبها مرة واحدة وتطلق عليها اسم وكلما
ذكرت هذا الاسم داخل البرنامج تتم تلك العمليات ويصبح هذا الاسم كأنه من اوامر
اللغة ايضا مثال اخر
لنفرض ان هناك
اوامر لرسم جدوال بأبعاد ومساحة معينة وتحتاج الى رسمة كثيرا فليس معنى هذا انك
كل مرة تريد رسم الجدول ستعيد كتابة اوامره الكثيرة في كل مكان داخل البرنامج
فقط جمع اوامر رسمه في روتين فرعي وسميه اسم وكلما ذكرت الاسم يتم رسم الجدول
انه شئ رائع اليس كذلك انا اظن ذلك
كل ماعليك ان
تبحث في تعليمات اللغة التي تتعلمها عن اسلوب وشكل بناء
هذه الروتينات في
الابواب المخصصة لذلك
[/center]
م / محمود عادل
البرمجة العادية 2
مثال
B = 7
C = 7
D = B-C
A = B/D
قام البرنامج
بالقسمة على صفر حيث ان قيمة بي = 7 وسي = 7 ودي = بي – سي اي 7-7 وتساوي بذلك
صفر ثم تأتي مرحلة انهيار البرنامج عندما يقسم بي على دي وقيمتها صفر بعد
الحسابات السابقة (احذر ذلك )
كل ماهو
خطأ رياضي سيكون خطأ في البرنامج مثل حساب الجذر التربيعي لعدد اقل من الصفر
وهكذا
·
حافظ دائما على ان يكون عدد الاقواس المفتوحة يساوي عدد الاقواس المغلقه
·
اقصد عدد الاقواس ذات الاتجاه اليمين = عدد الاقواس ذات الاتجاه اليسار
·
لان الكوميوتر عندما تفتح له قوس ايسر معناها بدء عملية حسابية منفصلة
·
حتى لوكانت داخل معادلة واحدة فاءذا لم تغلق بالقوس الايمن فمعنى ذلك عملية
·
لم تغلق وتنهار المعادلة وبالتالي البرنامج.
مثال لاحظ فيه ان
عدد الاقواس متساوي
A = (A+B) * ( C
– D) – (Q * M)
رابعا :
يجب ان تعرف اوامر القفز داخل اللغة التي تتعلمها
عمليات القفز
المقصود بها ان البرنامج سيقوم بالقفز على مجموعة من الامر دون تنفيذها
ليتجه الى اجزاء
اخرى داخل البرنامج لها أولوية حسب فكر المبرمج
مثال
A = (A+B) * ( C
– D) – (Q * M);
goto
final;
Z = 3 * m;
U = Z + 4;
final :
I = A * 10;
اوامر القفز مثل goto يليها عنوان لايتكرر حتى
لايضل البرنامج طريقه وهو في مثالنا العنوان final جعلت البرنامج يقفز فوق
المعادلتين
Z = 3 * m;
U = Z + 4;
ولا ينفذهم او
يجري حساباتهم وقفز مباشرة حيث يوجد العنوان final
ليستكمل عمله من
هناك وسوف تعرف فوائد ذلك في ختام هذا الشرح مع التطبيق الكامل
خامسا :
يجب ان تعرف اوامر الدوران داخل اللغة التي تتعلمها
الدوران او عمل looping من الاوامر الاساسية في
جميع لغات البرمجة فمثلا اذا كان البرنامج سيدخل اسماء الف موظف هل تعتقد انك
ستكتب الف امر لادخال هذه الاسماء بالطبع ستكون حماقه ولكن لو وضعنا امر واحد
فقط لادخال اسم الموظف وطلبنا من البرنامج الدوران الف مرة حول هذا الامر
بالطبع سيكون شئ جميل ان يدخل الف بيان بمجهود بسيط نتيجة تسهيل اعطته لغة
البرمجة مثال لبرنامج غبي جدا جدا
gets (employer1);
gets
(employer2);
gets
(employer3);
gets
(employer4);
gets
(employer5);
gets
(employer6);
gets
(employer7);
:
اكتب نفس الاوامر
حتى تصل للعدد الف شئ استفزازي بالفعل
:
:
gets (employer1000);
ولكن مع الدوران
for (I = 0 ; I < 1000 ; I++){
gets (employer
[I]);
}
ياله من شئ جميل
فعلا حسب صيغة اللغة التي تستخدمها طلبنا من الكومبيوتر انشاء عداد يعد من صفر
الى الف ورمزنا لها بالرمز I
ثم داخل العداد
طلبنا منه ادخال الموظف رقم I وهو عداد متغير حتى يكتمل العداد بوصوله للالف ويكون قد تم
تنفيذ الامر معه الف مرة بأدنى مجهود وكلما تغير العد من 1 الى 2 الى 1000
تغير معه رقم الموظف بنفس الطريقة
الخلاصة
لاتلتفت الى صيغة
الكود المكتوب فهو بلغة سي ونحن نتحدث عن اللغات عموما
فقط افهم الفكرة
وابحث في كتب اللغة التي تتعلمها عن الصيغة المعتمدة لهذه اللغة
سادسا :
يجب ان تعرف اوامر الشروط داخل اللغة التي تتعلمها
الشرط هو افتراض
معين يتوقف عليه عمليات اخرى فمثلا تريد ان تضع شرط الا يدخل رقم موظف اكبر من
الف لان عدد موظفين الشركة لايزيدون عن الف وبالتالي اذا ادخل من يعمل على
البرنامج رقم موظف اكبر من الف
يقوم البرنامج
باصدار رسالة تفيد بذلك وهكذا لها حالات كثيرة حسب فكرة البرنامج
مثال
scanf (“%d”,EmployerNumber);
if
(EmployerNumber > 1000 )
cprintf (“ثكلتك
امك لايوجد موظف بهذا الرقم الا تعرف عدد زملائك اعد الادخال “);
وتستخدم الشروط
ايضا في عمليات القفز اي عند شرط معين يتم القفز بالطبع تعلم شكل اكبر من واصغر
من ويساوي وصيغة كتابتها حسب اللغة التي تتعلمها
سابعا :
يجب ان تعرف كيف تبني دوال فرعية داخل اللغة التي تتعلمها
الدوال الفرعية subroutines هي شبه برنامج صغير اذا كان
عندك سلسله عمليات متشابهه سوف تجريها داخل البرنامج كثيرا وتكررها كثيرا فلا
داعي لاعادة كتابتها كل مرة بل يكفيك ان تكتبها مرة واحدة وتطلق عليها اسم وكلما
ذكرت هذا الاسم داخل البرنامج تتم تلك العمليات ويصبح هذا الاسم كأنه من اوامر
اللغة ايضا مثال اخر
لنفرض ان هناك
اوامر لرسم جدوال بأبعاد ومساحة معينة وتحتاج الى رسمة كثيرا فليس معنى هذا انك
كل مرة تريد رسم الجدول ستعيد كتابة اوامره الكثيرة في كل مكان داخل البرنامج
فقط جمع اوامر رسمه في روتين فرعي وسميه اسم وكلما ذكرت الاسم يتم رسم الجدول
انه شئ رائع اليس كذلك انا اظن ذلك
كل ماعليك ان
تبحث في تعليمات اللغة التي تتعلمها عن اسلوب وشكل بناء
هذه الروتينات في
الابواب المخصصة لذلك
[/center]
م / محمود عادل