☰ خطة العام · تكنولوجيا المعلومات والاتصالات (بالعربية)

المحوّل بلغة ⁦VB.NET⁩: النافذة والكود والاختبار

الأسبوع 6 · الوحدة ١ الموضوع الثاني: مشروع محوّل الأعداد بلغة VB.NET: النافذة وأدوات التحكم والخصائص والكود · 3 دروس
2

قراءة كود المحوّل جزءًا جزءًا

ICT Secondary 3 Term 1, Unit 1, Topic 2: pp. 27–36
الهدفاقرأ معالج النقر في المحوّل في خمسة أجزاء، وبيّن عمل كل جزء.
كلمات جديدة
الحدث (event) · شيء يحدث لأداة تحكم، مثل النقرمعالج الحدث ⁦(event handler)⁩ · كتلة الكود التي تعمل عند وقوع حدثهاالمتغير (variable) · مكان له اسم في الذاكرة يحمل قيمةDim · الكلمة التي تعلن عن متغير فتعطيه اسمه ونوعه
الشرح

يوجد الكود في حدث النقر للزر. الحدث شيء يقع، وهو هنا نقرة، ومعالج الحدث هو كتلة الكود التي تعمل حين يقع. ومعالجنا من خمسة أجزاء. الجزء ١ هو السطر الأول، ويقول إن الكتلة تعمل عند النقر على ButtonConvert. الجزء ٢ يعلن بالكلمة Dim عن أربعة متغيرات: النص المكتوب، والأساس الذي نقرأ به، والأساس الذي نكتب به، والعدد. الجزء ٣ ينظر إلى أزرار الاختيار الثلاثة في «من» ويضبط أساس القراءة: 10 أو 16 أو 2. والجزء ٤ يفعل الشيء نفسه لـ «إلى». أما الجزء ٥ فيستعمل دالتين جاهزتين: الأولى تقرأ النص بأساس «من» وتعطي عددًا، والثانية تكتب هذا العدد بأساس «إلى»، ويعرضه مربع رسالة. ليس للعدد أساس خاص به؛ فهو كمية فقط، والأساسان يحددان طريقة كتابته عند الدخول وعند الخروج.

الجزءماذا يفعل
1السطر الذي يحدد الأداة والحدث اللذين يبدآن الكتلة
2يعلن عن النص المكتوب وأساس القراءة وأساس الكتابة والعدد
3يضبط أساس القراءة من أزرار «من»
4يضبط أساس الكتابة من أزرار «إلى»
5يقرأ النص ويكتب العدد ويعرض الجواب
أمثلة محلولة
Vb
1' Part 1: this block runs when the button is clicked
2Private Sub ButtonConvert_Click(sender As Object, e As EventArgs) Handles ButtonConvert.Click
3    ' Part 2: four variables
4    Dim typed As String = TextNumber.Text
5    Dim fromBase As Integer
6    Dim toBase As Integer
7    Dim number As Integer
8
9    ' Part 3: which system is the typed number in?
10    If RadioFromDec.Checked Then
11        fromBase = 10
12    ElseIf RadioFromHex.Checked Then
13        fromBase = 16
14    Else
15        fromBase = 2
16    End If
17
18    ' Part 4: which system do we want?
19    If RadioToDec.Checked Then
20        toBase = 10
21    ElseIf RadioToHex.Checked Then
22        toBase = 16
23    Else
24        toBase = 2
25    End If
26
27    ' Part 5: read, write, show
28    number = Convert.ToInt32(typed, fromBase)
29    MessageBox.Show(Convert.ToString(number, toBase))
30End Sub
هذا هو المعالج كاملًا. اقرأه في أجزائه الخمسة. سمّينا المتغير الرابع number لأنه يحمل الكمية لا أساسًا.
بعد الجزءtypedfromBasetoBasenumber
21101000
31101200
411012100
5110121013
تتبّعه على الورق. يكتب المستخدم 1101 ويحدد «ثنائي» في «من» و«عشري» في «إلى». في الجزء ٣ يفشل الاختباران الأولان فيضبط Else الأخير القيمة 2. يعرض الجدول المتغيرات بعد كل جزء. ويعرض مربع الرسالة 13.
المكتوبمنإلىالرسالة
1010لا شيء محددعشري10
1010عشريلا شيء محدد1111110010
فخ: يلتقط Else الأخير في كل جزء حالة عدم تحديد أي زر، فيختار الأساس 2 بصمت. وهاتان التجربتان من الكود الحقيقي.
نشاط الفصل

تتبّع المعالج على الورق للنص المكتوب 75 مع تحديد «عشري» في «من» و«ثنائي» في «إلى». اكتب قيم fromBase وtoBase وnumber بعد الأجزاء ٣ و٤ و٥، والنص الذي يظهر في مربع الرسالة.

تدرّب
1
كم متغيرًا يعلن عنه المعالج، وماذا يحمل كل منها؟
2
ما القيمة التي يعطيها الجزء ٤ للمتغير toBase حين يكون RadioToHex محددًا؟
3
أي الدالتين تعمل أولًا، ToInt32 أم ToString، ولماذا؟
4
لماذا سُمّي المتغير الرابع number وليس fromBase؟