69
Visual Basic 1 ﺍﻟﺮﺳﺎﺋﻞMsg BOX ) ( ﻗـﺪﺭﺓ ﺩﻟﻴﻞ ﺫﻟﻚ ﻛﺎﻥ ﻛﻠﻤﺎ ﺍﻛﱪ ﺣﺮﻳﺔ ﺍﳌﺴﺘﺨﺪﻡ ﻭﳝﻨﺢ ﻣﺮﻧﺎ ﺍﻟﱪﻧﺎﻣﺞ ﻛﺎﻥ ﻛﻠﻤﺎ ﺍﻧﺔ ﺍﳌﻌﻠﻮﻡ ﻣﻦ ﻭﻣﻬﺎﺭﺗﺔ ﺍﳌﱪﻣﺞ, ﻭﺍﳌـﺴﺘﺨﺪﻡ ﺍﳌـﱪﻣﺞ ﻣﺎﺑﲔ ﻭﺳﻴﻄﺔ ﺣﻮﺍﺭ ﻟﻐﺔ ﻫﻨﺎﻙ ﻳﻜﻮﻥ ﺍﻥ ﻳﺘﻄﻠﺐ ﻫﺬﺍ ﻭﻟﻜﻦ. ﺍﻟﱪﺍ ﻣﻦ ﺍﻟﻜﺜﲑ ﻋﻠﻰ ﻭﻋﻤﻠﻚ ﲡﺎﺭﺑﻚ ﺍﺛﻨﺎﺀ ﺍﻧﺔ ﺑﺎﻟﺘﺄﻛﻴﺪ ؟ ﻛﻴﻒ ﻟﻚ ﺗﻌﺮﺽ ﺭﺳﺎﺋﻞ ﺻﻨﺎﺩﻳﻖ ﺻﺎﺩﻓﺖ ﻣﺞ ﺍﻟﱪﻧﺎﻣﺞ ﻋﻤﻞ ﻣﺴﺎﺭ ﻳﺘﺤﺤﺪ ﺍﺧﺘﻴﺎﺭﻙ ﻋﻠﻰ ﻭﺑﻨﺎﺀ ﺧﻴﺎﺭﺍﺕ, ﻓﻮﻕ ﺍﻟﻜﺘﺎﺑﺔ ﺍﻭ ﺣﺬﻓﻬﺎ ﺍﻭ ﺍﳌﻠﻔﺎﺕ ﻛﺤﻔﻆ ﺍﳋﺮﻭﺝ ﻟﺘﺄﻛﻴﺪ ﺭﺳﺎﻟﺔ ﺍﻭ ﻣﻮﺟﻮﺩ ﻣﻠﻒ.. ﻛﻬﺬﺍ ﺷﻴﺌﺎ ﺗﺼﻨﻊ ﺍﻥ ﻭﺗﺮﻳﺪ ﻭﻫﻜﺬﺍ, ﺻﻌﺒﺔ ﻟﻴﺴﺖ ﺍﳌﺴﺄﻟﺔ. ؟ ﺍﳌﺴﺘﺨﺪﻡ ﻋﻠﻰ ﺭﺳﺎﺋﻞ ﺗﻌﺮﺽ ﻛﻴﻒ ﺍﺣﻴﺎﻥ ﺗﺮﻏﺐ ﻗﺪ ﺍﻟﱪﻧﺎﻣﺞ ﺳﲑ ﺍﺛﻨﺎ ﻛﺜﲑﺓ, ﻣـﺴﺄﻟﺔ ﺑﺸﺄﻥ ﻗﺮﺍﺭﺍ ﻳﺘﺨﺬ ﺍﻥ ﺍﳌﺴﺘﺨﺪﻡ ﻣﻦ ﺗﻄﻠﺐ ﺍﻥ ﻣﺎ. ﻣﻌﲔ ﺑﺎﺳﻢ ﻣﻠﻒ ﺣﻔﻆ ﺍﳌﺴﺘﺨﺪﻡ ﻃﻠﺐ ﺍﺫﺍ ﻓﻤﺜﻼ, ﺍﻟﻘﺮﺹ ﻋﻠﻰ ﻣﻮﺟﻮﺩﺍ ﺍﳌﻠﻒ ﻫﺬﺍ ﻛﺎﻥ, ﻓﻘﺪ ﺍﻡ ﻓﻮﻗﺔ ﺍﻟﻜﺘﺎﺑﺔ ﻳﺮﻳﺪ ﻛﺎﻥ ﺍﻥ ﺳﺆﺍﻟﺔ ﺗﺮﻏﺐ. ﺣﺮﻳـﺔ ﻟـﻪ ﻭﺗﺘﺮﻙ ﺭﺳﺎﻟﺔ ﻟﻪ ﺗﻌﺮﺽ ﺍﳊﺎﻟﺔ ﻫﺬﺓ ﺍﻻﺟ ﺍﺧﺘﻴﺎﺭ ﺍﳌﻨﺎﺳﺐ ﺮﺍﺀ. ؟ ﺍﻟﺮﺳﻠﺔ ﻫﺬﺓ ﺗﻌﺮﺽ ﻛﻴﻒ ﺍﻻﻣﺮ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟﺮﺳﺎﻟﺔ ﻋﺮﺽ ﻳﺘﻢMsgBox ﺷﻜﻼﻥ ﻭﻟﺔ. ﺍﻻﻭﻝ: ﺭﺃﻳﺔ ﳛﺪﺩ ﺍﻥ ﺍﳌﺴﺘﺨﺪﻡ ﻣﻦ ﺗﻄﻠﺐ ﻭﻻ ﺑﺴﻴﻄﺔ ﺭﺳﺎﻟﺔ ﻋﺮﺽ ﺗﺮﻳﺪ ﻛﻨﺖ ﺍﺫﺍ ﻣﻌﻴﻨﺔ ﻣﺴﺄﻟﺔ, ﺍﻟﺘﺎﻟﻴﺔ ﺍﻟﺼﻴﻐﺔ ﺍﺳﺘﺨﺪﺍﻡ ﻳﺘﻢ ﺍﳊﺎﻟﺔ ﻫﺬﺓ: ﺍﳊﻮﺍﺭ ﻣﺮﺑﻊ ﻋﻨﻮﺍﻥ, ﻭﺍﻟﺮﻣﻮﺯ ﺍﻻﺯﺭﺍﺭ, ﺍﻟﺮ ﺍﳌﻄﻠﻮﺑﺔ ﺳﻠﺔMsgBox . ﺍﻟﺜﺎﱐ: ﺍﻟﺘﺎﻟﻴﺔ ﺑﺎﻟﻄﺮﻳﻘﺔ ﺍﻻﻣﺮ ﺑﻮﺿﻊ ﻗﻢ ﻣﻌﲔ ﺑﺸﺊ ﺭﺃﻳﺔ ﺗﻌﺮﻑ ﺍﻥ ﺗﺮﻳﺪ ﻛﻨﺖ ﺍﺫﺍ ﺍﻣﺎ:

فيجول بيسك

Embed Size (px)

Citation preview

Page 1: فيجول بيسك

Visual Basic

1

)( Msg BOX الرسائل

من املعلوم انة كلما كان الربنامج مرنا ومينح املستخدم حرية اكرب كلما كان ذلك دليل قـدرة

. ولكن هذا يتطلب ان يكون هناك لغة حوار وسيطة مابني املـربمج واملـستخدم , املربمج ومهارتة

مج صادفت صناديق رسائل تعرض لك كيف ؟ بالتأكيد انة اثناء جتاربك وعملك على الكثري من الربا

كحفظ امللفات او حذفها او الكتابة فوق , خيارات وبناء على اختيارك يتححد مسار عمل الربنامج

.املسألة ليست صعبة , وهكذا وتريد ان تصنع شيئا كهذا .. ملف موجود او رسالة لتأكيد اخلروج

كيف تعرض رسائل على املستخدم ؟

ان تطلب من املستخدم ان يتخذ قرارا بشأن مـسألة , كثرية اثنا سري الربنامج قد ترغب يف احيان

فقد , مث كان هذا امللف موجودا على القرص , فمثال اذا طلب املستخدم حفظ ملف باسم معني . ما

يف هذة احلالة تعرض له رسالة وتترك لـه حريـة . ترغب يف سؤالة ان كان يريد الكتابة فوقة ام ال

.راء املناسباختيار االج

كيف تعرض هذة الرسلة ؟

. ولة شكالن MsgBoxيتم عرض الرسالة باستخدام االمر

, مسألة معينة اذا كنت تريد عرض رسالة بسيطة وال تطلب من املستخدم ان حيدد رأية يف :االول

: يف هذة احلالة يتم استخدام الصيغة التالية

. MsgBoxسلة املطلوبة الر, االزرار والرموز,عنوان مربع احلوار

:اما اذا كنت تريد ان تعرف رأية يف بشئ معني قم بوضع االمر بالطريقة التالية :الثاين

Page 2: فيجول بيسك

Visual Basic

2

املتغيري = MsgBoxالرسلة املطلوبة , االزرار والرموز,عنوان مربع احلوار

:ويف هذة احلالة سيحمل املتغيري رد فعل املستخدم حيث ان

.ملة اليت تريد عرضها على املستخدم هي اجل :الرسالة املطلوبة

.هو عنوان شريط عنوان مربع احلوار :عنوان مربع احلوار

.وهو حيدد نوعية االزرار اليت ترغب يف عرضها والرموز :االزرار والرموز

والرموز واالزرار يوضحها اجلدول التايل فيظهر لنا ان كل زر او جمموعة او رمز حجزت لة قيمـة

ث يتم استخدام هذة القيم منفردة أو يتم مزجها بعملية اجلمع لعرض زر معني او جمموعـة ثابتة حبي

.ازرار مع رمز

املعىن املقابل القيمة0 Ok )موافق( 1 Ok )موافق ( وcancel )الغاء االمر( 2 Abort )احباط ( وRetry ) اعادة احملاولة (Ignore )جتاهل( 3 Yes) نعم ( وNo ) ال (Cancel ) الغاء االمر( 4 Yes) نعم ( وNo ) ال( 5 Retry ) اعادة احملاولة (Ignore )جتاهل(

عرض رمز قف 16 عرض رمز عالمة االستفهام 32 عرض رمز عالمة التعجب 48 عرض رمز عالمة معلومات 64

Page 3: فيجول بيسك

Visual Basic

3

, م االسـتعال ومعها رمز عالمة ok & cancelفأذا رغبت يف عرض رسالة حتتوي على االزرار

:وتستخدمها عندما تطلب الرسالة هكذا 65=64+1 فأنك جتمع

MsgBox" هذة رسالة للتجربة" , 65," بدون عنوان "

:2مثال

وكان يف , واشترطنا فية بلوغ النصاب , يف احملاضرة السابقة تعرضنا اىل برنامج يقوم حبساب الزكاة

سنستخدم نفس البيانات للتطبيق الـسابق , ذلك التطبيق عند بلوغ النصاب يقوم الربنامج باخلروج

.وسنضع رسالة تظهر للمستخدم اذا كان املبلغ مل يبلغ النصاب

.االن نقوم بكتابة الكود

كيف حنصل على ذلـك ؟ نقـوم okوزر, وعالمة استعالم , حنن حنتاج اىل مكان لنص الرسالة

okبينمـا زر 64 الم عندنا يرمز لة بالرقم فاالستع, بأجراء عملية الدمج مابني قيم الرمز واالزرار

:يرمز لة بالصفر فنجمعهما

64 = 64+ صفر

وبعـدة 64 واالن نضع دالة الرسائل مث نضع نص الرسالة بني عالميت تنصيص تليها فاصلة مث الرقم

.فاصلة مث نضع عنوان نافذة الرسالة بني عالميت تنصيص

: ستظهر لك رسالة التالية دينار 65 ننفذ االن وضع أي مبلغ يقل عن

Page 4: فيجول بيسك

Visual Basic

4

كيف؟ عندما ننشئ برناجما وتضع . االن نتعرف على كيفية االستفادة من الرسائل يف اختاذ القرارات

فية زرا للخروج من الربنامج او حذف ملف ويتطلب االمر وضع رسالة حتذيرية تتضمن املواصلة او

سواء (فعند ضغط نعم يقوم الربنامج مبواصلة احلدث ) ال(وزر, ) نعم(ويف هذة الرسالة زر , التراجع

.بينما ال فيلغي احلدث ويعود اىل النافذة الرئيسية ) كان خروج او حذف او حفظ

وقبل ان نأخذ مثاال على ذلك جيب ان نتعرف على القيم املعادة وهي اليت يشار اليها دائما يف كتابة

.الشرط

فان , واذا كنت تريد ان تعرف رد فعل املستخدم . وهذة القيم مبينة يف اجلدول التايل

. يعود باالحتماالت املبينة يف اجلدول msgboxاالمر

القيمة الزر املقابل

1 Ok 2 Cancel 3 Abort 4 Retry 5 Ignore 6 Yes 7 No

Page 5: فيجول بيسك

Visual Basic

5

Private sub command1 _ click ()

Response = msgbox ( "امجهل ترغب حقا يف ااء الربن" ,36, "اخلروج من الربنامج " )

If response = 6 then end

End sub

فأن yes " نعم " الرسالة واذا اختار املستخدم ) الفيجول بيسك(يف هذة احلالة سيعرض

.ينهي الربنامج) الفيجوال بيسك(

:3مثال

ب يكون لدى املـستخدم سنجري تعديال بسيطا على برنامج الزكاة حبيث ان املبلغ اذا مل يبلغ النصا

ففي الربنامج السابق الرسالة اخبارية ليس فيها سوى خيـار , خيار العودة حلساب زكاة مبلغ جديد

& yesاما يف هذا املثال سيكون هناك رسالة اخبارية وحتتوي على خيارين يف نفس الوقت , واحد

no عالمة االسـتفهام (32) + ازرار نعم وال (4فنجمع الرقم , ومعها رمز عالمة االستفهام =(

: نبدأ االن بتركيب الكود التايل36

يالحظ يف الكود السابق اننا وضعنا شرط حيدد مسار الربنامج وهو انة اذا كانت القيمة

Page 6: فيجول بيسك

Visual Basic

6

فهذا يعين ان املستخدم يرغب يف اجراء حسابات جديدة للزكاة 6املعادة من االجراء مساوية للعدد

واذا , حيث وضعنا عالميت تنـصيص فارغـة Text1يمة خالية ملربع النص وبالتايل يتم العودة بق

وهنا جتدر االشـارة اىل ان القيمـة , يتم يتم اخلروج من الربنامج 6كانت القيمة املعادة التساوي

وعند تنفيذ التطبيق ستظهر الرسالة التالية.االخرى مل طاملا ان هناك خيارين فقط

المستخدم ؟آيف تطلب معلومة من

حبيث يظهر مربع حوار يطالب املستخدم , لنتعرف على كيفية استخدام صناديق احلوار او االدخال

بادخال قيمة معينة يبىن عليها الربنامج عملية معينة والدالة اليت سنستخدمها هلذا الغرض هـي دالـة

Input Box حيث تستخدم الصيغة التالية :

متغري= Input Box الرسالة عنوان النافذة قيمة افتراضية

.يعين اجلملة اليت تريد عرضها على املستخدم :الرسالة

.هو شريط العنوان يف النافذة اليت يعرضها على املستخدم :عنوان النافذة

.هي القيمة اليت تضعها انت للمستخدم :قيمة افتراضية

Page 7: فيجول بيسك

Visual Basic

7

.مثال برنامج ادخل كلمة السر

pw$ = input box$ ")ادخل كلمة السر من فضلك","ريف كلمة السرتع",(""

if pw$ <> "علي" then

msgbox "كلمة السر غري صحيحة"

end

endif

:4مثال

ترحيبيـة ومن مث يظهر رسالة , نفترض انك تريد ان تعمل برنامج يطلب من املستخدم ادخال امسة

فعند بناء الكـود ) ياساجدة مرحبا بك ( تتضمن امسة حبيث اذا ادخل اسم ساجدة مثال تظهر رسلة

وسنتعرف يف هذا التطبيـق command1 ونضع فيها زر امر Form1حنتاج اىل نافذة جديدة

فنقوم بالنقر املزدوج , من خالل الربنامجCommand1ايضا على طريقة ضبط اعداد مسمى الزر

Page 8: فيجول بيسك

Visual Basic

8

حتميـل أي هذا الكود سينفذ مبجـرد Load احلدث Form1على أي مكان فارغ يف النافذة

: فنكتب الكود التايلForm1النافذة

.ومبجرد النقر على زر دخول

) .زائرنا الكرمي(يظهر لنا مربع حوار وفية مساحة كتب ا اجلملة االفتراضية

ومبجرد كتابة االسم او الكتفاء باجلملة االفتراضية سيقوم الربنامج بأضافة ذلك االسم اىل مجلة ثابتـة

). بك يامرحبا(كتبت سابقا

Page 9: فيجول بيسك

Visual Basic

9

املتغريات هل هناك ثوابت او متغريات ؟

وقد , العالن عن متغريات ومىت حنتاح الستخدام كل منها انعم وسنتعرف على انواعها و : اجلواب

ماهي الفائدة من املتغريات ؟ واجلواب ان الربنامج ينقسم اىل : يتوارد اىل ذهن القارئ السوال التايل

.ات متوقعة وهذة االخرية جيب ان حيجز هلا مكان يناسبها معطيات ثابتة ومعطي, قسمني

:سنبدا بعرض اشكال املتغريات وهي املبينة باجلدول التايل

نوع البيانات مدى املتغري نوع املتغريInteger 32767 ( - /+ ) اعداد صحيحة

Long 2147438647 ( - /+ ) اعداد صحيحة Single 3.402E38 (- /+ ) فاصلة عشرية ارقام ب

Doubul 1.797E808 ( - /+ ) ارقام عشرية String 2,000,000,000 حريف

Byte 0 – 255 عدد صحيح Boolean True / False خطأ/ صح

Date ــن اىل 1/1/100مــ31/12/9999

تاريخ

Currency 922E14 ( - / + ) عملة Variant All ألي بيانات(متنوع(

انواع متعددة منها العددية واحلرفية والعشرية واملتنوعة وفيما يلي بعض من تتكون البيانات من .هدة االنواع اليت حنتاجها يف التطبيقات القادمة

وهي متثل نوع البيانات العددية الرقمية الصحيحة : singleبيانات الدقة االحادية .1 (bytes 4)ات ختزين ووميكن ختزينها يف اربع وحد. املوجبة والسالبة , والعشرية

Page 10: فيجول بيسك

Visual Basic

10

املوجبة , ومتثل البيانات الرقمية الصحيحة والعشرية : doubleبيانات الدقة املضاعفة .2ويتم , مرتلة عشرية } 17- 16{ات دقة مضاعفة وتكون دقتها لغاية ذوهي ,والسالبة

. (8bytes)ختزينها يف مثاين وحدات ختزين

وهي تلك البيانات الرقمية الصحيحة واليت : longالبيانات الرقمية الصحيحة الكبرية .3

.(bytes 4)ميكن ختزينها يف اربع وحدات ختزين وهي تلك البيانات اليت حتتوي على ارقام واحرف : stringبيانات السلسلة احلرفية .4

.هجائية واحرف خاصة وكل حرف منها يتم ختزينه يف وحدة ختزين واحدة فقط وهي متثل نوع البيانات املتعلقة ببيانات التاريخ وميكن ختزا يف مثاين : dateبيانات التاريخ .5

. (8bytes)وحدات ختزين ومتثل نوع البيانات للقيم اهول نوعها وميكن ان تكون ايا : variantالبيانات املتنوعة .6

ايل فان من االنواع السالفة الدكر ميكن ختزينها يف ست عشرة وحدة ختزين لكل حرف وبالت .اكرة ذا النوع من البيانات سيكون مكلفا من ناحية احلجم الالزم يف الذاستخدام ه

:البيانات الثابته والعددية واحلرفية , 1577{ الثوابت عبارة عن قيم التتغري مهما اختلف موقعها داخل الربنامج ومثال دلك

لثوابت اليت تتكون من سلسة اما ا. وهي عبارة عن ثوابت عددية } 3 , 88 , -43 , 0 " . no 43/41 " ,"tr 65467 " ," ns:"حرفية فيجب ان تكتب بالشكل التايل

:املتغريات

اكرة ميكن ان حيتوي على بيانات معينة بنوع معني تتغيري قيمته ذاملتغري هو موقع حمدد يف الألا , ن ليست قيما ثابتة ذفاملتغريات ا. طبقا للقيمة املعروفة او احملسوبة له خالل مجل الربنامج

لك ميكن للمتغري ان حيتوي ذول. تتغري الحقا بعكس الثوابت فأا تبقى ثابتة طيلة مجل الربنامج وهلدا جيب تعريف نوع املتغريات يف بداية الربنامج وحسب اجلملة . قيما خمتلفة يف اوقات خمتلفة

: التالية Dim var- name AS Data type

Page 11: فيجول بيسك

Visual Basic

11

: حيث ان

Dim : كلمة مفتاحية وهي كلمة مرور للغة فيجوال بيسك وال يستطيع استخدامها ألي غرض .أخر داخل الربنامج var- name : ميثل اسم املتغيري املستخدم داخل الربنامج وحتت هدا االسم سيتم حجز مكان

.Data typeاكرة عند التشغيل وحسب نوع البيانات ذثبت لة يف الData type : متثل نوع البيانات املراد ختزينها يف هدا املتغري وميكنك اختيار اي نوع من البيانات

.كر ومثال على دلك ذالسلفة ال

Dim X As Integer

Dim Y As Long

Dim A As Double ,B As Double

Dim Month As Date

Dim Max As Single

Dim Name As String

Dim Z,V,C

Dim Str As String *15

:املالحظات .اجلمل االخرية تعين ان املتغري احلريف حيتوي كحد اقصى على مخسة عشر حرف فقط • .ال ميكن تعريف نفس املتغري يف مجلتني بنوعني خمتلفني ومثال على دلك •

Dim X As String

Dim A,B,C,X ال ميكن ان حيتوي اسم املتغري على فراغ او نقطة او يبدأ برقم او حيتوي على قوس او اشارات •

.لك ذاخرى ومثال على

Page 12: فيجول بيسك

Visual Basic

12

Dim 1st As Date Dim My Nam.is As String

Dim Num one As Long

:الصيغة العامة جلمل االعالن

لغرض التعريف وهي تستخدم لتعريف املتغريات ضمن Dimى مجلة تعرفنا سابقا علات صفة خاصة حبيث ال ميكن استخدام قيم نفس هدة املتغريات يف ذاالجراء الواحد اي تكون

:لك ذميكن التعرف على صيغ تعريف اخرى ومثال على . اجراء اخر ضمن نفس التطبيق

Dim وهي تشبة عمل Praivate Var Name As Var Typeصيغة التعريف •ج والميكن استخدامة ذبالنسبة لتعريف املتغريات باالضافة اىل كوا صيغة خاصة باالداة او النمو

.يف مكان اخر وكما ورد يف االمثلة التطبيقية السابقة تستخدم عندما يراد Puplic Var Name As Var Type صيغة التعريف •

.ثر من اجراء واحد عند احلاجة الية اي يعترب تعريف عام استخدام قيمة املتغري يف اك تستخدم عندما يراد االحتفاظ Static Var Name As Var Typeصيغة التعريف •

لك عند استدعاء ذوحيدث , ة املتغريات ذبقيمة املتغريات حىت بعد االنتهاء من االجراء املعلنة به ه لالجراء تعتمد على القيمة callملتغري يف اي استدعاء اجراء معني عدة مرات حبيث تكون قيمة ا

.Staticة احلالة جيب التعريف جبملة ذالسابقة يف االستدعاء السابق ففي ه

: Constاالعالن عن الثوابت امثلة , ميكن تعريف الثابت على انه ثابت طيلة الربنامج وال جيوز تغيري قيمتة داخل الربنامج

Const str =”n1” , Const sa=43: ة اجلملة ذعلى ه

Page 13: فيجول بيسك

Visual Basic

13

(Matrix /Arrays)املصفوفات )1(

:تعريف املصفوفة

كل مصفوفة هلا اسم واحد . عبارة عن متغريات مفهرسة حتتوي على بيانات عديدة من نفس النوع

ميكن استخدامة للرجوع اىل أي عنصر فيها وذلك باقتران هذا االسم بدليل ميثل مكان العنـصر يف

النـصوص واالعـداد : وميكن انشاء مصفوفة الحتواء أي نوع من انواع البيانات مثل , املصفوفة

, Byte :فأنواع البيانات املتـوفرة يف الفيجـوال بيـسك هـي , صحيحة وغريهالاحلقيقية وا

Boolean ,

Integere , Long , Single , Double , Currency , Data , String

, Variant , User-defined

واستخدام املصفوفات يف الربجمة يساعد برامج قصرية وبسيطة ذات قوة اكـرب النـة ميكـن بنـاء

Loops تتعامل بكفاءة مع املصفوفات مهما كان عدد عناصرها .

:اخلصائص االساسية للمصفوفة يف الفيجوال بيسك

.ناء تنفيذ الربنامج والميكن تغيرية اث, اسم املصفوفة ميثل عنوان يف الذاكرة .1

.ميكن االعالن عن مصفوفة الي نوع من انواع البيانات .2

.كل وحدة بيانات منفردة يف املصفوفة تسمى عنصر .3

.مجيع العناصر تكون من نفس النوع .4

, مجيع العناصر تكون خمزونة على التتابع يف ذاكرة احلاسوب ودليل اول عنصر هو الـصفر .5

. Option Baseلة باستخدام مج) 1(وميكن جعلة

.حيدد موقع العنصر بواسطة رقم الصف ورقم العمود الذي يقع فيه .6

Page 14: فيجول بيسك

Visual Basic

14

.وعناصر املصفوفة تكون حمصورة بني هذين احلدين , لكل مصفوفة حد اعلى وحد ادىن .7

.من املمكن ان تكون املصفوفة ذات بعد واحد او متعددة االبعاد .8

هناك نوعيني من املصفوفات

وهي اليت يظل حجمها ثابت اثناء ( Fixed- size array): جم الثابت املصفوفة ذات احل •

. تشغيل الربنامج

وهي اليت ميكن تغـيري ( Dynammic –size array ): املصفوفة ذات احلجم املتغيري •

.حجمها اثناء تشغيل الربنامج

Fixed – size array: االعالن عن مصفوفات احلجم الثابت

حيث لالعالن : العالن عن هذا النوع على النطاق الذي سوف تغطية املصفوفة هناك ثالث طرق ل

Dim ولالعالن عن مصفوفة خاصة تستخدم كلمة Publicعن مصفوفة عامة تستخدم كلمة

. Privateاو

:حتديد احلدين االعلى واالدىن للمصفوفة

.واس يكتب احلد االعلى بعد االسم وبني االق, عند االعالن عن مصفوفة •

.ال ميكن ان يزيد احلد االعلى عن نطاق نوع املتغيري •

.احلد االدىن االفتراضي هو الصفر •

. كما سنرى يف االمثلة To, ينبغي كتابتة باستخدام كلمة , لتحديد احلد االدىن •

:6 مثال

Page 15: فيجول بيسك

Visual Basic

15

Studentاعالن عن مصفوفة

Dim Student (1000) As integer

Dimنستبدل , وجلعلها مصفوفة عامة . عنصر 1001ملصفوفة وبذلك يكون عدد عناصر هذة ا

: وكالتايلPublicب

Public Student ( 1 To 1000 ) As Integer

:7مثال

,, من دون حتديد نوع بيانات عناصـرها 50 اىل 0 عنصر مرقمة من 51االعالن عن مصفوفة ا

. مباشرة Variantsسيعترب النوع

Dim Day Array (50 )

:8مثال

10 حىت 1 على انة مصفوفة من التواريخ املفهرسة من BirthDateاالعالن عن متغيري

Dim BirthDate (1To10) As Date

Multi- Dimensional Arrays: املصفوفة متعددة االبعاد

Page 16: فيجول بيسك

Visual Basic

16

وفات تستخدم املصف . يقصد بكلمة بعد هو عدد الدالئل املستخدمة للرجوع اىل عنصر يف املصفوفة

.متعددة االبعاد لتخزين بيانات مرتبطة ببعضها البعض

.مثال على ذلك

وهكذا y & x موجودة على شاشة احلاسوب حنتاج لتخزين احداثياا Pixelختزين كل نقطة

.ممكن باستخدام مصفوفة ذات بعدين

متعددة االبعاد بذكر حيث يتم االعالن عن مصفوفة , ميكن معرفة ابعاد مصفوفة بالنظر اىل تعريفها

سواء كانـت , يتم فصل قيمة كل بعد بالفاصلة , قيمة البعادها بعد امسها مباشرة وداخل االقواس

:ذات بعد او ثالثة ابعاد كما ستوضح االمثلة االتية

-Static A(3,4) As Double -Static A ( 1 To 10 < 1 To 10 ) As Integer -Dim B (3,1 To 10 , 1 To 15 )

:مالحظة

عدد عناصر املصفوفة متعددة االبعاد ميكن معرفته بضرب قيم االبعاد ببعضها •

قدر االمكان ملا يتطلبة من مساحة ختزينية Varinatينبغي االحتراس وتفادي استخدام النوع •

.كبرية

: ملعاجلة املصفوفات Loopsاستخدام ال

Page 17: فيجول بيسك

Visual Basic

17

وخصوصا املصفوفات متعـددة Loopsم ال ميكن بكفاءة وسهولة معاجلة املصفوفات باستخدا

. متداخلة Loopsاالبعاد حيث يتم معاجلتها باستخدام

:مثال

وهذة القيمة تكـون مرتبطـة Aاجلمل التالية سوف تعطي قيمة لكل عنصر من عناصر املصفوفة

:مبوقع العنصر داخل املصفوفة كما سنرى

Dim I As Integer, J As Integer

Static A (1 To 10, 1 To 10) As Integer

For I= 1 To 10

For J= 1 To 10

A(I,J)= I*10*J

Next J

Next I

Dynamic Array:املصفوفات متغرية احلجم

وقد نريد , النعرف مسبقا حجم املصفوفة اليت سنستخدمها يف الربنامج بالضبط , يف بعض االحيان

ات احلجـم املـتغري ذهنا سنحتاج اىل املـصفوفات , تغيري حجم املصفوفة اثناء تشغيل الربنامج

Dynamic الحق حيث ميكننا تغيري حجمها يف وقت .

Page 18: فيجول بيسك

Visual Basic

18

كرة لـذا وهي تـساعد يف تنظـيم ا , تعترب املصفوفات متغرية احلجم احد مميزات الفيجوال بيسك

ة مـن ميكن استخدام مصفوفة كبرية لوقت قصري مث اعادة حتجيمها لتحرير مـساح , بكفاءة فمثال

.وها من شأنة تسريع املعاجلة. كرة عندما ال حنتاجها لذاا

: التايل Dynamic Arrayولصناعة

Public or Private or Dim or)نعلن عنها بأحد أوامر االعالن املوضحة سـابقا .1

Static )

:وجنعلها ديناميكية بعدم وضع أي رقم يف االقواس كما يوضح املثال التايل

Dim Ann ( ) :كما يف املثال التايل ReDimعيد االعالن عنها مع حتديد عدد العناصر باستخدام مجلة ن .2

ReDim Ann (x)

ReDim: مجلة

العادة ختصيص مساحة ختزينية ملصفوفة متغرية احلجـم Procedureتستخدم يف مستوى ال

Dynamic Array .

Dynamicرية احلجـم لتحجيم او اعادة حتجيم مصفوفة مـتغ ReDimتستخدم مجلة •

Array واليت قد اعلن عنها مسبقا باستخدام أي من اجلمـل Dim , Private, Public

).كر االبعاد ذأي بدون ( مع االقواس الفارغة

ومع لك الميكن , لتغيري عدد العناصر واالبعاد ملصفوفة ReDimميكن تكرار استخدام مجلة •

.انات مث اعادة تعريفها الحقا لنوع اخر من البياناتاالعالن عن مصفوفة بنوع معني من البي

Page 19: فيجول بيسك

Visual Basic

19

اذا كان للمصفوفة بعد واحد فيمكن اعادة حتجيم هذا البعد النة البعـد االخـري والوحيـد •

.باملصفوفة

واذا كان للمصفوفة بعدين او اكثر فيمكن فقط تغيري حجم البعـد االخـري مـع االحتفـاظ •

.مبحتويات املصفوفة

.اصغر مما كانت فأن بيانات العناصر املخزنة سوف تفقداذا صنعنا مصفوفة •

. يف اعادة التعريف Preserveالعادة تعريف املصفوفة مع خزن البيانات كلمة •

:9مثال

:نعلن عنها اوال على النحو التايل, كمصفوفة متغرية احلجم Mلصناعة مصفوفة

Dim M ( ) As Integer

: على النحو التايل Procedureمث نعيد اعالن عنها داخل ال

ReDim M(9,15)

:10مثال

يبني املثال التايل كيف ميكن زيادة حجم البعد لالخري للمصفوفة متغرية احلجم بدون حمو البيانـات

:املوجودة فيها

ReDim Preserve X(10,10,15) ReDim Preserve X(10,10,1)

Page 20: فيجول بيسك

Visual Basic

20

:11مثال

ويسأل عن ) codeأي وقت كتابة الشفرة ( عدد مسبقا الدخال قائمة من االعداد غري معلومة ال

code: عددها عند تشغيل ال

Dim X ( ) As Integer

N= InputBox) ادخل عدد العناصر من فضلك ("

ReDim X(N)

For I= 1 To N

X(I) =InputBox")ادخل عنصر من القائمة ("

Next I

:12مثال

ن الطالب حبيث يقوم الربنامج بطلب اسم الطالب وعند ادخال املطلوب عمل برنامج معلومات ع

اسم الطالب يعطينا الربنامج املعلومات املتوفرة عنة ؟

:التنفيذ

Command1, نصمم النافذة التالية للربنامج حيث نضع فيها زرين احدامها يقوم بتنفيذ الربنامج

ثالثة لالسـم . عدد ستة Label ونضع Command2 بينما الثاين للخروج من الربنامج

.والعمر واملرحلة الدراسية والثالثة الباقية للمعلومات املقابلة

Page 21: فيجول بيسك

Visual Basic

21

: وكااليت (code ) مث نقوم بكتابة الشفرة

وعند ادخال احد االمساء املعرفه يف InputBoxعند تشغيل الربنامج سيطلب االسم من خالل

Page 22: فيجول بيسك

Visual Basic

22

ok:وبعدها ضغط زر ) هدى(الربنامج مثال

:سيعطينا كل املعلومات املتوفرة عنها وكالتايل

اشرطة التمرير

:13مثال

عدد ثالثة scrollbar عدد ثالثة و Fram & Picture & Label: ضع االدوات التالية

:يف نافذة ورتبها على الشكل التايل

Page 23: فيجول بيسك

Visual Basic

23

:مث نكتب الكود الربجمي التايل

. وتعرف بعدد صحيح 255 من الصفر حىت حان درجة أي لون تتراو

حسب شدة كل لون مـن ) االمحر واالخضر واالزرق (تستخدم اجلملة التالية للمزج بني االوان

.هذة االوان الثالثة

Picture1.backcolor = RGB(Red as integer, green as integer,

Blue as integer)

:لتالية نفذ الربنامج وغري يف شريط التمرير سوف تظهر لك االشكال ا

Page 24: فيجول بيسك

Visual Basic

24

Page 25: فيجول بيسك

Visual Basic

25

Visual basic

visual basicرسم االشكال اهلندسية باستخدام

:هناك اسلوبان لرسم االشكال اهلندسية

. line & circleاستخدام الدوال املكتبية مثل -1

. tools ضمن االدوات (shape) واداة رسم االشكال (line)استخدام اداة رسم اخلط -2

)library function (ام الدوال املكتبية الرسم باستخد: اوال

:هناك اربعة دوال مكتبية تستخدم لرسم االشكال هي

) .الفارغة واململوءة( وتستخدم لرسم اخلطوط واملستطيالت lineالدالة -1

. وتستخدم لرسم الدوائر واالشكال البيضوية ومقاطع الدائرة واقواس الدائرة circleالدالة -2

. وتستخدم لرسم النقاط Psetالدالة -3

كما وان هناك امران للمساعدة يف السيطرة على الرسم text وتستخدم لرسم النصوص printالدالة -4

: هي

. للسيطرة على مقياس الرسم Scaleاالمر •

. للسيطرة على مسك اخلطوط Drawwidthامر الا •

:رسم اخلطوط

Page 26: فيجول بيسك

Visual Basic

26

.الصيغة العامة

Line (x1,y1) – (x2,y2) , color

مبقياس (default) متثل االحداثيات السينية والصادية لبداية اخلط وتقاس تلقائيا (x1,y1)حيث ان

Twib 1\20( حيث ان التويب الواحد يساوي ( من البكسل( Pixel) او )من االنج ) 1\1440

. الواحد

اللون املطلوب للخط وحسب color ثل االحداثيات السينية والصادية لنهاية اخلط بينما مي(x2,y2)ومتثل

. هو االسود Defaultجدول االلوان ويف حالة عدم ذكر اللون فان اللون التلقائي

:رسم املستطيالت

او احلرف (Block) للمستطيل الفرغ Bوتستخدم نفس الصيغة العامة للخطوط مع اضافة احلرف

BF للمستطيل اململوء (Block Full) يغة العامة ستكون صل اي ان ا.

Line (x1,y1) – (x2,y2) , color, B ( or BF).

:املالحظات

.ميكن السيطرة على مسك اخلط او اطار املستطيل باستخدام االمر -1

Draw width = 5

.ميكن السيطرة على مقياس الرسم وبالتايل استبدال املقياس التويب مبقياس اخر وذلك باستخدام االمر -2

Scale (xx1,yy1) – (xx2,yy2)

(Upper – Left) االحداثيات السينية والصادية للنقطة العلوية اليسرى xx1,yy1حيث متثل

– Lower) االحداثيات السينية والصادية للنقطة السفلية اليمىن xx2,yy2 ومتثل (Form)للنموذج

Right) للنموذج (Form) .

Page 27: فيجول بيسك

Visual Basic

27

Draw Linse مع وجود زر باسم ن االخضر الفاتح الشاشة باللوبرنامج يقوم بتلوين اكتب :1مثال

.وحني الضغط على الزر باستخدام الفارة فانة سريسم جمموعه من اخلطوط واملستطيالت بالوان خمتلفة

على اي انقر نقرة مزدوجة :احلل

(Form)مكان يف النموذج

) الربجميةالشفرة ( واكتب الكود

: التالية

Caption : Draw Lines: واضبط اخلاصية التالية Command1 النموذج اداة حتكم اضف اىل

: انقر نقرة مزدوجة على اداة التحكم واكتب الكود التايل

:نفذ الربنامج

طور الربنامج السابق لتكون اخلطوط بالوان خمتلفة : واجب

QBcolor(4)استخدم االمر . اخرى وبسمك خمتلف

بدال من QBcolor(2) و vbredبدال من

vbBlue وكذلك غيري مقياس الرسم ليصبح 10 ومسك اخلط :

Page 28: فيجول بيسك

Visual Basic

28

Scale(0,0) – (20,20)

:رسم الدوائر واالشكال البيضوية

:الصيغة العامة

Circle (x1,y1), radius, color, start angle, end angle ,

proportion

هو لون اطار color هو نصف قطر الدائرة و radiusئرة و هي احداثيات مركز الدا(x1,y1)حيث ان

endو ) Radianمقاس بالوحدات النصف قطرية ( هي زاوية بداية قوس الدائرة start angleالدائرة و

angle اية قوس الدائرة و هي زاوية proportion يف حالة االشكال ( هي نسبة ارتفاع الدائرة اىل عرضها

.) البيضوية

: املالحظات

.يف حالة ترك فراغ ملوقع اللون فان الون التلقائي هو االسود -1

فان الربنامج سيقوم برسم دائرة كاملة او start angle, end angleيف حالة ترك فراغ ملوقع -2

.شكل بيضوي كامل

قطع دائرة وليس فان الربنامج فان الربنامج سيقوم برسم مstart angleيف حالة كتابة قيمة سالبة اىل -3

.قوس دائرة

هو default فان الربنامج سيقوم برسم دائرة تلقائيا اي ان proportionيف حالة ترك فراغ ملوقع -4

.قيمة واحد

. طور املثال السابق ليقوم برسم دوائر خمتلفة بدال من اخلطوط :2مثال

:احلل

: السابقة form اكتب نفس صيغة

Page 29: فيجول بيسك

Visual Basic

29

. ”draw circle“داة حتكم او زر امر وغري عنوانة اىل اضف اىل النموذج ا

:انقر نقرة مزدوجة على زر االمر واكتب الكود التايل

Page 30: فيجول بيسك

Visual Basic

30

:سوف تضهر النتائج التالية : نفذ الربنامج

.اكتب وصمم ونفذ الربنامج السابق مع تغيري االوان والزوايا ومقياس الرسم : واجب

:النقاط رسم

الصيغة العامة . معني color وبلون (x,y) باحداثيات (form)نقوم بتلوين نقطة على النموذج

:الي نقطة

Pset (x,y) , color

: طور املثال السابق ليقوم برسم مثان نقاط واقعة على خط افقي :3مثال

:احلل

: السابقة form اكتب نفس صيغة -

حتكم او زر امر اضف اىل النموذج اداة

. ”draw point“وغري عنوانة اىل

Page 31: فيجول بيسك

Visual Basic

31

:انقر نقرة مزدوجة على زر االمر واكتب الكود التايل

:سوف تضهر النتائج التالية : نفذ الربنامج

.قم بتنفيذ نفس الربنامج ولكن ارسم النقاط عموديا وبالوان خمتلفة : واجب

Page 32: فيجول بيسك

Visual Basic

32

:رسم النصوص

لتحديد موقع Currentx & Currentyطرة على موقع كتابة معينة باستخدام االوامر ميكن السي

. printالكتابة وبعدها يكتب االمر

. يف موقع معني Highway Engineering طور املثال السابق ليقوم بطبع :4مثال

:احلل

: السابقة form اكتب نفس صيغة

. ”draw text“ر امر وغري عنوانة اىل اضف اىل النموذج اداة حتكم او ز

:انقر نقرة مزدوجة على زر االمر واكتب الكود التايل

Page 33: فيجول بيسك

Visual Basic

33

:سوف تضهر النتائج التالية : نفذ الربنامج

.الرسم باستخدام ادوات الرسم :ثانيا

دوات وتعديل وذلك بسحب االداة املوجودة ضمن قائمة اال : (line)اداة رسم اخلط - 1

. Propertiesخواصها من خالل القائمة

Bordercolor(to choose the color of the line) , borderstyle (solid-

dashed-dot-……), borderwidth(to choose the thickness of the line ) ,

drawmode, visible , (true-false) ,x1,y1,x2,x2>

وذلك بسحب االداة املوجودة ضمن قائمة االدوات وتعديل : (shapes)االشكال داة رسم ا - 2

. Propertiesخواصها من خالل القائمة

Shape: (0-rectangle, 1-square, 2-oval, 3-circle, 4-rounded rectangle ,

Page 34: فيجول بيسك

Visual Basic

34

5-rounded square)

Fill Style : ( 0-solid, 1-transparent, 2-horizontal line, 3-vertical line ,

4- upward diagonal, 5-downward diagonal, 6-cross, 7-diagonal cross)

. وبلون اطار امحر ومملوء باخلطوط املائلة خضراء اللون 5 ارسم مستطيل مستدير الزوايا بسمك خط :5مثال

: احلل

. formسط النموذج لتظهر االداة وShapeانقر نقرا مزدوجا فوق اداة رسم االشكال -1

.حرك االداة اىل املوقع واالبعاد املناسبة بواسطة الفأرة -2

:اضبط اخلصائص التالية لالداة -3

Name : shape 1

Border width : 5

Fill style : 4-upward diagonal

Fill color : green

Shape : 4-rounde drectangle

ارسم الشكل اهلندسي التايل علما انه يتكون من مستطيلني بلون امحر واربعة خطوط موصلة بينهم:6مثال

.احدامها منقط

التصميم

Page 35: فيجول بيسك

Visual Basic

35

الكود

التنفيذ

.ربعات متداخلة ارسم الشكل اهلندسي التايل علما بأنه يتكون من تسعة م:7مثال

: التصميم

Page 36: فيجول بيسك

Visual Basic

36

:الكود

: التنفيذ

Page 37: فيجول بيسك

Visual Basic

37

. ارسم وجهة ضاحك اصفر اللون:8مثال

:التصميم

:الكود

:التنفيذ

. بنفس اخلصائص السابقة ارسم وجه حزين: واجب

Page 38: فيجول بيسك

Visual Basic

38

Shapeاداة االشكال

.Shape اهلندسية عن طريق اخلاصية تستخدم هذه االداة لعرض عدد من االشكال

Shapeاهم خصائص

ان القسم االكرب من خصائص هذا العنصر هي غري مشتركة مع بقية العناصر وذلك لطبيعة عمـل ووظيفـة هـذا

:وفيما يلي جدول يوضح امهها , العنصر املختلفة نسبيا عن بقية العناصر السابقة

متاح للتغير اثناء مةنوع القي وظيفتها واستخدامها الخاصية

Shape 0 تحدد نوع الشكل المرسوم-Rectangle

1-Squarq

2-Oval

3-Circle

4-Rounded

Rectangle

5-Rounded

Square

التصميم والتنفيذ

Height يحدد ارتفاع الشكل Integer >0 التصميم والتنفيذ

Width يحدد عرض الشكل Integer >0 التصميم والتنفيذ

FillColor ر ستخدم وال يظه اء الم ون الغط ل

دما أثيره عن -FillStyle=1)ت

Transparent)

Integer >0 التصميم والتنفيذ

Page 39: فيجول بيسك

Visual Basic

39

FillStyle 0 يحدد نموذج غالف يغطي الشكل-Solid

1-Transparence

2-Horizontal Line

3-Vertical Line

4-Upward

Diagonal

5-Downward

Digonal

6-Cross

7-Digonal Cross

صميم والتنفيذالت

BackColor أثيره ر ت شكل يظه ة ال ون خلفي ل

دما -BackStyle=1)عن

Opaque)

Integer >0 التصميم والتنفيذ

BackStyle 0 يحدد نوذج للخلفية-Transparent

1-Opaque

التصميم والتنفيذ

BorderStyle 0 يحدد نوع االطار المستخدم-Transparence

1-Solid

2-Dash

3-Dot

4-Dash-Dot

5-Dash-Dot-Dot

6-Inside Solid

التصميم والتنفيذ

BorderColor يحدد لون االطار Integer >0 التصميم والتنفيذ

Page 40: فيجول بيسك

Visual Basic

40

Shapeاخلاصية

:ميكن تغيريها يف مرحلة التصميم او التنفيذ ويتم ذلك من خالل استعمال اجلملة الربجمية التالية

Shapename .Shape = Shapeindex

Shape1 . Shape= 0 to 5

Shape1.shape=0

Rectangle

Shape1.shape=1

Square

Shape1.shape=2

Oval

Shape1.shape=3

Circle

Shape1.shape=4

Rounded Rectangle

Shape1.shape=5

Rounded Square

.الشكل شفافة او غري شفافةحتدد هذه اخلاصية منط خلفية : Backstyleاخلاصية

Page 41: فيجول بيسك

Visual Basic

41

Shapename . Backstyle = Style

Shape1 . Backstyle = 0-Transparent OR 1- Opaque

Shape احداث

. اية احداثShapeليس لعنصر

Page 42: فيجول بيسك

Visual Basic

42

املصفوفات

:تعريف املصفوفة

كل مصفوفة هلـا اسـم واحـد ميكـن . عبارة عن متغريات مفهرسة حتتوي على بيانات عديدة من نفس النوع

وميكن انشاء , استخدامة للرجوع اىل أي عنصر فيها وذلك باقتران هذا االسم بدليل ميثل مكان العنصر يف املصفوفة

فأنواع البيانات , صحيحة وغريها لالنصوص واالعداد احلقيقية وا : مصفوفة الحتواء أي نوع من انواع البيانات مثل

, Byte , Boolean , Integer , Long , Single , Double :جوال بيسك هي املتوفرة يف الفي

Currency , Data , String , Variant , User-defined.

تتعامـل Loopsواستخدام املصفوفات يف الربجمة يساعد برامج قصرية وبسيطة ذات قوة اكرب النة ميكن بنـاء

.اصرهابكفاءة مع املصفوفات مهما كان عدد عن

:اخلصائص االساسية للمصفوفة يف الفيجوال بيسك

.والميكن تغيرية اثناء تنفيذ الربنامج , اسم املصفوفة ميثل عنوان يف الذاكرة .9

.ميكن االعالن عن مصفوفة الي نوع من انواع البيانات .10

.كل وحدة بيانات منفردة يف املصفوفة تسمى عنصر .11

.مجيع العناصر تكون من نفس النوع .12

وميكن جعلـة , مجيع العناصر تكون خمزونة على التتابع يف ذاكرة احلاسوب ودليل اول عنصر هو الصفر .13

. Option Baseباستخدام مجلة ) 1(

Page 43: فيجول بيسك

Visual Basic

43

.حيدد موقع العنصر بواسطة رقم الصف ورقم العمود الذي يقع فيه .14

.ين وعناصر املصفوفة تكون حمصورة بني هذين احلد, لكل مصفوفة حد اعلى وحد ادىن .15

.من املمكن ان تكون املصفوفة ذات بعد واحد او متعددة االبعاد .16

هناك نوعيني من املصفوفات

وهي اليت يظل حجمها ثابت اثنـاء تـشغيل ( Fixed- size array): املصفوفة ذات احلجم الثابت •

. الربنامج

ن تغيري حجمها اثنـاء وهي اليت ميك ( Dynammic –size array ): املصفوفة ذات احلجم املتغيري •

.تشغيل الربنامج

size array –Fixed : االعالن عن مصفوفات احلجم الثابت

يعلن عن املصفوفات باتباع نفس القواعد اليت تعلمناها يف االعالن عن املتغريات اذ تستخدم الكلمات احملجـوزة يف

. Dimالفيجوال بيسك لالعالن مثل الكلمة احملجوزة

: لالعالن عن املصفوفة هيالصيغة العامة

Dim | Public | Private array_name (subscript) as data_type

وفيما يلـي توضـيح عـن Dim or Public or Private: يتم االعالن عن املصفوفة باحدى العبارات -

:استخدام كل منها

Private : ا الترىوان مت االعالن عنها , اال يف هذا االجراء جتعل املصفوفة حملية اذا مت االعالن عنها يف اجراء فأ

.يف قسم االعالن العام يف منوذج او وحدة برجمية فاا ال ترى اال يف هذا النموذج او هذه الوحدة

Public : اي (وتعين ان املصفوفة تصبح مرئية يف اي مكان من الربنـامج ,االتستخدم اال يف قسم االعالن العام

).وحدة برجمية او منوذج

Array_name :اسم املصفوفة.

Page 44: فيجول بيسك

Visual Basic

44

Sunscript : وافتراضيا يبدأ الدليل بالقيمة صفر ,وهذه القيمة حتدد عدد العناصر يف املصفوفة ,اقصى قيمة للدليل

.6فان عدد العناصر يكون sunscript=5معىن هذه اذا مت استخدام الصيغة ,

Data_type :نوع البيانات اليت ستسند لعناصر املصفوفة.

: احلدين االعلى واالدىن للمصفوفةحتديد

.يكتب احلد االعلى بعد االسم وبني االقواس , عند االعالن عن مصفوفة •

.ال ميكن ان يزيد احلد االعلى عن نطاق نوع املتغيري •

.احلد االدىن االفتراضي هو الصفر •

. كما سنرى يف االمثلة To, ينبغي كتابتة باستخدام كلمة , لتحديد احلد االدىن •

:9 مثال

.برنامج يقوم بطباعة عناصر املصفوفة املعرفة على مستوى النموذج

as integer) 4(1Dim x

Private sub command1_click()

For i=0 to 4

X1(i)=i

Print x1(i)

Next i

End sub

:10 مثال

.برنامج يقوم بطباعة عناصر املصفوفة املعرفة على مستوى القطعة الربجمية

Private sub command1_click()

Page 45: فيجول بيسك

Visual Basic

45

Dim x1(4) as integer

For i=0 to 4

X1(i)=i

Print x1(i)

Next i

End sub

:Option Baseاستخدام عبارة اختيار االساس

: وكما يلي0 بال من 1 يف قسم االعالن العام لوحدة برجمية يبدا الدليل من Option Baseاستخدام العبارة

Option Base 1

:فمثال مجيع املصفوفات من ذ افتراضيابعد ذلك تبدأ

Option Base 1

Public Names (100) as string

ليس له وجود واذا اسـتخدمناه يتوقـف 0 وان العنصر 1 عنصر تبدأ بالتسلسل 100جيعل املصفوفة تتكون من

.الربنامج مصدرا خطأ

:حلد االدىن واالعلى للدليل وهيوهناك صيغة اخرى لالعالن عن املصفوفة تتيح حرية اكرب يف حتديد ا

Dim array-name (min-index to max-index) as data type

هنا ميكن حتديد الدليل االصغر واالكرب بدال من التقيد بالقيمة االفتراضية

Dim x1(2 to 10) as Boolean

: املصفوفات احادية االبعاد

. ملتشاة يف نوعها وامسها وتتميز عن بعضها من خالل الدليل تتكون هذه املصفوفات من سطر واحد من املتغريات ا

.االمثلة التالية تبني كيفية تعريف املصفوفة واسناد القيم هلا

:11مثال

Private sub command1_click()

Page 46: فيجول بيسك

Visual Basic

46

Dim x(5) as integer or Dim x(1 to 5) as integer

For i=0 to 5 for i=1 to 5

Print "x ("& CStr (i) & ") = "; x(i) ;

X(i) =i

Print "x ("& CStr (i) & ") = "; x(i)

Next i

End sub

. حتول القيمة الرقمية اىل قيمة حرفية يف هذا املثال ميكن رفعهاCStrالدالة

Dynamic Array :)الديناميكية (املصفوفات متغرية احلجم

وقد نريد تغيري حجـم , وفة اليت سنستخدمها يف الربنامج بالضبط النعرف مسبقا حجم املصف , يف بعض االحيان

حيث ميكننـا Dynamicات احلجم املتغري ذهنا سنحتاج اىل املصفوفات , املصفوفة اثناء تشغيل الربنامج

. الحقتغيري حجمها يف وقت

ميكن , كرة بكفاءة فمثال لذام ا وهي تساعد يف تنظي , تعترب املصفوفات متغرية احلجم احد مميزات الفيجوال بيسك

مـن ذاوه. كرة عندما ال حنتاجها لذااستخدام مصفوفة كبرية لوقت قصري مث اعادة حتجيمها لتحرير مساحة من ا

.شأنة تسريع املعاجلة

: التايل Dynamic Arrayولصناعة

( Public or Private or Dim or Static)نعلن عنها بأحد أوامر االعالن املوضحة سابقا .3

:وجنعلها ديناميكية بعدم وضع أي رقم يف االقواس كما يوضح املثال التايل

Dim Ann ( )

وهي عبارة برجمية وليست اعالنا اي ReDimنعيد االعالن عنها مع حتديد عدد العناصر باستخدام مجلة .4

:ال التايل كما يف املثجيب استخدامها داخل اجراء والميكن استخدامها يف قسم االعالن العام

ReDim Ann (x)

Page 47: فيجول بيسك

Visual Basic

47

ReDim: مجلة

Dynamic العادة ختصيص مساحة ختزينية ملصفوفة متغرية احلجـم Procedureتستخدم يف مستوى ال

Array .

والـيت Dynamic Array لتحجيم او اعادة حتجيم مصفوفة متغرية احلجم ReDimتستخدم مجلة •

أي بدون ( مع االقواس الفارغة Dim , Private, Publicل قد اعلن عنها مسبقا باستخدام أي من اجلم

).كر االبعاد ذ

لك الميكن االعالن عن ذومع , لتغيري عدد العناصر واالبعاد ملصفوفة ReDimميكن تكرار استخدام مجلة •

.مصفوفة بنوع معني من البيانات مث اعادة تعريفها الحقا لنوع اخر من البيانات

.عد واحد فيمكن اعادة حتجيم هذا البعد النة البعد االخري والوحيد باملصفوفة اذا كان للمصفوفة ب •

.واذا كان للمصفوفة بعدين او اكثر فيمكن فقط تغيري حجم البعد االخري مع االحتفاظ مبحتويات املصفوفة •

.اذا صنعنا مصفوفة اصغر مما كانت فأن بيانات العناصر املخزنة سوف تفقد •

اي االحتفاظ بالقيم السابقة نستخدم مع خزن البيانات او اضافة عنصر اىل املصفوفة فوفة العادة تعريف املص •

. يف اعادة التعريف Preserve عبارة

:12مثال

:االعالن عن مصفوفة متغرية احلجم بدون حتديد حجمها

Dim scores() as integer

:مث بعد ذلك يتم حتديد العناصر كااليت

Redim scores(9) as integer

: وميكن اعطاءها قيم كالتايل9 اىل 0حيث يكون عدد العناصر من

Scores(0)=90

Scores(1)=60

.

.

.

Page 48: فيجول بيسك

Visual Basic

48

scores(9)=80

:لو اردنا اضافة عنصر اىل هذه املصفوفة مع االحتفاظ بالقيم السابقة ميكننا كتابة اجلملة التالية

ReDim Preserve scores(10) as integer

ة وميكن اعطاءه قيم

Scores(10)=50

Dimensional Arrays-Multi : املصفوفة متعددة االبعاد

مجيع عناصر هذه املصفوفة . تتكون املصفوفة ثنائية االبعاد من جمموعة من العناصر مرتبة على شكل صفوف واعمدة

مرتب حيدد حتمل نفس السم ونفس نوع البيانات وتتميز عن بعضها من خالل الدليل الذي يكون على شكل زوج

.الصف والعمود الذين يع ضمنهما العنصر

.مثال على ذلك

وهكـذا ممكـن y & x موجودة على شاشة احلاسوب حنتاج لتخزين احـداثياا Pixelختزين كل نقطة

.باستخدام مصفوفة ذات بعدين

االبعاد بذكر قيمة البعادهـا حيث يتم االعالن عن مصفوفة متعددة , ميكن معرفة ابعاد مصفوفة بالنظر اىل تعريفها

سواء كانت ذات بعد او ثالثة ابعاد كمـا , يتم فصل قيمة كل بعد بالفاصلة , بعد امسها مباشرة وداخل االقواس

:ستوضح االمثلة االتية

-Static A(3,4) As Double

-Static A ( 1 To 10 < 1 To 10 ) As Integer

-Dim B (3,1 To 10 , 1 To 15 )

:ةمالحظ

عدد عناصر املصفوفة متعددة االبعاد ميكن معرفته بضرب قيم االبعاد ببعضها •

. قدر االمكان ملا يتطلبة من مساحة ختزينية كبرية Varinatينبغي االحتراس وتفادي استخدام النوع •

Page 49: فيجول بيسك

Visual Basic

49

: ملعاجلة املصفوفات Loopsاستخدام ال

وخصوصا املصفوفات متعددة االبعاد حيث يتم Loopsميكن بكفاءة وسهولة معاجلة املصفوفات باستخدام ال

. متداخلة Loopsمعاجلتها باستخدام

:13مثال

وهذة القيمة تكون مرتبطة مبوقـع العنـصر Aاجلمل التالية سوف تعطي قيمة لكل عنصر من عناصر املصفوفة

:داخل املصفوفة كما سنرى

Dim I As Integer, J As Integer

Static A (1 To 10, 1 To 10) As Integer

For I= 1 To 10

For J= 1 To 10

A(I,J)= I*10*J

Next J

Next I

:14مثال

:نعلن عنها اوال على النحو التايل, كمصفوفة متغرية احلجم Mلصناعة مصفوفة

Dim M ( ) As Integer

: على النحو التايل Procedureمث نعيد اعالن عنها داخل ال

ReDim M(9,15)

:15ال مث

:الخري للمصفوفة متغرية احلجم بدون حمو البيانات املوجودة فيهاايبني املثال التايل كيف ميكن زيادة حجم البعد

ReDim Preserve X(10,10,15)

ReDim Preserve X(10,10,1)

Page 50: فيجول بيسك

Visual Basic

50

:16مثال

أل عن عددها عنـد ويس ) codeأي وقت كتابة الشفرة ( الدخال قائمة من االعداد غري معلومة العدد مسبقا

code: تشغيل ال

Dim X ( ) As Integer

N= InputBox ) "ادخل عدد العناصر من فضلك("

ReDim X(N)

For I= 1 To N

X(I) =InputBox")ادخل عنصر من القائمة ("

Next I

:17مثال

ب وعند ادخال اسم الطالـب املطلوب عمل برنامج معلومات عن الطالب حبيث يقوم الربنامج بطلب اسم الطال

يعطينا الربنامج املعلومات املتوفرة عنة ؟

Command1, نصمم النافذة التالية للربنامج حيث نضع فيها زرين احدامها يقوم بتنفيذ الربنـامج :التنفيذ

ثالثة لالسم والعمر واملرحلـة . عدد ستة Label ونضع Command2بينما الثاين للخروج من الربنامج

.لدراسية والثالثة الباقية للمعلومات املقابلةا

Page 51: فيجول بيسك

Visual Basic

51

: وكااليت (code ) مث نقوم بكتابة الشفرة

وعند ادخال احد االمسـاء املعرفـه يف الربنـامج InputBoxعند تشغيل الربنامج سيطلب االسم من خالل

ok:وبعدها ضغط زر ) هدى(مثال

Page 52: فيجول بيسك

Visual Basic

52

:تايلسيعطينا كل املعلومات املتوفرة عنها وكال

:طباعة مصفوفة ذات بعدين: 18مثال as integer) 2,3(Dim x

Private sub command1_click() For i=0 to 2 For j=0 to 3 Print x(i,j);

Next Print Next

End sub

:مصفوفة ذات بعدين جنمع فيها الصف مع العمود: 19مثال as integer) 4,4(Dim x

Private sub command1_click() For i=0 to 4 For j=0 to 4

X(i,j)= i+j Print x(i,j);

Next Print Next

End sub

Page 53: فيجول بيسك

Visual Basic

53

امثلة خمتلفة

اكتب برنامج يقوم بأدخال أطوال أضالع مثلث مث يقوم حبساب مساحة املثلث وحميطة ؟ : 1 مثال

M = (A+B+C)/2 احمليط

R = M*(M-A)*(M-B)*(M-C) املساحة

Page 54: فيجول بيسك

Visual Basic

54

اكتب برنامج يقوم بأدخال ثالث قيم عددية موجبة من خالل ثالث صناديق حوار مث يقوم بأجياد معدل :2مثال . Print وباستخدام عبارة Picture1ويطبع الناتج يف اداة . القيم الثالث واحنراف كل قيمة عن املعدل

Page 55: فيجول بيسك

Visual Basic

55

اكتب برنامج يضهر الرسالة التالية وكما موضح بالشكل ادناة ؟:3مثال

Page 56: فيجول بيسك

Visual Basic

56

ال د :4مث ث عن اة بحي شكل ادن ا موضح بال ة آم الة التالي ر الرس امج يظه ب برن اآتوذ yesالضغط على زر ا يكون االجراء هو اهاء البرنامج والعودة الى نافذة النم ج أم

. فأنه اليقوم بأنهاء البرنامج بل تبقى نافذة التطبيق فعالة noعند الضغط على االمر

Page 57: فيجول بيسك

Visual Basic

57

ال واني :5مث دقائق والث درجات وال ة بال ة اي زاوي ال قيم وم بأدخ امج يق ب برن اآت

ات فقط ؟باستخدام ثالث صناديق نص ثم يقوم بطباعة قيمة الزاوية بالدرج

Page 58: فيجول بيسك

Visual Basic

58

اآتب برنامج يقوم بأدخال الزاوية ويقوم بطبع قيمة الزاوية بالدرجات : 6مثال والدقائق والثواني ؟

Page 59: فيجول بيسك

Visual Basic

59

Inputbox باستخدام دالة االدخال D,V اآتب برنامج يقوم بأدخال قيمة :7مثال تمثل سرعة جريان السائل في االنبوب يقوم V تمثل قطر االنبوب Dحيث ان

وطباعة في مربع نص ؟Qالبرنامج بحساب مقدار التصريف Q= Area * Velocity

Page 60: فيجول بيسك

Visual Basic

60

اآتب برنامج يقوم بأدخال قطر عينة دائرية من االلمنيوم ومقدار القوة :8مثال المسلطة علية ثم يقوم بحساب مقدار مقاومة االنضغاط للعينة الدائرية مستخدما دالة

. الدخال البيانات واداة نص واحدة لطباعة الناتج INPUTBOXاالدخال

Page 61: فيجول بيسك

Visual Basic

61

اآتب برنامج يقوم بادخال طول عتبة ذات اسناد بسيط ومقدار القوة : 1واجب المسلطة في منتصف العتبة ثم يقوم بحساب ردود االفعال على المساند والعزم في منتصف العتبة مستخدما ادوات مربع نص لغرض ادخال الطول والقوة وطباعة

ومعادلة M=P*L/2ردود االفعال والعزم ؟ حيث ان معادلة حساب العزم هي . R=P/2ردود االفعال هي

ج يقوم بحساب متوازي اضالع من الحديد ومن ثم يستخرج اآتب برنام : 2 واجب

عدد متوازي االضالع الصغيرة التي بداخل متوازي االضالع الكبير علما ان ابعاد ) 24*8*12(وابعاد المتوازي الصغير هي ) 576*64*144(المتوازي الكبير هي

.

باستخدام اداتي اآتب برنامج يقوم بأدخال ضلعين من مثلث قائم الزاوية :3واجب مربع نص ثم يقوم بحساب الضلع الثالث باستخدام معادلة فيثاغورس وطباعتة في

.مربع نص ثالث

حول الجمل التالية من الصيغة الجبرية الى صيغة الفيجوال بيسك ؟ :4واجب

Page 62: فيجول بيسك

Visual Basic

62

1- e5+sin 30 2- log(2)-tan(35) .ر عند تنفيذ البرنامج التالي ماذا سيظه : 5واجب

Dim x as integer Dim y as integer

X=5 Y=7

If x<> y then X=2*x

Print x,y End if

End sub

. ماذا سيظهر عند تنفيذ البرنامج التالي :6واجب Dim x as integer , y as integer , z as integer

X=5: y=10: z=30 If x>2 then

y=y+x z=z+x

x=0 else

y=y-x z=z-x

x=1 end if

print x, y, z :باستخدام جملة الشرط ) calculater( اآتب برنامج يعمل عمل حاسبة :7واجب

If …. Then ……..else

الى 0(اآتب برنامج يقوم بحساب مجموع االرقام الزوجية والمحدودة بين :8واجب باستخدام احدى ادوات التكرار ؟ )100 الى 0(اآتب برنامج يقوم بحساب مجموع االرقام الفردية والمحدودة بين : 9واجب باستخدام احدى ادوات التكرار ؟ ) 100

Page 63: فيجول بيسك

Visual Basic

63

اآتب برنامج يقوم بتغير لون خلفية ثالث صناديق اختيارباالوان الرئيسية :9مثال الثالث بشرط ان يتم تغيير خصائص ادوات واجهة التصميم عن طريق آود البرنامج

me.backcolor=vb(color name)استخدام الخاصية و وباستخدام اداة الشرط

If ……then Elseif

Else

Page 64: فيجول بيسك

Visual Basic

64

ماهي النتيجة المتوقعة عند تنفيذ البرامج التالية موضحا االحداثيات : 10واجب

.الرئيسية

(1)

(2)

(3)

(4) )5 (

Page 65: فيجول بيسك

Visual Basic

65

:ReDimيقوم بطباعة عناصر مصفوفة وباستخدام عبار : 10مثال :التصميم

:الكود

:ReDimاذا غيرنا بحجم المصفوفة باستخدام : 11مثال

:التصميم

Page 66: فيجول بيسك

Visual Basic

66

.القيم التي تم اسنادها للمصفوفة سابقا سيتم مسحها بعد تغيير ابعاد المصفوفة

ReDimاظ على القيم المسندة للمصفوفة بعد استخدام العبارة للحف: 12مثال :Preserveنستخدم الكلمة المحجوزة

:التصميم

:الكود

Page 67: فيجول بيسك

Visual Basic

67

ال ن : 13مث ة م صفوفة مكون شاء م ر االول الن ة ازرار ام ن ثالث ة م ذة مكون 5ناف والثاني لطباعة اصغر عنصر في المصفوفة 10 و 0عناصر قيمها محصورة بين

:لثالث اآبر عنصر في المصفوفةوا

:التصميم

:الكود

Page 68: فيجول بيسك

Visual Basic

68

ة ضرب : 14مثال اني عملي نافذة تتكوم من اربعة ازرار امر واحد عملية جمع والثصق روج و مل ع للخ شوائية والراب ام ع شاء ارق ث الن ارة Labelوالثال ه عب علي

List of Numberومربع نص للناتج .

:التصميم

:لكودا

Page 69: فيجول بيسك

Visual Basic

69

برنامج يقوم بتحويل االعداد العشرية الى ثنائية باستخدام مصفوفة : 15مثال النافذة متكونة من ثالثة ملصقات احدهما نكتب فيه , عنصر 101متكونة من

Decimal Number والثاني Binary Number والثالث Select Decimal Numberالعشرية وايضا لدينا شريط تمرير الختيار االعداد .

:التصميم

:الكود