شرح الجملة الشرطية If Then
يعتبر الأمر البرمجي If – Then
من أهم الأوامر التي تبنى عليها معظم برامج الحاسوب بشكل عام، وفي برنامج الفيجوال
بيسيك Visual Basic. فعلى الرغم من بساطتها
وسهولة كتابتها فهي لا تخلو من وجودها في العديد من البرامج المتطورة وحتى المعقدة
منها.
الصيغة العامة للجملة الشرطية If – Then
يكتب الشكل العام لأمر البرمجي If - Then على النحو التالي:
If الشرط الأساسي أو المعادلة = قيمة
Then
إذا تحقق الشرط
الأساسي الذي في الأعلى، قم بتنفيذ الأمر الموجود هنا
Else
إذا لم يتحقق الشرط
الأساسي الذي في الأعلى، قم بتنفيذ الأمر الموجود هنا
End If
أمثلة متعددة على الجملة الشرطية If في برنامج الفيجوال بيسيك
المثال الأول: قم بكتابة برنامج في لغة فيجوال بيسيك يقوم بطباعة تقييم علامة الطالب المدخلة في مربع الادخال Text1، وإظهار التقييم في Label1 على النحو التالي؛ علامة النجاح هي 50 علامة، تقييم النجاح الذي سيظهر في Label1 “Passed” أما الرسوب فهو “Failed”.
1
|
عرف متغيرا باسم X من النوع "عدد حقيقي"
|
Dim X As Double
|
2
|
قم بنقل
القيم المدخلة في Text1
وتخزينها في المتغير X
|
X = Val
(Text1.Text)
|
3
|
هنا يقع الشرط الأساسي (هل القيمة
المدخلة أكبر من أو تساوي العدد 50)
|
If X >= 50 Then
|
4
|
إذا
تحقق الشرط أعلاه، أظهر العبارة Passed
داخل Label1
|
Label1.Caption = "Passed"
|
5
|
غير ذلك (أي أن علامة الطالب المدخلة أقل
من 50)
|
Else
|
6
|
قم
بإظهار العبارة Failed في Label1
|
Label1.Caption = "Failed"
|
7
|
أمر يشير الى انتهاء الجملة الشرطية
(انتهاء دور IF)
|
End If
|
الأمر البرمجي Mod في فيجوال بيسيك
يمثل الأمر mod
باقي قسمة عدد على آخر وتكون صيغته العامة على النحو التالي:
Z = X mod Y
أي أن باقي قسمة العدد X
على العدد Y سيتم تخزينها في المتغير Z.
المثال التالي يوضح فكرة تخزين وطباعة باقي قسمة العدد 3 على العدد 2 في
المتغير الصحيح Z
1
|
عرف المتغير Z كعدد صحيح
|
Dim Z
As Integer
|
2
|
قم بتخزين باقي قسمة الغدد 3 على العدد 2
في المتغير Z
|
Z = 3 Mod
2
|
3
|
اطبع قيمة المتغير Z (والتي ستكون 1 في هذه الحالة)
|
Print Z
|
ملاحظة: باقي قسمة أي عدد زوجي على العدد 2 هو صفر، وعليه فإن كان باقي القسمة على العدد 2 لا يساوي صفر، فإن العدد المقسوم هو عدد فردي. والمثال التالي يوضح الفكرة.
المثال الثاني: في هذا المثال سنتطرق الى استخدام الأمر البرمجي Mod وكتابة كودا برمجيا بلغة فيجوال بيسيك Visual Basic يقوم بتصنيف العدد المدخل في Text1 الى فردي أو زوجي عن طريق طباعة العبارة Even (زوجي) أو Odd (فردي) في Label1 بعد الضغط على الزر Command1.
1
|
عرف متغيرا باسم X من النوع
"عدد حقيقي"
|
Dim X As Double
|
2
|
قم بنقل
القيم المدخلة في Text1 وتخزينها في
المتغير X
|
X = Val
(Text1.Text)
|
3
|
هنا يقع الشرط الأساسي (هل القيمة
المدخلة أكبر من أو تساوي العدد 50)
|
If X >= 50 Then
|
4
|
إذا
تحقق الشرط أعلاه، أظهر العبارة Passed داخل Label1
|
Label1.Caption = "Passed"
|
5
|
غير ذلك (أي أن علامة الطالب المدخلة أقل
من 50)
|
Else
|
6
|
قم
بإظهار العبارة Failed في Label1
|
Label1.Caption = "Failed"
|
7
|
أمر يشير الى انتهاء الجملة الشرطية
(انتهاء دور IF)
|
End If
|
نلاحظ أن المتغير X
تم تعريفه على أنه عدد صحيح وذلك لأن الأعداد الزوجية والفردية هي فقط أعداد صحيحة
ولا تحوي أعشارا أو كسورا في بيئتها.
المثال الثالث: مثال فيه العديد من الأوامر If - Then
في هذا المثال سنتوسع أكثر ونضيف عددا أكبر من الأوامر البرمجية IF – Then، وكتابة أوامر برمجية توصف علامة الطالب
المدخلة في Text1 وإظهار تقديرها داخل Label1 كما
في الجدول التالي:
علامة الطالب
|
التقدير
|
من 0 الى 49
|
راسب Fail
|
من 50 الى 64
|
مقبول Fair
|
من 65 الى 74
|
جيد Good
|
من 75 الى 84
|
جيد جدا Very Good
|
من 85 الى 99
|
ممتاز Excellent
|
أكبر من 100 أو أقل من 0
|
علامة خاطئة Invalid
|
حل المثال الثالث:
1
|
عرف متغيرا باسم x من النوع "عدد حقيقي"
|
Dim x As Double
|
2
|
نقل
القيمة من Text1 وتخزينها في المتغير x
|
x =
Val(Text1.Text)
|
3
|
هل قيمة x أكبر من أو تساوي 0 وأقل من 49
|
If x >= 0 And x < 49 Then
|
4
|
إذا كان
الجواب نعم فاطبع العبارة Fail
في الـ Label1
|
Label1.Caption = "Fail"
|
5
|
غير ذلك، أي ان لم يتحقق الشرط رقم 3
انتقل الى الخطوة التالية
|
Else
|
6
|
هل قيمة
x أكبر من أو تساوي 50 وأقل من 65
|
If x
>= 50 And x < 65 Then
|
7
|
إذا كان الجواب نعم فاطبع العبارة Fair في الـ Label1
|
Label1.Caption
= "Fair"
|
8
|
غير
ذلك، أي ان لم يتحقق الشرط رقم 6 انتقل الى الخطوة التالية
|
Else
|
9
|
هل قيمة x أكبر من أو تساوي 65 وأقل من 75
|
If x >= 65 And x
< 75 Then
|
10
|
إذا كان
الجواب نعم فاطبع العبارة Good
في الـ Label1
|
Label1.Caption = "Good"
|
11
|
غير ذلك، أي ان لم يتحقق الشرط رقم 9
انتقل الى الخطوة التالية
|
Else
|
12
|
هل قيمة
x أكبر من أو تساوي 75 وأقل من 85
|
If x
>= 75 And x < 85 Then
|
13
|
إذا كان الجواب نعم فاطبع العبارة Very Good في الـ Label1
|
Label1.Caption
= "Very Good"
|
14
|
غير
ذلك، أي إن لم يتحقق الشرط رقم 12 انتقل الى الخطوة التالية
|
Else
|
15
|
هل قيمة x أكبر من أو تساوي 85 وأقل من 100
|
If x >= 85 And x
< 100 Then
|
16
|
إذا كان
الجواب نعم فاطبع العبارة Excellent
في الـ Label1
|
Label1.Caption = "Excellent"
|
17
|
غير ذلك، أي ان لم يتحقق أي شرط من
السابق، فانتقل الى الخطوة التالية
|
Else
|
18
|
فاطبع
العبارة Invalid في الـ Label1 (أي في حال كانت القيمة المدخلة أكبر أو
تساوي 100 أو أقل من 0)
|
Label1.Caption = "Invalid"
|
19
|
أمر يشير الى انتهاء حدود الجملة
الشرطية 15
|
End If
|
20
|
أمر
يشير الى انتهاء حدود الجملة الشرطية 12
|
End If
|
21
|
أمر يشير الى انتهاء حدود الجملة
الشرطية 9
|
End If
|
22
|
أمر
يشير الى انتهاء حدود الجملة الشرطية 6
|
End If
|
23
|
أمر يشير الى انتهاء حدود الجملة الشرطية 3
|
End If
|
والشكل التالي يوضح تقدير علامة طالب حصل على العلامة 72 وظهور تقديره
في Label1