الجمع النصي والجمع العددي:
هل يوجد فارق بين النص "123" والعدد 123؟
في الحقيقة هناك فارق كبير.. فالنص "123"
يتكون من ثلاثة حروف، هي "1" و "2" و "3"، لهذا يتم
حفظ كل حرف منها في الذاكرة في وحدة ثنائية Byte،
بينما العدد 123 يتم حفظه في الذاكرة بشكل آخر، يختلف على حسب نوع المتغير الذي
يحتويه.. فمثلا: لو وضعت العدد 123 في متغير من النوع Integer،
فسيتم حفظه في الذاكرة في 4 وحدات (4 Bytes)، أما لو وضعت العدد 123 في متغير من النوع Byte، فسيتم حفظه في الذاكرة
في وحدة ثنائية واحدة!
إذن فهناك فارف كبير بين تمثيل البيان 123 في الذاكرة
كنص، وبين تمثيله كعدد صحيح.. لهذا يجب علينا تحويل هذا البيان إلى النوع المناسب
ليمكننا التعامل معه بشكل صحيح.
دعنا ننشئ برنامجا عملينا يرينا بوضوح تام، الفارق بين تمثيل
البيان 123 كنص وكعدد.. ابدأ برنامجا جديدا، وضع على النموذج الأدوات الموضحة في الصورة:
انقر الزر BtAdd1 مرتين بالفأرة،
واكتب في معالج حدث ضغطه ما يلي:
Dim N1 As
Integer = Integer.Parse(TxtN1.Text)
Dim N2 As
Integer = Integer.Parse(TxtN2.Text)
Dim Sum As
Integer = N1 + N2
LbSum.Text =
Sum.ToString( )
هذا الكود يقوم بالآتي:
-
يحول محتويات مربع النص TxtN1 إلى عدد صحيح ويضعها في المتغير N1.
-
يحول محتويات مربع النص TxtN2 إلى عدد صحيح ويضعها في المتغير N2.
- يجمع N1 و N2
ويضع الناتج في المتغير Sum.
- يحول قيمة المتغير Sum
إلى نص ويعرضه في اللافتة LbSum.
لو شغلت البرنامج الآن بضغط F5،
وكتبت في مربع النص الأول 1، وفي مربع النص الثاني 2، وضغطت الزر BtAdd1، فستعرض اللافتة العدد 3.
أوقف تشغيل البرنامج، وانقر الزر BtAdd2
مرتين بالفأرة، واكتب في حدث ضغطه ما يلي:
Dim N1 As
String = TxtN1.Text
Dim N2 As
String = TxtN2.Text
Dim Sum As
String = N1 + N2
LbSum.Text =
Sum
هذا الكود يقوم بما
يلي:
-
يحفظ النص الموجود في مربع النص TxtN1 في المتغير N1..
لاحظ أننا لم نحول النص إلى عدد صحيح، لهذا عرفنا المتغير N1
كنص في هذه المرة.
-
يحفظ النص الموجود في مربع النص TxtN2 في المتغير
النصي N2.
- جمعنا النصين N1
و N2 ووضعنا الناتج في المتغير النصي Sum..
لاحظ أن جمع النصين يعني لصقهما متجاورين.. فمثلا: لو جمعت النص "محم"
على النص "ود"، فستحصل على النص "محمود".
- عرضنا النص Sum في اللافتة LbSum.
لو شغلت البرنامج الآن بضغط F5،
وكتبت في مربع النص الأول 1، وفي مربع النص الثاني 2، وضغطت الزر BtAdd2، فستعرض اللافتة العدد 12.. السبب في هذا أن عملية الجمع النصي
لصقت النص "2" بجوار النص "1"، وهو ما أعطانا النص
"12".
لعل هذا المثال يكون قد وضح لك أهمية تحويل البيانات،
فقد اختلف ناتج جمع 1 و 2 اختلافا جذريا عندما حولناهما إلى عددين، عن ناتجهما
عندما تعاملنا معهما كنصين!
من
كتاب المبرمج الصغير للصف الثالث الإعدادي (الفصل الدراسي الثاني).. للتنزيل
كاملا:
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.