باسم الله الرحمان الرح م تقد م أخوكم إبراه م عدو موظف ببلد ة أكل م بركان المغرب لست مبرمجا بل متعلما من الدروس والكتب الت تعرض على مواقع األنترنت تمن ت لو أن ل أستاذا أخذ ب دي إلى عالم اإلحتراف ف لغة الف جوال ب سك دوت نت أحببت أن أقدم كتاب هذا خدمة لإلخوة واألحبة ف الوطن العرب واإلسالم للمهتم ن بلغة البرمجة الف جوال ب سك دوت نت بالخصوص هو كتاب ألفته بجهدي المتواضع بص غة PDF عبارة عن ترجمة كتاب ة لما تحمله المحاضرات السمع ة البصر ة ألخ نا الفاضل المبرمج الدكتور عاطف العراق جزاه هللا عنا خ ر الجزاء. ربما سأل سائل وما الجدوى من هذا الكتاب إذا كانت هناك أصال فد وهات لمبرمج كب ر مثل د.عاطف العراق الجواب : هو أن الذي ر د تعلم البرمجة وتطب ق ما وجد ف هذه الف د وهات ال ستط ع عمل نسخ ولصق لما تحمله من أكواد إلى برنامجه ل تدرب عل ها بسهولة. عالوة على ذالك األكواد البرمج ة على الف د وهات التعل م ة غ ر واضحة بالنسبة للمبتدئ ن عكس الدروس المكتوبة الت تحملها أوراق الكتب. فما عل ك أخ سوى تثب ت برنامج الف جوال ستود و حاسوبك لتبدأ التعلم. 2008 أو 2010 و تحم ل ف د وهات المبرمج الدكتور عاطف العراق على هذا الكتاب مجان ما أرجوه منكم هو أن تدعو ل ولعائلت بصالح األعمال والتوف ق. إ م ل هو كالتال : brahim.addou@gmail.com اسم الكتاب : الف جوال ب سك دوت نت : ترجمة كتاب ة لمحاضرات د. عاطف العراق الجزء األول + الجزء الثان واألخ ر 1
ان ساضشج سلى 01 أ ذاف ذؼهى انثشيدح ذطث ماذ ا انرؼشف ػه أعاع اخ انثشيدح. ان مذسج ػه ص اغح ان شكالخ ف ص سج ك تشيدر ا. ان مذسج ػه زم ان شكالخ تاعرخذاو انثشيدح. ان مذسج ػه يماس ح انسه ل ان خرهفح نه شكالخ ت ذف ان ص ل إن أفضم ز انسه ل أ غث ا. ان مذسج ػه ذرثغ األخطاء ف انثشايح انر رى ذ ف ز ا. ان مذسج ػه ف ى انثشايح ان ؼذج عاتما. ان مذسج ػه ذط ش انثشايح ان ؼذج عاتما. - 1-2 - 3-4 - 5-6 - 7 ======================================================= أ اع انرطث ماخ Types: Applications CONSOLES APPLICATIONS WINDOWS APPLICATIONS WEB APPLICATIONS ص اغح ان شكالخ زه ا المدخالت console.readline() اسماء المتغ رات المطلوب ادخالها = المعالجة اسماء المتغ رات المطلوب اخراجها = console.writeline() المخرجات 2
CONSOLES APPLICATIONS ان ثال األ ل : اكرة تش ايدا نسغاب يد ع سل صس س ا ال: ص اغح ان شكهح زه ا 1 -ادخال انشل )ان ذخالخ ) 2 -خ غ انشل )ان ؼاندح ) 3 -طثغ اذح انشل )ان خشخاخ ) Module example1 متغ ر صح ج ذ ص ف ان رغ شاخ Dim num1 As Integer Dim num2 As Integer ادخال انشل ( 1 -ػ ه ح اإلدخال ) Dim numsum As Integer num1 = num2 = زغاب يد ع انشل ( 2 -ػ ه ح ان ؼاندح ) طثاػح اذح اند غ )3 -ػ ه ح اإلخشاج ) numsum = num1 + num2 Console.WriteLine(numsum) خ هح ادخال نر ل ف انثش ايح : تؼثاسج أصر خ هح تشيد ح ذ رظش ي ان غرخذو أ ذخم ل ح يا ن مشأ ا كه ح Line ذؼ انشخ ع ان عطش فاسؽ. زا انثش ايح شرغم اال أ ف تؼض انؼ ب رفادا ا ف انثش اير ا ذ أ سغ ط س... Num1 : Num2 : Numsum : خض ان رغ شاخ ف انزاكشج MEMOIRE RAM 3
ان ثا ل اال ل : 2/2 Module example1 توص ف أو اإلعالن عن المتغ رات Dim num1, num2, numsum As Integer Console.WriteLine("Entrez le premier nombre? ") num1 = Console.WriteLine("Entrez le deuzieme nombre? ") num2 = numsum = num1 + num2 Console.WriteLine("la somme = " & numsum) Console.readLine() رسالة تطلب من المستخدم ادخا ل ق مة للمتغ ر ( num1 الرقم األول ) جملة اإلدخال تنتظر من المستخدم إدخال الق مة للمتغ ر ك خزنه. رسالة تطلب من المستخدم ادخا ل ق مة للمتغ ر ( num2 الرقم الثان ) جملة اإلدخال تنتظر من المستخدم إدخال الق مة للمتغ ر ك خزنه حساب مجموع الرقم ن طباعة ناتج الجمع جملة للرجوع الى السطر تنتظرادخال ق مة كالضغط على زر النهاء البرنامج Module example1 نفس البرنامج السابق مع تغ ر بس ط ف هذه الجملة Dim num1, num2, numsum As Integer Console.WriteLine("Entrez le premier nombre? ") num1 = Console.WriteLine("Entrez le deuzieme nombre? ") num2 = numsum = num1 + num2 الكلمة أو الجملة الت تقع ب ن مزدوجت ن )" "( ه نص للطباعة كتبها البرنامج كما ه ال تحتوي أو تحمل ق مة برمج ة معادالت ة. هذا الرمز & معناه باإلنجل ز ة AND إضافة نص الى نص أو حرف إلى حرف..عطف ش ء الى ش ء آخر. Console.WriteLine(num1 & "+" & num2 & "=" & numsum) 4
Module module1 Dim name As String Dim age As Integer Console.WriteLine("input name?") name = Console.WriteLine("input age?") age = Console.WriteLine("your name is " & name & ".") Console.WriteLine("your age is " & age & ".") توص ف المتغ رات متغ ر نص متغ ر رقم صح ح طباعة رسالة للمستخدم تطلب منه ادخال اسم طباعة رسالة للمستخدم تطلب منه ادخال العمر طباعة الرسائل جملة ادخال لتوق ف البرنامج ونستط ع أن نستبدلها بجملة أخرى حتى فهمها المتلق Console.Readkey() : ؼ اضغظ ػه أ صس ي أصساس ن زح ان فاذ ر ال اء انثش ايح. توص ف المتغ رات Dim number, square As Integer Console.WriteLine("enter number") number = square = number ^ 2 Console.WriteLine(" square of " & number & " is " & square & ".") ادخال متغ ر الرقم برسالة حساب متغ ر الترب ع طباعة الرسالة ادخال جملة لتوق ف البرنامج Dim name As String Dim length, length1, length2 As Integer Console.WriteLine("enter name?") name = Console.WriteLine("enter length?") length = توص ف المتغ رات ادخال متغ ر اإلسم برسالة ادخال متغ ر الطول برسالة طباعة الرسالة مالحضة : عالمة القسمة مع اغفال الباق غ ر موجودة عندي ف الك بورد 5
length1 = length / 100 length2 = length Mod 100 Console.WriteLine(name & " you are " & length1 & " metres " & length2 & " centimetres ") جملة ادخال لتوق ف البرنامج نفس الكود السابق مع تغ ر ف جملة طباعة الرسالة Dim name As String Dim length As Integer Console.WriteLine("enter name?") name = Console.WriteLine("enter length?") length = Console.WriteLine(name & " you are " & length / 100 & " metres and " & length Mod 100 & " centimetres ") توص ف المتغ رات ادخال معامالت المعادلة برسالة حساب ق مة الجذور طباعة ق مة الجذور جملة ادخال لتوق ف البرنامج مالحظة : قع خطأ ف البرنامج الحل ف الجمل الشرط ة كما س ات لى تؼ م تش ايح نسم ان ؼادنح انرشت ؼ ح Dim a, b, c, x1, x2 As Integer Console.WriteLine("enter parameter a") a = Console.WriteLine("enter parameter b") b = Console.WriteLine("enter parameter c") c = 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) 6
Dim a, b, c, d, x1, x2 As Integer Console.WriteLine("enter parameter a") a = Console.WriteLine("enter parameter b") b = Console.WriteLine("enter parameter c") c = 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) نفس البرنامح السابق اال اننا قمنا هنا باضافة حساب وس ط لتوف ر الوقت وز ادة الكفاءة. مالحظة : قع خطأ ف البرنامج الحل ف الجمل الشرط ة كما س ات هضو أخز اإلزر اطاخ انالصيح ن غ ان ل ع ف أخطاء أث اء انثش ايح ن زا ع ف غرؼ تاند م انششط ح اند م انششط ح Dim a, b, c, d, x1, x2 As Decimal Console.WriteLine("enter parameter a?") a = Console.WriteLine("enter parameter b?") b = Console.WriteLine("enter parameter c?") c = 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
Console.WriteLine("the roots are imaginary") جواب الشرط ف حالة كون ق مة المعامل المم ز تخ ل رسالة الدخال ق مة المتغ ر Console.Write("enter value") توص ف المتغ ر وادخال ق مته ف آن واحد Dim value As Integer = جملة الشرط If value Mod 2 = 0 Then جواب الشرط ف حالة اإلثبات ".") & 2 / value Console.WriteLine(" half of " & value & " is " & جواب الشرط ف حالة النف Console.WriteLine(" double of " & value & " is " & value * 2 & ".") نها ة جملة الشرط جملة ادخال لتوق ف البرنامج مشابه للبرنامج السابق مالحضة : نستط ع أن نجمع توص ف المتغ رات مع جملة ادخال الق مة ف آن واحد Dim value As Integer كما سبق أن رأ نا ذالك. Console.WriteLine("value?") value = If value = 0 Then Console.WriteLine(" value = 0 ") Console.WriteLine(" value " & value & " is not equal to zero ") نها ة المحاضرة رقم 01 8
ان ساضشج سلى 02 اند م انركشاس ح Console.WriteLine(1) Console.WriteLine(2) Console.WriteLine(3) Console.WriteLine(4) تعالوا لنكتب هذا البرنامج بطر قة أخرى ف البرنامج اآلت سوف طبع لنا البرنامج رقم : 1 2 3 4 Dim value As Integer value = value + 1 Console.WriteLine(value) value = value + 1 Console.WriteLine(value) value = value + 1 Console.WriteLine(value) value = value + 1 Console.WriteLine(value) هذا البرنامج سوف كتب لنا رقم 3 2 1 ثم. 4 لكن لو افترضنا أننا نر د أن كتب لنا البرنامج من 1 الى 100 سوف صعب عل نا كتابة الجملة ل 100 مرة. ولهذا وجد ف الف جوال ب سك ما سمى بالجملة التكرار ة. ه حل لهذه المشكلة. تابع ف البرنامج اآلت. المتغ ر أخذ ق مة أول ة الت تساوي صفر) 0 ) سوف طبع لنا البرنامج رقم : 1 2 3 4 ششط انركشاس اند م انركشاس ح : Do while كلمة البرنامج كرر جمل التكرار طالما شرط التكرار متحقق وإال سوف تابع البرنامج عمله لما بعد خ م انركشاس Loop شرح : while : طالما مادام Do...Loop : كرر العمل ة حسب شرط التكرار Loop 9
Dim value As Integer Do While value < 10 value = value + 1 Console.WriteLine(value) Loop لنفترض أننا نر د من البرنامج أن طبع أو كتب لنا األرقام من 1 إلى 10 كما قلنا سابقا أن المتغ ر الرقم دائما ق مته األول ة تساوي 0 ولهذا أضفنا له واحد) 1 ) لنفسر ك ف عمل البرنامج بالحلقة التكرار ة: مر البرنامج و نفذ سطرا سطرا بدأ األول بطباعة ق مة value الت تساوي رقم 1 قرأ أوال جملة المعادلة و قوم بالعمل ة الحساب ة )المعالجة ) ثم نزل الى السطر الموال الذي عن طباعة ق مة المتغ ر)اإلخراج ) عندما صل الى كلمة Loop رجع الى الجملة الشرط ة while ل تحقق من الشرط : هل ال زال المتغ ر أصغر من 10 و قوم بنفس العمل الذي قام به ف األول ( صعودا وهبوطا ) حتى نته من طباعة جم ع األرقام حتى 10 ح ن صبح ق مة المتغ ر أكبر أو 10 ساوي سوف مر البرنامج الى ما بعد Loop ل نفذ ماتبقى من البرنامج أو الكود. Dim startvalue As Integer = 10 Dim endvalue As Integer = 15 Dim value As Integer = startvalue - 1 Do While value < endvalue value = value + 1 Console.WriteLine(value) Loop برنامج لطباعة األعداد من 10 إلى 15 كما سبق ف الدروس الماض ة ممكن ادماج جملة التوص ف مع جملة اإلدخال جمل اإلدخال هنا هو 10 و. 15 لماذا كتبنا هنا 1- ألننا نر د من البرنامج أن بدأ طباعة األرقام من 10 فإذا حذفنا 1- سوف بدأ الطباعة من 11. سوف كرر 5 مرات الطباعة هبوطا وصعودا ابتداءا من حتى Do while Loop 10 11 12 13 14 15 Dim startvalue As Integer = 10 Dim endvalue As Integer = 15 Dim value As Integer = startvalue Do While value <= endvalue مكن كتابة البرنامج السابق بهذه الصورة الحظ اننا أزلنا 1- وغ رنا ف جملة المقارنة )أصغر أو ساوي ) غ رنا األماكن : نكتب جملة الطباعة قبل جملة اإلضافة لك طبع رقم 10 ثم مر الى اضافة 1 و صبح value=11. الفارق هو أن البرنامج الحال طبع الvalue ثم بعدها ض ف العدد 1.عندما صل العدد الى 16 رجع الى جملة الشرط ل تحقق به هل 16 أصغر أو ساوي من 15 توقف البرنامج من الطباعة ألن الشرط لم تحقق. و مر الى مابعد كلمة LOOP ل ستمر ف عمله. 10
Console.WriteLine(value) value = value + 1 Loop مكن تعم م البرنامج السابق Console.WriteLine("enter start value?") Dim startvalue As Integer = Console.WriteLine("enter end value?") Dim endvalue As Integer = Dim value As Integer = startvalue - 1 Do While value < endvalue value = value + 1 Console.WriteLine(value) Loop معناه اننا نترك اإلخت ار للمستخدم دخل الق م لvalue start و end. value طباعة من 20 الى 10 بترت ب تنازل Dim value As Integer = 21 Do While value > 10 value = value - 1 Console.WriteLine(value) Loop لماذا كتبنا 21 ولم نكتب 20 ألن البرنامح س مر على جملةvalue-1 الذي ساوي 20 و طبعه بدا ة. الحظوا أن جملة الشرط 10< value سوف مر عل ه ال value ب 11 و نزل الى الجملة الت تل ها نقص منه 1 و نزل الى الجملة الت تل ها أي جملة الطباعة و طبع النت جة 10 ف آخر دوراته و نته. الطباعة كاآلت : 20 19 18 حتى. 10 هذا البرنامج طبع بالعدد 2 الى ما قرب ال 1000 بطر قة األس 11
ما ب ن مزدوجت ن جملة نص ة تطبع كما ه حرف ا. 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 هنا البرنامج كررعمل ة الطباعة شرط أن ال تعدىresult رقم 1000 result = base ^ exponent هنا األس exponent هو الذي نضاف ال ه ف كل مرة أو ف كل كرة العدد 1 وبهذا تتغ ر النت جة Loop ف كل مرة. انث اخ ان رذاخهح NESTED STRUCTURES Console.WriteLine("value?") Dim value As Integer = If value = 0 Then Console.WriteLine("zero") If value > 0 Then Console.WriteLine("above zero") Console.WriteLine("bellow zero") جملة الدخال الق مة value من المستخدم جملة توص ف الvalue الذي ساوي ما س دخله المستخدم من ق مة جملة الشرط الذي جب ان تحقق ( وإال ) معناه إذا لم تحقق الشرط السابق ذكره شرط ثان اذا لم تحقق الشرط األول ( وإال ) معنى البرنامج أن ال value اذا كان ساوي 0 اطبع ل 0 واال ) سوف نضع شرط ن الن العدد اما موجب أو سالب ) اذا كان الvalue أكبر من 0 اطبع ل الجملة ب ن قوس ن واال اذا كان ال هذا وال ذاك اطبع ل النص ب ن قوس ن. 12
جدول الضرب الحظ أن هناك شرط ن متداخل ن أحدهما ف اآلخر وأن ال LOOP األول نتم للشرط الثان والLOOP الثان نتم للشرط األول الحظ شكل الفقرات دل على ذالك. جملة الطباعة بدونها ال طبع البرنامج المعادلة الت نر دها Dim basevalue As Integer = 1 Dim factor As Integer = 1 Dim multiplication As Integer Do While basevalue < 10 Do While factor < 10 multiplication = basevalue * factor Console.WriteLine(basevalue & "*" & factor & "=" & multiplication) انتبه البرنامج سوف قرأ الشرط األول ثم نزل ل قرأ الشرط الثان حتى صل الى الLOOP الذي نتم له أي ال LOOP األول ولن تخطاه بدا ف الصعود والنزول ما قرب 9 أو 10 مرات طبعا مع تنف ذ محتوى الشرط أي الطباعة. أخ الكر م اذا أردت أن تشاهد عمل البرنامج ك ف عمل خطوة خطوة فما عل ك اال الضغط على الزر المتواجد أعاله ( سهم مقوس الى األسفل تجاه أسطر صغ رة ) وكأنه معلم شرح لك ك ف عمل البرنامج خطوة خطوة. تعترضنا مشكلة اأخ وه أن الfactor عندما صل الى ق مة 10 لن ستمر ف طباعة كل جدول الضرب الحل هو أن نض ف جملة 1 = factor تحت جملة الشرط األولى تابع الحل ف البرنامج اآلت. factor = factor + 1 Loop basevalue = basevalue + 1 Loop Dim basevalue As Integer = 1 Dim factor As Integer = 1 Dim multiplication As Integer الجملة الت أضفناها لحل المشكلة ل بدأ الfactor من جد د بق مة مبدئ ة 1 و ض ف عل ه < 10 basevalue Do While factor = 1 ف كل دورة داخل الشرط الثان Do While factor < 10 multiplication = basevalue * factor Console.WriteLine(basevalue & "*" & factor & "=" & multiplication) factor = factor + 1 Loop هذه الجملة تابعة للشرط األول معناه كل ما نته الشرط الثان من عمله أي عندما صل ال basevalue = basevalue + 1 factor الى العدد 9 خرج بعد الLOOP ل ض ف على base value العدد 1 حتى صل Loop الى العدد. 9 13
Mod 2 معناه باق القسمة على 2 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 ") Console.WriteLine(value & " is an odd number ") Loop وإال إذا لم تحقق الشرط فاطبع ل الجملة المتواجدة ب ن قوس ن نها ة الجملة الشرط ة نها ة الجملة التكرار ة نها ة البرنامج مالحضة : هنا استعملنا الجملة الشرط ة داخل الجملة التكرار ة ألننا ف حاجة إلى ذالك ل قسم األرقام من 1 حتى 10 مع شرط أن طبع كذا إذا كان باق القسمة على 2 ساوي 0 و طبع كذا إذا كان العكس. Dim value As Integer Dim highestvalue As Integer Do While value >= 0 Console.WriteLine("value?") value = If value > highestvalue Then highestvalue = value جمل لتوص ف المتغ رات الجملة التكرار ة : سوف قوم بطباعة األرقام الت دخلها المستخدم شرط أن تكون أكبر أو ساوي 0 أرقام موجبة. معنى هذا الشرط أن أكبر ق مة دخلها المستخدم ه الvalue. highest انز ع ف طثؼ انثش ايح ػ ذ خش خ ي اند هح انركشاس ح. انتبه متى طبع ال highest value اند اب : ػ ذيا خشج ي اند هح انركشاس ح أ ياتؼذ ال loop نؼذو ذسمك ششط اند هح انركشاس ح أ انم ح انر أدخه ا ان غرخذو ف األخ ش عانثح أصغش ي. 0 14
Loop Console.WriteLine("highest value:" & highestvalue) Dim value As Integer Do While value < 10 value = value + 1 If value Mod 2 = 0 Then Console.WriteLine(value & " is an even number ") Console.WriteLine(value & " is an odd number ") Loop للتذك ر : جملة لتوص ف أو اإلعالن عن المتغ رات جملة التكرار الت تحتوي على الشرط < 10 value الت تنته الى غا ة كلمة LOOP راجع ف الدروس السابقة لماذا أضفنا هنا على الvalue العدد 1 حتى ال نكرر شرح ما قد مضى.. معنى الجملة الشرط ة أنه إذا كان الق مةvalue مقسوم على 2 الباق ساوي 0 اطبع ل الق مة value عدد زوج وإال اطبع ل الق مةvalue عدد فردي. انتبه الجملة الشرط ة تبقى سار ة المفعول داخل الجملة التكرار ة مادام ال 10 < value. جملة الرجوع الى السطر و نها ة البرنامج ف هذا البرنامج أو الكود عندنا الق مةvalue الت دخلها المستخدم وال highest value الت ه أكبر ق مة دخلها المستخدم. شرط التكرار وعدم المرور الى ما بعد كلمةLOOP هو أن تكون الق مة 0 =< value. انتهاء الجملة الشرط ة انتهاء الجملة التكرار ة معنى البرنامج هو عندما ال تحقق الشرط الموجود ف رأس الجملة التكرار ة أي صبح ال Highest أكبر ق مة الت ه لطباعة خرج البرنامج الى ما بعد الLoop value < 0 Value Dim value As Integer Dim highestvalue As Integer Do While value >= 0 Console.WriteLine("value?") value = If value > highestvalue Then highestvalue = value Loop Console.WriteLine("highest value:" & highestvalue) 15
هذه جملة اإلخراج س نفذها البرنامج عندما خرج من التكرار متى الجواب : عندما تكون الق مة المدخلة أصغر من 0 مثال ( 1- ( وعلى ما تحتوي هذه الجملة الجواب : طباعة ( ال : Highest Value أكبر ق مة أدخلها المستخدم(. ف ز انسهمح ع ف رؼشف ػه يصطهر خذ ذ ف ػانى ششط انركشاس DO WHILE.LOOP ع ف م و تششذ ز اند م انركشاس ح : كشس ت ا... انه ب DO UNTIL..LOOP اند هح األخ شج ذسر ػه ششط إ اء انركشاس ن ظ ششط انركشاس. ن أخز طث ما ن ز اند هح انر عثك ركش ا : كشس زر... انه ب Dim value As Integer Do Until value >= 10 value = value + 1 Console.WriteLine(value) Loop برنامج طبع األرقام من 1 إلى 10 للتذك ر : جملة توص ف المتغ رات الت سوف تدخل ف المعادالت البرمج ة جملة التكرار الت ه ف حد ذاتها تحتوي حدا إلنهاء التكرار جملة المعادلة جملة الطباعة أو الكتابة جملة إنهاء البرنامج ص سح ي ح : أخ انكش ى زر ال ذ غ أ ذخرهظ ػه ك األي س نكثشج س د يصطهساخ خذ ذج ساخغ دس ط اند م انركشاس ح انششط ح تذلح. ف ز انسهمح ع ف ض ف يصطهس ف ػانى اند م انركشاس ح انششط ح DO WHILE... LOOP يا انفشق اند اب : أ انششط فز ا ف ا ح انركشاس DO... LOOP WHILE 16
DO UNTIL. LOOP ******************* يا انفشق اند اب : أ انششط فز ف ا ح انركشاس DO.. LOOP UNTIL برنامج لطباعة األرقام من 1 الى الرقم الذي أدخله المستخدم بشرط أن كون أصغر أو ساوي الvalue. جملة طباعة تطبع النص التال ف ما معناه:) تطلب من المستخدم إدخال ق مة. أدخل الق مة األكبر ( جملة توصف متغ رال highest مع إدخاله ف نفس الوقت من طرف المستخدم مالحضة مهمة: ف البدا ة ال وجد أي شرط هو موجود ف آخر الجملة التكرار ة لو افترضنا أن المستخدم أدخل ق مة للhighest البرنامج رقم 1 فقط ك ف حصل ذالك تساوي 0 ما ذا س حصل سوف طبع لنا Console.WriteLine("highest value?") Dim highest As Integer = Console.WriteLine("row:") Dim value As Integer Do value = value + 1 Console.WriteLine(value) Loop Until value >= highest 1- البرنامج أضاف على الق مة المبدئ ة للvalue الذي هو 0 رقم 1. -2 فطبعها. 3- ثم نزل الى الجملة التكرار ة الت تنه التكرارعند تحقق الشرط ف قرأ أن رقم 1 أكبر من الق مة 0 الت أدخلها المستخدم ف نه التكرار مادام الشرط قد تحقق )راجع شروح الجمل التكرار ة Until و -Do while ) انتبه لو جعلنا الشرط ف بدا ة الجملة ماذا س حصل لن طبع لنا أي رقم. الكود موجود تحت هذه السطور. Console.WriteLine("highest value?") Dim highest As Integer = Console.WriteLine("row:") Dim value As Integer Do Until value >= highest value = value + 1 Console.WriteLine(value) Loop نفس الكود أعاله لكن مع نقل الشرط الى بدا ة الجملة لنقرأ الكود سطرا سطرا توص ف المتغ رات مع ادخالها الق مة المبدئ ة لل value وال highest هو 0 لنفترض أن المستخدم أدخل ق مة للhighest تساوي 0 معنى الشرط : إذا كان الvalue الذي هو 0 أكبر أو ساوي من ال highest الذي هو 0 فاجعل نها ة للتكرار وإ قاف للطباعة ( ال أكرر شرح ما مضى فراجع الجمل التكرار ة والشرط ة كلما انتقلت إلى درس جد د أو دخل عل ك مصطلح جد د ). إذا هنا الشرط تحقق منذ البدا ة قبل أن نزل إلى المعالجة أو المعادلة فلن طبع لنا أي رقم. سؤال من هو الكود الذي ف دنا ف تحق ق هدفنا الحال أم السابق حسب رأ الكود الحال هو حل لمشكلة الكود األول ألن ال 0 الذي أدخله المستخدم ال مكن أن كون هو أكبر ق مة لألرقام الت طبعها البرنامج. 17
FOR.NEXT خالصح : انركشاس رى تأعه ب صؼة ػا يا ف طش مح أخش نهركشاس انر اسم المتغ ر الذي أخذ الق م التال ة )العداد ) For i = i1 to i2 step inc الق مة االبتدائ ة الق مة النهائ ة الز ادة ف الق م اند م انركشاس ح برنامج لطباعة األعداد من 1 الى 10 Dim value As Integer For value = 1 To 10 Console.WriteLine(value) ال value هنا تساوي من 1 الى 10 جملة اإلخراج سوف تطبع لنا الvalue من 1 الى 10 كما مكن أن نعمل برنامج لطباعة األعداد الزوج ة ف الكود اآلت : Dim value As Integer For value = 2 To 10 Step 2 Console.WriteLine(value) 2 4 6 8 هنا ف هذا الكود استعملنا 2 Step 10 ابتداءا برقم 2 هكذا: 10 أي أنه سوف قوم بطباعة األرقام بز ادة 2 الى غا ة رقم و مكن أن نطبع األرقام عكس ما سبق أي تنازل ا كما هو مب ن ف الكود اآلت : 18
Dim value As Integer For value = 10 To 0 Step -2 Console.WriteLine(value) توص ف متغ ر صح ح value العداد الذي سوف كرر الطباعة من 10 الى 0 ب - 2 هكذا تكون الطباعة : 10 8 6 4 2 0 جمل لطباعة رسائل موجهة الى المستخدم جمل توص ف المتغ رات واإلدخال ف آن واحد Console.WriteLine("Enter start value?") Dim startvalue As Integer = Console.WriteLine("Enter end value?") Dim endvalue As Integer = Console.WriteLine("Enter incremental value?") Dim incvalue As Integer = توص ف متغ ر صح ح value العداد Dim value As Integer For value = startvalue To endvalue Step incvalue معناه أن عداد الطباعة س كون من الرقم االبتدائvalue Start الى غا ة الرقم النهائ Console.WriteLine(value) End اللذان أدخلهما المستخدم بز ادةIncvalue. value جملة إلنهاء البرنامج 19
For Do Loop عؤال ي ى : يا انفشق ت اند م انركشاس ح Do.. Loop تكرار غ ر معلوم العدد ولكن مشروط بشرط For.. تكرار معلوم العدد لكن غ ر مشروط بشرط If. Then If then End if End if نقط مهمة : مكن أن نجد جمل شرط ة داخل الجمل الشرط ة وكذالك مكن أن نجد جمل تكرار ة داخل الجمل التكرار ة. جملة شرط ة داخل جملة شرط ة Do while Do while Loop Loop جملة تكرار ة داخل جملة تكرار ة ا ح ان ساضشج سلى 02 20
ان ساضشج سلى 3 انخ اساخ Selections Console.WriteLine("value?") Dim value As Integer = If value = 0 Then Console.WriteLine("zero") If value > 0 Then Console.WriteLine("positive value") Console.WriteLine("negative value") جملة طباعة رسالة للمستخدم ألدخال ق مة value توص ف المتغ ر value وجملة ادخاله شرط : اذا كان value ساوي 0 فاطبع ل النص الموجود ب ن مزدوجت ن وإال شرط آخر اذا كان value أكبر من 0 فاطبع ل النص الموجود ب ن مزدوجت ن وإال اطبع ل النص الموجود ب ن مزدوجت ن نكتب الكود السابق بص غة أخرى Console.WriteLine("value?") Dim value As Integer = If value = 0 Then Console.WriteLine("zero") If value > 0 Then Console.WriteLine("positive value") If value < 0 Then Console.WriteLine("negative value") لكن أفضل طر قة لكتابة البرامج المتعدد الشروط أت ف البرنامج التال : 21
Console.WriteLine("value?") Dim value As Integer = Select Case value Case 1 Console.WriteLine("one") Case 2 Console.WriteLine("two") Case 3 Console.WriteLine("three") Case Console.WriteLine("not one,two or three.") اخت ار الق مة value إذا اختار المستخدم للvalue ق مة تساوي 1 فاطبع ل النص الموجود ب ن مزدوجت ن (one) إذا اختار المستخدم للvalue ق مة تساوي 2 فاطبع ل النص الموجود ب ن مزدوجت ن (two)... الخ End Select Console.WriteLine("value?") Dim value As Integer = Select Case value Case 1 Console.WriteLine("one") Case 2, 3, 4 Console.WriteLine("Two,three or four") Case 5 To 10 Console.WriteLine("value from 5 to 10") Case Is > 10 Console.WriteLine("more than 10") End Select شب ه بالبرنامج السابق إذا اختار المستخدم ق مة للvalue ب ن 5 و 10 طبع الجملة الت ب ن مزدوجت ن. اذا اختار المستخدم ق مة للvalue أكبر من 10 طبع الجملة الت ب ن مزدوجت ن. 22
Console.WriteLine("value?") Dim value As Integer = Select Case value Case Is > 10 Console.WriteLine("more than 10") Case Is > 100 Console.WriteLine("more than 100") Case Is > 1000 Console.WriteLine("more than 1000") End Select هذا البرنامج كتابته صح حة لكن عمله غ ر صح ح. المشكلة هو أن البرنامج طبع لنا دائما النص الموجود ف الجملة األولى (10 )more than وإن أدخل المستخدم ق مة أكبر من 100 أو أكبر من 1000 لماذا ألن الق م الت أدخلها المستخدم ه أ ضا أكبر من 10. طبع النص األول ثم نزل الى End Select و نه البرنامج. الحل هو أن نعكس الترت ب من تحت لفوق تابع Console.WriteLine("value?") Dim value As Integer = Select Case value Case Is > 1000 Console.WriteLine("more than 1000") Case Is > 100 Console.WriteLine("more than 100") Case Is > 10 Console.WriteLine("more than 10") End Select اآلن البرنامج ستط ع أن طبع أي نص حسب الق مة المختارة الت دخلها المستخدم.بدون مشكلة. مالحضة جد جد مهمة : الترت ب ف هذه الحالة مهم جدا لماذا ألن الق مة الت ه أكبر من 10 تشمل أ ضا الق مة الت ه أكبر من 100 و الق مة الت ه أكبر من 1000 وكذالك الق مة الت ه أكبر من 100 تشمل أ ضا الق مة الت ه أكبر من 1000 بمعنى دائما نرتب الشروط من العام الى األعم. 23
Console.WriteLine("value?") Dim value As Integer = Dim info As String Select Case value Case Is > 100 info = "more than 100" Case Is > 50 info = "more than 50" Case 1, 11 info = "one or eleven" Case 2 To 50 info = "number from 2 to 50" Case 0 info = "zero" Case -50 To -1 info = "Number from -50 to -1" Case Is < -100 info = "less than -100" End Select Console.WriteLine(info) مالحضة : الفرق ب ن هذا الكود والكود السابق هو تموقع جملة الطباعة ف الكود السابق كانت تأت مباشرة بعد شرط من الشروط ف هذا الكود وضعت متأخرا بعد الكلمة األخ رة للجملة الشرط ة التسلسل ة End select ف هذا الكود أدخلنا متغ ر جد دinfo من نوع نص ل حمل النص حسب كل شرط من الشروط المتسلسلة ثم بعد ذالك تستدع ه جملة الطباعة المتواجدة ف آخر الكود. جملة اإلخراج أو الطباعة ARRAYS ان صف فاخ value 1? 10 م و تؼ م ػه أعاط ان خشخاخ انران ح : Value 2? 20 value 3? 30 60=30+20+10 ان خشخاخ األسلاو ان كر تح تاألز ش ع ف طثغ ن ا انثش ايح انؼ ه ح انسغات ح انران ح: 24
Dim value1, value2, value3 As Integer Dim sum As Integer Console.WriteLine("value1?") value1 = sum += value1 Console.WriteLine("value2?") value2 = sum += value2 Console.WriteLine("value3?") value3 = sum += value3 Console.Write(value1) Console.Write("+") Console.Write(value2) Console.Write("+") Console.Write(value3) Console.Write("=") Console.Write(sum) هذه الجملة معناها بص غة أخرى sum = sum+ value1 دائما الق مة األول ة ألي متغ ر ه 0 الحظ أننا كتبنا write ول س writeline األولى نطبع ف نفس السطر والثان ة الرجوع الى سطر جد د هذا البرنامج أو المشروع كتب بطر قة صعبة عل نا التفك ر ف طر قة أسهل من هذا الحل ف البرنامج ما بعد اآلت : Dim values(2) As Integer Dim sum As Integer Console.WriteLine("value1?") values(0) = sum += values(0) Console.WriteLine("value2?") values(1) = sum += values(1) Console.WriteLine("value3?") values(2) = sum += values(2) Console.Write(values(0)) Console.Write("+") Console.Write(values(1)) Console.Write("+") Console.Write(values(2)) Console.Write("=") Console.Write(sum) سوف نطور هذا البرنامج ونتفادى التكرار الذي تالحظونه واضحا بالجملة التكرار ة For 25
Dim values(2) As Integer Dim sum As Integer Dim index As Integer For index = 0 To 2 Console.WriteLine("value" & index + 1 & "?") values(index) = sum += values(index) Console.Write(values(0)) For index = 1 To 2 Console.Write("+") Console.Write(values(index)) Console.Write("=") Console.Write(sum) Console.WriteLine("count of values?") Dim count As Integer = Dim values(count) As Integer Dim sum As Integer Dim index As Integer لماذا كتبنا هنا ناقص واحد ألن الق مة األول ة ألي متغ ر أو مصفوفة هو 0 والصفر عتد به واحد إذا أدخل المستخدم مثال رقم 10 صبح 11 For index = 0 To count - 1 Console.WriteLine("value" & index + 1 & "?") values(index) = sum += values(index) Console.Write(values(0)) For index = 1 To count - 1 Console.Write("+") Console.Write(values(index)) Console.Write("=") Console.Write(sum) 26
كتابة األرقام بطر قة تنازل ة Dim count As Integer = 5 Dim upperbound As Integer = count - 1 Dim values(upperbound) As Integer Dim index As Integer For index = 0 To upperbound Console.Write(" value " & (index + 1) & " : ") values(index) = Step-1 طباعة األرقام بخطوة ناقص 1 For index = upperbound To 0 Step -1 Console.WriteLine(" Element " & (index + 1) & "(at index " & (index) & " ): " & values(index)) Console.Write(" count: ") Dim count As Integer = Dim upperbound As Integer = count - 1 Dim values(upperbound) As Integer Dim index, highestvalueindex As Integer For index = 0 To upperbound Console.Write(" value " & (index + 1) & " : ") values(index) = If values(highestvalueindex) < values(index) Then highestvalueindex = index Console.WriteLine(" highest value: " & values(highestvalueindex) & "(Element " & (highestvalueindex + 1) & " at index " & highestvalueindex & ")") 27
Elements انح جخز ق ب 10 ع بصز جحكى ي 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 جز بز بيجب ي يصفىفة ARRAY values ي 10 انى. 1 Dim values(9) As Integer Dim index As Integer For index = 0 To 9 values(index) = 10 - index Console.WriteLine("Element" & (index + 1) & " ( index " & index & " ):" & values(index)) جز بز بيجب زجب يصفىفةARRAY جذحىي عهى 10 ع بصز ELEMENTS جخز ق ب ي 1 انى 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 Dim count As Integer = 10 Dim upperbound As Integer = count - 1 Dim values(upperbound) As Integer 28
For index = 0 To upperbound values(index) = index + 1 For index = 0 To upperbound Console.WriteLine(" Element " & (index + 1) & " (index " & index & ") : " & values(index)) هذه الجملة معناها الرجوع الى سطر وتركه فارغا Console.WriteLine() Dim backup As Integer For index = 0 To (count / 2) - 1 backup = values(index) values(index) = values(upperbound - index) values(upperbound - index) = backup For index = 0 To upperbound Console.WriteLine(" Element " & (index + 1) & " (index " & index & ") : " & values(index)) جز بز بيجب زجب يصفىفةARRAY جذحىي عهى 10 ع بصز ELEMENTS جخز ق ب ي 1 انى 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 المسألة الت أكتبها هنا مختصرة عندي فانظر ف الف د و ه بشكل أوضح وأعم Dim count As Integer = 10 Dim upperbound As Integer = count - 1 Dim values(upperbound) As Integer For index = 0 To upperbound values(index) = index + 1 For index = 0 To upperbound 29
Console.WriteLine(" Element " & (index + 1) & " (index " & index & ") : " & values(index)) Console.WriteLine() Dim backup As Integer = values(0) For index = 0 To (upperbound - 1) values(index) = values(index + 1) values(upperbound) = backup For index = 0 To upperbound Console.WriteLine(" Element " & (index + 1) & " (index " & index & ") : " & values(index)) جز بز بيجب زجب ذالخ يصفىفبتARRAYs جذحىي عهى 10 ع بصز ELEMENTS جخز ق ب ي 1 انى 10 هذه المقدمة أو المسألة مختصرة ارجع الى الف د و ان صفىفة 1 ق ى ي 1 انى 10: Index 0 1 2 3 4 5 6 7 8 9 Value 1 2 3 4 5 6 7 8 9 10 ان صفىفة 2 ق ى ي 10 انى 1 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 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 For index = 0 To upperbound values1(index) = index + 1 Console.WriteLine("Array1: ") For index = 0 To upperbound 30
Console.WriteLine("Element " & (index + 1) & "(index " & index & "): " & values1(index)) Console.WriteLine() For index = 0 To upperbound values2(index) = count - index Console.WriteLine("Array2: ") For index = 0 To upperbound Console.WriteLine("Element " & (index + 1) & "(index " & index & "): " & values2(index)) Console.WriteLine() For index = 0 To upperbound If values1(index) >= values2(index) Then values3(index) = values1(index) values3(index) = values2(index) Console.WriteLine("Array3: ") For index = 0 To upperbound Console.WriteLine("Element " & (index + 1) & "(index " & index & "): " & values3(index)) Console.WriteLine() دض تش ايدا ت صف فح تس ث ػ اصش ا أسلاو ػه شكم Fibonacci أ أ انشلى انز ه يد ع انشل انغاتم ن Fibonacci : 1 1 2 3 5 8 13 21 34 55 89.. Console.Write("count: ") Dim count As Integer = If count <= 0 Then Console.WriteLine("Error minimum count1. ") Dim upperbound As Integer = count - 1 Dim fibonacci(upperbound) As Integer Dim index As Integer fibonacci(0) = 1 31
If count > 1 Then fibonacci(1) = 1 2) For index = 2 To upperbound fibonacci(index) = fibonacci(index - 1) + fibonacci(index - For index = 0 To upperbound Console.Write(fibonacci(index) & " ") 1 2 3 2 4 6 3 6 9 4 8 12 5 10 15 6 12 18 رقم 4 هو جداء الرقم ن 2 ف العمود الثان و 2 ف السطر الثان 12 هو جداء الرقم ن 4 ف العمود الرابع والرقم 3 ف السطر الثالث وهكذا. سوف نقوم بعمل برنامج نتج لنا جدول على هذا الشكل: 4 8 12 16 20 24 Console.Write("Row count: ") Dim rowcount As Integer = Console.Write("column count: ") Dim columncount As Integer = 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 Console.WriteLine("*************") For i = 1 To rowcount For j = 1 To columncount Console.Write(values(i, j)) Console.Write(" ") Console.WriteLine(" ") نها ة المحاضرة رقم 3 32
تذا ح ان ساضشج سلى 4 FUNCTIONS AND SUBROUTINES انذ ال انثشايح انفشػ ح sin, cos, tang ف انف د ال ت غك د خ د د ال كث شج كانذ ال انش اض ح : أخش ذدذ ا يص فح أ تاألنفثائ ح ف انكرة انخاصح. د ال انرؼايم يغ ان ص ص : ucase len, trim, د ال ف انثش ايح ا ذ ع ف ع ف م و تؼ ه ح س اض ح أ زغات ح : تش ايح نهفاكر لاير Console.Write("Enter the first number: ") Dim n As Integer = Console.Write("Enter the second number: ") Dim m As Integer = Dim nm, Facn, Facm, Facnm, combin, i As Integer Facn = 1 For i = 2 To n Facn = Facn * i Facm = 1 For i = 2 To m Facm = Facm * i nm = n - m c m n = n! m!(n m )! Facnm = 1 For i = 2 To nm Facnm = Facnm * i combin = Facn / (Facm * Facnm) Console.WriteLine("c(" & n & "," & m & ") = " & combin) سوف نستخدم هذا البرنامج بطر قة أفضل بواسطة الدوال Functions ألننا كما الحظتم كررنا الكلمة مرات. الطر قة كما س أت ف البرنامج اآلت هو استعمال دالة نسم ها Factorial لتجنب التكرار Fac الفكتولاير عدة Console.Write("Enter the first number: ") Dim n As Integer = Console.Write("Enter the second number: ") Dim m As Integer = 33
Dim combin As Integer = Factorial(n) / Factorial(m) * Factorial(n - m) Console.WriteLine("c(" & n & "," & m & ") = " & combin) Function Factorial(ByVal j As Integer) Dim k, sum As Integer sum = 1 For k = 2 To j sum = sum * k Return (sum) End Function تش ايح شث ذمش ثا نهثش ايح انغاتك رذسب ف ػه ص غ اعرخذاو انذاالخ Console.Write("Enter the number: ") Dim n As Integer = Dim Fn As Integer Fn = sumpower(n, 4) / sumpower(n, 2) * sumpower(n, 3) Console.WriteLine("F(" & n & ")= " & Fn) Function sumpower(byval j As Integer, ByVal p As Integer) Dim k, sum As Integer For k = 1 To j sum += k ^ p Return (sum) End Function F n = n i=1 n i=1 i 4 i 2 n i=1 i 3 ف انثش ايد انغاتم اعرخذي ا انذانح FUNCTION ا ذؼان ا غرخذو انثش ايح انفشػ أخز فظ ان شش ع انغاتك انفاكر لاير : FAC (SUB) SUBROUTINE ن الزظ انفشق ت ا c m n = n! m!(n m )! Console.Write("Enter the first number: ") 34
Dim n As Integer = Console.Write("Enter the second number: ") Dim m As Integer = 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) Sub Factorial(ByVal j As Integer, ByRef sum As Integer) Dim k As Integer sum = 1 For k = 2 To j sum = sum * k أخ الكر م ف كل بدا ة محاضرة ونها تها قوم الدكتور عاطف العراق بمراجعة شاملة تحتوي على المعلومات الهامة واألساس ة الت نبغ على المتعلم التعرف عل ها. فال تمر عل ها مر الكرام بل اعطها اهتمامك وبالك حتى ترسخ ف ذهنك نظرا ألهم تها. تابع نها ة المحاضرة ستجد األجوبة عن األسئلة التال ة : ما فائدة الدالة Fac والبرامج الفرع ة sub ما الفارق ب نهما نؼثح يغ ان غرخذو: ؼى ال Public Class Form1 Private Sub Button2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button2.MouseMove "ال" = Button2.Text " ؼى" = Button1.Text Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove "ال" = Button1.Text " ؼى" = Button2.Text End Class ========================================================================= Public Class Form1 ػ ه اخ زغات ح تأصساس 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 = "" Private Sub addbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles addbtn.click resultlbl.text = firstnumbertxt.text + " + " + secondnumbertxt.text + " = " + Str(Val(firstnumbertxt.Text) + Val(secondnumbertxt.Text)) Private Sub subbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles subbtn.click resultlbl.text = firstnumbertxt.text + " - " + secondnumbertxt.text + " = " + Str(Val(firstnumbertxt.Text) - Val(secondnumbertxt.Text)) Private Sub multbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles multbtn.click resultlbl.text = firstnumbertxt.text + " * " + secondnumbertxt.text + " = " + Str(Val(firstnumbertxt.Text) * Val(secondnumbertxt.Text)) Private Sub dividbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles dividbtn.click resultlbl.text = firstnumbertxt.text + " / " + secondnumbertxt.text + " = " + Str(Val(firstnumbertxt.Text) / Val(secondnumbertxt.Text)) End Class ======================================================================== Public Class Form1 combobox ػ ه اخ زغات ح تذ أصساس 36
Private Sub operationcombo_selectedindexchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles operationcombo.selectedindexchanged Select Case operationcombo.text "خ غ" Case resultlbl.text = firstnumbertxt.text + " + " + secondnumbertxt.text + " = " + Str(Val(firstnumbertxt.Text) + Val(secondnumbertxt.Text)) "طشذ" Case resultlbl.text = firstnumbertxt.text + " - " + secondnumbertxt.text + " = " + Str(Val(firstnumbertxt.Text) - Val(secondnumbertxt.Text)) "ضشب" Case resultlbl.text = firstnumbertxt.text + " * " + secondnumbertxt.text + " = " + Str(Val(firstnumbertxt.Text) * Val(secondnumbertxt.Text)) "لغ ح" Case resultlbl.text = firstnumbertxt.text + " / " + secondnumbertxt.text + " = " + Str(Val(firstnumbertxt.Text) / Val(secondnumbertxt.Text)) End Select End Class ============================================================================ Public Class Form1 زغاب ػذد زش ف خ هح لهة زش ف ا Private Sub statmenttxt_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles statmenttxt.textchanged 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) End Class ============================================================================ 37
تش ايح ا نح انساعثح Public Class Form1 Dim firstnum As Decimal Dim operationname As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load screentxt.text = "0" Private Sub btn0_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn0.click If screentxt.text = "0" Then screentxt.text = "0" screentxt.text = screentxt.text + "0" Private Sub btn1_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn1.click If screentxt.text = "0" Then screentxt.text = "1" screentxt.text = screentxt.text + "1" 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" screentxt.text = screentxt.text + "2" Private Sub btn3_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn3.click 38
If screentxt.text = "0" Then screentxt.text = "3" screentxt.text = screentxt.text + "3" 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" screentxt.text = screentxt.text + "4" Private Sub btn5_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn5.click If screentxt.text = "0" Then screentxt.text = "5" screentxt.text = screentxt.text + "5" Private Sub btn6_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn6.click If screentxt.text = "0" Then screentxt.text = "6" screentxt.text = screentxt.text + "6" Private Sub btn7_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn7.click If screentxt.text = "0" Then 39
screentxt.text = "7" screentxt.text = screentxt.text + "7" Private Sub btn8_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn8.click If screentxt.text = "0" Then screentxt.text = "8" screentxt.text = screentxt.text + "8" Private Sub btn9_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn9.click If screentxt.text = "0" Then screentxt.text = "9" screentxt.text = screentxt.text + "9" Private Sub pointbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles pointbtn.click screentxt.text = screentxt.text + "." Private Sub addbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles addbtn.click firstnum = Val(screentxt.Text) screentxt.text = "0" operationname = "add" Private Sub subbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles subbtn.click firstnum = Val(screentxt.Text) 40
screentxt.text = "0" operationname = "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" 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" Private Sub minnerbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles minnerbtn.click screentxt.text = Str(Val(screentxt.Text) * -1) Private Sub equalbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles equalbtn.click Select Case operationname 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 41
Private Sub clearbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles clearbtn.click screentxt.text = "0" 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 Class ========================================================================= operationexec() subroutine : نمذ أضف ا تش ايح فشػ ػه انك د انغاتك اال أ نى شرغم تشكم خ ذ Public Class Form1 Dim firstnum As Decimal Dim operationname As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load screentxt.text = "0" Private Sub btn0_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn0.click If screentxt.text = "0" Then screentxt.text = "0" screentxt.text = screentxt.text + "0" Private Sub btn1_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn1.click If screentxt.text = "0" Then screentxt.text = "1" 42
screentxt.text = screentxt.text + "1" 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" screentxt.text = screentxt.text + "2" 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" screentxt.text = screentxt.text + "3" 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" screentxt.text = screentxt.text + "4" Private Sub btn5_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn5.click If screentxt.text = "0" Then screentxt.text = "5" screentxt.text = screentxt.text + "5" 43
Private Sub btn6_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn6.click If screentxt.text = "0" Then screentxt.text = "6" screentxt.text = screentxt.text + "6" Private Sub btn7_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn7.click If screentxt.text = "0" Then screentxt.text = "7" screentxt.text = screentxt.text + "7" Private Sub btn8_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn8.click If screentxt.text = "0" Then screentxt.text = "8" screentxt.text = screentxt.text + "8" Private Sub btn9_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btn9.click If screentxt.text = "0" Then screentxt.text = "9" screentxt.text = screentxt.text + "9" 44
Private Sub pointbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles pointbtn.click screentxt.text = screentxt.text + "." Private Sub addbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles addbtn.click operationexec() firstnum = Val(screentxt.Text) screentxt.text = "0" operationname = "add" Private Sub subbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles subbtn.click operationexec() firstnum = Val(screentxt.Text) screentxt.text = "0" operationname = "sub" Private Sub multbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles multbtn.click operationexec() firstnum = Val(screentxt.Text) screentxt.text = "0" operationname = "mult" 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" 45
Private Sub minnerbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles minnerbtn.click screentxt.text = Str(Val(screentxt.Text) * -1) Private Sub equalbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles equalbtn.click operationexec() Private Sub clearbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles clearbtn.click screentxt.text = "0" 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) Sub operationexec() Select Case operationname SUBROUTINE هذا هو البرنامج الفرع ال operationexec() 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 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) Private Sub startbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles startbtn.click Timer1.Enabled = True Private Sub stopbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles stopbtn.click Timer1.Enabled = False Private Sub resetbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles resetbtn.click t1 = 0 End Class ============================================================================ == Public Class Form1 Dim t1 As Decimal Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Select Case NumericUpDown1.Value Case 0 t1 += 1 Case 1 t1 += 0.1 Case 2 t1 += 0.01 Case 3 t1 += 0.001 End Select screenlbl.text = Str(t1) Private Sub startbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles startbtn.click Timer1.Enabled = True Private Sub stopbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles stopbtn.click 47
Timer1.Enabled = False Private Sub resetbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles resetbtn.click t1 = 0 Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged Select Case NumericUpDown1.Value Case 0 Timer1.Interval = 1000 t1 = Fix(t1) Case 1 Timer1.Interval = 100 t1 = Fix(t1 * 10) / 10 Case 2 Timer1.Interval = 10 t1 = Fix(t1 * 100) / 100 Case 3 Timer1.Interval = 1 t1 = Fix(t1 * 1000) / 1000 Case NumericUpDown1.Value = 3 Timer1.Interval = 1 t1 = Fix(t1 * 1000) / 1000 End Select Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load NumericUpDown1.Value = 0 Timer1.Interval = 1000 End Class ============================================================================ == Public Class Form1 Dim t1 As Decimal Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Select Case NumericUpDown1.Value Case 0 t1 += 1 Case 1 t1 += 0.1 Case 2 t1 += 0.01 Case 3 t1 += 0.001 End Select 48
screenlbl.text = Str(t1) 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)) Private Sub stopbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles stopbtn.click Timer1.Enabled = False screenlst.items.add("stop ad" & Str(t1)) Private Sub resetbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles resetbtn.click t1 = 0 Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged Select Case NumericUpDown1.Value Case 0 Timer1.Interval = 1000 t1 = Fix(t1) Case 1 Timer1.Interval = 100 t1 = Fix(t1 * 10) / 10 Case 2 Timer1.Interval = 10 t1 = Fix(t1 * 100) / 100 Case 3 Timer1.Interval = 1 t1 = Fix(t1 * 1000) / 1000 Case NumericUpDown1.Value = 3 Timer1.Interval = 1 t1 = Fix(t1 * 1000) / 1000 End Select Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load NumericUpDown1.Value = 0 Timer1.Interval = 1000 End Class Public Class Form1 انف ذ سلى : 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)) End Class ======================================================================== == Public Class Form1 Private Sub resultbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles resultbtn.click DataGridView1.Visible = True ("انزقى" a1", DataGridView1.Columns.Add(" ("انزقى يزبع" DataGridView1.Columns.Add("a2", Dim i, n As Integer For i = Val(startnumtxt.Text) To Val(lastnumtxt.Text) n = DataGridView1.Rows.Add() DataGridView1.Rows.Item(n).cells(0).value = Str(i) DataGridView1.Rows.Item(n).cells(1).value = Str(i ^ 2) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DataGridView1.Visible = False End Class ======================================================================== == Public Class Form1 Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged If NumericUpDown1.Value > 0 Then DataGridView1.Visible = True DataGridView1.Visible = False Dim i As Integer For i = 1 To DataGridView1.Columns.Count DataGridView1.Columns.Remove("a" + Str(i)) For i = 1 To NumericUpDown1.Value + "رقى انع ىد" Str(i), DataGridView1.Columns.Add("a" + Str(i)) 50