الحاسب الآلي · الصف الثالث الثانوي · الترم الأول
إجراءات تنفيذ مشروع تحويل عدد بين النظم العددية باستخدام VB.NET
خطوات تحليل وتصميم وتنفيذ برنامج سطح مكتب بلغة VB.NET يحوّل عددًا بين النظم العددية (عشري/ثنائي/سداسي عشر)، من تصميم الواجهة إلى استخدام الدوال الجاهزة للتحويل.
آخر تحديث: · كيف نراجع المحتوى
مقدمة
- الشعبة: مشترك (كل الشُعب)
- الوحدة: الأولى — مشروع إنتاج برمجية لتحويل عدد بين النظم العددية / الموضوع: الثاني
- الصفحات: 27–36 من كتاب الطالب
بعد أن حوّلت الأعداد يدويًا في الموضوع الأول، تنفّذ الآن الفكرة نفسها في برنامج حقيقي بلغة VB.NET: يكتب المستخدم عددًا، ويختار النظام الذي يحوّل منه والنظام الذي يحوّل إليه، ثم يضغط زرًّا فيظهر الناتج. سنتعلم خطوات المشروع، وعناصر الواجهة، ثم نفسّر الكود جزءًا جزءًا.
أهداف التعلم
- أن تذكر الإجراءات العامة لتنفيذ مشروع تحويل عدد بين النظم العددية.
- أن تحدد عناصر التحكم (Controls) المناسبة وتضبط خصائصها.
- أن تفسّر كود التحويل بأجزائه الخمسة.
- أن تشغّل البرنامج وتختبره بأعداد تعرف نتيجتها.
شرح الدرس
1) الإجراءات العامة لتنفيذ المشروع
- تصميم واجهة المستخدم (GUI): تحديد عناصر التحكم المناسبة، ثم ضبط خصائصها حسب الحاجة.
- كتابة كود البرمجة.
- تنفيذ المشروع والتأكد من صحته.
2) عناصر التحكم في الواجهة
| العنصر | الغرض |
|---|---|
| Form1 (نافذة النموذج) | الكائن الأساسي الذي تُوضع عليه كل العناصر |
| Label1 (أداة العنوان) | عرض نص إرشادي، مثل «ادخل قيمة عددية لتحويلها» |
| TextBox1 (مربع النص) | إدخال العدد المراد تحويله |
| GroupBox1, GroupBox2 (مربع المجموعة) | تضم كل مجموعة ثلاثة أزرار اختيار |
| RadioButton (أداة الاختيار) | اختيار واحد فقط من بين عدة اختيارات: «عشري» أو «سداسي عشر» أو «ثنائي» |
| Button1 (زر أمر) | تنفيذ كود معين عند النقر عليه (Click) |
خطوات الإنشاء: افتح Visual Studio.NET ← اختر لغة Visual Basic.NET ← أنشئ مشروعًا جديدًا (Solution) ← أدرج عناصر التحكم على Form1 ← اضبط خصائصها. ومن الخصائص المهمة: Text لكل عنصر (مثل «تحويل» للزر)، وRightToLeft = Yes للنافذة، وAutoSize = False وBorderStyle = FixedSingle للعنوان.
3) فكرة الكود
- تحديد الكائن المسؤول عن تنفيذ الكود وعند أي حدث (هنا الضغط على Button1).
- الإعلان عن المتغيرات.
- تحديد النظام العددي المحوَّل منه.
- تحديد النظام العددي المحوَّل إليه.
- تنفيذ التحويل، إما بكود مفتوح المصدر مع تطويره، أو بدالة جاهزة في اللغة، أو بكود من إعدادك.
4) تفسير الكود المستخدم (دالة جاهزة)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim value As String = Me.TextBox1.Text
Dim baseType As Integer
Dim toBase As Integer
Dim fromBase As Integer
If Me.RadioButton1.Checked Then
baseType = 10
ElseIf Me.RadioButton2.Checked Then
baseType = 16
Else
baseType = 2
End If
If Me.RadioButton4.Checked Then
toBase = 10
ElseIf Me.RadioButton5.Checked Then
toBase = 16
Else
toBase = 2
End If
fromBase = Convert.ToInt32(value, baseType)
MsgBox(Convert.ToString(fromBase, toBase))
End Sub
| الجزء | وظيفته |
|---|---|
1) معالج الحدث Handles Button1.Click | ينفَّذ الكود عند النقر على الزر Button1 |
2) الإعلان عن المتغيرات Dim | value نصي يحمل ما كُتب في TextBox1، وbaseType أساس النظام المحوَّل منه، وtoBase أساس النظام المحوَّل إليه، وfromBase ناتج التحويل |
| 3) تحديد النظام المحوَّل منه | عبارة If … ElseIf … Else تفحص أي RadioButton في GroupBox1 مُحدَّد وتسند 10 أو 16 أو 2 إلى baseType |
| 4) تحديد النظام المحوَّل إليه | الفكرة نفسها مع GroupBox2 ويُسند الناتج إلى toBase |
| 5) دالة التحويل | Convert.ToInt32(value, baseType) تحوّل النص من النظام المحدد إلى عدد صحيح، ثم Convert.ToString(fromBase, toBase) تعرضه بالنظام المطلوب في MsgBox |
مثال تشغيل: إدخال 1A مع «سداسي عشر» إلى «عشري» يعطي 26، وإدخال 11 (عشري) إلى «ثنائي» يعطي 1011.
5) تشغيل البرنامج واختباره
بعد إدراج العناصر وضبط الخصائص وكتابة الكود تضغط Start Debugging، وتدخل عددًا في نظام معين، وتتحقق من مكافئه في النظم الأخرى. استعمل أرقام الأمثلة التي حسبتها يدويًا (مثل 25 ← 11001) لتتأكد من صحة البرنامج.
أمثلة وتطبيقات
- ما وظيفة
Handles Button1.Click؟ تربط الكود بحدث النقر على الزر فينفَّذ عندئذ. - ماذا يخزّن
baseType؟ أساس النظام المحوَّل منه (10 أو 16 أو 2) بحسب الاختيار في GroupBox1. - ماذا تُرجع
Convert.ToString(11, 2)؟ النص1011. - ماذا تُرجع
Convert.ToInt32("FF", 16)؟ العدد255. - لماذا نستعمل RadioButton؟ لأن المطلوب اختيار نظام واحد فقط من الثلاثة.
ملاحظات مهمة
- الأداة
Convert.ToInt32(value, baseType)تفترض أن النص مكتوب بالأساسbaseType؛ فإدخال2مع اختيار «ثنائي» يسبب خطأ لأن 2 ليس رمزًا ثنائيًا. - المتغير
valueنصي (String) لأن الأعداد السداسية عشرية قد تتضمن حروفًا. - في
If … ElseIf … Elseالحالة الأخيرةElseتعني النظام الثنائي عندما لا يكون العشري ولا السداسي عشر محددًا. - ينفَّذ الكود عند النقر على الزر، ولا ينفَّذ تلقائيًا عند الكتابة في مربع النص.
- ضبط خاصية
RightToLeftيجعل اتجاه العرض من اليمين إلى اليسار في النافذة.
المفاهيم الأساسية
- مراحل المشروع: تصميم الواجهة، كتابة الكود، التنفيذ والاختبار.
- عناصر التحكم: Form وLabel وTextBox وGroupBox وRadioButton وButton.
- أجزاء الكود الخمسة: معالج الحدث، الإعلان عن المتغيرات، المحوَّل منه، المحوَّل إليه، دالة التحويل.
Convert.ToInt32(value, base)وConvert.ToString(number, base).
ملخص الدرس
يتم إنتاج مشروع التحويل بتصميم نافذة بعناصر تحكم (Label وTextBox وGroupBox وRadioButton وButton)، ثم كتابة كود ينفَّذ عند نقر الزر: يعلن المتغيرات ويحدد النظام المحوَّل منه والمحوَّل إليه بحسب RadioButton المختار، ثم يستعمل Convert.ToInt32 وConvert.ToString لتحويل العدد وعرضه في MsgBox. وأخيرًا يُشغَّل البرنامج ويُختبر بأعداد معروفة النتيجة.
أسئلة للتدريب
- عدّد الإجراءات العامة الثلاثة لتنفيذ مشروع التحويل.
- ما الغرض من كل من: TextBox1 وGroupBox1 وRadioButton وButton1؟
- اشرح الجزء الثالث من الكود (تحديد النظام المحوَّل منه).
- ماذا ينتج عن
Convert.ToInt32("101", 2)ثمConvert.ToString(5, 16)؟ - اقترح ثلاث حالات اختبار لبرنامج التحويل، إحداها إدخال غير صالح.