الفرعون المحترف
11-30-2006, 07:42 PM
السلام عليكم و رحمة الله و بركاته
انطلاقا من مبدأ مشاركة المعرفة المجرد من منافع مادية و شخصية، و الذي ينبع من أن ما تفعله من خير فان الله وحده هو الذي يجزيك عليه أحب أن أفتتح دورة الفيجوال بيسك بعد اذن المشرفين
هذه الدورة لمن؟--------------------
هذه الدورة للأشخاص المبتدئين أو من بدئوا و لا يعرفون كيف يكملون الطريق، أو من لديهم قدر قليل من المعلومات و يتمنوا أن يصبحوا مبرمجين حقييقين.
لماذا فيجوال بيسك 6؟-------------------------
بعضهم يقول أن فيجوال بيسك انقرض (فيجوال بيسك 1 الي 6 ) أي ما قبل الدوت نت، و لكن هذا الكلام ليس صحيح تماما، نادرا ما يحدث أن تنقرض لغة سهلة و قوية خاصة اذا كانت في مثل شعبية الفيجوال بيسك و سوف تصدق كلامي اذا علمت أن عدد مبرمجي الفيجوال بيسك في العالم رقم و أمامه ستة أصفار، ليس بالسهل أبدا أن تنقرض لغة بهذا الحجم في يوم و لا أريد أن أربط بين ظهور الدوت نت و انقراض الفيجوال بيسك 6 لان مبرمج vb.net احتمال كبير انه كان مبرمج vb6 في يوم من الايام.
طبعا انا لا أقول هذا الكلام لأنني مبرمج vb6 و متحيز له لأنني و الحمد لله مبرمج vb.net وc# و الكثير من اللغات الأخري و كل منهم عندي له وظيفة و مجال يتفوق فيه.
البعض يقول و لكن بظهور الدوت نت قل علي ال vb6 يا رحمن يا رحيم .
أخي أنا لن أعلمك الفيجوال بيسك ففط و لكنني سوف أعلمك كيف تبرمج من منظور الفيجوال بيسك المهم هنا هو أن تتعلم كيف تبرمج و أن أضع لك أساس في ال vb6 سوف يعطيك نقطة تفوق غالية علي من بدأ ال vb.net بدون أن يكون لديه أدني فكرة عن ال VISUAL BASIC .
بالاضافة الي ذلك لم أسمع حتي الان عن شركة استغنت عن مبرمجيVb6 لديها و رغم ذلك أقول لك ادرس vb.net بكل قوة فهو المستقبل.
فيجوال بيسك 6 يتميز بالسلاسة و السهولة و الانتاجية الغزيرة فهو الأكثر انتاحية بين أقرانه من اللغات المرئية عالية المستوي.
و كشخص فكرته عن البرمجة بسيطة بدايتك مع الفيجوال بيسك 6 سوف تكون انطلاقة قوية لك ليس في فيجوال بيسك فقط و انما في جميع اللغات التي سوف تدرسها بعد ذلك ان شاء الله.
لماذا أقدم هذه الدورة؟--------------------------
(1) يقول الرسول الكريم صلي الله عليه و علي اله و أصحابه و أتباعه و سلم
<اذا مات ابن ادم انقطع عمله الا من ثلاث، صدقة جارية أو علم ينتفع به أو ولد صالح يدعوا له>
صدق الرسول الكريم و ما ينطق عن الهوي
(2) ربما يدخلني الله الجنة بعمل كهذا لا أرجوا به سوي وجه الله
(3) أتمني أن نتفوق علي الغرب و لابد لنا من صحوة
(4) بعملي هذا أيضا أذاكر معكم و أتمرن و أدرب نفسي و فرصة لطرح الأفكار الجديدة فهذه الدورة تنتظر منك أن تشارك و تعدل علي الكاتب و تقول له ربما كان هذا الكود أفضل فلست من مؤيدي النظرية المتخلفة و الغبية التي تقول ان التلميذ لا يمكن ان يتفوق علي الأستاذ ( يمكنه و نصhttp://www.arabteam2000-forum.com/style_emoticons/default/teeth_smile.gif
أهدي هذا العمل للشباب العربي و المسلم و اليكم يا شباب ARAB TEAM 2000
ما الذي تحتاج اليه لكي تبدأ دورة الفيجوال بيسك؟---------------------------------------------------------------------
(1) عقل علي استعداد للتفكير و العمل.
(2) جهاز كمبيوتر مثبت عليه vb6 و يستحسن أن يكون Enterprise Eidition
(3) فولدر فارغ لكي تجمع به الدروس و البرامج.
(4) برنامج Microsoft Access أي اصدار.
وقبل أن نبدأ الدورة أتمني من الله أن يكون هذا العمل خالصا لوجه الكريم و أن يدعوا لي كل من رأي أنه استفاد من هذه الدورة و السلام عليكم و رحمة الله و بركاته
أخوكم و زميلكم زولديج:icon_lol:الحمد لله ان الناس بدأت تتفاعل و يارب ان شاء الله الشرح يستمر سهل الي النهاية، البرمجة غاية في السهولة كل ما تحتاج اليه هو ترتيب أفكارك و أعتقد أن أي منكم يقدر علي ذلك، أنت أفضل من المبرمج الهندي و الاسرائيلي و اللذان استحوذا علي نصيب كبير من صناعة البرمجيات فلم تركت لهم هذه الفرصة؟ .. و لم تترك لهم هذه الفرصة الان ، لابد لنا من السبق و انا معكم للنهاية ان شاء الله
للمرة الثانية أرجوا من الاخوة المشرفين الأعزاء عبد الله فتحي و الطيب و بروف مساعدتي في مشكلة الصور و تحميل الملفات، لأن الدروس هكذا سوف تتوقف، أو لو أن أي من الأعضاء لديه و لومساحة استضافة و لو 30 ميجا يجزيه الله كل الخير و الان نكمل الدرس.
الان سوف أكلمك عن موضوع لذيذ و سهل جدا و هو البناء الهيكلي للبرنامج
كلامي هنا ينطبق علي كل لغات البرمجة ، يعتقد البعض ان البرنامج مجرد عمليات تكويد فقط و لكن الحقيقة غير ذلك تماما فالبرمجة تحتوي عدة مراحل متكاملة و مرتبة يمكن أن نجملها في كلمة PRACTICE و التي يمثل كل حرف منها مرحلة معينة تعالوا بنا نأخذ جولة سريعة بهذه المراحل
(1) تحديد الهدف الأساسي من اعداد البرنامج (Pose)
__________________________________
• قبل أن نكتب أكواد و أوامر البرنامج يجب أولا أن نعرف ما المفروض أن يقوم به هذا البرنامج و هذا شيء طبيعي جدا الا اذا كنت تري شيء اخر.
• يجب معرفة ما هي المشكلة أو المشاكل التي علي البرنامج حلها ( ما الذي يتوقع من البرنامج كمخرجات أو معالجات و ما هي احتياجات العميل لأن احتياجاته هي الأهم و ليس افتكاساتك أنت)
(2) تحليل متطلبات البرنامج ( Resolve)
__________________________
بعد تحديد الهدف الأساسي من البرنامج يجب أن نحدد الوظائف التي يجب القيام بها من أجل حل المشكلة أي تعريف المتطلبات requirements definition حيث ينبغي وضع تصور كامل لهذه المتطلبات يعني طبعا مش ممكن ان انا أبدأ في التصميم من غير ما أعرف ما هو المطلوب مني بالضبط عمله و سوف نأخذ مثال جميل
مثال----
لو جائني عميل و طلب مني عمل برنامج لشركته سأسأله و ماذا تريد من البرنامج أن يفعله لو قال لك مثلا أريده أن يقوم بعمل كشوف مرتبات الموظفين و مراقبة المخزون و حفظ بيانات العملاء فهذه هي وظائف برنامجك المطلوب منك برمجتها و في حالتنا هذه فان الوظائف الثلاثة السابقة هي الوظائف الرئيسية التي يمكن بعد ذلك تقسيم كل منها لوظائف فرعية و هو ما يقودنا الي النقطة الثالثة
(3) تقسيم البرنامج الي أجزاء (Allocate)
___________________________
بعد أن أعددنا المهام و الوظائف التي يجب علي البرنامج الوفاء بها يجب ان نقسم هذه الوظائف الي مقاطع برمجية يؤدي كل مقطع منها مهمة محددة هذه المهام في مجموعها تؤدي الوظيفة ... فهمت حاجة؟
يعني لو عاوزين ندفع مرتبات الموظفين هذا الشهر نعمل ايه
أولا نكتب مقطع برمجي يعد الموظفين و نشوف كل موظف حسابه كام
ثانيا نكتب مقطع برمجي يضيف مرتب الشهر الي حساب الموظف
ثالثا نكتب مقطع برمجي يخصم الضرائب و التأمينات و الخصومات
أظن المفهوم الان أسهل
(4)تحديد خطوات المعالجة (Consider)
__________________________
الان أصبح البرنامج مجموعة من البلوكات البرمجية مهم جدا جدا قبل أن تكتب الكود أن تشرح لنفسك أولا م الذي يجب علي البرنامج أن يفعله ثم تترجم هذا الكلام الي أكواد و هو ما سيكفل لك تنفيذ أفضل و أحسن طبعا لن أتطرق الي تفصيل الخوارزميات و قياس زمن الخوارزميات و السرعة مقابل الذاكرة لأنك لازلت مبتديء و أغلب الظن أنك شاب و لا أريدك أن تكره الدنيا من الان (أمزح فقط الموضوع سهل جدا والله)
و كمثال للخوارزمية
لو الطالب حصل علي أكثر من عشر درجات يزيد عدد الناجحين بمقدار واحد
أو بالانجليزية
CODEIf score ≥ 10 then
Add one to the succeded students' number
End if
اذا كان المقطع البرمجي كبير يستحسن تقسيمه الي مقاطع أصغر
(5) اختبار الأكواد و البرنامج بوجه عام (Test)
______________________________
اختبار البرنامج للتأكد من أنه يعمل بشكل صحيح البعض يقول أنه من الأفضل أن نقوم بعمل حسابات البرنامج يدويا و تشغيل نفس البيانات و نري ان كانت متطابقة أم لا، أو أن تتم هذه العملية علي برامج أخري تؤدي نفس الوظيف و مقارنة النتائج
عموما من الأفضل اختبار كل بلوك علي حدة للتأكد من أن كل مهمة يتم تأديتها بشكل سليم
(6) احداث تكامل بين عناصر البرنامج (Integrate)
_________________________________
العمل علي ربط الأجزاء و التأكد من ارتباط العمليات و الوظائف بالمهام بشكل صحيح و تشمل هذه المرحلة أيضا الفحص و التنقيح Debugging
(7) التأكد من ان البرنامج يحقق الغرض من تصميمه (Correlate)
____________________________________________
وفي هذه المرحلة نقوم بعمل اختبار الدقة أو ما يسمونه باختبار الثبات لنعرف اذا كان البرنامج يحقق الغرض الأساسي منه مع استخدام عدد من الأمثلة
(8) انهاء البرنامج و حفظه (End)
______________________
حفظ البرنامج باخر تعديلاته وكتابة الملاحظات التي قابلتك أثناء اعداد البرنامج و تدوين كل الخطوات و بهذا يكون لديك مستند كامل تستطيع العودة اليه عند الرغبة في التعديل و التطوير.
بسم الله
- طيب قبل ما تتكلم يعني ايه أصلا خريطة تدفق دي اللي بتتكلم عنها؟
- حقولك فاكر البرنامج اللي قولتلك انه عبارة عن عدة خطوات مرتبة تحت بعضها
- نعم البرنامج هو مجموعة من الاوامر المرتبة لتنفيذ ..... ها نسيت .. لأ لتنفيذ مهمة معينة
- طيب فاكر الخوارزمية عبارة عن ايه؟
- اه طبعا الخوارزمية هي توضيح لما سيفعله البرنامج في شكل خطوات مسلسلة و مرتبة ثم نحول هذه الخطوات المكتوبة بلغة عادية الي أكواد بلغة الكمبيوتر، بس ايه علاقة ده بخرائط التدفق ؟
تسألني و العصبية علي وجهك واضحة
أرد بهدوء قاتل يتمتع به مبرمجوا الجيل الرابع
- خريطة التدفق هي نفسها الخوارزمية لكن مرسومة لأجل أن تكون أوضح أكثر
- برضه مش فاهم
- يعني مش لما انت بتذاكر حاجة بتلاقي بجانبها أشكال توضيحية أهو خرائط التدفق أشكال توضيحية للخوارزميات
- الله دي سهلة
- لأ و لسه لما نطبق عملي سوف تصدم بالسهولة المفرطة
- هو البرمجة كلها كده سهلة و لا ايه؟
- ان شاء الله
تعالي نقرب أكثر من خرائط التدفق... يوجد أنماط مختلفة لتمثيل الخوارزميات عن طريق خرائط التدفق و سوف نتناول منهم 4 تعالي نتابع كل واحدة منهم بايجاز
(1) المنطق التسلسلي Sequence
__________________________
و يشير هذا المنطق الي التتابع الذي يتم به تنفيذ العمليات
حيث يتم تنفيذ العمليات حسب ترتيبها من أعلي الي أسفل و يعد الترتيب مهما أثناء التنفيذ بمعني أنه لا يمكن أن تسبق خطوة أخري
- مش فاهم و عاوز مثال
- يا سلام انت تأمر و تتأمر
لنفرض أننا نريد أن نقوم ينسخ ملف و نريد أن نرسم خريطة التدفق لهذا البريمج الصغير
أولا نحول البرنامج الي خوارزمية ( مش لازم تكتبها بالانجليزي اكتبها بالعربي عادي أنا شخصيا أفعل ذلك و أعتز بذلك لأن مخترع هذه الطريقة العظيمة في التفكير – الطريقة العلمية – و التي يدعي الغرب أنهم مبتكروها هو عالم عربي شهير ، الخوارزمي رحمه الله)
ماشي تعالي نفكر انا و انت عشان ننسخ ملف بالعقل لازم نعمل ايه؟
(1) نشوف حجم الملف و نشوف المساحة الفارغة في المكان المراد النسخ اليه حتي نتأكد من امكانية النسخ و سوف نسمي هذه العملية {A}
(2) نقوم بنسخ الملف من مكانه الحالي الي المكان الجديد، و سوف نسمي هذه العملية {B}
طيب أرسم الخريطة ازاي؟
هي قمة في السهولة، نرسمها كالاتي:
http://www.palintefada.com/upload/pic/sequence%20a.JPG
طبعا ممكن واحد يستظرف و يقول طيب الملف اتنسخ و خلاص فين المخرجات بقه، حغيظه و أقوله رسالة أد كده بتقول Mission Accomplished
ملحوظة: لا تسمح لأحد من المعقدين نفسيا أن يعقدك من البرمجة و العلم، هاهي خرائط التدفق التي كان يعتبرها البعض سر عسكري مقصور علي كبار المبرمجين و كانوا يعقدونك بها، أظنك الان اكتشفت كم هي سهلة، روح بقي و قوله لو كنت تعرف أكثر من الكلام كنت عملت
(2) المنطق الاختياري Selection
______________________
و ينقسم هذا النوع الي نوعين فرعيين :
* النوع الأول: البديل المفرد (Single Alternative)
=================================
و فيه اذا تحقق شرط معين يتم تنفيذ العملية و اذا لم يتحقق لا يتم تنفيذها
و يستخدم هذا النوع العبارة الشرطية if ….. then
ايه ؟ .. بتقول الجزء الاخير صعب؟
طيب ليه
- انا مش عارف يعني ايه if… then دي
- دي معناها لو حدث شيء اذا ننفذ أمر ما
- ممكن تشرح أكثر؟
- من عينيا
لنفترض مثلا أنك كما تناولنا في المثال السابق تريد أن تقوم بنسخ ملف و يجب عليك أولا أن تعرف ما اذا كانت المساحة في المكان المراد النسخ اليه تسع الملف أم لا
في حال أن المساحة تسع الملف يقوم البرنامج بالنسخ
اما في حال أن المساحة لا تسع الملف يقوم البرنامج بانهاء نفسه و لا يقوم بالنسخ و يعطيك رسالة تفيد بذلك و كأن شيئا لم يكن.
و لنتابع معا كيف يمكن تمثيل تلك الخوارزمية بخريطة تدفق أو flow chart
http://www.palintefada.com/upload/pic/selection_single%20alternative%20a.JPG
أظن الان أنك متشوق لمعرفة النوع الثاني و الذي يعطيك تحكم أكبر في اتخاذ القرارات
* النوع الثاني : البديل المزدوج Double Alternative
=================================
في هذا النوع يكون عندنا شرط اذا تحقق يتم تنفيذ عملية و اذا لم يتحقق يتم تنفيذ عملية أخري
مثال :
===
في المثال السابق لو أننا عندنا نفس الملف و نريد نسخه و أثناء تقييم الشرط الخاص بالتأكد من وجود مساحة كافية لنسخ الملف، نقوم مثلا بالغاء ملفات غير ضرورية لكي تتسع المساحة للملف الحالي.
و هذه بالضبط المنطق الذي يعمل عليه البديل المزدوج فهو يعتمد علي شرط، اذا تحقق هذا الشرط يتم تنفيذ عملية ما بعينها و اذا لم يتحقق يتم تنفيذ عملية مختلفة تماما
و يستخدم هذا النوع العبارة الشرطية if … then…. Else
بمعني
لو = if ----------< تحقق الشرط
• افعل شيء ما
لو لم يتحقق الشرط = else
افعل شيء اخر
اذا فهذا النوع يسمح للبرنامج باتخاذ قرارات و المفاضلة بين اختيارات أو أكثر من بديل و هذا مهم جدا لأن فكرة البرمجة قائمة علي ذلك في كثير من الحالات و من الصعب جدا أن يخلوا برنامج من هذه الصيغ الهامة ان لم يكن مستحيلا
و لادراكنا أهمية ذلك تعالي بنا نري كيف نرسم خريطة التدفق هذه
http://www.palintefada.com/upload/pic/selective_double%20alternative%20a.JPG
الان خذ قسطا من الراحة و سوف أنتظر تعليقاتك علي الدرس الأخير مع ملاحظة أن البقية اتية و ان شاء الله نبدأ في العملي لذا قم بتنصيب ( set up ) الفيجوال بيسك الاصدار السادس من الان، و تذكر .... البرمجة فكرة
بسم الله الرحمن الرحيم
عادة عندما تبرمج باحترلف سوف تجد أن الكود الذي تعمل عليه ينقسم لجزئين، جزء نمطي أو standard و هو يكون شبه مكرر
مثلا في قواعد البيانات عندما تعمل بمكتبة ال DAO سوف تجد أن الكود الخاص به تقريبا متشابه في جميع البرامج
CODE
dim db as database
dim rs as recordset
و بالتالي فمثل هذا الكود لا تحتاج له خريطة تدفق تماما
و الجزء الاخر يكون به بعض الابتكار هنا نحتاج الخوارزمية للتسهيل و التبسيط في كتابة الكود و الوصول الي أفضل النتائج الممكنة، و نستخدم خريطة التدفق لتبسيط الخوارزمية نفسها و تسهيلها و يستخدم هذا الأسلوب في المشروعات المتوسطة و الكبيرة المعقدة خاصة اذا كان من المتوقع أن يقوم بتطوير و صيانة البرنامج أفراد غير الذين كتبوا البرنامج أو بعض منهم.
و لكي أكون صريح معك أنت لا تستخدم خرائط التدفق و الخوارزميات كثيرا في الواقع العملي بالرغم من سهولتها كما رأيت و لكن ربما يرجع ذلك الي خوف البعض منها، أو ظنهم بأنها أشياء صعبة لا يعرفها سوي المحترفين أو كبار المهندسين مع أن الموضوع تافه جدا!!.
علي العموم نصيحتي لك هو أنك عندما تقوم بعمل برنامج فبالطبع ستقابلك أكواد من الممكن أن صعب عليك أو مشكلة يستعصي حلها، عندها تكتب لها خوارزمية و سوف أعطي مثال علي ذلك ان شاء الله في الدرس الأخير من المحاضرة الاولي و ان شاء الله تفهم الموضوع برمته و شكرا لسؤالك
نطلق عليه المنطق التكراري و هو بكل بساطة مجموعة من الأوامر يقوم البرنامج بتكرارها لعدة مرات، و السؤال الذي أراه يعتصر ذهنك الان و لماذا يحتاج البرنامج لتكرار أمر ما عدة مرات؟، و هل هذا التكرار لا نهائي أم مقيد بشرط ما أم نحدد نحن عدد مرات هذا التكرار أم ماذا؟
لنفترض مثلا أنك اشتريت أربع دجاجات، و ليس لديك سوي وعاء واحد لا يسع الا دجاجة واحدة فماذا تفعل لطهيهم ؟
تضع الدجاجة الاولي في الاناء ثم تنتظر حتي تنتهي العملية ( أي تمام الطهي)، ثم تضع الدجاجة الثانية و هكذا حتي يتم طهي الأربع دجاجات.
و لكن الواقع العملي في البرمجة أفضل كثيرا، فمثلا لو أن عندك 1000 طالب (1، 2، 3، ...... ، 1000 ) و تريد أن تضع تقديراتهم في مادة الرياضيات علي حسب الدرجات، تعالي بنا لنري كيف من الممكن أن يكتب هذا الكود
CODE• اقرأ درجة الطالب في المادة
• لو درجة الطالب أقل من 10 يكون التقدير ضعيف
• لو درجة الطالب 10- 13 يكون التقدير مقبول
• لو درجة الطالب 13 – 16 يكون التقدير جيد
• لو درجة الطالب 16- 18 يكون التقدير جيد جدا
• لو درجة الطالب 18 – 20 يكون التقدير امتياز
و لكن مهلا يا للمصيبة .. يوجد 1000 طالب، هل سنكتب هذه الأكواد ألف مرة لكل طالب؟
- لو كان الأمر كذلك لفضل المبرمجون العمل في مقهي
- فما الحل
- الحل كما قلت لك قبلا أن نضع كل الاكواد داخل تكرار بعدد الطلاب
- فكيف يمكن أن يكون الكود في هذه الحالة؟
- بالضبط كالاتي
CODE• كرر من 1 الي 1000
• لو درجة الطالب أقل من 10 يكون التقدير ضعيف
• لو درجة الطالب 10- 13 يكون التقدير مقبول
• لو درجة الطالب 13 – 16 يكون التقدير جيد
• لو درجة الطالب 16- 18 يكون التقدير جيد جدا
• لو درجة الطالب 18 – 20 يكون التقدير امتياز
ارجع لبداية التكرار مرة أخري
أي أنه سوف ينفذ كل هذه الأوامر أولا علي الطالب الأول حتي يفرغ منها، ثم يعود ادراجه الي بداية الأوامر مرة أخري لينفذ التكرار علي الطالب الثاني حتي يصل الي نهاية الأوامر و هكذا حتي الطالب رقم ألف
و بحسبة بسيطة تجد أن التكرار قد جعلك تكتب 7 أسطر من الأوامر بدلا من 5000 (خمسة الاف سطر)، وهذه من الأشياء التي تتضح فيها قوة الكمبيوتر، فالكمبيوتر له ثلاث صفات مميزة للغاية ( السرعة، الدقة و الغباء المحكم) و لكن لا تقلق فالمبرمج هو الذي يحدد ما اذا كان الكمبيوتر ذكي أم غبي و ذلك بكون برنامجه ذكيا أم ...
طبعا الان تدرك مدي أهمية منطق التكرار و كيف أنه رئيسي للغاية في أي لغة برمجة، و الجميل في الأمر أن منطق التكرار له أشكال متعددة و أنواع مختلفة مما يتيح لك مرونة تامة في استخدامه و لنري معا ما هي هذه الانواع و كيف يتم الاستفادة من كل نوع.
(1) الشكل الاول: التكرار باستخدام (Do While)--------------------------------------------------------
لنفترض أننا نريد أن ننفذ مجموع من الأوامر في حلقة تكرارية و لكن بشرط معين فطالما أن هذا الشرط متحقق و هو ما نطلق عليه في البرمجة (True) تستمر الحلقة التكرارية و يستمر تكرار تنفيذ الأوامر أما اذا حدث أن هذا الشرط لم يعد متحقق ينتهي التكرار و تتوقف الحلقة التكرارية عن تنفيذ الأوامر.
- لا أفهم وضح أبن أفصح بكسر الباء
- حسنا انظر معي لهذا التركيب
While (تحقق شرط معين) Do A
حيث A عملية ما أو مجموعة أوامر
وتعني--------- بينما الشرط متحقق نفذ A
لو أننا في المثال السابق أردنا التطبيق علي درجات الالف طالب و حساب تقديرات كل منهم كيف نفعل ذلك باستخدام Do While ؟
سنفعل ذلك كالاتي:
___________
CODE• طالما أن عدد الطلاب أقل من أو يساوي ألف نفذ
• لو درجة الطالب أقل من 10 يكون التقدير ضعيف
• لو درجة الطالب 10- 13 يكون التقدير مقبول
• لو درجة الطالب 13 – 16 يكون التقدير جيد
• لو درجة الطالب 16- 18 يكون التقدير جيد جدا
• لو درجة الطالب 18 – 20 يكون التقدير امتياز
ارجع لبداية التكرار مرة أخرة
أو كالاتي
CODEDO While S <= 1000
الاوامر
Loop
حيث S هو العداد الذي يستخدمه التكرار لمعرفة موقعه الان، أي هل هو الان ينفذ الأوامر الخاصة بالطالب الثالث أم الرابع ... حتي تتساوي ال S مع الشرط و هو ال 1000 فينتهي التكرار و ينتهي عمل الحلقة التكرارية
و يمكن تمثيل ذلك بخريطة التدفق السهلة و البسيطة الاتية:
http://www.palintefada.com/upload/pic/loops_do..while.JPG
2) الشكل الثاني: التكرار باستخدام (Do Until)------------------------------------------------
و هو عكس النوع السابق، حيث أن التكرار يظل يعمل طالما أن الشرط غير متحقق، حتي until اذا تحقق الشرط ينتهي التكرار
مثال----
طالما ان تانك السيارة غير مملوء while ------
املاْه بالبنزين، حتي until اذا امتليء، توقف عن تموين العربية و ... و روح حاسب علي البنزين حالا
و تركيبها يكون كالاتي:
CODEDo (A) Until
(تحقق الشرط)
لو أننا في المثال السابق أردنا التطبيق علي درجات الالف طالب و حساب تقديرات كل منهم كيف نفعل ذلك باستخدام Do Until ؟
سنفعل ذلك كالاتي:
___________
CODE• نفذ حتي يصبح عدد الطلاب 1000
• لو درجة الطالب أقل من 10 يكون التقدير ضعيف
• لو درجة الطالب 10- 13 يكون التقدير مقبول
• لو درجة الطالب 13 – 16 يكون التقدير جيد
• لو درجة الطالب 16- 18 يكون التقدير جيد جدا
• لو درجة الطالب 18 – 20 يكون التقدير امتياز
ارجع لبداية التكرار مرة أخرة
أو كالاتي
CODEDO Until S <=1000
الأوامر
Loop
حيث S هو العداد الذي يستخدمه التكرار لمعرفة موقعه الان، أي هل هو الان ينفذ الأوامر الخاصة بالطالب الثالث أم الرابع ... حتي تتساوي ال S مع الشرط و هو ال 1000 فينتهي التكرار و ينتهي عمل الحلقة التكرارية
و يمكن تمثيل هذا الشكل من خرائط التدفق كالاتي:
http://www.palintefada.com/upload/pic/loops_do..until.JPG
3) الشكل الثالث و الأخير: التكرار باستخدام (For … Next)----------------------------------------------------------------
و هو أسهل و أبسط من المنطقين السابقين، حيث أنك و بكل بساطة الشخص الوحيد المسموح له بتحديد التكرار أي بمعني أصح أنت الذي سوف يحدد كم مرة من المفروض فيها أن يتم تكرار أمر ما أو عدة أوامر.
و تركيبها كالاتي:
CODEFor I = Y to Z
أوامر
Next I
و لا تخف من تركيبها الذي قد تظن أنه صعب و سوف أشرحه لك بالتفصيل ان شاء الله
أولا FOR I تعني أن I هي العداد الذي سوف يعد مرات التكرار لمعرف موقع الحلقة التكرارية من التكرار، أي هل البرنامج الان ينفذ التكرار الأول أم الثاني أم الثالث أم ماذا.
Y هي نقطة البداية للتكرار قد تكون صفر أو واحد أو 100 حتي حسب المبرمج و حس البرنامج
Z هي نقطة نهاية التكرار و هي النقطة التي يتوقف عندها البرنامج عن تنفيذ التكرار
Next I جزء من التركيب و هي تستدعي التكرار مرة أخري طالما لم نصل الي نقطة النهاية.
فمثلا لو قلنا
CODEFor I = 1 To 10
Print "ahmed"
Next I
فهذا معناه أننا نريد من البرنامج أن يبدأ من النقطة 1 ويظل يطبع أحمد حتي يصل الي النقطة 10 ، أي أنه سوف يفعل ذلك 10 مرات.
مثال----
بفرض أنك تريد طباعة 10 ورقات عليها اسمك ماذا سوف تفعل؟
سوف نقول للبرنامج
CODE• كرر الاتي 10 مرات فقط
• اطبع ورقة عليها اسمي
• ارجع لبداية التكرار مرة أخري
و في كل مرة عند بداية البرنامج يرجع مرة أخري للعداد I و يسأله هل قيمتك أصبحت مساوية لقيمة Z أي 10؟
فاذا كانت مساوية للعشرة يوقف التكرار ، و الا يعيد التكرار مرة أخري.
أتمني أن يكون الشكل الثالث من أشكال التكرار بسيط و للزيادة في السهولة نرسم خريطة التدفق الخاصة به.
http://www.palintefada.com/upload/pic/loops_for..next1.JPG
4) النوع الرابع و الأخير: البرمجيات الفرعية (Sup Programming)-------------------------------------------------------------------------
البرمجيات الفرعية هي عبارة عن تجميع لأجزاء من البرنامج مع بعضها و كل جزء يمثل مجموعة من التعليمات، و يشكل برنامجا فرعيا مستقلا يتم الرجوع اليه عند الحاجة لأداء مهمة معينة، و يكون لكل جزء من هذه الأجزاء اسم مميز، و يكون تركيب هذه النوع كالاتي:
GOSUB …. Return
و أنا لن أرسم لك الخريطة الخاصة بذلك النوع لأننا سوف نتناولها بالتفصيل الممل، و لكن كل ما يهمني أن تعرفه أن البرنامج مكون من عدة أجزاء أو بلوكات من الأكواد كل بلوك يتكون من مجموعة معينة من الأكواد تؤدي وظيفة ما أو مجموعة من الوظائف، بتجميع هذه الأجزاء يتكون لنا البرنامج، قد يستدعي البرنامج أثناء عمله بعض من هذه الأجزاء علي الأقل أو كل الأجزاء حسب البرنامج و الظروف و الشروط التي يعمل عليها
انتهينا بحمد الله من المقدمة و الجزء النظري، الان لديك أساس قوي جدا عن البرمجة و مفاهيمها و أنت أكثر من جاهز للبدأ في الفيجوال بيسك 6، أقصد لكي تكون مبرمج فيجوال بيسك 6 ... و يا له من لقب
استعد
أهلا بكم في عالم الفيجوال بيسك، أكثر لغات البرمجة امتاعا و تشويقا و سهولة، هذه اللغة من الممكن أن تجعل منك أسطورة لو أتقنتها و أعطيتها من مجهودك مثل بروس ماكينلي، أما لو اعتمدت علي كلام الاخرين أن هذه اللغة ضعيفة أو لا تؤدي الي تنفيذ البرامج بالمستوي المطلوب، فأنت لن تجني شيء سوي المهاترات و الخيبة و الندامة ذلك أنك ستضيع وقتك و تلهي نفسك عن استخدام لغة برمجة تعد من أفضل و أسرع و أسهل لغات البرمجة في اعداد تطبيقات ذات كفاءة عالية، كما لا أخفيك سرا أنك سوف تصبح من أكثر المطلوبين في سوق العمل البرمجي فمبرمجي الفيجوال بيسك خارج المنافسة في هذا المضمار.
الان دعنا نتناول بالتفصيل شاشات و نوافذ الفيجوال بيسك الاصدار السادس و الذي يعمل تحت بيئة ال Visual Studio 6 الذي يضم مجموعة من أقوي اللغات البرمجية و منها الحبيبة VB6
بعد أن تقوم بتركيب الفيجوال بيسك الاصدار السادس و فتحه لأول مرة سوف تري مربع الحوار New Project أو وشروع جديد كما في هذا الشكل
http://www.palintefada.com/upload/pic/first_vb.JPG
وظيفة هذه النافذة فتح مشروع جديد و لكن مهلا، الفيجوال بيسك لغة غنية و كبيرة و متسعة، تحتوي علي العديد من أنواع المشاريع، و التي تمكنك من عمل مختلف أنواع المشاريع ابتداء من المشاريع القياسية Standard EXE انتهاء بمشاريع ال Active X و ال Active DLL و هو ما سوف نناقشه فيما بعد لا تقلق.
و لذلك عند تناولنا لتشرح هذه النافذة سنجد أنها تتكون من ثلاثة أجزاء رئيسية و هي New & Existing & Recent
كما في 1 & 2 & 3
أولا : New أو جديد
و كما هو واضح من اسمها أنها تقوم بفتح مشروع جديد و ذلك عن طريق الضغط علي أي نوع من أنواع المشاريع نقرتين متتاليتين Double Click أو عن طريق النقر علي أي من هذه الأنواع نقرة واحدة لتحديدها ثم الضغط علي Open أو حتي الضغط علي الزر Enter
و سوف تجد أن أنواع المشاريع في نافذة مشروع جديد محصورة في الاتي:
• Standard EXE
• ActiveX EXE
• ActiveX DLL
• VB Application Wizard
• Data Project
• IIS Application
• Add-in
• ActiveX ******** DLL
• ActiveX ******** EXE
• DHTML Application
و هي كلها أسماء لأنواع متعددة من المشاريع لا تشغ بالك بها الان، مع العلم أننا سوف نعمل في الفترة الحالية مع ال Standard EXE و هو النوع الذي يتم به تصميم معظم المشاريع التي تراها أمامك في كل مكان مثل برامج قواعد البيانات و الملتيميديا و الألعاب ... الخ
أما بقية الأنواع فهي لعمل أدوات تستخدم في لغة البرمجة نفسها أو لعمل مكتبات ربط ديناميكي Dynamic Link Library أو مربعات حوار لتسهيل انشاء أنواع من البرامج مثل قواعد البيانات أو برامج خاصة بالانترنت
أما Existing فتستخدم لفتح مشروعات موجودة بالفعل و تفتح علي المجلد الافتراضي VB98 طالما أنك لم تغير هذا، المشروعات الموجودة قد تكون مشروعات عملت عليها سابقا أو عينات من المشاريع المرفقة مع VB6 التي تمكنك من التدرب عليها بفتح هذه المشاريع و قراءة أكوادها (طبعا بعد أن تصبح مبرمج يمكن الاعتماد عليه)
بالنسبة ل Recent فهي تعرض لك المشاريع الحديثة التي تعاملت معها مؤخرا و هي ميزة جيدة اذا نسيت أين وضعت مشروعك الأخير .
اذا قمت بتفعيل الخيار Don't Show This Dialog In The Future ( الجزء رقم 4)
فان هذه النافذة بالكامل لن تظهر ثانية و سيفتح لك ال VB علي المشاريع القياسية Standard EXE
-------------------------------------------------------------------------------------------------------
بعد أن نختار Standard EXE و اتفقنا انه هو النوع من المشاريع الذي سوف نعمل معه الان نجد بيئة التطوير المتكاملة Integrated Development Environment و قد سموها بهذا الاسم لأنها بالفعل متكاملة فهي تعطيك كل الأدوات اللازمة لتطوير مشاريعك بأقل وقت و جهد ممكن.
و هذا هو المكان الذي سوف تقوم فيه بكل عملك
http://www.palintefada.com/upload/pic/IDE.JPG
حيث تجد أن الفيجوال بيسك قد فتح لك ما يسمي بالنموذج أو الفورم Form و التي تكون هي أول نافذة لبرنامجك، طبعا يمكنك اضافة عشرات النماذج أو ال Forms فيما بعد و لكن تسهيلا عليك يفتح لك الفيجوال بيسك النموذج و لكن...... ماذا أعني بكلمة النموذج؟
النموذج تمثله النافذة الصغيرة المكتوب عليها Form! و المحاطة بهذا الفراغ الأبيض من حولها، هذه النافذة الصغيرة هي اللبنة الأولي و الأساسية لبرنامجك و هي التي تضع عليها كل الأدوات التي تستخدمها لبناء البرنامج مثل الأزرار و صندوق النصوص و كل الأدوات الأخري.
بمعني أنه و في الأغلب الأعم لن تخلو مشروعاتك من هذا ال Form !!.
هذا الفراغ الأبيض أيضا يسمي مصمم النوافذ أو Form Designer و هو المكان الذي يقبع به الفورم و تقوم فيه بتصميم واجهة المستخدم أو ما يسمي بال User Interface و هي كما قلنا الأزرار و صناديق النصوص و كل الكائنات الأخري التي تظهر امام المستخدم.
أعلم أنه ربما تملكك الملل و لكني أستطيع أن أقسم لك أنك أبدا و أقولها ثانية أبدا لن ترتاح في البرمجة ما لم تتعلم كيفية التعامل مع بيئة التطوير باحترافية، و ان كانت رأسك قاعدة بيانات لأكواد الفيجوال بيسك.
و لنتناول كل جزء من أجزاء ال IDE أو بيئة التطوير المتكاملة بشيء من التفصيل.
(1) شريط القوائم Menu Bar------------------------------
يحتوي شريط القوائم علي العديد من القوائم أولها قائمة File و التي يمكن منها فتح مشروع جديد أو اضافة مشروع الي مشروعك الحالي أو حتي بدء مشروع جديد، يمكنك أيضا حفظ المشروع أو طباعته أو ترجمته الي لغة الألة، و يمكنك أيضا من خلالها أن تجد المشاريع التي فتحتها مؤخرا تماما ك Recent في نافذة البداية.
ملحوظة : الترجمة للغة الالة تعني تحويل المشروع من أكواد مكتوبة الي ملف يمكن للالة قرائته و التفاهم معه وهو ما نطلق عليه التحويل من High Level Language الي Machine Language .
بعد ذلك نجد قائمة Edit
و التي توفر لك خيارات النسخ و القص و اللزق و الحذف و كذلك امكانية البحث و الاستبدال و هذا سوف يوفر عليك الكثير عند التعامل مع نافذة التكويد الرائعة و المليئة بالمزايا المتعددة و التي لن تجدها الا في ال VB
ثم تأتي قائمة View و التي يمكنك من خلالها عرض أي نافذة من نوافذ ال VB و التي تحتاجها لاتمام عملك مثل Tool Box & Project Explorer & Form Layout Window & Properties Window .. Etc.
وهو ما سوف نتناوله بالتفصيل.
تأتي بعد ذلك قائمة Format و التي ستساعدك في انشاء واجهة البرنامج المرئية في شكل رائع و بمنتهي الدقة حيث تستخدم أوامرها في ترتيب و تنظيم وضع الأدوات علي الواجهة بشكل دقيق جدا و منظم و سوف تري بالفعل كم هي مفيدة، ومن أوامرها الأمر Lock Controls و الذي يحافظ لك علي ترتيب الأدوات بحيث لا تتحرك من مكانها الا اذا أردت أنت ذلك.
ثم تأتي بعد ذلك قائمة Debug و التي تستخدم في فحص الأخطاء و تساعدك في اكتشاف مواطن الخطأ.
ثم قائمة Run و التي تمكنك من تشغيل البرنامج و تجربته حتي قبل الانتهاء منه او للتأكد من أن وظيفة ما تعمل و بدون أن تحتاج لترجمته اطلاقا و هي من أروع المزايا في الفيجوال بيسك الساحر.
بعد ذلك نجد قائمة Tools و التي تمكنك من تخصيص بيئة التطوير و التحكم في خياراتها كما يحلو لك كما نجد أنها تمكنك من اضافة اجراء جديد و كذلك عمل قوائم ك File & Edit & View … Etc و التي تجدها في برامج الويندوز و الأوفيس.
Add _ Ins تساعدك في عملك في تصميم قواعد البيانات عن طريق الأمر Visual Data Manager
و لكننا سوف نستخدم طرقا أكثر احترافية و تقنية و أفضل في توفير الوقت و الجهد.
نجد أن الامر الاخر الذي قد يثير اهتمامنا في نفس القائمة هو الأمر Add In Manager و الذي يسمح لك باضافة خدمات عديدة في بيئة التطوير مثل ال API Viewer .
قائمة Window أنا طبعا أعرف أنك في غني عن ذكر أنها تتحكم في ترتيب النوافذ داخل الفيجوال بيسك و الا فانك تحتاج الي كورس سريع في الويندوز.
قائمة Help كما هو ظاهر من اسمها تساعدك في عملك فلو أنك قد قمت بتثبيت MSDN و التي هي مخزن ضخم من ملفات المساعدة و المقالات و المعلومات عن كل ما يتعلق بالفيجوال بيسك كل ما تحتاجه هو ضغط F1 حتي تظهر لك هذه الأداة السحرية، وسوف تحتاجها كثيرا عندما تعمل باحتراف.
الي هنا تنتهي هذه المحاضرة و المحاضرة القادمة ان شاء الله نستكمل ال IDE و تكتب أول برنامج لك بالفيجوال بيسكمجموعة كبيرة من الأكواد موجودة في ملف واحد يطلق عليه مكتبة و كل مكتبة تضم عدد واحد أو أكثر من ال classes و هي تجميع للأوامر التي تندرج تحت وظيفة أو كائن ما و سوف تعرف الكثير عنها بعد ذلك بالتفصيل، المهم أنه بدلا من كتابة هذا الأمر بهذه الصورة
CODE
private sub command1_click()
dim i as integer
dim x as string
x = inputbox("enter the statement that you want to print")
if x = "" then exit sub
for i = 1 to y
print x
next i
end sub
يمكنك كتابتها كالتالي
CODE
public sub print(y as integer, z as string)
x = inputbox("enter the statement that you want to print")
if x = "" then exit sub
for i = 1 to y
print x
next i
end sub
وعندما تحب استخدام الأمر تكتب فقط
CODE
print (5, "hello")
في أي اجراء و الواضح أنك بذلك استفدت من ثلاث جهات
أولا : استطعت كتابة أي جملة لأي عدد من المرات و ليس لعدد محدد
ثانيا: وفرت علي نفسك الجهد و التعب و التعقيد في كتابة الأكواد خاصة الكبيرة و المعقدة
ثالثا: تستطيع دائما تحديث برامجك باضافة الاصدارات الجديدة من هذه المكتبات
أما لو أصبحت مبرمج متمكن يمكنك بيع المكتبات القوية لأي من المبرمجين أو الشركات
أما برمجة ال ocx فهي برمجة الادوات مثلا تعمل شيء زي ال textbox أو ال toolbar مثل تلك الموجودة في الفيجوال بيسك
و بالنسبة للدروس أنا عارف ان انا طولت عليكم لكن ان شاء الله نصوم نصوم و نفطر علي ..؟
نفطر علي الأذان
الدروس جاية ان شاء الله و كل عام و أنتم بخير بمناسبة الشهر المبارك
كنا وقفنا عند ال menus و شرحناها شرح سريع لكل واحدة و التفصيل اتي في السياق لا تقلقوا
الان نتناول شريط الادوات Tool Bar
و أرجوا الا تخلطوا بين شريط الادوات Tool Bar و بين صندوق الادوات Tool Box لأنهما مختلفان تماما
المهم، .....
شريط الادوات هو نفسه مجموعة مختارة من الاوامر الموجودة في القوائم، حتقولي يعني هو تكرار للأوامر الموجودة ، حقولك اي نعم
- غريبة أوي طب ليه.؟؟
- عشان يسهل عليك الشغل، ما انت متفكرش ان الشغل بعد كده حيكون تكتب أمرين و تعملهم تشغيل مرة و لا مرتين و تقفل الفيجوال و تروح تنام ( ده انت حتنطحن) لما توصل مستوي متوسط أو محترف و بالتالي قد تستخدم بعض الاوامر مئات المرات و هو ما يحتاج وصول مباشر لهذه الاوامر بدلا من ان تفتح القائمة في كل مرة
طيب تعالي كده بالراحة نشوف تشريح شريط الادوات (ToolBar Anatomy)----------------------------------------------------------------------------
http://www.arabteam2000.com/picload/pics_10_05/20_12_05_05_06_31_1135083991tool_bar.JPG
هذه هي كل الاوامر التي أريدك أن تعرفها الان عن شريط الادوات و دعني أوضح لك بعض ما قد يكتنفه الغموض
• اضافة فورم: اي مشروع او برنامج تقوم بتصميمه يتكون من عدة نوافذ هذه النوافذ تكون فارغة تماما و تسمي Form و هي احدي لبنات بناء المشروع في الفيجوال بيسك
• محرر القوائم: لا شك انك رأيت قوائم file & view & edit & help و غيرها في الويندوز و برامجه من قبل، محرر القوائم هذا هو الذي يصنع مثل هذه الأشياء في الفيجوال بيسك و يمكنك استدعائه بضغط CTRL + E
• اوامر القص و اللصق و النسخ تستطيع قص و لصق و نسخ أجزاء من الكود ( الشفرة التي يعمل بها البرنامج) أو حتي الادوات التي توجد علي الفورم مثل ازرار الاوامر و صناديق النصوص يمكنك استخدام اختصارات لوحة المفاتيح CTRL + X أو CTRL + V أو CTRL + C للقص و اللصق و النسخ علي التوالي
• اما البحث فهو يعطيك الامكانية عن البحث عن كود ما او تعديل كود ما او استبدال اجزاء من الكود باجزاء أخري و هو ما سوف تراه أثناء تصميم البرامج و يمكنك استدعائه باستخدام الاختصار CTRL + F و لاحظ ان هذا الامر لن يعمل او يكون نشيطا الا اذا كنت تعمل الان مع نافذة الكود
• مستكشف المشروع هو نافذة ذات تركيب شجري تعرض لك جميع الملفات التي يحتوي عليها المشروع و تمكنك من التعامل معها بسهولة و لمزيد من السهولة يمكنك استدعائها بضغط CTRL + R
• نافذة الخصائص بالبلدي خالص هي التي تحدد سلوك الكائن (معلش أصل انا مغرم بالكائنات) و الكائن بدون تعقيد المعقدين بفتح القاف و المعقدين بكسر القاف و المعقدون ايضا هو اي اداة تستخدمها في المشروع او فئة او او او ...... يعني مثلا زر امر او صندوق نص الخ ...................
• وضع الفورم او form layout window يمكنك من تحديد مكان نافذة برنامجك علي الشاشة بعد ان يعمل ممكن يكون في وسط الشاشة او احد اطرافها كما تحدد انت و لو أنني لا احبذ ذلك من الممكن التحكم في مكان الفورم عن طريق نافذة الخصائص و في حالات معينة ستجد نفسك مجبر علي استخدام الكود (وهو للعلم كود بسيط جدا)
• صندوق الادوات وهو يحتوي علي عشرين أداة أساسية و هي أكثر الادوات شيوعا في برامجك و التي سوف تجد نفسك تستخدمها دائما
يجب أن تحضر نفسك الان لدرس لذيذ وهو صندوق الادوات ToolBox
انطلاقا من مبدأ مشاركة المعرفة المجرد من منافع مادية و شخصية، و الذي ينبع من أن ما تفعله من خير فان الله وحده هو الذي يجزيك عليه أحب أن أفتتح دورة الفيجوال بيسك بعد اذن المشرفين
هذه الدورة لمن؟--------------------
هذه الدورة للأشخاص المبتدئين أو من بدئوا و لا يعرفون كيف يكملون الطريق، أو من لديهم قدر قليل من المعلومات و يتمنوا أن يصبحوا مبرمجين حقييقين.
لماذا فيجوال بيسك 6؟-------------------------
بعضهم يقول أن فيجوال بيسك انقرض (فيجوال بيسك 1 الي 6 ) أي ما قبل الدوت نت، و لكن هذا الكلام ليس صحيح تماما، نادرا ما يحدث أن تنقرض لغة سهلة و قوية خاصة اذا كانت في مثل شعبية الفيجوال بيسك و سوف تصدق كلامي اذا علمت أن عدد مبرمجي الفيجوال بيسك في العالم رقم و أمامه ستة أصفار، ليس بالسهل أبدا أن تنقرض لغة بهذا الحجم في يوم و لا أريد أن أربط بين ظهور الدوت نت و انقراض الفيجوال بيسك 6 لان مبرمج vb.net احتمال كبير انه كان مبرمج vb6 في يوم من الايام.
طبعا انا لا أقول هذا الكلام لأنني مبرمج vb6 و متحيز له لأنني و الحمد لله مبرمج vb.net وc# و الكثير من اللغات الأخري و كل منهم عندي له وظيفة و مجال يتفوق فيه.
البعض يقول و لكن بظهور الدوت نت قل علي ال vb6 يا رحمن يا رحيم .
أخي أنا لن أعلمك الفيجوال بيسك ففط و لكنني سوف أعلمك كيف تبرمج من منظور الفيجوال بيسك المهم هنا هو أن تتعلم كيف تبرمج و أن أضع لك أساس في ال vb6 سوف يعطيك نقطة تفوق غالية علي من بدأ ال vb.net بدون أن يكون لديه أدني فكرة عن ال VISUAL BASIC .
بالاضافة الي ذلك لم أسمع حتي الان عن شركة استغنت عن مبرمجيVb6 لديها و رغم ذلك أقول لك ادرس vb.net بكل قوة فهو المستقبل.
فيجوال بيسك 6 يتميز بالسلاسة و السهولة و الانتاجية الغزيرة فهو الأكثر انتاحية بين أقرانه من اللغات المرئية عالية المستوي.
و كشخص فكرته عن البرمجة بسيطة بدايتك مع الفيجوال بيسك 6 سوف تكون انطلاقة قوية لك ليس في فيجوال بيسك فقط و انما في جميع اللغات التي سوف تدرسها بعد ذلك ان شاء الله.
لماذا أقدم هذه الدورة؟--------------------------
(1) يقول الرسول الكريم صلي الله عليه و علي اله و أصحابه و أتباعه و سلم
<اذا مات ابن ادم انقطع عمله الا من ثلاث، صدقة جارية أو علم ينتفع به أو ولد صالح يدعوا له>
صدق الرسول الكريم و ما ينطق عن الهوي
(2) ربما يدخلني الله الجنة بعمل كهذا لا أرجوا به سوي وجه الله
(3) أتمني أن نتفوق علي الغرب و لابد لنا من صحوة
(4) بعملي هذا أيضا أذاكر معكم و أتمرن و أدرب نفسي و فرصة لطرح الأفكار الجديدة فهذه الدورة تنتظر منك أن تشارك و تعدل علي الكاتب و تقول له ربما كان هذا الكود أفضل فلست من مؤيدي النظرية المتخلفة و الغبية التي تقول ان التلميذ لا يمكن ان يتفوق علي الأستاذ ( يمكنه و نصhttp://www.arabteam2000-forum.com/style_emoticons/default/teeth_smile.gif
أهدي هذا العمل للشباب العربي و المسلم و اليكم يا شباب ARAB TEAM 2000
ما الذي تحتاج اليه لكي تبدأ دورة الفيجوال بيسك؟---------------------------------------------------------------------
(1) عقل علي استعداد للتفكير و العمل.
(2) جهاز كمبيوتر مثبت عليه vb6 و يستحسن أن يكون Enterprise Eidition
(3) فولدر فارغ لكي تجمع به الدروس و البرامج.
(4) برنامج Microsoft Access أي اصدار.
وقبل أن نبدأ الدورة أتمني من الله أن يكون هذا العمل خالصا لوجه الكريم و أن يدعوا لي كل من رأي أنه استفاد من هذه الدورة و السلام عليكم و رحمة الله و بركاته
أخوكم و زميلكم زولديج:icon_lol:الحمد لله ان الناس بدأت تتفاعل و يارب ان شاء الله الشرح يستمر سهل الي النهاية، البرمجة غاية في السهولة كل ما تحتاج اليه هو ترتيب أفكارك و أعتقد أن أي منكم يقدر علي ذلك، أنت أفضل من المبرمج الهندي و الاسرائيلي و اللذان استحوذا علي نصيب كبير من صناعة البرمجيات فلم تركت لهم هذه الفرصة؟ .. و لم تترك لهم هذه الفرصة الان ، لابد لنا من السبق و انا معكم للنهاية ان شاء الله
للمرة الثانية أرجوا من الاخوة المشرفين الأعزاء عبد الله فتحي و الطيب و بروف مساعدتي في مشكلة الصور و تحميل الملفات، لأن الدروس هكذا سوف تتوقف، أو لو أن أي من الأعضاء لديه و لومساحة استضافة و لو 30 ميجا يجزيه الله كل الخير و الان نكمل الدرس.
الان سوف أكلمك عن موضوع لذيذ و سهل جدا و هو البناء الهيكلي للبرنامج
كلامي هنا ينطبق علي كل لغات البرمجة ، يعتقد البعض ان البرنامج مجرد عمليات تكويد فقط و لكن الحقيقة غير ذلك تماما فالبرمجة تحتوي عدة مراحل متكاملة و مرتبة يمكن أن نجملها في كلمة PRACTICE و التي يمثل كل حرف منها مرحلة معينة تعالوا بنا نأخذ جولة سريعة بهذه المراحل
(1) تحديد الهدف الأساسي من اعداد البرنامج (Pose)
__________________________________
• قبل أن نكتب أكواد و أوامر البرنامج يجب أولا أن نعرف ما المفروض أن يقوم به هذا البرنامج و هذا شيء طبيعي جدا الا اذا كنت تري شيء اخر.
• يجب معرفة ما هي المشكلة أو المشاكل التي علي البرنامج حلها ( ما الذي يتوقع من البرنامج كمخرجات أو معالجات و ما هي احتياجات العميل لأن احتياجاته هي الأهم و ليس افتكاساتك أنت)
(2) تحليل متطلبات البرنامج ( Resolve)
__________________________
بعد تحديد الهدف الأساسي من البرنامج يجب أن نحدد الوظائف التي يجب القيام بها من أجل حل المشكلة أي تعريف المتطلبات requirements definition حيث ينبغي وضع تصور كامل لهذه المتطلبات يعني طبعا مش ممكن ان انا أبدأ في التصميم من غير ما أعرف ما هو المطلوب مني بالضبط عمله و سوف نأخذ مثال جميل
مثال----
لو جائني عميل و طلب مني عمل برنامج لشركته سأسأله و ماذا تريد من البرنامج أن يفعله لو قال لك مثلا أريده أن يقوم بعمل كشوف مرتبات الموظفين و مراقبة المخزون و حفظ بيانات العملاء فهذه هي وظائف برنامجك المطلوب منك برمجتها و في حالتنا هذه فان الوظائف الثلاثة السابقة هي الوظائف الرئيسية التي يمكن بعد ذلك تقسيم كل منها لوظائف فرعية و هو ما يقودنا الي النقطة الثالثة
(3) تقسيم البرنامج الي أجزاء (Allocate)
___________________________
بعد أن أعددنا المهام و الوظائف التي يجب علي البرنامج الوفاء بها يجب ان نقسم هذه الوظائف الي مقاطع برمجية يؤدي كل مقطع منها مهمة محددة هذه المهام في مجموعها تؤدي الوظيفة ... فهمت حاجة؟
يعني لو عاوزين ندفع مرتبات الموظفين هذا الشهر نعمل ايه
أولا نكتب مقطع برمجي يعد الموظفين و نشوف كل موظف حسابه كام
ثانيا نكتب مقطع برمجي يضيف مرتب الشهر الي حساب الموظف
ثالثا نكتب مقطع برمجي يخصم الضرائب و التأمينات و الخصومات
أظن المفهوم الان أسهل
(4)تحديد خطوات المعالجة (Consider)
__________________________
الان أصبح البرنامج مجموعة من البلوكات البرمجية مهم جدا جدا قبل أن تكتب الكود أن تشرح لنفسك أولا م الذي يجب علي البرنامج أن يفعله ثم تترجم هذا الكلام الي أكواد و هو ما سيكفل لك تنفيذ أفضل و أحسن طبعا لن أتطرق الي تفصيل الخوارزميات و قياس زمن الخوارزميات و السرعة مقابل الذاكرة لأنك لازلت مبتديء و أغلب الظن أنك شاب و لا أريدك أن تكره الدنيا من الان (أمزح فقط الموضوع سهل جدا والله)
و كمثال للخوارزمية
لو الطالب حصل علي أكثر من عشر درجات يزيد عدد الناجحين بمقدار واحد
أو بالانجليزية
CODEIf score ≥ 10 then
Add one to the succeded students' number
End if
اذا كان المقطع البرمجي كبير يستحسن تقسيمه الي مقاطع أصغر
(5) اختبار الأكواد و البرنامج بوجه عام (Test)
______________________________
اختبار البرنامج للتأكد من أنه يعمل بشكل صحيح البعض يقول أنه من الأفضل أن نقوم بعمل حسابات البرنامج يدويا و تشغيل نفس البيانات و نري ان كانت متطابقة أم لا، أو أن تتم هذه العملية علي برامج أخري تؤدي نفس الوظيف و مقارنة النتائج
عموما من الأفضل اختبار كل بلوك علي حدة للتأكد من أن كل مهمة يتم تأديتها بشكل سليم
(6) احداث تكامل بين عناصر البرنامج (Integrate)
_________________________________
العمل علي ربط الأجزاء و التأكد من ارتباط العمليات و الوظائف بالمهام بشكل صحيح و تشمل هذه المرحلة أيضا الفحص و التنقيح Debugging
(7) التأكد من ان البرنامج يحقق الغرض من تصميمه (Correlate)
____________________________________________
وفي هذه المرحلة نقوم بعمل اختبار الدقة أو ما يسمونه باختبار الثبات لنعرف اذا كان البرنامج يحقق الغرض الأساسي منه مع استخدام عدد من الأمثلة
(8) انهاء البرنامج و حفظه (End)
______________________
حفظ البرنامج باخر تعديلاته وكتابة الملاحظات التي قابلتك أثناء اعداد البرنامج و تدوين كل الخطوات و بهذا يكون لديك مستند كامل تستطيع العودة اليه عند الرغبة في التعديل و التطوير.
بسم الله
- طيب قبل ما تتكلم يعني ايه أصلا خريطة تدفق دي اللي بتتكلم عنها؟
- حقولك فاكر البرنامج اللي قولتلك انه عبارة عن عدة خطوات مرتبة تحت بعضها
- نعم البرنامج هو مجموعة من الاوامر المرتبة لتنفيذ ..... ها نسيت .. لأ لتنفيذ مهمة معينة
- طيب فاكر الخوارزمية عبارة عن ايه؟
- اه طبعا الخوارزمية هي توضيح لما سيفعله البرنامج في شكل خطوات مسلسلة و مرتبة ثم نحول هذه الخطوات المكتوبة بلغة عادية الي أكواد بلغة الكمبيوتر، بس ايه علاقة ده بخرائط التدفق ؟
تسألني و العصبية علي وجهك واضحة
أرد بهدوء قاتل يتمتع به مبرمجوا الجيل الرابع
- خريطة التدفق هي نفسها الخوارزمية لكن مرسومة لأجل أن تكون أوضح أكثر
- برضه مش فاهم
- يعني مش لما انت بتذاكر حاجة بتلاقي بجانبها أشكال توضيحية أهو خرائط التدفق أشكال توضيحية للخوارزميات
- الله دي سهلة
- لأ و لسه لما نطبق عملي سوف تصدم بالسهولة المفرطة
- هو البرمجة كلها كده سهلة و لا ايه؟
- ان شاء الله
تعالي نقرب أكثر من خرائط التدفق... يوجد أنماط مختلفة لتمثيل الخوارزميات عن طريق خرائط التدفق و سوف نتناول منهم 4 تعالي نتابع كل واحدة منهم بايجاز
(1) المنطق التسلسلي Sequence
__________________________
و يشير هذا المنطق الي التتابع الذي يتم به تنفيذ العمليات
حيث يتم تنفيذ العمليات حسب ترتيبها من أعلي الي أسفل و يعد الترتيب مهما أثناء التنفيذ بمعني أنه لا يمكن أن تسبق خطوة أخري
- مش فاهم و عاوز مثال
- يا سلام انت تأمر و تتأمر
لنفرض أننا نريد أن نقوم ينسخ ملف و نريد أن نرسم خريطة التدفق لهذا البريمج الصغير
أولا نحول البرنامج الي خوارزمية ( مش لازم تكتبها بالانجليزي اكتبها بالعربي عادي أنا شخصيا أفعل ذلك و أعتز بذلك لأن مخترع هذه الطريقة العظيمة في التفكير – الطريقة العلمية – و التي يدعي الغرب أنهم مبتكروها هو عالم عربي شهير ، الخوارزمي رحمه الله)
ماشي تعالي نفكر انا و انت عشان ننسخ ملف بالعقل لازم نعمل ايه؟
(1) نشوف حجم الملف و نشوف المساحة الفارغة في المكان المراد النسخ اليه حتي نتأكد من امكانية النسخ و سوف نسمي هذه العملية {A}
(2) نقوم بنسخ الملف من مكانه الحالي الي المكان الجديد، و سوف نسمي هذه العملية {B}
طيب أرسم الخريطة ازاي؟
هي قمة في السهولة، نرسمها كالاتي:
http://www.palintefada.com/upload/pic/sequence%20a.JPG
طبعا ممكن واحد يستظرف و يقول طيب الملف اتنسخ و خلاص فين المخرجات بقه، حغيظه و أقوله رسالة أد كده بتقول Mission Accomplished
ملحوظة: لا تسمح لأحد من المعقدين نفسيا أن يعقدك من البرمجة و العلم، هاهي خرائط التدفق التي كان يعتبرها البعض سر عسكري مقصور علي كبار المبرمجين و كانوا يعقدونك بها، أظنك الان اكتشفت كم هي سهلة، روح بقي و قوله لو كنت تعرف أكثر من الكلام كنت عملت
(2) المنطق الاختياري Selection
______________________
و ينقسم هذا النوع الي نوعين فرعيين :
* النوع الأول: البديل المفرد (Single Alternative)
=================================
و فيه اذا تحقق شرط معين يتم تنفيذ العملية و اذا لم يتحقق لا يتم تنفيذها
و يستخدم هذا النوع العبارة الشرطية if ….. then
ايه ؟ .. بتقول الجزء الاخير صعب؟
طيب ليه
- انا مش عارف يعني ايه if… then دي
- دي معناها لو حدث شيء اذا ننفذ أمر ما
- ممكن تشرح أكثر؟
- من عينيا
لنفترض مثلا أنك كما تناولنا في المثال السابق تريد أن تقوم بنسخ ملف و يجب عليك أولا أن تعرف ما اذا كانت المساحة في المكان المراد النسخ اليه تسع الملف أم لا
في حال أن المساحة تسع الملف يقوم البرنامج بالنسخ
اما في حال أن المساحة لا تسع الملف يقوم البرنامج بانهاء نفسه و لا يقوم بالنسخ و يعطيك رسالة تفيد بذلك و كأن شيئا لم يكن.
و لنتابع معا كيف يمكن تمثيل تلك الخوارزمية بخريطة تدفق أو flow chart
http://www.palintefada.com/upload/pic/selection_single%20alternative%20a.JPG
أظن الان أنك متشوق لمعرفة النوع الثاني و الذي يعطيك تحكم أكبر في اتخاذ القرارات
* النوع الثاني : البديل المزدوج Double Alternative
=================================
في هذا النوع يكون عندنا شرط اذا تحقق يتم تنفيذ عملية و اذا لم يتحقق يتم تنفيذ عملية أخري
مثال :
===
في المثال السابق لو أننا عندنا نفس الملف و نريد نسخه و أثناء تقييم الشرط الخاص بالتأكد من وجود مساحة كافية لنسخ الملف، نقوم مثلا بالغاء ملفات غير ضرورية لكي تتسع المساحة للملف الحالي.
و هذه بالضبط المنطق الذي يعمل عليه البديل المزدوج فهو يعتمد علي شرط، اذا تحقق هذا الشرط يتم تنفيذ عملية ما بعينها و اذا لم يتحقق يتم تنفيذ عملية مختلفة تماما
و يستخدم هذا النوع العبارة الشرطية if … then…. Else
بمعني
لو = if ----------< تحقق الشرط
• افعل شيء ما
لو لم يتحقق الشرط = else
افعل شيء اخر
اذا فهذا النوع يسمح للبرنامج باتخاذ قرارات و المفاضلة بين اختيارات أو أكثر من بديل و هذا مهم جدا لأن فكرة البرمجة قائمة علي ذلك في كثير من الحالات و من الصعب جدا أن يخلوا برنامج من هذه الصيغ الهامة ان لم يكن مستحيلا
و لادراكنا أهمية ذلك تعالي بنا نري كيف نرسم خريطة التدفق هذه
http://www.palintefada.com/upload/pic/selective_double%20alternative%20a.JPG
الان خذ قسطا من الراحة و سوف أنتظر تعليقاتك علي الدرس الأخير مع ملاحظة أن البقية اتية و ان شاء الله نبدأ في العملي لذا قم بتنصيب ( set up ) الفيجوال بيسك الاصدار السادس من الان، و تذكر .... البرمجة فكرة
بسم الله الرحمن الرحيم
عادة عندما تبرمج باحترلف سوف تجد أن الكود الذي تعمل عليه ينقسم لجزئين، جزء نمطي أو standard و هو يكون شبه مكرر
مثلا في قواعد البيانات عندما تعمل بمكتبة ال DAO سوف تجد أن الكود الخاص به تقريبا متشابه في جميع البرامج
CODE
dim db as database
dim rs as recordset
و بالتالي فمثل هذا الكود لا تحتاج له خريطة تدفق تماما
و الجزء الاخر يكون به بعض الابتكار هنا نحتاج الخوارزمية للتسهيل و التبسيط في كتابة الكود و الوصول الي أفضل النتائج الممكنة، و نستخدم خريطة التدفق لتبسيط الخوارزمية نفسها و تسهيلها و يستخدم هذا الأسلوب في المشروعات المتوسطة و الكبيرة المعقدة خاصة اذا كان من المتوقع أن يقوم بتطوير و صيانة البرنامج أفراد غير الذين كتبوا البرنامج أو بعض منهم.
و لكي أكون صريح معك أنت لا تستخدم خرائط التدفق و الخوارزميات كثيرا في الواقع العملي بالرغم من سهولتها كما رأيت و لكن ربما يرجع ذلك الي خوف البعض منها، أو ظنهم بأنها أشياء صعبة لا يعرفها سوي المحترفين أو كبار المهندسين مع أن الموضوع تافه جدا!!.
علي العموم نصيحتي لك هو أنك عندما تقوم بعمل برنامج فبالطبع ستقابلك أكواد من الممكن أن صعب عليك أو مشكلة يستعصي حلها، عندها تكتب لها خوارزمية و سوف أعطي مثال علي ذلك ان شاء الله في الدرس الأخير من المحاضرة الاولي و ان شاء الله تفهم الموضوع برمته و شكرا لسؤالك
نطلق عليه المنطق التكراري و هو بكل بساطة مجموعة من الأوامر يقوم البرنامج بتكرارها لعدة مرات، و السؤال الذي أراه يعتصر ذهنك الان و لماذا يحتاج البرنامج لتكرار أمر ما عدة مرات؟، و هل هذا التكرار لا نهائي أم مقيد بشرط ما أم نحدد نحن عدد مرات هذا التكرار أم ماذا؟
لنفترض مثلا أنك اشتريت أربع دجاجات، و ليس لديك سوي وعاء واحد لا يسع الا دجاجة واحدة فماذا تفعل لطهيهم ؟
تضع الدجاجة الاولي في الاناء ثم تنتظر حتي تنتهي العملية ( أي تمام الطهي)، ثم تضع الدجاجة الثانية و هكذا حتي يتم طهي الأربع دجاجات.
و لكن الواقع العملي في البرمجة أفضل كثيرا، فمثلا لو أن عندك 1000 طالب (1، 2، 3، ...... ، 1000 ) و تريد أن تضع تقديراتهم في مادة الرياضيات علي حسب الدرجات، تعالي بنا لنري كيف من الممكن أن يكتب هذا الكود
CODE• اقرأ درجة الطالب في المادة
• لو درجة الطالب أقل من 10 يكون التقدير ضعيف
• لو درجة الطالب 10- 13 يكون التقدير مقبول
• لو درجة الطالب 13 – 16 يكون التقدير جيد
• لو درجة الطالب 16- 18 يكون التقدير جيد جدا
• لو درجة الطالب 18 – 20 يكون التقدير امتياز
و لكن مهلا يا للمصيبة .. يوجد 1000 طالب، هل سنكتب هذه الأكواد ألف مرة لكل طالب؟
- لو كان الأمر كذلك لفضل المبرمجون العمل في مقهي
- فما الحل
- الحل كما قلت لك قبلا أن نضع كل الاكواد داخل تكرار بعدد الطلاب
- فكيف يمكن أن يكون الكود في هذه الحالة؟
- بالضبط كالاتي
CODE• كرر من 1 الي 1000
• لو درجة الطالب أقل من 10 يكون التقدير ضعيف
• لو درجة الطالب 10- 13 يكون التقدير مقبول
• لو درجة الطالب 13 – 16 يكون التقدير جيد
• لو درجة الطالب 16- 18 يكون التقدير جيد جدا
• لو درجة الطالب 18 – 20 يكون التقدير امتياز
ارجع لبداية التكرار مرة أخري
أي أنه سوف ينفذ كل هذه الأوامر أولا علي الطالب الأول حتي يفرغ منها، ثم يعود ادراجه الي بداية الأوامر مرة أخري لينفذ التكرار علي الطالب الثاني حتي يصل الي نهاية الأوامر و هكذا حتي الطالب رقم ألف
و بحسبة بسيطة تجد أن التكرار قد جعلك تكتب 7 أسطر من الأوامر بدلا من 5000 (خمسة الاف سطر)، وهذه من الأشياء التي تتضح فيها قوة الكمبيوتر، فالكمبيوتر له ثلاث صفات مميزة للغاية ( السرعة، الدقة و الغباء المحكم) و لكن لا تقلق فالمبرمج هو الذي يحدد ما اذا كان الكمبيوتر ذكي أم غبي و ذلك بكون برنامجه ذكيا أم ...
طبعا الان تدرك مدي أهمية منطق التكرار و كيف أنه رئيسي للغاية في أي لغة برمجة، و الجميل في الأمر أن منطق التكرار له أشكال متعددة و أنواع مختلفة مما يتيح لك مرونة تامة في استخدامه و لنري معا ما هي هذه الانواع و كيف يتم الاستفادة من كل نوع.
(1) الشكل الاول: التكرار باستخدام (Do While)--------------------------------------------------------
لنفترض أننا نريد أن ننفذ مجموع من الأوامر في حلقة تكرارية و لكن بشرط معين فطالما أن هذا الشرط متحقق و هو ما نطلق عليه في البرمجة (True) تستمر الحلقة التكرارية و يستمر تكرار تنفيذ الأوامر أما اذا حدث أن هذا الشرط لم يعد متحقق ينتهي التكرار و تتوقف الحلقة التكرارية عن تنفيذ الأوامر.
- لا أفهم وضح أبن أفصح بكسر الباء
- حسنا انظر معي لهذا التركيب
While (تحقق شرط معين) Do A
حيث A عملية ما أو مجموعة أوامر
وتعني--------- بينما الشرط متحقق نفذ A
لو أننا في المثال السابق أردنا التطبيق علي درجات الالف طالب و حساب تقديرات كل منهم كيف نفعل ذلك باستخدام Do While ؟
سنفعل ذلك كالاتي:
___________
CODE• طالما أن عدد الطلاب أقل من أو يساوي ألف نفذ
• لو درجة الطالب أقل من 10 يكون التقدير ضعيف
• لو درجة الطالب 10- 13 يكون التقدير مقبول
• لو درجة الطالب 13 – 16 يكون التقدير جيد
• لو درجة الطالب 16- 18 يكون التقدير جيد جدا
• لو درجة الطالب 18 – 20 يكون التقدير امتياز
ارجع لبداية التكرار مرة أخرة
أو كالاتي
CODEDO While S <= 1000
الاوامر
Loop
حيث S هو العداد الذي يستخدمه التكرار لمعرفة موقعه الان، أي هل هو الان ينفذ الأوامر الخاصة بالطالب الثالث أم الرابع ... حتي تتساوي ال S مع الشرط و هو ال 1000 فينتهي التكرار و ينتهي عمل الحلقة التكرارية
و يمكن تمثيل ذلك بخريطة التدفق السهلة و البسيطة الاتية:
http://www.palintefada.com/upload/pic/loops_do..while.JPG
2) الشكل الثاني: التكرار باستخدام (Do Until)------------------------------------------------
و هو عكس النوع السابق، حيث أن التكرار يظل يعمل طالما أن الشرط غير متحقق، حتي until اذا تحقق الشرط ينتهي التكرار
مثال----
طالما ان تانك السيارة غير مملوء while ------
املاْه بالبنزين، حتي until اذا امتليء، توقف عن تموين العربية و ... و روح حاسب علي البنزين حالا
و تركيبها يكون كالاتي:
CODEDo (A) Until
(تحقق الشرط)
لو أننا في المثال السابق أردنا التطبيق علي درجات الالف طالب و حساب تقديرات كل منهم كيف نفعل ذلك باستخدام Do Until ؟
سنفعل ذلك كالاتي:
___________
CODE• نفذ حتي يصبح عدد الطلاب 1000
• لو درجة الطالب أقل من 10 يكون التقدير ضعيف
• لو درجة الطالب 10- 13 يكون التقدير مقبول
• لو درجة الطالب 13 – 16 يكون التقدير جيد
• لو درجة الطالب 16- 18 يكون التقدير جيد جدا
• لو درجة الطالب 18 – 20 يكون التقدير امتياز
ارجع لبداية التكرار مرة أخرة
أو كالاتي
CODEDO Until S <=1000
الأوامر
Loop
حيث S هو العداد الذي يستخدمه التكرار لمعرفة موقعه الان، أي هل هو الان ينفذ الأوامر الخاصة بالطالب الثالث أم الرابع ... حتي تتساوي ال S مع الشرط و هو ال 1000 فينتهي التكرار و ينتهي عمل الحلقة التكرارية
و يمكن تمثيل هذا الشكل من خرائط التدفق كالاتي:
http://www.palintefada.com/upload/pic/loops_do..until.JPG
3) الشكل الثالث و الأخير: التكرار باستخدام (For … Next)----------------------------------------------------------------
و هو أسهل و أبسط من المنطقين السابقين، حيث أنك و بكل بساطة الشخص الوحيد المسموح له بتحديد التكرار أي بمعني أصح أنت الذي سوف يحدد كم مرة من المفروض فيها أن يتم تكرار أمر ما أو عدة أوامر.
و تركيبها كالاتي:
CODEFor I = Y to Z
أوامر
Next I
و لا تخف من تركيبها الذي قد تظن أنه صعب و سوف أشرحه لك بالتفصيل ان شاء الله
أولا FOR I تعني أن I هي العداد الذي سوف يعد مرات التكرار لمعرف موقع الحلقة التكرارية من التكرار، أي هل البرنامج الان ينفذ التكرار الأول أم الثاني أم الثالث أم ماذا.
Y هي نقطة البداية للتكرار قد تكون صفر أو واحد أو 100 حتي حسب المبرمج و حس البرنامج
Z هي نقطة نهاية التكرار و هي النقطة التي يتوقف عندها البرنامج عن تنفيذ التكرار
Next I جزء من التركيب و هي تستدعي التكرار مرة أخري طالما لم نصل الي نقطة النهاية.
فمثلا لو قلنا
CODEFor I = 1 To 10
Print "ahmed"
Next I
فهذا معناه أننا نريد من البرنامج أن يبدأ من النقطة 1 ويظل يطبع أحمد حتي يصل الي النقطة 10 ، أي أنه سوف يفعل ذلك 10 مرات.
مثال----
بفرض أنك تريد طباعة 10 ورقات عليها اسمك ماذا سوف تفعل؟
سوف نقول للبرنامج
CODE• كرر الاتي 10 مرات فقط
• اطبع ورقة عليها اسمي
• ارجع لبداية التكرار مرة أخري
و في كل مرة عند بداية البرنامج يرجع مرة أخري للعداد I و يسأله هل قيمتك أصبحت مساوية لقيمة Z أي 10؟
فاذا كانت مساوية للعشرة يوقف التكرار ، و الا يعيد التكرار مرة أخري.
أتمني أن يكون الشكل الثالث من أشكال التكرار بسيط و للزيادة في السهولة نرسم خريطة التدفق الخاصة به.
http://www.palintefada.com/upload/pic/loops_for..next1.JPG
4) النوع الرابع و الأخير: البرمجيات الفرعية (Sup Programming)-------------------------------------------------------------------------
البرمجيات الفرعية هي عبارة عن تجميع لأجزاء من البرنامج مع بعضها و كل جزء يمثل مجموعة من التعليمات، و يشكل برنامجا فرعيا مستقلا يتم الرجوع اليه عند الحاجة لأداء مهمة معينة، و يكون لكل جزء من هذه الأجزاء اسم مميز، و يكون تركيب هذه النوع كالاتي:
GOSUB …. Return
و أنا لن أرسم لك الخريطة الخاصة بذلك النوع لأننا سوف نتناولها بالتفصيل الممل، و لكن كل ما يهمني أن تعرفه أن البرنامج مكون من عدة أجزاء أو بلوكات من الأكواد كل بلوك يتكون من مجموعة معينة من الأكواد تؤدي وظيفة ما أو مجموعة من الوظائف، بتجميع هذه الأجزاء يتكون لنا البرنامج، قد يستدعي البرنامج أثناء عمله بعض من هذه الأجزاء علي الأقل أو كل الأجزاء حسب البرنامج و الظروف و الشروط التي يعمل عليها
انتهينا بحمد الله من المقدمة و الجزء النظري، الان لديك أساس قوي جدا عن البرمجة و مفاهيمها و أنت أكثر من جاهز للبدأ في الفيجوال بيسك 6، أقصد لكي تكون مبرمج فيجوال بيسك 6 ... و يا له من لقب
استعد
أهلا بكم في عالم الفيجوال بيسك، أكثر لغات البرمجة امتاعا و تشويقا و سهولة، هذه اللغة من الممكن أن تجعل منك أسطورة لو أتقنتها و أعطيتها من مجهودك مثل بروس ماكينلي، أما لو اعتمدت علي كلام الاخرين أن هذه اللغة ضعيفة أو لا تؤدي الي تنفيذ البرامج بالمستوي المطلوب، فأنت لن تجني شيء سوي المهاترات و الخيبة و الندامة ذلك أنك ستضيع وقتك و تلهي نفسك عن استخدام لغة برمجة تعد من أفضل و أسرع و أسهل لغات البرمجة في اعداد تطبيقات ذات كفاءة عالية، كما لا أخفيك سرا أنك سوف تصبح من أكثر المطلوبين في سوق العمل البرمجي فمبرمجي الفيجوال بيسك خارج المنافسة في هذا المضمار.
الان دعنا نتناول بالتفصيل شاشات و نوافذ الفيجوال بيسك الاصدار السادس و الذي يعمل تحت بيئة ال Visual Studio 6 الذي يضم مجموعة من أقوي اللغات البرمجية و منها الحبيبة VB6
بعد أن تقوم بتركيب الفيجوال بيسك الاصدار السادس و فتحه لأول مرة سوف تري مربع الحوار New Project أو وشروع جديد كما في هذا الشكل
http://www.palintefada.com/upload/pic/first_vb.JPG
وظيفة هذه النافذة فتح مشروع جديد و لكن مهلا، الفيجوال بيسك لغة غنية و كبيرة و متسعة، تحتوي علي العديد من أنواع المشاريع، و التي تمكنك من عمل مختلف أنواع المشاريع ابتداء من المشاريع القياسية Standard EXE انتهاء بمشاريع ال Active X و ال Active DLL و هو ما سوف نناقشه فيما بعد لا تقلق.
و لذلك عند تناولنا لتشرح هذه النافذة سنجد أنها تتكون من ثلاثة أجزاء رئيسية و هي New & Existing & Recent
كما في 1 & 2 & 3
أولا : New أو جديد
و كما هو واضح من اسمها أنها تقوم بفتح مشروع جديد و ذلك عن طريق الضغط علي أي نوع من أنواع المشاريع نقرتين متتاليتين Double Click أو عن طريق النقر علي أي من هذه الأنواع نقرة واحدة لتحديدها ثم الضغط علي Open أو حتي الضغط علي الزر Enter
و سوف تجد أن أنواع المشاريع في نافذة مشروع جديد محصورة في الاتي:
• Standard EXE
• ActiveX EXE
• ActiveX DLL
• VB Application Wizard
• Data Project
• IIS Application
• Add-in
• ActiveX ******** DLL
• ActiveX ******** EXE
• DHTML Application
و هي كلها أسماء لأنواع متعددة من المشاريع لا تشغ بالك بها الان، مع العلم أننا سوف نعمل في الفترة الحالية مع ال Standard EXE و هو النوع الذي يتم به تصميم معظم المشاريع التي تراها أمامك في كل مكان مثل برامج قواعد البيانات و الملتيميديا و الألعاب ... الخ
أما بقية الأنواع فهي لعمل أدوات تستخدم في لغة البرمجة نفسها أو لعمل مكتبات ربط ديناميكي Dynamic Link Library أو مربعات حوار لتسهيل انشاء أنواع من البرامج مثل قواعد البيانات أو برامج خاصة بالانترنت
أما Existing فتستخدم لفتح مشروعات موجودة بالفعل و تفتح علي المجلد الافتراضي VB98 طالما أنك لم تغير هذا، المشروعات الموجودة قد تكون مشروعات عملت عليها سابقا أو عينات من المشاريع المرفقة مع VB6 التي تمكنك من التدرب عليها بفتح هذه المشاريع و قراءة أكوادها (طبعا بعد أن تصبح مبرمج يمكن الاعتماد عليه)
بالنسبة ل Recent فهي تعرض لك المشاريع الحديثة التي تعاملت معها مؤخرا و هي ميزة جيدة اذا نسيت أين وضعت مشروعك الأخير .
اذا قمت بتفعيل الخيار Don't Show This Dialog In The Future ( الجزء رقم 4)
فان هذه النافذة بالكامل لن تظهر ثانية و سيفتح لك ال VB علي المشاريع القياسية Standard EXE
-------------------------------------------------------------------------------------------------------
بعد أن نختار Standard EXE و اتفقنا انه هو النوع من المشاريع الذي سوف نعمل معه الان نجد بيئة التطوير المتكاملة Integrated Development Environment و قد سموها بهذا الاسم لأنها بالفعل متكاملة فهي تعطيك كل الأدوات اللازمة لتطوير مشاريعك بأقل وقت و جهد ممكن.
و هذا هو المكان الذي سوف تقوم فيه بكل عملك
http://www.palintefada.com/upload/pic/IDE.JPG
حيث تجد أن الفيجوال بيسك قد فتح لك ما يسمي بالنموذج أو الفورم Form و التي تكون هي أول نافذة لبرنامجك، طبعا يمكنك اضافة عشرات النماذج أو ال Forms فيما بعد و لكن تسهيلا عليك يفتح لك الفيجوال بيسك النموذج و لكن...... ماذا أعني بكلمة النموذج؟
النموذج تمثله النافذة الصغيرة المكتوب عليها Form! و المحاطة بهذا الفراغ الأبيض من حولها، هذه النافذة الصغيرة هي اللبنة الأولي و الأساسية لبرنامجك و هي التي تضع عليها كل الأدوات التي تستخدمها لبناء البرنامج مثل الأزرار و صندوق النصوص و كل الأدوات الأخري.
بمعني أنه و في الأغلب الأعم لن تخلو مشروعاتك من هذا ال Form !!.
هذا الفراغ الأبيض أيضا يسمي مصمم النوافذ أو Form Designer و هو المكان الذي يقبع به الفورم و تقوم فيه بتصميم واجهة المستخدم أو ما يسمي بال User Interface و هي كما قلنا الأزرار و صناديق النصوص و كل الكائنات الأخري التي تظهر امام المستخدم.
أعلم أنه ربما تملكك الملل و لكني أستطيع أن أقسم لك أنك أبدا و أقولها ثانية أبدا لن ترتاح في البرمجة ما لم تتعلم كيفية التعامل مع بيئة التطوير باحترافية، و ان كانت رأسك قاعدة بيانات لأكواد الفيجوال بيسك.
و لنتناول كل جزء من أجزاء ال IDE أو بيئة التطوير المتكاملة بشيء من التفصيل.
(1) شريط القوائم Menu Bar------------------------------
يحتوي شريط القوائم علي العديد من القوائم أولها قائمة File و التي يمكن منها فتح مشروع جديد أو اضافة مشروع الي مشروعك الحالي أو حتي بدء مشروع جديد، يمكنك أيضا حفظ المشروع أو طباعته أو ترجمته الي لغة الألة، و يمكنك أيضا من خلالها أن تجد المشاريع التي فتحتها مؤخرا تماما ك Recent في نافذة البداية.
ملحوظة : الترجمة للغة الالة تعني تحويل المشروع من أكواد مكتوبة الي ملف يمكن للالة قرائته و التفاهم معه وهو ما نطلق عليه التحويل من High Level Language الي Machine Language .
بعد ذلك نجد قائمة Edit
و التي توفر لك خيارات النسخ و القص و اللزق و الحذف و كذلك امكانية البحث و الاستبدال و هذا سوف يوفر عليك الكثير عند التعامل مع نافذة التكويد الرائعة و المليئة بالمزايا المتعددة و التي لن تجدها الا في ال VB
ثم تأتي قائمة View و التي يمكنك من خلالها عرض أي نافذة من نوافذ ال VB و التي تحتاجها لاتمام عملك مثل Tool Box & Project Explorer & Form Layout Window & Properties Window .. Etc.
وهو ما سوف نتناوله بالتفصيل.
تأتي بعد ذلك قائمة Format و التي ستساعدك في انشاء واجهة البرنامج المرئية في شكل رائع و بمنتهي الدقة حيث تستخدم أوامرها في ترتيب و تنظيم وضع الأدوات علي الواجهة بشكل دقيق جدا و منظم و سوف تري بالفعل كم هي مفيدة، ومن أوامرها الأمر Lock Controls و الذي يحافظ لك علي ترتيب الأدوات بحيث لا تتحرك من مكانها الا اذا أردت أنت ذلك.
ثم تأتي بعد ذلك قائمة Debug و التي تستخدم في فحص الأخطاء و تساعدك في اكتشاف مواطن الخطأ.
ثم قائمة Run و التي تمكنك من تشغيل البرنامج و تجربته حتي قبل الانتهاء منه او للتأكد من أن وظيفة ما تعمل و بدون أن تحتاج لترجمته اطلاقا و هي من أروع المزايا في الفيجوال بيسك الساحر.
بعد ذلك نجد قائمة Tools و التي تمكنك من تخصيص بيئة التطوير و التحكم في خياراتها كما يحلو لك كما نجد أنها تمكنك من اضافة اجراء جديد و كذلك عمل قوائم ك File & Edit & View … Etc و التي تجدها في برامج الويندوز و الأوفيس.
Add _ Ins تساعدك في عملك في تصميم قواعد البيانات عن طريق الأمر Visual Data Manager
و لكننا سوف نستخدم طرقا أكثر احترافية و تقنية و أفضل في توفير الوقت و الجهد.
نجد أن الامر الاخر الذي قد يثير اهتمامنا في نفس القائمة هو الأمر Add In Manager و الذي يسمح لك باضافة خدمات عديدة في بيئة التطوير مثل ال API Viewer .
قائمة Window أنا طبعا أعرف أنك في غني عن ذكر أنها تتحكم في ترتيب النوافذ داخل الفيجوال بيسك و الا فانك تحتاج الي كورس سريع في الويندوز.
قائمة Help كما هو ظاهر من اسمها تساعدك في عملك فلو أنك قد قمت بتثبيت MSDN و التي هي مخزن ضخم من ملفات المساعدة و المقالات و المعلومات عن كل ما يتعلق بالفيجوال بيسك كل ما تحتاجه هو ضغط F1 حتي تظهر لك هذه الأداة السحرية، وسوف تحتاجها كثيرا عندما تعمل باحتراف.
الي هنا تنتهي هذه المحاضرة و المحاضرة القادمة ان شاء الله نستكمل ال IDE و تكتب أول برنامج لك بالفيجوال بيسكمجموعة كبيرة من الأكواد موجودة في ملف واحد يطلق عليه مكتبة و كل مكتبة تضم عدد واحد أو أكثر من ال classes و هي تجميع للأوامر التي تندرج تحت وظيفة أو كائن ما و سوف تعرف الكثير عنها بعد ذلك بالتفصيل، المهم أنه بدلا من كتابة هذا الأمر بهذه الصورة
CODE
private sub command1_click()
dim i as integer
dim x as string
x = inputbox("enter the statement that you want to print")
if x = "" then exit sub
for i = 1 to y
print x
next i
end sub
يمكنك كتابتها كالتالي
CODE
public sub print(y as integer, z as string)
x = inputbox("enter the statement that you want to print")
if x = "" then exit sub
for i = 1 to y
print x
next i
end sub
وعندما تحب استخدام الأمر تكتب فقط
CODE
print (5, "hello")
في أي اجراء و الواضح أنك بذلك استفدت من ثلاث جهات
أولا : استطعت كتابة أي جملة لأي عدد من المرات و ليس لعدد محدد
ثانيا: وفرت علي نفسك الجهد و التعب و التعقيد في كتابة الأكواد خاصة الكبيرة و المعقدة
ثالثا: تستطيع دائما تحديث برامجك باضافة الاصدارات الجديدة من هذه المكتبات
أما لو أصبحت مبرمج متمكن يمكنك بيع المكتبات القوية لأي من المبرمجين أو الشركات
أما برمجة ال ocx فهي برمجة الادوات مثلا تعمل شيء زي ال textbox أو ال toolbar مثل تلك الموجودة في الفيجوال بيسك
و بالنسبة للدروس أنا عارف ان انا طولت عليكم لكن ان شاء الله نصوم نصوم و نفطر علي ..؟
نفطر علي الأذان
الدروس جاية ان شاء الله و كل عام و أنتم بخير بمناسبة الشهر المبارك
كنا وقفنا عند ال menus و شرحناها شرح سريع لكل واحدة و التفصيل اتي في السياق لا تقلقوا
الان نتناول شريط الادوات Tool Bar
و أرجوا الا تخلطوا بين شريط الادوات Tool Bar و بين صندوق الادوات Tool Box لأنهما مختلفان تماما
المهم، .....
شريط الادوات هو نفسه مجموعة مختارة من الاوامر الموجودة في القوائم، حتقولي يعني هو تكرار للأوامر الموجودة ، حقولك اي نعم
- غريبة أوي طب ليه.؟؟
- عشان يسهل عليك الشغل، ما انت متفكرش ان الشغل بعد كده حيكون تكتب أمرين و تعملهم تشغيل مرة و لا مرتين و تقفل الفيجوال و تروح تنام ( ده انت حتنطحن) لما توصل مستوي متوسط أو محترف و بالتالي قد تستخدم بعض الاوامر مئات المرات و هو ما يحتاج وصول مباشر لهذه الاوامر بدلا من ان تفتح القائمة في كل مرة
طيب تعالي كده بالراحة نشوف تشريح شريط الادوات (ToolBar Anatomy)----------------------------------------------------------------------------
http://www.arabteam2000.com/picload/pics_10_05/20_12_05_05_06_31_1135083991tool_bar.JPG
هذه هي كل الاوامر التي أريدك أن تعرفها الان عن شريط الادوات و دعني أوضح لك بعض ما قد يكتنفه الغموض
• اضافة فورم: اي مشروع او برنامج تقوم بتصميمه يتكون من عدة نوافذ هذه النوافذ تكون فارغة تماما و تسمي Form و هي احدي لبنات بناء المشروع في الفيجوال بيسك
• محرر القوائم: لا شك انك رأيت قوائم file & view & edit & help و غيرها في الويندوز و برامجه من قبل، محرر القوائم هذا هو الذي يصنع مثل هذه الأشياء في الفيجوال بيسك و يمكنك استدعائه بضغط CTRL + E
• اوامر القص و اللصق و النسخ تستطيع قص و لصق و نسخ أجزاء من الكود ( الشفرة التي يعمل بها البرنامج) أو حتي الادوات التي توجد علي الفورم مثل ازرار الاوامر و صناديق النصوص يمكنك استخدام اختصارات لوحة المفاتيح CTRL + X أو CTRL + V أو CTRL + C للقص و اللصق و النسخ علي التوالي
• اما البحث فهو يعطيك الامكانية عن البحث عن كود ما او تعديل كود ما او استبدال اجزاء من الكود باجزاء أخري و هو ما سوف تراه أثناء تصميم البرامج و يمكنك استدعائه باستخدام الاختصار CTRL + F و لاحظ ان هذا الامر لن يعمل او يكون نشيطا الا اذا كنت تعمل الان مع نافذة الكود
• مستكشف المشروع هو نافذة ذات تركيب شجري تعرض لك جميع الملفات التي يحتوي عليها المشروع و تمكنك من التعامل معها بسهولة و لمزيد من السهولة يمكنك استدعائها بضغط CTRL + R
• نافذة الخصائص بالبلدي خالص هي التي تحدد سلوك الكائن (معلش أصل انا مغرم بالكائنات) و الكائن بدون تعقيد المعقدين بفتح القاف و المعقدين بكسر القاف و المعقدون ايضا هو اي اداة تستخدمها في المشروع او فئة او او او ...... يعني مثلا زر امر او صندوق نص الخ ...................
• وضع الفورم او form layout window يمكنك من تحديد مكان نافذة برنامجك علي الشاشة بعد ان يعمل ممكن يكون في وسط الشاشة او احد اطرافها كما تحدد انت و لو أنني لا احبذ ذلك من الممكن التحكم في مكان الفورم عن طريق نافذة الخصائص و في حالات معينة ستجد نفسك مجبر علي استخدام الكود (وهو للعلم كود بسيط جدا)
• صندوق الادوات وهو يحتوي علي عشرين أداة أساسية و هي أكثر الادوات شيوعا في برامجك و التي سوف تجد نفسك تستخدمها دائما
يجب أن تحضر نفسك الان لدرس لذيذ وهو صندوق الادوات ToolBox



