عرض مشاركة واحدة
  #1  
قديم 02-27-2010, 05:25 PM
microtop microtop غير متواجد حالياً
مشرف
 
تاريخ التسجيل: Feb 2010
المشاركات: 470
Icon13 الدرس الثامن : تطبيق اله حاسبه متطوره - دورة سي شارب 2008


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

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

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


ويصبح شكل البرنامج بعد الانتهاء من تطبيق هذا الجدول هكذا



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


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



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



السؤال لماذا عرفنا هذه المتغيرات ؟؟؟؟
هذه المتغيرات سيتم استخدامها فى اكواد العمليات الحسابيه زى الجمع والطرح والضرب والقسمه
وسنرى ذلك فى الاكواد
كود PHP:
[CENTER][SIZE="5"][COLOR="Blue"][code][/code]        bool btnPlus false;[/COLOR][/SIZE]
[
SIZE="5"][COLOR="Blue"]        bool btnminus false;[/COLOR][/SIZE]
[
SIZE="5"][COLOR="Blue"]        bool btnMult false;[/COLOR][/SIZE]
[
SIZE="5"][COLOR="Blue"]        bool btnDivide false;[/COLOR][/SIZE][/CENTER
كما سنقوم بتعريف الاربع متغيرات البوليانيه
اولا المتغيرات البوليانيه هى المتغيرات التى لا تقبل الا قيمتين اما true او false
وقد تم عمل كل المتغيرات false حتى يتم تنشيطهم عن الضغط على الزر وذلك عن طريق
القيمه true كما سنرى

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


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

2- كود عملية الطرح
يشبه كود الجمع مع وجود اختلاف بسيط كما فى الصوره


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

3 - كود عملية الضرب
نأتى الى كود الضرب والقسمه
حيث اننا سوف نستخدم المتغير العددى الثالث فى عمليتى الضرب والقسمه
وهو total3 ويرجع السبب الى اننا ساوينا هذا المتغير بالواحد الصحيح والواحد لا يؤثر فى عمليتى الضرب والقسمه
كما ان الصفر لا يؤثر فى عمليتى الجمع والطرح لذلك استخدمنا المتغير total1 لانه يساوى الصفر
اما المتغير total2 فسيتم استخدامه فى كود الزر يساوى
سيكون الكود هكذا


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

4- كود عملية القسمه
سنلاحظ ان كود عملية القسمه يشبه كود عملية الطرح لكن مع تغيير الاشاره
وذلك ليس للهروب من الاشاره ولكن للهروب من الكسر
هكذا


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

ثم نأتى الى كود اليساوى (=)
سنستخدم فى هذا الكود الجمل الشرطيه الخاصه ب if كما سبق فى الدرس السابق
نلاحظ الكود سيكون هكذا


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


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

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


حيث ان total2 هى ناتج عملية الطرح
اما ال total1 فهى القيمه التى تم تخزينها فى البرنامج وهى كما فى مثالنا5
اماdouble.Parse(textBox1.text) فهى القيمه الاخيره وهى 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(textBox1.text);
textBox1.text = total2.ToString();
total3 = 1;
هذا الكود مثل كود حالة الضرب تماما ولا يختلف كثير الا فى تغيير علامة القسمه
واخر كود لاخر زر عندنا وهو زر الac وظيفة هذا الزر هو انه يقوم بمسح محتوىtextbox1 ويكون كوده هكذا


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



التعديل الأخير تم بواسطة microtop ; 03-09-2010 الساعة 05:24 PM
رد مع اقتباس