عرض مشاركة واحدة
  #91  
قديم 02-26-2010, 01:52 AM
احمدنمير احمدنمير غير متواجد حالياً
قـــلم نــابض
 




افتراضي

ان شاء الله اليوم سنبدأ فى عمل اله حاسبه متطوره

اولا
و قبل ان ندخل فى التطبيق
يجب ان نعلم انه حتى نستطيع كتابة الاكواد صحيحه يجب معرفة ماذا يحدث داخل البرنامج
وبعد ذلك نستطيع بناء الكود على اساس مدى فهمنا للبرنامج
ثانيا

نبدا فى تطبيق البرنامج على بركة الله
نبدا بفتح مشروع جديد ونسميه (اله حاسبه متطوره )
ونقوم بعمل 17 button و ****box1
ونغير الخصائص كما فى الجدول التالى
ويصبح شكل البرنامج بعد الانتهاء من تطبيق هذا الجدول هكذا


ونبدأ بكتابة الاكواد
اولا اكواد الارقام سيكون الكود
مثلا فى الرقم واحد
اولا لازم نعرف ايه الى هيحصل فى البرنامج عند الضغط على هذا الزر
سيتم كتابة الرقم (1) فى ال****box1
يبقى هيكون الكود هكذا
****Box1.**** = num1.****;
تلاحظون اننا كتبنا فى الكود ان ****box1.**** وهى دى قيمه ال****box بعد الضغط على الزر تساوى num1.**** يعن هتساوى واحد الى هو الزر الى هنضغط عليه
كده احنا فى البدايه يعنى مفيش ارقام لسه فى ال ****box
طب نفرض ان ال****box كان فيه مثلا رقم واحد
وضغطنا على الواحد بهذا الكود سيظهر لنا واحد بس فى ال ****box وكان من المفترض ظهور رقم (11) لذلك يعد هذا عيب برمجى لانه يجب وضع الارقام متتاليه
لذلك يجب تعديل الكود ليكون هكذا
****Box1.**** = ****Box1.**** + num1.****;
حيث ان ال ****Box1.**** هى القيمه بعد الضغط على الزر
اما ال ****Box1.**** هىالقيمة الاصليه لل****box
اما ال num1.**** فهى قيمة الزر او ال button ال هى واحد وبهذا يكون الكود هكذا
****Box1.**** = ****Box1.**** + num1.****;
ويكون هذا الكود ثابت فى كل الارقام والdot (.)
ويكون البرنامج هكذا بعد كتابة الاكواد


وهذه هى اكواد الارقام كلها



نأتى الى اكواد العمليات وارجوا التركيز.................
اولا قبل عمل اكواد العمليات يجب تعريف ثلاث متغيرات وهى المتغيرات (tabel1& tabel2&tabel3)
ويتم تعريفهم عن طريق المتغير العددى double ويتم وضع تعريف هذه المتغيرات قبل اكواد الارقام كما فى الصوره






السؤال لماذا عرفنا هذه المتغيرات ؟؟؟؟
هذه المتغيرات سيتم استخدامها فى اكواد العمليات الحسابيه زى الجمع والطرح والضرب والقسمه
وسنرى ذلك فى الاكواد
bool btnPlus = false;
bool btnminus = false;
bool btnMult = false;
bool btnDivide = false;

كما سنقوم بتعريف الاربع متغيرات البوليانيه

اولا المتغيرات البوليانيه هى المتغيرات التى لا تقبل الا قيمتين اما true او false
وقد تم عمل كل المتغيرات false حتى يتم تنشيطهم عن الضغط على الزر وذلك عن طريق
القيمه true كما سنرى

1- كود عملية الجمع
اولا لازم نعرف ايه الى هيحصل عندما يتم الضغط على زر الجمع
ولازم نفهم ان البرنامج يقوم بتطبيق معادلات
يعنى مثلا عاوزين نجمع5 و3
البرنامج هياخد ال5ويخزنها عنده ويحذفها من ال ****box وبعد كده يقوم بأخذ القيمه3 وجمعها واظهار الناتج عن طريق الضغط على يساوى
يبقى المعادله المستخدمه هى 5+3=8
لذلك سيكون كود الجمع هكذا






حيث ان ال total1 الاولى هى الرقم الى احنا كتبناه يعنى هى الرقم الى هيتخزن فى الاله
اما total1 التانيه فهى المتغير الى حانا عرفناه وساويناه بالصفر وقيمته هنا تساوى ضفر
اما double.Parse(****Box1.****) فهى القيمه المكتوبه الى فى ال****box
وهى الى تساوى 5 فى المثال الى فرضناه فى الاول
وعشان كده المعادله هتكون هكذا
Total1 = 0 + 5
يبقى total1=5
وهى دى القيمه الى اتخزنت
اما السطر الثانى وهو يعطى امر بأن يجعل ال taxtbox فارغا بعد الضغط على الزر حتى يتم كتابة الرقم الثانى وذلك عن طريق الامر clear()
اما السطر الثالث فيجعل خاصية الجمع الى تم وقفها عن طريق تعريف المتغيرات البوليانيه يتم تنشيطها عن طريق الضغط على الزر
2- كود عملية الطرح
يشبه كود الجمع مع وجود اختلاف بسيط كما فى الصوره




ولكننا احدثنا تغيير بسيط على الكود حتى تتوافق الاشاره
حيث ان ال total1 الاولى هى الرقم الى احنا كتبناه يعنى هى الرقم الى هيتخزن فى الاله
وهنا تم تقديم ال double.Parse(****Box1.****) على ال total1 الثانيه
لاننا كما فى المعادله التاليه لو وضعناها كما فى حالة الجمع ستكون هكذا
Total1 =0-5
Total1=-5
يبقى ده عيب فى الاشاره وبدلنا حتى تتوافق الاشاره
وتكون المعادله هكذا
Total1 =5-0
Total1 =5
وبكده نكون قد تغلبنا على الاشاره
والسطر الثانى تماما مثل حالة الجمع
وان السطر الثالث تم تنشيط خاصية الطرح بدل من الجمع
3 - كود عملية الضرب
نأتى الى كود الضرب والقسمه
حيث اننا سوف نستخدم المتغير العددى الثالث فى عمليتى الضرب والقسمه
وهو total3 ويرجع السبب الى اننا ساوينا هذا المتغير بالواحد الصحيح والواحد لا يؤثر فى عمليتى الضرب والقسمه
كما ان الصفر لا يؤثر فى عمليتى الجمع والطرح لذلك استخدمنا المتغير total1 لانه يساوى الصفر
اما المتغير total2 فسيتم استخدامه فى كود الزر يساوى
سيكون الكود هكذا




نلاحظ فى الكود
حيث ان total3 وهى العدد الذى يتم تخزينه فى البرنامج وهى العدد 5
اما total3 الثانيه وهى التى تساوى واحد كما عرفناه قبل ذلك
اما (double.Parse(****Box1.****)) فهى كما سبق العدد الذى سيكتب فى ال ****box
وتكون المعادله هكذا
Total3 = 1* 5
Total3=5
اما السطر الثانى من الكود كما سبق شرحه
والسطر الثالث سيتم تنشيط خاصية الضرب التى تم وقفها فى تعريف المتغيرات البوليانيه
4- كود عملية القسمه
سنلاحظ ان كود عملية القسمه يشبه كود عملية الطرح لكن مع تغيير الاشاره
وذلك ليس للهروب من الاشاره ولكن للهروب من الكسر
هكذا



حيث اننا اذا كتبنا الكود كما فى حالة الضرب ستكون المعادله هكذا
Total3=1/5
وهنا total3 ستكون كسر مع اننا ادخلنا عدد صحيح وهذا سيجعل الناتج به اخطاء
اما حالة الكود الحالى
فستكون المعادله هكذا
Total3 = 5/1
Total3=5
وبهذا نكون قد تغلبنا على الكسر
اما السطر الثانى من الكود كما سبق شرحه
والسطر الثالث يتم فيه تنشيط خاصية القسمه
ثم نأتى الى كود اليساوى (=)
سنستخدم فى هذا الكود الجمل الشرطيه الخاصه ب if كما سبق فى الدرس السابق
نلاحظ الكود سيكون هكذا


نأتى الى اول شرط
وهو اذا كانت خاصيه الجمع متنشطه اى اذا ضغطنا على زر الجمع
وهو ان if (btnPlus == true)
واذا تحقق هذا الشرط سيتم تنفيذ هذا الامر وهو





حيث ان ال total2 وهى ناتج الجمع النهائى
اما ال total1 هى القميه الاولى المراد جمعها وهى تساوى 5 حسب مثالنا
اما ال double.Parse(****Box1.****); فهى القيمه الثانيه وهى تساوى 3 حسب مثالنا
واذا طبقنا المعادله ستكون هكذا
Total2=5+3
Total2 =8
اما السطر الثانى من الكود وهو كود عرض النتيجه
حيث ان ال ****box1 هتساوى قيمة الجمع وهى قيمة ال total2 اما الامر tostring() فهذا كما عرفنا قبل ذلك ان ال ****box1 لا يقبل الا نص وناتج الجمع عدد
لذلك هذا الامر يحول العدد الى نص حتى يقبله ال ****box
اما السطر الثالث من الكود وهو total1 = 0;
فهو يجعل ذاكرة البرنامج خاليه حتى تكون جاهزه الى عمليه اخرى

الشرط الثانى
واذا لم يتحقق اول شرط سينتقل البرنامج الى الشرط الثانى
وهو لو كانت خاصية الطرح نشطه
وسيقوم بتنفيذ الامر وهو






حيث ان total2 هى ناتج عملية الطرح
اما ال total1 فهى القيمه التى تم تخزينها فى البرنامج وهى كما فى مثالنا5
اماdouble.Parse(****Box1.****) فهى القيمه الاخيره وهى 3 كما فى مثالنا
وعند تطبيق المعادله ستكون هكذا
Total2 =5-3
Total2=2
اما السطر الثانى والثالث فهو كما فى حالة الجمع
ندخل على الشرط الثالث
وهو اذا كانت خاصية الضرب نشطه else if (btnMult == true)
فيتم تنفيذ الامر التالى وهو




السطر الاول من الكود يختلف اختلاف بسيط عن حالة الجمع والطرح
وذلك لاننا استخدمنا المتغير total3 وهو العدد الذى تم تخزينه فى البرنامج بقيمة العدد الاول المراد ضربه وهو العدد5 كما فى مثالنا
والسطر الثانى كما فى حالة الجمع والطرح
اما السطر الثالث فهو يجعل قيمة total3 ترجع الى قيمتها الافتراضيه التى افترضناها فى الاول
ويكون تطبيق المعادله هكذا
Total3=5*3
Total3=15
ونأتى الشرط الرابع
وهو شرط حالة القسمه وهو else if (btnDivide == true)
واذا تحقق هذا الشرط سيتم تنفيذ الامر الذى يليه وهو
total2 = total3 / double.Parse(****Box1.****);
****Box1.**** = total2.ToString();
total3 = 1;
هذا الكود مثل كود حالة الضرب تماما ولا يختلف كثير الا فى تغيير علامة القسمه
واخر كود لاخر زر عندنا وهو زر الac وظيفة هذا الزر هو انه يقوم بمسح محتوى****box1 ويكون كوده هكذا





ويتضمن الكود الامر clear() وهو ان يتم حذف محتوى ال****box1
وختاما اتمنى ان اكون قد وفقت فى شرح هذا الدرس على اكمل وجه
واتمنى ان تكونوا قد استفدتم معانا
والى درس اخر ان شاء الله
رد مع اقتباس