Professional Documents
Culture Documents
تقدٌم
أخوكم إبراهٌم عـدو ،موظـف ببلدٌـة أكلٌـم بركان المغـرب ،لست مبرمجا بل متعلما من الدروس والكتب التً تعرض على مواقع
األنترنت ،تمنٌت لو أن لً أستاذا ٌأخذ بٌدي إلى عالم اإلحتراف فً لغة الفٌجوال بٌسك دوت نت ،أحببت أن أقدم كتابً هذا خدمة لإلخوة
واألحبة فً الوطن العربً واإلسالمً ،للمهتمٌن بلغة البرمجة الفٌجوال بٌسك دوت نت بالخصوص ،هو كتاب ألفته بجهدي المتواضع
بصٌغة ، PDFعبارة عن ترجمة كتابٌة لما تحمله المحاضرات السمعٌة البصرٌة ألخٌنا الفاضل المبرمج الدكتور عاطف العراقً جزاه هللا
عنا خٌر الجزاء .
ربما ٌسأل سائل وما الجدوى من هذا الكتاب إذا كانت هناك أصال فدٌوهات لمبرمج كبٌر مثل د.عاطف العراقً؟
الجواب :هو أن الذي ٌرٌد تعلم البرمجة وتطبٌق ما ٌوجد فً هذه الفٌدٌوهات ،ال ٌستطٌع عمل نسخ ولصق لما تحمله من أكواد إلى
برنامجه لٌتدرب علٌها بسهولة .عالوة على ذالك ،األكواد البرمجٌة على الفٌدٌوهات التعلٌمٌة غٌر واضحة بالنسبة للمبتدئٌن عكس
الدروس المكتوبة التً تحملها أوراق الكتب .
فما علٌك أخً سوى تثبٌت برنامج الفٌجوال ستودٌو 2008أو ، 2010و تحمٌل فٌدٌوهات المبرمج الدكتور عاطف العراقً على
حاسوبك ،لتبدأ التعلم .
هذا الكتاب مجانً ،ما أرجوه منكم ،هو أن تدعو لً ولعائلتً بصالح األعمال والتوفٌق .
اسم الكتاب :الفٌجوال بٌسك دوت نت :ترجمة كتابٌة لمحاضرات د .عاطف العراقً الجزء األول +الجزء الثانً واألخٌر
1
أْذاف ذؼهى انثشيدح ٔذطثٛماذٓا انًساضشج سلى 01
=======================================================
CONSOLES APPLICATIONS
WINDOWS APPLICATIONS
WEB APPLICATIONS
المعالـجــة
المخرجــات
اسماء المتغٌرات المطلوب اخراجها = )(console.writeLine
2
CONSOLES APPLICATIONS
)(Sub Main
End Sub ْزا انثشَايح ٚشرغم ،اال أٌ ف ّٛتؼض انؼٕٛب َ ،رفاداْا ف ٙانثشَاير
اٜذ ،ٙأ٘ َسغُّ َٔطٕسِ...
End Module
3
انًثا ل االٔل : 2/2
)(Sub Main
End Module
)(Sub Main
)(num1 = Console.ReadLine
)" ?Console.WriteLine("Entrez le deuzieme nombre الكلمة أو الجملة التً تقع بٌن مزدوجتٌن (" ") هً
نص للطباعة ٌ ،كتبها البرنامج كما هً ،ال تحتوي أو
)(num2 = Console.ReadLine تحمل قٌمة برمجٌة معادالتٌة .
)(Console.ReadLine
End Sub
End Module
4
توصٌف المتغٌرات
Module module1
ًمتغٌر نص
Sub Main()
متغٌر رقمً صحٌح
Dim name As String
Dim age As Integer
Console.WriteLine("input name?") طباعة رسالة للمستخدم تطلب منه ادخال اسم
Sub Main()
ادخال متغٌر الرقم برسالة
Dim number, square As Integer
حساب متغٌر التربٌع
Console.WriteLine("enter number")
طباعة الرسالة
number = Console.ReadLine()
square = number ^ 2
Console.WriteLine(" square of " & number & " is " & square & ".")
Console.ReadLine() ادخال جملة لتوقٌف البرنامج
End Sub
End Module
Module Module1
Sub Main()
توصٌف المتغٌرات
Dim name As String
Dim length, length1, length2 As Integer ادخال متغٌر اإلسم برسالة
name = Console.ReadLine()
Console.WriteLine("enter length ?") طباعة الرسالة
length = Console.ReadLine()
عالمة القسمة مع اغفال الباقً غٌر موجودة عندي فً الكٌبورد: مالحضة
5
length1 = length / 100
length2 = length Mod 100
Console.WriteLine(name & " you are " & length1 & " metres " & length2 & " centimetres ")
Console.ReadLine()
End Sub
جملة ادخال لتوقٌف البرنامج
End Module
a = Console.ReadLine()
Console.WriteLine("enter parameter b")
b = Console.ReadLine()
حساب قٌمة الجذور
Console.WriteLine("enter parameter c")
c = Console.ReadLine()
x1 = (-b + (b ^ 2 - 4 * a * c )^ 0.5 / (2 * a)) طباعة قٌمة الجذور
x2 = (-b - (b ^ 2 - 4 * a * c) ^ 0.5 / (2 * a)) جملة ادخال لتوقٌف البرنامج
Console.WriteLine(" x1 = " & x1 & " x2 = " & x2)
ٌقع خطأ فً البرنامج الحل فً الجمل: مالحظة
Console.ReadLine() ًالشرطٌة كما سٌات
6
End Sub
End Module
نفس البرنامح السابق اال اننا قمنا هنا باضافة حساب وسٌط لتوفٌر
Module Module1 . الوقت وزٌادة الكفاءة
Sub Main()
Dim a, b, c, d, x1, x2 As Integer
Console.WriteLine("enter parameter a")
a = Console.ReadLine()
Console.WriteLine("enter parameter b")
b = Console.ReadLine()
Console.WriteLine("enter parameter c")
c = Console.ReadLine()
ٌقع خطأ فً البرنامج الحل فً الجمل الشرطٌة كما: مالحظة
d=b^2-4*a*c
ًسٌات
x1 = (-b + d^ 0.5) / (2 * a)
x2 = (-b - d^ 0.5) / (2 * a)
Console.WriteLine(" x1 = " & x1 & " x2 = " & x2)
Console.ReadLine()
End Sub
End Module
حٍٛ تاندًم انششطٛ نٓزا عٕف َغرؼ، أخطاء أثُاء انثشَايحٙاطاخ انالصيح نًُغ انٕلٕع فٛهضو أخز اإلزرٚ
حٛاندًم انششط
Module Module1
Sub Main()
توصٌف المتغٌرات
Dim a, b, c, d, x1, x2 As Decimal
Console.WriteLine("enter parameter a ?")
a = Console.ReadLine()
Console.WriteLine("enter parameter b ?")
b = Console.ReadLine()
حساب قٌمة المعامل الممٌز
Console.WriteLine("enter parameter c ?")
c = Console.ReadLine()
d=b^2-4*a*c شرط حسب قٌمة المعامل الممٌز
If d >= 0 Then
x1 = (-b + d ^ 0.5) / (2 * a) ًجواب الشرط فً حالة كون قٌمة المعامل الممٌز حقٌق
x2 = (-b - d ^ 0.5) / (2 * a)
Console.WriteLine(" x1 = " & x1 & " x2 = " & x2)
7
Else
Console.WriteLine("the roots are imaginary") ًجواب الشرط فً حالة كون قٌمة المعامل الممٌز تخٌل
End If
Console.ReadLine()
End Sub
End Module
Module Module1
رسالة الدخال قٌمة المتغٌر
Sub Main()
Console.Write("enter value") توصٌف المتغٌر وادخال قٌمته فً آن واحد
Sub Main()
نستطٌع أن نجمع توصٌف المتغٌرات مع جملة ادخال القٌمة فً آن واحد: مالحضة
Dim value As Integer .كما سبق أن رأٌنا ذالك
Console.WriteLine("value?")
value = Console.ReadLine()
If value = 0 Then
Console.WriteLine(" value = 0 ")
Else
Console.WriteLine(" value " & value & " is not equal to zero ")
End If
Console.ReadLine()
01 نهاٌة المحاضرة رقم
End Sub
End Module
8
انًساضشج سلى 02
اندًم انركشاسٚح
Module Module1 تعالوا لنكتب هذا البرنامج بطرٌقة أخرى فً البرنامج اآلتً
)(Sub Main
)Console.WriteLine(1 سوف ٌطبع لنا البرنامج رقم 1 :
)Console.WriteLine(2
2
)Console.WriteLine(3
3
)Console.WriteLine(4
)(Console.ReadLine 4
End Sub
End Module
Module Module1 هذا البرنامج سوف ٌكتب لنا رقم 3 ، 2 ، 1ثم . 4لكن لو افترضنا أننا نرٌد أن ٌكتب لنا البرنامج
)(Sub Main من 1الى ، 100سوف ٌصعب علٌنا كتابة الجملة ل 100مرة .ولهذا ٌوجد فً الفٌجوال بٌسك ما
ٌسمى بالجملة التكرارٌة .هً حل لهذه المشكلة .تابع فً البرنامج اآلتً .
Dim value As Integer
value = value + 1 المتغٌر أخذ قٌمة أولٌة التً تساوي صفر()0
)Console.WriteLine(value
value = value + 1 سوف ٌطبع لنا البرنامج رقم 1 :
)Console.WriteLine(value
2
value = value + 1
)Console.WriteLine(value 3
اندًم انركشاسٚح: البرنامج ٌكرر جمل التكرار طالما شرط التكرار متحقق وإال سوف ٌتابع البرنامج عمله لما بعد
Loop كلمة
Do while ششط انركشاس :طالما ،مادام شرح while :
Loop
9
لنفترض أننا نرٌد من البرنامج أن ٌطبع أو ٌكتب لنا األرقام من 1إلى 10
Module Module1 كما قلنا سابقا أن المتغٌر الرقمً دائما قٌمته األولٌة تساوي ، 0ولهذا أضفنا له واحد()1
لنفسر كٌف ٌعمل البرنامج بالحلقة التكرارٌةٌ :مر البرنامج وٌنفذ سطرا سطرا ٌ ،بدأ األول
)(Sub Main التً تساوي رقم1 بطباعة قٌمة value
Dim value As Integer
ٌقرأ أوال جملة المعادلة وٌقوم بالعملٌة الحسابٌة (المعالجة)
Do While value < 10
ثم ٌنزل الى السطر الموالً الذي ٌعنً طباعة قٌمة المتغٌر(اإلخراج)
value = value + 1
)Console.WriteLine(value لٌتحقق من ٌرجع الى الجملة الشرطٌة while عندما ٌصل الى كلمة Loop
Loop الشرط :هل ال زال المتغٌر أصغر من ، 10وٌقوم بنفس العمل الذي قام به فً األول (صعودا
)(Console.ReadLine وهبوطا ) حتى ٌنتهً من طباعة جمٌع األرقام حتى ، 10حٌن ٌصبح قٌمة المتغٌر أكبر أو
End Sub
لٌنفذ ماتبقى من البرنامج أو الكود . Loop ٌساوي 10سوف ٌمر البرنامج الى ما بعد
End Module
)(Console.ReadLine 12
13
End Sub 14
15
End Module
Sub Main() end وstart value معناه اننا نترك اإلختٌار للمستخدم ٌدخل القٌم ل
Console.WriteLine("enter start value ?") . value
وٌطبعه20 الذي ٌساويvalue-1 ألن البرنامح سٌمر على جملة، 20 ولم نكتب21 لماذا كتبنا
Sub Main() . بداٌة
Dim value As Integer = 21 ً وٌنزل الى الجملة الت11 بvalue سوف ٌمر علٌه الvalue >10 الحظوا أن جملة الشرط
Do While value > 10 فً آخر10 وٌنزل الى الجملة التً تلٌها أي جملة الطباعة وٌطبع النتٌجة1 تلٌها ٌنقص منه
: ً الطباعة كاآلت. ًدوراته وٌنته
value = value - 1
Console.WriteLine(value) 20
Loop 19
Console.ReadLine() 18
End Sub
. 10 حتى
End Module
Sub Main() . ما بٌن مزدوجتٌن جملة نصٌة تطبع كما هً حرفٌا
Dim base As Integer = 2 ما ال ٌوجد بٌن مزدوجتٌن تابع للبرنامج أي ٌحمل قٌمة برمجٌة
Dim exponent As Integer = 1
Dim result As Integer = base ^ exponent
Do While result < 1000
Console.WriteLine("base:" & base & ", exponent:" & exponent & ", result:" & result)
exponent = exponent + 1 1000 رقمresult هنا البرنامج ٌكررعملٌة الطباعة شرط أن ال ٌتعدى
result = base ^ exponent
وبهذا تتغٌر النتٌجة1 هو الذي ٌنضاف الٌه فً كل مرة أو فً كل كرة العددexponent هنا األس
Loop . فً كل مرة
Console.ReadLine()
End Sub
End Module
Module Module1
Sub Main()
Console.WriteLine("value?") من المستخدمvalue جملة الدخال القٌمة
Dim value As Integer = Console.ReadLine() الذي ٌساوي ما سٌدخله المستخدم من قٌمةvalue جملة توصٌف ال
If value = 0 Then
جملة الشرط الذي ٌجب ان ٌتحقق
Console.WriteLine("zero")
( وإال ) معناه إذا لم ٌتحقق الشرط السابق ذكره
Else
If value > 0 Then شرط ثانً اذا لم ٌتحقق الشرط األول
Console.WriteLine("above zero")
Else ) ( وإال
Console.WriteLine("bellow zero")
واال ) سوف0 ً اطبع ل0 اذا كان ٌساويvalue معنى البرنامج أن ال
End If أكبرvalueنضع شرطٌن الن العدد اما موجب أو سالب ) اذا كان ال
End If ً واال اذا كان ال هذا وال ذاك اطبع ل، اطبع لً الجملة بٌن قوسٌن0 من
. النص بٌن قوسٌن
Console.ReadLine()
End Sub
End Module
12
Module Module1 جدول الضرب
)(Sub Main
Dim basevalue As Integer = 1 الحظ أن هناك شرطٌن متداخلٌن أحدهما فً اآلخر
Dim factor As Integer = 1 وأن ال LOOPاألول ٌنتمً للشرط الثانً وال LOOPالثانً ٌنتمً للشرط األول
Dim multiplication As Integer
الحظ شكل الفقرات ٌدل على ذالك.
Do While basevalue < 10
جملة الطباعة بدونها الٌطبع البرنامج المعادلة التً نرٌدها
Do While factor < 10
multiplication = basevalue * factor
)Console.WriteLine(basevalue & "*" & factor & "=" & multiplication
factor = factor + 1 انتبه البرنامج سوف ٌقرأ الشرط األول ثم ٌنزل لٌقرأ الشرط الثانً حتى ٌصل الى ال LOOPالذي
Loop ٌنتمً له أي ال LOOPاألول ولن ٌتخطاه ٌبدا فً الصعود والنزول ماٌقرب 9أو 10مرات طبعا
مع تنفٌذ محتوى الشرط أي الطباعة .
basevalue = basevalue + 1
Loop أخً الكرٌم اذا أردت أن تشاهد عمل البرنامج كٌف ٌعمل خطوة خطوة ،فما علٌك اال الضغط على
الزر المتواجد أعاله ( سهم مقوس الى األسفل تجاه أسطر صغٌرة )
)(Console.ReadLine
End Sub وكأنه معلم ٌشرح لك كٌف ٌعمل البرنامج خطوة خطوة.
تعترضنا مشكلة ٌاأخً وهً أن ال factorعندما ٌصل الى قٌمة 10لن ٌستمر فً طباعة كل
End Module جدول الضرب ،الحل هو أن نضٌف جملة factor = 1تحت جملة الشرط األولى ،تابع الحل فً
البرنامج اآلتً .
Module Module1
)(Sub Main
Dim basevalue As Integer = 1
Dim factor As Integer = 1
Dim multiplication As Integer
Do While basevalue < 10 الجملة التً أضفناها لحل المشكلة لٌبدأ ال factorمن جدٌد بقٌمة مبدئٌة 1وٌضٌف علٌه
factor = 1 فً كل دورة داخل الشرط الثانً
13
)(Console.ReadLine
End Sub
End Module
)(Sub Main
Dim value As Integer
الجملة الشرطٌة تعنً أنه إذا كان باقً القسمة على 2تساوي ، 0فأطبع لً الجملة الواقعة
Do While value < 10
بٌن قوسٌن
value = value + 1
If value Mod 2 = 0 Then
)" Console.WriteLine(value & " is an even number
Else
)" Console.WriteLine(value & " is an odd number
وإال
End If
إذا لم ٌتحقق الشرط ،فاطبع لً الجملة المتواجدة بٌن قوسٌن
Loop
نهاٌة الجملة الشرطٌة
)(Console.ReadLine
End Sub نهاٌة الجملة التكرارٌة
نهاٌة البرنامج
End Module مالحضة :هنا استعملنا الجملة الشرطٌة داخل الجملة التكرارٌة ألننا فً حاجة إلى ذالك لٌقسم األرقام من
1حتى 10مع شرط أن ٌطبع كذا إذا كان باقً القسمة علىٌ 2ساوي 0وٌطبع كذا إذا كان العكس.
Module Module1
للتذكٌر:
)(Sub Main
جملة لتوصٌف أو اإلعالن عن المتغٌرات
Dim value As Integer
جملة التكرار التً تحتوي على الشرط value < 10التً تنتهً الى غاٌة كلمة LOOP
Do While value < 10
value = value + 1 راجع فً الدروس السابقة لماذا أضفنا هنا على ال valueالعدد ، 1حتى ال نكرر شرح ما قد
مضى ..
If value Mod 2 = 0 Then
)" Console.WriteLine(value & " is an even number
Else
)" Console.WriteLine(value & " is an odd number
End If معنى الجملة الشرطٌة أنه إذا كان القٌمة valueمقسوم على 2الباقً ٌساوي ، 0اطبع لً القٌمة
Loop valueعدد زوجً ،وإال ،اطبع لً القٌمة valueعدد فردي .
)(Console.ReadLine انتبه ،الجملة الشرطٌة تبقى سارٌة المفعول داخل الجملة التكرارٌة مادام ال. value < 10
End Sub
جملة الرجوع الى السطر و نهاٌة البرنامج
End Module
Module Module1 فً هذا البرنامج أو الكود ،عندنا القٌمة valueالتً ٌدخلها المستخدم ،وال highest value
التً هً أكبر قٌمة ٌدخلها المستخدم .
)(Sub Main شرط التكرار وعدم المرور الى ما بعد كلمة LOOPهو أن تكون القٌمة . value >= 0
Dim value As Integer
انتهاء الجملة الشرطٌة
Dim highestvalue As Integer
انتهاء الجملة التكرارٌة
Do While value >= 0
)"?Console.WriteLine("value
)(value = Console.ReadLine
If value > highestvalue Then معنى البرنامج هو عندما ال ٌتحقق الشرط الموجود فً رأس الجملة التكرارٌة ،أي ٌصبح ال
highestvalue = value ٌ ، value < 0خرج البرنامج الى ما بعد ال Loopلطباعة أكبر قٌمة التً هً Highest
Value
End If
Loop
)Console.WriteLine("highest value:" & highestvalue
15
)(Console.ReadLine هذه جملة اإلخراج سٌنفذها البرنامج عندما ٌخرج من التكرار ،متى ؟ الجواب :عندما تكون القٌمة المدخلة
End Sub أصغر من 0مثال ( ،) -1وعلى ما تحتوي هذه الجملة؟ الجواب :طباعة ( ال : Highest Valueأكبر قٌمة
أدخلها المستخدم) .
End Module
فْ ٙزِ انسهمح عٕف َرؼشف ػهٗ يصطهر خذٚذ ف ٙػانى ششط انركشاس
End Sub
End Module
َصٛسح يًٓح :أخ ٙانكشٚى زرٗ ال ذُغٗ أٔ ذخرهظ ػهٛك األيٕس نكثشج ٔسٔد يصطهساخ خذٚذج ساخغ دسٔط اندًم
انركشاسٚح ٔانششطٛح تذلح .
فْ ٙزِ انسهمح عٕف َضٛف يصطهس ٍٛف ٙػانى اندًم انركشاسٚح انششطٛح
DO …….... LOOP WHILE يإْ انفشق ؟ اندٕاب :أٌ انششط ُٚفز ُْا فَٓ ٙاٚح انركشاس
16
*******************
DO UNTIL …….… LOOP
DO ……….. LOOP UNTIL يإْ انفشق ؟ اندٕاب :أٌ انششط ُٚفز فَٓ ٙاٚح انركشاس
برنامج لطباعة األرقام من 1الى الرقم الذي أدخله المستخدم بشرط أن ٌكون أصغر أو ٌساوي ال. value
Module Module1
)(Sub Main
)"?Console.WriteLine("highest value جملة طباعة تطبع النص التالً فٌما معناه (:أدخل القٌمة األكبر؟)
)(Dim highest As Integer = Console.ReadLine تطلب من المستخدم إدخال قٌمة .
)"Console.WriteLine("row:
جملة توصف متغٌرال highestمع إدخاله فً نفس الوقت من طرف المستخدم
Dim value As Integer
مالحضة مهمة :فً البداٌة الٌوجد أي شرط ،هو موجود فً آخر الجملة التكرارٌة ،
Do
value = value + 1 لو افترضنا أن المستخدم أدخل قٌمة لل highestتساوي 0ما ذا سٌحصل ؟ سوف ٌطبع لنا
البرنامج رقم 1فقط ،كٌف حصل ذالك ؟
)Console.WriteLine(value
Loop Until value >= highest -1البرنامج أضاف على القٌمة المبدئٌة لل valueالذي هو 0رقم . 1
-3ثم نزل الى الجملة التكرارٌة ،التً تنهً التكرارعند تحقق الشرط ،فٌقرأ أن رقم 1أكبر
End Sub من القٌمة 0التً أدخلها المستخدم فٌنهً التكرار مادام الشرط قد تحقق (راجع شروح الجمل
التكرارٌة – Untilو ) -Do while
End Module لو جعلنا الشرط فً بداٌة الجملة ،ماذا سٌحصل ؟ لن ٌطبع لنا أي رقم. انتبـــــــــــه
الكود موجود تحت هذه السطور.
Module Module1
نفس الكود أعاله لكن مع نقل الشرط الى بداٌة الجملة
)(Sub Main
لنقرأ الكود سطرا سطرا
)"?Console.WriteLine("highest value
)(Dim highest As Integer = Console.ReadLine توصٌف المتغٌرات مع ادخالها
حسب رأًٌ الكود الحالً هو حل لمشكلة الكود األول ،ألن ال 0الذي 17
FOR………………….NEXT خالصح :انركشاس ٚرى تأعهٕب صؼة َٕػا يا ،ف ّٛطشٚمح أخشٖ نهركشاس انرْٙ ٙ
القٌمة النهائٌة
اندًــــــم انركشاسٚـــــح
الزٌادة فً القٌم
Next
)(Sub Main
Dim value As Integer
ال valueهنا تساوي من 1الى 10
For value = 1 To 10
)Console.WriteLine(value
Next جملة اإلخراج سوف تطبع لنا ال valueمن 1الى 10
)(Console.ReadLine
End Sub
Module Module1 هنا فً هذا الكود استعملنا Step 2أي أنه سوف ٌقوم بطباعة األرقام بزٌادة ، 2الى غاٌة رقم
)(Sub Main ، 10ابتداءا برقم 2هكذا:
End Module وٌمكن أن نطبع األرقام عكس ما سبق أي تنازلٌا كما هو مبٌن فً الكود اآلتً:
18
Module Module1
Next 8
Console.ReadLine()
6
4
End Sub
2
End Module 0
Module Module1
End Sub
End Module
19
يٓى :يا ْٕ انفشق ت ٍٛاندًم انركشاسٚح For … Next ٔ Do… Loop ،؟ عؤال
If …………. Then نقط مهمة ٌ :مكن أن نجد جمل شرطٌة داخل الجمل الشرطٌة
Else وكذالك ٌمكن أن نجد جمل تكرارٌة داخل الجمل التكرارٌة.
If …… then
جملة شرطٌة داخل جملة شرطٌة
Else
End if
End if
20
3 انًساضشج سلى
Selections ــــــــــــاساخٛانخ
Module Module1
value جملة طباعة رسالة للمستخدم ألدخال قٌمة
End If
End If
Console.ReadLine()
End Sub
Sub Main()
Console.WriteLine("value?")
Dim value As Integer = Console.ReadLine()
If value = 0 Then Console.WriteLine("zero")
If value > 0 Then Console.WriteLine("positive value")
If value < 0 Then Console.WriteLine("negative value")
Console.ReadLine()
End Sub ًلكن أفضل طرٌقة لكتابة البرامج المتعدد الشروط ٌأتً ف
:ًالبرنامج التال
End Module
21
Module Module1
Sub Main()
Console.WriteLine("value?")
Dim value As Integer = Console.ReadLine() value اختٌار القٌمة
Select Case value فاطبع لً النص الموجود بٌن1 قٌمة تساويvalue إذا اختار المستخدم لل
Case 1 (one) مزدوجتٌن
Console.WriteLine("one") فاطبع لً النص الموجود بٌن2 قٌمة تساويvalue إذا اختار المستخدم لل
Case 2 (two) مزدوجتٌن
Console.WriteLine("two") الخ....
Case 3
Console.WriteLine("three")
Case Else
Console.WriteLine("not one,two or three.")
End Select
Console.ReadLine()
End Sub
Module Module1
Sub Main() شبٌه بالبرنامج السابق
Console.WriteLine("value?")
Dim value As Integer = Console.ReadLine()
Select Case value
Case 1
Console.WriteLine("one")
Case 2, 3, 4
Console.WriteLine("Two,three or four")
Case 5 To 10 ٌطبع الجملة التً بٌن، 10 و5 بٌنvalue إذا اختار المستخدم قٌمة لل
Console.WriteLine("value from 5 to 10") . مزدوجتٌن
Case Is > 10 ٌطبع الجملة التً بٌن، 10 أكبر منvalue اذا اختار المستخدم قٌمة لل
Console.WriteLine("more than 10") . مزدوجتٌن
End Select
Console.ReadLine()
End Sub
End Module
22
Module Module1 هذا البرنامج كتابته صحٌحة لكن عمله غٌر صحٌح .
)(Sub Main المشكلة هو أن البرنامج ٌطبع لنا دائما النص الموجود فً الجملة األولى
)"?Console.WriteLine("value ) )more than 10وإن أدخل المستخدم قٌمة أكبر من ، 100أو أكبر من
، 1000لماذا ؟
)(Dim value As Integer = Console.ReadLine
Select Case value ألن القٌم التً أدخلها المستخدم هً أٌضا أكبر منٌ . 10طبع النص األول
ثم ٌنزل الى End Selectوٌنهً البرنامج .
Case Is > 10
)"Console.WriteLine("more than 10 الحل هو أن نعكس الترتٌب من تحت لفوق
End Module
Module Module1
)(Sub Main اآلن البرنامج ٌستطٌع أن ٌطبع أي نص حسب القٌمة المختارة التً ٌدخلها
)"?Console.WriteLine("value المستخدم .بدون مشكلة.
23
Module Module1
)(Sub Main
)"?Console.WriteLine("value
)(Dim value As Integer = Console.ReadLine
Dim info As String
Select Case value
مالحضة :الفرق بٌن هذا الكود والكود السابق هو تموقع جملة الطباعة ،
Case Is > 100
فً الكود السابق كانت تأتً مباشرة بعد شرط من الشروط ،فً هذا الكود
"info = "more than 100 وضعت متأخرا بعد الكلمة األخٌرة للجملة الشرطٌة التسلسلٌة End select
Case Is > 50
فً هذا الكود أدخلنا متغٌر جدٌد infoمن نوع نصً لٌحمل النص حسب كل
"info = "more than 50 شرط من الشروط المتسلسلة ،ثم بعد ذالك تستدعٌه جملة الطباعة
Case 1, 11 المتواجدة فً آخر الكود .
)(Console.ReadLine
End Sub
End Module
ARRAYS
انًصفٕفاخ
? value 1 10 َمٕو تؼًم ػهٗ أعاط انًخشخاخ انرانٛح :
انًخشخاخ ْ ٙاألسلاو انًكرٕتح تاألزًش
? Value 2 20
60= 30+ 20+ 10 عٕف ٚطثغ نُا انثشَايح انؼًهٛح انسغاتٛح انرانٛح :
? value 3 30
24
Module Module1
Sub Main()
Dim value1, value2, value3 As Integer
Dim sum As Integer
Console.WriteLine("value1?") sum = sum+ value1 هذه الجملة معناها بصٌغة أخرى
value1 = Console.ReadLine()
sum += value1 0 ًدائما القٌمة األولٌة ألي متغٌر ه
Console.WriteLine("value2?")
value2 = Console.ReadLine() األولى نطبع فً نفس السطرwriteline ولٌسwrite الحظ أننا كتبنا
sum += value2 والثانٌة الرجوع الى سطر جدٌد
Console.WriteLine("value3?")
value3 = Console.ReadLine() علٌنا التفكٌر فً طرٌقة أسهل، هذا البرنامج أو المشروع كتب بطرٌقة صعبة
sum += value3
من هذا
Console.Write(value1)
Console.Write("+")
: ًالحل فً البرنامج ما بعد اآلت
Console.Write(value2)
Console.Write("+")
Console.Write(value3)
Console.Write("=")
Console.Write(sum)
Console.ReadLine()
End Sub
End Module
Module Module1
Sub Main()
Dim values(2) As Integer
Dim sum As Integer
Console.WriteLine("value1?")
values(0) = Console.ReadLine()
sum += values(0)
Console.WriteLine("value2?")
values(1) = Console.ReadLine()
sum += values(1)
Console.WriteLine("value3?")
values(2) = Console.ReadLine()
sum += values(2)
Console.Write(values(0))
Console.Write("+")
Console.Write(values(1))
Console.Write("+")
Console.Write(values(2)) سوف نطور هذا البرنامج ونتفادى التكرار الذي تالحظونه واضحا بالجملة
Console.Write("=") For Next التكرارٌة
Console.Write(sum)
Console.ReadLine()
End Sub
End Module
25
Module Module1
Sub Main()
For index = 0 To 2
Console.WriteLine("value" & index + 1 & "?")
values(index) = Console.ReadLine()
sum += values(index)
Next
Console.Write(values(0))
For index = 1 To 2
Console.Write("+")
Console.Write(values(index))
Next
Console.Write("=")
Console.Write(sum)
Console.ReadLine()
End Sub
End Module
Module Module1
Sub Main()
Console.WriteLine("count of values?")
Dim count As Integer = Console.ReadLine() لماذا كتبنا هنا ناقص واحد ؟ ألن القٌمة األولٌة ألي
Dim values(count) As Integer ، والصفر ٌعتد به واحد، 0 متغٌر أو مصفوفة هو
Dim sum As Integer
Dim index As Integer 11 ٌصبح10 إذا أدخل المستخدم مثال رقم
Console.Write(values(0))
Console.Write("=")
Console.Write(sum)
Console.ReadLine()
End Sub
End Module
26
Module Module1 كتابة األرقام بطرٌقة تنازلٌة
Sub Main()
Next
Console.ReadLine()
End Sub
End Module
Module Module1
Sub Main()
Console.ReadLine()
End Sub
End Module
27
انحً جخزٌ قًٍبElements عُبصز10 ٍ جحكىٌ يARRAY َُجز بزَبيجب يٍ يصفىفة
. 1 انى10 ٍ يvalues
Index : 0 1 2 3 4 5 6 7 8 9
Index : 10 9 8 7 6 5 4 3 2 1
: ًبذٍد أٌ انبزَبيج صىف ٌطبع نُب كبنحبن
Element1 (index0) : 10
Element2 (index1) : 9
Element2 (index1) : 8
Element2 (index1) : 7
Element2 (index1) : 6
Element2 (index1) : 5
Element2 (index1) : 4
……………………etc
Module Module1
Sub Main()
For index = 0 To 9
values(index) = 10 - index
Console.WriteLine("Element" & (index + 1) & " ( index " & index & "
):" & values(index))
Next
Console.ReadLine()
End Sub
End Module
انى1 ٍ جخزٌ قًٍب يELEMENTS عُبصز10 جذحىي عهىARRAYَُجز بزَبيجب ٌزجب يصفىفة
10
Index 0 1 2 3 4 5 6 7 8 9
Value 1 2 3 4 5 6 7 8 9 10
ًوفً جزٌب ذبًَ بشكم عكض
Index 0 1 2 3 4 5 6 7 8 9
Value 10 9 8 7 6 5 4 3 2 1
Module Module1
Sub Main()
28
For index = 0 To upperbound
values(index) = index + 1
Next
Console.WriteLine()
Dim backup As Integer
Console.ReadLine()
End Sub
End Module
انى1 ٍ جخزٌ قًٍب يELEMENTS عُبصز10 جذحىي عهىARRAYَُجز بزَبيجب ٌزجب يصفىفة
10
فانظر فً الفٌدٌو هً بشكل أوضح وأعم، المسألة التً أكتبها هنا مختصرة عندي
Index 0 1 2 3 4 5 6 7 8 9
Value 1 2 3 4 5 6 7 8 9 10
صىف َزدزح انقٍى بزقى وادذ
انى انٍضبر
Index 0 1 2 3 4 5 6 7 8 9
Value 2 3 4 5 6 7 8 9 10 1
Module Module1
Sub Main()
29
Console.WriteLine(" Element " & (index + 1) & " (index " & index &
") : " & values(index))
Next
Console.WriteLine()
Dim backup As Integer = values(0)
values(upperbound) = backup
Console.ReadLine()
End Sub
End Module
1 ٍ جخزٌ قًٍب يELEMENTS عُبصز10 جذحىي عهىARRAYsَُجز بزَبيجب ٌزجب ذالخ يصفىفبت
10 انى
ارجع الى الفٌدٌو، هذه المقدمة أو المسألة مختصرة
: 10 انى1 ٍ قٍى ي1 انًصفىفة
Index 0 1 2 3 4 5 6 7 8 9
Value 1 2 3 4 5 6 7 8 9 10
1 انى10 ٍ قٍى ي2انًصفىفة
Index 0 1 2 3 4 5 6 7 8 9
Value10 9 8 7 6 5 4 3 2 1
ً قٍى ببنشكم انحبن3انًصفىفة
Index 0 1 2 3 4 5 6 7 8 9
Value10 9 8 7 6 6 7 8 9 10
Module Module1
Sub Main()
Dim count As Integer = 10
Dim upperbound As Integer = count - 1
Dim values1(upperbound) As Integer
Dim values2(upperbound) As Integer
Dim values3(upperbound) As Integer
Dim index As Integer
Console.WriteLine("Array1: ")
Console.WriteLine()
Console.WriteLine("Array2: ")
Console.WriteLine()
Console.WriteLine("Array3: ")
Console.WriteLine()
Console.ReadLine()
End Sub
End Module
ٍّ نٍٛ انغاتمًٛ ْٕ يدًٕع انشلٙهٚ ٘ أ٘ أٌ انشلى انزFibonacci ث ػُاصشْا أسلاو ػهٗ شكمَُٛدض تشَايدا تًصفٕفح تس
Fibonacci : 1 1 2 3 5 8 13 21 34 55 89 ……..
Module Module1
Sub Main()
Console.Write("count: ")
Dim count As Integer = Console.ReadLine()
31
If count > 1 Then
fibonacci(1) = 1
Console.ReadLine()
End Sub
End Module
4 هو جداء الرقمٌن12 ، ً فً السطر الثان2 فً العمود الثانً و2 هو جداء الرقمٌن4 رقم
1 2 3 4 5 6
. فً السطر الثالث وهكذا3 فً العمود الرابع والرقم
2 4 6 8 10 12
:سوف نقوم بعمل برنامج ٌنتج لنا جدول على هذا الشكل
3 6 9 12 15 18
4 8 12 16 20 24
Module Module1
Sub Main()
Console.Write("Row count: ")
Dim rowcount As Integer = Console.ReadLine()
Console.Write("column count: ")
Dim columncount As Integer = Console.ReadLine()
Dim values(rowcount, columncount) As Integer
Dim i, j As Integer
For i = 1 To rowcount
For j = 1 To columncount
values(i, j) = i * j
Next
Next
Console.WriteLine("*************")
For i = 1 To rowcount
For j = 1 To columncount
Console.Write(values(i, j))
Console.Write(" ")
Next
Console.WriteLine(" ")
Next
Console.ReadLine()
End Sub
End Module
3 نهاٌة المحاضرة رقم
32
4 ح انًساضشج سلىٚتذا
ٔدٔالlen , trim , ucase …: ٔدٔال انرؼايم يغ انُصٕصsin , cos , tang… : حٛاضٚشج كانذٔال انشٛغك دٔخ َد دٔال كثٛدٕال تٛ انفٙف
. انكرة انخاصحٙح فٛأخشٖ ذدذْا يصُفح أٔ تاألنفثائ
تشَايح نهفاكرٕلاير: حٛح أ٘ زغاتٛاضٚح سٛ عٕف عٕف َمٕو تؼًهٙذٜ انثشَايح اٙف
Module Module1 𝑛!
n
cm =
Sub Main() 𝑚 !(𝑛 −𝑚 )!
Console.Write("Enter the first number: ")
Dim n As Integer = Console.ReadLine()
Console.Write("Enter the second number: ")
Dim m As Integer = Console.ReadLine()
Dim nm, Facn, Facm, Facnm, combin, i As Integer
Facn = 1
For i = 2 To n
Facn = Facn * i
Next
Facm = 1
For i = 2 To m
Facm = Facm * i
Next
nm = n - m
Facnm = 1
For i = 2 To nm
Facnm = Facnm * i
Next
combin = Facn / (Facm * Facnm)
Console.WriteLine("c(" & n & "," & m & ") = " & combin)
Console.ReadLine()
End Sub الفكتولاير عدةFac ألننا كما الحظتم كررنا الكلمةFunctions سوف نستخدم هذا البرنامج بطرٌقة أفضل بواسطة الدوال
لتجنب التكرارFactorial الطرٌقة كما سٌأتً فً البرنامج اآلتً هو استعمال دالة نسمٌها. مرات
End Module
Module Module1
Sub Main()
Console.Write("Enter the first number: ")
Dim n As Integer = Console.ReadLine()
Console.Write("Enter the second number: ")
Dim m As Integer = Console.ReadLine()
33
Dim combin As Integer = Factorial(n) / Factorial(m) * Factorial(n - m)
Console.WriteLine("c(" & n & "," & m & ") = " & combin)
Console.ReadLine()
End Sub
Function Factorial(ByVal j As Integer)
End Function
End Module
ّ ػهٗ صُغ ٔاعرخذاو انذاالخٛثا نهثشَايح انغاتك َرذسب فّٚ ذمشٛتشَايح شث
Module Module1
Sub Main()
Console.Write("Enter the number: ")
Dim n As Integer = Console.ReadLine()
Dim Fn As Integer
Fn = sumpower(n, 4) / sumpower(n, 2) * sumpower(n, 3)
Console.WriteLine("F(" & n & ")= " & Fn)
Console.ReadLine()
End Sub
End Function
End Module
ًُٓاٛ نُالزظ انفشق تSUBROUTINE (SUB) ٌٙ ذؼانٕا َغرخذو انثشَايح انفشػٜ ٔاFUNCTION ٍ اعرخذيُا انذانحٍٛ انغاتمٛ انثشَايدٙف
n 𝑛!
cm = 𝑚 !(𝑛 −𝑚 )! : FAC َٔأخز َفظ انًششٔع انغاتك انفاكرٕلاير
Module Module1
Sub Main()
Console.Write("Enter the first number: ")
34
Dim n As Integer = Console.ReadLine()
Console.Write("Enter the second number: ")
Dim m As Integer = Console.ReadLine()
Dim nm, Facn, Facm, Facnm, combin, i As Integer
Factorial(n, Facn)
Factorial(m, Facm)
Factorial(n - m, Facnm)
combin = Facn / (Facm * Facnm)
Console.WriteLine("c(" & n & "," & m & ") = " & combin)
Console.ReadLine()
End Sub
Sub Factorial(ByVal j As Integer, ByRef sum As Integer)
Dim k As Integer ٌقوم الدكتور عاطف العراقً بمراجعة شاملة، فً كل بداٌة محاضرة ونهاٌتها، أخً الكرٌم
sum = 1 . تحتوي على المعلومات الهامة واألساسٌة التً ٌنبغً على المتعلم التعرف علٌها
For k = 2 To j .فال تمر علٌها مر الكرام بل اعطها اهتمامك وبالك حتى ترسخ فً ذهنك نظرا ألهمٌتها
sum = sum * k
Next : تابع نهاٌة المحاضرة ستجد األجوبة عن األسئلة التالٌة
Button1.Text = ""َؼى
End Sub
Button1.Text = ""ال
Button2.Text = ""َؼى
End Sub
End Class
=========================================================================
ح تأصساسٛاخ زغاتٛػًه
35
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
addbtn.Text = ""خًغ
subbtn.Text = ""طشذ
multbtn.Text = ""ضشب
dividbtn.Text = ""لغًح
resultlbl.Text = ""
End Sub
End Sub
End Sub
End Class
========================================================================
ح تذٌٔ أصساسٛاخ زغاتٛ ػًهcombobox
Case ""خًغ
Case ""ضشب
resultlbl.Text = firstnumbertxt.Text + " * " + secondnumbertxt.Text + " = " +
Str(Val(firstnumbertxt.Text) * Val(secondnumbertxt.Text))
Case ""لغًح
End Sub
End Class
============================================================================
charactnumlbl.Text = Len(statmenttxt.Text)
riverstatmtlbl.Text = ""
Dim i As Integer
For i = Len(statmenttxt.Text) To 1 Step -1
riverstatmtlbl.Text = riverstatmtlbl.Text + Mid(statmenttxt.Text, i, 1)
Next
End Sub
End Class
============================================================================
37
نح انساعثحٜتشَايح ا
Public Class Form1
End Sub
screentxt.Text = "0"
Else
screentxt.Text = screentxt.Text + "0"
End If
End Sub
screentxt.Text = "1"
Else
screentxt.Text = screentxt.Text + "1"
End If
End Sub
Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btn2.Click
If screentxt.Text = "0" Then
screentxt.Text = "2"
Else
screentxt.Text = screentxt.Text + "2"
End If
End Sub
38
If screentxt.Text = "0" Then
screentxt.Text = "3"
Else
screentxt.Text = screentxt.Text + "3"
End If
End Sub
Private Sub btn4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btn4.Click
Else
screentxt.Text = screentxt.Text + "4"
End If
End Sub
screentxt.Text = "5"
Else
screentxt.Text = screentxt.Text + "5"
End If
End Sub
screentxt.Text = "6"
Else
39
screentxt.Text = "7"
Else
End Sub
screentxt.Text = "8"
Else
End Sub
screentxt.Text = "9"
Else
screentxt.Text = screentxt.Text + "9"
End If
End Sub
screentxt.Text = "0"
operationname = "add"
End Sub
firstnum = Val(screentxt.Text)
40
screentxt.Text = "0"
operationname = "sub"
End Sub
Private Sub multbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
multbtn.Click
firstnum = Val(screentxt.Text)
screentxt.Text = "0"
operationname = "mult"
End Sub
Private Sub dividbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
dividbtn.Click
firstnum = Val(screentxt.Text)
screentxt.Text = "0"
operationname = "divid"
End Sub
End Sub
Case "divid"
screentxt.Text = Str(firstnum / Val(screentxt.Text))
End Select
End Sub
41
Private Sub clearbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles clearbtn.Click
screentxt.Text = "0"
End Sub
End Class
=========================================================================
ذٛشرغم تشكم خٚ ػهٗ انكٕد انغاتك اال أَّ نىٙ نمذ أضفُا تشَايح فشػsubroutine : operationexec()
screentxt.Text = "0"
End Sub
screentxt.Text = "0"
Else
End Sub
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btn1.Click
screentxt.Text = "1"
Else
42
screentxt.Text = screentxt.Text + "1"
End If
End Sub
Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btn2.Click
Else
End Sub
Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btn3.Click
If screentxt.Text = "0" Then
screentxt.Text = "3"
Else
End If
End Sub
Private Sub btn4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btn4.Click
If screentxt.Text = "0" Then
screentxt.Text = "4"
Else
screentxt.Text = screentxt.Text + "4"
End If
End Sub
screentxt.Text = "5"
Else
43
End If
End Sub
screentxt.Text = "6"
Else
End If
End Sub
End If
End Sub
Private Sub btn8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btn8.Click
Else
screentxt.Text = screentxt.Text + "8"
End If
End Sub
Private Sub btn9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btn9.Click
Else
End If
44
End Sub
Private Sub pointbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
pointbtn.Click
End Sub
firstnum = Val(screentxt.Text)
screentxt.Text = "0"
operationname = "add"
End Sub
firstnum = Val(screentxt.Text)
screentxt.Text = "0"
operationname = "sub"
End Sub
operationexec()
firstnum = Val(screentxt.Text)
screentxt.Text = "0"
operationname = "mult"
End Sub
Private Sub dividbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
dividbtn.Click
operationexec()
firstnum = Val(screentxt.Text)
screentxt.Text = "0"
operationname = "divid"
End Sub
45
Private Sub minnerbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles minnerbtn.Click
End Sub
End Sub
Private Sub lastnumclearbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles lastnumclearbtn.Click
screentxt.Text = Mid(screentxt.Text, 1, Len(screentxt.Text) - 1)
End Sub
Case "add"
screentxt.Text = Str(firstnum + Val(screentxt.Text))
Case "sub"
screentxt.Text = Str(firstnum - Val(screentxt.Text))
Case "mult"
screentxt.Text = Str(firstnum * Val(screentxt.Text))
Case "divid"
screentxt.Text = Str(firstnum / Val(screentxt.Text))
End Select
End Sub
End Class
46
ـــحٛماذٛتشَايـــح عاعــــج ي
Public Class Form1
Dim t1 As Decimal
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Timer1.Tick
t1 += 0,1
screenlbl.Text = Str(t1)
End Sub
============================================================================
==
47
Timer1.Enabled = False
End Sub
============================================================================
==
48
screenlbl.Text = Str(t1)
End Sub
Private Sub startbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles startbtn.Click
Timer1.Enabled = True
screenlst.Items.Add("start ad" & Str(t1))
End Sub
8 : ٕ سلىٚذٛانف
49
Private Sub resultbtn_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles resultbtn.Click
Dim i As Integer
For i = Val(startnumtxt.Text) To Val(lastnumtxt.Text)
screenlst.Items.Add(Str(i) + " ^ 2 = " + Str(i ^ 2))
Next
End Sub
End Class
========================================================================
==
========================================================================
==
50
End Sub
Next
End Sub
End Class
========================================================================
==
51
Private Sub Form1_Load1(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
DataGridView1.Visible = False
DataGridView2.Visible = False
End Sub
========================================================================
==
Public Class Form1
End If
End Sub
End Class
52
. نإلصحئُبس فقط،هذا انكىد نٍش نه بزَبيخ يضجم كببقً األكىاد
========================================================================
=
Else
MsgBox(")"انذخىل بٍبَبت يٍ جأكذ
End If
End Sub
End Class
53
Form2.Show()
End Sub
End Class
======================================
Else
MsgBox("اَاخ يٍ ذأكذٛ)"انذخٕل ت
End If
End Sub
End Class
Me.Hide()
End Sub
End Class
54
Public Class Menuform
وأسأل هللا أن ٌنتفع به الجمٌع، انتهى الكتاب بعون من هللا العلً القدٌر
55