مشخصات ظاهری : : : : : : : :

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "مشخصات ظاهری : : : : : : : :"

Transcript

1 مقدماتی برنامهنويسی )ويژوالبيسيک( كاردانش شاخۀ: خدمات زمينۀ: كامپيوتر تحصيلی: گروه كامپيوتر زيرگروه: داده پايگاه برنامهنويسی رايانهای تصويرسازی چندرسانهای توليد وب صفحات طراحی مهارتی: رشتۀ تا مهارتی: رشتۀ شمارۀ مهارتی: رشتۀ رايانهای كد مقدماتی بيسيک ويژوال برنامهنويسی و پيشرفته رايانهكار مبنا: مهارتی استاندارد نام 0 84/80/1/3/1 و ه ف. 15/1/2 87 متولی: استاندارد كد عملی: و نظری: درس: شمارۀ پدیدآور نام و عنوان نشر مشخصات ظاهری مشخصات شابک نویسی فهرست وضعیت موضوع افزوده شناسه کنگره بندی رده دیویی بندی رده ملی شناسی کتاب شماره محتوا: تصویب و تألیف بر / 612 نظارت 3 درسی[ بیسیک(]کتابهای )ویژوال مقدماتی برنامهنویسی و آموزش وزارت ولینژاد]برای[ منصور مؤلف: کاردانش و حرفهای و فنی درسی های کتاب تألیف دفتر آموزشی. برنامهریزی و پژوهش سازمان پرورش ایران درسی های کتاب نشر و چاپ شرکت تهران: جدول. مصور ص.: فیپا آموزشی)متوسطه( راهنمای کامپیوتر( برنامهنویسی )زبان بیسیک ویژوال ١ )متوسطه( تمرینها و آزمونها کامپیوتر( برنامهنویسی )زبان بیسیک ویژوال ٢ های کتاب تألیف دفتر ب آموزشی. ریزی برنامه و پژوهش سازمان الف منصور ولینژاد آموزشی. مواد توزیع و نشر بر نظارت کل اداره ج کاردانش. و ای حرفه و فنی درسی QA 76/73/ و 9 ب / /ک : : : : : : : : : :

2 همکاران محترم و دانشآموزان عزىز: پىشنهادات و نظرات خود را دربارۀ محتواى اىن کتاب به نشانى تهران صندوق پستى شمارۀ 4874/15 دفترتألىف کتابهای درسی فنى و حرفهاى و کاردانش ارسال فرماىند. پىامنگار )اىمىل( وبگاه )وب ساىت( ir وزارت آموزش و پرورش سازمان پژوهش و برنامه رىزى آموزشى برنامه رىزى محتوا و نظارت بر تألىف: دفترتألىف کتاب های درسی فنى و حرفه اى و کاردانش نام کتاب: برنامه نویسی مقدماتی )ویژوال بیسیک( 612/3 مؤلف: مهندس منصور ولینژاد وىراستار ادبى: شيوا غمگسار نظارت بر چاپ و توزىع: ادارۀ کل نظارت بر نشر و توزیع مواد آموزشی تهران: خىابان اىرانشهر شمالى ساختمان شمارۀ 4 آموزش و پرورش )شهىد موسوى( تلفن: دورنگار: کدپستى: وب ساىت: ir محتوای اين كتاب در كميسيون تخصصی رشته كامپيوتر دفتر تأليف کتاب های درسی فنی و حرفهای و كاردانش با عضويت: بتول عطاران محمدرضا شكرريز محمدرضا يمقانی سيدحميدرضا ضيايی زهرا عسگری افشين اكبری و سيدسعيد ميرباقری تأييد شده است. صفحه آرا: آمنه درویش طراح جلد: بیتا اشرفی مقدم ناشر: شرکت چاپ و نشر کتاب های درسی ایران: تهران کیلومتر ١٧ جاد ۀ مخصوص کرج خیابان ٦١ )داروپخش( تلفن: دورنگار: صندوق پستی: چاپخانه: شرکت افست»سهامی عام«سال انتشار و نوبت چاپ : چاپ او ل برای سازمان 1392 حق چاپ محفوظ است. ISBN شابک

3 بدانید مادام که در احتیاجات صنایع پیشرفته دست خود را پیش دیگران دراز کنید و به دریوزگی عمر را بگذارنید قدرت ابتکار و پیشرفت در اختراعات در شما شکوفا نخواهد شد. امام خمینی»قد س سر ه الش ریف«

4 مجموعه کتابهای درسی رشته کامپیوتر شاخه کاردانش )استاندارد وزارت فرهنگ و ارشاد اسالمی( رشته تصويرسازي مفاهيم پايه فناوري اطالعات سيستمعامل مقدماتي اطالعات و ارتباطات واژهپرداز Word 2007 صفحه گسترده Excel 2007 ارايه مطالب PowerPoint 2007 نرمافزارهاي اداري تكميلي بانك اطالعاتي Access 2007 سيستمعامل پيشرفته برنامهنويسي مقدماتي طراحي امور گرافيكي با رايانه كاربر FreeHand كاربر CorelDraw رشته طراحي صفحات وب مفاهيم پايه فناوري اطالعات سيستمعامل مقدماتي اطالعات و ارتباطات واژهپرداز Word 2007 صفحه گسترده Excel 2007 ارايه مطالب PowerPoint 2007 نرمافزارهاي اداري تكميلي بانك اطالعاتي Access 2007 سيستمعامل پيشرفته برنامهنويسي مقدماتي طراحي امور گرافيكي با رايانه كاربر Flash طراحي صفحات وب مقدماتي طراحي صفحات وب پيشرفته رشته توليد چندرسانهاي مفاهيم پايه فناوري اطالعات سيستمعامل مقدماتي اطالعات و ارتباطات واژهپرداز Word 2007 صفحه گسترده Excel 2007 ارايه مطالب PowerPoint 2007 نرمافزارهاي اداري تكميلي بانك اطالعاتي Access 2007 سيستمعامل پيشرفته برنامهنويسي مقدماتي طراحي امور گرافيكي با رايانه كاربر Flash كاربر Director ميكس رايانهاي

5 کاردانش شاخه کامپیوتر رشته درسی کتابهای مجموعه اجتماعی( امور و کار وزارت )استاندارد تصويرسازي رشته وب صفحات طراحي رشته چندرسانهاي توليد رشته داده پايگاه برنامهنويسي رشته اطالعات فناوري پايه مفاهيم اطالعات فناوري پايه مفاهيم اطالعات فناوري پايه مفاهيم اطالعات فناوري پايه مفاهيم مقدماتي سيستمعامل مقدماتي سيستمعامل مقدماتي سيستمعامل مقدماتي سيستمعامل ارتباطات و اطالعات ارتباطات و اطالعات ارتباطات و اطالعات ارتباطات و اطالعات پيشرفته سيستمعامل پيشرفته سيستمعامل پيشرفته سيستمعامل پيشرفته سيستمعامل Word 2007 واژهپرداز Word 2007 واژهپرداز Word 2007 واژهپرداز Word 2007 واژهپرداز Excel 2007 گسترده صفحه Excel 2007 گسترده صفحه Excel 2007 گسترده صفحه Excel 2007 گسترده صفحه PowerPoint 2007 مطالب ارايه PowerPoint 2007 مطالب ارايه PowerPoint 2007 مطالب ارايه PowerPoint 2007 مطالب ارايه تكميلي اداري نرمافزارهاي تكميلي اداري نرمافزارهاي تكميلي اداري نرمافزارهاي تكميلي اداري نرمافزارهاي رايانهاي گرافيك طراح رايانهاي گرافيك طراح رايانهاي گرافيك طراح مقدماتي برنامهنويسي Flash Mx گرافيكي نرمافزار الكترونيكي شهروند الكترونيكي شهروند پيشرفته ويژوالبيسيك برنامهنويسي اول( )جلد FreeHand گرافيكي نرمافزار وب صفحات مقدماتي طراحي Director گرافيكي نرمافزار پيشرفته ويژوالبيسيك برنامهنويسي دوم( )جلد CorelDraw گرافيكي نرمافزار Interdev كار رايانه SSP صدا و فيلم تدوين داده پايگاه مديريت Flash Mx گرافيكي نرمافزار Dreamweaver كار رايانه برنامهنويسي عمومي مهارت Flash Mx گرافيكي نرمافزار CIW كار رايانه Authorware گرافيكي نرمافزار

6 مقدمه پيشآزمون ها آن براي مناسب الگوريتم طراحي و مسايل حل توانايي 1: کار واحد كليات آنها حل براي مناسب راهحل ارايه و مسايل 1 شناخت 1- الگوريتم 1-2 واژهنامه مطالب خالصه نظري آزمون عملي آزمون فلوچارت ترسيم توانايي 2: کار واحد كليات فلوچارت در اشكال و عاليم 2-1 واژهنامه نظري آزمون عملي آزمون مطالب فهرست يك ايجاد و ويژوالبيسيك برنامهنويسي زبان شناخت و درك توانايي 3: كار واحد كاربردي برنامه 54 كليات 54 برنامهنويسي زبانهاي تقسيمبندي برنامه يك تشكيلدهنده اجزاي درآن معرفياجزايموجود و برنامهويژوالبيسيك نحوهاجراي رويدادگرا برنامهنويسي )Command Button( فرمان دكمه كنترل واژهنامه 78 مطالب خالصه 79 نظري آزمون

7 81 عملي آزمون واحدكار 4 :تواناييتعريفانواعمتغيرها ثابتهاواستفادهازعملگرهايرياضيورشتهاي 84 كليات 84 ويژوالبيسيك در متغيرها انواع از استفاده و تعريف نحوه ويژوالبيسيك در رياضي عمليات انجام نحوه ويژوالبيسيك در ثابتها از استفاده و تعريف نحوه ويژوالبيسيك در عمومي و محلي ايستا متغيرهاي ويژوالبيسيك در رشتهاي عملگرهاي واژهنامه 106 مطالب خالصه 107 نظري آزمون 108 عملي آزمون منطقي و مقايسهاي عملگرهاي و IF شرطي دستور از استفاده توانايي 5: كار واحد كليات برنامهها در مقايسهاي عملگرهاي و ساختارIF از استفاده نحوه 5-1 )Picture Box( تصوير كادر كنترل 5-2 شرطها تركيب براي منطقي عملگرهاي از استفاده نحوه 5-3 تصوير كنترل 5-4 يكديگر به نسبت عملگرها اجراي اولويت 5-5 ويژوالبيسيك در پيام كادرهاي از استفاده نحوه 5-6 ويژوالبيسيك در داده ورود كادرهاي از استفاده نحوه 5-7 CheckBox عالمت كادر كنترل 5-8 دكمه متن كادر كنترلهاي و فرمها ويژگيهاي مهمترين معرفي 5-9 غيره و فرمان واژهنامه

8 143 خالصه مطالب 145 آزمون نظري 147 آزمون عملي واحدكار 6 : توانايياستفادهازانواعحلقههاوساختارSelectCase وكنترلدكمهانتخاب 149 كليات دستور Select Case ساختارهاي تكرار در ويژوالبيسيك 170 واژهنامه 170 خالصه مطالب 172 آزمون نظري 176 آزمون عملي واحد كار 7: توانايي ايجاد و استفاده از انواع رويهها در ويژوالبيسيك كليات 7-1 رويههاي فرعي Procedure( )Sub 7-2 رويههاي تابعي Procedure( )Function 7-3 روشهاي ارسال مقادير به رويههاي فرعي و تابعي 7-4 نحوه استفاده از نام آرگومانها در رويهها 7-5 خروجازيكرويهبااستفادهازدستورات ExitوFunction Sub Exit 7-6 رويههاي محلي و عمومي 7-7 رويههاي رويداد Procedure( )vent واژهنامه خالصه مطالب آزمون نظري آزمون عملي واحد كار 8: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك

9 كليات 8-1 توابع رشتهاي ويژوالبيسيك 8-2 توابع تاريخ و ساعت 8-3 كنترل كادر در ليست واژهنامه خالصه مطالب آزمون نظري آزمون عملي واحد كار 9: نحوه استفاده از رويدادهاي ماوس و صفحه كليد كليات 9-1 رويدادهاي ماوس 9-2 كنترل خط )Line( 9-3 كنترل شكل )Shape( 9-4 رويدادهاي صفحه كليد واژهنامه خالصه مطالب آزمون نظري آزمون عملي واحد كار 10: نحوه ايجاد انواع منو در ويژوالبيسيك كليات 10-1 نحوه طراحي انواع منو در ويژوالبيسيك مطالعه آزاد 10-2 نحوه ايجاد و استفاده از رابط گرافيكي چند سندي يا MDI 10-3 كنترلهاي نوار پيمايش افقي و عمودي 10-4 كنترل کادر محاوره )CommonDialog( واژهنامه خالصه مطالب

10 آزمون نظري آزمون عملي واحد كار 11: توانايي استفاده از انواع آرايهها در ويژوالبيسيك كليات 11-1 تعريف انواع آرايه در ويژوالبيسيك 11-2 آرايههاي چند بعدي 11-3 توابع UBound و LBound 11-4 تابع Split 11-5 تابع Join 11-6 نحوه ارسال آرايهها به رويهها 11-7 روشهاي مرتبسازي آرايهها 11-8 روشهاي جستجوي دادهها در آرايهها واژهنامه خالصه مطالب آزمون نظري آزمون عملي واحد كار 12: توانايياستفادهاز جلوههايگرافيكيو چاپ در ويژوالبيسيك 324 كليات 12-1 مفهوم سيستم مختصات در ويژوالبيسيك 12-2 تغيير سيستم مختصات 12-3 خصوصيات و متدهاي گرافيكي تابع QBcolor 12-5 تابع RGB 12-6 شئ چاپگر Object( )Printer 12-7 چندرسانهاي) Multimedia ( 12-8 شئ تصوير )Picture(

11 واژهنامه خالصه مطالب آزمون نظري آزمون عملي واحد كار 13: توانايي انجام يك پروژه عملي آزمون پاياني پاسخنامه ضمايم فهرست منابع

12 مقدمه بازيابي ذخيرهسازي عمليات انجام كامپيوترها توليد و طراحي اهداف عمدهترين از يكي اين به بخشيدن تحقق براي آنهاست. وسيله به محاسبات انواع انجام و اطالعات و دادهها است. الزامي نرمافزار و سختافزار يعني اصلي جزء دو وجود اهداف ار كامپيوترها آنها بهكارگيري با بتوان كه برنامههايي وجود به نياز كامپيوترها اولين پيدايش با باينري مبناي براساس كامپيوترها در پردازش كه ازآنجا و شد احساس داد قرار استفاده مورد ماشين زبان به گرديد طراحي متخصصين توسط كه نرمافزارهايي اولين است 1 و 0 همان يا زيادي محدوديتهاي بودكه وقتگيري و دشوار كار نرمافزار توليد روش اين شد. نوشته و 1 ( )0 كه كنند توليد را نرمافزارهايي تا گرفتند تصميم كامپيوتر علوم متخصصان بنابراين دربرداشت را امر اين نمايند. تبديل ماشين زبان به دقت و سرعت با را برنامهاي نوع هر آنها از استفاده با بتوانند تازاوم به بدينترتيب شد. برنامهنويسي زبانهاي بهنام نرمافزارها از ويژهاي شاخه توليد به منجر زا را خود تكاملي سير خط نيز كامپيوتر برنامهنويسي زبانهاي سختافزار صنعت تكامل و رشد يط ويژوال و شئگرا يافته ساخت باال سطح برنامهنويسي زبانهاي به اسمبلي و ماشين زبان رد دادند. قرار برنامهنويسان اختيار در را كاربرديتري برنامهنويسي زبانهاي روزه هر و كرده ويندوز سيستمعاملهاي ظهور با و شده گسترده بسيار برنامهنويسي زبانهاي محدوده حالحاضر است. كرده پيدا بيشتري شدت مسأله اين اينترنت بخصوص كامپيوتري شبكههاي رايجشدن و زبانهاي و مسايل حل روش با رابطه در آموزشي نيازهاي به توجه با مهارتي پيمانه اين داشته نيز را ويندوز عامل سيستم محيط برنامهنويسيدر قابليت كه مدرن و باال سطح برنامهنويسي كارامدترين و رايجترين از يكي 6 نسخه ويژوالبيسيك برنامهنويسي زبان است. شده تأليف باشند زبانهايبرنامهنويسيدردنياستكهازويژگيهايباالييدربرنامهنويسيحرفهايبرخورداراست. است. شده تهيه خودآموز صورت به كه است واحدكار چهارده شامل مهارتي پيمانه اين شده آشنا فلوچارت و الگوريتم درباره اساسي مفاهيم با دانشآموزان دوم و اول واحدكار در تمرينهاي و مثال همراه به را مختلف مسايل حل براي مناسب راهحل يافتن چگونگي و تئوري صورت به را مطالب میتواند فراگير چهاردهم تا سوم كار واحد از فراميگيرند. متعدد به و مرتبط تمرينهاي با را شده مطالعه مطالب سپس و كرده مطالعه مناسب تصاوير با همراه و نظري آزمونهاي ارايه با كه است شده سعي عالوه به دهد. انجام مرحلهاي و عملي صورت مجددا مطالب مهارتي پيمانه پايان در عملي و نظري آزمون يك و واحدكار هر پايان در عملي پيشنياز دروس در كافي تسلط مهارتي پيمانه اين فراگيري در باالتر بازدهي براي شوند. مرور )Windows XP )ترجيحا پيشرفته و مقدماتي عامل سيستم كامپيوتر فناوري و مباني مانند مؤلف است. الزامي Vbbook6@yahoo.com

13 پيشآزمون - 1 كدام كليد تركيبي براي فعال كردن منوي Start به كار ميرود ب- Ctrl+Esc الف- Alt+F4 د- Ctrl+C ج- Alt+Esc - 2 از كدام برنامه در ويندوز براي اضافهكردن يك زبان جديد به مجموعه زبانهاي موجود استفاده ميشود ب- Regional and Language Options الف- Keyboard د- Regional Options ج- Folder Options - 3 كدام كليد تركيبي براي حركت كردن بين پنجرههاي باز مناسب است الف- Ctrl+V ب- Alt+Tab ج- Alt+Esc د- Ctrl+X

14

15 واحد کار اول هدف جزیی توانايي حل مسايل و طراحي الگوريتم مناسب براي آنها هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- نحوه شناخت و بررسي مسايل مختلف را توضيح دهد. 2- مفهوم الگوريتم را تعريف كند و ويژگيهاي آن را بيان نمايد. 3- انواع دستورالعملها را در الگوريتم بيان كند و كاربرد آنها را توضيح دهد. 4- مفهوم عملگر را بداند و انواع عملگرها را بيان كند. 5- عملگرهاي رياضي منطقي و مقايسهاي و كاربرد آنها را بيان كند و حق تقدم آنها را نسبت به يكديگر توضيح دهد. 6- بتواند انواع الگوريتمها را براي مسايل متفاوت طراحي نمايد. 5

16 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه کلیات روش حل مسايل با استفاده از روشها و تحليلهاي رياضي و منطقي اولين بار به وسيله دانشمند بزرگ ايراني خوارزمي مورد توجه قرار گرفت وي عالوه بر مباحث مختلفي كه در علوم رياضي و نجوم طرح كرد اساس روشي را در حل مسايل بنا نهاد كه در آينده مدتها مورد استفاده برنامهنويسان كامپيوتر قرار گرفت. نام الگوريتم نيز به افتخار وي و از عبارت»الخوارزمي«گرفته شده است. در اين پيمانه مهارتي با نحوه تجزيه و تحليل انواع مختلف مسايل و جستجو و طراحي راه حلهاي مناسب براي آنها آشنا خواهيد شد و در پايان ارايه راهحل به دست آمده با توجه به قواعد علم الگوريتم را ميآموزيد. 1-1 شناخت مسايل و ارايه راهحل مناسب براي حل آن ها انسان از آغاز آفرينش تاكنون همواره در مسير زندگي خود با مشكالت و مسائل مختلفي روبهرو بوده و براي حل مشكالت خود همواره راهحلهاي متفاوتي را تجربه كرده است. از مشكالتي نظير خوراك پوشاك محل زندگي تا حل مسائل علمي فلسفي رياضي و نظاير آنها بنابراين با توجه به نوع مسايل و تجربيات و پيشرفتهاي علمي سعي در ارائه راهحلهاي جديد كرده است. پيدا كردن راهحل براي يك مسأله به نوع آن بستگي دارد بعضي از مسألهها به سادگي قابل حل بوده اما بعضي ديگر هنوز هم به سادگي قابل حل نيستند. براي حل هرگونه مسأله جدا از نوع آن ميتوان موارد زير را در نظر گرفت: 1- شناخت دقيق مسأله 2- تجزيه و تحليل مسأله 3- طراحي راهحل شناخت مسأله براي شناخت بهتر يك مسأله بايد سه عامل مهم را درنظر بگيريد: مقادير معلوم خواستههاي مسأله )مجهوالت( و عمليات محاسباتي. مقادير معلوم دادهها: مقاديري كه در اختيار مسأله قرار ميگيرند و براي رسيدن به هدف موردنظر در مسأله موردنياز هستند. 6

17 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کار اول: توانایی حل مسایل و طراحی الگوریتم مناسب برای آنها ارتباط بين دادهها و مجهولها )محاس بات(: براي رسيدن به نتايج موردنظر معموال الزم است تا عملياتي را روي مقادير معلوم انجام دهيد بخش عمدهاي از اين عمليات با استفاده از فرمولهاي مختلف انجام ميشود البته محاسبات ميتوانند با توجه به روابط منطقي كه بين مقادير معلوم و خواستههاي مسأله وجود دارند انجام گيرند. خواستههاي مسأله )مجهوالت(: مقاديري هستند كه معموال در اثر انجام عمليات روي مقادير معلوم حاصل ميشوند البته مجهوالت ميتوانند از روابط منطقي كه در حل مسأله دخالت ميكنند نيز به وجود آمده و مورد استفاده قرار گيرند. به عنوان مثال فرض كنيد ميخواهيم محيط يك دايره به شعاع دلخواه را محاسبه كنيم. براي حل اينمسأله با روش ارايه شده ابتدا مقادير معلوم را مورد توجه قرار ميدهيم همانطوركه ميدانيد براي محاسبه محيط هر دايره بايد شعاع آن را در اختيار داشته باشيم بنابراين شعاع دايره )R( به عنوان تنها داده موردنياز براي حل مسأله كافي است. محاسباتي كه براي رسيدن به محيط دايره الزم است در واقع فرمول زير خواهد بود: P=2 3/14 R با استفاده از اين فرمول ها روابط بين داده هاي ورودي و نتايج موردنظر به خوبي تعيين مي شود و باالخره به عنوان مرحله آخر خواسته مسأله )مجهول( كه همان محيط) P ( دايره است بهدست ميآيد. تمرين: مقادير معلوم محاسبات و خواستههاي مسأله )مجهوالت( را در محاسبه محيط و مساحت يك مستطيل دلخواه مشخص كنيد تجزيه و تحليل مسأله معموال جستجوي راهحل مناسب براي يك مسأله بهسادگي امكانپذير نيست. گاهي اوقات راهحل مسأله بهسادگي قابل تشخيص است مانند محاسبه مجموع دو عدد يا محاسبه مساحت يك دايره اما در بعضي از مواقع بهدليل پيچيده بودن مسأله الزم است

18 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: ميگويند. زيرمسأله آنها به كه شود تقسيم كوچكتر مسأله چند به اصلي مسأله است زيرمسألههاي به مجددا دشواري صورت در تا شود بررسي مجددا زيرمسأله هر سپس لح شكل سادهترين به زيرمسألهها تا يابد ادامه آنقدر عمل اين و شود تقسيم كوچكتر دادن قرار هم كنار با و كرد حل جداگانه را زيرمسأله هر ميتوان حالت اين در شوند. اتومبيل يك ساخت مسأله اگر مثال عنوان به كرد. پيدا دسترسي اصلي مسأله حل به آنها اتومبيل اگر اما است دشواري كار اول مرحله در آن ساخت براي راهحل كردن پيدا باشد اين از يك هر و كنيم تقسيم بدنه و اتاق و جعبهدنده موتور مثل مختلف بخشهاي به را ميتوان كوچكتر اجزاي ساخت و طراحي با آنگاه جزء كوچكترين به مجددا را اجزا يك ساخت و طراحي اصلي اجزاي تركيب با نهايت در و كرد ايجاد را بزرگتر اجزاي شد. خواهد امكانپذير اتومبيل راهحل طراحي كرد: عمل روش دو به ميتوان راهحل يك ارائه براي مسأله تحليل از پس شدهاند. گرفته كار ديگربه مسائل حل در كه موجود راهحلهاي و تجربيات استفادهاز 1- آن براساس مسأله حل كه الگوريتمي و منطقي تفكر روشهاي از استفاده 2- كنيد فرض مثال عنوان به ميشود. انجام مرحله به مرحله صورت به و گرفته صورت اين ساده روش يك كنيم محاسبه را تا 20 1 اعداد بين زوج اعداد تعداد ميخواهيم روش از استفاده با اما بشماريد را زوج اعداد تعداد و نوشته را تا 20 1 اعداد كه است ميان در يكي زوج اعداد اينكه به توجه با كه رسيد نتيجه اين به ميتوان منطقي تفكر هم اول روش از كه مييابيد دست تعداد 10 عدد به بر 2 عدد 20 تقسيم با ميگيرند قرار رسيد. خواهيد نتيجه همين به الگوريتم 1-2 الگوريتم تعريف جزييات همراه به فهم قابل و دقيق زبان با كه دستورالعملها از اي مجموعه به )حل خاصي هدف كه شده اجرا گونهاي به مرحله به مرحله صورت به و الزم ميگويند. الگوريتم باشد مشخص نيز ها آن خاتمه و شروع و كنند دنبال را مسأله( 8

19 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کار اول: توانایی حل مسایل و طراحی الگوریتم مناسب برای آنها ميتوان الگوريتم را به يك ماشين تشبيه كرد كه مقادير معلوم را دريافت كرده روي آن ها محاسباتي را انجام ميدهد و در پايان خواستههاي مسأله )مجهوالت( را ارايه ميكند. در واقع رابطه نزديكي بين مفهوم الگوريتم و نحوه كار كامپيوتر در حل مسايل وجود دارد بنابراين با استفاده از روش الگوريتم ميتوانيد حل مسايل را به گونهاي طراحي كنيد كه براي تبديل به زبان كامپيوتر نيز قابل فهم باشد. به طور معمول با مفهوم الگوريتم آشنا هستيد و از آن استفاده ميكنيد به عنوان مثال وقتي هر روز براي كسب علم و دانش به مدرسه ميرويد اعمالي را به ترتيب و به صورت دقيق و كامل انجام ميدهيد يعني ابتدا از خواب بيدار ميشويد دست و صورت خود را ميشوييد صبحانه ميخوريد و سپس لباس مناسب به تن كرده و بعد از برداشتن وسايل و كتابهاي موردنياز از خانه خارج ميشويد مسافتي را طي كرده و به مدرسه و كالس خود ميرويد. اگر هر يك از اين اعمال را قبل يا بعد از عمل ديگر انجام دهيد هدف موردنظر كه شكل درست به مدرسه رفتن است انجام نميشود. ميتوان اين مراحل را به شكل خالصه و قابل فهمتري بيان كرد: بيدارشدن از خواب شستن دست و صورت خوردن صبحانه پوشيدن لباس مدرسه برداشتن كتابهاي درسي و دفتر و قلم خروج از خانه رفتن به مدرسه و ورود به كالس درس تمرين: مراحل تهيه نان در نانوايي را به صورت مرحله به مرحله بنويسيد. 9

20 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شرایط الگوریتم پس از آشنايي با مفهوم الگوريتم الزم است ويژگي هاي يك الگوريتم را بشناسيد. الف- استفاده از زبان ساده دقيق و قابل فهم: اين ويژگي سبب مي شود تا در انجام دستورالعمل ها همواره يك برداشت يكسان حاصل شود در غيراين صورت برداشت هاي متفاوت سبب خواهد شد تا دستورالعمل ها نتايج متفاوتي را به وجود آورند. زبان الگوريتم نيز مي تواند يكي از زبان هاي گفتاري و نوشتاري مانند فارسي انگليسي و... باشد. ب- استفاده از جزييات کافي: اين ويژگي سبب مي شود تا دستورالعمل ها به طور كامل اجرا شوند. وجود موارد نامشخص يا ارايه دستورالعمل ها به صورت كلي و مبهم سبب مخدوش شدن نتايج خواهد شد. ج- شروع و پايان الگوريتم: در يكالگوريتمبايد شروع دستورالعمل ها مشخصباشد. هر الگوريتم يك نقطه شروع دارد كه به عنوان اولين دستورالعمل از آن استفاده مي شود به عالوه پايان الگوريتم نيز بايد تعيين شود. يك الگوريتم مي تواند بيش از يك نقطه پايان داشته باشد. د- ترتي ب انجام دس تورالعمل ها: يكي از ويژگي هاي مهم يك الگوريتم ترتيب اجراي دستورالعمل ها است اگر اين كار به درستي انجام نشود پيش بيني نتيجه كار مشخص نخواهد بود. در يك الگوريتم ترتيب انجام عمليات با استفاده از شماره گذاري دستورالعمل ها از باال به پايين انجام مي شود كه البته در صورت نياز مي توان ترتيب اجراي دستورالعمل ها را نيز تغيير داد. در مباحث بعد به اين مسأله خواهيم پرداخت. نكته:اگر در حل مسايل سه عامل اصلي را به دقت مشخص كنيد طراحي يك الگوريتم كارزياد دشواري نخواهد بود. اگر مقادير معلوم خواستههاي مسا له فرمولها و روابط رياضي و منطقي بين ا نها را به درستي تعيين كنيد نوشتن الگوريتمهاي مختلف ا سانتر خواهد شد. ه - جامع بودن: الگوريتم بايد به شكلي طراحي شود كه با توجه به صورت مسأله و مفروضات آن در تمام حالت ها نتايج مناسب و صحيحي را ارايه كرده و در حالت هاي خاص يا داده هاي ورودي متفاوت نتايج درستي را ايجاد كند. 10

21 پيمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کار اول: توانايی حل مسايل و طراحی الگوريتم مناسب برای آن ها نكته: بهتر است دريك الگوريتم از دستورات اضافه كه سبب افزايش حجم الگوريتم ميشود خودداري نماييد چرا كه اين كار الگوريتم را شلوغ كرده و باعث سردرگمي ميشود انواع دستورالعمل ها در الگوریتم الگوريتم مجموعه اي از دستورالعمل هاست. دستورالعمل ها انواع مختلفي دارند كه عبارتند از: الف- دستورالعمل هاي ورودي ب- دستورالعمل هاي خروجي ج- دستورالعمل هاي محاسباتي د- دستورالعمل هاي شرطي ه - دستورالعمل هاي تكرار )حلقه ها( الف- دستورالعمل هاي ورودي اين دستورالعمل ها براي دريافت داده هاي ورودي استفاده مي شوند و معموال براي اجراي آن ها از عباراتي مانند»بخوان دريافت كن يا بگير«استفاده مي شود. ب- دستورالعمل هاي خروجي اين دستورالعمل ها براي نمايش اطالعات خروجي يا پيام هاي موردنياز به منظور راهنمايي كاربر روي صفحه نمايش يا چاپ آن ها به وسيله چاپگر استفاده مي شوند و معموال براي اجراي آن ها عباراتي مانند»نمايش بده يا چاپ كن«به كار مي روند. ج- دستورالعمل هاي محاسباتي اين دستورالعمل ها در واقع نحوه ارايه و استفاده از فرمول ها و انجام عمليات رياضي و محاسباتي را تعيين مي كنند و معموال براي اجراي آن ها از همان شكلي كه در رياضيات وجود دارد استفاده مي شود يعني در سمت راست تساوي عمليات محاسباتي و در سمت چپ تساوي نام يك متغير به كار مي رود البته به جاي عالمت تساوي از عالمت فلش نيز استفاده مي شود. 11

22 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تعريف متغير: متغيرها مكانهايي هستند كه توانايي نگهداري و ذخيرهسازي انواعداده را دارند. متغيرها در الگوريتم همان كاربرد رياضي خود را دارا هستند و عالوه بر اعداد ميتوانند متن يا مقادير منطقي درست يا نادرست تاريخ ساعت و نظاير آن ها را نگهداري كنند. نحوه استفاده از عملگرهاي رياضي در الگوريتم: برخي از عملياتي كه در الگوريتم انجام مي گيرد عمليات رياضي و محاسباتي است كه براي انجام اين گونه دستورات الزم است از عملگرهاي رياضي استفاده شود. تعريف عملگر: در واقع عملگر يك يا مجموعه عملياتي است كه از پيش در الگوريتم آماده شده است و براي استفاده از آن بايد از عاليمي كه به صورت قراردادي تعريف شدهاند استفاده كنيد مانند عملگر جمع كه ميتواند دو عدد يا دو متغير يا تركيبي از آن ها را با هم جمع و حاصل آن را ارايه كند. اعداد و متغيرهايي كه عملگر روي آن ها عمليات انجام ميدهد عملوند ناميده مي شوند. عملگرهاي رياضي در جدول 1-1 ارايه شدهاند. جدول 1-1 عملگر عنوان مثال اولویت 1 )2 3( +4=1 پرانتز ) ( 2 2 3=6 ضرب * 2 12/6=2 تقسیم / 3 \ خارج قسمت تقسیم صحیح 5=3 \ mod باقیمانده تقسیم صحیح 5=4 Mod =49 جمع =3 تفریق - عملگرهاي ارايه شده در جدول 1-1 نسبت به هم داراي حق تقدم در اجرا هستند به عبارت ديگر در يك عبارت رياضي كه از چند عملگر استفاده شده است عملگرها 12

23 پيمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کار اول: توانايی حل مسايل و طراحی الگوريتم مناسب برای آن ها از سمت چپ عبارت رياضي به ترتيب اجرا مي شوند. اما هميشه اين گونه نيست و در هنگام استفاده از چند عملگر رياضي اولويت آن ها مطابق جدول 1-1 از باال به پايين درنظر گرفته مي شود به عنوان مثال عبارت 5 1 / 2+3 را در نظر بگيريد در اين عبارت ابتدا عدد 3 در 5 ضرب شده و سپس حاصل ضرب آن يعني 15 بر عدد 1 تقسيم مي شود چرا كه عملگرهاي ضرب و تقسيم نسبت به عملگر جمع حق تقدم دارند. در پايان حاصل تقسيم يعني عدد 1/5 با عدد 2 جمع و در نتيجه عدد 3/5 به دست مي آيد. توجه كنيد كه عملگرهاي ضرب و تقسيم نسبت به هم جمع و تفريق نيز نسبت به هم داراي اولويت يكساني هستند و اولويت آن ها نسبت به هم از چپ به راست است. به عنوان مثال عبارت را درنظر بگيريد در اين عبارت ابتدا عدد 6 در 2 ضرب شده سپس عبارت محاسبه مي شود كه نتيجه آن عدد 5 خواهد بود و بعد عمل تفريق انجام مي شود و حاصل تفريق 12-5 يعني 38 به دست مي آيد. البته اولويت عملگرها را مي توان با پرانتز تغيير داد به عنوان مثال اگر عبارت قبل را با پرانتز به شكل 2 ( 6- ) تغيير دهيد ابتدا عبارت داخل پرانتز محاسبه مي شود سپس نتيجه در عدد 2 ضرب خواهد شد. تمرين: ترتيب انجام عمليات و حاصل عبارات زير را تعيين كنيد: ( / 5 + 2( ))27+4( 12-7 ( +8 / 2 13 مثال 1: فرض كنيد مي خواهيد مسأله محاسبه محيط يك مستطيل با طول L و عرض W دلخواه را به صورت يك الگوريتم بنويسيد قبال اين مسأله را بررسي كرده و سه عامل مقادير معلوم فرمول هاي محاسباتي و خواسته هاي مسأله )مجهوالت( و رابطه بين آن ها را تعيين كرده ايد بنابراين الگوريتم حل اين مسأله به صورت زير خواهد بود: توضيح شروع الگوریتم ورود دادهها ورود دادهها محاسبه محیط نمایش خروجي پایان الگوریتم 1 -شروع الگوریتم 2- L را دریافت کن 3- W را دریافت کن P 2 )L + W ( P را نمایش بده 5- پایان

24 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تمرين: الگوريتميبنويسيدكهمحيطيكدايرهباشعاعدلخواه R رامحاسبهكردهونمايشدهد. مثال 2: الگوريتمي بنويسيد تا حاصل تقسيم يك عدد دلخواه را بر عدد دلخواه ديگري محاسبه كرده و نمايش دهد. در اين مثال ورودي ها شامل دو عدد هستند و محاسبات الزم براي رسيدن به نتيجه عمل رياضي تقسيم مي باشد و خواسته مسأله نيز نتيجه تقسيم دو عدد بر يكديگر است بنابراين الگوريتم مربوطه بدين صورت خواهد بود. توضيح شروع ورود دادهها ورود دادهها محاسبه حاصل تقسیم نمایش خروجي پایان الگوریتم 1 -شروع 2- X را دریافت کن 3- Y را دریافت کن Z X/Y Z را نمایش بده 5- پایان در اين الگوريتم پس از شروع الگوريتم در مراحل 2 و 3 دو عدد از ورودي دريافت شده و در متغيرهاي X و Y ذخيره مي شوند. در مرحله 4 دو متغير بر هم تقسيم شده و نتيجه تقسيم در متغير Z ذخيره مي شود. در مرحله 5 حاصل تقسيم روي صفحه نمايش داده مي شود و در مرحله 6 الگوريتم پايان مي يابد. تمرين: الگوريتمي بنويسيد تا ميانگين سه عدد دلخواه را محاسبه كرده و نمايش دهد. الگوريتمي بنويسيد كه باقيمانده تقسيم دو عدد دلخواه را بر هم محاسبه كرده و نمايش دهد. 14

25 پيمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کار اول: توانايی حل مسايل و طراحی الگوريتم مناسب برای آن ها د - دستورالعمل هاي شرطي گاهي اوقات الزم است با مقايسه مقادير داده هاي ورودي اطالعات خروجي متغيرها و... عملياتي را در الگوريتم هدايت كرده و دستورالعمل هاي خاصي را اجرا كنيد يا روند اجراي الگوريتم را با اتخاذ تصميمات مناسبي كنترل نماييد. در اين صورت مي توانيد از دستورات شرطي استفاده كنيد. مثال 3: الگوريتمي بنويسيد كه زوج و فرد بودن هر عدد دلخواه را مشخص كند. در اين مسأله داده ورودي شامل يك عدد است و تشخيص زوج يا فرد بودن عدد وارد شده خواسته )مجهول( مسأله است. اگر باقيمانده تقسيم يك عدد بر عدد 2 صفر شود عدد زوج است و اگر باقيمانده يك باشد عدد موردنظر فرد ميباشد با استفاده از عملگر Mod ميتوان تقسيمهاي فوق را به صورت زير نوشت: 14 MoD 2 17 MOD 2 1 در اين مرحله با اين كه نكات الزم براي حل مسأله به دست آمده است اما يك مشكل هنوز وجود دارد كه يك عدد در هر لحظه نمي تواند هم زوج و هم فرد باشد بنابراين مجبور خواهيد بود در زماني كه عدد زوج است يك خروجي و وقتي عدد فرد است خروجي ديگري نمايش داده شود. درچنين حالت هايي الزم است از دستورات شرطي استفاده كنيد. نحوه استفاده از يك دستور شرطي به صورت زير است: شكل كلي دستورالعمل شرطي به يكي از صورت هاي زير است. اگر شرط )ها( آن گاه دستور)ات( باقيمانده تقسيم اگر شرط )ها( آن گاه دستور)ات( در غير اين صورت دستور)ات( 15

26 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: نتيجه صورتيكه در و ميشوند بررسي شده ارايه شرطهاي يا شرط ابتدا اول حالت در غيراينصورت در ميشوند اجرا»آنگاه«از پس دستورات يا دستور باشد درست بررسي قرار شرطي دستورالعمل از پس كه دستورالعملي شده( بررسي شرط بودن )نادرست شود. اجرا»آنگاه«از پس دستورات يا دستور آنكه بدون شد خواهد اجرا گرفته آن در كه ميكنيد مالحظه را شرطي دستورالعمل از كاملتري شكل دوم حالت در باشد درست آنها ارزيابي نتيجه اگر ميگيرند قرار بررسي مورد شرطها يا شرط ابتدا شرطها يا شرط ارزيابي نتيجه اگر اما ميكند رفتار اول حالت مانند شرط دستورالعمل در موجود دستورات شوند اجرا»آنگاه«بخش دستورات آنكه بدون باشد نادرست شرطي دستور از پس كه دستورالعملي سپس شد خواهند اجرا اينصورتدرغير بخش ميشود. اجرا دارد قرار 1-2 جدول عملگر عنوان مثال نتیجه 4=4 تساوی درست = 5 2=> مساوی یا بزرگتر درست <= 1 >=15 29<74 مساوی یا کوچکتر بزرگتر نادرست نادرست >= < 7>3 کوچکتر نادرست > 15><8 نامساوی درست >< بود: خواهد صورت بدين موردنظر الگوريتم بنابراين توضيح الگوريتم شروع داده ورود ميكند. ذخيره R در را تقسيم باقيمانده مقدار ميدهد. نمايش را است.«زوج»عدد عبارت باشد صفر برابر R صورتيكه در ميدهد. نمايش را است.«فرد»عدد عبارت باشد يك برابر R صورتيكه در الگوريتم پايان شروع 1- کن دریافت Xرا - 2 R X MoD 2-3 بده. نمايش را است.«زوج»عدد آنگاه R = اگر - 4 بده. نمايش را است.«فرد»عدد آنگاه R 1= اگر 5- پايان 6-16

27 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه آنها برای مناسب الگوریتم طراحی و مسایل حل توانایی اول: کار واحد X متغير در و شده دريافت ورودي از عدد يك 2 مرحله در الگوريتم شروع از پس ذخيره R متغير در و شده محاسبه 2 بر X تقسيم باقيمانده 3 مرحله در سپس ميشود ذخيره مقايسه صفر مقدار با R متغير مقدار شرطي دستور يك از استفاده با 4 مرحله در ميشود. در و )True( درست شرط بررسي نتيجه باشد صفر نيز متغير مقدار كه صورتي در ميشود مقدار اگر اما ميشود داده نمايش است.«زوج»عدد عبارت و بود خواهد زوج عدد نتيجه اجرا آنگاه از بعد دستور و بوده )False( نادرست شرط بررسي نتيجه نباشد صفر R متغير اب برابر آن مقدار صورتيكه در و ميشود بررسي R مقدار مجددا 5 مرحله در نميشود. برابر آن مقدار صورتيكه در و شد خواهد داده نمايش است.«فرد عدد»عبارت باشد يك نميشود. داده نمايش مزبور عبارت نباشد يك با تمرين: كند تعيين ديگر عدد بر را عدد يك بخشپذيري كه بنويسيد الگوريتمي فرد هم و زوج هم نميتواند عدد يك كه نكته اين و شده گفته مطالب به توجه با ود از استفاده جاي به و نمود خالصهتر ميتوان زير بهصورت را قبل مثال الگوريتم باشد كرد. حل شرطي دستورالعمل يك با را مسأله شرطي دستورالعمل توضيح الگوريتم شروع داده ورود ميكند. ذخيره R در را تقسيم باقيمانده مقدار شروع 1- کن دریافت را X - 2 X MoD 2-3 بده نمايش را است.«زوج»عدد آنگاه R = اگر - 4 بده نمایش «را است. فرد عدد صورت» این غیر در نمايش است.«را زوج»عدد عبارت باشد صفر با برابر R مقدار صورتيكه در ميدهد. نمايش را است«فرد»عدد عبارت اينصورت غير در ميدهد الگوريتم پايان R پايان 5-17 نتيجه در اما است شده استفاده شرطي دستورالعمل يك از جديد الگوريتم اين در يعني باقيمانده مقدار اگر حالت اين در نميآيد وجود به تغييري هيچ الگوريتم اجراي اگر اما ميشود اجرا دارد قرار»آنگاه«بخش در كه دستوري باشد صفر با برابر R متغير شد. خواهد اجرا صورت«اين غير در «بخش دستور نباشد صفر با برابر R متغير مقدار

28 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تمرين: الگوريتم بخشپذيري دو عدد بر يكديگر را با يك دستورالعمل شرطي بنويسيد. مثال 4: الگوريتمي بنويسيد كه سه عدد دلخواه را دريافت كرده و بزرگترين مقدار را در بين آنها تعيين كند و نمايش دهد. در اين مسأله سه داده ورودي وجود دارند كه آن ها را اعداد B A و C در نظر مي گيريم براي پيدا كردن بزرگ ترين مقدار در بين اين سه عدد مي توانيم از روش مقايسه استفاده كنيم به اين منظور ابتدا فرض مي كنيم مقدار ذخيره شده در متغير A بزرگ ترين مقدار است و مقدار آن را در متغير ديگري به نام MAX ذخيره مي كنيم به اين دليل كه متغيرهاي ديگر يعني B وC را با مقايسه با اين مقدار )متغير )MAX بررسي كرده و بزرگ تر بودن يا نبودن آن ها را از مقدار اول مشخص مي كنيم يعني متغير B را با MAX مقايسه كرده و در صورت بزرگ تر بودن مقدار B از MAX متغير B را در MAX ذخيره مي كنيم اگر به همين ترتيب اين عمليات را براي متغير C نيز انجام دهيم در پايان بزرگ ترين عدد در متغير MAX ذخيره خواهد شد. با توجه به مطالب گفته شده الگوريتم موردنظر به صورت زير خواهد بود: توضیح شروع الگوریتم ورود داده مقدار متغیر A در MAX ذخیره ميشود. در صورتيکه مقدار B از MAX بزرگتر باشد مقدار B را در MAX ذخیره ميکند. در صورتيکه مقدار C از MAX بزرگتر باشد مقدار C را در MAX ذخیره ميکند. نمایش خروجي پایان الگوریتم 1- شروع 2- اعداد B A و C را دریافت کن MAX A اگر B < MAX آنگاه MAX B - 5 اگر C < MAX آنگاه MAX C - 6 MAX را نمایش بده - 7 پایان 18

29 پيمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کار اول: توانايی حل مسايل و طراحی الگوريتم مناسب برای آن ها تمرين: الگوريتميبنويسيد كه چهار عدد دلخواه را دريافت كرده و كوچك ترين وبزرگ ترين مقدار دربين آن ها رابه دست آورد سپس آن رابراياعداد مختلفاجرا و آزمايش كنيد. نكتهدر صورت نياز ميتوان يك دستورالعمل شرطي را در بخش دستورات بعد از «ا نگاه» يا «در غير اينصورت» دستورالعمل شرطي ديگري قرار داد در اين حالت به مجموعه دستورالعملهاي شرطي دستورالعملهاي شرطي تودرتو نيز ميگويند. عملگرهاي منطقي گاهي اوقات ممكن است الزم باشد در دستورالعمل هاي شرطي كه در حل يك الگوريتم به كار مي روند بيش از يك شرط مورد بررسي قرار گيرند و با توجه به نتيجه بررسي تمامي شرط هاي ذكر شده ساير دستورالعمل ها اجرا شوند. در چنين حالت هايي مي توان از عملگرهاي منطقي براي تركيب دو يا چند شرط استفاده كرد. مثال 5: الگوريتمي بنويسيد كه مقدار مصرف برق يك مشترك دلخواه را دريافت كرده و براساس جدول 1-3 رتبه ميزان مصرف وي را مشخص كند. جدول 1-3 ردیف میزان مصرف ( کیلو وات( 5 تا 2 تا 5 2 به باال رتبه کم مصرف عادی پرمصرف 19 براي طراحي الگوريتمي كه بتواند رتبه مصرف برق يك مشترك را مشخص كند شرايط مختلفي در نظر گرفته شده است. براي حل اين مثال دو روش وجود دارد: روش اول استفاده از دستورالعمل هاي شرطي تودرتو و روش دوم استفاده از عملگرهاي منطقي است.

30 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه در روش اول الزم است تا براي رديفهاي 1 و 2 در جدول 1-3 از يك دستورالعمل شرطي در بخش»آنگاه«دستورالعمل شرطي ديگري استفاده شود تا هر دو شرط موردنظر در اين رديفها مورد ارزيابي قرار گيرند. البته براي رديف 3 ميتوان از يك دستورالعمل شرطي به تنهايي استفاده كرد. با توجه به اين توضيحات ميتوانيد الگوريتم زير را بنويسيد: در اين الگوريتم kw به عنوان ميزان مصرف برق در نظر گرفته شده است. 1- شروع 2- kw را دريافت كن. 3- اگر kw < = آنگاه اگر kw > 5 آنگاه»مشترك كم مصرف است.«را نمايش بده. 4- اگر kw < = 5 آنگاه اگر kw 2 < آنگاه»مشترك عادي است.«را نمايش بده. 5- اگر kw < =2 آنگاه»مشترك پرمصرف است.» را نمايش بده. 6- پايان به طور كلي سه نوع عملگر منطقي كه در الگوريتم مورد استفاده قرار ميگيرند در جدول 1-4 ارائه شدهاند. جدول 1-4 مفهوم»و«منطقي»يا«منطقي نقيض عملگر AND OR NOT وقتي دويا چند شرط با عملگر منطقي AND با هم تركيب ميشوند نتيجه مقايسه زماني درست )True( خواهد بود كه نتيجه تمام شرطها و مقايسهها True باشند به عنوان مثال شرطهاي X < و > 5 Y را در نظر بگيريد. اگر بخواهيم اين دو شرط را با يكديگر تركيب كنيم نتيجه تركيب آنها زماني درست )True( خواهد بود كه نتيجه بررسي هر دو شرط درست )True( باشد. به عنوان نمونه اگر مقدار X برابر 2 وY برابر 1 باشد هر دو شرط درست )True( بوده و نتيجه تركيب آنها نيز درست )True( خواهد بود. 20

31 پيمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کار اول: توانايی حل مسايل و طراحی الگوريتم مناسب برای آن ها اما اگر نتيجه بررسي شرط X < يا > 5 Y يا هر دو شرط نادرست )False( باشد نتيجه تركيب آن ها نيز نادرست )False( خواهد بود. به عنوان نمونه اگر مقدار X برابر با 5- و مقدار Y برابر با 1 باشد شرط X < نادرست )False( و شرط خواهد بود و در نتيجه تركيب آن ها نيز نادرست) False ( )True( درست Y > 5 مي شود. بنابراين جدول درستي عملگر منطقي AND مطابق جدول 1-5 است. درصورتي كه دو يا چند شرط را با عملگر منطقي OR با هم تركيب كنيد نتيجه شرط زماني نادرست )False( خواهد بود كه نتيجه تمام شرط ها نادرست )False( باشد و در ساير حاالت نتيجه درست )True( خواهد بود بنابراين جدول درستي عملگر منطقي OR مطابق جدول 1-6 است. X < T F F T جدول 1-5 Y > 5 X< F T F T AND F F F T Y > 5 X > T F F T جدول 1-6 Y < 5 F T F T X > OR Y < 5 T T F T اگر از عملگر NOT روي يك شرط استفاده شود نتيجه درستي آن را معكوس مي كند يعني اگر نتيجه شرط درست )True( باشد آن را به نادرست )False( و اگر نتيجه شرط نادرست )False( باشد آن را به درست )True( تبديل مي كند. جدول درستي عملگر منطقي NOT مطابق جدول 1-7 مي باشد. جدول 1-7 X > T F NOT X > F T 21 نكته در جدولهاي و 7-1 T بيانگر درست (True) و F بيانگر نادرست (False) ميباشد.

32 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تمرين: الگوريتمي بنويسيد تا معدل يك دانش آموز را دريافت كرده و رتبه وي را براساس شرايطي كه در ادامه مي آيد تعيين كند: الف- درصورتي كه ميانگين نمرات بيشتر از 18 باشد رتبه ممتاز براي وي اعالم شود. ب- درصورتي كه ميانگين نمرات بين 16 تا 18 باشد رتبه خوب براي وي اعالم شود. ج- درصورتي كه ميانگيننمراتبين 12 تا 16 باشد رتبه متوسطبراي وياعالم شود. د - درصورتي كه ميانگين نمرات كمتر از 12 باشد رتبه ضعيف براي وي اعالم شود. ه - دستورالعمل هاي تكرار )حلقه ها( استفاده از دستورالعمل هايي كه تاكنون فراگرفته ايد در حل بعضي از مسايل كافي نيست و الزم است تا برخي از دستورالعمل ها را به دفعات تكرار نماييد در اين موارد از دستورالعمل تكرار يا همان حلقه ها استفاده كنيد. مثال 6: الگوريتمي بنويسيد كه مجموع اعداد 1 تا 1 را محاسبه نموده و نمايش دهد. اگر براي حل اين مسأله بخواهيد از دستورالعمل هايي كه تاكنون ارائه شده اند استفاده كنيد در اين حالت الگوريتمي به صورت زير به دست مي آيد. - 1 شروع SuM - 2 SuM = SuM- 4 را نمايش بده - 5 پايان با اين حال مشاهده مي كنيد كه الگوريتم شكل نامناسبي دارد و اگر داده ها زيادتر شوند استفاده از اين روش عمال غيرممكن است. براي حل اين مشكل مي توان دستورالعمل تكرار را به كار برد. 22

33 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه آنها برای مناسب الگوریتم طراحی و مسایل حل توانایی اول: کار واحد از: عبارتند كه شود مي تشكيل مختلفي اجزاي از حلقه دستورالعمل در را دستورالعملها تكرار دفعات تعداد كه است عددي متغير يك حلقه: مارنده ش مييابد. كاهش يا افزايش حلقه اجراي بار هر در شمارنده مقدار ميكند. حلقهكنترل ميتوان آن وسيله به و ميشود تعيين حلقه شروع از قبل حلقه اوليه مقدار اوليه: مقدار كرد. تعيين حلقه شمارنده براي را اوليه مقدار كرد. استفاده شرط يك از بايد حلقه تكرار دفعات تعداد كنترل براي حلقه: شرط و ميكند مشخص حلقه در را دستورالعملها تكرار پايان نقطه حلقه در موجود شرط در شرط ايجاد براي كند. جلوگيري نامحدود حلقه ايجاد از تا شود تنظيم بهگونهاي بايد كرد. استفاده شرطي دستورالعملهاي از ميتوان حلقه يك تكرار حلقه داخل كه هستند دستورالعملهايي حلقه در ديگر بخش حلقه: دستورات ميشوند. انتخاب مسأله نياز به توجه با دستورالعملها اين ميشوند. نمود: ارائه را زير صورت به را 8 مثال الگوريتم ميتوان بنابراين توضيح حلقه شمارنده براي اوليه مقدار تنظيم اعداد مجموع محاسبه حلقه شمارنده افزايش حلقه شرط حلقه دستورات شروع 1- N 1-2 SUM -3 SUM SUM + N -4 N N برو مرحله 4 به آنگاه N 1 اگر 6- بده نمايش را SUM 7- پايان 8- عنوان به كه ميشود ذخيره N متغير در 1 عدد ابتدا شروع از پس الگوريتم اين در ذخيره sum متغير در صفر مقدار بعد مرحله در ميشود. استفاده آن از حلقه شمارنده اعداد مجموع 4 مرحله در ميشود. استفاده آن از اعداد مجموع محاسبه براي كه ميشود ميشود. محاسبه يك 6 مرحله در مييابد افزايش واحد يك حلقهN شمارنده مقدار بعد مرحله در 23

34 وزارت كار و امور اجتماعی دستورالعمل شرطي مقدار شمارنده را بررسي مي كند تا تعداد دفعات تكرار دستورالعمل ها از مقدار 1 بيشتر نشود. در اين حالت اگر مقدار شمارنده كوچك تر يا مساوي 1 باشد اجراي الگوريتم به مرحله 4 منتقل مي شود. دستورات مراحل 5 4 و 6 آن قدر تكرار مي شوند تا مقدار شمارنده از مقدار 1 بيشتر شود و در نتيجه اجراي حلقه ايجاد شده خاتمه مي يابد و اجراي الگوريتم با اجراي مرحله 7 ادامه يافته و با نمايش ميانگين اعداد در مرحله 8 خاتمه مي يابد. اگر الگوريتم را اجرا و آزمايش كنيد جدول بررسي عملكرد آن به صورت جدول 1-8 خواهد بود. وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه جدول 1-8 خروجي N SUM مثال 7: الگوريتمي بنويسيد كه اعداد طبيعي كوچك تر از 5 را نمايش دهد. توضیح تنظیم مقدار اولیه براي شمارنده حلقه نمایش خروجي افزایش شمارنده حلقه شرط حلقه دستورات حلقه 1- شروع N N را نمایش بده K N اگر N > 5 آنگاه به مرحله 3 برو 6- پایان مثال 8: الگوريتمي بنويسيدكه اعداد زوج كوچك تر يا مساوي عدد طبيعي و دلخواه N را نمايش دهد. اين الگوريتم مشابه الگوريتم قبلي است با اين تفاوت كه مقدار شمارنده از 2 شروع شده و هر بار به ميزان 2 واحد افزايش مي يابد. 24

35 پيمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کار اول: توانايی حل مسايل و طراحی الگوريتم مناسب برای آن ها توضیح خاتمه الگوریتم در صورتي که داده ورودي عدد یک باشد. 1- شروع 2- N را دریافت کن 3- اگرN=1 آنگاه پایان K K را نمایش بده K K اگر K>=N آنگاه برو به مرحله 5 8- پایان تمرين: الگوريتمي بنويسيد كه مضارب كوچك تر از 1 عدد 3 را نمايش دهد. مثال 9: الگوريتمي بنويسيد كه مجموع و تعداد اعداد طبيعي موجود بين اعداد طبيعي دلخواه M و N را نمايش دهد )با فرض اين كه M كوچكتر از N باشد(. 1- شروع 2- M و N را دريافت كن NO و SuM -3 K M SuM SuM+K-5 NO NO+1-6 K K اگر K>N آنگاه برو به مرحله 5 9- SuM و NO را نمايش بده 10- پايان نكتهاي كه بايد در اين الگوريتم بدان اشاره كنيم نحوه محاسبه مجموع و تعداد اعداد

36 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه طبيعي است. براي اين کار از متغير NO براي شمارش تعداد اعداد بين M و N استفاده مي شود. متغير K براي ايجاد اعداد طبيعي بين M و N به کار مي رود. در صورت اجراي اين الگوريتم به ازايM=3 و 9=N جدول بررسي عملکرد به صورت زير خواهد بود: جدول 1-9 M N K SUM خروجي NO تمرين: الگوريتم قبل را به گونه اي تنظيم کنيد که بدون در نظر گرفتن فرض M>N توانايي ارايه پاسخ صحيح را داشته باشد به عبارت ديگر در صورتيکه کاربر عدد بزرگ تر را براي M و عدد کوچک تر را براي N وارد کند پاسخ الگوريتم درست باشد. 26

37 پيمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کار اول: توانايی حل مسايل و طراحی الگوريتم مناسب برای آن ها مثال 1: الگوريتمي بنويسيد كه مقسوم عليههاي عدد طبيعي و دلخواه M را محاسبه كند. به اين منظور بايد از يك حلقه استفاده كنيد و متغير M را هر بار بر يك متغير K كه به عنوان مقسوم عليه در نظر گرفته ميشود و مقدار اوليه آن 1 است تقسيم نماييد سپس باقيمانده اين تقسيم را بررسي كنيد. در صورتيكه مقدار باقيمانده مساوي صفر باشد به اين معني است كه متغير K ميتواند مقسومعليه متغيرM باشد بنابراين متغير Mod نمايش داده ميشود. براي محاسبه باقيمانده تقسيم صحيح نيز ميتوانيد از عملگر K استفاده كنيد. اكنون الگوريتم موردنظر به صورت زير خواهد بود: - 1 شروع - 2 M را دريافت كن K اگر M Mod K= آن گاه K را نمايش بده K K اگر K>=M آن گاه برو به مرحله 4-7 پايان مثال 11: الگوريتمي بنويسيدكه مجموع ارقام هر عدد طبيعي و دلخواه را محاسبه كرده و نمايش دهد. براي طراحي الگوريتم قبل و محاسبه مجموع ارقام يك عدد ابتدا بايد ارقام عدد را يكي يكي از آن جدا كنيد به اين منظور مي توانيد از عملگر Mod و محاسبه باقيمانده تقسيم عدد مربوطه بر عدد 1 استفاده نماييد سپس خارج قسمت عدد مربوطه را كه بر 1 تقسيم مي شود محاسبه كنيد. از اين عدد مي توانيد براي به دست آوردن رقم بعدي در عدد اصلي استفاده نماييد. اين عمليات مي تواند در يك حلقه تا رسيدن به خارج قسمت صفر ادامه يابد. براي محاسبه خارج قسمت تقسيم صحيح نيز مي توانيد از عملگر \ استفاده كنيد به عنوان نمونه به اين مثال توجه كنيد: 27

38 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: \ 5 = 3 صحیح تقسیم قسمت خارج صحیح تقسیم باقیمانده روش كنيم جدا آن از را عدد يك ارقام بخواهيم اگر شده ارايه مطالب به توجه با بود: خواهد بعد صورت به عمليات اين رياضي باشد: 4257 نظر مورد عدد اگر مثال عنوان به كرد: ارايه مثال اين حل براي را زير الگوريتم توان مي بنابراين شروع - 1 كن دريافت را M - 2 SUM 0-3 DIGIT M Mod10-4 SUM SUM + DIGIT - 5 M M \ مرحله به برو آنگاه M <> 0 اگر - 7 بده نمايش را SUM - 8 پايان

39 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کار اول: توانایی حل مسایل و طراحی الگوریتم مناسب برای آنها Learn in English Algorithm To make a computer do anything, you have to write a computer program. To write a computer program, you have to tell the computer, step by step, exactly what you want it to do. The computer then «executes» the program, following each step mechanically, to accomplish the end goal. When you are telling the computer what to do, you also get to choose how it s going to do it. That s where computer algorithms come in. The algorithm is the basic technique used to get the job done. Let s follow an example to help get an understanding of the algorithm concept. Let s say that you have a friend arriving at the airport, and your friend needs to get from the airport to your house. Here are four different algorithms that you might give your friend for getting to your home: * The taxi algorithm 1 - Go to the taxi stand Get in a taxi 2 - Give the driver my address * The call-me algorithm: 1 - When your plane arrives, call my cell phone. 2 - Meet me outside baggage claim. * The rent-a-car algorithm: 1 - Take the shuttle to the rental car place. 2 - Rent a car. 3 - Follow the directions to get to my house. * The bus algorithm: 1 - Outside baggage claim. 2 - Transfer to bus on Main Street. 3 - Get off on 20 street. 29

40 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه 4 - Walk two blocks north to my house. All four of these algorithms accomplish exactly the same goal, but each algorithm does it in completely different way. Each algorithm also has a different cost and a different travel time. Taking a taxi, for example, is probably the fastest way, but also the most expensive. Taking the bus is definitely less expensive, but a whole lot slower. You choose the algorithm based on the circumstances. 30

41 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کار اول: توانایی حل مسایل و طراحی الگوریتم مناسب برای آنها Circumstance Driver Execute Expensive Fast Program Rent واژهنامه وضعيت راننده اجرا كردن گران سريع برنامه اجاره خالصه مطالب براي دستيابي به روش حل مسايل شناسايي سه پارامتر مقادير معلوم محاسبات و خواستههاي مسأله )مجهوالت( كار را آسان تر مي كند. الگوريتم مجموعه اي از دستورالعمل هاست كه به صورت مرحله به مرحله اجرا ميشوند و هدف مشخصي را دنبال ميكنند و داراي شروع و خاتمه ميباشند. انواع دستورالعمل ها در الگوريتم عبارتند از: ورودي محاسباتي خروجي شرطي و حلقه ها. دستورالعمل هاي ورودي براي دريافت داده ها و دستورالعمل هاي خروجي براي نمايش داده و اطالعات خروجي يا پيام هاي موردنياز استفاده مي شوند. دستورالعمل هاي محاسباتي براي انجام عمليات رياضي و محاسباتي استفاده مي شوند. دستورالعمل هاي شرطي براي انجام مقايسه ها و كنترل روند اجراي الگوريتم استفاده مي شوند. دستورالعمل هاي تكرار )حلقه ها( براي ايجاد تكرار اجراي دستورالعمل ها استفاده مي شوند. عملگر يك يا مجموعه عملياتي است كه در ماشين الگوريتم به صورت از پيش آماده تعريف شده است. 31

42 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: نظري آزمون چيست زير الگوريتم اجراي نتيجه - 1 شروع - 1 SUM - 2 I 1-3 SUM SUM + I- 4 I I مرحله به برو آنگاه I > = 1 اگر - 6 بده نمايش را SUM - 7 پايان - 8 ميدهد نمايش را 99 تا 1 اعداد الف- ميدهد. نمايش را 99 تا اعداد مجموع ب- ميدهد. نمايش 1 را تا 1 اعداد مجموع ج- ميدهد. نمايش را 99 تا 1 اعداد مجموع د- است درست زير الگوريتم حاصل با رابطه در گزينه كدام - 2 كن شروع - 1 I 2-2 بده نمايش را I - 3 K I 2-4 I I بده نمايش را K مرحله به برو درغيراينصورت 5 مرحله به برو آنگاه I > 1 اگر - 7 پايان و 6 و 4 و 2 ب- 4 و 4 و 4 و 4 و 2 الف- 4 و 4 و 4 و 2 د- 1 و 8 و 6 و 4 و 2 ج- چيست زير الگوريتم اجراي نتيجه - 3 شروع - 1 I 1-2 بده. نمايش را I آنگاه I Mod2= اگر

43 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه آنها برای مناسب الگوریتم طراحی و مسایل حل توانایی اول: کار واحد I I مرحله به برو آنگاه I >1 اگر - 5 پايان و صفر بين اعدد الف- 1 از كوچكتر فرد طبيعي اعداد ب- 1 از كوچكتر زوج طبيعي اعداد ج- 1 و 1 بين د اعدا د- است برخوردار باالتري اولويت از عملگر كدام د- Mod ج- / ب- + الف- چيست زير عبارت نتيجه باشد Z =27 و Y= -1 X = 5 كه صورتي در - 5 و( Z>=X ) < X )يا) Y<2 ) ) د- 1- ج- نادرست ب- درست الف- است كدام زير عبارت حاصل / د- 3 ج- 3/75 ب- الف- چيست زير عبارت حاصل Mod 3 5 د- 4 ج- 3 ب- 2 الف- چيست زير عبارت حاصل \ 4 6 د- 5 ج- 2 ب- 1 الف- مشخص مجهولها و دادهها بين ارتباط مسأله يك حل مراحل از مرحله كدام در - 9 ميشود مسأله تجزيه ب- مسأله شناخت الف- مسأله تحليل د- راهحل طراحي ج- چيست زير الگوريتم اجراي نتيجه - 10 شروع - 1 SUM و K

44 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: كن دريافت را N - 3 SUM SUM+ K آنگاه N Mod K = اگر - 4 K K مرحله به برو آنگاه K => اگرN - 6 بده نمايش را sum- 7 پايان - 8 N عدد مقسومعليههاي مجموع ب- K بر N تقسيم باقيمانده مجموع الف- N رب K عدد مقسومعليههاي مجموع د- K عدد مقسومعليههاي مجموع ج- 11 -The algorithm is the basic technique used to write a... for running in the computer. a- commands b- statments c- program d- step by step بزنيد. مثال يك آن براي و كنيد تعريف را الگوريتم 12- ببريد. نام را مسأله حل مراحل 13- ببريد. نام الگوريتم در را دستورالعملها انواع 14- دهيد. توضيح را خوب الگوريتم يك اصلي شرايط 15- دهيد. توضيح را آنها انواع و منطقي عملگرهاي كاربرد 16- دهيد. توضيح را آنها كاربرد و شرطي دستورالعملهاي 17- دهيد. توضيح را آنها كاربرد و تكرار دستورالعملهاي 18- دهيد. توضيح را مسائل حل و شناخت در مؤثر عوامل 19- چيست الگوريتم بودن جامع از منظور 20- دهيد. توضيح را مسأله يك دقيق شناخت در اصلي عوامل 21-34

45 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کار اول: توانایی حل مسایل و طراحی الگوریتم مناسب برای آنها آزمون عملي - 1 الگوريتمي بنويسيد كه مضارب كوچكتر از 1 عدد 5 را محاسبه كرده و نمايش دهد. - 2 الگوريتمي بنويسيد كه دما را برحسب فارنهايت دريافت كرده و معادل آنرا به 5 سانتيگراد نمايش دهد )با توجه به فرمول (32 F) (. C = 9-3 عدد طبيعي و دلخواه N را دريافت كرده و! N را محاسبه كرده و نمايش دهد. - 4 الگوريتمي بنويسيد كه حقوق يك كارمند را دريافت كرده و ميزان ماليات حقوق وي را مطابق جدول زير پس از محاسبه نمايش دهد. ماليات صفر 2 درصد حقوق 3 درصد حقوق 5 درصد حقوق حقوق كمتر از / / 4 ريال از / / 4 ريال تا 5/ 5 / ريال از 5/ 5 / ريال تا 7/ / ريال از 7/ / ريال به باال - 5 الگوريتمي بنويسيدكه نمرات 1 درس يك دانشآموز را دريافت كرده و معدل و ميانگين نمرات وي را نمايش دهد. - 6 الگوريتمي بنويسيد كه عدد طبيعي و دلخواه N را دريافت كرده و ارقام آنرا معكوس كند )مثال عدد 2485 به 5842 تبديل شود(. - 7 الگوريتمي بنويسيد كه مقدار زمان را براساس ثانيه دريافت كرده و مقدار ساعتها دقيقهها و ثانيههاي آنرا محاسبه كرده و نمايش دهد. - 8 الگوريتمي بنويسيد كه عدد طبيعي و دلخواه M را دريافت كرده و اعداد زوج كوچكتر از آن را نمايش دهد. - 9 الگوريتمي بنويسيد كه دو عدد طبيعي دلخواه را دريافت كرده و بزرگترين مقسومعليه مشترك آنها را محاسبه نموده و نمايش دهد. 35

46

47 واحد کاردوم هدف جزیی توانايي ترسیم فلوچارت هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: - 1 مفهوم فلوچارت را توضیح دهد. - 2 عالیم ترسیم فلوچارت و نحوه استفاده از آنها را توضیح دهد. - 3 بتواند انواع فلوچارت را برای مسایل مختلف طراحی کند. 37

48 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه کلیات در ارايه الگوريتم ها به منظور حل مسايل مختلف از جمالت فارسي يا ساير زبان ها به همراه تعدادي از عاليم قراردادي استفاده مي شود البته در الگوريتم هاي ساده و كوچك اين روش به خوبي شما را براي تبديل الگوريتم به برنامه موردنظر كمك مي كند اما با پيچيده شدن الگوريتم و افزايش دستورالعمل ها اين كار دشوار خواهد شد بنابراين الزم است از روش هاي مفيدتري استفاده كنيد يكي از اين روش ها ترسيم و طراحي فلوچارت است. فلوچارت )نمودار گردشي( در واقع مجموعهاي از اشكال و ترسيمات قراردادي است كه دستورالعمل ها و ترتيب اجراي آن ها را مطابق با الگوريتم موردنظر نمايش مي دهد. فلوچارت تمام ويژگي هاي الگوريتم را داشته عالوه بر اين امكان درك بهتر از نحوهاجراي دستورالعملها را نيز به وجود ميآورد. فلوچارت ها را مي توانيد پس از طراحي الگوريتم يا به طور مستقل پس از بررسي مسأله و انتخاب روش حل آن ترسيم كنيد. 2-1 عاليم و اشكال در فلوچارت براي تبديل يك الگوريتم به فلوچارت از عاليم قراردادي به جاي استفاده از جمالت استفاده مي شود و به جاي هر يك از دستورالعمل ها مي توانيد شكل و عالمت معادل آن را به كار بگيريد و براساس ترتيب اجراي دستورالعمل ها اين اشكال را با استفاده از خطوط فلش دار به يكديگر متصل نماييد. الزم به ذكر است كه تعداد فلش هايي كه مي تواند به هر عالمت وارد شود نامحدود است اما در تمام عاليم بجز عالمت شرط فقط يك فلش مي تواند خارج شود عاليم شروع و پايان براي دستورالعمل هاي شروع كن و پايان از عالمت بيضي به صورت زير استفاده كنيد: 38

49 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه فلوچارت ترسیم توانايي کاردوم: واحد ورودي عاليم و بگير دريافتكن مانند برايدستورالعمل هايورودي كنيد. استفاده متوازياالضالع شكل از مي توانيد آن نظاير مانند: انتساب عالمت عمل عالمت اين ميشود. استفاده انتساب عالمت از محاسباتي دستورالعمل هاي براي ميدهد. نشان متغير يك در را مقدار يك ذخيرهسازي ميشود. استفاده مستطيل شكل از منظور اين به مانند: شرط عالمت SUM SUM + M هاي صورت از يكي به و شود شرطي دستورالعمل هاي جايگزين مي تواند عالمت اين است. استفاده قابل بعدي 39

50 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه مانند: عاليم خروجي با توجه به اينکه اطالعات خروجي مي توانند به چاپگر يا صفحه نمايش ارسال شوند از اين عاليم استفاده مي شود: به عالوه مي توانيداز عالمت متوازي االضالعبه جاي دستورالعمل خروجينيزاستفاده كنيد. 40

51 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوم: توانايي ترسیم فلوچارت عالمت اتصال گاهي اوقات ممكن است فلوچارت به اندازه اي بزرگ باشد كه در يک صفحه كاغذ قرار نگيرد در چنين شرايطي مي توانيد از عالمت اتصال استفاده كنيد )شكل الف( و ادامه فلوچارت را در صفحه ديگري كه آن هم با يک عالمت اتصال ديگر شروع مي شود )شكل ب( ادامه دهيد و در داخل هر دو عالمت يک حرف از حروف الفبا يا يک عدد مثبت قرار دهيد. مثال 1: الگوريتم و فلوچارتي بنويسيد كه وزن و بهاي واحد يک كاال را دريافت كرده و بهاي كل آن را محاسبه كند. - 1 شروع - 2 W را دريافت كن - 3 P را دريافت كن - 4 W P را نمايش بده - 5 پايان مثال 2: الگوريتم و فلوچارتي بنويسيد كه حجم يک مكعب را محاسبه كند. - 1 شروع - 2 L و W و H را دريافت كن V H W L - 3 -V 4 را نمايش بده - 5 پايان فلوچارت اين الگوريتم به اين صورت خواهد بود: 41

52 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تمرين: فلوچارتي رسم كنيد كه مساحت و محيط يک مربع دلخواه را محاسبه كند. مثال 3: الگوريتم و فلوچارتي بنويسيد كه دو عدد را دريافت كرده و حاصل تفريق جمع تقسيم و ضرب آنها را نمايش دهد. - 1 شروع - 2 M و N را دريافت كن - 3 N M - را نمايش بده - 4 N M + را نمايش بده - 5 N M را نمايش بده - 6 N M / را نمايش بده - 7 پايان تمرين: فلوچارتي رسم كنيد كه ميانگين سه عدد دلخواه را محاسبه كند. مثال 4: الگوريتم و فلوچارتي بنويسيد كه عدد طبيعي و دلخواه M را دريافت كرده و زوج يا فرد بودن آن را معين كند. - 1 شروع - 2 M را دريافت كن 3- اگر M MOD 2 = آنگاه «عدد زوج است» را نمايش بده در غيراينصورت «عدد فرد است» را نمايش بده - 4 پايان فلوچارت الگوريتم قبل به اين صورت خواهد بود: 42

53 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوم: توانايي ترسیم فلوچارت تمرين: فلوچارتي رسم كنيد كه تعدادي عدد دلخواه را دريافت كرده و بزرگ ترين مقدار را محاسبه كند و نمايش دهد. مثال : 5 فلوچارتي بنويسيد كه با توجه به شرايط زير هزينه پاركينگ را براي يک اتومبيل دلخواه محاسبه نموده و نمايش دهد. الف- هزينه پاركينگ تا سه ساعت از زمان ورود 1 ريال / ب- هزينه پاركينگ بعد از سه ساعت هر ساعت /5 ريال 43

54 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تمرين: فلوچارتي رسم كنيد كه ميانگين دماي يک شهر را در طول يک هفته محاسبه كرده و نمايش دهد. مثال 6: فلوچارتي رسم كنيد كه اعداد طبيعي كوچک تر از 5 را نمايش دهد. 44

55 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوم: توانايي ترسیم فلوچارت تمرين: فلوچارتي رسم كنيد كه اعداد زوج كوچکتر يا مساوي عدد طبيعي و دلخواه N را نمايش دهد. مثال 7: فلوچارتي رسم كنيد كه سه عدد دلخواه را دريافت كرده و معين كند سه عدد مي توانند اضالع يک مثلث باشد )شرط مثلث بودن سه عدد اين است كه: )C<=A+B ( يا B<=A+C يا A<= B+C. تمرين: فلوچارتي رسم كنيد كه دو عدد را دريافت كرده و بخش پذيري عدد اول را بر عدد دوم بررسي كند. 45

56 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه مثال : 8 الگوريتمو فلوچارتيبنويسيد كهعددطبيعيودلخواهm رادريافتكردهو مقسومعليههاي آن را نمايش دهد. - 1 شروع - 2 M را دريافت كن K اگر M Mod K = آنگاه K را نمايش بده k K اگر K < = M آنگاه برو به مرحله 4-7 پايان تمرين: فلوچارتي رسم كنيد كه دو آرايه يک بعدي را دريافت كرده و حاصل جمع آن ها را در آرايه يک بعدي جداگانه اي ذخيره نموده و نمايش دهد. 46

57 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه فلوچارت ترسیم توانايي کاردوم: واحد Learn in English Flowchart Symbols Flowchrts use special shapes to represent different types of actions or steps in aprocess. Lines and arrows show the sequence of the steps and therelationships among them. Flowcharts Shapes Decision Flowchart Lines and arrows Process Relationship Sequence Step واژهنامه شرطي و دستورالعملها نوع كه هندسي اشكال از مجموعهاي ميدهد. نمايش را آنها اجراي ترتيب فلشدار خطوط پردازش رابطه ترتيب مرحله 47

58 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: نظري آزمون است درست زير فلوچارت اجراي با رابطه در گزينه كدام از كوچكتر زوج اعداد نمايش الف- 6 مساوي زوج اعداد نمايش ب- 6 مساوي يا كوچكتر زوج اعداد مجموع نمايش ج- 6 از كوچكتر زوج اعداد مجموع د- چيست زير فلوچارت عملكرد - 2 عدد يك قرينه نمايش الف- عدد يك قدرمطلق نمايش ب- شده گرد صورت به عدد نمايش ج- 1- در دلخواه عدد هر ضرب حاصل نمايش د- 48

59 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه فلوچارت ترسیم توانايي کاردوم: واحد چيست روبهرو فلوچارت خروجي - 3 N و M بين اعداد الف- N و M بين اعداد مجموع ب- N در M ضرب حاصل ج- )N>M( ها آن بين در موجود اعداد و N و M مجموع د- چيست فلوچارت اين خروجي - 4 Y و X حاصلجمع الف- Y در X حاصلضرب ب- Y و X بين اعداد مجموع ج- X بر Y تقسيم باقيمانده د- 49

60 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: دهد مي انجام را عملي چه روبهرو فلوچارت - 5 N از كوچكتر اعداد ضرب حاصل محاسبه الف- N از كوچكتر اعداد جمع حاصل محاسبه ب- N از كوچكتر اعداد تفريق حاصل محاسبه ج- N از كوچكتر اعداد تقسيم حاصل محاسبه د- ميدهد نمايش فلوچارت در شرط دستورالعمل براي را مناسب شكل گزينه كدام ب - الف - د - ج 50 كند. استفاده... يك از حداكثر ميتواند فلوچارت يك - 7 خروجي د- پاياني نقطه ج- انتساب ب- شروع نقطه الف- ميدهد نمايش را انتساب عمل براي مناسب شكل گزينه كدام - 8 X+ Y Z د- Z X+ Y ج- X + Y= Z ب- Z = X+ Y الف-

61 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوم: توانايي ترسیم فلوچارت نشانه چيست - 9 در فلوچارت شكل ب- محاسبه الف- پايان د- خروجي ج- اتصال 10 - The flowcharts use... to draw graphical representation of a process. a- lines b- shapes c- rectangles d- circles & rectangles - 11 مفهوم و كاربرد فلوچارت را توضيح دهيد شكل كلي نحوه استفاده از حلقه در فلوچارت را توضيح دهيد شكلي را كه براي شروع و پايان فلوچارت استفاده ميشود توضيح دهيد اشكالي را كه براي ورودي و خروجي مورد استفاده قرار ميگيرند توضيح دهيد شكلي را كه براي استفاده از شرط در فلوچارت استفاده ميشود توضيح دهيد. 51

62 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آزمون عملي - 1 فلوچارتي رسم كنيد كه مضارب عدد 5 را كه كوچكتر از 5 هستند محاسبه كرده و نمايش دهد. - 2 فلوچارتي رسم كنيد كه اعداد دو رقمي زوج را نمايش دهد. - 3 فلوچارتيرسم كنيد كه ميزان حافظه كامپيوتر را براساس مگابايت دريافت كرده و براساس واحدهاي ديگر نمايش دهد. - 4 فلوچارتي رسم كنيد كه ريشه معادله درجه اول يك مجهولي را محاسبه نموده ax + b =c و نمايش دهد. - 5 فلوچارتي رسم كنيد كه ساعت كار و دستمزد هر ساعت كار يك كارگر را دريافت كرده و حقوق وي را محاسبه كند. - 6 فلوچارتي رسم كنيد كه بتواند با شرايط زير هزينه استفاده از اينترنت را براي يك مشترك در مدت يك هفته محاسبه كرده و نمايش دهد. الف- هزينه 5 ساعت اول هر ارتباط 2 / ريال ب- از 5 ساعت به باال به ازاي هر ساعت 2/5 ريال 7 -فلوچارتيرسمكنيدكهدوعددرادريافتكردهوعدداولرابهتوانعدددومبرساند. 52

63 واحد کار سوم هدف جزیی هدفهای رفتاری توانايي درك و شناخت زبان برنامهنويسي ويژوالبيسيك و ايجاد يك برنامه كاربردي پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: - 1 زبان برنامهنويسي را تعريف كند و انواع آنرا توضيح دهد. 2 -روش برنامهنويسي ساخت يافته و شئگرا را توضيح دهد. - 3 زبانهايبرنامهنويسيازنوع مفسر و مترجم را توضيح داده و تفاوت آنها رابيان كند. - 4 زبان برنامهنويسي ويژوالبيسيك را توضيح داده و ويژگيهاي آنرا بيان كند. - 5 انواع نگارشهاي زبان برنامهنويسي ويژوالبيسيك را توضيح دهد. - 6 اجزاي تشكيلدهنده يك برنامه در ويژوالبيسيك را بيان كند. - 7 وارد محيط ويژوالبيسيك شده با اجزاي آن كار كند. - 8 پروژه و فرمهاي مورد نياز خود را ايجاد و طراحي نمايد. - 9 خصوصيات مربوط به فرم مانند Name و Caption را توضيح داده و با كنترلهاي برچسب و كادر متن كار كند با پنجره كدنويسي كار كرده و مفهوم رويداد را بيان كند خصوصيات فرم و كنترلها را با استفاده از كدنويسي تغيير دهد با رويداد Load فرم و رويدادChange كنترل كادر متن كار كند فرم و پروژه را ذخيره كرده و براي پروژه نامي تعيين كند. 53

64 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: کلیات از استفاده براي است شده تشكيل نرمافزار و سختافزار اصلي جزء دو از كامپيوتر نتيجه و شود داده آن به پردازش براي دستورالعملها و دادهها تا است الزم كامپيوتر هر سختافزار با بتواند كاربر ديگر عبارت به يا شود ارايه اطالعات يعني دادهها پردازش در اصلي اجزاي از يكي عنوان به نرمافزار نقش كه اينجاست در كند برقرار ارتباط طراحي و توليد تاريخچه و تعريف با كار واحد اين در است. مشاهده قابل كامال كامپيوتر شد. خواهيد آشنا برنامهنويسي زبانهاي و برنامهنويس وسيله به كه هستند دستورالعملها و دادهها از مجموعهاي نرمافزارها نرمافزارها ميكنند. استفاده قابل را سختافزار و ميشوند نوشته مشخص قواعد براساس را نرمافزارها انواع زير شكل در ميشوند تقسيم كاربردي و سيستمي كلي دسته دو به ميكنيد: مشاهده نرمافزار انواع سیستم کاربردی عامل سیستمهای برنامهنویسی زبانهای سودمند برنامههای برنامهنويسي زبانهاي تقسيمبندي 3-1 زبانبرنامهنويسي شده تعريف دستورالعملهاي و قواعد از مجموعهاي به ميگويند. كرد: تقسيمبندي زير صورت به را برنامهنويسي زبانهاي ميتوان كلي طور به نویسی برنامه زبان انواع پایین سطح زبانهای میانی سطح زبانهای باال سطح زبانهای ماشین اسمبلی C ++ و C فرتون بیسیک پاسکال 54

65 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه کاربردی برنامه یک ایجاد و بیسیک ویژوال برنامهنویسی زبان شناخت و درک توانایی کارسوم: واحد سه به دارند 1 و همان يا ماشين زبان به كه نزديكي به توجه با برنامهنويسي زبانهاي ظهور با و هستند نزديك ماشين زبان به بيشتر پايين سطح زبانهاي ميشوند تقسيم دسته برنامهنويسي كه گرفت قرار استفاده مورد برنامهنويسي زبان اين كامپيوترها از نسل اولين زبان نام به ديگري زبان كامپيوترها دوم نسل ساخت با است. مشكلي كار نيز آن با سادهتر آن از استفاده ولي بود نزديك ماشين زبان به نيز زبان اين كه آمد وجود به اسمبلي سطح زبانهاي كامپيوترها از سوم نسل ارايه و دوم نسل از پس است. ماشين زبان از و بوده نزديكتر نوشتاري و محاورهاي زبانهاي به كه آمدند وجود به باال سطح و مياني تاكنون زمان آن از ميباشد. پايين سطح زبانهاي از راحتتر مراتب به آنها با برنامهنويسي برنامهها تهيه براي و است كرده زيادي تغييرات برنامهنويسي زبانهاي كميت و كيفيت ميشود. استفاده متفاوتي برنامهنويسي زبانهاي مختلف كاربردهاي و محيطها در باال سطح برنامهنويسي زبانهاي رد و باالست سطح اولينزبانهايبرنامهنويسي از يكي يفرترن: زبانبرنامهنويس ميشود. استفاده آن از است محاسبات در باال دقت به نياز كه علمي برنامهنويسيهاي شده طراحي ويندوز عامل سيستم تحت برنامهنويسي براي نيز نسخههايي زبان اين از است. ويژگي با باال سطح برنامهنويسي زبان يك زبان اين كال: پاس ي برنامهنويس زبان ميگيرد. قرار استفاده مورد تجاري و علمي برنامهنويسيهاي براي و است يافته ساخت است. ويندوز محيط براي برنامهنويسي ويژگيهاي داراي دلفي نام با آن پيشرفته نسخه ويژگي با باال سطح برنامهنويسي زبانهاي نوع از نيز زبان اين C: ي برنامهنويس زبان به است. برخوردار برنامهنويسي مختلف سطوح در بااليي توانايي از و است يافته ساخت نرمافزاري نوع هر ميتوان آن با و است سيستم برنامهنويسي زبان زبان اين ديگر عبارت كرد. توليد و طراحي را قابليت داراي C زبان ويژگيهاي بر عالوه ++C نام با زبان اين از ديگري نسخه و Visual ++C نام با زبان اين از ديگري نسخههاي ميباشد. نيز شئگرا برنامهنويسي شدهاند. ارايه و طراحي ويندوز محيط در برنامهنويسي براي C#.Net 55

66 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: و توسعه حاصل واقع در ويژوالبيسيك زبان ويژوالبيسيك: ي برنامهنويس زبان 2 موث دارت كالج در 1964 سال حدود در اوليه بيسيك است. 1 بيسيک زبان ارتقاي بين برنامهنويسي گسترش هدف با 4 كمنی جان و 3 كورتز توماس آقايان وسيله به و متعدد نسخههاي زمان آن از شد. ساخته و طراحي دانشجويان و دانشآموزان افزايش در سعي همواره و شد ارايه QUICK BASIC GWBASIC مانند آن از متفاوتي 95 ويندوز عامل سيستم ارايه با است. شده باال سطح زبان يك عنوان به آن قابليتهاي عاملهاي سيستم در استفاده براي قدرتمند و آسان برنامهنويسي زبان يك فقدان 98 و ويژوالبيسيك اول نسخه 1991 سال در مايكروسافت رو اين از بود مشهود كامال مذكور ويندوز در برنامهنويسي براي حرفهاي و قدرتمند برنامهنويسي زبان يك امكانات با را مايكروسافت جديد عامل سيستم در استفاده براي آن يافته تكامل نسخه آخرين كرد. ارايه نحوه مهارتي پيمانه اين در است. شده ارايه و طراحي VISUAL BASIC NET نام با نيز زا قبل اما گرفت فراخواهيد را 6 نسخه ويژوالبيسيك برنامهنويسي زبان با برنامهسازي مهمترين از يكي پرداخت. خواهيم برنامهنويسي زبان اين ويژگيهاي بررسي به چيز هر كاربر گرافيكي رابط است. آن گرافيكي رابط ويژوالبيسيك برنامهنويسي زبان ويژگيهاي برنامهنويسي زمينه در گرافيكي رابطهاي كارآمدترين از يكي ويژوالبيسيك در 5 )GUI( ايجاد را ويندوز عامل سيستم تحت برنامههاي آساني به ميتوان آن وسيله به كه است صورت به را برنامه اينكه يا كرد مشاهده را آن ظاهري شكل اجرا از قبل حتي و كرده بررسيكرد. را برنامه عكسالعمل و نموده اجرا خط به خط صورت به يعني مفسر يك توسعه است. ويژوالبيسيك گرافيكي رابط متعدد ويژگيهاي از گوشهاي موارد اين البته سريع توسعه از منظور است. زبان اين ويژگيهاي از ديگر يكي 6 ) RAD( برنامه سريع ويژوالبيسيك در برنامهها توليد و طراحي كه است اين ويژوالبيسيك در RAD يا برنامه نرمافزار توليد هزينههاي بنابراين ميشود انجام سرعت به مناسب ابزارهاي وجود دليل به مييابد. كاهش توجهي قابل طور به واتفاقات 7 رويدادها مديريت ويژگي ويژگيديگرزبانبرنامهنويسيويژوالبيسيك است. رويدادگر برنامهنويسي زبانهاي از يكي میباشد.ويژوالبيسيك 1 -BASIC (Beginner's All purpose Symbolic Instruction Code) 2 -Darth Mouth 3 -Thomas Kurtz 4 - John Kemeny 5 -Graphical User Interface 6 - Rapid Application Development 7- Event Handling 56

67 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه کاربردی برنامه یک ایجاد و بیسیک ویژوال برنامهنویسی زبان شناخت و درک توانایی کارسوم: واحد ار الزم دستورات قبل از ميتواند برنامهنويس كه است اين در دارند زبانها اينگونه مزيتيكه كند. دهد برنامهسازي رخ كاربر توسط هنگاماجرايبرنامه در ممكناست كه رويدادهايي براي برنامهنويس به IDE محيط است. زبان اين مهم ويژگيهاي از يكي نيز IDE 1 محيط وجود اجرا و خطايابي توليد طراحي سرعت و سهولت به را خود برنامههاي تا ميدهد اجازه گرافيكي رابط در يكپارچه صورت به كه متعددي ابزارهاي وسيله به امكانات اين كند. است. دسترسي قابل است شده داده قرار ويژوالبيسيك وسيله به ويندوز كاربردي برنامههاي به دسترسي شد گفته كه مواردي بر عالوه هستند ويندوز داخلي توابع API توابع است. زبان اين ويژگيهاي از ديگر يكي توابع داخلي امكانات به بتواند خاصي فرامين از استفاده با تا ميسازد قادر را ويژوالبيسيك كه نياز صورت در تا ميسازد قادر نيز را برنامهنويس و كند پيدا دستيابي ويندوز در موجود كند. ايجاد نظر مورد تواناييهاي با را برنامههايي توابع اين از استفاده با قبلي نسخههاي ساير و ويژوالبيسيك بين شگرفي تفاوت كه جنبههايي از ديگر يكي ويژگي اين شئگراست. بهروش برنامهنويسي از استفاده امكان ميكند ايجاد بيسيك و تعريف با رابطه در برنامهنويس خواستههاي بتواند ويژوالبيسيك تا ميشود سبب ميشود برنامهنويسي شدن راحتتر سبب كه را جديد كالسهاي و اشيا كارگيري به بخشهاي به رويهها از استفاده با برنامهها ساختيافته برنامهنويسي در كند. برطرف شئگرا برنامهنويسي در ميگيرند. قرار هم از مجزا صورت به كه ميشوند تقسيم مختلف هب واحدي عنصر در را دادهها و دستورالعملها از مجموعهاي ميتوان اشيا از استفاده با كرد. استفاده مربوطه شئ بخشهاي از يك هر از نظر مورد زمان در و داد قرار شئ نام نحوه ميگيرد قرار نظر مد برنامهنويسي زبان يك با كار نحوه در كه ديگري ويژگي اجراي يا طراحي هنگام در كه است خطاهايي و اشتباهات با برخورد و تصحيح كشف فشك زمينه در مناسبي بسيار امكانات اينكه بر عالوه ويژوالبيسيك ميدهد. رخ برنامهها ميدهد امكان وي به ميگذارد برنامهنويس اختيار در برنامه منطقي و نوشتاري خطاهاي تشخيص اجرا هنگام در نيز را بيني غيرقابلپيش خطاهاي مناسب فرامين از استفاده با دهد. قرار آنان اختيار در كاربران راهنمايي براي را مناسب راهحل ارايه نحوه و داده استفاده امكان آموزشي نگارش ويژگيهاي بر عالوه ويژوالبيسيك حرفهاي نگارش همچنين و ActiveX كنترلهاي طراحي اطالعاتي بانكهاي به مربوط كنترلهاي از Integrated Development Environment

68 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: برنامهنويسان اختيار در نيز را برنامهنويسي امر تسهيل براي مناسب ويزاردهاي بهكارگيري اطالعاتي بانكهاي با ارتباط برقراري شبكه تحت برنامهنويسي امكان آن در و ميدهد قرار دارد. را برنامه یک تشکیلدهنده اجزای 3-2 تشكيل اجزاي بدانيد است الزم كاربردي برنامه يك ايجاد و طراحي از قبل كه آنچه كاربردي برنامه يك دهنده تشكيل جزء اصليترين واقع در است. برنامه يك دهنده ماژول فرمها نظير كوچكتري اجزاي از كه است )Project( پروژه ويژوالبيسيك در رد كه هستند پنجرهها همان واقع در فرمها ميشوند. تشكيل كالس ماژول و كد مربوط اطالعات و ميروند شمار به برنامه يك اصلي اجزاي از ويندوز عامل سيستم شكل در ميكنند. نگهداري را آن در موجود هاي 1 كنترل و برنامه ظاهري شكل به ميكنيد. مشاهده آن روي موجود كنترلهاي همراه به را حساب ماشين برنامه پنجره 3-1 در موردنظر تنظيمات و عمليات انجام برنامه عملكرد هدايت منظور به كنترلها از ليست كادرهاي متن كادرهاي فرمان دكمههاي مانند عناصري ميشود استفاده برنامهها قطعاتي كد ماژولهاي هستند. كنترل از نمونههايي عالمت كادرهاي و انتخاب دكمههاي ماژولهاي دارد. قرار آنها در برنامه نياز مورد دستورالعملهاي كه هستند كد شامل شئگرا برنامهنويسي در آ نها از و هستند كد قطعات شامل كد ماژولهاي مانند نيز كالس ميشود. استفاده كالسها انواع تعريف براي 1 -Control 3-1 شكل 58

69 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارسوم: توانايی درک و شناخت زبان برنامه نويسی ويژوال بيسيك و ايجاد يك برنامه كاربردی نكتهيك برنامه كاربردي ميتواند از چند پروژه تشكيل شود. 3-3 نحوهاجرايبرنامهويژوالبيسيكومعرفياجزايموجوددرا ن قبل از هرگونه اقدام براي طراحي يك پروژه الزم است نحوه اجراي برنامه ويژوال بيسيك و اجزاي موجود در پنجره آن را فرا بگيريد به اين منظور مراحل زير را به ترتيب اجرا كنيد: براي اجراي برنامه ويژوال بيسيك از طريق منوي Start به گروه برنامه ها All Programs برويد و در آنجا گزينه Microsoft Visual Studio 6.0 را انتخاب نموده و سپس از منويي كه ظاهر مي شود روي ميانبر Microsoft Visual Basic 6.0 كليك كنيد. پنجره اصلي برنامه به همراه كادر محاوره New Project نمايش داده خواهد شد )شكل 3-2(. 59 شكل 3-2 در كادرمحاوره New Project سه زبانه به همراه سه دكمه و يك كادر ليست مشاهده مي شود. در كادر محاوره New Project روي زبانه New كليك كنيد و در كادر ليست

70 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه موجود در آن آيكن Standard EXE را انتخاب کنيد سپس روي دكمه Open كليك كنيد )شكل 3-2(. پروژههايي كه از نوع Standard EXE طراحي ميشوند به شما اجازه ميدهند كه از پروژه ايجاد شده فايلهاي اجرايي مستقل براي اجرا در محيط ويندوز طراحي كنيد كه به آنها Application نيز ميگويند. پس از انجام مرحله دوم پنجره ويژوالبيسيك مطابق شكل 3-3 نمايش داده ميشود. 60 شكل 3-3 پنجره طراحي برنامه در حالت Standard EXE همانطور كه در شكل 3-3 مشاهده ميكنيد در پنجره ويژوالبيسيك اجزا و بخشهاي مختلفي وجود دارد. پنجره طراحي فرم: به وسيله پنجره طراحي فرم كه در قسمت مركزي پنجره ويژوالبيسيك قرار دارد ميتوان تغييرات الزم را روي فرم برنامه كه در داخل پنجره طراحي است اعمال كرد. پنجره طراحي فرم را ميتوانيد با استفاده از دكمه View Object در پنجره پروژه فشردن كليد تركيبي Shift+F7 يا انتخاب گزينه Object از منوي View فعال كنيد. پنجره پروژه) Explorer :)Project در قسمت باال و سمت راست پنجره ويژوالبيسيك پنجره يا مرورگر پروژه قرار دارد كه اجزاي تشكيل دهنده برنامه مانند پروژهها و فرمها

71 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه کاربردی برنامه یک ایجاد و بیسیک ویژوال برنامهنویسی زبان شناخت و درک توانایی کارسوم: واحد عالوه برنامهنويس بخش اين از استفاده با ميدهد. نمايش درختي ساختار صورت به را ويرايش دسترسي توانايي خود برنامه دهنده تشكيل اجزاي از كلي نماي مشاهده بر از استفاده با ميتوانيد را پروژه پنجره دارد. نيز را اجزا از يك هر حذف يا ذخيرهسازي انتخاب يا Ctrl+R تركيبي كليد فشردن استاندارد ابزار نوار در Project Explorer دكمه كنيد. فعال View منوي از Project Explorer گزينه خصوصيات پنجره پروژه پنجره زير در :)Properties Window( خصوصيات پنجره و فرمها به مربوط ويژگيهاي و خصوصيات ميتوانيد آن وسيله به كه است گرفته قرار كنيد. تنظيم و مشاهده را كنترلها فرم ويژگي اين تنظيم با ميتوانيد كه است كنترل يا فرم از ويژگي يك خصوصيت فرم يك ويژگيهاي و خصوصيات كنيد. استفاده و طراحي خود ميل مطابق را كنترل و وظيفهاي به توجه با را عددي غير و عددي دادههاي از مختلفي انواع ميتوانند كنترل يا كنند. كسب دارند عهده به كه كنترل ابعاد زمينه رنگ عناوين رنگ مثل ظاهري شكل ميتوانند خصوصيات اين يا بودن فعال مثل فرم يا كنترل عملكرد روي ميتوانند همچنين كنند. تنظيم را فرم يا كامل طور به آنها از توجهي قابل تعداد با مرور به كه بگذارند تأثير آنها شدن مخفي شد. خواهيد آشنا نوار در Properties دكمهWindow از استفاده با ميتوانيد را خصوصيات پنجره فعال View منوي از Properties Window گزينه انتخاب يا F4 كليد فشردن استاندارد ابزار كنيد. نحوه ميتوانيد Categorized و Alphabetic دكمههاي از استفاده با خصوصيات پنجره در 3-4(. )شكل كنيد تعيين موضوعي يا الفبايي بهصورت را خصوصيات اسامي نمايش خصوصيات پنجره پاييني قسمت در ميكنيد انتخاب را خصوصيت يك وقتي ميشود. ارايه شده انتخاب خصوصيت با رابطه در خالصهاي توضيحات 61

72 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شكل 3-4 پنجره تعیین موقعیت Window( )Form Layout : به طور معمول در زير پنجره خصوصيات قرار دارد و موقعيت نمايش پنجره برنامه را روي دسكتاپ و در زمان اجرا نشان ميدهد به عالوه با استفاده از اين پنجره ميتوانيد موقعيت پنجرههاي برنامه را روي دسكتاپ تنظيم كنيد. پنجره تعيين موقعيت را ميتوانيد با استفاده از دكمه Form Layout در نوار ابزار استاندارد يا انتخاب گزينه Form Layout Window از منوي View فعال كنيد. جعبهابزار )Toolbox( : در سمت چپ پنجره ويژوالبيسيك و طراحي فرم جعبه ابزار )Toolbox( حاوي آيكن كنترلهاي مختلف وجود دارد. جعبه ابزار را ميتوانيد با استفاده از دكمهToolbox در نوار ابزار استاندارد يا انتخاب گزينه Toolbox از منوي View فعال كنيد. مثال 1: يك پروژه از نوع Standard EXE به همراه يك فرم مطابق شكل 3-5 و جدول 3-1 طراحي كنيد كه يك پنجره معمولي را روي دسكتاپ نمايش دهد. 62

73 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسوم: توانایی درک و شناخت زبان برنامهنویسی ویژوال بیسیک و ایجاد یک برنامه کاربردی جدول 3-1 مقدار خصوصيت Height 36 Width 525 شكل برنامه ويژوالبيسيك را اجرا كنيد و در كادرمحاوره New Project آيكن Standard EXE را انتخاب كنيد سپس روي دكمه Open كليك كنيد. - 2 در پنجره پروژه روي عالمت در كنار پوشه Forms كليك كنيد تا آيكن فرم برنامه نمايان شود سپس روي آيكن فرم در پنجره پروژه دابل كليك كنيد تا پنجره طراحي فرم نمايش داده شود. - 3 براي تنظيم عرض و ارتفاع فرم به پنجره خصوصيات برويد و در اين پنجره خصوصيات Height را پيدا كنيد و پس از كليك روي نام خصوصيت مقدار 36 را تايپ كنيد به همين صورت مقدار خصوصيت Width را روي 525 تنظيم كنيد )جدول 3-1(. البته براي تنظيم عرض و ارتفاع فرم ميتوانيد از عمل Drag روي گيرههاي مربعي شكل كه در اطراف فرم قرار دارند استفاده كنيد و ابعاد فرم را در انتهاي نوار ابزار استاندارد مشاهده كنيد )شكل 3-6(. 63 شكل 3-6

74 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 4 براي ذخيرهسازي فرم در نوار منوي پنجره ويژوالبيسيك ابتدا روي منوي Save File As... كليك كنيد. كادرمحاوره Save Form1 As... و سپس گزينه File براي ذخيرهسازي فرم نمايش دادهميشود. همانطوركه در اين كادرمحاوره مشاهده ميكنيد پسوند فايل فرم frm است. فرم را با نام Main در پوشهاي با نام MyPrograms روي دسكتاپ )يا هر مسير دلخواهي كه مايل هستيد( ذخيره كنيد. البته ميتوانيد فرمها را با يكي از اين روشها نيز ذخيره كنيد: الف-درپنجرهپروژه آيكنفرمراانتخابكردهورويآنكليكراستكنيد سپسگزينه As... Save Form1 را برگزينيد )شكل.)3-7 شكل 3-7 ب- گزينه Save Form1 را از منوي File انتخابكنيد يا از كليد تركيبي Ctrl+S استفاده كنيد. 5- در اين مرحله نامي براي پروژه تعيين كنيد. براي تعيين نام پروژه در پنجره برنامه ويژوالبيسيك روي منوي Project كليك كنيد و سپس گزينه Properties... Project را برگزينيد تا كادر محاوره Project Properties مطابق شكل 3-8 نمايش داده شود. هر پروژه يك خصوصيت Name دارد كه به وسيله آن امكان دسترسي و شناسايي پروژه در زمان كدنويسي فراهم ميشود. براي تعيين يك عبارت براي نام پروژه ميتوانيد از حروف 64

75 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسوم: توانایی درک و شناخت زبان برنامهنویسی ویژوال بیسیک و ایجاد یک برنامه کاربردی الفباي انگليسي ارقام صفر تا 9 و كاراكتر زيرخط استفاده كنيد كه بايد با يك كاراكتر حرفي آغاز شود زيرا استفاده از كاراكترهاي نقطه فضاي خالي و كاراكتر تفريق )-( مجاز نيست. - 6 در اين كادر محاوره روي زبانه General كليك كنيد سپس در كادر متن Project Name عبارت FirstProgram را تايپ كنيد و در پايان روي دكمه OK كليك كنيد. شكل برايذخيرهسازي پروژه از منوي File گزينه As... Save Project را برگزينيد. - 8 با استفاده از كادر محاوره As Save Project فايل پروژهرا با نام MyProject در پوشه MyPrograms روي دسكتاپ يا هر مسير دلخواهي ذخيره كنيد. همانطوركه در اين كادر محاوره ميبينيد پسوند فايلهاي پروژه vbp است. فايل پروژه اطالعات اجزاي تشكيلدهنده پروژه را روي ديسك با نام فايلي كه تعيين ميشود نگهداري ميكند. زمانيكه الزم باشد پروژه مورد استفاده قرار بگيرد با انتخاب و بازكردن فايل پروژه فايلهاي مربوط به فرمها و ماژولهاي تشكيلدهنده پروژه نيز بهطور خودكار باز ميشوند. البته ميتوانيد پروژهها را با يكي از اين روشها نيز ذخيره كنيد: الف- در پنجره پروژه آيكن پروژه راانتخاب كرده و روي آن كليك راست كنيد سپس گزينه Save Project را برگزينيد. ب- گزينه Save Project را از منوي File انتخاب كنيد. ج- روي دكمه Save در نوار ابزار استاندارد كليك كنيد.

76 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه نكتهدر زمان ذخيره كردن پروژه و در صورتي كه فرم را قبال ذخيره نكرده باشيد ابتدا كادر محاوره ذخيرهسازي فرم نمايش داده ميشود. - 9 تا اين مرحله توانستيد يك پروژه را به همراه يك فرم ساده ايجاد كنيد. اكنون پنجره ويژوال بيسيك را با استفاده از دكمه Close از منوي File نيز انتخاب كنيد. ببنديد. البته مي توانيد گزينه Exit را تمرين: يك پروژه از نوع Standard EXE را كه شامل يك فرم مطابق جدول 3-2 باشد طراحي كنيد سپس فرم و پروژه را به ترتيب با نامهاي Myform و Test ذخيره كنيد. در انتها نام پروژه را First Project بگذاريد. جدول 3-2 خصوصیات فرم مقدار نام خصوصيت Height Left Top مثال 2: اكنون عبارت VISUAL BASIC 6.0 را روي فرمي كه در مثال قبل ايجاد كرديد مطابق شكل 3-9 و جدول 3-3 نمايش دهيد. به اين منظور مراحل بعد را به جدول 3-3 ترتيب انجام دهيد: Label lblmessage Width Caption First Form كنترل خصوصیت Name Height Left Top Width Caption VISUAL BASIC 6,0 Alignment 2-Center شكل

77 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارسوم: توانايی درک و شناخت زبان برنامه نويسی ويژوال بيسيك و ايجاد يك برنامه كاربردی - 1 براي نمايش يك پيام روي فرم ميتوانيد از كنترل برچسب )Label( استفاده كنيد. براي قراردادن كنترل روي فرم ابتدا روي آيكن در جعبه ابزار كليك كنيد سپس اشارهگر ماوس را روي فرم قرار داده و با استفاده از عمل درگ كنترل را روي فرم قرار دهيد. البته براي قرار دادن يك كنترل روي فرم ميتوانيد در جعبه ابزار روي آيكن كنترل موردنظر دابلكليك كنيد سپس در پنجره خصوصيات و با استفاده از خصوصيات Width و Height عرض و ارتفاع كنترل را روي مقادير 2655 و 615 تنظيم كنيد )شكل 3-10(. هنگام ايجاد كنترل ميتوانيد عرض ارتفاع و مختصات محل قرارگيري كنترل را در انتهاي نوار ابزار استاندارد مشاهده كنيد. در ضمن ميتوانيد عرض و ارتفاع كنترل را با استفاده از عمل Drag روي گيرههاي مربعي اطراف كنترل نيز تنظيم كنيد. نكتهبراي قرار دادن كنترلها روي فرم ميتوانيد روي آيكن كنترل مورد نظر در جعبه ابزار ويژوالبيسيك دابل كليك كنيد. شكل 3-10 نكته براي تنظيم محل قرارگرفتن يك كنترل مي توانيد از خصوصيات Top و Left در پنجره خصوصيات استفاده كنيد. 67

78 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 2 در پنجره خصوصيات روي خصوصيت Name كنترل برچسب كليك كنيد و در كادر متن روبه روي آن عبارت lblmessage را به عنوان نام كنترل برچسب تايپ كنيد و سپس كليد Enter را بفشاريد )شكل 3-11(. نكته توصيه ميشود در نامگذاري كنترل برچسب از پيشوند lbl استفاده كنيد. - 3 در پنجره خصوصيات روي خصوصيت Caption كنترل برچسب كليك كرده و در كادر متن روبه روي آن عبارت VISUAL BASIC 6.0 را تايپ كنيد همان طور كه مي بينيد خصوصيت Caption اين كنترل عبارتي را كه نمايش داده مي شود نگهداري مي كند )شكل 3-11(. شكل پس از انجام مرحله قبل همان طوركه مي بينيد عبارت به شكل مناسبي در داخل كنترل نمايش داده نمي شود بنابراين براي آن كه عبارت مربوط در وسط كنترل قرار گيرد از خصوصيت Alignment استفاده كنيد. خصوصيت Alignment اجازه مي دهد تا تراز عبارتي را كه در خصوصيت Caption نگهداري مي شود تعيين كنيد. عبارت نمايشي 68

79 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسوم: توانایی درک و شناخت زبان برنامهنویسی ویژوال بیسیک و ایجاد یک برنامه کاربردی ميتواند از سمت چپ يا راست كنترل يا در وسط آن نمايش داده شود مقاديري كه اين خصوصيت ميتواند كسب كند در جدول 3-4 ارايه شده است. جدول 3-4 مقادیری که خصوصیت Alignment کسب میکند. مقدار خصوصيت توضيح 0-Left Justify تراز متن از سمت چپ 1-Right Justify تراز متن از سمت راست 2-Center تراز متن از مركز 5 -در كادر ليست موجود در پنجره خصوصيات نام كنترل برچسب lblmessage را انتخاب كنيد و خصوصيت Alignment را پيدا كرده و روي آن كليك كنيد سپس روي دكمه روبهروي اين خصوصيت كليك كنيد و گزينه Center را برگزينيد )شكل 3-12(. شكل ارتفاع كنترل را بهوسيله گيرههاي اطراف آن روي مقدار 255 تنظيم كنيد. - 7 با استفاده از دكمه Start در نوار ابزار استاندارد برنامه را اجرا كرده و نتيجه را بررسي كنيد.

80 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه براي اجراي برنامه ميتوانيد از اين روشها نيز استفاده كنيد: فشردن كليدF5 گزينه Start را از منوي Run در نوار منوي ويژوالبيسيك انتخاب كنيد. - 8 با استفاده از دكمه در پنجره برنامه اجراي برنامه را خاتمه دهيد و به محيط طراحي برنامه بازگرديد. براي پايان دادن به اجراي يك برنامه ميتوانيد از اين روشها نيز استفاده كنيد: در نوار ابزار استاندارد روي دكمه top كليك كنيد. گزينه End را از منوي Run در نوار منوي ويژوالبيسيك انتخاب كنيد. 9 -تغييراتايجادشدهدرپروژهوفرمراذخيرهكنيدوازبرنامهويژوالبيسيكخارجشويد. تمرين: يك پروژه از نوع Standard EXE را به همراه يك فرم طراحي كنيد تا نام مدرسه خود را با تراز راست روي فرم نمايش دهيد. مثال 3: پروژه MyProject را كه در مثال قبل ايجاد كرديد به گونه اي تنظيم كنيد كه در هنگام نمايش فرم رنگ عبارت نمايشي قرمز شود به اين منظور عمليات زير را به ترتيب انجام دهيد: - 1 برنامه ويژوال بيسيك را اجرا كنيد تا كادر محاوره New Project نمايش داده شود. - 2 در كادر محاوره New Project روي زبانه Recent كليك كنيد. با انتخاب اين زبانه ليستي از پروژه هايي را كه اخيرا طراحي كرده يا تغيير داده ايد مشاهده خواهيد كرد )شكل.)3-13 پروژه MyProject را از كادر ليست موجود در كادرمحاوره انتخاب كرده سپس روي دكمه Open كليك كنيد. - 3 پنجره طراحي فرم را فعال كنيد سپس در پنجره خصوصيات و از كادر ليست موجود در آن گزينه lblmessage Label را برگزينيد. - 4 براي تنظيم رنگ عبارت نمايشي در كنترل برچسب خصوصيت ForeColor را از ليست اسامي خصوصيات كنترل انتخاب كنيد. سپس روي دكمه روبهروي نام اين خصوصيت كليك كنيد )شكل 3-14(. 70

81 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسوم: توانایی درک و شناخت زبان برنامهنویسی ویژوال بیسیک و ایجاد یک برنامه کاربردی شكل 3-13 شكل در كادر رنگي كه ظاهر ميشود دو زبانه با عناوين System و Palette مشاهده ميكنيد كه بهوسيله اين دو زبانه ميتوانيد رنگهاي متفاوتي را انتخاب كنيد )شكل 3-14(. همچنين ميتوانيد براي تعيين رنگ مورد نظر يك عدد مبناي شانزده را در كادر متني كه در روبهروي خصوصيت ForeColor قرار دارد تايپ كنيد. البته استفاده از اين روش كمي دشوارتر از ساير روشهاست. به اين دليل استفاده از روشهاي ديگر متداولتر است. - 6 روي زبانه Palette و سپس روي رنگ قرمز كليك كنيد. همانطوركه مشاهده خواهيد كرد در پنجره طراحي فرم عبارت VISUAL BASIC 6.0 به رنگ قرمز درميآيد. تمرين: پروژهاي طراحي كنيد تا عبارت Microsoft Windows XP Home Edition را با رنگ زرد روي زمينه سياه و روي يك فرم با عنوان Title نمايش تغيير يابد رنگ زمينه ميتوانيد از خصوصيت BackColor استفاده كنيد(. 71

82 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: رويدادگرا برنامهنويسي 3-4 گفته Event يا رويداد يك ميدهد رخ ويندوز محيط در كه اتفاقاتي از يك هر به كليك پنجرهها بازكردن و بستن مانند اتفاقات از يك هر نمونه عنوان به ميشود ميروند شمار به رويداد يك كليد صفحه كليدهاي فشردن و راست كليك كليك دابل شناسايي براي را الزم امكانات كه است رويدادگرا برنامهنويسي زبان يك ويژوالبيسيك ميكند. فراهم رويدادها از يك هر استفاده و توسط مختلف دستورالعملهاي بهصورت كه است برنامه از بخشي رويداد يك نيا ميافتد اتفاق مربوطه رويداد زمانيكه در تا ميشود آماده و تهيه برنامهنويس فرم ماژول بخش در آن كنترلهاي و فرم به مربوط رويدادهاي شوند. اجرا دستورات بخش دو از فرم يك واقع در ميروند. شمار به فرم اطالعات از قسمتي كه دارند قرار و ميكنيد مشاهده فرم طراحي پنجره در كه است بخشي اول بخش ميشود تشكيل عمده براي آنها از ميتوانيد كه ميشود تشكيل رويدادهايي از و است فرم ماژول ديگر بخش مشابه رويدادهاي كنترلها و فرمها كنيد. استفاده خود نياز مورد دستورالعملهاي اجراي ميپردازيم. آنها توضيح به مرور به كه دارند متفاوتي و است: زير بهصورت رويداد يك كلي شكل Private Sub Form كلمه يا كنترل نام _ رويداد نام ) ( دستورات End Sub بالك هر ابتدايي بخش ميشود. تشكيل انتهايي و ابتدايي بخش دو از رويداد بالك هر تشكيل فرمها( )براي Form كلمه يا كنترل نام سپس و Private Sub كليدي كلمه از رويداد و )Underline( زير خط يك با همراه شده انتخاب رويداد نام بخش اين ادامه در و ميشود End Sub كليدي كلمات را رويدادها تمام در پاياني بخش ميگيرد. قرار بسته بازو پرانتز دو آغازين بخش بين در ميشوند اجرا رويداد دادن رخ زمان در كه دستوراتي و ميدهند تشكيل است: اينصورت به فرم يك براي كليك رويداد مثال بهعنوان ميگيرند. قرار پاياني و Private Sub Form _Click ( ) دستورات End Sub زمان در كاربر كه شد خواهند اجرا زماني ميگيرند قرار رويداد اين در كه دستوراتي كند. كليك فرم روي برنامه اجراي 72

83 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارسوم: توانايی درک و شناخت زبان برنامه نويسی ويژوال بيسيك و ايجاد يك برنامه كاربردی 3-5 كنترلدكمهفرمان( Button (Command اين كنترل زمانياستفاده مي شود كه الزمباشدبا كليك كردن روي آن )يا فشردن كليد )Enter يك يا مجموعه اياز دستوراتاجرا شود يا عملياتي را متوقف كرده يا خاتمه دهد.احتماال بااين نوعاز كنترل ها آشنا هستيد واز دكمه هايي مانند Apply OK و Cancel در كادرهاي محاوره ( مانند )Display Properties استفاده كرده ايد. اين كنترل مانند كنترل برچسب داراي خاصيت هاي Caption Name و Fore Color مي باشد و رويداد Click آن از پركاربردترين رويدادهاي اين كنترل است. مثال 4: يك پروژه از نوع Standard EXE به همراه يك فرم و يك دكمه فرمان با عنعنوانShow ايجاد كنيد كه با كليك روي دكمه فرمان نام و نامخانوادگي شما نمايش داده شود. به اين منظور عمليات زير را به ترتيب انجام دهيد: - 1 برنامه ويژوالبيسيك را اجرا كنيد و يك پروژه از نوع Standard EXE شامل يك فرم و يك كنترل دكمه فرمان و دو كنترل برچسب ايجاد كنيد. - 2 اكنون بايد رويداد مناسبي را براي اين منظور انتخاب كنيد بنابراين در پنجره طراحي فرم روي كنترل دكمه فرمان دابل كليك كنيد تا بخش ماژول فرم فعال شود. البته ميتوانيد با استفاده يكي از اين روشها پنجره ماژول فرم را فعال كنيد: الف- براي فعال كردن ماژول فرم ميتوانيد گزينه Code را از منوي View انتخاب كنيد. ب- براي فعال كردن ماژول فرم ميتوانيد روي دكمه View Code در پنجره پروژه كليك كنيد. در قسمت باالي اين پنجره دو كادر ليست را مالحظه ميكنيد. در كادر ليست سمت چپ نام كنترلها و فرم و در كادر ليست سمت راست نام رويدادها را مشاهده خواهيد كرد. براي آمادهسازي رويداد موردنظر نام كنترل يا كلمه Form )براي فرم( را از كادر ليست سمت چپ و نام رويداد مورد نظر را از كادر ليست سمت راست انتخاب كنيد. در اين صورت بالکهاي كد مانند شكل 3-15 نمايش داده ميشود. - 3 در اين مرحله رويداد Click دكمه فرمان در پنجره كد نمايش داده شده است. اين رويداد زماني اجرا ميشود كه عمل كليك روي دكمه فرمان انجام شود. - 4 اكنون در رويداد Click دكمه فرمان دستوري بنويسيد كه خصوصيت Caption كنترل 73

84 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه برچسب را در هنگاماجرايبرنامه تنظيم كند بنابراين دستوربعد را در رويداد مزبور بنويسيد )شكل 3-15(. lblmessage.caption=))kaveh Behrozi((=vbRed شكل 3-15 همان طوركه مالحظه مي كنيد براي تغيير خصوصيات فرم ها و كنترل ها با استفاده از كدنويسي مي توانيد به اين شكل عمل كنيد: مقدار خصوصیت = نام خصوصیت. نام نكتهدر هنگام تايپ كاراكتر نقطه پس از نام كنترل ويژوالبيسيك بهطور خودكار ليستي از خصوصيات كنترل را در اختيار شما قرار ميدهد كه ميتوانيد خصوصيت موردنظر را انتخاب كرده و با فشردن كليد Spacebar آن را به پنجره كد كپي كنيد )شكل 3-15( پروژه را اجرا كرده و روي دكمه فرمان Show كليك كنيد. - 6 اجراي پروژه را متوقف كنيد و به پنجره طراحي فرم بازگرديد. سپس پروژه و فرم را با نام Show name ذخيره كنيد.

85 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارسوم: توانايی درک و شناخت زبان برنامه نويسی ويژوال بيسيك و ايجاد يك برنامه كاربردی مثال 5: می خواهيم پروژه Showname را به شكلی تنظيم كنيم تا بتواند نام و نام خانوادگي هر شخص دلخواهي را نمايش دهد. براي اين كار عمليات زير را به ترتيب انجام دهيد: - 1 برنامه ويژوال بيسيك را اجرا كرده و پروژه Showname را باز كنيد. - 2 يك كنترل كادر متن روي فرم قرار دهيد. - 3 به رويداد Click دكمه فرمان برويد و دستور آن را به اين صورت تغيير دهيد. lblmessage.caption=txtname.text - 4 تغييرات را ذخيره كرده و پروژه را اجرا كنيد. - 5 نام دلخواهي را در كادر متن تايپ كرده و روي دكمه فرمان Show كليك كنيد. - 6 اجراي پروژه را متوقف كرده و به پنجره ويژوال بيسيك بازگرديد. 75

86 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه Learn in English Creating a Project You begin creating this application by choosing New Project from the File menu, then selecting Standard EXE in the New Project dialog box (when you first start Visual Basic, the New Project dialog box is presented). Visual Basic creates a new project and displays a new form. To draw the interface, you use a label control, a textbox control or some of other controls. 76

87 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسوم: توانایی درک و شناخت زبان برنامهنویسی ویژوال بیسیک و ایجاد یک برنامه کاربردی 77 واژهنامه الفبايي عنوان موضوعي تشكيل دادن ايجاد كردن توسعه كادرمحاوره نگارش نهايي رسيدگي به خطا رويداد رسيدگي به اتفاق )رويدادگر( زبانهاي سطح باال محيط برنامهنويسي مجتمع كنترل برچسب نگارش آموزشي زبانهاي سطح پايين ماژول )به عبارت ديگر قطعهاي كه بخشي از يك پروژه بوده و فقط حاوي دستورالعملهاست.( ويژگي شئگرا برنامهنويسي شئگرا ارائه كردن معرفي نمودن محلي پروژه خصوصيت ارائهكردن سريع تند طراحي سريع برنامه جدا كردن جداگانه مجزا برنامه اجرايي استاندارد كنترل كادر متن Alphabetic Caption Categorized Create Development Dialog Box Enterprise Edition Error Handling Event Event Handling High Level Languages Environment Integrated Development Label Control Learning Edition Low Level Languages Module Object Oriented Feature Object Oriented Programming Present Private Project Property Provide Rapid Rapid Application Development Separate Standard EXE TextBox Control

88 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: مطالب خالصه ميگويند. برنامهنويسي زبان شده تعريف دستورالعملهاي و قواعد از مجموعهاي به زا كه باالست سطح برنامهنويسي زبانهاي از ويژوالبيسيك برنامهنويسي زبان ميباشد: برخوردار زير ويژگيهاي )IDE( مجتمع يافته توسعه محيط و )GUI( كاربر گرافيكي *رابط برنامه سريع طراحي *امكان API توابع از استفاده با ويندوز كاربردي برنامههاي به *دسترسي خطاها و رويدادها مديريت *توانايي و فرمها پروژهها مانند برنامه دهنده تشكيل اجزاي ميتوانيد پروژه مرورگر در كنيد. مشاهده را ماژولها ار آنها در موجود كنترلهاي و فرمها خصوصيات ميتوانيد خصوصيات پنجره در كنيد. تنظيم و مشاهده طراحي در آنها از كه است متعددي كنترلهاي حاوي ويژوالبيسيك ابزار جعبه ميشود. استفاده برنامه مقدار يا پيامها مانند متني خروجيهاي انواع نمايش براي )Label( برچسب كنترل از ميشود. استفاده اشيا خصوصيات شدن فشرده پنجره يك شدن بسته راست كليك كليك دابل كليك مانند اتفاقاتي به ميشود. گفته رويداد يك ميدهد رخ برنامهها و ويندوز محيط در كه غيره و كليد يك كد بخش در جداگانه بهصورت كه است دستورات از مجموعه يك رويداد رويه هر ميشوند. انجام دستورات اين ميدهد رخ رويداد زمانيكه و ميشود نگهداري فرم با و شده آغاز كنترل يا فرم نام همراه به Private Sub كليدي كلمات با رويداد رويه هر " مييابد. خاتمه End Sub با ميتوانيد خصوصيات پنجره در تنظيم بر عالوه را كنترلها خصوصيات مقدار كنيد: تنظيم زير شكل به كدنويسي از استفاده نام. خصوصیت نام = خصوصیت مقدار برنامه به آنها ورود و كاربر از دادهها دريافت براي )TextBox( متن كادر كنترل از ميشود. استفاده 78

89 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسوم: توانایی درک و شناخت زبان برنامهنویسی ویژوال بیسیک و ایجاد یک برنامه کاربردی آزمون نظري 1- كدام گزينه از اهداف طراحي زبان بيسيك بوده است ب- برنامهنويسي آموزشي الف- برنامهنويسي سيستمي د- برنامهنويسي علمي ج- برنامهنويسي تجاري 2- كدام گزينه زير يكي از انواع زبانهاي سطح پايين است د- پاسكال ج- ++C ب- اسمبلي الف- فرترن - 3 كدام ويژگي در ويژوالبيسيك برنامهنويسي رويدادگر را ميسر ميكند ب- EVENT HANDLING الف- API د- OOP ج- ERROR HANDLING - 4 كداميك از زبانهاي برنامهنويسي براي برنامهنويسي علمي و تجاري مناسب است د- اسمبلي ج- زبان ماشين ب- فرترن الف- پاسكال -5 ويژگي Development( RAD (Rapid Application عبارت است از: الف- كشف و تصحيح آسان و سريع اشتباهات ب- طراحي سريع و آسان برنامهها ج- طراحي همزمان چند برنامه د- برنامه نويسي به روش OOP - 6 در كدام نگارش ويژوالبيسيك 6 امكانات ويژهاي به منظور برنامهنويسي براي محيط شبكههاي محلي و اينترنت وجود دارد ب- نگارش اوليه الف- نگارش آموزشي د- نگارش شبكه ج- نگارش نهايي - 7 كدام نگارش از زبان Basic براي برنامهنويسي در محيط اينترنت ارائه شده است ب- QBasic الف- GWBasic د- VB Script ج- Visual Basic - 8 كدام نوع از انواع زبانهايBasic براي برنامهنويسي در برنامههاي كاربردي ارائه شده است د- Activex ج- VBA ب- VB الف- QBasic - 9 كداميك از گزينههاي زير براي برنامهنويسي سيستمي مناسب هستند د- بيسيك ج- C و ++C ب- ماشين الف- فرترن 79

90 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 10 براي باز كردن پروژههايي كه اخيرا مورد استفاده قرار گرفته انتخاب كدام زبانه در كادر محاوره New Project مناسب است د- Open ج- Existing ب- Recent الف- New - 11 كدام نام براي خصوصيت Name يك فرم مناسب است د- frmtest ج- 1form ب- frm main الف- frm-show - 12 پسوند فايلهاي پروژه و فرم به ترتيب عبارتند از )راست به چپ(: ب- frm. vbp. الف- vbp. frm. د- frm..vbf ج- vbp. vbf كدام كنترل براي دريافت دادهها از كاربر مناسب است د- فرم ج- كادر عالمت ب- كادر متن الف- برچسب - 14 با استفاده از كدام خصوصيت عنوان يك فرم تعيين ميشود د- Enabled ج- Name ب- Visible الف- Caption 15 -ازكدامبخشدرپنجرهويژوالبيسيكبرايايجادكنترلهارويفرماستفادهميشود د- پنجره خصوصيات ج- نوار منو الف- نوار ابزار ب- جعبه ابزار 16 - The VBA language can be used for programming in... a- Excel b- Access c- Applications d- all of above 17 - Which of the following options can be used for creating a project in new project dialog box? a- Recent b- New c- Existing d- Open - 18 زبان برنامهنويسي را تعريف كنيد سپس انواع آنها را با توجه به نزديكي آن به زبان ماشين بيان كنيد ويژگيهاي زبان برنامهنويسي ويژوالبيسيك را شرح دهيد اجزاي اصلي در يك برنامه كاربردي را نام ببريد كاربرد پنجره پروژه خصوصيات ابزار و تعيين موقعيت فرم را توضيح دهيد مفهوم رويداد را توضيح دهيد و كاربرد رويه رويداد را بيان كنيد نحوه تنظيم خصوصيت در كنترلها را در زمان اجراي برنامه توضيح دهيد. 24 -خصوصيتهايي كه بهوسيله آنها ميتوان موقعيت يك كنترل و فرم را در زمان نمايش تعيين كرد توضيح دهيد. 80

91 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسوم: توانایی درک و شناخت زبان برنامهنویسی ویژوال بیسیک و ایجاد یک برنامه کاربردی آزمون عملي - 1 يك برنامه از نوع استاندارد اجرايي ايجاد كنيد كه حاوي يك فرم دو كنترل برچسب و دو كنترل كادر متن بوده و بتواند نام و نامخانوادگي كاربر را دريافت كند و نام وي را با رنگ قرمز روي زمينه سبز و نام خانوادگي را با رنگ آبي روي زمينه سفيد روي كنترلهاي برچسب نمايش دهد. در ضمن درصورت انجام عمل كليك روي كنترلهاي برچسب رنگ زمينه و قلم جابهجا شود. - 2 برنامه آزمون عملي شماره يك را به گونهاي تغيير دهيد تا با انجام عمل كليك روي هر كادرمتن محتويات آن پاك شود. 81

92

93 واحد کارچهارم هدف جزیی توانايي تعريف انواع متغيرها ثابتها و استفاده از عملگرهاي رياضي و رشتهاي هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- انواع متغيرها و ثابتها را بيان كند و نحوه تعريف و استفاده از آنها را توضيح دهد. 2- عملگرهاي رياضي و رشتهاي را بيان كرده نحوه استفاده و اولويت اجراي آنها را نسبت به يكديگر شرح دهد. 3- متغيرهاي عمومي و محلي را توضيح دهد و نحوه تعريف و كار با آنها را بيان كند. 83

94 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: کلیات هب شده جمعآوري اطالعات و دادهها تا است الزم واقعي پروژههاي طراحي در نتايج يا نتيجه آنها روي پردازشهايي انجام از پس و شود داده نرمافزار و كامپيوتر نياز نتايج ارايه و محاسبه ورود مراحل تمام در بنابراين شود. ارايه كاربر به حاصل رابطه اين در كه ميشود احساس كامپيوتر حافظه در اطالعات و داده ذخيرهسازي به از استفاده نحوه كار واحد اين در كنيد. استفاده جانبي حافظه و اصلي حافظه از ميتوانيد براي عالوه به ميگيريد فرا اطالعات و دادهها ذخيرهسازي براي را RAM يا اصلي حافظه ميآموزيد. ويژوالبيسيك در را عملگرها انواع از استفاده نحوه رياضي عمليات انجام ويژوالبيسيك در متغيرها انواع از استفاده و تعريف نحوه 4-1 حافظه در اطالعات و داده ذخيرهسازي ميگيرد انجام برنامهها در كه عملياتي از يكي ميدهيم توضيح ويژوالبيسيك در را متغيرها انواع معرفي نحوه ابتدا است. كامپيوتر ميدهيم. آموزش مثال يك با همراه را كار اين انجام نحوه سپس ويژوالبيسيك در متغيرها معرفي نحوه پردازش از حاصل اطالعات و دادهها نگهداري براي كه است حافظه از مكاني متغير نوع و است اطالعات و دادهها نگهداري ظرف متغير ديگر عبارت به ميشود, استفاده دادهها ويژه نام يك متغير هر عالوه به ميشود. تعيين ميكنند نگهداري كه دادهاي به توجه با آن دستيابي مورد را آن مقدار يا كرد ذخيره حافظه در را دادهها ميتوان آن وسيله به كه دارد كنيد: استفاده صورت اين به Dim دستور از ميتوانيد متغيرها تعريف براي داد. قرار Dim متغیر نام As داده نوع آنها از تركيبي يا رقمي حرفي كاراكترهاي از ميتوانيد و بوده دلخواه متغير نام تعيين ميشود ذخيره آن در كه مقداري با متناسب متغير نام است بهتر اما كنيد استفاده موارد اين متغير يك نامگذاري براي نشود. استفاده نامأنوس و طوالني اسامي از و شده كنيد: رعايت را باشد. كاراكتر 255 حداكثر و شود آغاز حرفي كاراكتر يك با متغير نام الف- زيرخط كاراكتر مجازنيست امااستفادهاز آنها ونظاير كاما خالي,نقطه, فاصله ب-استفادهاز است. امكانپذير ) _ ( 84

95 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه رشتهای و ریاضی عملگرهای از استفاده و ثابتها متغیرها انواع تعریف توانایی کارچهارم: واحد استفاده ويژوالبيسيك در شده رزرو اسامي و عاليم از متغيرها نامگذاري در ج- آنها از كه هستند عباراتي و عاليم ويژوالبيسيك در شده رزرو اسامي و عاليم نكنيد. عباراتي و و + عاليم مانند ميشود استفاده خاصي دستورالعملهاي و اعمال انجام براي غيره. و Form Control مانند نميشود. قائل بزرگ و كوچك حرفي كاراكترهاي بين تفاوتي ويژوالبيسيك د- ميزان و ميشود ذخيره آن در كه است مقداري نوع تعيينكننده متغير يك داده نوع نيعم حافظه در آنرا ذخيرهشدن نحوه و ميشود داده اختصاص آن براي كه را حافظهاي توسط اشغالي حافظه ميزان با اسم يك ذخيرهسازي براي اشغالي حافظه ميزان ميكند. است. متفاوت اعشاري يا صحيح عدد يك در ميكند اشغال فضا بايت 2 )Integer( صحيح عدد نوع از متغير يك مثال عنوان به در بنابراين دارد. نياز فضا بايت 4 )Single( اعشاري عدد نوع از متغير يك كه صورتي شود معين شد خواهد ذخيره آن در كه دادهاي نوع تا است الزم متغير يك تعريف زمان دهد. قرار متغير اختيار در را الزم حافظه مقدار آن به توجه با ويژوالبيسيك تا مورد فضاي ميزان همراه به هستند استفاده قابل 6 ويژوالبيسيك در كه دادههايي انواع شدهاند. ارايه 4-1 جدول در مقادير محدوده و نياز ويژوالبيسيك در دادهها انواع 4-1 جدول مقادير محدوده اشغالي حافظه ميزان مقدار نوع داده نوع مناسب پيشوند byt بايت 1 صحيح اعداد 255 تا صفر Byte int تا بايت 2 صحيح اعداد Integer lng sng dbl cur str str بايت 4 بايت 4 بايت 8 بايت 8 كاراكتر هر براي بايت يك كاراكتر هر براي بايت يك صحيح اعداد اعشاري اعداد اعشاري اعداد اعشاري اعداد )رشته( متن )رشته( متن تا تا كاراكتر ± ± 1/ كاراكتر 654 ± ± ± 1 1 ± Long Single Double Currency ثابت( طول )با String متغير( طول )با String bln True يا False بايت 2 منطقي Boolean dem 12 /31 / / 1 /1 بايت 8 ساعت و تاريخ الي Date vnt فوق انواع از يك هر متغيراست. داده نوع به توجه با Variant 85

96 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه ويژوال بيسيک از انواع داده هاي مختلفي پشتيباني مي كند كه مي توانند نيازهاي مختلف شما را در زمان برنامه نويسي پوشش دهند و با استفاده از انواع داده هاي ارايه شده در جدول 5-1 انواع متفاوتي از متغيرهاي مورد نياز را ايجاد كنند. در اين جا به توضيح انواع آن ها مي پردازيم. متغیرهاي عددي ويژوالبيسيک از چند نوع داده عددي مختلف پشتيباني ميكند داده صحيح اعشاري و پولي. داده صحيح شامل انواع Long Integer و Byte ميباشد با انواع Integer و Long ميتوانيد متغيرهايي ايجاد كنيد كه در محدوده اعداد صحيح باشند مقاديري مانند , 5 و غيره. اما نوع Byte در مواردي به كار ميرود كه فقط از اعداد صحيح مثبت در محدوده صفر تا 255 استفاده ميكنيم. انواع داده اعشاري نيز شامل انواع Double Single و Currency هستند و توانايي ايجاد متغيرهايي را دارند كه ميتوانند هرگونه عدد اعم از صحيح, اعشاري مثبت و منفي مانند /75- يا 489 را 1 / 25 در خود جاي دهند. در صورتي كه نياز به نگهداري دادههايي از نوع پولي داشته باشيد ميتوانيد از نوع داده Currency استفاده كنيد. به عنوان مثال به اين تعاريف توجه كنيد: Dim intcounter As Integer Dim dbltotal As Double Dim sngdistance As Single,intgrade As Integer Dim bytage As Byte,cursalary As Currency همان طوركه مشاهده مي كنيد متغير intcounter از نوع اعداد صحيح و dbltotal از نوع اعشاري تعريف شده اند. به عالوه متغيرهاي sngdistance و intgrade به طور هم زمان با استفاده از يک دستور Dim تعريف شده اند. همين طور متغيرهاي bytage و cursalary نيز به ترتيب از نوع Byte و پولي معرفي شده اند. نكتهاستفاده از پيشوندهاي مناسب با نوع داده در نام متغير, شناسايي آسان متغيرها و در نتيجه خوانايي كدها را درپي خواهد داشت. 86

97 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارچهارم: توانایی تعریف انواع متغیرها ثابتها و استفاده از عملگرهای ریاضی و رشتهای متغيرهاي منطقي اين نوع متغيرها توانايي دريافت مقادير درست )True( يا نادرست )False( بله )Yes( يا خير )No( را دارا ميباشند از اين نوع متغيرها معموال زماني استفاده ميشود كه دادههاي دو حالتي مانند زن يا مرد مردود يا قبول بيمار يا سالم و نظاير آنها مورد نظر باشند به عنوان مثال براي ذخيرهسازي وضعيت قبولي يك دانشآموز در مدرسه ميتوان متغير blnresult را به اين شكل تعريف كرد: Dim blnresult As Boolean متغيرهاي تاريخ و زمان Time( )Date & با استفاده از اين نوع متغيرها ميتوانيد مقادير ساعت و تاريخ يا تركيبي از اين دو را ذخيره كنيد. به عنوان مثال براي ذخيرهسازي تاريخ تولد افراد ميتوانيد متغير dtmb_date را به اين صورت تعريف كنيد: Dim dtmb_date As Date متغيرهاي رشتهاي اگر بخواهيد مقادير غيرعددي مانند متون و كاراكترها را ذخيره كنيد ميتوانيد متغيرهاي خود را از نوع داده رشتهاي تعريف كنيد. به عنوان مثال اين نوع داده را ميتوان براي ذخيرهسازي نام و نام خانوادگي اشخاص نام شهر آدرس يك محل و غيره به كار برد. متغير رشتهاي با طول ثابت توانايي ذخيرهسازي دادههاي رشتهاي را با توجه به تعداد كاراكترهاي تعيين شده دارد و براي تعريف آن از اين الگو استفاده ميشود: Dim نام متغير رشتهاي As String*n n عدد صحيح و مثبتي است كه تعداد كاراكترها را در متغير رشتهاي تعيين ميكند. به عنوان مثال براي ذخيرهسازي نام افراد با حداكثر طول نام 25 كاراكتر از اين دستور استفاده ميشود: Dim strname As String*25 متغير رشتهاي با طول متغير توانايي نگهداري يك تا 2 ميليارد كاراكتر را دارد و در هنگام ذخيرهسازي اطالعات فضاي الزم را با توجه به طول رشته در اختيار متغير قرار ميدهد. براي تعريف اينگونه متغيرها از اين الگو استفاده ميشود: Dim نام متغير رشتهاي As String 87

98 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه به عنوان مثال براي ذخيره سازي اسامي افراد كه حداكثر طول نام آن ها مشخص نيست از اين دستور استفاده مي شود: Dim strname As String متغیرهاي ترکیبي )Variant( اگر به متغيري احتياج داريد كه نوع داده هايي كه در آن ذخيره مي شوند قابل پيش بيني نبوده و انواع متفاوتي را دربرمي گيرد از اين نوع متغير استفاده كنيد. اين نوع متغير تمام انواع داده هاي قبلي را دربرمي گيرد و مي تواند مقادير عددي, رشته اي, منطقي و تاريخي را بدون آن كه نيازي به تبديل آن ها باشد در خود جاي دهد. نكته در صورتي كه نوع يک متغير تعيين نشود نوع متغير به طور خودكار از نوع Variant در نظر گرفته خواهد شد. Dim 1Age As Integer تمرين: كدام يک از اين تعاريف اشتباه است: Dim snggrade 1 As Single,n-no As Double Dim sngaverage As Single,intno As Integer كاراكتر % &! $ جدول 4-2 نوعداده Integer Long Single Double Currency String عالوه بر روش هايي كه تاكنون براي تعريف انواع متغيرها گفته شد مي توانيد با استفاده از بعضي كاراكترها نوع متغير را به طور ضمني تعريف كنيد. به عبارت ديگر با اضافه كردن كاراكترهاي ارايه شده در جدول 4-2 به انتهاي نام متغير نوع آن را معين كنيد. از اين روش فقط مي توانيد براي داده هاي عددي و رشته اي استفاده كنيد. 88

99 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارچهارم: توانایی تعریف انواع متغیرها ثابتها و استفاده از عملگرهای ریاضی و رشتهای به عنوان مثال به موارد ارايه شده در جدول 4-3 توجه كنيد: تعريف متغيرها با دستور Dim جدول 4-3 Dim intage As Integer تعريف متغيرها به صورت ضمني Intage % Lngspeed& sngaverage! dblgrade# cursalary@ strname$ Dim lngspeed As Long Dim sngaverage As Single Dim dblgrade As Double Dim cursalary As Currency Dim strname As string نحوه مقداردهي به متغيرها پس از تعريف يك متغير بهتر است مقداري را در آن ذخيره كنيم. به اين كار انتساب مقادير يا مقداردهي به متغير گفته ميشود. براي انجام اين كار ميتوانيد از اين الگو استفاده كنيد: Let نام متغير = expression البته ذكر كلمه كليدي Let اختياري است و معموال از آن استفاده نميشود. Expression عبارتي است كه ميتواند يكي از انواع دادههاي گفته شده فرمول و عبارات محاسباتي خصوصيت يك شئ مانند فرم يا كنترل و غيره باشد. مشاهده ميكنيد كه دستور انتساب شبيه به مقداردهي به خصوصيات اشيا مانند فرمها و كنترل است. به عنوان مثال به مواردي كه در جدول 4-4 ارايه شده است توجه كنيد. 89 جدول 4-4 دستور انتساب strname="ali" int count=-4 sngave=snglength/3 dtmb_date=#dec-4-90# blntest=true dblsum=inta+intb+intc dtmtime= # 18:05:00 PM# dtmzone= #8/10/2004 5:12:17 AM# نوع عبارت رشتهاي عددي عبارت رياضي تاريخ منطقي عبارت رياضي ساعت تاريخ و ساعت

100 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه نكتهدر مقداردهي به متغيرهاي منطقي ميتوانيد از مقادير يک و صفر به جاي True و False استفاده كنيد. متغيرهاي منطقي در هنگام تعريف به طور خودكار مقدار False متغيرهاي عددي مقدار صفر و متغيرهاي رشته اي به صورت يک رشته خالي )"" ) مقداردهي اوليه مي شوند. مقداردهي متغيرهاي تاريخ و ساعت در هنگام تعريف با توجه به تنظيمات تاريخ و ساعت كه بهوسيله برنامه Regional and Language Options در بخش Control Panel ويندوز انجام ميشود به دو روش صورت ميگيرد. اگر ساعت روي حالت 24 ساعتي تنظيم شود مقدار اوليه به صورت 00 00: 00: يا 0 00: 00: خواهد بود اما وقتي ساعت روي حالت 12 ساعتي تنظيم شود مقدار اوليه به صورت : AM : 12 مي باشد. مثال 1: يک پروژه مطابق شكل 4-1 طراحي كنيد كه اطالعات مربوط به يک كارمند شامل نام نامخانوادگي و ميزان حقوق وي را دريافت كرده, سپس با كليک روي دكمه Calculate ميزان حقوق خالص وي را پس از كسر ماليات و بيمه بر اساس فرمولهاي زير محاسبه كرده و نمايش دهد همچنين با كليک روي دكمه New برنامه براي دريافت اطالعات كارمند جديد آماده شود. 3 درصد حقوق= بيمه 5 درصد حقوق= ماليات شكل برنامه ويژوال بيسيک را اجرا كنيد و يک پروژه از نوع Standard EXE شامل يک فرم و كنترل هاي كادرمتن و برچسب را مطابق شكل 4-1 و جدول هاي و 4-7 طراحي كنيد. 90

101 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارچهارم: توانایی تعریف انواع متغیرها ثابتها و استفاده از عملگرهای ریاضی و رشتهای جدول 4-5 خصوصيات فرم مقدار خصوصيت Name Caption frmsal Salary جدول 4-6 خصوصيات كنترلها كنترل خصوصيت Label Label Label Label Label Name lblname lblfam lblsal lblp lblpay Caption Name: Family: Salary: Payment: جدول 4-7 خصوصيات كنترلها كنترل خصوصيت TextBox TextBox TextBox Command Button Command Button Command Button Name txtname txtfam txtsal cmdcalculate cmdnew cmdexit Caption &Calculate &New &Exit 2- در اين مرحله الزم است كنترلهاي دكمه فرمان را روي فرم قرار دهيد. به اين منظور در جعبه ابزار روي آيكن Button( )Command دابلكليك كنيد پس از ايجاد دكمههاي فرمان خصوصيتهاي آنها را مطابق جدول 4-7 تنظيم نماييد. 3- براي تعيين كليد ايجاد دسترسي سريع Key( )Hot در كنترلها ميتوان در خصوصيت Caption و قبل از حرف موردنظر از كاراكتر & استفاده كرد بنابراين الزم است قبل از حروف N C و E در سه دكمه فرمان ايجاد شده كاراكتر & را تايپ كنيد. پس از تعيين كليد دسترسي سريع بالفاصله در پنجره طراحي فرم زير حروف مربوط يك خط مشاهده ميشود. 4- به پنجره ماژول فرم برويد و رويداد Click دكمه فرمان New Calculate و Exit را به اين صورت تنظيم كنيد: Private Sub cmdcalculate_click() 91

102 92 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه Dim sngsal As Single Dim sngins As Single Dim sngtax As Single Dim sngpay As Single sngsal = Val(txtsal.Text( sngins=sngsal *0.03 sngtax=sngsal * 0.05 sngpay= sngsal-sngins-sngtax 1b1pay.Caption=sngpay End Sub در اين رويداد ابتدا با استفاده از دستور Dim متغيرهاي sngsal براي حقوق sngins براي بيمه sngtax براي ماليات و sngpay براي حقوق خالص از نوع اعشاري تعريف شدهاند سپس مقدار حقوق كه در خصوصيت Text كادر متن txtsal ذخيره شده است با استفاده از تابع Val به عدد تبديل و در متغير اعشاري sngsal ذخيره ميشود تا بعدا براي محاسبه بيمه ماليات و حقوق پرداختي از آن استفاده شود. تابع Val ميتواند يك عبارت رشتهاي را كه شامل كاراكترهاي رقمي باشد دريافت كرده و به نوع داده عددي تبديل كند. در مرحله آخر نيز حقوق خالص وي در خصوصيت Caption كنترل برچسب lblpay ذخيره ميشود تا روي فرم نمايش داده شود. - 5 رويداد Click دكمه فرمان New را به اين صورت تنظيم كنيد: Private Sub cmdnew_click() txtname.text="" txtfam.text="" txtsal.text="" 1b1pay.Caption = 0 txtname.setfocus End Sub در اين رويداد براي آنكه بتوان دادههاي قبلي را در كادرهاي متن پاك كرده و امكان ورود دادههاي جديد به وجود آيد ابتدا محتويات كادرهاي متن پاك شده و سپس مقدار

103 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارچهارم: توانايی تعريف انواع متغيرها ثابت ها و استفاده از عملگرهای رياضی و رشته ای صفر در كنترل برچسب نمايش داده مي شود سپس با استفاده از متد SetFocus فوكوس به اولين كادر متن منتقل مي شود تا وقتي كاربر روي دكمه New كليک كند بالفاصله بتواند نام كارمند را وارد نمايد. متد يک يا مجموعه عملياتي است كه روي يک فرم يا كنترل انجام مي شود و روي آن تأثير مي گذارد. براي استفاده از متدها مي توانيد از شكل كلي زير استفاده كنيد: نام متد. نام كنترل نكته: براي دسترسي به متدهاي يک فرم در ماژول فرم مربوط به آن ميتوان از نام متد به تنهايي يا همراه با عبارت me. استفاده كرد. فوكوس امكاني است كه با استفاده از ماوس يا صفحه كليد به كاربر اجازه مي دهد به فرم يا كنترل موردنظر خود دسترسي پيدا كند. در ويندوز چندين برنامه مي توانند به طور هم زمان اجرا شوند اما كاربر فقط مي تواند با يک برنامه كار كند يعني برنامه اي كه نوار عنوان پنجره آن فعال است يا به عبارت ديگر فوكوس را در اختيار دارد. در يک پنجره و فرم با چند كنترل نيز كاربر مي تواند در هر لحظه با يک كنترل كار كند در اين حالت كنترلي كه فوكوس را در اختيار دارد قابل استفاده است. براي انتقال فوكوس بين فرم ها مي توانيد از كليک روي فرم مورد نظر يا كليد تركيبي Alt+Tab و براي انتقال فوكوس از يک كنترل به كنترل ديگر از عمل كليک يا كليد Tab استفاده كنيد. متد SetFocus يكي از متدهاي مشترك بين كنترل ها و فرم هاست و اجراي آن فوكوس را به فرم يا كنترل مربوطه منتقل مي كند. رويداد Click دكمه فرمان Exit را به اين صورت تنظيم كنيد: Private Sub cmdexit_click)( Unload Me 93 End Sub در اين رويداد با استفاده از دستور Unload Me فرم برنامه از حافظه خارج مي شود در نتيجه برنامه خاتمه مي يابد. - 6 پروژه و فرم را با نام salary ذخيره كنيد سپس پروژه را اجرا كرده و اطالعات

104 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه دلخواهي را در كادرهاي متن فرم تايپ كنيد. - 7 روي دكمه Calculate كليک كنيد تا نتيجه محاسبات يا به عبارت ديگر ميزان حقوق خالص كارمند مربوطه نمايش داده شود. - 8 روي دكمه New كليک كنيد و اين بار مشخصات فرد ديگري را تايپ كرده و ميزان حقوق وي را محاسبه نماييد. - 9 با كليک روي دكمه Exit به محيط طراحي بازگرديد. تمرين: پروژه salary را به شكلي تغيير دهيد تا هزينه بيمه ماليات و حقوق دريافتي هر كارمند به صورت جداگانه روي فرم قابل مشاهده باشد. 4-2 نحوه انجام عمليات رياضي در ويژوال بيسيك در تمام زبانهاي برنامهنويسي براي تبديل انواع فرمولها و انجام محاسبات امكاناتي در نظر گرفته ميشود. در زبان برنامهنويسي ويژوالبيسيک نيز براي اين كار از عملگرهاي رياضي براي انجام اعمالي چون جمع تفريق به توانرساني و غيره استفاده ميشود. با استفاده از اين عملگرها انجام بخش عمدهاي از عمليات محاسباتي امكانپذير ميشود. مثال 2: يک ماشينحساب ساده مطابق شكل 4-2 و جداول 4-8 الي 4-10 طراحي كنيد كه توانايي انجام عمليات رياضي ساده را داشته باشد. به اين منظور مراحل بعد را به ترتيب انجام دهيد: جدول 4-8 خصوصياتفرم مقدار frmcalc خصوصيت Name Height 372 Left 3 Top 3 Width 49 5 Caption Calculator شكل

105 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارچهارم: توانایی تعریف انواع متغیرها ثابتها و استفاده از عملگرهای ریاضی و رشتهای جدول 4-9 خصوصيات كنترلها كنترل Label Label Label Label TextBox خصوصيت Name lblnum1 lblnum2 lblr lblresult txtnum1 Caption Number 1 : Number 2 : Result : -- كنترل خصوصيت TextBox جدول 4-10 خصوصيات كنترلها Command Command Button Button Command Button Command Button Name txtnum2 cmdadd cmddiv cmdminus Cmdmulti Caption -- + / برنامه ويژوالبيسيك را اجرا كرده و كنترلهاي الزم را مطابق شكل 4-5 روي فرم ايجاد كنيد. - 2 رويداد Click دكمه جمع را به اين صورت تنظيم كنيد: Private Sub cmdadd_click() lblresult.caption=val(txtnuml.text) + Val(txtnum2.Text) 95 End Sub - 3 فرم و پروژه را با نام Calculator ذخيره كنيد سپس پروژه را اجرا كرده و دو عدد در كادرهاي متن بنويسيد سپس روي دكمه جمع كليك كنيد و نتيجه را بررسي كنيد همانطور كه ميبينيد حاصل جمع اعداد تايپ شده در بخش Result نمايش داده ميشود. همانطوركه در رويداد Click دكمه جمع مشاهده كرديد براي جمع دو عدد كه در كادرهاي متن تايپ ميشوند از كاراكتر + استفاده ميشود. در زبان ويژوالبيسيك براي انجام عمليات جمع از اين كاراكتر استفاده ميشود. به عالوه مقاديري كه در كادرهاي متن تايپ ميشوند ماهيت غيرعددي دارند و جمع آنها به صورت عادي امكانپذير نيست

106 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: عددي نوع به را متن كادرهاي در شده تايپ عددي رشته Val تابع از استفاده با بنابراين ذخيره برچسب كنترل Caption خصوصيت در و جمع هم با را آنها سپس و كرده تبديل شود. داده نمايش محاسبه نتيجه تا ميكنيد اين به را تقسيم و ضرب تفريق دكمههاي Click رويدادهاي مرحله اين در - 4 كنيد: تنظيم جمع دكمه مشابه و صورت Private Sub cmdminus_click() lblresult.caption=val(txtnum1.text)-val(txtnum2.text) End Sub Private Sub cmdmulti_click() lblresult.caption=val(txtnum1.text)*val(txtnum2.text) End Sub Private Sub cmddiv_click() lblresult.caption=val(txtnum1.text)/val(txtnum2.text) End Sub كنيد. بررسي اصلي عمل چهار با رابطه در را برنامه عملكرد و كرده اجرا را پروژه - 5 كنيد. ذخيره را شده اعمال تغييرات سپس و ببنديد را برنامه پنجره ويژوالبيسيك در ثابتها از استفاده و تعريف نحوه 4-3 ديگري روشهاي فراگرفتهايد. اطالعات ذخيرهسازي براي را مختلفي روشهاي قبال هك ثابتهايي بر عالوه.)Constant( ثابتهاست از استفاده آنها از يكي كه دارد وجود نيز براي كه ثابتهايي به ميتوان مثال )براي دارند وجود ويژوالبيسيك در آماده طور به رد نيز را خود نياز مورد ثابتهاي ميتوانيد كرد.( اشاره ميشوند استفاده رنگها تعيين يك مقدار كه است اين دارد وجود متغيرها و ثابتها بين كه تفاوتي كنيد. تعريف برنامه در بارها ميتوانيد را متغيرها مقدار صورتيكه در نيست تغيير قابل تعريف از پس ثابت دهيد. تغيير برنامه اجراي هنگام و عددي مقادير اوقات گاهي نمونه عنوان به دارد وجود نيز داليلي ثابتها از استفاده براي

107 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارچهارم: توانايی تعريف انواع متغيرها ثابت ها و استفاده از عملگرهای رياضی و رشته ای رشته اي خاصي به طور مكرر در برنامه استفاده مي شوند كه ذكر آن ها توا م با صرف زمان و ايجاد اشتباه در سطح برنامه خواهد شد اما با استفاده از يک ثابت مي توان مقدار مورد نظر را در آن ذخيره كرد و در هر جايي از برنامه نام ثابت را به جاي مقدار مربوطه به كار برد. در اين صورت برنامه خواناتر شده و ايجاد تغييرات در برنامه در آينده سريع تر و با اشتباه كمتري همراه خواهد بود. براي تعريف يک ثابت به اين صورت عمل كنيد: مقدار = نوع ثابت As نام ثابت Const تعريف ثابت ها و قوانين نام گذاري آن ها شبيه به متغيرهاست. نوع ثابت مي تواند از انواع داده ها در ويژوال بيسيک باشد كه در جدول 4-1 ارايه شده اند. پس از تعيين نوع داده براي ثابت و قراردادن عالمت مساوي مقدار موردنظر براي ذخيره سازي در ثابت قرار مي گيرد. مقادير رشته اي را داخل عالمت )"( و مقادير تاريخ و ساعت را داخل عالمت )#( قرار دهيد. به عنوان مثال به اين نمونه ها توجه كنيد: Const Conlength As Integer = 20 Const Conname As String = "Ali" Const ConcreateDate As Date = #12/5/98# مثال 3: يک پروژه طراحي كنيد كه كاربر توانايي محاسبه حجم يک استوانه دلخواه را داشته باشد. - 1 يک پروژه از نوع Standard EXE با يک فرم و كنترلهاي مربوطه مطابق شكل 4-3 و جداول 4-11 الي 4-13 ايجاد كنيد. جدول 4-11 خصوصياتفرم مقدار خصوصيت Name Caption frmcyl Cylinder شكل

108 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: كنترلها خصوصيات 4-12 جدول كنترل خصوصيت Label Label Label Label Name lblr lblh lblc lblresult كنترل Caption خصوصيت Radius : Height : Capacity : كنترلها خصوصيات 4-13 جدول TextBox TextBox Command Button Name txtr txth cmdcalc Caption Calculate& وسيله به كنيد. تنظيم -3 Fixed مقدارDialog روي را فرم Border Style خصوصيت - 2 تغيير قابليت و كنترل منوي كنترلي دكمههاي فرم دور كادر ميتوان خصوصيت اين جدول در شده ارائه موارد از يكي ميتواند خصوصيت اين كرد. تعيين فرم در را اندازه نمايد. كسب را 4-14 خصوصيت مقدار 0-None 1- Fixed Single 2- Sizable 3- Fixed Dialog 4-Fixed Tool Window 5- Sizable Tool Window Border Style خصوصيت 4-14 جدول توضيح ثابت اندازه با و كنترلي دكمههاي كنترل منوي نوارعنوان كادر بدون فرم دكمههاي با اندازه تغيير قابليت و كنترلي دكمههاي نوارعنوان كادر با فرم Maximize و Minimize اندازه تغيير قابليت و كنترلي دكمههاي نوارعنوان كادر با فرم و Minimize كنترلي دكمههاي بدون نوارعنوان كنترل منوي كادر با فرم در فرم آيكن برنامه اجراي هنگام در ضمن در ثابت. اندازه با و Maximize نميشود. داده نمايش Taskbar تغييراندازه قابليت بدون و كوچك( )بااندازه Close دكمه و نوارعنوان كادر با فرم نميشود. داده نمايش درTaskbar فرم آيكن برنامه اجراي هنگام در عالوه به اندازه تغيير قابليت و كوچك( اندازه )با Close دكمه و نوارعنوان كادر با فرم نميشود. داده نمايش درTaskbar فرم آيكن برنامه اجراي هنگام در عالوه به 98

109 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارچهارم: توانايی تعريف انواع متغيرها ثابت ها و استفاده از عملگرهای رياضی و رشته ای نكته منوي كنترل در نوارعنوان فرمها در سمت چپ عنوان فرم به صورت يک آيكن كوچک نمايش داده ميشوند و شامل گزينههايي مانند Restore Maximize Minimize Size Move و Close است كه براي مديريت فرم ها استفاده مي شود. - 3 رويداد Click كنترل دكمه فرمان را به اين صورت تنظيم كنيد: Private Sub cmdcalc_click)( Const pi As Single= lblresult.caption=pi*val(txtr.text(^2*val(txth.text( End Sub 4- پروژه و فرم را با نام cylinder ذخيره كنيد سپس پروژه را اجرا كرده و برنامه را به ازاي چند مقدار آزمايش كنيد. 5- به اجراي پروژه خاتمه دهيد و به پنجره ويژوال بيسيک بازگرديد. براي استفاده از مقدار عدد π از ثابت pi استفاده شده است كه موجب دقيق تر شدن محاسبات و تايپ راحت تر دستورات خواهد شد. 4-4 متغيرهاي ايستا محلي و عمومي در ويژوال بيسيك 99 در اين جا الزم است انواع متغيرها را از نظر ميدان ديد )Scope( و شناسايي آن ها در بخش هاي مختلف برنامه مورد بررسي قرار دهيد. ميدان ديد يک متغير معين مي كند كه بعد از تعريف يک متغير چه بخش هايي از برنامه مي توانند به آن دسترسي داشته باشند و از آن استفاده كنند. وقتي متغيري در يک رويه رويداد تعريف مي شود فقط دستورات داخل آن رويه رويداد مي توانند به آن دسترسي داشته باشند چنين متغيرهايي را متغيرهاي محلي )Local( در سطح رويه مي گويند. در اين صورت با خروج از رويه رويداد متغير در حافظه پاك شده و مقدار ذخيره شده در آن از بين مي رود. براي تعريف اين نوع از متغيرها مي توانيد از دستورDim استفاده كنيد. نوع ديگري از متغيرهاي محلي نيز وجود دارند كه با استفاده از كلمه كليدي Static به جاي Dim تعريف مي شوند اين نوع متغيرها تمام ويژگي هاي متغيرهاي محلي را دارند

110 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه با اين تفاوت كه پس از خاتمه اجراي رويه اي كه در آن تعريف شده اند مقدار آن ها در حافظه از بين نمي رود و در اجراي بعدي رويه مربوطه مي توانيد از مقادير قبلي متغير استفاده كنيد. به عنوان مثال به اين نمونه ها توجه كنيد: Dim intno As Integer Static sngk As Single اما گاهي اوقات الزم است تا يک متغير در تمام رويه هاي يک ماژول فرم قابل استفاده باشد براي اين كار مي توانيد متغير مورد نظر را در بخش تعاريف ماژول فرم و با استفاده از كلمه كليدي Private تعريف كنيد. در صورت تعريف يک متغير به صورت فوق تمام رويه هاي موجود در همان ماژول مي توانند از متغير مربوطه استفاده كنند و تا زماني كه فرم از حافظه خارج نشده است مقدار خود را حفظ نمايند. شكل كلي نحوه استفاده از اين نوع متغيرها به اين صورت است: نوع داده As نام متغیر Private به عنوان مثال در صورتي كه متغيرهاي زير در بخش تعاريف ماژول فرم تعريف شوند در همه سطح ماژول فرم قابل شناسايي و استفاده مي باشد. Private strname As String Dim snggrasde As Single نكته به جاي استفاده از كلمه كليدي Private ميتوانيد از كلمه كليدي Dim نيز استفاده كنيد. 4-5 عملگرهاي رشته اي در ويژوال بيسيك عالوه بر عملگرهاي رياضي مقايسه اي و منطقي عملگرهاي ديگري نيز وجود دارند كه توانايي انجام عمليات را روي رشته ها فراهم مي كنند. يكي از اين عملگرها عملگر جمع )+( است اين عملگر مي تواند دو يا چند مقدار رشته اي را به يكديگر اضافه كند به عنوان مثال عبارت "Basic" "Visual" + رشته اي به صورت "VisualBasic" را به وجود مي آورد. البته اين عملگر را مي توانيد براي متغيرها و 100

111 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارچهارم: توانايی تعريف انواع متغيرها ثابت ها و استفاده از عملگرهای رياضی و رشته ای خصوصيات از نوع رشته اي به كار ببريد. نكته به جاي عملگر+ ميتوانيد از عملگر & نيز استفاده كنيد. مثال 4: پروژه اي طراحي كنيد كه هزينه رنگ آميزي يک سالن يا اتاق را با دريافت ابعاد آن ها و با فرض اين كه هزينه هر مترمربع ريال باشد محاسبه نمايد. براي اين كار عمليات زير را به ترتيب انجام دهيد: يک پروژه از نوع Standard EXE ايجاد كنيد كه شامل يک فرم و كنترل هاي مربوطه مطابق شكل 4-4 و جداول 4-15 الي 4-18 باشد سپس خصوصيت BorderStyle فرم را روي مقدار 3-Fixed Dialog تنظيم كنيد. سپس رويداد Click دكمه فرمان Calculate را به اين صورت تنظيم كنيد: Private Sub cmdcalc_click)( Dim dblarea As Double Dim curpay As Currency dblarea=2*val(txtrl.text(*val(txtrh.text(+ 2*Val(txtrw.Text(*Val(txtrh.Text(+ _ Val(txtrl.Text(*Val(txtrw.Text( curpay = dblarea * lblar.caption=str(dblarea(+ "M2" lblpay.caption=str(curpay(+"rials" End Sub در اين رويداد پس از محاسبه مساحت سطح و هزينه رنگ آميزي شده مقادير آن ها به ترتيب در متغيرهاي dblarea و curpay ذخيره مي شوند سپس با استفاده از كنترل هاي برچسب مساحت سطح رنگ شده و كل هزينه براي پرداخت نمايش داده مي شود. در دستوراتي كه براي نمايش نتيجه محاسبات استفاده شده اند ابتدا با استفاده از تابع Str مقادير عددي به مقادير رشته اي تبديل مي شوند سپس با استفاده از عملگر + آن ها را به هم متصل كرده و در خصوصيت Caption كنترل هاي برچسب ذخيره مي شوند تا در روي فرم نمايش داده شوند. 101

112 اجتماعی امور و كار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بيسيک ويژوال نويسی برنامه استاندارد: نام پيشرفته كار رايانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: جدول 4-15 خصوصياتفرم خصوصيت مقدار Name Caption frmpaint Paint جدول 4-16 خصوصياتكنترلها شكل 4-4 كنترل خصوصيت Label Label Label Name lblrl lblrw lblrh Caption Room Length : Room Width : Room Height : جدول 4-17 خصوصياتكنترلها كنترل خصوصيت Label Label Label Label Command Button Name lbla lblar lblpay lblpayr cmdcalc Caption Area: 0 Payment : 0 &Calculate جدول 4-18 خصوصياتكنترلها كنترل TextBox TextBox خصوصيت TextBox Name txtrl txtrw txtrh آنها ميتوانيد باشند طوالني حد از بيش دستورات به مربوط خطوط كه صورتي در نكته كنيد. مرتبط هم به زيرخط كاراكتر با را آنها و كنيد تايپ خط چند در را 102

113 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارچهارم: توانایی تعریف انواع متغیرها ثابتها و استفاده از عملگرهای ریاضی و رشتهای - 3 پروژه و فرم را با نام Paint ذخيره و اجرا كنيد سپس اعداد 2/5 4 و 3 متر را به ترتيب براي طول عرض و ارتفاع وارد كنيد و روي دكمه Calculate كليك كرده و نتيجه محاسبات را بررسي كنيد. - 4 برنامه را براي مقادير ديگري نيز آزمايش كنيد سپس از برنامه خارج شويد. تمرين: پروژهاي طراحي كنيد كه نام و نام خانوادگي هر فرد دلخواهي را دريافت كند سپس ترتيب آن دو را در كنار هم با يك كنترل برچسب نمايش دهد. عالوه بر عملگر جمع عملگر ديگري به نام Like نيز وجود دارد كه توانايي انجام عمليات روي رشتهها را دارد. اين عملگر يك رشته را با رشته ديگري مقايسه كرده و نتيجه را مشخص ميكند. ميتوانيد از اين عملگر به صورت زير استفاده كنيد: عبارت رشتهاي دوم Like عبارت رشتهاي اول اگر عبارت رشتهاي اول با عبارت رشتهاي دوم مشابه باشد مقدار True و اگر عبارت رشتهاي اول با عبارت رشتهاي دوم مشابه نباشد مقدار False به دست ميآيد به عنوان مثال مقايسه "ali" "ali" Like نتيجه True و مقايسه "alireza" "ali" Like نتيجه False در پيخواهد داشت. به عالوه با استفاده از كاراكترهاي *? # و [ ] ميتوانيد تركيبهاي متنوعي از مقايسهها را ايجاد كنيد. جدول 4-19 كاراكتر* بيانگر گروهي از كاراكترها عبارت كاراكتر? بيانگرهركاراكتردلخواه كاراكتر "abbba" Like "a*a" True # بيانگر هر كاراكتر رقمي و كاراكترهاي "F" Like "[A-Z]" True "F" Like "[!A-Z]" [ ] براي ايجاد بازهاي از كاراكترها در False "a2a" Like "a#a" True مقايسه به كار ميروند. براي مشخص True شدن بهتر مطلب به مثالهايي كه در False جدول 4-19 ارايه شدهاند توجه كنيد. "*BAT123khg" Like "B?T" "*CAT123khg" Like "B?T" 103 "am5b" Like "a[l - P] # [!c-e]" True

114 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه همانطوركه مالحظه ميكنيد اولين مقايسه نتيجه True در بردارد زيرا * ميتواند جانشين گروهي از كاراكترها شود. در عبارت دوم حرف F در بازه حروف A تا Z قرار دارد پس نتيجه True به دست ميآيد اما در عبارت سوم از كاراكتر! استفاده شده است و به اين معني است كه F جزء حروف A تا Z نيست و نادرست است. در عبارت بعدي وجود كاراكتر # در بين حروف پذيرش كاراكتر رقمي 2 را در رشته "a2a" توجيه ميكند. عبارتهاي بعدي نيز به همين صورت قابل بررسي هستند و تركيبي از حالتهاي گفته شده در آنها به كار رفته است. "Vb6" Like "?b#" تمرين: نتيجه اين مقايسهها را بهدست آوريد: "Microsoft" Like "M*" "Windows XP" Like "?i[a-z]*" "Visual C++" Like "Visual?[!A-Z]++" 104

115 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارچهارم: توانایی تعریف انواع متغیرها ثابتها و استفاده از عملگرهای ریاضی و رشتهای Learn in English Variables In Visual Basic, you use variables to temporarily store values during the execution of an application. Variables have a name (the word you use to refer to the value the variable contains) and a data type (which determines the kind of data the variable can store). Declaring Variables To declare a variable is to tell the program about it in advance. You declare a variable with the Dim statement, supplying a name for the variable: Dim variablename [As type]

116 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: واژهنامه ثابت پولي مقادير كردن تعريف كردن تعيين اجرا اولويت خصوصي عمومي كردن ذخيره كردن عرضه كردن تأمين موقت متغير تركيبي Constant Currency Declare Determine Execution Precedence Private Public Store Supply Temporary Variable Variant مطالب خالصه ميشود. استفاده رياضي عملگرهاي از رياضي عمليات انجام براي پولي منطقي رشتهاي عددي دادههاي از: عبارتند ويژوالبيسيك در دادهها انواع تركيبي. دادههاي و ساعت و تاريخ ميشود. استفاده Dim دستور از متغير تعريف براي كرد. تعريف آن قبلازاستفادهاز را متغير Option بايد دستورExplicit صورتاستفادهاز در شناسايي قابل رويداد همان در فقط ميشوند تعريف رويداد يك در كه متغيرهايي ميگويند. محلي متغيرهاي متغيرها اين به هستند استفاده و هستند استفاده و شناسايي قابل فرم ماژول رويدادهاي تمام در خصوصي متغيرهاي ميشود. استفاده تعاريف بخش از آنها تعريف براي و در مكرر و خودكار بهطور نظر مورد دستورات اجراي و زمان محاسبه براي ميشود. استفاده زمانسنج كنترل از معين زماني فاصلههاي.Like و & + از: عبارتند ويژوالبيسيك در رشتهاي عملگرهاي است: صورت اين به متدها از استفاده نحوه كلي شكل شيء.نام متد نام 106

117 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارچهارم: توانایی تعریف انواع متغیرها ثابتها و استفاده از عملگرهای ریاضی و رشتهای آزمون نظري - 1 كدام نوع از انواع داده براي تعريف يك متغير از نوع پولي مناسبتر است د- Boolean ج- Currency ب- Double الف- Single - 2 كدام عملگر رياضي نسبت به سايرين از اولويت پايينتري برخوردار است د- ضرب ج- توان ب- Mod الف - جمع - 3 كدام گزينه براي تعريف يك متغير از نوع اعداد صحيح بلند درست است د- # ج-! ب- & الف- % - 4 كدام عملگر رشتهاي مشابه عملگر جمع در رشتههاست د- # ج- Like ب- & الف- % - 5 اگر متغيري در بخش تعاريف ماژول فرم با دستور Dim معرفي شود متغير... ناميده ميشود. د- ايستا ج- خصوصي ب- محلي الف- عمومي - 6 كدام نوع داده براي تعريف اعداد مثبت كوچكتر از 255 مناسب است د- Long ج- Byte ب- Integer الف- String - 7 حاصل عبارت"####* C?m?u " Computer2004" Like "چيست ب- False الف- True د-درهنگاماجراپيامخطانمايشدادهميشود. ج- عبارت اشتباه است. - 8 متغيرهاي خصوصي يا Private در چه محدودهاي قابل شناسايي هستند الف- فرمها ب- ماژول فرمي كه در آن تعريف شدهاند. ج- تمام پروژه د- رويدادي كه در آن تعريف شدهاند. 9 - The variable can be declared with... statement in within a procedure. a- private b- public c- dim d- as 10- مفهوم متغير و نوع داده را توضيح دهيد و نحوه تعريف متغيرها را بيان كنيد. 11- تفاوت بين متغيرهاي عمومي و محلي را شرح دهيد. 12- انواع عملگرهاي رياضي و عملگرهاي رشتهاي را توضيح دهيد. 107

118 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آزمون عملي - 1 پروژهاي طراحي كنيد كه با توجه به نوع سپردهگذاري در يك بانك ميزان بهره ساليانه را مطابق اين جدول محاسبه كرده و نمايش دهد. نوع سپرده قرضالحسنه كوتاه مدت بلند مدت 3 ساله بلند مدت 6 ساله ميزان بهره 8 درصد 12 درصد 15 درصد - 2 يك پروژه از نوع Standard EXE طراحي كنيد كه شامل فرم به صورتي كه در شكل نشان داده شده و با اين شرايط باشد. الف- نام كاربر با اندازه 24 و با رنگ سياه و ضخيم در روي فرم نمايش داده شود. ب- كاربر بتواند با كليك روي دكمههاي Green Red و Blue رنگ قلم را در نام كاربر روي رنگ قرمز سبز يا آبي تنظيم كند. ج- در صورت كليك روي دكمه Hide نام كاربر مخفي شود به عالوه دكمه Hide غيرفعال و دكمه Show فعال شود. د- در صورت كليك روي دكمه Show نام كاربر نمايش داده شود به عالوه دكمه Show غيرفعال و دكمه Hide فعال شود. ه - فرم و پروژه را با نام Show ذخيره كنيد. 108

119 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارچهارم: توانایی تعریف انواع متغیرها ثابتها و استفاده از عملگرهای ریاضی و رشتهای Dim str1 As String, str2 As String Dim x As Integer str 1 ="34" str2="ali" x=val (str1)+val (str2( 2 (x 3 + y( (z 6 12( - 3 عبارات زير را به زبان ويژوالبيسيك تبديل كنيد. 15 y 7 9z 18x a c الف- b d ب- e 5 f 2 4x د- 5x+ ج- 3-4 عبارات زير را به صورت رياضي بنويسيد. الف- 14*z^3 2*x + 1/ ب- x\y*z/w^u ج 3*z- a/b^ پس از انجام دستورات زير حاصل متغير x چيست - 6 با توجه به تمرين 5 حاصل عبارات str1=str1+str2 و str1=str(x)+str2 چيست 109

120

121 واحد کارپنجم هدف جزیی توانايي استفاده از دستور شرطي IF و عملگرهاي مقايسهاي و منطقي هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- بتواند از دستور If با حالت يك دستوري و چند دستوري استفاده كند. 2- عملگرهاي مقايسهاي و منطقي و نحوه استفاده از آنها را توضيح دهد. 3- اولويت اجراي عملگرهاي مقايسهاي و منطقي را بيان كند. 4- يك فرم جديد را به پروژه اضافه كرده از كنترل دكمه فرمان استفاده كند و خصوصيات مربوط به كنترل دكمه فرمان را توضيح دهد. 5- بتواند با متدهاي Show وHide فرم كار كند. 6- به كمك كنترلهاي كادر تصوير وImage تصاوير مورد نظر خود را نمايش دهد. 7- بتواند از كادرهاي پيام و كادرهاي ورود داده استفاده كند. 111

122 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه کلیات در طراحي پروژههاي برنامهنويسي معموال نياز به كنترل روند برنامه خواهيد داشت چرا كه يك برنامه بايد در شرايط مختلف عملكرد مناسبي را از خود نشان دهد و توانايي تصميمگيري را با توجه به حاالت و رويدادهاي متفاوتي كه در هنگام اجراي برنامه رخ ميدهند داشته باشد. در چنين شرايطي استفاده از ساختارهاي تصميم اجتنابناپذير است. زبان برنامهنويسي ويژوالبيسيك امكانات الزم را براي كنترل روند اجراي برنامه در اختيار برنامهنويسان قرار ميدهد. 5-1 نحوه استفاده از ساختارIF و عملگرهاي مقايسهاي در برنامهها ساختارهاي تصميم به شما اجازه ميدهند كه نحوه اجراي برنامه را به ميل خود تغيير داده و تنظيم كنيد. يكي از انواع دستورات كنترلي در ويژوالبيسيك دستور If است. اين دستور با بررسي شرط يا شرطهاي تعيين شده و با توجه به درست يا نادرست بودن نتيجه بررسيها روند اجراي برنامه را معين ميكند. بهطوركلي ميتوانيد از دستور If به دو صورت يك دستوري و چند دستوري استفاده كنيد. شكل كلي دستور If در حالت يك دستوري به اين صورت است: يك دستور Else يك دستور Then شرطها If در اين دستور ابتدا شرط و مقايسه مورد نظري كه پس از دستور If قرار ميگيرد بررسي ميشود و در صورتيكه نتيجه بررسي شرط درست باشد دستوري كه پس از Then قرار گرفته است اجرا ميشود سپس دستوري كه پس از If قرار گرفته اجرا ميشود. اما در صورتيكه نتيجه بررسي شرط نادرست باشد از اجراي دستوري كه بعد از Then قرار گرفته است صرف نظر كرده و دستوري كه پس از Else قرار گرفته است اجرا ميشود. سپس دستور خطي كه پس از If قرار گرفته اجرا ميشود. البته در صورت تمايل ميتوانيد از بخش Else صرف نظر كرده و از آن استفاده نكنيد در نتيجه دستور پس از Then فقط در زمان درست بودن شرط اجرا ميشود و در غير اين صورت بدون اجراي آن كنترل برنامه به دستوري كه پس از If قرار گرفته منتقل ميشود. با اين حال گاهي الزم است از دستور If با حالت چند دستوري استفاده كنيد. شكل كلي دستور If در اين حالت در 112

123 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی ادامه آمده است: If )شرط)ها(( Then دستور)ات( دستور)ات( Else End If در اين حالت نيز مانند حالت يك دستوري اگر نتيجه شرطي كه پس از دستور If قرار گرفته است درست باشد دستورات بين Then و Else اجرا مي شوند و سپس دستوري كه پس از End If قرار گرفته است اجرا مي شود. اما در صورتي كه نتيجه بررسي شرط نادرست باشد از اجراي دستورات بين Then و Else صرف نظر مي شود و دستورات بين بخش Else و End If اجرا مي شوند. اكنون دستوري كه پس از End If قرار دارد اجرا ميشود. البته در اين حالت نيز استفاده از بخش Else اختياري است و ميتوانيد از اين دستور به صورت زير نيز استفاده كنيد: If شرطها Then دستور)ات( End If در اين حالت اگر نتيجه بررسي شرط درست باشد دستورات بين Then و End If اجرا مي شوند و سپس دستوري كه پس از End If قرار دارد اجرا مي شود و اگر نتيجه اين بررسي نادرست باشد از اجراي دستورات موجود بين Then و End If صرف نظر شده و اجراي برنامه به دستور پس از End If منتقل مي شود. مثال 1: پروژهاي طراحي كنيد كه يك عدد دلخواه را دريافت كرده و زوج يا فرد بودن آن را مشخص كند. براي اين منظور عمليات زير را به ترتيب انجام دهيد: - 1 برنامهويژوالبيسيكرااجراكنيدويكپروژهجديدازنوعEXE Standard بههمراهيك فرموكنترلهايآنرامطابقشكل 5-1 ايجادكنيدوخصوصيتهايآنهارامطابقجدولهاي 5-1 و 5-2 تنظيم نماييد: 113

124 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه جدول 5-1 خصوصيات فرم مقدار خصوصيت Name Caption Frmeven or odd Even or Odd شكل 5-1 كنترل خصوصيت جدول 5-2 خصوصيات كنترلها Label Label Text Box Command Button Name lblno lblresult txtno cmdevenodd Caption Enter No: &Even or Odd - 2 در اين مرحله رويداد Click دكمه فرمان cmdevenodd را بهصورت زير تنظيم كنيد: Private Sub cmdevenodd_click() Dim intno As Integer Dim R As Integer Intno = Val (txtno. Text) R= intno Mod 2 If R= 0 Then Else lblresult. Caption = " Your Number Is Even." lblresult. Caption = "Your Number Is Odd." End Sub در اين رويداد ابتدا رشته عددي كه در كنترل كادر متن txtno تايپ ميشود با استفاده از تابع Val به عدد تبديل شده و در متغير intno ذخيره ميشود سپس با استفاده از عملگر Mod باقيمانده تقسيم متغير intno را بر عدد 2 محاسبه ميكند و در متغير R قرار ميدهد. 114

125 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارپنجم: توانایی استفاده از دستور شرطی IFو عملگرهای مقایسهای و منطقی در اين مرحله دستور If شرط =R را بررسي ميكند اگر مقدار R برابر با صفر باشد عدد زوج است و نتيجه بررسي شرط درست )True( ميشود بنابراين پيام". Even "Your Number Is نمايش داده خواهد شد اما اگر عدد فرد باشد مقدار R برابر با 1 خواهد شد بنابراين نتيجه بررسي شرط نادرست )False( ميشود و پيام Odd" "Your Number Is نمايش داده ميشود. - 3 فرم و پروژه را با نام even or odd ذخيره كنيد. - 4 پروژه را اجرا كنيد و براي اعداد زوج و فرد آنرا آزمايش كنيد. - 5 اجراي پروژه را متوقف كرده و به پنجره ويژوالبيسيك بازگرديد. تمرين: پروژه مثال 1 را بهگونهاي تنظيم كنيد تا براي اعداد منفي و صفر با نمايش يك پيام خطا كاربر را مطلع نمايد. 5-2 كنترل كادر تصوير Box( (Picture يكي ديگر از ويژگيهاي زبان ويژوالبيسيك امكان استفاده آسان از تصاوير فايلهاي گرافيكي و عكسها در برنامههاست. براي نمايش تصاوير ميتوانيد از كنترل كادر تصوير استفاده كنيد. اين كنترل ميتواند انواع فايلهاي گرافيكي مانند ico jpg gif bmp و cur را نمايش دهد. مهمترين خصوصيت كنترل كادر تصوير Picture است. اين خصوصيت مسير و نام فايل گرافيكي يا تصوير را مشخص ميكند. براي اين كار كافي است روي دكمه در روبهروي خصوصيت مزبور كليك كنيد و بهوسيله كادرمحاوره Load Picture تصوير موردنظرتان را انتخاب كنيد. كنترل كادر تصوير داراي خصوصيتي به نام Align ميباشد. اين خصوصيت ميتواند محل نمايش تصوير را تعيين كند. مقاديري كه اين خصوصيت ميتواند كسب كند در جدول 5-3 ارائه شدهاند. 115

126 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه جدول 5-3 مقادير خصوصيت Align مقدار خصوصيت توضيح نمايش كنترل با استفاده از مقادير خصوصيتهايTop وLeft نمايش كنترل در باالي فرم نمايش كنترل در پايين فرم نمايش كنترل در سمت چپ فرم نمايش كنترل در سمت راست فرم 0 - None 1- Align Top 2-Align Bottom 3 -Align Left 4 -Align Right يكي ديگر از خصوصيتهاي كادر تصوير خصوصيت AutoSize است و ميتواند مقدار True يا False را كسب كند. در صورتيكه مقدار اين خصوصيت را روي True تنظيم كنيد اندازه كنترل كادر تصوير با اندازه تصوير بهصورت خودكار يكسان ميشود اما اگر مقدار اين خصوصيت روي False تنظيم شود اندازه كنترل كادر تصوير با توجه به مقدار خصوصيتهاي Height و Width تنظيم ميشود. به عبارت ديگر در اين حالت تصوير با اندازه خود و كنترل كادر تصوير نيز با اندازه خود نمايش داده ميشوند. كنترل كادر تصوير داراي خصوصيت ديگري به نام BorderStyle است. با استفاده از اين خصوصيت ميتوانيد كنترل كادر تصوير را با يك كادر در اطراف آن يا بدون كادر نمايش دهيد. خصوصيت BorderStyle ميتواند مقادير ارائه شده در جدول 5-4 را كسب كند. جدول 5-4 توضيح مقدار خصوصيت 0 -None 1 -Fixed Single كنترل كادر تصوير بدون كادر نمايش داده ميشود. كنترل كادر تصوير با كادر نمايش داده ميشود. شكل

127 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی كنترل كادر تصوير عالوه بر رويدادهاي مشتركي كه با ساير كنترلها دارد داراي دو رويداد Change وResize ميباشد. رويداد Change وقتي رخ ميدهد كه تصوير نمايش داده شده به وسيله كنترل كادر تصوير تغيير كند و رويداد Resize نيز زماني اجرا ميشود كه كنترل تغيير ميكند. اندازه مثال 2: پروژه اي طراحي كنيد كه يك تصوير را روي يك فرم نمايش دهد. براي اين منظور ابتدا فرم اصلي را طراحي كرده آن را كامل كنيد سپس عمليات بعد را به ترتيب انجام دهيد: - 1 برنامه ويژوال بيسيك را اجرا كنيد و يك پروژه جديد از نوع Standard EXE به همراه يك فرم مطابق شكل 5-3 ايجاد كنيد كه مشخصات فرم آن مطابق جدول 5-5 باشد. جدول 5-5 خصوصيات فرم مقدار خصوصيت Name Caption frmshow Show Picture شكل براي نمايش تصوير ميتوانيد از كنترل كادر تصوير )PictureBox( استفاده كنيد. براي استفاده از اين كنترل ابتدا به پنجره طراحي Form1 برويد و در جعبهابزار رويآيكن PictureBox دابل كليك كنيد تا كنترل كادر تصوير روي فرم قرار گيرد سپس خصوصيات كنترل كادر تصوير را مطابق جدول 5-6 تنظيم كنيد. جدول 5-6 مقدار خصوصيت Name picshow AutoSize True 117

128 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 3 اكنون بايد تصوير نمايشي را براي كنترل كادر تصوير انتخاب كنيد بنابراين روي كنترل كادر تصوير كليك نماييد و در پنجره خصوصيات خصوصيت Picture اين كنترل را پيدا كنيد. - 4 روي دكمه در روبهروي اين خصوصيت كليك كنيد و بااستفاده از كادرمحاوره Load Picture فايل EARTH.ICO را از مسير زير انتخاب كنيد همانطوركه مشاهده خواهيد كرد تصوير انتخاب شده روي فرم قابل مشاهده است. D:\Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Elements - 5 يك كنترل دكمه فرمان روي فرم قرار داده سپس ويژگي هاي آن را با توجه به جدول 5-7 تنظيم كنيد. از اين كنترل براي خروج از برنامه استفاده مي شود. جدول 5-7 مقدار خصوصيت Name Caption cmdexit &Exit نكته براي آنكه يك كليد دسترسي سريع براي يك كنترل ايجاد كنيد كافي است كه در خصوصيت Caption آن و قبل از حرف مورد نظر يك كاراكتر & تايپ كنيد در اينصورت فشردن كليد تركيبي Alt به همراه حرفي كه كاراكتر & قبل از آن تايپ شده است معادل كليك كردن روي كنترل دكمه فرمان خواهد بود. - 6 اكنون بايد رويداد مناسبي را انتخاب كنيد تا با استفاده از آن و در زمان كليك روي دكمه فرمانExit برنامه خاتمه يابد. بنابراين در پنجره طراحي فرم روي دكمه فرمان Exit دابلكليك كنيد تا پنجره كد فرم فعال شود و رويداد) ) cmdexit_click در اختيار شما قرار گيرد. سپس دستور زير را در اين رويداد تايپ كنيد: Unload frmshow در زمان اجرا وقتي كاربر روي دكمه Exit كليك كند رويداد ( ) cmdexit_click به دنبال آن دستور Unload اجرا خواهد شد اين دستور اطالعات فرم frmshow را از حافظه خارج مي كند به عبارت ديگر برنامه خاتمه مي پذيرد. 118

129 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی - 7 برنامه را اجرا كنيد و پس از مشاهده فرم و تصوير نمايشي روي دكمه Exit كليك كنيد تا برنامه خاتمه يابد. - 8 پروژه و فرم را با نام showpicture ذخيره كنيد. مثال 3: اكنون پروژه showpicture را كامل كنيد تا در هنگام اجراي برنامه ابتدا يك كلمه رمز سو ال شود و در صورت صحيح بودن كلمه رمز اجازه ورود كاربر به برنامه داده شود و فرم اصلي برنامه با تصوير مورد نظر نمايش داده شود. براي اين منظور عمليات زير را انجام دهيد: - 1 به پنجره ويژوال بيسيك و پروژه showpicture برويد. - 2 براي اضافه كردن يك فرم جديد در مكان خالي از پنجره پروژه كليك راست كنيد و گزينه Add را انتخاب كنيد سپس روي گزينه Form كليك كنيد )شكل 5-5(. شكل 5-4 شكل كادر محاوره Add Form مطابق شكل 5-6 نمايش داده مي شود كه دو زبانه New و Existing در آن ديده مي شود. براي ايجاد يك فرم جديد مي توانيد از زبانه New و براي اضافه كردن يك فرم كه قبال ايجاد و در روي ديسك ذخيره شده است از زبانه Existing استفاده كنيد.

130 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شكل 5-6 البته ميتوانيد فرمها را با يكي از اين روشها نيز اضافه كنيد: الف- براي دسترسي به كادر محاوره Add Form ميتوانيد گزينه Add Form را از منوي Project در نوار منوي ويژوالبيسيك انتخاب كنيد. ب- براي دسترسي به كادر محاوره Add Form ميتوانيد روي عالمت مثلثي شكل دكمه در نوار ابزار استاندارد كليك كنيد و سپس گزينه Form را انتخاب كنيد. - 3 در كادر محاوره Add Form ابتدا زبانه New را انتخاب كنيد سپس از كادر ليست موجود در زيرزبانهها رويآيكن Form و بعد رويدكمه Open كليك كنيد. همانطور كه مشاهده ميكنيد يكپنجره طراحيديگر در پنجره ويژوالبيسيك نمايش داده ميشود به عالوه در پنجرههاي پروژه خصوصيات و تعيين موقعيت نيز فرم اضافه شده قابل مشاهده است. - 4 ويژگيهاي فرم جديد را تنظيم كنيد و سپس آنرا با نام Log On در روي دسكتاپ ذخيره كنيد. 5 -اكنونبايد يك كنترل كادر متن برچسب و دكمه فرمانبا مشخصاتارائه شده در جدول 6-9 به پنجره frmlogon اضافه كنيد. - 6 حال بايد عملكرد برنامه را طوري تنظيم كنيد تا اگر عبارتي كه در كادر متن تايپ ميشود با كلمه رمز برابر باشد امكان ادامه اجراي برنامه فراهم شود. براي اينكار از رويداد كليك كنترل دكمه فرمان استفاده ميشود. اين رويداد زماني اجرا ميشود كه كاربر روي اين دكمه كليك كند يا كليد Enter را بفشارد. بنابراين كنترل cmdok را در پنجره طراحي 120

131 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی فرم frmlogon انتخاب كنيد سپس روي اين كنترل دابل كليك كنيد. همان طوركه مشاهده مي كنيد پنجره كد فرم نمايش داده مي شود و رويداد cmdok_click در دسترس شما قرار مي گيرد. با فرض اين كه كلمه رمز BASIC باشد رويداد Click اين كنترل را به صورت زير تنظيم كنيد: Private Sub cmdok_click() End Sub If txtpass.text = "BASIC" Then frmshow.show در رويداد cmdok_click از دستور If استفاده شده است. در اين دستور كلمه رمزي كه كاربر در كنترل كادر متن تايپ كرده و در خصوصيت Text كادر متن نگهداري مي شود با استفاده از عالمت تساوي )=( با عبارت "BASIC" كه به عنوان كلمه رمز در نظر گرفته شده است مقايسه مي شود. اگر كلمه رمز تايپ شده با عبارت "BASIC" برابر باشد دستوري كه بعد از كلمه كليدي Then قرار دارد اجرا مي شود و در غير اين صورت يعني اشتباه بودن كلمه رمز دستوري كه بعد از Then قرار گرفته است اجرا نمي شود و دستور خط بعد از If اجرا خواهد شد. اكنون به بررسي دستور frmshow.show كه بعد از كلمه كليدي Then قرارگرفته است مي پردازيم. Show متدي است كه مي تواند يك فرم را كه اطالعات آن در حافظه بارگذاري شده است نمايش دهد. البته در صورتي كه فرم در حافظه بارگذاري نشده باشد آن را بارگذاري كرده و سپس نمايش مي دهد. نكته متد Hide نيز از انواع متدهاي فرم است و عملكرد آن برعكس متد Show ميباشد و از نمايش فرم جلوگيري كرده و آن را مخفي مي كند اما اطالعات فرم را از حافظه خارج نمي كند. 7- مي دانيد كه در زمان تايپ كلمه رمز در مكان مربوطه براي جلوگيري از مشاهده كلمه رمز توسط ساير كاربران به جاي كاراكترهايي كه تايپ مي شوند كاراكتر ديگري نمايش داده مي شود. به اين منظور مي توانيد از خصوصيت PasswordChar كادر متن استفاده كنيد. اين خصوصيت كاراكتر تعيين شده را به جاي كاراكترهايي كه در كادر متن تايپ مي شوند نمايش مي دهند اما محتويات تايپ شده در كادر متن به همان صورت در 121

132 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: در و كرده پيدا را فوق خصوصيت بنابراين ميشود. نگهداري متن كادر Text خصوصيت مشاهده همانطوركه كنيد. تايپ را ) * ( ستاره كاراكتر خصوصيت اين روبهروي متن كادر به ميشود. داده نمايش متن كادر در و فرم طراحي پنجره در ستاره كاراكتر پنج ميكنيد كاراكتر متن كادر Text خصوصيت در موجود عبارت كاراكترهاي تعداد به ديگر عبارت 5-7(. )شكل ميشود داده نمايش ستاره 5-7 شكل خصوصيت كنيد. ايجاد محدوديت رمز كلمه كاراكترهاي تعداد براي مرحله اين در - 8 كرد تايپ ميتوان كنترل اين در كه را كاراكترهايي تعداد حداكثر متن كادر MaxLength ورودي كاراكترهاي تعداد كه است صفر خصوصيت اين فرض پيش مقدار ميكند. معين 5 مقدار روي txtpass كنترل براي را خصوصيت اين مقدار ميكند. پشتيباني را نامحدود متن كادر در را كاراكتر 5 حداكثر ميتوانيد برنامه اجراي هنگام نتيجه در كنيد. تنظيم كنيد. تايپ اين نمايش هنگام در تا كنيد تايپ frmlogon فرم Load رويداد در را زير دستور - 9 را رمز كلمه و كند پاك متن كادر در را Text1 فرض پيش مقدار نباشد مجبور كاربر فرم نمايد. تايپ txtpass.text ="" را پروژه و كرده ذخيره را پروژه و فرمها در شده ايجاد تغييرات مرحله اين در - 10 كنيد. اجرا فرم و شده داده نمايش frmshow فرم يعني برنامه اصلي پنجره ميبينيد همانطوركه كه فرمي عنوان به را فرم يك ميتوان برنامه هر در واقع در نميشود. مشاهده frmlogon 122

133 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی در ابتداي اجراي برنامه نمايش داده مي شود معرفي كرد. اگر از چند فرم در پروژه خود استفاده مي كنيد بايد فرم مورد نظر را براي نمايش در ابتداي اجراي برنامه معين كنيد. براي اين كار بايد از كادر محاوره Project شكل 5-8 Properties استفاده كنيد اجراي برنامه را متوقف كنيد و از منوي Project گزينه ShowPicture Properties را انتخاب كنيد تا كادر محاوره Project Properties نمايش داده شود. در زبانه General و در كادر ليست Startup Object روي دكمه كليك كنيد )شكل 5-8(. سپس از كادر ليستي كه نمايش داده ميشود فرم frmlogon را برگزيده و روي دكمه OK كليك كنيد برنامه را اجرا كنيد و عبارت BASIC را در كادر متن تايپ كنيد سپس روي دكمه OK كليك كنيد. همان طوركه مي بينيد فرم frmshow نمايش داده مي شود و هر دو فرم قابل مشاهده خواهند بود پنجره هاي برنامه را ببنديد و بار ديگر برنامه را اجرا كنيد و اين بار كلمه رمز را به صورت basic تايپ كنيد و روي دكمه OK كليك كنيد. همان طوركه مشاهده خواهيد كرد فرم برنامه نمايش داده نخواهد شد اجراي برنامه را متوقف كنيد و به پنجره ويژوال بيسيك بازگرديد. نكته در صورتيكه بخواهيد يك متغير در تمام فرمهاي پروژه قابل دسترسي و شناسايي باشد ميتوان آنرا با استفاده از كلمه كليدي Public در بخش تعاريف ماژول فرم تعريف نمود. به اين نوع از متغيرها متغير عمومي ميگويند. شكل كلي نحوه تعريف متغيرهاي عمومي به صورت زير است: نوع داده As نام متغیر Public 123

134 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه به عنوان مثال به اين نمونه توجه كنيد: Public curpayment As Currency براي دسترسي به متغيرهاي عمومي در ساير فرمها ميتوان نام فرمي را كه متغير در آن تعريف شده است را قبل از نام متغير قرار داد. به عنوان مثال اگر متغير curpayment در بخش تعاريف فرمي با نام frmmain تعريف شده باشد براي مقداردهي به آن در فرم frmsalary در همان پروژه ميتوان به اين صورت عمل كرد: frmmain. Curpayment = 2000 تمرين: - 1 برنامه را به شكلي تنظيم كنيد كه با كليك روي دكمه Exit تمام پنجرهها بهطور همزمان بسته شوند. - 2 برنامه را بهگونهاي تنظيم كنيد كه در هنگام خروج از برنامه پنجره كوچكي به همراه دو دكمه Yes و No مبني بر تأييد براي خروج از نرمافزار نمايش داده شود. در صورتيكه كاربر روي دكمه Yes كليك كند برنامه خاتمهيابد و در صورتي كه روي دكمه No كليك كند به برنامه بازگردد. در اينجا الزم است با انواع عملگرهاي مقايسهاي آشنا شويد. براي انجام هرگونه مقايسه ميتوانيد از اين عملگرها مطابق جدول 5-8 استفاده كنيد. عملگر = <= >= < > > < جدول 5-8 عملگرهاي مقايسهاي ويژوالبيسيك نتيجه مقايسه مثال مفهوم عملگر نادرست "Ali"="BASIC" تساوي درست "BASIC"<="basic" كوچكتر يا مساوي نادرست "BASIC">="Basic" بزرگتر يا مساوي نادرست < 5 1 كوچكتر درست < 2/75 14/5 بزرگتر نادرست 2- >< 2- عدم تساوي يا نامساوي 124

135 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی نكته در مقايسه كاراكترها و عبارات رشتهاي از كد اسكي كاراكترها براي انجام مقايسه استفاده ميشود. عملگرهاي مقايسهاي را ميتوانيد براي مقايسه هر نوع دادهاي استفاده كنيد با توجه به اينكه مقاديري كه مقايسه ميشوند از يك نوع باشند. گاهي اوقات ممكن است از چند عملگر مقايسه اي در يك عبارت استفاده شود. در اين صورت اين سو ال مطرح مي شود كه كدام يك از عملگرها زودتر پردازش مي شوند. در واقع در يك عبارت مقايسه اي با چند عملگر عمليات با توجه به ترتيب قرار گرفتن عملگرها از چپ به راست عبارت انجام مي شود و اگر از پرانتز استفاده شود اولويت و حق تقدم عمليات با عملگرهاي موجود در داخل پرانتز خواهد بود. به عنوان مثال اين عبارت را در نظر بگيريد: > 1 = 2 در عبارت مذكور ابتدا مقايسه 1 < 2 بررسي مي شود كه نتيجه نادرست يا False را دربر خواهد داشت سپس مقايسه False = بررسي مي شود كه نتيجه آن درست يا True خواهد بود. تمرين: - 1 پروژه showpicture را به شكلي تنظيم كنيد تا در صورتيكه كلمه رمز وارد شده صحيح باشد فرم frmlogon از روي دسكتاپ برداشته شده و سپس فرم frmshow مشاهده شود همچنين در صورت نادرست بودن كلمه رمز رنگ كاراكترهاي تايپ شده قرمز شود و كاربر توانايي ورود كلمه رمز ديگري را نداشته باشد. در ضمن در صورت ورود كلمه رمز بهصورت اشتباه دكمه OK غيرفعال شود و رنگ زمينه كادر متن نيز به رنگ آبي درآيد. - 2 پروژهاي طراحي كنيد كه كاربر با تايپ اسامي كشورها بتواند ساير مشخصات مانند وسعت جمعيت پرچم مذهب و واحد پول آنها را نمايش دهد و همچنين بتواند براي ورود به نرمافزار يك كلمه كاربر و يك كلمه رمز را وارد كند. 125

136 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه 5-3 نحوه استفاده از عملگرهاي منطقي براي ترکیب شرط ها گاهي اوقات ممكن است الزم باشد در دستورات شرطي بيش از يك شرط مورد بررسي قرار گيرد و براساس نتيجه حاصل از بررسي تمام شرط ها اجراي برنامه صورت گيرد در اين حالت مي توان از عملگرهاي منطقي مانند OR AND يا NOT استفاده كرد. اين عملگرها امكان تركيب دو يا چند شرط را با يكديگر فراهم مي كنند. مثال 4: يكي ديگر از موارد قابل توجه در مثال قبل اين است كه ويژوالبيسيك بين حروف كوچك و بزرگ تفاوت قائل ميشود به عنوان مثال عبارت BASIC را با عبارت basic مساوي در نظر نميگيرد. البته اگر بخواهيد ميتوانيد اين حالت را تغيير دهيد و به ويژوالبيسيك بگوييد كه بين حروف كوچك و بزرگ تفاوت قائل نشود. به اين منظور بايد دستور Option Compare Text را در بخش تعاريف Section( )Declarations در پنجره كد فرم frmlogon بنويسيد )شكل 5-9(. شكل 5-9 برنامه را اجرا كنيد و كلمه رمز را به صورت basic تايپ كنيد و روي دكمه OK كليك كنيد. همان طور كه مشاهده خواهيد كرد اين بار كلمه رمز پذيرفته مي شود. روي دكمه Exit كليك كنيد تا برنامه خاتمه يابد سپس تغييرات را ذخيره نماييد. البته اين كار را مي توانيد به روش ديگري نيز انجام دهيد كه در اين جا به ذكر آن مي پردازيم. با استفاده از 126

137 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه منطقی و مقایسهای عملگرهای IFو شرطی دستور از استفاده توانایی کارپنجم: واحد ايجاد را شرط چند از مختلفي تركيبهاي ميتوانيد ويژوالبيسيك در منطقي عملگرهاي را basic يا BASIC عبارت نوع دو هر برنامه آنكه براي قبل پروژه در مثال عنوان به كنيد cmdok_click رويداد در موجود If دستور از اول خط ميتوانيد بپذيرد رمز كلمه عنوان به كنيد: تنظيم صورت اين به را If txtpass.text = "BASIC" Or txtpass.text = "basic" Then دو با را پروژه و كنيد حذف تعاريف بخش از را Option Compare Text دستور سپس مالحظه كه همانطور نماييد. بررسي را نتيجه و كنيد آزمايش رمز كلمه مختلف حالت ميشود. پذيرفته رمز كلمه بار دو هر در كرديد از است. ويژوالبيسيك در منطقي عملگرهاي از يكي منطقي( )"يا" Or عملگر استفاده مختلف شرط چند از نظر مورد تركيبهاي ايجاد براي منطقي عملگرهاي تركيب هم با Or منطقي عملگر از استفاده با شرط چند يا دو صورتيكه در ميشود. شرطها از يكي حداقل كه است درست زماني شرطي تركيب تمام بررسي نتيجه شوند كه داشت خواهد نادرست نتيجه شرطي تركيب زماني ديگر عبارت به يا باشد درست رد ميآيد بهوجود Or عملگر با كه شرطي تركيب نتيجه باشند. نادرست شرطها تمام شده ارايه 5-9 جدول در مختلف حالتهاي عبارتهاي جدول اين در B و A از منظور است. شرطي تركيب Or عملگر با كه است مقايسهاي يا و درست ارزش ميتوانند و آورده وجود به را باشند. داشته نادرست بگيريد: نظر در را عبارت اين مثال عنوان به A 5-9 جدول B A Or B نادرست درست درست درست نادرست نادرست درست درست نادرست درست نادرست درست "ALI" = "ali" Or "d" < "B" Or "Tehran" > = "TABRIZ" يكديگر با Or منطقي عملگر با كه است شده استفاده مقايسهاي عبارت دو از فوق عبارت در ميكنيد: عمل زير صورت به تركيب اين نتيجه آوردن بهدست براي پس شدهاند تركيب "ALI" ="ali" Or "d" < "B" Or "Tehran" > = "TABRIZ" درست درست نادرست نادرست نادرست

138 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه عالوه بر عملگر منطقي Or دو عملگر منطقي ديگر كه معموال مورد استفاده برنامه نويسان قرار مي گيرند عبارتند از: عملگر منطقي )" And و" منطقي( و عملگر منطقي Not )نقيض(. نتيجه عبارت شرطي كه با And ايجاد مي شود در جدول 5-1 ارايه شده است. همان طور كه مالحظه مي كنيد فقط زماني تركيب شرطي نتيجه درست خواهد داشت كه نتيجه هر دو مقايسه و شرط به طور هم زمان درست باشد در غير اين صورت تركيب شرطي نتيجه نادرست خواهد داشت. نتيجه تركيب شرطي كه عملگر Not روي آن انجام مي شود مطابق جدول 5-11 است. همان طور كه مشاهده مي كنيد عملگر Not مي تواند ارزش يك شرط يا تركيب شرطي را معكوس كند. A درست نادرست درست نادرست جدول 5-11 A Not A نادرست درست درست نادرست جدول 5-1 B A And B درست درست درست نادرست نادرست نادرست نادرست نادرست اكنون ارزش درستي اين عبارت را به دست آوريد: Not ("ali" < = "ALI") Or ("Reza" > "R") And ("Computer" < > "computer") قبل از اين كه ارزش درستي عبارت قبل را به دست آوريد ذكر اين نكته ضروري است كه عملگرهاي منطقي نيز مانند عملگرهاي مقايسه اي نسبت به هم اولويت اجرايي دارند و اگر از عملگرهاي مشابه در يك عبارت استفاده شود حق تقدم و اولويت اجراي آن ها از چپ به راست خواهد بود اما اگر از عملگرهاي متفاوت استفاده شود حق تقدم اجراي آن ها با توجه به جدول 5-12 و از باال به پايين خواهد بود. جدول 5-12 Not And Or نكته اولويت اجراي عملگرهاي مقايسه اي از عملگرهاي منطقي باالتر است. 128

139 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی با توجه به مطالب گفته شده نحوه ارزيابي عبارت مورد نظر به اين صورت خواهد بود: Not ("ali" < = "ALI") Or ("Reza" > "R") And ("Computer" < > "computer") ( درست ) And ( درست ) Or ( نادرست Not) 2 درست درست 1 3 درست تمرين: در صورتيكه مقدارA=2 14-=B و C= باشد ارزش درستي اين عبارات را بهدست آوريد: A < C Or Not B< > C AND "A" = "Q" Or C < = 2 "6" > = "9"AND A > B Or Not C > B 5-4 کنترل تصوير ويژوالبيسيك كنترل ديگري بهنام تصوير Image دارد كه مانند كادر تصوير براي نمايش تصاوير بهكار ميرود. خصوصيات اين كنترل مشابه كنترل كادر تصوير است اما كنترل تصوير )Image( يك خصوصيت به نام Stretch دارد كه در كنترل كادر تصوير وجود ندارد. اين خصوصيت از نوع منطقي بوده و در صورتيكه روي مقدار False تنظيم شود اندازه كنترل با اندازه تصوير هماهنگ ميشود. اما اگر اين خصوصيت روي مقدار True تنظيم شود اندازه تصوير با توجه به اندازه كنترل تنظيم ميشود. ميتوانيد از اين خصوصيت براي بزرگ و كوچك كردن تصاوير استفاده كنيد. مثال 5: پروژه اي طراحي كنيد كه كاربر بتواند هر فايل گرافيكي مورد نظر خود را در يك پنجره مطابق شكل 5-1 نمايش دهد. 129

140 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شكل برنامه ويژوالبيسيك را اجرا كنيد و يك پروژه از نوع Standard EXE ايجاد كنيد سپس كنترلهاي مربوطه را مطابق جدول 5-13 ايجاد كنيد و فرم و پروژه را با نام Image ذخيره نماييد. جدول 5-13 كنترل خصوصيت Form TextBox Label Command Button Image Command Button Name frmimage txtfilename lblfilename cmdok imgshow cmdexit Exit Path and File Name: &OK Caption Image True Stretch True AutoSize - 2 به پنجره كد فرم برويد و رويداد Load فرم و Change كادر متن را به صورت زير تنظيم كنيد. اين دستورات باعث ميشوند تا زمانيكه كاربر نام و مسير فايلي را در كادر متن تايپ نكند دكمه OK فعال و قابل استفاده نباشند. 130

141 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی - 3 اين دستور را در رويداد Click دكمه Exit تايپ كنيد: Private Sub Form_Load() End Sub cmdok.enabled =False Private Sub txtfilename_change() End Sub cmdok.enabled = True Unload frmimage ذكر اين نكته ضروري است كه براي خروج اطالعات فرم فعال از حافظه و پايان دادن به برنامه مي توانيد از دستور Unload Me استفاده كنيد كلمه كليدي Me به نام فرم فعال اشاره مي كند. - 4 براي آن كه پس از تايپ نام مسير فايل و كليك روي دكمه OK تصوير مورد نظر نمايش داده شود رويداد Click دكمه فرمان OK را به اين صورت تنظيم كنيد: Private Sub cmdok_click() End Sub imgshow.picture= LoadPicture (txtfilename.text) با كليك روي دكمه OK اين رويداد اجرا شده و تصوير مورد نظر به وسيله تابع Load Picture نمايش داده مي شود. تابع LoadPicture مي تواند نام و مسير يك فايل گرافيكي را دريافت كند و آن را در يك كنترل كادر تصوير )PictureBox( يا تصوير )Image( نمايش دهد. شكل كلي نحوه استفاده از اين تابع به صورت زير است: )" نام و مسیر فايل گرافیكي"( LoadPicture. Picture = نام کنترل تصوير يا کادر تصوير نكته بايد نام و مسير فايل را داخل كاراكتر " قرار دهيد. اگر از تابع فوق به صورت )""( Load Picture استفاده كنيد تصوير نمايش داده شده در كنترل كادر تصوير يا كنترل تصوير برداشته شده و حذف ميشود. 131

142 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 5 پروژه را اجرا كرده و نام و مسير يك فايل گرافيكي را در كادر متن بنويسيد و روي دكمه OK كليككنيد. - 6 اجراي پروژه را خاتمه دهيد و به پنجره ويژوالبيسيك بازگرديد. 5-5 اولويت اجراي عملگرها نسبت به يكديگر تاكنوناولويتاجراي عملگرها در گروه خود را فرا گرفتيد. عملگرهاي موجود در گروههاي مختلف نيز در صورتيكه در يك عبارت قرار بگيرند داراي اولويت اجرايي نسبت به هم هستند اولويت عملگرها در تمام گروهها در جدول 5-14 ارايه شدهاند. باالترين اولويت مربوط به عملگرهاي رياضي و پايينترين اولويت مربوط به عملگرهاي منطقي ميشود. جدول 5-14 عملگرهاي رياضي براساس اولويتهاي ذكر شده عملگر اتصال رشتهها )&( عملگرهاي مقايسهاي براساس اولويتهاي ذكر شده عملگرهاي منطقي براساس اولويتهاي ذكر شده 5-6 نحوه استفاده از كادرهاي پيام در ويژوالبيسيك احتماال تاكنون با كادرهاي پيام در ويندوز برخورد كردهايد كادرهاي پيام معموال براي تأييد يا لغو عمليات يا مطلع كردن كاربران از يك اتفاق يا خطا استفاده ميشوند و معموال پيامي را به همراه يك يا چند دكمه به كاربر نمايش ميدهند تا با توجه به نياز خود تصميمگيري مناسب را انجام دهد. به عنوان مثال ميتوان به كادرهاي پيامي كه در شكلهاي 5-11 و 5-12 نمايش داده شدهاند اشاره كرد. شكل 5-12 شكل

143 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارپنجم: توانایی استفاده از دستور شرطی IFو عملگرهای مقایسهای و منطقی ويژوالبيسيك توانايي ايجاد انواع مختلفي از كادرهاي پيام را براي شما فراهم ميكند. براي نمايش كادرهاي پيام در ويژوالبيسيك از تابع MsgBox استفاده ميشود. نحوه استفاده از اين تابع به يكي از اين روشها امكانپذير است: )عنوان, نوع و تعداددكمهها و آيكن كادرپيام, پيامنمايشي( = MsgBox ناممتغيرازنوعصحيح عنوان, نوع و تعداد دكمهها و آيكن كادر پيغام, پيام نمايشي MsgBox پيام نمايشي و عنوان ميتوانند يك عبارت يا متغير رشتهاي باشند كه به ترتيب پيام نمايشي داخل كادر پيام و عنوان كادر پيام را تعيين ميكنند. بخش دوم در تابع MsgBox ميتواند نوع و تعداد دكمهها, نوع آيكن كادر پيام و دكمه پيش فرض را در كادر پيام تعيين كند. براي اين كار ميتوانيد مقادير عددي يا رشتهاي ارايه شده در جداول 5-15 الي 5-17 را با استفاده از كاراكتر + با هم تركيب كنيد. جدول 5-15 مقادير مربوط به نوع و تعداد دكمهها در كادر پيام ثابت رشتهاي ثابت عددي توضيح vbokonly كادر پيام با دكمه OK vbokcancel 1 كادر پيام با دكمه OK و Cancel vbabortretryignore 2 كادر پيام با دكمه Retry Abort و Ignore vbyesnocancel 3 كادر پيام با دكمه No Yes و Cancel vbyesno 4 كادر پيام با دكمه Yes و No كادر پيام با دكمه Retry و Cancel vbretrycancel 5 جدول 5-16 مقادير مربوط به نوع آيكن در كادر پيام توضيح آيكن پيام خطاي بحراني آيكن پرسش آيكن پيام هشدار آيكن پيام اطالعات ثابت عددي ثابت رشتهاي vbcritical vbquestion vbexclamation vbinformation 133

144 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه جدول 5-17 مقادير مربوط به دكمه پيشفرض ثابت عددي توضيح اولين دكمه دكمه پيش فرض است. دومين دكمه دكمه پيش فرض است. سومين دكمه دكمه پيش فرض است. صفر ثابت رشته اي vbdefaultbutton1 vbdefaultbutton2 vbdefaultbutton نكتهدكمه پيشفرض دكمهاي است كه در زمان نمايش كادر پيام فوكوس را در اختيار ميگيرد. وقتي كه كاربر روي دكمهاي در كادر پيام كليك كند يكي از مقادير ارائه شده در جدول 5-18 بازگشت داده ميشود. با ذخيرهسازي اين مقدار در يك متغير از نوع Integer ميتوان با توجه به پاسخ كاربر اجراي دستورالعملها را كنترل و مديريت كرد. جدول 5-18 مقادير مربوط به دكمه اي كه كليك مي شود. توضيح اگر روي دكمه OK كليك شود. اگر روي دكمه Cancel كليك شود. اگر روي دكمه Abort كليك شود. اگر روي دكمه Retry كليك شود. اگر روي دكمه Ignore كليك شود. اگر روي دكمه Yes كليك شود. اگر روي دكمه No كليك شود. به عنوان مثال به دستور زير توجه كنيد: ثابت عددي ثابت رشته اي vbok vbcancel vbabort vbretry vbignore vbyes vbno Intanswer=MsgBox("Data Entry Is Invalid!", vbretrycancel+vbcritical+vbdefaultbutton2, "Error") شكل 5-13 در صورت اجراي اين دستور كادر پيامي مطابق شكل 5-13 نمايش داده مي شود. همان طور كه مالحظه مي كنيد در بخش دوم با استفاده از كاراكتر + مقادير مربوط به نوع آيكن, تعداد و نوع دكمه ها و دكمه پيش فرض تعيين شده اند. 134

145 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی اگر كاربر روي دكمه Retry كليك كند مقدار VbRetry )معادل عدد 4( در متغير Intanswer ذخيره مي شود و اگر روي دكمه Cancel كليك كند مقدار VbCancel )معادل عدد 2( در متغير Intanswer ذخيره مي شود. نكته اگر نوع و تعداد دكمهها تعيين نشده باشند كادر پيام با دكمه OK نمايش داده ميشود. صورت عدم انتخاب آيكن, هيچ آيكني نمايش داده نخواهد شد. به عالوه اگر دكمه پيشفرض در انتخاب نشده باشد اولين دكمه در كادر پيام به عنوان دكمه پيش فرض انتخاب خواهد شد. به عنوان مثال اين دستور يك كادر محاوره مطابق شكل 5-14 ايجاد مي كند. Intanswer=MsgBox("Password Is Not Correct!?", vbokcancel) شكل 5-14 مثال 6: ميخواهيم پروژه Image را به شكلي تنظيم كنيم تا هنگام خروج از برنامه تأييدي به كاربر نمايش داده شود. پيام - 1 پروژه Image را باز كنيد و به پنجره طراحي فرم برويد. - 2 روي دكمه فرمان Exit دوبار كليك كنيد تا به رويداد Click دكمه فرمان Exit برويد. - 3 دستورات رويداد Click دكمه فرمان Exit را به اين صورت تغيير دهيد. Private Sub cmdexit_click() Dim intanswer As Integerintanswer=MsgBox("DoYou Want To Exit?", VbYesNo + vbquestion,"exit") If intanswer =vbyes Then UnLoad me End Sub دراين رويداد با استفاده از تابع MsgBox كادر پيامي طراحي شده است كه شامل عبارت Exit? Do You Want To و عنوان Exit به همراه دو دكمه Yes و No مي باشد. در صورت اجراي برنامه و كليك روي دكمه Exit اين رويداد اجرا مي شود و با نمايش كادر پيام سبب 135

146 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه توقف اجراي برنامه ميشود و تا زماني كه كاربر پاسخي به كادر پيام ندهد اجراي برنامه متوقف خواهد ماند اما در صورتي كه كاربر روي يكي از دكمههاي كادر پيام كليك كند تابع MsgBox مقداري مناسب با دكمه مربوطه در متغير intanswer ذخيره ميكند. اگر كاربر روي دكمه Yes كليك كند با بسته شدن فرم مقدار vbyes در متغير intanswer ذخيره ميشود و با استفاده از يك دستور If و بررسي مقدار intanswer اجرای برنامه خاتمه مييابد اما در صورتي كهكاربر روي دكمه No يا دكمه Close كليك كند مقدار vbno در متغير intanswer ذخيره ميشود و برنامه بدون هيچ گونه تغييري در مقدار زمان ادامه مييابد. - 4 تغييرات را ذخيره كرده و پروژه را اجرا نماييد. روي دكمه Exit كليك كنيد همانطور كه مالحظه ميكنيد كادر پيامي مطابق شكل 5-15 نمايش داده ميشود. - 5 روي دكمه No كليك كنيد تا به برنامه بازگرديد. - 6 روي دكمه Exit كليك كنيد. اين بار روي دكمه Yes در كادر پيام كليك كنيد و تفاوت را با حالت قبل بررسي كنيد. - 7 اجراي برنامه را متوقف كنيد و به محيط ويژوالبيسيك بازگرديد. 5-7 نحوه استفاده از كادرهاي ورود داده در ويژوالبيسيك شكل 5-15 تاكنون براي ورود دادههاي خود به برنامه از كنترل كادر متن استفاده كردهايد. در ويژوالبيسيك روش راحتتري براي انجام اين كار وجود دارد و آن استفاده از كادر ورود داده يا InputBox است. كادر ورود داده در واقع شبيه به يك كادر پيام است با اين تفاوت كه داراي يك كادر متن براي ورود داده و دو دكمه OK و Cancel است )شكل 5-16(. براي ايجاد كادرهاي ورود داده در ويژوالبيسيك از تابع InputBox استفاده ميشود. شكل

147 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارپنجم: توانايی استفاده از دستور شرطی IFو عملگرهای مقايسه ای و منطقی اين تابع مي تواند يك كادر ورود داده ايجاد كند و در صورتي كه كاربر روي OK كليك كند داده هاي وارد شده در كادر متن را در يك متغير رشته اي ذخيره مي كند. اما اگر كاربر روي دكمه Cancel كليك كند يك رشته خالي )""( را در متغير رشته اي ذخيره مي كند. شكل كلي نحوه استفاده از اين تابع به يكي از روش هاي زير است: x,y(,مقدارپیشفرضدر کادرمتن, عنوان کادر ورود داده, پیام نمايشي در کادر ورودداده( = InputBox نام متغیر رشتهاي InputBox عنوان کادر ورود داده, پیام نمايشي در کادر ورود داده, x, y مقادير مربوط به پيام نمايشي و عنوان كادر ورود داده از نوع رشته اي است و مقدار پيش فرض مقداري است كه در زمان نمايش كادر ورود داده در كادر متن نمايش داده مي شود. x و y مقادير عددي هستند كه به ترتيب فاصله كادر ورود داده را از سمت چپ و باالي دسك تاپ تعيين مي كنند. نكتهدر صورتي كه عنوان كادر ورود داده و كادر پيام تعيين نشود نام فايل پروژه در نوار عنوان آنها نمايش داده ميشود مثال 7: مطابق شكل 5-17 برنامه اي طراحي كنيد كه كاربر توانايي محاسبه محيط و مساحت هر دايره به شعاع دلخواه را داشته باشد و براي دريافت داده ها از كادر ورود داده كه به وسيله دكمه Enter Radius فعال مي شود استفاده كند. - 1 يك پروژه با يك فرم يك كنترل دكمه فرمان و كنترل هاي برچسب مطابق شكل 5-17 ايجاد كنيد. 137 شكل 5-17

148 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: كنيد: تنظيم صورت اين به را فرمان دكمه كنترل Click رويداد - 2 Private Sub cmdr_click() End Sub Dim strr As String Dim sngarea As Single, sngper As Single strr = InputBox("Enter Radius:","InputData:",0) sngper =2*3.14 *Val(strr) sngarea =3.14 *Val (strr)^2 lblper.caption = sngper lblarea.caption = sngarea كنيد. اجرا را پروژه سپس كنيد ذخيره Circle و Circles نام با را فرم و پروژه - 3 شود. داده نمايش داده ورود كادر تا كنيد كليك Enter Radius دكمه روي - 4 كادر در OK دكمه روي و كنيد تايپ داده ورود كادر متن كادر در را 3 عدد - 5 رشتهاي متغير در متن كادر در شده تايپ مقدار صورت اين در كنيد. كليك داده ورود و ميشود تبديل عدد به strr متغير مقدار Val تابع از استفاده با سپس ميشود ذخيره strr ميشود. محاسبه دايره مساحت و محيط مربوطه فرمولهاي از استفاده با ورود كادر متن كادر در را 4 عدد و كنيد كليك Enter Radius دكمه روي مجددا - 6 در خالي رشته يك اينصورت در كنيد. كليك Cancel دكمه روي سپس و كنيد تايپ داده كه ميشود توليد صفر مقدار Val تابع با strr متغير تبديل در و ميشود ذخيره strr متغير بود. خواهد نيز محاسبات نتايج بازگرديد. ويژوالبيسيك پنجره به و دهيد خاتمه پروژه اجراي به - 7 CheckBox عالمت كادر كنترل صورت در كه شكلي به ميآورد بهوجود را حالتي دو انتخابهاي ايجاد امكان كنترل اين در خاصي تصميمات كنترل( مربع داخل در چكمارك عالمت دادن )قرار كنترل انتخاب عالمت برداشتن با يا شود انجام محاسبات و پردازش آن براساس و شود اتخاذ برنامه

149 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارپنجم: توانایی استفاده از دستور شرطی IFو عملگرهای مقایسهای و منطقی چكمارك از داخل مربع كنترل كادر عالمت از تصميمات موردنظر صرفنظر شود. بدين ترتيب كاربر ميتواند با استفاده از اين ويژگيها شرايط خود را به برنامه اطالع دهد. جدول 5-19 توضيح در صورتي كه مقدار اين خصوصيت رويJustify 0-Left تنظيم شود كادر عالمت در سمت چپ عنوان كنترل و در صورتي كه روي 1-Right Justify تنظيم شود كادر عالمت در سمت راست عنوان آن نمايش داده ميشود. در صورتي كه مقدار اين خصوصيت روي 0-Standard تنظيم شود شكل كنترل به صورت يك كادر عالمت معمولي و وقتي روي مقدار 1-Graphical تنظيم شود به شكل يك دكمه فرمان ديده ميشود. در صورتي كه مقدار اين خصوصيت برابر 0-Unchecked باشد نشان دهنده اين است كه كنترل انتخاب نشده است و اگر برابر 1-Checked باشد نشان دهنده اين است كه كنترل انتخاب شده است و اگر مقدار آن برابر 2-Grayed باشد به معني اين است كه كنترل داراي عالمت چك مارك بوده و زمينه مربع كادر عالمت نيز خاكستري رنگ است. خصوصيت Alignment Style Value 5-9 معرفي مهمترين ويژگيهاي فرمها و كنترلهاي كادر متن دكمه فرمان و غيره در اين واحد كار با اشيايي نظير فرم و كنترلهاي متعدد آشنا شديد در پايان الزم است تا شما را با بعضي از خصوصيات و رويدادهاي ديگر فرم و كنترل ذكر شده بيشتر آشنا كنيم. 139

150 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه جدول 5-20 خصوصيات فرمها و كنترلها خصوصيت توضيح اگر مقدار اين خصوصيت روي -Flat تنظيم شود كنترل يا فرم به صورت مسطح و اگر روي مقدار 1-3D تنظيم شود كنترل يا فرم به صورت سه بعدي نمايش داده ميشود. رنگ زمينه را در فرم و بعضي از كنترلها مانند كادر متن تعيين ميكند. اگر مقدار اين خصوصيت روي True تنظيم شود كنترل يا فرم فعال و قابل استفاده بوده و اگر روي False تنظيم شود كنترل و فرم غيرفعال و غير قابل استفاده ميشود. رنگ قلم را در فرم و بعضي از كنترلها تعيين ميكند. تنظيمات قلم را در فرم و بعضي از كنترلها تعيين ميكند. يك تصوير را روي فرم و بعضي از كنترلها تعيين ميكند. اشارهگر ماوس را براي فرم و بعضي از كنترلها تعيين ميكند. يك آيكن دلخواه را به عنوان اشارهگر براي فرم و بعضي كنترلها تعيين ميكند. اگر مقدار اين خصوصيت روي True تنظيم شود كنترل يا فرم نمايش داده شده و اگر مقدار اين خصوصيت روي False تنظيم شود كنترل يا فرم نمايش داده نخواهد شد. اين خصوصيت مربوط به كنترلها ميشود و ترتيب حركت روي كنترلها را با استفاده از كليد Tab تعيين ميكند و مقادير مساوي يا بزرگتر از صفر را كسب ميكند. Appearance BackColor Enabled ForeColor Font Picture MousePointer MouseIcon Visible TabIndex TabStop BorderStyle MaxButton MinButton Icon اين خصوصيت از نوع منطقي بوده و مربوط به كنترلها ميشود و اگر روي مقدار False تنظيمشوددرهنگاماستفادهازكليدTab كنترلمربوط فوكوسرادريافتنميكند. اگر اين خصوصيت در كنترلهاي برچسب و كادر متن روي مقدار -None تنظيم شود كنترل بدون حاشيه و كادر دور و اگر روي مقدار 1-Fixed Single تنظيم شود كنترل با حاشيه و كادر دور مشاهده ميشود. اگر مقدار اين خصوصيت روي True تنظيم شود دكمه Maximize در فرم فعال و در صورتيكه مقدار آن روي False تنظيم شود دكمه Maximize غيرفعال ميشود. اگر مقدار اين خصوصيت روي True تنظيم شود دكمه Minimize در فرم فعال و در صورتيكه مقدار آن روي False تنظيم شود دكمه Minimize غيرفعال ميشود. يك آيكن دلخواه را به عنوان آيكن منوي كنترل در فرم تعيين ميكند. 140

151 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارپنجم: توانایی استفاده از دستور شرطی IFو عملگرهای مقایسهای و منطقی ادامه جدول 5-20 توضيح اين خصوصيت در كنترلهايي مانند برچسب و كادر متن وجود دارد و تراز عبارت را در كنترل تعيين ميكند مقدار 0-Left Justify تراز از چپ 1-Right Justify تراز از راست و 2-Center تراز از وسط را به وجود ميآورند. اين خصوصيت در بيشتر كنترلها وجود دارد و زماني كه اشارهگر ماوس روي كنترل نگه داشته شود عبارت موجود در اين خصوصيت نمايش داده ميشود. از اين خصوصيت براي راهنمايي كاربران استفاده ميشود. اين خصوصيت مربوط به كنترل برچسب است. اگر محتويات خصوصيت Caption بيش از اندازه كنترل باشد و بخواهيد عبارت موجود در خصوصيت Caption در چند خط نمايش داده شود مقدار اين خصوصيت و سپس مقدار خصوصيت AutoSize را روي True تنظيم كنيد. اين خصوصيت مربوط به كنترل كادر متن است و در صورتيكه مقدار آن روي True تنظيم شود ميتوانيد اطالعات خود را در خطوط جداگانه وارد كنيد. البته بهتر است كه ارتفاع كنترل را نيز طوري تنظيم نماييد تا بتوان چند خط را به طور همزمان مشاهده كرد. شد. اگر مقدار اين خصوصيت روي True تنظيم شود امكان جابهجا كردن فرم روي دسكتاپ وجود دارد اما اگر مقدار آن روي False تنظيم شود اين امكان وجود ندارد. اين خصوصيت مربوط به فرمها بوده و سه مقدار مختلف را كسب ميكند. در صورتيكه مقدار آن روي 0-Normal تنظيم شود موقعيت فرم روي دسكتاپ به وسيله خصوصيات Top و Left تنظيم ميشود و اگر مقدار آن روي 1-Minimized تنظيم شود پنجره برنامه در زمان اجرا با اندازه حداقل و در صورتيكه مقدار آن روي 2-Maximized تنظيم شود پنجره برنامه با اندازه حداكثر نمايش داده خواهد خصوصيت Alignment ToolTipText WordWrap MultiLine Moveable WindowState 141

152 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه Learn in English If...Then...Else Use an If...Then...Else block to define several blocks of statements, one of which will execute If condition1 Then [statementblock] [Else [statementblock]] End If Visual Basic first tests condition1. If it s False, Visual Basic executes the corresponding statement Else statement block For example, your application could perform different actions with depending on the value of grade variable: If grade < 10 Then result ="failed" Else result ="passed" End If 142

153 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارپنجم: توانایی استفاده از دستور شرطی IFو عملگرهای مقایسهای و منطقی واژهنامه Border Compare Condition CorresPonding Decision Execute Image Input Box Logical Message Box Operation Perform Structure Style كادر حاشيه مقايسه كردن شرط متناظر منتسب تصميم اجرا كردن تصوير كادر ورود داده منطقي كادر پيام عملگر انجام دادن ساختار حالت خالصه مطالب براي كنترل روند اجراي برنامه در شرايط مختلف از دستورات شرطي مانند If استفاده ميشود. شكل كلي دستور If به اين صورت است: If )شرط)ها(( Then دستورات دستورات End Else If 143 براي اضافه كردن يك فرم جديد به پروژه ميتوانيد از گزينه Add Form در منوي Add Form از دكمه )يا Add Form كليك راست در پنجره پروژه و انتخاب گزينه Project در نوار ابزار استاندارد( استفاده كنيد.

154 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه براي مقايسه مقادير رشتهاي عددي و ساير انواع دادهها از عملگرهاي مقايسهاي استفاده ميشود. متد Show ميتواند يك فرم را در حافظه بارگذاري كرده و نمايش دهد. متد Hide ميتواند يك فرم را بدون آن كه از حافظه خارج نمايد مخفي كند. براي ايجاد تركيب چند شرط با يكديگر از عملگرهاي منطقي Or And و Not استفاده ميشود. با استفاده از دستور Unload ميتوان يك فرم را از حافظه خارج كرد. تركيب شرطي كه با استفاده از عملگر And ايجاد ميشود وقتي نتيجه درست )True( خواهد داشت كه تمام مقايسهها به طور همزمان درست باشند و در ساير حالتها نتيجه نادرست خواهد داشت. تركيب شرطي كه با استفاده از عملگر Or ايجاد ميشود وقتي نتيجه نادرست )False( خواهد داشت كه تمام مقايسههانادرستباشند و در ساير حالتهانتيجه درست خواهد داشت. از كنترل كادر تصوير و كنترل تصوير ميتوان براي نمايش فايلهاي گرافيكي يا تصوير استفاده كرد. عملگر Not نتيجه هر عبارت مقايسهاي را كه درست باشد به نادرست و اگر نادرست باشد به درست تبديل ميكند. از كادرهاي پيام براي نمايش پيامهاي مناسب در مواقع نياز و ايجاد حالتهاي مختلف انتخاب براي كاربر استفاده ميشود. از كادرهاي ورود داده براي دريافت دادهها از كاربر استفاده ميشود. كادرهاي پيام با استفاده از تابع MsgBox و كادرهاي ورود داده با استفاده از تابع InputBox ايجاد ميشوند. تابع RTrim كاراكترهاي فاصله در انتهاي يك عبارت متني )رشتهاي( را حذف ميكند. تابع LTrim كاراكترهاي فاصله در ابتداي يك عبارت متني )رشتهاي( را حذف ميكند. تابع Trim كاراكترهاي فاصله درابتدا وانتهاي يك عبارت متني )رشتهاي( را حذف ميكند. با استفاده از تابع Load Picture ميتوان يك فايل گرافيكي يا تصوير را در كنترل كادر تصوير يا كنترل تصوير نمايش داد. 144

155 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه منطقی و مقایسهای عملگرهای IFو شرطی دستور از استفاده توانایی کارپنجم: واحد نظري آزمون ميكند تعيين را ورودي كاراكترهاي تعداد حداكثر متن كادر در خصوصيت كدام - 1 TabIndex د- MaxLength ج- PasswordChar ب- BorderStyle الف- منطقي عملگرهاي ساير به نسبت پايينتري اولويت از منطقي عملگر -كدام 2 است برخوردار Or و And د- Not ج- Or ب- And الف- است مناسب داده ورود كادر يك ايجاد براي تابع كدام - 3 msg د- InBox ج- InputBox ب- MsgBox الف- زا پيشفرض بهطور نشود تعيين پيام كادر در دكمهها تعداد و نوع صورتيكه در - 4 ميشود استفاده دكمههايي چه Cancel د- No و Yes ج- Cancel و OK ب- OK الف- است درست TabIndex خصوصيت با رابطه در گزينه كدام - 5 ميكند. تعيين فرم روي را كنترلها نمايش ترتيب الف- ميكند. معين فرم يك روي را كنترلها بين حركت ترتيب ب- ميكند. تعيين حافظه در را كنترلها بارگذاري ترتيب ج- ميكند. بررسي كليد صفحه در را Tab كليد وضعيت د- چيست -12< > 3*5 عبارت حاصل د- 2 ج- False ب- True الف- كردن مخفي توانايي كه دارد وجود كنترلها و فرم بين مشترك خصوصيت كدام - 7 دارد را آنها نمايش يا Appearance د- Visible ج- Enabled ب- Caption الف- چيست زير شرطي تركيب حاصل - 8 )Option Compare Text دستور از استفاده عدم به توجه )با "Cpu" = "Cpu" Or 50 < = -70 And Not True True الف- False ب- است. اشتباه هم كنار در And و Not عملگر از استفاده ج- است. اشتباه تركيب يك در رشتهاي و عددي منطقي مقادير عملگر از استفاده د- 145

156 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 9 درصورت عدمانتخاب عنوان يك كادر پيامبهطور پيشفرضاز...استفاده ميشود. 10 -الف- نام فرم ب- نام پروژه ج- نام فايل فرم د- نام فايل پروژه با استفاده از كدام خصوصيت در كادر متن ميتوان از ويرايش دادهها توسط كاربر جلوگيري كرد الف- Wordwrap ب- Lock ج- Locked د- MultiLine 11 -In the If statement while condition is false, Visual Basic executes the statements that exist within the... part. a- then b- else c- if else d- end if 12- عملگرهاي مقايسهاي را بيان كنيد سپس كاربرد هر يك را توضيح دهيد. 13- دستور شرطي If را توضيح دهيد و حالتهاي مختلف نحوه استفاده از آنها را بيان كنيد. 14- اصطالحات زير را توضيح دهيد: الف- متد Show ب- رويداد Unload ج- متد Hide د- رويداد Change 15- تفاوت بين كادر پيغام و كادر ورود داده را بيان كنيد. 16- عملگرهاي منطقي را نام ببريد و كاربرد هر يك را بيان كنيد. 146

157 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارپنجم: توانایی استفاده از دستور شرطی IFو عملگرهای مقایسهای و منطقی آزمون عملي - 1 حاصل عبارتهاي زير به ازاي مقادير 15 = a b = 2 و c =1 چه خواهد بود الف- a <4 AND b < =1 OR c > ب- b> =1 OR c ><1 ج- a > =35 OR c < 1 AND b < =2-2 پروژهاي طراحي كنيد كه مطابق شكل 1 نام نام خانوادگي و نمره 4 درس يك دانشآموز را دريافت كند سپس معدل وي را محاسبه نمايد. در صورتيكه معدل وي كوچكتر از 12 باشد يك كادر پيام مطابق شكل 2 و در صورتيكه معدل نمره وي بزرگتر يا مساوي 12 باشد كادر پيامي مطابق شكل 3 نمايش داده شود به عالوه براي دريافت داده از كادر ورود داده استفاده شود. الزم به ذكر است كه كليك روي دكمههاي فرمان كادر ورود دادهاي را در اختيار كاربر قرار ميدهد. شكل 1 شكل 2 شكل 3 147

158

159 واحد کارششم هدف جزیی توانايي استفاده از انواع حلقهها و ساختار Case Select و كنترل دكمه انتخاب هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- بتواند از دستور Select Case استفاده كند. 2- بتواند از كنترل دكمه انتخاب استفاده كرده رويدادها و ويژگيهاي آن را به كاربرد. 3 -نحوه كاربا حلقههاي Do While...Loop While...Wend For...Next و غيره را توضيح دهد. 4- بتواند از دستورات خروج از حلقه Exit Do و Exit For استفاده كند. 149

160 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: کلیات بعضي بودن تكراري كرد خواهيد برخورد آن با واقعي پروژههاي در كه مسايلي از يكي معين دفعات تعداد به است ممكن تكراري دستورات اين است. عمليات و دستورات از در حلقهها ديگر عبارت به يا تكرار ساختارهاي شوند. انجام خاصي شرايط به رسيدن تا دهيد. انجام مناسبتر و راحتتر را عمليات اينگونه تا ميكنند كمك شما به زمينه اين تعيين را دستورات اجراي روند تا است الزم برنامهها طراحي هنگام معموال عالوه به فراهم نظر مورد شرايط به توجه با را دستورات اجرايي امكانات تصميم ساختارهاي كنيد. ساختارهاي از ديگري نوع فراگرفتهايد. را دستورIf از استفاده نحوه گروه اين از ميكنند. ميپردازيم. آن توضيح به واحدكار اين در كه دارند وجود Select Case نام به نيز تصميم Select Case دستور 6-1 دستورات مختلف شرايط در تا ميدهد اجازه برنامهنويس به If دستور مانند دستور اين دهد. انجام موجود اطالعات و دادهها با را مناسب عمليات و كند اجرا را خود نظر مورد باشد متعدد مقايسههاي انجام و شرطها بررسي به نياز كه زماني If دستور از استفاده اي متغير يك كه ميشود استفاده زماني Select دستورCase ميشود. برنامه شدن شلوغ سبب عمليات خاصي مقدار براساس بخواهيم و باشد مختلفي مقادير داراي عبارت يك حاصل ميتوانند كه بود خواهد Ifهايي جايگزين Select Case ديگر عبارت به دهيم. انجام ويژهاي Select دستور كارگيري به صورت در كنند. بررسي را عبارت يا متغير يك مختلف مقادير شكل ميشود. برخوردار بيشتري دقت و خوانايي از برنامه و آسانتر كدها نوشتن Case است: صورت اين به دستور اين كلي مقايسه مورد عبارت دستور)ات( دستور)ات( دستور)ات( دستور)ات( اول مقدار دوم مقدار سوم مقدار Select Case Case Case Case Case Else End Select 150

161 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارششم: توانايی استفاده از انواع حلقه ها و ساختار Select Case و كنترل دكمه انتخاب در اين دستور ابتدا مقدار عبارت مورد مقايسه با مقاديري كه در مقابل هر Case قرار داده شده است مقايسه ميشود. اگر مقدار ذخيره شده در عبارت مورد نظر با مقدار ذكر شده در مقابل اولين Case برابر باشد دستورات موجود در اين Case اجرا ميشوند و از بررسي ساير Caseها صرفنظر خواهد شد اما اگر اولين مقايسه نتيجه نادرست در پي داشته باشد Case دوم بررسي ميشود و در صورت درست بودن نتيجه دستورات اين Case اجرا ميشود و در غير اين صورت Case بعدي بررسي ميشود و به همين شكل تمام Caseها به ترتيب بررسي ميشوند و اگر نتيجه بررسي تمام آنها نادرست باشد دستورات موجود در بخش Case Else اجرا خواهند شد و سپس برنامه ادامه مييابد. نكته استفاده از بخش Case Else اختياري است. براي ايجاد يک بازه از مقادير عددي در Caseها مي توانيد از كلمه كليدي To استفاده كنيد. به عنوان مثال براي مقادير عددي بين 12 تا 14 مي توانيد از Case 12 To 14 استفاده كنيد. براي استفاده از چند مقدار مختلف در يک Case مي توانيد از كاراكتر كاما ),( كلمه كليدي Is To يا تركيبي از آن ها استفاده كنيد. مثال 1: پروژهاي مطابق شكل 6-1 و جداول 6-1 و 6-2 طراحي كنيد كه سه نمره يک دانشآموز را دريافت كند و رتبه وي را مشخص كند. اگر معدل وي بين 18 تا 2 باشد رتبه A و اگر بين 16 الي 18 باشد رتبه B و بين 14 الي 16 رتبه C و كوچکتر از 14 رتبه D براي او نمايش داده شود. براي اين كار عمليات زير را به ترتيب انجام دهيد: - 1 يک پروژه جديد به همراه يک فرم و كنترلهاي آن مطابق شكل 6-1 ايجاد كنيد. جدول 6-1 خصوصياتفرم مقدار خصوصيت Name Caption frmave Average 151 شكل 6-1

162 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه جدول 6-2 خصوصيات كنترلها كنترل خصوصيت Label Label Label TextBox TextBox TextBox Command Button Name lblit lblwin lblvb txtit txtwin txtvb cmdave Caption IT : WINDOWS : VB6: &Average - 2 سپس رويداد Click را به اين صورت تنظيم كنيد: Private Sub cmdave_click() Dim sngit As Single Dim sngwin As Single Dim sngvb As Single Dim sngav As Single,strrank As String*1 sngit = Val(txtit.Text) sngwin = Val(txtwin.Text) sngvb = Val(txtvb.Text) sngav = (sngit+sngwin + sngvb)/3 Select Case sngav Case 18 To 20 strrank = "A" Case 16 To 18 strrank = "B" Case 14 To 16 strrank = "C" Case Is < 14 strrank = "D" End Select MsgBox «RANK IS : «+ strrank,,»ranking» End Sub 152

163 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارششم: توانايی استفاده از انواع حلقه ها و ساختار Select Case و كنترل دكمه انتخاب در اين رويداد پس از تعريف متغيرها ابتدا مقادير تايپ شده در كادرهاي متن با استفاده از تابع Val به عدد تبديل شده و در متغيرهاي مربوطه ذخيره مي شوند سپس متوسط سه نمره محاسبه شده و در ادامه با استفاده از يک دستور Select Case مقدار معدل )sngav( مورد ارزيابي قرار مي گيرد. اگر مقدار آن بين 18 تا 2 باشد دستور موجود در شرط Case 18 To 20 را اجرا مي شود و رتبه A را براي وي در متغير رشته اي strrank ذخيره مي كند سپس بدون آن كه ساير شرط ها بررسي شوند دستور Select Case خاتمه مي يابد اما اگر مقدار متغير sngav بين 16 تا 18 باشد شرط موجود در اولين Case نادرست خواهد بود و شرط Case دوم يعني Case 16 To 18 بررسي مي شود و در نتيجه دستور مربوط به اينCase اجرا مي شود و بدون بررسي ساير Caseها دستور Select Case خاتمه مي يابد و به همين شكل در صورت نادرست بودن شرط در Case دوم ساير Caseها يكي يكي بررسي مي شوند و در Case آخر اگر مقدار متغير sngav كوچک تر از 14 باشد شرط Is>14 Case درست خواهد بود و رتبه مناسب براي وي در نظر گرفته مي شود و پس از خاتمه دستور Select Case رتبه دانش آموز به وسيله يک كادر پيام نمايش داده مي شود. - 3 پروژه و فرم را با نام Average ذخيره كنيد سپس آن را اجرا نماييد. - 4 اعداد و 2 را در كادرهاي متن موجود تايپ كنيد سپس روي دكمه Average كليک كرده و نتيجه را بررسي كنيد. - 5 مجددا اعداد 5 14 و 8 را در كادرهاي متن موجود تايپ كرده و روي دكمه Average كليک و نتيجه را بررسي كنيد. - 6 اجراي برنامه را متوقف كرده و به پنجره ويژوال بيسيک بازگرديد. مثال 2: پروژه اي طراحي كنيد كه هزينه حمل كاال به وسيله وسايل نقليه مختلف را محاسبه كند. به اين منظور كاربر وزن كاال و مسافت حمل را به همراه روش حمل آن معين مي كند و سپس هزينه حمل كاال محاسبه شده در اختيار وي قرار مي گيرد. روش هاي حمل كاال و هزينه هر يک به ازاي هر كيلومتر جابه جايي در جدول 6-3 ارايه شده است و براي محاسبه هزينه حمل كاال از فرمول زير استفاده مي شود. هزينهبهازاي يك کیلومتر جابه جايي مسافت جابه جايي وزن کالا = هزينه حمل کالا 153

164 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: 6-3 جدول كاال حمل روش ريال به حمل هزينه اتوبوس قطار كشتي هواپيما 6-2 شكل دهيد: انجام ترتيب به را عمليات اين اكنون همراه به Standard EXE نوع از پروژه يك - 1 دكمه يك و برچسب و متن كادر دو فرم يک كنيد. ايجاد 6-2 شكل مطابق فرمان متن كادر و كاال وزن ورود براي اول متن كادر ميشود. استفاده كاال حمل مسافت ورود براي دوم كنترل از باشد داشته را كاال حمل روش نوع انتخاب توانايي كاربر آنكه براي - 2 انتخاب امكان تا ميدهد اجازه كنترل اين كنيد. استفاده )OptionButton( انتخاب دكمه صورت به معموال كنترل اين شود. فراهم كاربران براي انتخاب چند بين از گزينه يک زا را كنترلها از يكي ميتوان لحظه هر و ميشود استفاده بيشتر يا دوتايي گروههايي دكمه كنترل روي ابزار جعبه در كنترل اين از استفاده براي كرد. انتخاب آنها مجموعه و دهيد قرار فرم روي 6-2 شكل مطابق را آن از كنترل چهار و كنيد كليك انتخاب كنيد. تنظيم را آنها خصوصيات روي آنرا Value خصوصيت و كنيد انتخاب را optbus خصوصيات پنجره در - 3 هستند Value نام به خصوصيتي داراي انتخاب دكمه كنترلهاي كنيد. تنظيم True مقدار خصوصيت اين مقدار اگر باشد. False يا True ميتواند و است منطقي خصوصيت يك كه است شده انتخاب مربوطه انتخاب دكمه كه است اين دهنده نشان تنظيمشود True روي از گروه يك در همواره است. كنترل انتخاب عدم نشاندهنده صورت اين غير در و ساير براي و True انتخاب دكمه كنترلهاي از يكي Value خصوصيت انتخاب دكمههاي ميباشد. False كنترلها بنويسيد. Compute فرمان دكمه Click رويداد در را نظر مورد دستورات بايد -اكنون 4 154

165 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارششم: توانایی استفاده از انواع حلقهها و ساختار Select Case و کنترل دکمه انتخاب بنابراين رويداد مزبور را به اين صورت تنظيم كنيد: 155 Private Sub cmdcom_click() Dim inttrans As Integer, sngprice As Currency Dim sngw As Single, sngl As Single If optbus.value = True Then inttrans=0 If opttrain.value = True Then inttrans =1 If optship.value = True Then inttrans =2 If optplane.value = True Then inttrans =3 sngw = Val(txtw.Text) sngl = Val(txtl.Text) Select Case inttrans Case0 sngprice =sngw * sngl *10000 Case 1 sngprice=sngw*sngl*15000 Case 2 sngprice = sngw * sngl *14000 Case 3 sngprice = sngw * sngl *20000 End Select MsgBox "Total Price =" + Str(sngprice)+ "Rials",, " Payment" End Sub در اين رويداد با استفاده از دستور If مقدارخصوصيت Value هر يک از كنترلهاي دكمه انتخاب بررسي ميشود و درصورت انتخاب هر يک از آنها متغير inttrans متناسب با روش حمل انتخاب شده مقداردهي ميشود بنابراين در صورت انتخاب روش حمل با اتوبوس مقدار صفر حمل با قطار مقدار 1 حمل با كشتي مقدار 2 و حمل با هواپيما مقدار 3 در آن ذخيره ميشود. سپس با استفاده از دستور Select Case مقدار متغير inttrans بررسي ميشود تا با توجه به روش حمل انتخاب شده هزينه حمل كاال محاسبه و در متغير sngprice ذخيره شود در نهايت اين مقدار به وسيله يك كادر پيام نمايش داده خواهد شد. - 5 براي آن كه ترتيب دريافت فوكوس در كنترل به صورت مناسب انجام شود خصوصيت TabIndex دكمه فرمان Compute را روي عدد 6 تنظيم كنيد. در اين صورت

166 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه دكمه فرمان Compute آخرين كنترلي است كه در زمان فشردن كليد Tab فوكوس را به دست مي آورد. - 6 پروژه و فرم را با نام transport ذخيره كنيد. - 7 پروژه را اجرا كنيد و وزن كاال را 2 كيلوگرم و مسافت جابه جايي را 1 كيلومتر تايپ كنيد سپس روي دكمه انتخاب Plane كليک كنيد تا روش حمل كاال نيز انتخاب شود. - 8 روي دكمه Compute كليک كنيد و نتيجه محاسبه را بررسي كنيد. - 9 مجددا مقادير 35 و 2 را براي وزن كاال و مسافت جابه جايي تايپ كنيد و اين بار روش حمل با قطار را انتخاب كرده روي دكمه Compute كليک كنيد و نتيجه را بررسي نماييد اجراي برنامه را خاتمه داده و به پنجره ويژوال بيسيک بازگرديد. نكته: اگر بخواهيد از كنترلهاي دكمه انتخاب به گونهاي استفاده كنيد كه به صورت گروههاي جداگانه عمل كنند بايد از كنترل ديگري بهنام كنترل قاب يا Frame استفاده كنيد در غير اين صورت تمام كنترلهاي دكمه انتخاب كه در يک فرم قرار دارند به صورت يک گروه واحد در نظر گرفته خواهند شد. براي ايجاد گروههاي مستقل از كنترلهاي دكمه انتخاب بايد ابتدا كنترل قاب را روي فرم قرار دهيد و سپس با روش درگ كنترلهاي دكمه انتخاب را رويكنترل قاب بگذاريد. كنترل قاب رويداد و خصوصيت ويژهاي ندارد و مهمترين خصوصيت آن خصوصيت Caption است كه عنوان كنترل قاب را تعيين ميكند. 6-2 ساختارهاي تكرار در ويژوال بیسیك بعضي اوقات الزم است تا عملياتي را به صورت تكراري انجام دهيد. در ويژوال بيسيک دستورات متعددي براي انجام عمليات تكراري قرار داده شده اند كه بعضي از آن ها توانايي اجراي عمليات تكراري را با تعداد دفعات معين دارند و بعضي ديگر عمليات موردنظر را تا رسيدن به شرايط خاصي فراهم مي كنند. در اين واحد كار به توضيح بعضي از آن ها مي پردازيم. 156

167 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارششم: توانايی استفاده از انواع حلقه ها و ساختار Select Case و كنترل دكمه انتخاب حلقه For... Next از اين حلقه زماني استفاده ميشود كه الزم باشد دستورات را به تعداد دفعات معين و محدودي اجرا كنيد. نحوه استفاده از اين حلقه به اين صورت است: مقدار خاتمه To مقدار شروع = شمارنده حلقه For دستورات شمارنده حلقه Next براي استفاده از اين گونه حلقهها از يک متغير به عنوان شمارنده حلقه استفاده ميشود كه به وسيله آن تعداد دفعات تكرار حلقه كنترل ميشود. مقادير شروع و خاتمه با توجه به نياز برنامهنويس تنظيم ميشود و معموال از مقادير عددي صحيح استفاده ميشود. اما ميتوان از هر نوع متغير عددي يا عبارات رياضي نيز استفاده كرد. اين حلقه با كلمه كليدي For آغاز شده و با كلمه كليدي Next كه به همراه نام متغير شمارنده ذكر ميشود خاتمه مييابد و دستورات مورد نظر براي اجرا در بين آنها قرار ميگيرند. زماني كه اجراي برنامه به اولين خط از حلقه يعني For ميرسد مقدار شروع در متغير شمارنده ذخيره ميشود و سپس اين مقدار با مقدار خاتمه مقايسه ميشود و در صورتي كه كوچکتر يا مساوي با مقدار خاتمه باشد دستورات بين For و Next اجرا ميشود. با رسيدن به كلمه كليدي Next اجراي برنامه مجددا به بخش For منتقل ميشود سپس يک واحد به مقدار قبلي متغير شمارنده اضافه شده و در صورتي كه اين مقدار كوچکتر يا مساوي با مقدار خاتمه باشد دستورات موجود در حلقه اجرا ميشود و اين عمليات تا زماني كه مقدار متغير شمارنده از مقدار خاتمه بزرگتر شود ادامه مييابد. پس از خاتمه اجراي حلقه دستورات بعد از كلمه كليدي Next انجام ميشود. اجراي مثال 3: پروژ ه اي طراحي كنيد كه مجموع اعداد 1 تا 1 را محاسبه كرده و روي فرم نمايش دهد. به اين منظور عمليات زير را به ترتيب انجام دهيد: 157 شكل برنامه ويژوال بيسيک را اجرا كنيد سپس يک پروژه از نوع Standard EXE به همراه يک فرم و يک كنترل دكمه فرمان و يک كنترل برچسب مطابق شكل 6-3 ايجاد كنيد.

168 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 2 رويداد Click دكمه فرمان cmdshow را به صورت زير تنظيم كنيد: Private Sub cmdshow_click() Dim inti As Integer Dim intsum As Integer For inti = 1 To 10 intsum =intsum + inti Next inti lblsum. Caption = lblsum. Caption + Str (intsum) End Sub در اين رويداد ابتدا متغيرهاي مورد نياز تعريف مي شوند. به منظور محاسبه مجموع اعداد 1 تا 1 از يک حلقه For استفاده شده است. اين حلقه از عدد 1 شروع و تا رسيدن حلقه به مقدار 1 تكرار مي شود و در هر مرحله از اجراي حلقه نيز با استفاده از متغير intsum مجموع اعداد محاسبه مي شود و با پايان يافتن حلقه مقدار مجموع intsum پس از تبديل به نوع داده رشته اي در كنترل برچسب نمايش داده مي شود. - 3 پروژه و فرم را با نام sumnumbers ذخيره كنيد سپس آن را اجرا كرده و آزمايش نماييد. - 4 به اجراي پروژه خاتمه داده و به پنجره ويژوال بيسيک بازگرديد. مثال 4: پروژ ه اي طراحي كنيد كه يک عدد طبيعي را از ورودي دريافت كند و مجموع اعداد زوج كوچک تر يا مساوي آن را نمايش دهد. - 1 برنامه ويژوال بيسيک را اجرا كرده يک پروژه به همراه يک فرم سه كنترل برچسب و يک كنترل كادر متن به همراه يک كنترل دكمه فرمان مطابق شكل 6-4 و جدول 6-4 ايجاد كنيد. جدول 6-4 خصوصياتفرم مقدار خصوصيت Name Caption frmsn Show Number شكل

169 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارششم: توانایی استفاده از انواع حلقهها و ساختار Select Case و کنترل دکمه انتخاب سپس رويداد Click دكمهNumber Show را به اين صورت تنظيم كنيد: Private Sub cmdshow_click() Dim inti As Integer Dim intno As Integer Dim lngsum As Long intno = Val(txtno.Text) For inti = 1 To intno If intno mod inti=0 Next inti lngsum=lngsum+inti End If lblsum.caption=lblsum.caption+str(lngsum) End Sub - 3 پروژه و فرم را با نام shownumber ذخيره كنيد سپس آن را اجرا كرده و آزمايش كنيد. - 4 اجراي پروژه را متوقف كرده و به پنجره ويژوالبيسيك باز گرديد. اكنون شكل كلي حلقه For به شما معرفي ميشود. همانطور كه گفته شد متغير شمارنده حلقه در هر بار اجراي حلقه به ميزان يك واحد افزايش مييابد اما گاهي اوقات الزم است تا ميزان افزايش شمارنده به وسيله برنامهنويس تعيين شود يا از حلقههاي كاهشي استفاده شود كه در آنها مقدار شروع از مقدار خاتمه بزرگتر است و در هر بار اجراي حلقه مقدار شمارنده كم ميشود. شكل كلي دستور For به اين صورت است: ميزان افزايش يا كاهش شمارنده Step مقدار خاتمه To مقدار شروع = شمارنده حلقه For دستورات شمارنده حلقه Next در واقع بخش Step امكان تنظيم ميزان افزايش يا كاهش مقدار شمارنده حلقه را فراهم ميكند. مقدار پيش فرض براي اين بخش مقدار يك است. ميتوانيد براي حلقههاي افزايشي از مقادير مثبت و براي حلقههاي كاهشي از مقادير منفي استفاده كنيد. در اين صورت حلقه زماني متوقف ميشود كه مقدار شروع از مقدار خاتمه كوچكتر شود. 159

170 160 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه نكتهدرصورتيكه مقدار شروع از مقدار خاتمه بزرگتر باشد و مقدار Step مثبت باشد حلقه اجرا نخواهد شد. در صورت عدم استفاده از بخش Step مقدار افزايش شمارنده حلقه يک واحد خواهد بود دستور Print دستور Print مي تواند انواع مقادير ثابت متغير و مقدار خصوصيت اشيا را روي فرم نمايش دهد. در صورتي كه از اين دستور به تنهايي استفاده شود فقط يک خط خالي نمايش داده مي شود و اگر از كاراكتر سمي كالن );( استفاده شود خروجي ها پشت سرهم و بدون فاصله قرار مي گيرند و اگر از كاراكتر كاما ),( استفاده شود هر خط نمايشي در روي فرم توانايي نمايش 1 كاراكتر را خواهد داشت و اگر خروجي بزرگ تر از 1 كاراكتر باشد خروجي بعدي در يک ناحيه جلوتر نمايش داده خواهد شد. به عنوان مثال به اين دستورات توجه كنيد: Print "Ali" ; "Reza" Print "Visual", "Basic" Print "Student" ; Print "Information" در صورت اجراي دستورات فوق خروجي حاصل به اين شكل خواهد بود: AliReza Visual Basic StudentInformation عبارات موجود در دستور اول به دليل استفاده از كاراكتر سمي كالن پشت سرهم و عبارات موجود در دستور دوم به دليل استفاده از كاراكتر كاما با فاصله از هم قرار گرفته اند و در دو دستور آخر نيز چون Print سوم به كاراكتر سمي كالن ختم مي شود خروجي Print چهارم پشت سر آن نمايش داده مي شود. به عنوان مثال به اين دستورات توجه كنيد و نتيجه اجراي آن ها را در شكل 6-5 مشاهده كنيد. Print " ", " " Print " " Print " ", " "

171 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه انتخاب دکمه کنترل و Select Case ساختار و حلقهها انواع از استفاده توانایی کارششم: واحد شكل دو بنابراين است شده تشكيل كاراكتر ده از نمايشي عبارت هر اول Print دستور در دستور در اما ميگيرند. قرار هم كنار در دوم و اول نواحي در ترتيب به نمايشي عبارت نمايشي عبارت است شده تشكيل كاراكتر 11 از اول نمايشي عبارت چون آخر Print نواحي اندازه بهتر تشخيص براي دوم Print دستور ميشود. داده نمايش 3 ناحيه در دوم است. شده استفاده تمرين: توانايي شكل 6-6 مطابق تا طراحيكنيد را پروژهاي طبيعي هرعدد از كوچكتر زوج و فرد اعداد نمايش برايدريافت باشد. داشته را كاربر موردنظر دلخواه كنيد. استفاده داده كادرورود از دادهها 6-6 شكل اجراي بار هر با حالت اين در و داد قرار يكديگر داخل در ميتوان را For حلقههاي استفاده نحوه كلي شكل ميشود. اجرا كامل دور يك آن داخل For حلقه اول For حلقه است: زير بهصورت متداخل حلقههاي از مقدارشروعFor مقدارخاتمهToشمارندهحلقه= ميزانافزايشياكاهششمارندهStep مقدارشروعFor شمارندهحلقه= مقدارخاتمهTo ميزانافزايشياكاهششمارندهStep دستور)ات( Next حلقه شمارنده Next حلقه شمارنده 161

172 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه مثال 5: پروژ ه اي طراحي كنيد كه با استفاده از حلقه For كاراكترهاي ستاره را مطابق شكل 6-7 نمايش دهد. براي اين كار عمليات بعد را انجام دهيد. شكل يک پروژه از نوع Standard EXE به همراه يک فرم و يک كنترل دكمه فرمان مطابق شكل 6-7 ايجاد كنيد. - 2 رويداد Click دكمه فرمان را به اين صورت تنظيم كنيد: Private Sub cmdsshow_click() Dim inti As Integer Dim intj As Integer For inti = 1 To 4 For intj= 1 To 5 Print "*"; Next intj Print Next inti End Sub - 3 پروژه و فرم را با نام showstart ذخيره كنيد سپس برنامه را اجرا كرده و روي دكمه show كليک كنيد. - 4 به اجراي برنامه خاتمه داده و به پنجره ويژوال بيسيک بازگرديد. * ** *** **** ***** تمرين: پروژهاي طراحي كنيد كه شكل زير را رسم نمايد. 162

173 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارششم: توانايی استفاده از انواع حلقه ها و ساختار Select Case و كنترل دكمه انتخاب حلقه While...Wend و Do While... Loop اين حلقه ها دستورات را تا زماني كه شرط يا شرط هاي تعيين شده درست باشند اجرا مي كنند. از اين نوع حلقه ها زماني استفاده مي شود كه دفعات تكرار دستورات معين نباشد. شكل كلي اين دستورات به صورت زير است: )شرط يا شرط ها( Do While )شرط يا شرط ها( While دستور)ات( دستور)ات( Wend Loop زماني كه اجراي برنامه به حلقه While برسد ابتدا شرط يا شرط هاي موجود در جلوي كلمه كليدي While ارزيابي مي شوند و اگر نتيجه اين ارزيابي درست باشد دستورات بين While و Wend اجرا مي شوند. با رسيدن به انتهاي حلقه يعني كلمه كليدي Wend اجراي برنامه مجددا به بخش While منتقل مي شود و بررسي شرط يا شرط ها انجام مي گيرد و به همين شكل اجراي حلقه تا زماني كه نتيجه ارزيابي شرط موجود در حلقه نادرست شود ادامه مي يابد. نحوه اجراي حلقه Do While مانند حلقه While است. مثال 6: پروژ ه اي طراحي كنيد كه هر بار مسافت بين دو شهر را براساس كيلومتر دريافت كند سپس مسافت دو شهر را به متر تبديل كرده و نمايش دهد و اين كار را تا دريافت مقدار صفر انجام دهد. - 1 يک پروژه از نوع Standard EXE به همراه يک فرم مطابق با شكل 6-8 ايجاد كنيد. شكل يک كنترل برچسب و دو كنترل دكمه فرمان روي فرم قرار داده و خصوصيت هاي آن ها را تنظيم كنيد.

174 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 3 رويداد دكمه Compute را به اين صورت تنظيم كنيد: Private Sub cmdcompute_click () Dim intno As Integer Dim strdata As String intno = 1 While (intno > ) strdata = InputBox ("Enter Your Number:", "Enter Data", ) intno = Val (strdata) lblresult. Caption = intno*1000 Wend End Sub 164 در اين رويداد پس از تعريف متغيرها ابتدا مقدار متغير intnoروي مقدار 1 تنظيم ميشود تا حلقه While بتواند اجرا شود. زيرا شرطي كه براي حلقه در نظر گرفته شده است > intno ميباشد اگر intno مقداردهي نشود هيچ وقت امكان ورود داده و انجام محاسبات وجود نخواهد داشت. در مرحله بعد حلقه While اجرا ميشود و با استفاده از يك كادر ورود مسافت دو شهر دلخواه دريافت شده و در متغير strdata ذخيره ميشود سپس با استفاده از تابع Val محتويات متغير strdata به عدد تبديل شده و در متغير intno قرار ميگيرد سپس با تبديل اين مقدار به واحد متر مسافت در كنترل برچسب نمايش داده ميشود. در اين مرحله با رسيدن به دستور Wend اجراي برنامه به ابتداي حلقه يعني دستور While منتقل ميشود در نتيجه شرط > intno 0 بررسي شده و اگر نتيجه بررسي شرط درست باشد عمليات تكرار خواهد شد اما اگر نتيجه بررسي شرط نادرست باشد )در صورت ورود عدد صفر( اجراي حلقه خاتمه مييابد. - 4 پروژه و فرم را با نام Distance ذخيره كنيد. - 5 پروژه را اجرا كرده و روي دكمه Compute كليك كنيد و پس از ورود چند مقدار مختلف عدد صفر را وارد كنيد تا مجددا به پنجره برنامه بازگرديد. - 6 روي دكمه Exit كليك كنيد و از برنامه خارج شده و به پنجره ويژوالبيسيك بازگرديد.

175 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارششم: توانايی استفاده از انواع حلقه ها و ساختار Select Case و كنترل دكمه انتخاب... تمرين: پروژهاى طراحي كنيد تا مضربهاي كوچکتر از 1 عدد 9 را روي فرم نمايش دهد. به اين منظور عمليات زير را به ترتيب انجام دهيد: حلقه Do... Loop While اين حلقه مشابه حلقه Do While... Loop است با اين تفاوت كه دستورات داخل حلقه يک بار اجرا شده سپس شرط حلقه بررسي ميشود. بنابراين در صورت نادرست بودن شرط دستورات حداقل يک بار اجرا ميشوند. شكل كلي اين دستور به صورت زير است: Do دستور)ات( )شرط يا شرط ها( Loop While مثال 7: پروژهاي طراحي كنيد كه يک عدد طبيعي را دريافت كند و مجموع ارقام آن را نمايش دهد. براي اين كار عمليات زير را به ترتيب انجام دهيد: - 1 يکپروژهازنوعStandardEXE بههمراهيکفرمبامشخصاتجدول 7-19 ايجادكنيد. - 2 در اين پروژه به منظور اجراي دستورات از رويداد Activate فرم استفاده ميشود. اين رويداد بعد از رويداد Load فرم و زمانيكه فرم نمايش داده شده و فوكوس را كسب ميكند اجرا ميشود. بنابراين رويداد Activate فرم را به اين صورت تنظيم كنيد: Private Sub Form_Activate() Dim lngi As Long Dim lngno As Long Dim strinput As String strinput = InputBox("Enter Your Number :"," input DATA",0) lngno =Val(strinput) Do lngi = lngno Mod Sum=Sum+lngi

176 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 15 / 1 / 2 ف ه شماره: - 84/ 80 / 1 / 3 / 1 0 lngno = lngno \ 10 Loop While (lngno>0) End Sub - 3 اجراي پروژه را متوقف كرده و به پنجره ويژوالبيسيک بازگرديد. تمرين: پروژه طراحي كنيد كه مضارب كوچكتر از 1 عدد 7 را نمايش دهد دستورات خروج از حلقه Exit Do و Exit For دستورات Exit Do و Exit For به برنامه نويس امكان مي دهند كه قبل از آن كه حلقه به طور عادي خاتمه يابد به اجراي حلقه خاتمه دهد و از آن خارج شود. از دستور Exit For براي خروج از حلقه For...Next واز دستورDo Exitبراي خروجاز حلقه هايWhile...Loop Do.. Loop While Do Do Until...Loop و Do...Loop Until استفاده مي شود. مثال 8: پروژه digit را به گونه اي تغيير دهيد تا با استفاده از دستور Exit Do اجراي حلقه خاتمه يابد. به اين منظور عمليات زير را به ترتيب انجام دهيد: - 1 پروژه digit را باز كنيد و رويداد Activate فرم را به اين صورت تغيير دهيد: Private Sub Form_Activate)( Dim lngi As Long Dim lngno As Long Dim strinput As String strinput = InputBox)«Enter Your Number :»,»Input Data»,0( lngno =Val)strinput( Do lngi = lngno Mod 10 sum=sum+lngi lngno = lngno \ 10 If lngno < 0 Then Exit Do Loop While (True) End Sub 166

177 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارششم: توانايی استفاده از انواع حلقه ها و ساختار Select Case و كنترل دكمه انتخاب در اين رويداد نيز مانند راه حل قبلي حلقه Do... Loop While به كار گرفته شده است. با اين تفاوت كه به جاي شرط lngno < از مقدار True استفاده شده است بنابراين حلقه مي تواند بدون محدوديت بارها اجرا شود اما با توجه به حالت پروژه بايد اجراي حلقه با توجه به تعداد ارقام عدد وارد شده تنظيم شود. به اين منظور از يک دستور If ديگر در انتهاي حلقه استفاده شده است كه شرط lngno < را بررسي مي كند در صورتي كه نتيجه اين بررسي درست باشد )يعني ديگر رقمي در عدد باقي نمانده باشد( با دستور Exit Do از اجراي مجدد حلقه جلوگيري به عمل مي آورد. - 2 تغييرات را ذخيره كرده و پروژه را اجرا و آزمايش كنيد. - 3 به اجراي پروژه خاتمه داده و به پنجره ويژوال بيسيک بازگرديد. مثال 9: پروژه اي طراحي كنيد كه بزرگ ترين عدد را بين n عدد دلخواه جستجو كرده و نمايش دهد. براي اين كار عمليات زير را انجام دهيد: - 1 يکپروژه جديد مطابق شكل 6-9 ايجاد كنيد. 167 شكل مطابق شكل 6-9 ابتدا كاربر تعداد اعداد خود را در كادر متن وارد مي كند سپس با كليک روي دكمه Input و با استفاده از كادرهاي ورود داده اعداد خود را وارد مي كند و با پايان ورود اعداد مقدار ماكزيمم روي فرم نمايش داده مي شود. به عالوه در صورتي كه كاربر كاراكتر Q را در كادر ورود داده تايپ كند برنامه از دريافت اعداد بعدي خودداري مي نمايد. بنابراين رويداد Click دكمه Input را به اين صورت تنظيم كنيد: Private Sub cmdinput_click() Dim inti As Integer, strno As String Dim sngmax As Single For inti = 1 To Val(txtno.Text) strno = InputBox("Enter Your Number:", "InputBox", 0) If strno ="Q" or strno ="q" Then Exit For If inti = 1 Then sngmax = Val(strno) Else

178 168 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: End If If sngmax < Val (strno)then sngmax =Val(strno) Next inti MsgBox "Maximum Is :"+Str(sngmax) End Sub مقدار شد. خواهد استفاده اعداد دريافت براي For...Next حلقه يك از رويداد اين در تنظيم ميكند وارد مربوطه متن كادر در كاربر كه مقداري به توجه با حلقه خاتمه هب عدد بزرگترين محاسبه براي حلقه در موجود دستورات از عمدهاي بخش ميشود. داده ورود كادر يك از استفاده با ابتدا شد اجرا رويداد اين آنكه از پس اما ميروند كار ورود كادر در شده تايپ مقدار بالفاصله و ميكند دريافت كاربر از را عدد اولين مقدار شرط نتيجه باشد شده تايپ ياq Q كاراكتر اگر و ميشود بررسي If دستور يك با داده و حلقه از خروج سبب كه ميشود اجرا Exit For دستور نتيجه در و بوده درست موجود ميشود بررسي دوم If دستور صورت اين غير در اما شد خواهد اعداد دريافت خاتمه باشد( يك با برابر حلقه شمارنده )يعني باشد شده داده عدد اولين اگر صورت اين در كه ذخيره sngmax متغير در و ميشود گرفته نظر در عدد بزرگترين عنوان به عدد اولين ذخيره مقدار با داده ورود كادر در شده تايپ مقدار ابتدا بعدي اعداد براي اما ميشود جديد مقدار باشد بزرگتر آن از كه صورتي در و ميشود مقايسه sngmax متغير در شده بزرگترين ترتيب اين به شد. خواهد ذخيره sngmax متغير در مقدار بزرگترين عنوان به ميشود. داده نمايش پيام كادر يك در و محاسبه مقدار نماييد. اجرا آنرا سپس كنيد ذخيره نامmaximum با را فرم و پروژه - 3 كنيد. كليك Input دكمه روي و كرده تايپ متن كادر در را 1 مقدار - 4 داده ورود كادر در را Q كاراكتر سپس كنيد وارد ترتيب به را 18 و 2 7 اعداد - 5 ورود از ميكنيد مشاهده كه همانطور كنيد. كليك OK دكمه روي و كنيد تايپ چهارم )18( شده وارد عدد سه بين عدد بزرگترين و ميآيد عمل به جلوگيري بعدي دادههاي ميشود. داده نمايش به و داده پايان را پروژه اجراي سپس كنيد آزمايش ديگري مقادير براي را پروژه - 6 بازگرديد. ويژوالبيسيك پنجره تمرين: داشتهباشد. رانيز عدد كوچكترين محاسبه كهتوانايي كنيد رابهگونهايتنظيم قبل پروژه

179 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارششم: توانایی استفاده از انواع حلقهها و ساختار Select Case و کنترل دکمه انتخاب Learn in English For...Next Statement.Repeats a group of statements a specified number of times Syntax For counter = start To end [step] [statements] Next [counter] The For Next statement syntax has these parts: Part counter Description Required. Numeric variable used as a loop counter. The variable can>t be a Boolean or an array element. start end step statements Required. Initial value of counter. Required. Final value of counter. Optional. Amount counter is changed each time through the loop. If not specified, step defaults to one. Optional. One or more statements between For and Next that are executed the specified number of times. 169

180 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه واژهنامه Compute محاسبه كردن Counter شمارنده Even زوج Exit خروج Final نهايي آخري Information اطالعات Initial ابتدايي اولين اصلي Odd فرد Optional اختياري Payment مبلغ بهاي پرداختي Price بها قيمت Rank رتبه Required الزم داشتن Specify تعيين كردن Statement دستور Step مرحله Transport حمل كردن خالصه مطالب 170 از دستور Select Case براي ارزيابي چند مقايسه به صورت يكجا استفاده ميشود. از كنترل دكمه انتخاب Button( )Option براي ايجاد گزينههاي متعدد براي انتخاب كاربر استفاده ميشود. براي اجراي دستورات با دفعات تكرار معين از دستور For... Next استفاده ميشود. حلقههاي Do While... Loop While...Wend و Do...Loop While دستورات را تا زماني كه نتيجه شرط يا شرطهاي ذكر شده در آنها درست باشند اجرا ميكنند. حلقههاي Doو Until...Loop Do...Loopدستورات Until را تا زماني كه نتيجه شرط يا شرطهاي ذكر شده در آنها نادرست باشند اجرا ميكنند.

181 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارششم: توانایی استفاده از انواع حلقهها و ساختار Select Case و کنترل دکمه انتخاب دستور Print ميتواند انواع پيامها عبارات رشتهاي مقدار متغيرها و خصوصيات فرمها و كنترلها را روي فرم نمايش دهد. " از دستور Exit Do براي خروج از حلقه Do.. Loop While Do While...Loop Do Until...Loop و Do...Loop Until استفاده ميشود. از دستور Exit For براي خروج از حلقه For... Next استفاده ميشود. از كنترل قاب )Frame( براي دستهبندي كنترلها استفاده ميشود. براي اضافه كردن يك پروژه جديد از نوع Standard EXE ميتوان از گزينه New Project در منوي File ويژوالبيسيك يا از دكمه Add Standard EXE Project در نوار ابزار استاندارد استفاده كرد. به منظور دسترسي به خاصيتها و متدهاي كنترل يک فرم در فرم ديگر ميتوان بهصورت زير عمل نمود: نام متد يا خاصيت.نام كنترل.نام فرم 171

182 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آزمون نظري - 1 كدام حلقه شبيه به حلقه Do While... Loop است الف- For...Next ب- While...Wend ج- Select Case د- While...Loop - 2 پس از اجراي برنامه زير مقدار متغير Sum چقدر است Sum= I=5 Do While (I>3) For k=1 to 2 Sum = Sum+k*I Next k I=I-1 الف- 27 ب- 28 ج- 29 د- 3-3 حلقه زير چند بار تكرار ميشود Loop For i=7 To -2 Step -3 Next i الف- 2 ب- 3 ج- 4 د- 5-4 حلقه زير چند بار تكرار ميشود While (True) Wend 172 الف- 3 بار ب- 4 بار ج- بينهايت د- تكرار نميشود. - 5 خروجي برنامه پس از اجراي حلقه زير چيست i=6 While (i>4) j=6

183 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارششم: توانایی استفاده از انواع حلقهها و ساختار Select Case و کنترل دکمه انتخاب i=i - 1 Do While (j>3) Print i,j j=j - 1 Loop Wend الف- ب- ج- د For i=10 To 1 Step 2 Print "i" ;i Next i - 6 خروجي برنامه پس از اجراي حلقه زير چيست ب- اعداد فرد بين 1 و 1 الف- اعداد زوج بين 1 و 1 د- هيچگونه خروجي ندارد. ج- اعداد 1 تا 1-7 درصورتيكه مقدار متغير intx برابر 2 باشد خروجي دستورات زير چيست Select Case intx Case Is > 10 : Print Case Is <= 4 : Print intx*10 intx*4 Case Is = 7 : Print intx*2 End Select د- 2 ج- 4 ب- 8 الف- 1 دستور Exit Do سبب خروج از كدام حلقه ميشود ب- While... Wend الف- For...Next د- گزينههاي ب و ج صحيح هستند. ج- Do While... Loop 173

184 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: For i=4 to 1 Step 1 Next i i=4 While (i>=1) است زير حلقه مشابه حلقه كدام - 9 الف- i=i+ 1 Wend ) ب i=4 Do While (i>=1) i = i- 1 Loop i =4 While (i<=1) i=i - 1 Wend i = 4 Do While (i >=1) i = i + 1 ج- د- Loop For i=1 To 15 If i Mod 3= Then Print i Next i است صحيح زير دستورات با رابطه در گزينه كدام

185 ... پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارششم: توانایی استفاده از انواع حلقهها و ساختار Select Case و کنترل دکمه انتخاب الف- اعداد 1 تا 15 را نمايش ميدهد. ب- مضارب عدد 3 از 1 تا 15 را نمايش ميدهد. ج- اعداد 1 تا 15 را كه بر 3 بخشپذير هستند نمايش ميدهد. د- باقيمانده تقسيم اعداد 1 تا 15 را بر 3 نمايش ميدهد براي دستهبندي كنترلها از كنترل... استفاده ميشود. الف- CheckBox ب- Frame ج- GroupBox د- Label 12 -بااستفادهاز كدام خصوصيت ميتوان كنترلButton Option را در حالتانتخاب قرار داد الف- Check ب- Index ج- Value د- Tab Index - 13 حلقه زير چند بار تكرار ميشود k=2 Do k=k*2 Loop Until (k>10) الف- 5 ب- 4 ج- 3 د Inthe For Statement, the step argument can be...number. a- positive b- negative c- integer d- positive or negative 15- تفاوت بين حلقههاي While با حلقههاي Until چيست 16- كاربرد دستور Exit Do و Exit For را بيان كنيد. 17- نحوه عملكرد دستور For را همراه با بخش Step توضيح دهيد. 18- تفاوت دستور Select Case را با IF بيان كنيد. 19- كنترل دكمه انتخاب Button( )Option و قاب )Frame( را توضيح داده و كاربرد هر يك از آنها را بيان كنيد. 20- نحوه اضافه كردن يك پروژه جديد به پروژه موجود را توضيح دهيد. 175

186 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آزمون عملي - 1 پروژهاي طراحي كنيد كه مجموع اعداد سه رقمي را محاسبه كرده و نمايش دهد. - 2 پروژهاي طراحي كنيد كه عدد طبيعي و دلخواهي را از كاربر دريافت كند و مقسوم عليههاي زوج آنرا محاسبه كرده و نمايش دهد. - 3 پروژهاي طراحي كنيد كه يك جدول ضرب 1 1 را چاپ كند. - 4 پروژهاي طراحي كنيد كه دو عدد طبيعي را دريافت كند و كوچكترين مضرب مشترك آنها را نمايش دهد. - 5 خروجي حاصل از اجراي حلقههاي زير چه خواهد بود J=10 Do While (True) If j>5 Then Exit Do For i=1 to j Print i; Next i Print j=j+ 1 Loop الف- ب- For I= 1 to 4 For j=1 to 3 Print "*"; Next j Print Next I - 6 پروژهاي طراحي كنيد كه دو عدد را دريافت كرده و بزرگترين مقسومعليه آنها را نمايش دهد. 176

187 واحد کارهفتم هدف جزیی تواناييايجاد و استفاده از انواع رويهها در ويژوالبيسيك هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- انواع رويهها را در زبان برنامهنويسي ويژوالبيسيك توضيح دهد. 2- رويههاي رويداد را تعريف كند. 3- رويههاي فرعي و رويههاي تابعي را تعريف كند و تفاوت بين آنها را توضيح دهد. 4- بتواند با استفاده از دستورات Exit Sub و Exit Function از رويههاي فرعي و تابعي خارج شود. 5- انواع روشهاي ارسال متغيرها به رويهها و تفاوت بين آنها را بيان كند. 6- تفاوت رويههاي عمومي و محلي را بيان كند و بتواند انواع رويهها را بهصورت عمومي و محلي تعريف كند. 177

188 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: کلیات و داشت خواهيد فراواني دستورالعملهاي به نياز واقعي پروژههاي طراحي در معموال يتح يا پروژه از مختلفي بخشهاي در دستورالعملها از مجموعهاي كه ميآيد پيش گاهي تكرار, جاي به ميتوان صورت اين در ميشوند. استفاده تكراري صورت به پروژهها ساير داد. قرار استفاده مورد بارها و نوشته پروژه از بخشي در يكبار را دستورات مجموعه اين نتيجه در و ميشود تقسيم كوچكتر بخشهاي به برنامه بزرگ پروژههاي در منظور اين به كاهش توجهي قابل شكل به دستورالعملها نوشتن و خطازدايي و خطايابي براي الزم زمان با و راحتتر آينده در آن توسعه و ارتقا براي برنامه در تغييرات ايجاد عالوه به مييابد. ميگويند. )Structural( يافته ساخت برنامهنويسي روش, اين به بود. خواهد توأم كمتر خطاي انواع از استفاده با و دارد وجود نيز ويژوالبيسيك زبان در ويژگي اين ميدانيد كه همانطور ويژوالبيسيك در كنيد. برنامهنويسي نيز يافته ساخت روش به ميتوانيد )Procedure( رويهها رويههايتابعي,)Sub Procedure( فرعي رويههاي از: عبارتند كه دارد رويهوجود نوع چهار ويژوالبيسيك آماده رويههاي و )Event Procedure( رويداد رويههاي,)Function Procedure( واحدكار در و پرداخت خواهيم اول گروه سه توضيح به اينجا در.)Visual Basic Procedure( گرفت. فراخواهيد را ويژوالبيسيك آماده رويههاي از استفاده نحوه بعد )Sub Procedure( فرعي رويههاي يك صورت به را خود نظر مورد دستورات برنامهنويس تا است الزم اوقات گاهي هر در باشد الزم كه زمان هر در و دهد قرار پروژه در دستورات ساير از مستقل بخش رويههاي از استفاده صورت اين در كند. استفاده آن از رويهها( ساير )مانند پروژه از جايي باشد. وي براي مناسب انتخابهاي از يكي ميتواند فرعي استفاده آن از بارها كه هستند فرعي رويههاي نوع از رويداد رويههاي مثال عنوان به اما كنيد. استفاده و تعريف فرم ماژول در ميتوانيد نيز را ديگر فرعي رويههاي كردهايد. يارب اما ميشوند اجرا الزم درزمان خودكار بهطور رويههايرويداد ميدانيد كه همانطور استفاده خاصي دستورات از بايد ميكند تعريف برنامهنويس كه فرعي رويههاي اجراي كند. اجرا مناسب زمان در را رويه بتواند تا شود

189 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارهفتم: توانايی ايجاد و استفاده از انواع رويه ها در ويژوال بيسيك... در اين جا الزم است تا نحوه تعريف يك رويه را به طور كلي بياموزيد براي تعريف يك رويه فرعي به اين شكل عمل كنيد: )..., نوع آرگومان As نام آرگومان اول( نام رويه فرعي Private Sub دستور)ات( End Sub تعريف يك رويه فرعي با كلمه كليدي Private آغاز مي شود. استفاده از اين عبارت در تعريف يك رويه فرعي سبب مي شود تا رويه مربوطه به عنوان يك رويه محلي تعريف شود بنابراين فقط در ساير رويه هاي همان ماژول فرمي كه در آن تعريف شده قابل شناسايي و فراخواني است. در ادامه تعريف رويه كلمه كليدي Sub و به دنبال آن نام رويه فرعي قرار مي گيرد. براي نام گذاري رويه ها مي توانيد مانند متغيرها عمل كنيد. پس از آن كه نام رويه را تعيين كرديد بايد نام و نوع آرگومان هاي رويه را مشخص كنيد. در واقع آرگومان ها متغيرهايي هستند كه به برنامه نويس اجازه مي دهند تا از اين طريق مقادير موردنظر را به رويه فرعي ارسال كنند. قوانين تعريف و نام گذاري آرگومان ها دقيقا مشابه متغيرهاست. البته استفاده از آرگومان ها اجباري نبوده و يك رويه فرعي مي تواند يك, دو يا چند آرگومان داشته باشد يا اين كه اصال هيچ آرگوماني نداشته باشد. اما در صورت استفاده از آن ها بايد در هنگام فراخواني رويه دقت الزم را براي انتقال مقادير مورد نظر به آرگومان ها به عمل آوريد. پس از خط اول تعريف رويه دستورات مورد نظر كه در رويه اجرا مي شوند قرار داده شده و خاتمه رويه نيز با عبارت End Sub تعيين مي شود. بدين صورت رويه شما در ماژول فرم تعريف مي شود. مثال 1: پروژهاي طراحي كنيد كه طول و عرض يك مستطيل را از كاربر دريافت كند و با استفاده از يك رويه فرعي محيط و مساحت آنرا محاسبه كرده و نمايش دهد. براي انجام اين كار مراحل بعد را انجام دهيد: - 1 برنامه ويژوالبيسيك را اجرا كنيد و يك پروژه از نوع Standard EXE به همراه يك فرم مطابق شكل 7-1 ايجاد كنيد. 179

190 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه ميبينيد كه دو كادر متن براي دريافت طول و عرض مستطيل در نظر گرفته شده است و پس از ورود دادهها با كليك روي دكمه Calculate محيط و مساحت مستطيل محاسبه خواهد شد. - 2 براي محاسبه محيط و مساحت مستطيل با استفاده از يك رويه فرعي ابتدا بايد آن را تعريف كنيد بنابراين به پنجره ماژول فرم رفته و تعريف رويه را به اين صورت تايپ كنيد سپس كليد Enter را بفشاريد. Private Sub rectangle( ) عبارت End Sub در پايين دستوري كه تايپ كردهايد به طور خودكار ظاهر ميشود. در واقع اين دو دستور محدوده رويه فرعي را تعيين ميكنند و دستورات مربوط به رويه در بين اين دو خط قرار ميگيرند. رويههاي فرعي نيز مانند رويههاي رويداد داراي يك نام هستند. نامگذاري رويههاي فرعي مانند نامگذاري متغيرهاست و از همان قوانين پيروي ميكنند. - 3 در اين مرحله بايد دستورات مربوط به محاسبه محيط و مساحت مستطيل را در رويه فرعي rectangle تايپ كنيد بنابراين رويه را به صورت بعد تنظيم كنيد: Private Sub rectangle() Dim sngl As Single, sngw As Single Dim sngarea As Single, sngperi As Single sngl = Val(txtl.Text) sngw = Val(txtw.Text) sngarea = sngl * sngw sngperi = 2 * (sngl + sngw) lblarea.caption = Area Is = + Str(sngarea) شكل 7-1 lblperi.caption = Perimeter Is = + Str(sngperi) End Sub 180

191 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهفتم: توانایی ايجاد و استفاده از انواع رويهها در ويژوالبيسيك در اين رويه ابتدا دادههاي ورودي در كادرهاي متن به عدد تبديل ميشوند و در متغيرهاي sngl و sngw ذخيره ميشوند سپس عمليات محاسبه مساحت و محيط انجام و در نهايت با استفاده از كنترلهاي برچسب نمايش داده ميشوند. پس از تعريف يك رويه فرعي الزم است نحوه استفاده از دستورات موجود در رويه يا به عبارت بهتر اجراي رويه فرعي را بدانيد به اين عمل فراخواني رويه نيز ميگويند. براي انجام اين كار ميتوانيد با توجه به نياز خود يكي از روشهاي زير را به كار گيريد: (..., مقدار مربوط به آرگومان اول( نام رويه Call..., مقدار مربوط به آرگومان اول نام رويه فراخواني ميتواند با دستور Call يا بدون آن انجام شود سپس نام رويه و در صورت استفاده از آرگومانها, مقادير يا متغيرهاي متناسب با هر يك را در داخل پرانتز تايپ كرده و با كاراكتر كاما ),( از يكديگر جدا كنيد. - 4 براي آنكه بتوانيد دستورات موجود در رويه rectangle را اجرا كنيد بايد در رويداد Call rectangle اين دستور را تايپ كنيد: Calculate دكمه Click دستور Call در هنگام اجرا رويه rectangle را فراخواني ميكند به عبارت ديگر اجراي برنامه به رويه rectangle منتقل ميشود و پس از رسيدن به عبارت End Sub در اين رويه اجراي برنامه مجددا به محل فراخواني باز ميگردد و دستور بعد از Call اجرا ميشود. - 5 پروژه و فرم را با نام rectangle ذخيره نماييد. - 6 پروژه را اجرا نماييد. اعداد 4 و 6 را به عنوان طول و عرض مستطيل وارد كنيد و روي دكمه Calculate كليك كنيد و نتيجه محاسبه را بررسي نماييد. - 7 پروژه را براي مقادير ديگر نيز بررسي كنيد سپس به پنجره ويژوالبيسيك بازگرديد. تمرين: پروژهاي طراحي كنيد كه با استفاده از يك رويه فرعي محيط و مساحت هر دايره به شعاع دلخواه R را محاسبه كند. 181

192 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه مثال 2: پروژهاي طراحي كنيد كه عدد دلخواهي را از كاربر دريافت كرده و زوج فرد بودن آن را با استفاده از يك رويه فرعي مشخص كند. براي انجام اين كار مراحل يا بعد را به ترتيب انجام دهيد: - 1 يك پروژه از نوع Standard EXE و يك فرم مطابق شكل 7-2 ايجاد كنيد. - 2 روي منوي Tools در پنجره ويژوال بيسيك كليك كنيد و سپس گزينه Proce- Add... dure را برگزينيد تا كادر محاوره Add Procedure نمايش داده شود. - 3 در كادر متن Name نام رويه را تايپ كنيد. براي رويه اين مثال از عبارت oddor- even استفاده كنيد )شكل 7-3(. - 4 در بخش Type گزينه Sub را براي ايجاد رويه فرعي انتخاب كنيد. - 5 در بخش سوم از تنظيمات كادر محاوره Add Procedure براي ميدان ديد و شناسايي رويه )Scope( دكمه انتخاب Private را برگزينيد. شكل 7-3 شكل در پايان روي دكمه OK در كادرمحاوره Add Procedure كليك كنيد تا رويه فرعي در ماژول فرم اضافه شود. - 7 اكنون به پنجره ماژول فرم برويد و رويه oddoreven را به صورت زير تنظيم كنيد: Private Sub oddoreven(sngno As Single) If (sngno Mod 2) = 0 Then MsgBox your number is even.»,, Message» Else MsgBox your number is odd.»,, Message» End If End Sub 182

193 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارهفتم: توانايی ايجاد و استفاده از انواع رويه ها در ويژوال بيسيك رويه فرعي oddoreven داراي يك آرگومان با نام sngno مي باشد كه از نوع Single تعريف شده است از اين آرگومان براي انتقال عددي كه مي خواهيد زوج يا فرد بودن آن را داخل رويه معين كنيد استفاده مي شود. داخل رويه نيز با استفاده از عملگر Mod و يك If باقي مانده تقسيم عدد مورد نظر كه در آرگومان sngno ذخيره شده است بر عدد دو بررسي مي شود. اگر اين مقدار برابر صفر باشد كادر پيام عدد را به عنوان يك عدد زوج و در غير اين صورت عدد را به عنوان يك عدد فرد معرفي خواهد كرد. - 8 در اين مرحله بايد رويداد Click دكمه فرمان Compute به شكلي تنظيم شود تا در صورت كليك روي دكمه Compute رويه فرعي oddoreven فراخواني شده و زوج يا فرد بودن عدد مربوطه را معين كند بنابراين رويه رويداد Click دكمه Compute را به اين صورت تنظيم كنيد: Private Sub cmdcom_click() Dim snginput As Single snginput = Val(txtno.Text) Call oddoreven(snginput) End Sub در اين رويداد پس از تعريف متغير snginput با استفاده از تابع Val عبارت تايپ شده در كادر متن به مقدار عددي تبديل و در متغير snginput ذخيره مي شود. در مرحله بعد بايد رويه فرعي oddoreven را فراخواني كرد. براي اين كار با استفاده از دستور Call رويه فراخواني مي شود و براي آن كه عدد مورد نظر كاربر كه در متغير snginput ذخيره شده است در اختيار رويه قرار گيرد نام متغير snginput پس از نام رويه و در داخل پرانتز ذكر مي شود در اين صورت در هنگام اجراي دستور Call بين متغير snginput و متغير sngno ارتباط برقرار مي شود و در واقع هنگام اجراي رويه مراجعه به متغير sngno به منزله مراجعه خواندن و ذخيره سازي اطالعات در متغير snginput است. نكته در صورتيكه يك رويه داراي آرگومان باشد اگر بعد از تعريف رويه نام رويه را در ماژول فرم تايپ كنيد ويژوالبيسيك يك راهنمايي به صورت ToolTip را كه شامل نام رويه و نام و نوع آرگومانهاي آن ميباشد نمايش ميدهد )شكل 7-4(. 183

194 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: 7-4 شكل كنيد. اجرا را آن سپس كرده ذخيره oddeven نام با را فرم و پروژه - 9 كنيد. كليك Compute دكمه روي و كنيد تايپ را 4 عدد برنامه فرم متن كادر در - 10 است شده ذخيره snginput متغير در كه 4 عدد و ميشود فراخواني رويه صورت اين در»عدد پيغام پيام كادر در و شده تعيين عدد نوع سپس و ميشود كپي sngno آرگومان در ميشود. داده نمايش است«زوج ويژوالبيسيك برنامهنويسي محيط به و كنيد بررسي ديگر عدد چند براي را پروژه - 11 گرديد. باز )Function Procedure( تابعي رويههاي فرعي رويههاي به شبيه تابعي رويههاي هستند. تابعي رويههاي رويهها از ديگري نوع انجام از پس و ميشود استفاده باشد الزم كه مواردي در آنها از كه تفاوت اين با هستند قبال ميشود. داده بازگشت رويه فراخواني محل به مقداري محاسبات از مجموعهاي هب ميتوان مثال براي كردهايد استفاده ويژوالبيسيك در آماده تابعي رويههاي بعضي از كاراكترهاي از رشته يك دريافت با Val تابع كرد. اشاره آنها نظاير و Str Val تابعي رويه به را آن عددي مقدار يك دريافت با Str تابع و ميكند تبديل عددي مقدار به را آن رقمي توسط نياز مورد تابعي رويههاي تعريف امكان ويژوالبيسيك در مينمايد. تبديل رشته دارد. وجود نيز برنامهنويس

195 ... بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در رويهها انواع از استفاده و ايجاد توانایی کارهفتم: واحد تعريف براي است. فرعي رويههاي به شبيه نيز تابعي رويههاي فراخواني و تعريف eadd Proc محاوره كادر از يا كنيد تايپ فرم ماژول در را رويه ميتوانيد تابعي رويههاي است: صورت اين به تابعي رويههاي تعريف كلي شكل كنيد. استفاده dure Private Function تابع نام نامآرگومان( As آرگومان نوع,... ( As بازگشتي مقدار نوع دستور)ات( تابع مقداربازگشتي=نام End Function و شده آغاز Private كليدي كلمه با و بوده فرعي رويه مانند تابعي رويه يك تعريف كلمه تابعي رويه تعريف ادامه در شود. تعريف محلي صورت به تابعي رويه ميشود باعث رويههاي نامگذاري قوانين ميگيرد. قرار تابعي رويه نام آن دنبال به و Function كليدي متغيرهاست. و فرعي رويههاي مانند تابعي تا كنيد مشخص را رويه آرگومانهاي نوع و نام بايد تابعي رويه نام تعيين از پس از استفاده و تعريف نحوه شوند. ارسال رويه به نياز مورد مقادير آنها از استفاده با و تعداد و آنها از استفاده و ميباشد فرعي رويههاي مانند تابعي رويههاي در آرگومانها را خود نظر مورد دستورات بايد تابعي رويه تعريف از پس است. اختياري آرگومانها نوع كنيد. تعيين End Function عبارت با را رويه خاتمه و داده قرار رويه در موجود فرعي رويههاي در و دارد وجود تابعي رويههاي با رابطه در كه مهمي نكته اما در كه همانطور ميشود. فراخواني محل به مقدار يك بازگشت نحوه به مربوط نيست نام به دهيد بازگشت ميخواهيد كه را مقداري بايد ميبينيد تابعي رويه تعريف كلي شكل فراخواني محل به شده تعيين مقدار آن اجراي و دستور اين به رسيدن با دهيد. انتساب تابع تعريف اول خط انتهاي در بازگشتي مقدار نوع بايد اين بر عالوه ميشود. داده بازگشت به ميتوانيد تابعي رويه يك فراخواني براي شود. معين آرگومانها معرفي از پس و رويه كنيد: عمل شكل اين ناميكمتغيرمتناسببانوعدادهبازگشتي نامرويهتابعي= مقدارمربوطبهآرگوماناول(, محاسبات نتيجه عنوان به را مقداري آنكه بدون را تابعي رويه ميتوانيد همچنين صورت به ميتواند تابعي رويه فراخواني صورت اين در كنيد. تعريف دهد بازگشت باشد. فرعي رويه يك فراخواني

196 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه (..., مقدار مربوط به آرگومان اول( نام رويه Call..., مقدار مربوط به آرگومان اول نام رويه نكته: مقدار بازگشتي يك تابع ميتواند به عنوان مقدار ارسالي براي تابع ديگري استفاده شود. نوع مقدار بازگشتي در تعريف تابع با توجه به نوع دادهاي كه به محل فراخواني بازگشت ميدهد تعيين ميشود. اگرنوعمقداربازگشتيدرتعريفتابعتعييننشودبهطورپيشفرضازنوعدادهInteger استفادهميشود. مثال 3: پروژهاي طراحي كنيد كه با استفاده از يك تابع باقيمانده تقسيم دو عدد دلخواه را محاسبه كرده و نمايش دهد. براي اين كار مراحل بعد را انجام دهيد: شكل برنامه ويژوال بيسيك را اجرا كنيد و يك پروژه از نوع Standard EXE به همراه يك فرم مطابق شكل 7-5 ايجاد كنيد. دو كادر متن روي فرم قرار دارند كه اعداد موردنظر در آن ها وارد خواهند شد و كاربر با كليك روي دكمه Remainder باقي مانده تقسيم دو عدد را مشاهده خواهد كرد. - 2 به پنجره ماژول فرم برويد و تابع remainder را به اين صورت براي محاسبه باقيمانده تقسيم دو عدد تعريف كنيد: Private Function remainder (intno1 As Integer, intno2 As _ Integer)As Integer Dim intresult As Integer intresult = intno1 Mod intno2 remainder = intresult End Function 186

197 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در رويهها انواع از استفاده و ايجاد توانایی کارهفتم: واحد مقسوم مقدار دريافت براي كه است intno2 و intno1 آرگومان دو داراي remainder تابع محلي متغير يك ابتدا رويه اين دستورات بخش در سپس ميروند بهكار عليه مقسوم و زا استفاده با آن دنبال به و ميشود تعريف تقسيم باقيمانده ذخيرهسازي براي ديگر براي اما ميشود. ذخيره )intresult( متغير اين در عدد دو تقسيم باقيمانده Mod عملگر remainder = intresult دستور از شود داده بازگشت فراخواني محل به محاسبه نتيجه آنكه نسبت تابع نام به است شده ذخيره intresult متغير در كه محاسبه نتيجه و ميشود استفاده است شده معرفي )Integer( صحيح عدد نوع از intresult متغير چون عالوه به ميشود. داده شده معرفي Integer نوع از نيز بازگشتي مقدار نوع تابع تعريف اول خط انتهاي در بنابراين است. كنيد: تنظيم زير صورت به را Remainder فرمان دكمه Click رويداد مرحله اين در - 3 Private Sub cmdrem _Click() Dim intm As Integer, intn As Integer Dim intmod As Integer intm = Val (txtno1.text) intn = Val (txtno2.text) intmod = remainder (intm, intn) lblres.caption = "Answer Is = " + Str(intmod) End Sub در تبديل از بعد شدهاند تايپ متن كادرهاي در كه مقاديري ابتدا رويه اين اجراي با intn و intm متغيرهاي با remainder تابع سپس ميشوند ذخيره intn و intm متغيرهاي منتقل remainder تابعي رويه تعريف بخش به برنامه اجراي نتيجه در و ميشود فراخواني برقرار ارتباط intno2 و intno1 آرگومانهاي با وintn intm ارسالي متغيرهاي بين و شده محاسبات انجام با و ميشود آغاز تابعي رويه در موجود دستورات اجراي سپس ميكند يعني فراخواني محل به برنامه اجراي آن, انجام و remainder= intresult دستور به رسيدن و مقدار و بازميگردد )intmod= remainder (intm, intn دستور و remainder دكمه Click رويداد كنترل در مقدار اين پايان در و ميشود ذخيره intmod متغير در intresult متغير در موجود بازگشتي مقدار نوع با intmod متغير نوع مييابد. خاتمه رويداد و شده داده نمايش برچسب دارد. را الزم هماهنگي intresult متغير نوع همينطور و تابع تعريف در 187

198 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: نماييد. اجرا را آن سپس كنيد ذخيره remainder نام با را فرم و پروژه - 4 Remainder دكمه روي سپس كنيد وارد متن كادرهاي در ترتيب به را 5 و 12 اعداد - 5 نماييد. مشاهده را محاسبه نتيجه و كرده كليك ويژوالبيسيك پنجره به سپس كنيد آزمايش نيز ديگري مقادير براي را پروژه - 6 بازگرديد. تمرين: اب باشد كوچكتر دوم عدد از اول عدد اگر كه كنيد تنظيم بهگونهاي را فوق پروژه نشود. انجام نيز محاسبات و شود گزارش وي به كاربر خطاي فرعي, رويه يك از استفاده يك از استفاده با و كند دريافت كاربر از را دلخواه عدد يك كه كنيد طراحي پروژهاي دهد. نمايش و كرده محاسبه را آن مطلق قدر تابعي رويه دهد. نمايش را دلخواه عدد هر قرينه تابع يك از استفاده با كه كنيد طراحي پروژهاي را آن معكوس مقدار و كند دريافت را x دلخواه عدد هر كه بنويسيد تابعي رويهاي 1 دهد. بازگشت و كرده محاسبه X تابعي و فرعي رويههاي به مقادير ارسال روشهاي 7-3 به نياز مورد مقادير انتقال چگونگي و تابعي و فرعي رويههاي از استفاده نحوه تاكنون رويهها به نياز مورد مقادير ارسال براي مختلف روش دو واقع در گرفتيد. فرا را رويهها با متغيرها فراخواني روش اولين دارند. همراه به را ويژگيهايي يك هر كه دارد وجود است. )Call By Value( مقدار با متغيرها فراخواني روش دومين و )Call By Reference( مرجع 188 مرجع با فراخواني روش مربوطه رويه در آن متناظر آرگومان و ارسالي متغير بين مستقيمي ارتباط روش اين در حافظه در مشتركي محل به آن با متناظر آرگومان و متغير كه گونهاي به ميشود برقرار در تغيير سبب رويه در آرگومانها محتويات در تغيير هرگونه بنابراين ميكنند. اشاره رويهها به را خود مقادير روش اين با تاكنون شما واقع در شد. خواهد ارسالي متغيرهاي

199 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در رويهها انواع از استفاده و ايجاد توانایی کارهفتم: واحد كردهايد. ارسال نماييد ارسال رويه يك به مرجع با ارسال روش با را متغيرها بخواهيد كه صورتي در صورت در البته كنيد. ذكر رويه تعريف در آرگومانها نام ابتداي در را ByRef كليدي كلمه نوع از فرض پيش طور به متغيرها ارسال نحوه نيز ByRef كليدي كلمه از استفاده عدم ميباشد. مرجع با فراخواني يكديگر با را متغير دو محتويات فرعي رويه يك از استفاده با ميخواهيد كنيد فرض بگيريد: نظر در را زير رويه منظور اين براي كنيد جابهجا Private Sub moving(byref sngx As Single,ByRef sngy As Single) Dim sngtemp As Single sngtemp = sngy sngy = sngx sngx = sngtemp End Sub و ميروند بهكار متغير دو مقادير دريافت براي كه دارد آرگومان دو moving فرعي رويه تعيين عبارت اين است شده استفاده ByRef كليدي كلمه از آنها از يك هر نام ابتداي در باشد. مرجع با فراخواني صورت به رويه به متغيرها ارسال نحوه كه ميكند مقادير ابتدا فرعي رويه داخل در sngtemp نام با واسطه متغير يك تعريف با همچنين در را sngx متغير مقدار سپس كرده ذخيره )sngtemp( واسطه متغير در را متغيرها از يكي صورت اين به ميكند. كپي sngx متغير در را واسطه متغير مقدار آخر در و sngy متغير بايد اما ميشوند تعويض يكديگر با دارند قرار sngy و sngx آرگومانهاي در كه مقاديري رويه از خارج در متغير دو مقدار تعويض براي ميتوان رويه اين از چگونه كه ببينيم فراخواني زير صورت به moving فرعي رويه كار اين براي كه كنيد فرض كرد. استفاده ميشود: Dim x As Single Dim y As Single x = 28 y = -10 Call moving(x, y) 189 Print x, y

200 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه پس از تعريف و مقداردهي دو متغير x و y, رويه فرعي فراخواني شده است. در اين جا اجراي برنامه به محل رويه منتقل مي شود و چون از كلمه كليدي ByRef در ابتداي نام آرگومان ها در تعريف رويه استفاده شده است ارتباط مستقيمي بين متغيرهاي ارسالي و آرگومان هاي رويه moving به وجود مي آيد در نتيجه تغيير در محتويات آرگومان هاي sngx و sngy سبب تغيير در محتويات متغيرهاي ارسالي x و y و تعويض محتويات دو متغير مي شوند. بنابراين پس از خاتمه اجراي رويه دستور Print مقادير جابه جا شده را براي متغيرهاي x و y در روي فرم نمايش خواهد داد. 1,y+ Call moving ( x + فراخواني شود مقدار نكته اگر رويه فرعي moving به صورت (1 متغيرها پس از فراخواني رويه همان مقادير قبل از فراخواني خواهد بود. اگر مقادير ثابت به رويه فرعي moving ارسال شود كلمههاي كليدي ByRef هيچ تأثيري روي نحوه ارسال آنها نميگذارد. در روش فراخواني با مرجع همنام يا غيرهمنام بودن متغيرهاي ارسالي با آرگومانهاي رويه اهميتي ندارد. تمرين: پروژهاي طراحي كنيد تا بتوانيد با استفاده از يك فرم, يك كنترل دكمه فرمان و با استفاده از رويه فرعي moving تعويض محتويات دو متغير را با استفاده از روش فراخواني با مرجع بررسي كنيد روشفراخوانيبامقدار گاهي اوقات الزم است تا بين متغيرهاي ارسالي و آرگومانهاي متناظر آنها ارتباطي به وجود نيايد و در صورت تغيير در مقدار آرگومانها در محتويات متغيرهاي ارسالي تغيير حاصل نشود. در اين صورت امكان استفاده از روش فراخواني با مرجع مفيد نيست. روش ديگري كه براي انجام اين گونه عمليات مناسب است روش فراخواني با مقدار ميباشد. در اين روش با ذكر كلمه كليدي ByVal بهجاي عبارت ByRef از ايجاد ارتباط مستقيم بين متغيرهاي ارسالي و آرگومانها جلوگيري به عمل ميآيد و فقط مقادير موجود در متغيرهاي ارسالي در داخل آرگومانهاي متناظر آنها كپي خواهد شد. به عنوان

201 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارهفتم: توانايی ايجاد و استفاده از انواع رويه ها در ويژوال بيسيك مثال اگر تعريف رويه فرعي moving را به اين صورت تغيير دهيد: Private Sub moving)byval sngx As Single, ByVal sngy As Single( در صورت فراخواني رويه فرعي moving با حالت فوق در واقع عدد 28 در آرگومان sngx رويه و عدد - 1 در آرگومان sngy رويه كپي خواهند شد و پس از تعويض محتويات اين دو آرگومان در داخل رويه و خروج از رويه مقادير مربوط به اين آرگومان ها از بين خواهد رفت و با بازگشت به محل فراخواني و اجراي دستور Print همان مقادير قبل از فراخواني براي متغيرهاي x و y نمايش داده مي شوند. تمرين: رويه moving را در پروژهاي كه در تمرين قبل ايجاد كردهايد به شكل فراخواني با مقدار تغيير دهيد سپس آن را اجرا كرده و نتيجه را با حالت قبل بررسي كنيد. مثال 4: يك رويه فرعي بنويسيد تا دو عدد را دريافت كرده ميانگين آن ها را محاسبه كند و نمايش دهد. براي اين كار يك رويه average را به صورت زير بنويسيد: Private Sub average(byval sngno1 As Single,ByVal sngno2 _ sngave = (sngno1 + sngno2) / 2 End Sub As Single, ByRef sngave As Single) در اين رويه از سه آرگومان استفاده شده است. آرگومان هاي sngno1 و sngno2 براي ارسال اعداد به داخل رويه و به صورت فراخواني با مقدار تعريف شده اند زيرا الزم نيست اين دو آرگومان در متغيرهايي كه در زمان فراخواني به رويه ارسال مي شوند تغييري ايجاد كنند. اما آرگومان سوم يعني sngave با روش ارسال با مرجع تعريف شده است زيرا پس از محاسبه معدل دو عدد در محل فراخواني مورد استفاده قرار مي گيرد. براي چنين رويه اي فراخواني به صورت زير خواهد بود: Call average (x, y, average) در فراخواني فوق ابتدا مقادير متغيرهاي ارسالي x و y در آرگومان هاي sngno1 و sngno2 كپي مي شوند و بين متغير average و آرگومان sngave در رويه به گونه اي ارتباط 191

202 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: را average ارسالي متغير محتويات,sngave آرگومان مقدار در تغيير كه ميشود برقرار كه ميبينيد شد. خواهد آن روي تغييرات همان اعمال سبب و ميدهد قرار تأثير تحت نيز فراخواني محل به را محاسبات نتيجه فرعي رويههاي از استفاده با ميتوان نيز روش اين با متغير در مقدار اين ذخيره و عدد دو متوسط محاسبه از پس صورت اين به داد. بازگشت محل در ميتوانيد اكنون ميگرديد. باز فراخواني محل به و يافته خاتمه رويه sngave كنيد. پيدا دسترسي عدد دو معدل به average متغير از استفاده با رويه فراخواني تمرين: استفاده با تا كنيد طراحي گونهاي به فرم يك همراه به Standard EXE نوع از پروژه يك كرد. مشاهده فرم روي و محاسبه را دلخواه عدد دو هر معدل بتوان average رويه از رويهها در آرگومانها نام از استفاده نحوه 7-4 هب را دادهها توانستيم رويهها آرگومانهاي ارسال در ترتيب رعايت از استفاده با تاكنون زمان در آرگومانها نام از استفاده با ميتوانيد شما دهيم نسبت متناظرشان آرگومانهاي تعريف در آنها قرارگيري ترتيب گرفتن نظر در بدون را دادهها ذكر ترتيب فراخواني كنيد. ارسال رويه به رويه و آسانتر فراخواني كار آرگومانها تعداد بودن زياد زمان در ميشود باعث روش اين رد آرگومانها نام از استفاده براي شود. كمتر آرگومانها به دادهها ارسال در اشتباه احتمال آرگومان نام =: ارسالي مقدار كنيد: عمل زير صورت به ميتوانيد فراخواني زمان اعداد مجموع بتوان آن وسيله به كه بنويسيد تابعي رويه يك ميخواهيد كنيد فرض كنيد. توجه دستورات اين به كار اين براي كرد. محاسبه را دلخواه طبيعي عدد دو بين زوج Function Myfunc(m As Integer, n As Integer) As Single Dim i As Integer, sum As Single If m Mod 2 = 0 Then m = m+2 Else m = m+ 1 )m<n( sum= 0 192

203 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در رويهها انواع از استفاده و ايجاد توانایی کارهفتم: واحد For i = m To n-1 Step 2 sum=sum+i Next i Myfunc = sum End Function ارسال تابع به )m<n فرض )با n و m آرگومان دو ميشود ديده تابع اين تعريف در عدد بتوان تا ميشود بررسي if يك وسيله به m بودن فرد يا زوج ابتدا تابع در ميشوند. و بود خواهد درست M mod 2 = 0 حاصل باشد زوج m اگر كرد تعيين را m از بعد زوج نتيجه باشد فرد m اگر اما ميشود محاسبه بعدي زوج عدد m به واحد دو شدن اضافه با بعدي زوج عدد باز m به واحد يك شدن اضافه با و بود خواهد نادرست M mod 2 = 0 دستور توسط و For حلقه يك با n و m بين زوج اعداد مجموع سپس ميشود محاسبه m بين زوج اعداد مجموع عنوان به Sum مقدار پايان در و ميآيد دست به Sum = Sum+i صورت در تا شده اجرا n - مقدار 1 به رسيدن تا نيز For حلقه ميشود. داده بازگشت n و نشود. وارد مجموع در n خود n بودن زوج چنين فراخواني نحوه تاكنون ميپردازيم. آن فراخواني به تابع كاركرد نحوه درك از بعد بعد فرمان از 12 و 2 بين زوج اعداد مجموع نمايش براي مثال فراگرفتهايد را توابعي ميكنيم: استفاده Print Myfunc (2,12) با اما بود. خواهد نامناسب كار نتيجه شود عوض 12 و 2 اعداد جاي فراخواني در اگر فوق مثال در نمونه براي ميرود. بين از اشتباه امكان آرگومانها نام از استفاده با فراخواني بود: خواهد زير صورت به آرگومانها نام از استفاده با فراخواني Print Myfunc (n := 12, m := 2)»»=: همراه به آرگومان نام از بايد آرگومانها نام از استفاده با فراخواني براي كه ميبينيد نوشت: نيز زير صورت به ميتوان را قبل فراخواني البته كنيد. استفاده ارسالي مقدار از قبل در Print Myfunc (m := 2, n := 12) تمرين: بتواند نيز M<N فرض بدون كه كنيد تنظيم گونهاي به را Myfunc تابعي رويه دهد. انجام صحيح بهطور را محاسبات 193

204 اجتماعی امور و كار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بيسيك ويژوال نويسی برنامه استاندارد: نام پيشرفته كار رايانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: Exit Function وExit 7-5 خروجازيكرويهبااستفادهازدستورات Sub انتهاي به و شده اجرا رويه يك دستورات تمام اينكه از قبل تا است الزم اوقات گاهي خروج براي منظور اين به بازگرديد. فراخواني محل به و شده خارج رويه از برسيد رويه Exit دستور از تابعي رويه يك از خروج براي و Exit Sub دستور از فرعي رويه يك از كنيد. استفاده Function را دلخواه طبيعي عدد هر ارقام تعداد تا كنيد تعريف تابعي رويه يك 5: مثال كنيد: تعريف زير صورت به را digits تابعي رويه كار اين براي دهد. نمايش و كرده محاسبه Private Function digits(byval sngno As Integer) As Integer Dim intdigits As Integer If sngno < 0 Then End If digits = -1 Exit Function While (sngno > 0 ) Wend 0 ngno = sngno \1 intdigits = intdigits + 1 digits = intdigits 194 End Function استفاده تابع داخل به نظر مورد عدد انتقال براي كه است آرگومان يك داراي تابع اين تغيير تا بود خواهد مقدار با ارسال نيز نظر مورد عدد ارسال روش اين بر عالوه است. شده نوع ضمن در نگذارد. ارسالي متغير روي تأثيري تابعي رويه در sngno آرگومان مقدار روي بازگشتي داده نوع بنابراين است صحيح نوع از نيز ارقام تعداد يعني بازگشتي داده مقدار شود. مي تعريف Integer نوع از و رويه اول خط انتهاي در در ارسالي متغير مقدار ابتدا آن اجراي و تابع اين فراخواني صورت در هرحال به

205 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهفتم: توانایی ايجاد و استفاده از انواع رويهها در ويژوالبيسيك آرگومان sngno كپي ميشود سپس با اجراي يك دستور If مقدار عدد ارسال شده بررسي ميشود و در صورتيكه مقدار آن كوچكتر از صفر باشد مقدار 1- را بازگشت ميدهد. از اين مقدار ميتوان در محل فراخواني براي اطمينان از نحوه ارسال صحيح مقدار به تابع استفاده كرد سپس با استفاده از دستور Exit Function اجراي رويه خاتمه يافته و به محل فراخواني بازميگرديد. اين عمل سبب خواهد شد تا كاربر از ارسال مقادير عددي اشتباه مطلع شود اما اگر مقدار ارسالي بزرگتر از صفر باشد با استفاده از يك حلقه While...Wend تعداد ارقام عدد محاسبه شده و در متغير intdigits ذخيره ميشود و پس از خاتمه حلقه اين مقدار با استفاده از دستور digits= intdigits بازگشت داده خواهد شد. تمرين: پروژهاي طراحي كنيد تا با استفاده از يك رويه فرعي بتواند تعداد ارقام هر عدد طبيعي دلخواه را محاسبه كرده و در يك كادر پيام نمايش دهد به عالوه در صورت ارسال مقادير منفي به رويه پيام خطايي نمايش داده شود و اجراي رويه نيز خاتمه يابد. 7-6 رويههاي محلي و عمومي رويههايي كه تاكنون تعريف شدهاند از نوع محلي يا به عبارت ديگر Private ميباشند و فقط در همان ماژولي كه تعريف ميشوند قابل شناسايي و فراخواني هستند اما گاهي اوقات الزم است تا يك رويه تابعي يا فرعي را كه در يك ماژول فرم تعريف شده است در ماژول فرم ديگري فراخواني كنيد. شكل 7-6 در اين صورت در زمان اجراي برنامه و با فراخواني رويه مزبور پيامخطايي مطابقشكل 7-6 نمايش داده ميشود نحوه ايجاد رويههاي عمومي در ماژول فرم براي آنكه عمليات فراخواني يك رويه از داخل ماژول فرم ديگري امكانپذير باشد به جاي كلمه كليديPrivate از كلمه كليدي Public استفاده كنيد. به اين شكل رويه به

206 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه عنوان يك رويه عمومي معرفي خواهد شد و عالوه بر فراخواني آن در ماژولي كه تعريف شده است در ساير ماژول ها امكان فراخواني خواهد داشت به چنين رويه هايي رويه هاي عمومي مي گويند. براي فراخواني رويه هاي عمومي بايد قبل از ذكر نام رويه, نام ماژول فرمي را كه رويه در آن تعريف شده است تايپ كنيد و سپس كاراكتر نقطه را تايپ كرده و نام رويه را ذكر نماييد. اين مطلب را مي توان به اين صورت بيان كرد: )مقاديرارسالي(نام رويه فرعي.نام فرمي که رويه فرعي در آن تعريف شدهاست Call )مقاديرارسالي( نام رويه تابعی. نام فرمي که رويه تابعی در آن تعريف شده است. نكتهدر صورتيكه حوزه شناسايي )Scope( يك رويه در زمان تعريف تعيين نشود رويه به طور پيشفرض به صورت عمومي تعريف خواهد شد. مثال 6: پروژه اي طراحي كنيد كه ميزان مصرف برق هر ساختمان دلخواهي را محاسبه كرده مقادير فعلي و قبلي را كه از كنتور برق قرائت شده اند وارد كند. با محاسبه ميزان مصرف هزينه برق مصرفي در ساختمان مورد نظر به دست مي آيد. به اين منظور مراحل بعد را به ترتيب انجام دهيد: - 1 يك پروژه جديد از نوع Standard EXE ايجاد كنيد سپس يك فرم مطابق شكل 7-7 براي دريافت مقادير ورودي ايجاد كنيد. شكل

207 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهفتم: توانایی ايجاد و استفاده از انواع رويهها در ويژوالبيسيك 197 در اين فرم از چهار كادر متن براي دريافت تاريخ قرائت كنتور و ميزان مصرف برق در مراجعه قبلي و مراجعه فعلي استفاده ميشود و از دكمه Compute براي انجام محاسبات و نمايش نتيجه آن روي فرم ديگري استفاده ميشود. 2- براي انجام محاسبات از يك رويه تابعي و يك رويه فرعي استفاده كنيد اين رويهها را در ماژول فرم و به اين صورت تنظيم كنيد: Public Function expense (ByVal sngpv As Single, ByVal sngcv As Single) As Currency Dim sngresult As Single, intlevel As Integer Dim curpay As Currency sngresult = sngcv - sngpv Select Case sngresult Case Is < 500 : intlevel = 1 Case Is < 1000 : intlevel = 2 Case Is < 1500 : intlevel = 3 Case Else intlevel = 4 End Select Call payment (intlevel, sngresult, curpay) expense = curpay End Function Private Sub payment(intlevel As Integer, ByVal sngresult _ As Single, ByRef curpay As Currency) Select Case intlevel Case 1 : curpay = sngresult * 100 Case 2 : curpay = sngresult * 250 Case 3 : curpay = sngresult * 500 Case 4 : curpay = sngresult * 1000 End Select End Sub

208 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه رويه تابعي expense به صورت عمومي تعريف شده و داراي دو آرگومان از نوع Single براي دريافت مقادير مصرف قبلي و فعلي است. اين تابع با توجه به مقدار مصرف برق بر اساس كيلووات سطح مصرف و هزينه آن را محاسبه كرده و به صورت يك مقدار از نوع Currency بازميگرداند پس از فراخواني اين تابع ابتدا مقادير قرائت شده به ترتيب در آرگومانهاي sngpv و sngcv كپي ميشوند سپس تفاضل اين دو مقدار از يكديگر كسر شده و به عنوان ميزان مصرف در متغير sngresult ذخيره ميشوند و بر همين اساس با استفاده از يك دستور Select Case سطح مصرف )intlevel( نيز تعيين ميشود تا با توجه به اين سطح, هزينه مصرف برق محاسبه شود. به اين منظور چهار سطح مصرف از كم تا خيلي زياد در نظر گرفته شده است پس از محاسبه سطح مصرف برق, نوبت محاسبه هزينه آن ميشود. اين كار با استفاده از يك رويه فرعي انجام ميشود. رويه payment با دريافت سطح مصرف )intlevel( و مقدار مصرف برق,)sngresult( هزينه آن را با استفاده از يك دستورCase Select بر اساس سطح مصرف محاسبه كرده و در متغير curpay ذخيره ميكند. به عالوه متغير curpay به صورت فراخواني با مرجع به رويه ارسال ميشود تا ميزان هزينه در محل فراخواني قابل استفاده باشد اين رويه از نوع محلي تعريف شده است. پس از آنكه رويه payment خاتمه يافت اجراي برنامه به محل فراخواني آن يعني رويه تابعي expense بازگشته و با استفاده از دستور expense= curpay مقدار هزينه مصرف برق را به محل فراخواني بازميگرداند. 3- نام كادرهاي متن مربوط به تاريخ قرائت و ميزان مصرف قبلي را به ترتيب روي tx t pd و txtpv و تاريخ قرائت و ميزان مصرف فعلي را به ترتيب روي txtcd و txtcv تنظيم كنيد. - 4 براي نمايش ميزان هزينه مصرف برق در يك فرم جداگانه احتياج به يك فرم جديد خواهيد داشت بنابراين يك فرم جديد مطابق شكل 7-8 ايجاد كنيد سپس فرم و پروژه را با نام viewpayment ذخيره كنيد. شكل

209 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهفتم: توانایی ايجاد و استفاده از انواع رويهها در ويژوالبيسيك سپس رويداد Activate اين فرم و رويداد Click دكمه OK را به صورت زير تنظيم كنيد: Private Sub Form_Activate() Dim sngpay As Single Dim sngpv As Single Dim sngcv As Single sngpv = Val(frmpower.txtpv.Text) sngcv = Val (frmpower.txtcv.text) sngpay = frmpower.expense (sngpv, sngcv) lblview.caption = "Payment For Date " + Trim (frmpower.txtpd.text) + _ " To Date "+Trim (frmpower.txtcd.text) lblpay.caption = sngpay End Sub Private Sub cmdok_click() Unload Me frmpower.setfocus frmpower.txtpd.setfocus End Sub در اين فرم از رويداد Activate فرم View Payment استفاده شده است تا پس از نمايش فرم گزارش محاسبات در روي فرم به نمايش درآيد. در اين رويه با فراخواني تابع expense محاسبات انجام ميشود. همانطور كه مالحظه ميكنيد براي فراخواني اين تابع ابتدا نام فرمي كه تابع در ماژول آن تعريف شده يعني frmpower ذكر شده است. البته اين كار زماني مؤثر است كه رويه به صورت عمومي )Public( تعريف شده باشد در اين صورت در زمان تايپ نام فرم )frmpower( و كاراكتر نقطه يك ليست حاوي نام رويه expense كه در ماژول frmpower تعريف شدهاست نمايشدادهخواهد شد )شكل 7-9(. نكته ديگري كه در فراخواني رويهexpense مهم است نحوه ارسالمقادير تايپ شده در كادرهاي متن است. 199

210 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه براي دسترسي خصوصيات كنترلهاي يك فرم در فرم ديگر ميتوانيد ابتدا نام فرم سپس نام كنترل و بعد نام خصوصيت را ذكر كنيد به اين صورت مقادير مصرف برق با استفاده از تابع Val به نوع عددي تبديل شده و به تابع ارسال ميشوند. مقدار هزينه مصرف برق با استفاده از تابع expense محاسبه شده و برگردانده ميشود و در نهايت اين مقدار در متغير sngpay ذخيره ميشود. در ادامه اجراي رويه Activate تاريخهاي مربوط به قرائت كنتور به وسيله كنترل برچسب lblview و هزينه مصرف برق به وسيله كنترل برچسب lblpay نمايش داده ميشوند. شكل رويداد Click دكمه OK نيز بهگونهاي تنظيم شده است تا در صورتيكه كاربر روي اين دكمه كليك كند فرم View Payment بسته شده و فوكوس با متد SetFocus به فرم frmpower و سپس كنترل كادر متن txtpd داده شود. - 5 به ماژول فرم frmpower برويد و دستور frmview.show را در رويداد Click دكمه Compute و دستور Unload Me را در رويداد Click دكمه Exit تايپ كنيد. - 6 فرم و پروژه را با نام power ذخيره كنيد. پروژه را اجرا كنيد و دادهها را مطابق شكل 7-10 در كادرهاي متن تايپ كرده و روي دكمه Compute كليك كنيد نتيجه محاسبات مطابق شكل 7-11 در فرم دوم قابل مشاهده خواهد بود. - 7 با كليك روي دكمه Exit بهاجراي پروژه خاتمه دهيد و به پنجره ويژوالبيسيك بازگرديد.

211 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارهفتم: توانايی ايجاد و استفاده از انواع رويه ها در ويژوال بيسيك شكل 7-10 شكل 7-11 تمرين: پروژه power را بهگونهاي تنظيم كنيد كه رويه فرعي payment در ماژول فرم View Payment تعريف شود نحوهايجادرويههايمحليوعموميبااستفادهازماژولکد روش ديگري نيز در ويژوال بيسيك وجود دارد كه در آن به جاي تعريف رويه هاي موردنظر در ماژول فرم از ماژول كد Module( )Code استفاده مي شود. ماژول كد يكي ديگر از اجزاي تشكيل دهنده در پروژه هاست. ماژول هاي كد فقط از دستورالعمل ها تشكيل مي شوند و شكل ظاهري مانند فرم ها ندارند. يكي ديگر از كاربردهاي ماژول كد تعريف متغيرهاي عمومي است. نحوه تعريف و فراخواني رويه ها در يك ماژول كد مانند ماژول فرم است. 201 مثال 7: پروژه power را به گونهاي تغيير دهيد تا رويههاي مربوطه را با استفاده از ماژول كد تعريف و فراخواني كند. به اين منظور عمليات زير را به ترتيب انجام دهيد: 1- ابتدا يك ماژول كد به پروژه اضافه كنيد به اين منظور در پنجره ويژوالبيسيك و در پنجره پروژه كليك راست كنيد سپس به ترتيب روي گزينه Add و بعد روي گزينه Module كليك كنيد )شكل 7-12(. كادرمحاوره Add Module مطابق شكل 7-13 نمايش داده ميشود. 2- در كادر محاوره Add Module روي دكمه Open كليك كنيد تا يك ماژول كد به پروژه power اضافه شود. اكنون به پنجره خصوصيات برويد و خصوصيت Name ماژول كد را روي مقدار mdlpower تنظيم كنيد.

212 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شكل 7-12 شكل در پنجره پروژه روي آيكن ماژول كد كليك راست كنيدوگزينهModuleAs...Save را انتخاب كنيد سپس ماژول كد را با نام power ذخيره كنيد. همان طور كه در كادر محاوره ذخيره سازي ماژول مشاهده مي كنيد پسوند فايل هاي ماژول كد BAS است. - 4 در اين مرحله به ماژول فرم frmpower برويد و رويه هاي expense و payment را به ماژول كد mdlpower انتقال دهيد. - 5 به ماژول فرم frmview برويد و عبارت.frmpower را از ابتداي نام رويه expense حذف كنيد. توجه داشته باشيد اگر رويه اي در ماژول كد به صورت عمومي تعريف شود تمام ماژول ها مي توانند آن را فراخواني كنند و نيازي به استفاده از نام ماژول كد در زمان فراخواني رويه نيست. نكته در صورتي كه يك متغير در يك ماژول كد بهصورت عمومي تعريف شود در تمام رويه قابل شناسايي و استفاده است - 6 تغييرات را ذخيره كرده و پروژه را اجرا كنيد و با همان مقادير مثال 5 آزمايش كنيد. - 7 در پايان روي دكمه Exit كليك كنيد تا اجراي پروژه خاتمه يابد سپس به پنجره ويژوال بيسيك بازگرديد. 202

213 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در رويهها انواع از استفاده و ايجاد توانایی کارهفتم: واحد... )Event Procedures( رويداد رويههاي 7-7 زا ديگر يكي ميدانيد همانطوركه و كردهايد استفاده بارها رويهها اينگونه از تاكنون رويهها از نوع اين رويدادهاست. از پشتيباني ويژوالبيسيك برنامهنويسي زبان ويژگيهاي ميآيند وجود به همزمان طور به آنها با همراه فرم يا كنترل مانند شئ يك ايجاد زمان در آن در موجود دستورات و رويداد رويه ميدهد رخ شئ يك به مربوط رويداد كه زماني و است: صورت اين به رويداد رويه يك كلي شكل ميشوند. اجرا خودكار طور به Private Sub شئ نام _ رويداد نام رويداد( )آرگومانهاي دستور)ات( End Sub مقدار شئ نام كنترلها رويداد رويههاي در باشد. فرم يك يا كنترل يك ميتواند شئ نام عنوان به Form كليدي كلمه از فرمها رويداد رويههاي در و كنترل Name خصوصيت ميشود. استفاده شئ دارند. وجود نيز رويداد آرگومانهاي نام به ديگري بخش رويداد رويههاي از بعضي در داخل به را اطالعاتي رويداد نوع به توجه با كه هستند متغيرهايي واقع, در آرگومانها پيگيري رويداد در را خود مقاصد آنها از استفاده با برنامهنويس تا ميكنند منتقل رويه از كه هستند رويدادها دسته اين از كليد صفحه و ماوس به مربوط رويداد رويههاي كند. ميكنند. استفاده آرگومانها در آنها نظاير و Unload Load DblClick Click مانند رويدادي رويههاي از تاكنون البته رويههاي از استفاده نحوه نيز آينده مباحث در كردهايد. استفاده كنترلها و فرمها با رابطه مهمترين با رابطه در توضيحاتي ارايه به است الزم اينجا در فراميگيريد. را ديگري رويداد بپردازيم. كنترلها و فرمها رويدادهاي Activate رويداد رويه ميگيرد. فوكوس فرم كه ميشود اجرا زماني و فرمهاست به مربوط رويداد رويه اين ديگر پنجره به پنجره يك از فوكوس و باشد شده تشكيل فرم چند از پروژهاي وقتي 203

214 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه برنامه منتقل شود رويداد Activate مربوط به پنجره اي كه فوكوس را در اختيار گرفته است اجرا خواهد شد. الزم به ذكر است كه اين رويه رويداد فاقد هر گونه آرگومان مي باشد. اين رويداد پس از رويداد Load اجرا مي شود. نكته رويداد Activate درزمان انتقال فوكوس از پنجره يكبرنامه به پنجره برنامه ديگر اجرا نخواهد شد رويهرويداد Click اين رويه نيز فاقد آرگومان است و زماني اجرا مي شود كه كاربر روي فرمي كه فعال است يا كنترل موجود در آن كليك كند رويهرويداد Deactivate اين رويداد نيز فاقد آرگومان و مخصوص فرم هاست و عملكردي شبيه به رويداد Activate دارد با اين تفاوت كه زمان اجراي آن هنگامي است كه فرم فوكوس خود را بين پنجره هاي يك برنامه از دست مي دهد و اطالعات فرم در حافظه باقي مي ماند رويهرويداد DblClick اين رويه رويداد در فرمها و بسياري از كنترلها وجود دارد و فاقد هرگونه آرگومان است. اين رويداد زماني رخ ميدهد كه كاربر روي فرمي كه فعال است يا كنترل موجود در آن عمل دابلكليك انجام دهد رويهرويداد Load اين رويه نيز مربوط به فرمهاست و زماني اجرا ميشود كه اطالعات مربوط به فرم وارد حافظه اصلي شده و فرم روي دسكتاپ نمايش داده شود. در صورتيكه بخواهيد دستوراتي را در زمان اجراي برنامه انجام دهيد از اين رويداد استفاده كنيد رويهرويداد Unload اين رويداد نيز مخصوص فرمهاست و فاقد آرگومان ميباشد. زماني كه فرم را ميبنديد 204

215 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کارهفتم: توانايی ايجاد و استفاده از انواع رويه ها در ويژوال بيسيك يا به عبارت ديگر اطالعات فرم از حافظه كامپيوتر خارج شود اين رويداد اجرا مي شود. در صورتي كه بخواهيد دستوراتي را در زمان خاتمه برنامه يا بسته شدن فرم اجرا كنيد از اين رويه استفاده كنيد رويهرويداد GotFocus اين رويداد نيز بين فرمها و كنترلها مشترك است و زماني كه فرم يا كنترل فوكوس را در اختيار ميگيرند اجرا ميشود. در هنگامي كه يك فرم فوكوس را به دست ميآورد ابتدا رويداد Activate و سپس رويداد GotFocus اجرا ميشود. نكته در صورتيكه در يك فرم رويداد Activate و GotFocus بهطور همزمان مورد استفاده قرار گيرند فقط رويداد Activate اجرا خواهد شد. در صورتي كه در يك فرم كنترلي وجود داشته باشد كه بتواند فوكوس بگيرد )مانند كنترلText )Box رويداد GotFocus اجرا نمي شود رويهرويداد LostFocus اين رويداد نيز بين فرم ها و كنترل ها مشترك است و زماني كه فرم و كنترل فوكوس خود را از دست مي دهند اجرا مي شود. هنگامي كه يك فرم فوكوس را از دست مي دهد ابتدا رويداد LostFocus و سپس رويداد Deactivate اجرا مي شود. 205

216 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه Learn in English Introduction to Procedures You can simplify programming tasks by breaking programs into smaller logical components. These components called procedures can then become building blocks that let you enhance and extend Visual Basic. Procedures are useful for condensing repeated or shared tasks, such as frequently used calculations, text and control manipulation, and database operations. There are several types of procedures used in Visual Basic: Sub procedures do not return a value. Function Procedures return a value. Event Procedure. Visual Basic Procedure

217 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در رويهها انواع از استفاده و ايجاد توانایی کارهفتم: واحد 207 واژهنامه جزء خالصهكردن افزودن توسعهدادن تكراري آشنايي معرفي دستكاريكردن خصوصي رويه عمومي ديد ميدان Component Condense Enhance Extend Frequently Introduction Manipulation Private Procedure Public Scope مطالب خالصه رويه بهنام كوچكتر بخشهاي به برنامه يافته ساخت روش به برنامهنويسي در ميشود. تقسيم و رويداد رويههاي تابعي و فرعي رويههاي گروه چهار به ويژوالبيسيك در رويهها ميشوند. تقسيم ويژوالبيسيك آماده رويههاي مربوطه رويداد زمانيكه در و ميشوند ايجاد شئ يك ايجاد زمان در رويداد رويههاي ميشوند. اجرا خودكار بهطور ميدهد رخ كادرمحاوره از استفاده با يا فرم ماژول در تايپ با ميتوانيد را تابعي و فرعي رويههاي " كنيد. تعريف Add Procedure ميشود. استفاده Call دستور از فرعي رويههاي فراخواني براي دهيد. قرار رويه تعريف ابتداي در را Private كليدي كلمه محلي رويه يك تعريف براي است. فراخواني و شناسايي قابل ميشود تعريف كه ماژولي همان در فقط محلي رويه يك دهيد. قرار رويه تعريف ابتداي در را Public كليدي كلمه عمومي رويه يك تعريف براي است. فراخواني و شناسايي قابل پروژه در موجود ماژولهاي تمام در عمومي رويه يك ميشود. استفاده مرجع با فراخواني يا مقدار با فراخواني روش دو از رويهها فراخواني براي ميشود. داده قرار آرگومان در دادهها از كپي يك مقدار با رويهها فراخواني در مقدار تغيير سبب رويه آرگومانهاي مقدار در تغيير مرجع با رويهها فراخواني در ميشود. ارسالي متغيرهاي كرد. استفاده آرگومانها نام از ميتوان رويهها فراخواني هنگام در و Exit Sub دستورات از ترتيب به تابعي و فرعي رويه يك از خروج براي ميشود. استفاده Exit Function

218 208 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آزمون نظري - 1 كدام رويداد هنگامي كه يك فرم فوكوس خود را از دست ميدهد اجرا ميشود د- Unload ج- Load ب- Deactivate الف- Activate - 2 كدام گزينه در رابطه با تفاوت رويههاي فرعي و رويههاي تابعي درست است ب- بازگشت يك مقدار به محل فراخواني الف- ارسال متغيرها به رويه د- محل تعريف رويه ج- تعريف آرگومانها - 3 پس از فراخواني رويه تابعي myname بهصورت )»Call myname («Visual», «Basic مقدار بازگشتي چيست Public Function myname (ByRef strfname As String, ByVal strlname As String ) As String Dim strname As String strname = strfname + strlname myname = strname End Function الف-»Visual«ب- BasicVisual ج-»Basic«د-»VisualBasic«- 4 براي تعريف يك رويه عمومي از كلمه كليدي... استفاده ميشود. الف- Private ب- Public ج- Dim د- Sub - 5 استفاده از كدام گزينه براي تعريف يك رويه فرعي مناسب است الف- Sub... End Sub ب- Function... End Function ج- Private د- Public - 6 پسوند فايلهاي ماژول كد در ويژوالبيسيك چيست الف- VBC ب- BAS ج- CLM د- FBC - 7 درصورتيكه در يك رويه تابعي نوع داده بازگشتي تعيين نشود از چه نوعي به طور پيشفرض استفاده ميشود الف- Boolean ب- Integer ج- Byte د- String - 8 بهطور پيشفرض نحوه ارسال متغيرها به يك رويه از چه نوعي است الف- ارسال با مقدار ب- ارسال با مرجع ج- محلي د- استاتيك - 9 در صورت تعريف يك رويه با كلمه كليدي Private در ماژول كد... الف- رويه مربوطه در تمام ماژولهاي كد قابل فراخواني است.

219 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهفتم: توانایی ايجاد و استفاده از انواع رويهها در ويژوالبيسيك 209 ب- رويه مربوطه در تمام ماژولها قابل فراخواني است. ج- رويه مربوطه در تمام ماژولهاي فرم قابل فراخواني است. د- رويه مربوطه فقط در همان ماژول كدي كه تعريف شده است قابل فراخواني است پس از فراخواني تابع test بهصورت )test x) As Long مقدار بازگشتي چند است )با فرض اينكه 3 = x باشد.( Public Function test (ByVal y As Long) As Long test = y * y * y End Function د- 71 ج- 27 ب- 9 الف نوع مقدار بازگشتي در رويه تابعي زير چيست Private Function Compute (into As Integer) As Boolean الف- منطقي ب- عدد صحيح ج- رشته د- عدد اعشاري - 12 عملكرد رويه فرعي Subchange چيست Public Sub Subchange (ByRef m As String, ByRef n As String) Dim strchange As String strchange = m m = n n = strchange End sub الف- محتويات m و n را در رويه فرعي عوض ميكند. ب- محتويات m را در n قرار ميدهد. ج- محتويات m و n را در محل فراخواني عوض ميكند. د- محتويات m و n را در رويه فرعي و هم در محل فراخواني عوض ميكند Which of the following procedures can return a value? a- Sub Procedure b- VB Procedure c- Functions d- Event Procedure 14- انواع رويهها در ويژوالبيسيك را نام برده و هر يك را به طور خالصه شرح دهيد. 15- تفاوت بين رويههاي فرعي و تابعي را بيان كنيد. 16- انواع روشهاي فراخواني رويهها را توضيح دهيد 17- فرق بين رويههاي عمومي و محلي را بيان كنيد. 18- نحوه ايجاد و استفاده از يك ماژول كد را توضيح دهيد.

220 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آزمون عملي - 1 پروژه اي طراحي كنيد كه دماي يك اتاق را براساس فارنهايت دريافت كرده و با استفاده از يك رويه تابعي مقدار آنرا به سلسيوس محاسبه كرده و نمايش دهد. 5 c= 9 ( F 32) - 2 پروژه اي طراحي كنيد كه يك عدد را دريافت كرده و با استفاده از يك رويه تابعي بخشپذيري آنرا بر اعداد 3 و 7 مشخص نمايد. - 3 پروژهاي طراحي كنيد كه يك عدد به عنوان مقدار زمان بر اساس ثانيه دريافت كرده و با استفاده از يك رويه فرعي مقدار ساعت آنرا محاسبه نموده و نمايش دهد. - 4 پروژهاي طراحي كنيد كه با استفاده از يك رويه تابعي زوج يا فرد بودن هر عدد دلخواهي را مشخص كند. - 5 پروژهاي طراحي كنيد كه موجودي يك مشتري بانك را براساس ريال دريافت كند و با استفاده از يك رويه فرعي آنرا به واحد يورو تبديل كرده و نمايش دهد. ( 17 ريال = 1 يورو( 210

221 واحد کار هشتم هدف جزیی توانايياستفاده از انواع رويههاي آماده در ويژوالبيسيك هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: -1 بتواند با توابع رشتهاي مانند Asc Chr InStr Left Right Len Mid Replace Space StrComp و String كاركند. 2- بتواند باتوابع تاريخ و ساعت مانند MonthName Weekday Date Day Month WeekdayName Year Hour Minute Second و Timer كار كند. 3- بتواند از كنترلهاي كادر عالمت )CheckBox( دكمه انتخاب )OptionButton( كادر ليست )ListBox( و كادر ليست تركيبي )ComboBox( استفاده كند و خصوصيات رويدادها و متدهاي آنها را توضيح دهد. 211

222 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: کلیات زبان همراه آماده صورت به كه دارند وجود متعددي رويههاي ويژوالبيسيك در عون از ميتوانند رويهها اين ميگيرند. قرار شما اختيار در ويژوالبيسيك برنامهنويسي برنامهنويسان روزمره نيازهاي به توجه با كه باشند تابعي رويههاي يا فرعي رويههاي خطازدايي و طراحي براي الزم زمان و شود آسانتر برنامهنويسي كار تا شدهاند گردآوري آرگومان چند يا يك داراي ميتوانند آماده رويههاي اين كند. پيدا كاهش دستورات محاسبات نتيجه عنوان به را مقداري آنها از بعضي باشند آرگومان گونه هر فاقد يا اين از استفاده صورت در نميدهند. بازگشت را مقداري هيچ بعضي و داده بازگشت در را نظر مورد رويه به مربوط دستورات برنامه اجراي زمان در ويژوالبيسيك رويهها,Val,InputBox,MsgBox مانند رويهها اين از بعضي با تاكنون ميدهد. قرار برنامه اختيار ويژوالبيسيك در موجود رويههاي از بعضي معرفي به اينجا در شدهايد. آشنا غيره و Str ميپردازيم. ويژوالبيسيك رشتهاي توابع 8-1 Asc تابع آن كاراكتر اولين )ASCII( كداسكي و ميكند دريافت را رشتهاي مقدار يك تابع اين كدهاي جدول مطابق بازميگرداند تابع اين كه مقاديري برميگرداند. آورده بهدست را است: زير صورت به تابع اين از استفاده نحوه كلي شكل ميباشد. 255 تا صفر يعني اسكي Asc (string) 8-1 جدول مثال Print Asc ("Computer") Print Asc ("Hard Disk") Print Asc ("D") Print Asc ("1") Print Asc ("123") است رشتهاي عبارت يك string رشتهاي متغير يا ثابت يك ميتواند كه نوع از كه تابع يك بازگشتي مقدار يا به مثال عنوان به باشد. است رشتهاي شده ارايه 8-1 جدول در كه مواردي كنيد: توجه است خروجي

223 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارهشتم: توانايي استفاده از انواع رويه هاي آماده در ويژوال بيسيک مثال 1: يک رويه تابعي بنويسيد تا در پروژههايي كه از كادر متن براي دريافت مقادير عددي استفاده ميشود با استفاده از آن بتوان اعدادي را كه در كادر متن وارد ميشوند و در اولين كاراكتر آنها از كاراكترهاي غيررقمي استفاده شده است تشخيص داده و از تبديل اين مقادير به عدد جلوگيري به عمل آيد. همانگونه كه در مثالهاي قبل مشاهده كرديد گاهي اوقات الزم است كه مقادير عددي را از كادرهاي متن به صورت يک رشته دريافت كنيد و سپس آنها را با استفاده از تابع Val به مقادير عددي تبديل كنيد اما در صورتي كه يک مقدار رشتهاي با كاراكترهاي غيررقمي شروع شود تابع Val مقدار صفر و در صورت استفاده از كاراكترهاي غيررقمي در ساير مكانها بجز اولين كاراكتر تابع Val تا رسيدن به اولين كاراكتر غير رقمي رشته را به عدد تبديل ميكند. براي جلوگيري از اين مسا له ميتوانيد از تابع Asc استفاده كنيد. بنابراين تابع checkinput را به صورت زير طراحي كنيد: Private Function checkinput(byval strno As String) As Boolean If Asc(strno) >= Asc ("0") And Asc(strno) <= Asc ("9") Then Else checkinput = True checkinput = False End If End Function اين تابع داراي يک آرگومان ورودي است كه رشته strno را دريافت مي كند و رشته مورد نظر با روش فراخواني با مقدار در اين متغير كپي مي شود سپس با استفاده از تابع Asc كداسكي اولين كاراكتر از رشته strno بررسي مي شود. اگر اين مقدار بين 48 تا 57 باشد نشان دهنده اين است كه اولين كاراكتر از نوع رقمي است )محدوده كاراكترهاي صفر تا 9 مقادير اسكي 48 تا 57 است( و در نتيجه مقدار منطقي True را بازمي گرداند ولي اگر رشته با كاراكتر غيررقمي شروع شود مقدار False بازگردانده خواهد شد به اين صورت مي توانيد با بررسي مقدار بازگشتي در رويه فراخوان از مقدار وارد شده در كادر متن مورد نظر مطلع شويد. نكتهاگر مقدار ارسالي به تابع Asc يک رشته خالي باشد )""( در زمان اجراي برنامه خطا رخ داده و پيام Invalid procedure call or argument نمايش داده مي شود. 213

224 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تمرين: رويه قبل را بهگونهاي تنظيم كنيد تا در صورت ارسال يک رشته خالي در كادر متن از بروز خطا به وسيله تابع Asc جلوگيري شود تابع Chr عملكرد تابع Chr برعكس تابع Asc است. اين تابع نيز يک آرگومان از نوع عددي دارد كه كد اسكي كاراكتر مورد نظر را تعيين مي كند و با توجه به كداسكي, كاراكتر مربوط به آن را به عنوان مقدار بازگشتي باز مي گرداند. شكل كلي نحوه استفاده از اين تابع به صورت زير است: آرگومان code يک عدد صحيح بين صفر تا 255 است. به عنوان مثال به مواردي كه در جدول 8-2 ارايه شده است توجه كنيد. خروجي Chr (code) جدول 8-2 مثال Print Chr (97) Print Chr (33) Print Chr (116) a! t مثال 2: يک رويه فرعي بنويسيد تا با استفاده از دو حلقه تودرتو شكل زير را ايجاد كرده و امكان تعيين نوع كاراكتر را نيز داشته باشد. براي انجام اين كار رويه printchar را به صورت زير بنويسيد: $ $$ $$$ $$$$ $$$$$ Private Sub printchar (ByVal intcode As Integer) Dim inti, intj As Integer For inti = 1 To 5 For intj = 1 To inti Print Chr(intcode); Next intj Print Next inti End Sub 214

225 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارهشتم: توانايي استفاده از انواع رويه هاي آماده در ويژوال بيسيک همان طور كه در اين رويه فرعي مشاهده مي كنيد يک آرگومان با نام intcode وجود دارد كه از نوع عدد صحيح است و كداسكي كاراكتر مورد نظر را براي نمايش شكل تعيين مي كند. پس از فراخواني اين رويه كداسكي مورد نظر در آرگومان intcode ذخيره مي شود سپس با استفاده از دو حلقه For و تابع Chr شكل مورد نظر با كاراكتر تعيين شده ايجاد مي شود. حلقه اول در رويه كنترل سطرها را به عهده دارد و حلقه دوم در داخل آن با توجه به مقدار شمارنده حلقه اول )inti( كاراكترها را در هر سطر نمايش مي دهد. در واقع با هر بار اجراي حلقه اول, حلقه دوم به اندازه مقدار متغير inti تكرار خواهد شد. وجود كاراكتر; در انتهاي اولين دستور Print نيز سبب مي شود تا كاراكتر ها در هر سطر در كنار هم نمايش داده شوند و دستور Print دوم باعث مي شود تا پس از خاتمه نمايش كاراكترها در يک سطر, كاراكترهاي بعدي در سطر جديد نمايش داده شوند و به اين صورت شكل مورد نظر روي فرم ايجاد مي شود. براي فراخواني اين رويه مي توانيد از دستور زير استفاده كنيد: Call printchar (36) تابع Len اين تابع ميتواند يک رشته را دريافت كند و تعداد كاراكترهاي آنرا به صورت يک عدد صحيح محاسبه نمايد. اين تابع يک آرگومان از نوع رشتهاي دارد كه وظيفه انتقال رشته را به رويه به عهده دارد. شكل كلي نحوه استفاده از اين تابع به صورت زير است كه در آن string يک عبارت رشتهاي است. به عنوان مثال دستور زير مقدار 12 را نمايش خواهد داد: Len(string) Print Len("Microsoft XP") نكته تابع Len براي داده هاي نوع تاريخ نيز مانند رشته ها تعداد كاراكترها را مشخص مي كند. تابع Len براي داده هاي نوع منطقي عدد 2 را بازگشت مي دهد تابع Left يكي ديگر از توابع رشته اي است كه مي تواند تعداد معيني از كاراكترها را از يک عبارت رشته اي و از سمت چپ آن جدا كرده و بازگرداند. شكل كلي نحوه استفاده از اين

226 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تابع به صورت زير است: Left (string,length) آرگومان string يک عبارت رشته اي است و رشته موردنظر را دريافت مي كند. آرگومان length نيز يک عبارت از نوع عددي است. اين تابع به تعداد آرگومان length كاراكترها را از سمت چپ رشته string بازمي گرداند. نوع مقدار بازگشتي اين تابع از نوع رشته اي مي باشد. به عنوان مثال به مواردي كه در جدول 8-3 ارايه شده است توجه كنيد. جدول 8-3 خروجي مثال Print Left ("Microsoft Windows",2) Print Left ("Microsoft Windows",5) Print Left ("Microsoft Windows",17) Mi Micro Microsoft Windows مثال 3 : يک رويه فرعي بنويسيد تا شماره دانشجويي يک دانشجوي دلخواه را دريافت كرده و سال ورودي را نمايش دهد. )با فرض اين كه شماره دانشجويي يک كد 7 رقمي است كه دو رقم اول سال و دو رقم دوم ماه ورودي را به دانشگاه مشخص مي كند.( به عنوان مثال كد مشخص مي كند دانشجو در سال 88 و ماه مهر به دانشگاه وارد شده است. Private Sub yearentry (lngid As Long) Dim intyear As Integer intyear = Left (lngid, 2) intyear = intyear Print intyear End Sub در اين رويه آرگومان lngid شماره دانشجويي را دريافت مي كند سپس با استفاده از تابع Left 2 رقم سمت چپ آن را كه تعيين كننده سال ورود دانشجو است از آرگومان lngid جدا كرده و در متغير intyear ذخيره مي نمايد. در مرحله بعد عدد 13 به مقدار قبلي در متغير intyear اضافه مي شود تا سال به صورت 4 رقمي به وسيله دستور Print نمايش داده شود. 216

227 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارهشتم: توانايي استفاده از انواع رويه هاي آماده در ويژوال بيسيک تابع Right عملكرد اين تابع مشابه تابع Left است با اين تفاوت كه اين تابع تعداد كاراكترهاي موردنظر را از سمت راست رشته اي كه دريافت مي كند بازگشت مي دهد. شكل كلي نحوه استفاده از اين تابع به صورت زير است: Right (string,length) آرگومان string يک عبارت رشتهاي است و رشته موردنظر را دريافت ميكند. آرگومان length نيز يک عبارت از نوع عددي است كه تعداد كاراكترهايي را كه از سمت راست string جدا ميشوند معين ميكند. نوع مقدار بازگشتي اين تابع از نوع رشتهاي است. رشته مثال 4: رويه فرعي yearentry را به گونه اي تغيير دهيد كه عالوه بر سال ماه ورود دانشجو به دانشگاه را نيز نمايش دهد. به اين منظور مي توانيد دستورات زير را به رويه فرعي yearentry اضافه كنيد. Dim intmonth As Integer intmonth = Left (lngid, 4) intmonth = Right (intmonth, 2) Print intmonth در اين دستورات پس از تعريف متغير موردنياز با استفاده از تابع Left چهار رقم سمت چپ شماره دانشجو در متغير intmonth ذخيره مي شود سپس با استفاده از تابع Right دو رقم سمت راست ارقام جدا شده به دست مي آيد كه ماه را مشخص مي كنند و به وسيله يک دستور Print نمايش داده مي شوند تابع Mid اين تابع ميتواند تعداد معيني كاراكتر را از يک رشته جدا كند و داراي يک آرگومان اختياريودوآرگوماناجبارياست.شكلكلينحوهاستفادهازاينتابعبهاينصورتاست: 217 Mid (string, start, length) تابع Mid با توجه به تعدادي كه آرگومان length تعيين ميكند كاراكترهايي را از رشته string بازميگرداند. آرگومان start محلي را مشخص ميكند كه عمل جدا كردن كاراكترها از آنجا شروع ميشود. اگر مقدار اين آرگومان بزرگتر از تعداد كاراكترهاي رشته string باشد رشتهاي با طول صفر بازگشت داده ميشود. آرگومان start از نوع عددي Long و

228 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آرگومان length از نوع عددي Long ميباشند و استفاده از آن اختياري است. اگر از اين آرگومان استفاده نشود تابع Mid كاراكترهايي را كه از آرگومان start شروع ميشوند تا انتهاي رشته بازگشت خواهد داد. به عنوان مثال به مواردي كه در جدول 8-4 ارايه شده است توجه كنيد. جدول 8-4 مثال خروجي Print Mid ("Microsoft Windows",1,2) Print Mid ("Microsoft Windows",6,4) Print Mid ("Microsoft Windows",3) Print Mid ("Microsoft Windows",30) Mi soft crosoft Windows - مثال 5: يک رويه فرعي با نام uppercase با تابع Mid بنويسيد. تا يک متن را دريافت كند و حروف كوچک آنرا به حروف بزرگ تبديل نمايد. براي اين كار رويه مزبور را به صورت زير تغيير دهيد: Private Sub uppercase(byval strtext As String) Dim strchar As String * 1, strresult As String Dim intlength As Long, inti As Long intlength = Len(strtext) For inti = 1 To intlength strchar = Mid(strtext, inti, 1) If Asc(strchar) >= Asc ("a") And Asc(strchar) <= Asc ("z") Then strresult = strresult + Chr(Asc(strchar) - 32) Else strresult = strresult + strchar End If Next inti txttext.text = strresult End Sub در اين رويه به جاي تابعLeft از تابع Mid استفاده شده است تا كاراكترها يكي يكي جدا و بررسي شوند. الزم به ذكر است كه در اين تابع و در آرگومان دوم از متغير inti استفاده 218

229 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهشتم: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك شده كه شمارنده حلقه است و براي آرگومان سوم )كه تعداد كاراكترهايي را كه جدا ميشوند معين ميكند( مقدار 1 منظور شده است. بنابراين در هر بار اجراي حلقه موقعيت مربوط به كاراكتري كه جدا ميشود يك واحد زياد خواهد شد و چون تعداد يك كاراكتر براي جدا شدن انتخاب شده است هر بار يك كاراكتر از رشته مورد بررسي قرار خواهد گرفت اين امر باعث ميشود تا استفاده از تابع Right نيز الزامي نباشد و بتوان اين خط از رويه را نيز حذف كرد. شكل 8-1 تمرين: پروژهاي با نام editor و از نوع Standard EXE مطابق شكل 8-1 ايجاد كنيد كه با استفاده از دو رويه مشابه رويه uppercase و يك كادر متن واژهپردازي طراحي شود كه كاربر بتواند در صورت نياز با استفاده از دكمههاي فرمان محتويات آنرا به حروف كوچک يا بزرگ تبديل كند تابع Replace اين تابع ميتواند رشتهاي را داخل رشته ديگر پيدا كند و آن را با رشته سوم جايگزين كرده و به صورت يك رشته جديد بازگرداند. شكل كلي نحوه استفاده از اين تابع به صورت زير است: Replace(string,find,replace,start,count,compare) اين تابع شش آرگومان دارد سه آرگومان اول اجباري و سه آرگومان دوم اختياري هستند. تابع رشته find را در داخل رشته string جستجو كرده و رشته replace را به جاي آن در رشته string جايگزين ميكند. آرگومان start از نوع عددي بوده و موقعيت شروع جستجو را در رشته string تعيين ميكند و اگر از آن استفاده نشود مقدار 1 در نظر گرفته ميشود. آرگومان count نيز از نوع عددي است و تعداد دفعات جستجو و جايگزيني را تعيين ميكند. اگر از اين آرگومان استفاده نشود به طور پيشفرض مقدار 1- در نظر گرفته ميشود كه عمل جستجو و جايگزيني را تا رسيدن به انتهاي رشته string انجام خواهد داد. 219

230 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آخرين آرگومان compare است كه اگر مقدار آن برابر يک )vbtextcompare( باشد تابع Replace در جستجوي رشته find در string بين حروف كوچک و بزرگ تفاوت قاي ل نميشود اما اگر مقدار آن برابر صفر) vbbinarycompare ( باشد بين حروف كوچک و بزرگ تفاوت قاي ل ميشود. در اينجا ذكر اين نكته ضروري است كه تابع Replace هيچ تغييري در رشته string ايجاد نميكند و حاصل عمليات جستجو و جايگزيني به صورت يک رشته مستقل بازگشت داده خواهد شد. به عنوان مثال به مواردي كه در جدول 8-5 ارايه شده است توجه كنيد. جدول 8-5 مثال خروجي Print Replace ("ABC ABC ABC","A","123") Print Replace ("ABC ABC ABC","A","123",3) Print Replace ("ABC ABC ABC","A","123",2) Print Replace ("ABC abc ABC","A","123") Print Replace ("ABC abc ABC","A","123",1) Print Replace ("ABC ABC ABC","B,"") Print Replace ("ABC ABC ABC","D","123") 123BC 123BC 123BC C123BC 123BC 123BC 123BC ABC 123BC abc 123BC 123BC 123BC 123BC AC AC AC ABC ABC ABC نكتهاگر مقدار آرگومانReplace يک رشته خالي )""( باشد تمام مواردي كه در رشته string پيدا ميشوند حذف خواهند شد. اگر مقدار آرگومان start بزرگتر از يک باشد و رشته find قبل از موقعيت تعيين شده )يعني آرگومان )start در رشته string وجود داشته باشد اين بخشها حذف ميشوند. تمرين: واژهپرداز editor را مطابق شكل 8-2 به گونهاي تنظيم كنيد تا كاربر توانايي پيدا كردن و جايگزين كردن عبارات را در متن تايپ شده داشته باشد. شكل

231 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارهشتم: توانايي استفاده از انواع رويه هاي آماده در ويژوال بيسيک تابع StrComp از اين تابع براي مقايسه دو رشته با يكديگر استفاده ميشود. اگر دو رشته با هم مساوي باشند عدد صفر را بازگشت خواهد داد و در غير اين صورت اگر رشته اول بزرگتر از رشته دوم باشد عدد 1 و در صورتي كه رشته اول كوچکتر از رشته دوم باشد عدد 1- بازگردانده خواهد شد. شكل كلي نحوه استفاده از اين تابع به صورت زير است: StrComp (string1,string2,compare) آرگومانهاي string1 و string2 از نوع رشتهاي هستند و شامل دو عبارتي هستند كه با هم مقايسه ميشوند. آرگومان compare از نوع عددي بوده و استفاده از آن اختياري است و در صورتي كه مقدار آن برابر با )vbtextcompare( 1 باشد تابع StrComp بين حروف كوچک و بزرگ تفاوت قاي ل نميشود ولي اگر مقدار آن برابر صفر )vbbinarycompare( باشد بين حروف كوچک و بزرگ تفاوت قاي ل ميشود. به عنوان مثال به مواردي كه در جدول 8-6 ارايه شده است توجه كنيد. خروجي جدول 8-6 مثال Print StrComp("basic","Basic",1) Print StrComp("basic","Basic",0 ) Print StrComp("Basic","basic") نكته در صورت عدم استفاده از آرگومان Compare بهطور پيشفرض مقدار صفر در نظر گرفته ميشود. مثال 6: به رويه تابعي بعد توجه كنيد. اين رويه دو رشته را دريافت كرده و معين مي كند كه آيا دو رشته مساوي هستند يا خير. 221 Private Function strcompare(strstring1 As String, strstring2 As String) As Boolean If StrComp(strstring1, strstring2, vbtextcompare) = 0 Then Else End If End Function strcompare = True strcompare = False

232 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه اين تابع دو آرگومان رشته اي دارد كه عبارت هاي رشته اي براي انجام مقايسه را دريافت مي كند و با استفاده از تابع StrComp آن ها را مورد مقايسه قرار مي دهد و در صورتي كه دو رشته برابر باشند مقدار صفر بازگشت داده مي شود و اين مقدار در يک دستور If بررسي شده و در نتيجه دستور پس از Then اجرا مي شود و مقدار منطقي True را به عنوان مقدار بازگشتي بازمي گرداند. اما در صورت عدم تساوي دو رشته تابع مقدار منطقي vbtext- نيز از مقدار StrComp را بازگشت خواهد داد. البته در آرگومان سوم تابع False Compare به جاي عدد يک استفاده شده است كه سبب مي شود تابع بين حروف كوچک و بزرگ تفاوتي قاي ل نشود. بنابراين اگر اين تابع به صورت)" strcompare)"hard,"hard فراخواني شود مقدار True و اگر به صورت) "Ram" و" Disk "( strcompare فراخواني شود مقدار False را بازگشت خواهد داد. تمرين: براي پروژه editor يک كادر محاوره ورود به نرمافزار ايجاد كنيد كه داراي يک كلمه رمز و كلمه كاربر باشد به عالوه براي بررسي درستي كلمه رمز و كاربر از تابع StrComp استفاده كنيد. نكته در صورتي كه آرگومان char يک رشته باشد فقط اولين كاراكتر تكرار ميشود تابع InStr اين تابع مي تواند دو رشته را دريافت كرده و موقعيت يكي را در ديگري پيدا كند. اين تابع داراي چهار آرگومان است و شكل كلي نحوه استفاده از آن به صورت زير است: InStr (start, string1, string2, compare) اين تابع داراي دو آرگومان رشته اي string1 و string2 است كه رشته string2 را در string1 جستجو مي كند و در صورتي كه نتيجه جستجو مثبت باشد موقعيت آن را به صورت يک عدد بازمي گرداند و در غير اين صورت مقدار صفر را برمي گرداند. آرگومان start از نوع عددي بوده و استفاده از آن اختياري است اين آرگومان مي تواند نقطه شروع جستجوي string2 را در string1 تعيين كند و در صورتي كه از آن استفاده نشود موقعيت جستجو از اولين كاراكتر آغاز مي شود. آرگومان چهارم compare است كه مانند آرگومان

233 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارهشتم: توانايي استفاده از انواع رويه هاي آماده در ويژوال بيسيک قبلي اختياري است و ميتوانيد از آن استفاده نكنيد اگر مقدار اين آرگومان يک )vbtextcompare( باشد تابع در هنگام جستجو بين حروف كوچک و بزرگ تفاوت قاي ل نميشود اما اگر مقدار اين آرگومان صفر )vbbinarycompare( باشد يا از آن استفاده نشود در زمان جستجو بين حروف كوچک و بزرگ تفاوت قاي ل خواهد شد. به عنوان مثال دستور)" i " )InStr,1( "Visual Basic", رشته "i" را در رشته Basic" Visual "جستجو ميكند و عدد 2 را باز ميگرداند اما دستور)" i " InStr,5( "Visual Basic, مقدار 11 را باز ميگرداند. چون جستجو از كاراكتر پنجم آغاز ميشود بنابراين موقعيت رشته "i" در كلمه Basic بازگشت داده ميشود. براي مثال ميتوانيد به مواردي كه در جدول 8-7 ارايه شده است توجهكنيد. جدول 8-7 مثال نتيجه Print InStr (1, "cpu CPU CPU", "CPU") 5 Print InStr ("CPU CPU CPU", "cpu") Print InStr (1, "cpu CPU CPU", "cpu",0 ) 1 Print InStr (4, "CPU CPU CPU", "cpu", 1) 5 Print InStr (1, "CPU CPU CPU", "") 1 Print InStr (3, "CPU CPU CPU", " ") 4 نكته در توابعي كه از آرگومان compare براي تنظيم نحوه مقايسه استفاده ميشود اگر از اين آرگومان استفاده نشود و دستور Option Compare Text در بخش تعاريف ماژول فرم نوشته شود تابع بين حروف كوچک و بزرگ تفاوت قاي ل نخواهد شد. در توابعي كه آرگومان compare به كار ميرود ميتوانيد بهجاي مقادير صفر و يک به ترتيب از ثابتهاي vbbinarycompare و vbtextcompare استفاده كنيد. تمرين: يک رويه تابعي بنويسيد تا يک متن را دريافت كند و اولين جمله آنرا بازگرداند. 223

234 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه 8-2 توابعتاريخوساعت ويژوال بيسيک عالوه بر رويه هاي آماده اي كه در رابطه با داده هاي عددي و رشته اي دارد داراي رويه هايي براي انجام عمليات روي داده هاي تاريخ و ساعت نيز مي باشد كه به معرفي آن ها مي پردازيم. اما ذكر يک نكته در اين جا الزم است و آن اين كه اين رويه ها با توجه به تنظيمات منطقه اي كه در برنامه Regional and Language Options وجود دارد نتيجه هاي مختلفي را در برخواهند داشت. براي هماهنگي با مثال هاي كتاب توصيه مي شود كه از تنظيمات پيش فرض ويندوز استفاده كنيد و در صورت تغيير در اين تنظيمات, تنظيمات ناحيه اي را روي حالت انگليسي )English( قرار دهيد تابع Date اين تابع تاريخ سيستم را در اختيار شما قرار ميدهد و فاقد هر گونه آرگومان است به عالوه با استفاده از اين تابع همراه با دستور Date ميتوانيد تاريخ سيستم را نيز تنظيم كنيد. براي تنظيم تاريخ سيستم با دستور Date از اين الگو استفاده كنيد: مقدار date مي تواند از نوع داده رشته اي تاريخ يا مقدار بازگشتي تابع Date باشد. به عنوان مثال موارد ارايه شده در جدول 8-8 نحوه استفاده از دستور Date را نشان مي دهند. Date = date جدول 8-8 دستور Date Date = " " Date = # 12/7/ 2003# Date = "Aug 18,2004" مثال 7: پروژهاي طراحي كنيد كه كاربر بتواند تاريخ سيستم را به وسيله آن تنظيم كند. براي اين كار عمليات زير را به ترتيب انجام دهيد: جدول 8-9 خصوصيات فرم خصوصيت مقدار Name frmset Caption Set Date - 1 برنامه ويژوال بيسيک را اجرا كنيد و يک پروژه از نوع Standard EXE به همراه يک فرم مطابق شكل 8-3 و جداول 8-9 الي 8-11 ايجاد كنيد. 224

235 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهشتم: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك 8-3 جدول 8-10 خصوصيات كنترلها كنترل خصوصيت Label Label Label TextBox TextBox Name lbls1 lbls2 lbls3 txtmonth txtday Caption / / mm dd yyyy كنترل خصوصيت Name جدول 8-11 خصوصيات كنترلها TextBox Command Button txtyear cmdok Command Button cmdcancel Caption &OK &Cancel 225 در اين مرحله رويداد Click دكمه OK را به صورت زير تنظيم كنيد: Private Sub cmdok_click() If (Val(txtday.Text) > 0 And Val(txtday.Text) < =31) And _ (Val(txtmonth.Text)> 0 And Val(txtmonth.Text)< =12)And _ (Val(txtyear.Text)>1900 And Val(txtyear.Text)<=3000)Then Date = Trim(txtmonth.Text) + String (1, "/") + _ Trim(txtday.Text)+String(1,"/")+Trim (txtyear.text) Else MsgBox "Invalid Date!",,"ERROR" End If End Sub

236 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه در اين رويداد با استفاده از يك دستور If مقادير تايپ شده در كادرهاي متن روز )txtday( ماه )txtmonth( و سال )txtyear( بررسي ميشود در صورتيكه مقادير اشتباهي وارد شود پيام خطايي در يك كادر پيام نمايش داده ميشود اما در صورت مناسب بودن مقادير ورودي با استفاده از عملگر + توابع Trim و تابع String دادههاي ورودي به شكل رشتهاي حاوي تاريخ تنظيم ميشوند و در پايان اين مقدار رشتهاي به تابع Date داده ميشود تا تاريخ سيستم را تنظيم كند. دستور Unload Me را در رويداد Click دكمه Cancel بنويسيد سپس پروژه و فرم را با نام setdate ذخيره كنيد. پروژه را اجرا كرده و مقادير 25 1 و 5 2 را به ترتيب براي ماه روز و سال تايپ كنيد سپس روي دكمه OK كليك كنيد. در ويندوز به كادر محاوره ويژگيهاي تاريخ و ساعت برويد و تاريخ ثبت شده را بررسي كنيد. اينبار مقاديري را به صورت غلط تايپ كنيد و روي دكمهOK كليك كنيد. همانطور كه ميبينيد پيام خطايي روي دسكتاپ مشاهده ميشود. به اجراي پروژه خاتمه داده و به پنجره ويژوالبيسيك بازگرديد تابع Day تابع Day يك مقدار از نوع تاريخ را دريافت كرده و يك عدد بين 1 تا 31 به عنوان شماره روز بازميگرداند. شكل كلي نحوه استفاده از اين تابع به صورت زير است: Day (date) اين تابع يك آرگومان دارد كه ميتواند از نوع تاريخي, رشتهاي يا عددي باشد كه بيانگر تاريخ مشخصي است. به عنوان مثال به موارد ارايه شده در جدول 8-12 توجه كنيد. در مثال چهارم جدول 8-12 از يك مقدار عددي از نوع صحيح استفاده شده است اين مقدار با توجه به روزهايي كه از ابتداي سال سپري ميشود مورد بررسي قرار خواهد گرفت و در نتيجه مقدار روزها از ابتداي سال تا ماه جاري از عدد مربوطه كم ميشود تا مقدار بازگشتي بين مقدار 1 تا 31 قرار گيرد. 226

237 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهشتم: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك جدول 8-12 مثال Print Day (# 1/5/1980 #) 0Print Day ("march 15,198 ") Print Day ("1/25/1980 ") Print Day (50) نتيجه تابع Now اينتابعميتواند در هر لحظه تاريخ و ساعت جاري سيستم را در اختيار شما قرار دهد. مقدار بازگشتي اين تابع از نوع تاريخ ميباشد و فاقد آرگومان است. شكل كلي نحوه استفاده از آن به اين صورت است: به عنوان مثال نتيجه فراخواني اين تابع ميتواند يك عبارت رشتهاي به صورت Now # m # 12/10/2004 6:43:11P باشد تابع Month تابع Month با دريافت يك مقدار از نوع تاريخ عددي بين صفر تا 12 را كه بيانگر شماره ماه تاريخ مربوط است باز ميگرداند. شكل كلي نحوه استفاده از اين تابع به صورت بعد است: Month (date) آرگومان date يك عبارت عددي يا رشتهاي است كه بيانگر يك مقدار تاريخي ميباشد. براي مثال به موارد ارايه شده در جدول 8-13 توجه كنيد. جدول 8-13 مثال Print Month (" 8/10/2000 ") Print Month (" 11/23/1980 ") Print Month (" March 2,1960 ") Print Month (# #) Print Month (# #) نتيجه

238 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: MonthName تابع كي صورت به را آنها نام سال ماههاي ترتيب شماره دريافت با ميتواند تابع اين استفاده نحوه كلي شكل و است آرگومان دو داراي تابع اين بازگرداند. رشتهاي عبارت است: زير صورت به آن از MonthName (month, abbreviate) را سال ماههاي شماره و بوده عددي نوع از كه است month تابع اين اول آرگومان است منطقي نوع از و اختياري abbreviate دوم آرگومان ميكند. دريافت 12 تا 1 از نام باشد False كه صورتي در و خالصه صورت به ماه نام باشد True آرگومان اين اگر مقدار آرگومان اين از استفاده عدم صورت در ميشود. بازگردانده كامل صورت به ماه كنيد. توجه 8-14 جدول در شده ارايه موارد به مثال عنوان به است. False پيشفرض 8-14 جدول مثال Print MonthName (40 False) Print MonthName (40True) Print MonthName (5) نتيجه April Apr May Weekday تابع بيانگر كه صحيح عدد يك و كرده دريافت را تاريخي يا رشتهاي عبارت يك تابع اين صورت به تابع اين از استفاده نحوه كلي شكل ميگرداند. باز است هفته روزهاي شماره است: زير Weekday ( date, firstday ) كه است رشتهاي يا تاريخي نوع از date آرگومان است. آرگومان دو داراي تابع اين اول روز كه است اختياري آرگومان يك firstday آرگومان و ميباشد تاريخ يك بيانگر روز آرگومان اين براي پيشفرض مقدار ميكند. تعيين روز شماره محاسبه براي را هفته باشد جدول در شده ارايه مقادير از يكي ميتواند آرگومان اين است. يكشنبه جمعه تا دوشنبه يكشنبه روزهاي براي ترتيب به را 7 تا 1 بين صحيحي عدد تابع اين كنيد. توجه 8-16 جدول در شده ارايه موارد به مثال عنوان به بازميگرداند. 228

239 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهشتم: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك جدول 8-15 روز هفته ثابت عددي ثابت رشتهاي جدول 8-16 مثال نتيجه vbsunday vbmonday vbtuesday vbwednesday vbthursday vbfriday vbsaturday يكشنبه دوشنبه سهشنبه چهارشنبه پنجشنبه جمعه شنبه Print Weekday ("March 14, 1970") Print Weekday (#1/15/1960#) Print Weekday (#1/15/1960#, 5) Print Weekday (#1/15/1960#, vbfriday) Print Weekday ("11/20/1980") تابع Year اين تابع يك عبارت رشتهاي تاريخي عددي يا تركيبي )Variant( را كه حاوي دادهاي از نوع تاريخ است دريافت كرده و مقدار سال را به صورت يك عدد صحيح بازگشت ميدهد. شكل كلي نحوه استفاده از اين تابع به صورت زير است: آرگومان date به يكمقدار از نوع تاريخ اشاره ميكند. به عنوان مثال به موارد ارايه شده در جدول 8-17 توجه كنيد. نتيجه Year (date) جدول 8-17 مثال Print Year ("Aug 22, 69") Print Year ("11/22/1980") Print Year (#10/9/2000#) Print Year ("3-2-95") تابع Time اين تابع ساعت سيستم را در اختيار شما قرار ميدهد و فاقد هرگونه آرگومان است. به عالوه با استفاده از اين تابع همراه با دستور Time ميتوانيد ساعت سيستم را نيز تنظيم كنيد. براي تنظيم ساعت سيستم با دستور Time از الگوي زير استفاده كنيد: Time = time 229 جدول 8-18 دستور Time Time = "17:2:30" Time = "5:17" Time ="8:15 PM " Time =# 8:15:20 AM # time يك عبارت از نوع رشتهاي ساعت يا مقدار بازگشتي تابع Time است. به عنوان مثال موارد ارايه شده در جدول 8-18 نحوه استفاده از دستور Time را نشان ميدهند.

240 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه در جدول فوق دستورات اول و دوم بدون استفاده از عبارات AM و PM زمان سيستم را تنظيم مي كنند. در چنين مواقعي با توجه به مقدار ساعت تعيين شده زمان سيستم روي قبل يا بعدازظهر تنظيم مي شود. در مثال اول چون ساعت 17 ذكر شده است زمان روي 5 بعدازظهر و در مثال دوم چون ساعت 5 ذكر شده است زمان روي 5 صبح تنظيم خواهد شد. مثال 8: پروژه اي طراحي كنيد كه كاربر بتواند ساعت سيستم را به وسيله آن تنظيم كند. براي اين كار عمليات زير را به ترتيب انجام دهيد: - 1 يک پروژه از نوع Standard EXE ايجاد كنيد كه شامل فرمي مطابق شكل 8-4 و جداول 8-19 الي 8-21 باشد. جدول 8-19 خصوصيات فرم مقدار خصوصيت Name Caption frmset Set Time 8-4 كنترل خصوصيت Name جدول 8-20 خصوصيات كنترلها Label Label Label Label lblh lblm lbls lblampm TextBox txthour Caption Hour : Minute : Second : AM/PM جدول 8-21 خصوصيات كنترل ها كنترل خصوصيت TextBox TextBox TextBox Command Button Command Button Name txtminute txtsecond txtampm cmdset cmdexit Caption &Set &Exit 230

241 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهشتم: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك - 2 رويداد دكمه Set را به صورت زير تنظيم كنيد: Private Sub cmdset_click() Dim strtime As String strtime = Trim(txthour.Text)+":"+Trim(txtminute.Text)+ _ Time =strtime ":"+Trim(txtsecond.Text)+" "+Trim(txtampm.Text) End Sub ابتدا با استفاده از خصوصيت Text كادرهاي متن مقدار ساعت دقيقه ثانيه و قبل يا بعد از ظهر زمان موردنظر به صورت يك رشته در متغير strtime ذخيره ميشود و سپس اين مقدار با استفاده از تابع Time به عنوان زمان سيستم ثبت ميشود. - 3 پروژه و فرم را با نام settime ذخيره كنيد سپس آنرا اجرا نماييد. - 4 مقادير و AM را به ترتيب براي ساعت دقيقه ثانيه و به عنوان زمان قبل از ظهر دركادرهاي متن مربوطه تايپ كنيد و روي دكمه Set كليك كنيد. سپس تغييرات را در نوار وظيفه ويندوز بررسي كنيد. - 5 به اجراي پروژه خاتمه داده و به پنجره ويژوالبيسيك بازگرديد. تمرين: با استفاده از تابع Time و كنترل Timer يك زمانسنج ديجيتال را طراحي كنيد تابع Hour اين تابع با دريافت يك مقدار رشتهاي يا تاريخي شامل زمان مقدار ساعت را بهصورت يک عدد صحيح بين صفر و 23 بازميگرداند. شكل كلي نحوه استفاده از اين تابع به صورت زير است: Hour (time) آرگومان time ميتواند از نوع رشتهاي تاريخ و زمان يا تركيبي )Variant( باشد كه بيانگر مقادير زماني هستند. به عنوان مثال به موارد ارايه شده در جدول 8-22 توجه كنيد. 231

242 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه نكته اگر آرگومان time مقادير زماني بزرگتر از مقادير مجاز براي ساعت دقيقه يا ثانيه باشد در هنگام اجراي برنامه پيام خطاي Syntax error يا Type mismatch نمايش داده ميشود. اگر در آرگومان time مقدار بعدازظهر )PM( يا قبل از ظهر )AM( تعيين نشود مقدار ساعت با توجه به مقدار زمان در آرگومان time محاسبه ميشود. جدول 8-22 مثال Print Hour (#8:18:10 AM# ) Print Hour (#22:05:00 #) Print Hour (" 10:50:43 PM ") Print Hour (" 13:20 ") Print Hour (" 4:10 ") Print Hour (Now) نتيجه ساعت جاري سيستم تابع Minute اين تابع با دريافت يک مقدار رشته اي يا تاريخي شامل زمان مقدار دقيقه را به صورت يک عدد صحيح بين صفر و 59 بازمي گرداند. شكل كلي نحوه استفاده از اين تابع به اين صورت است: Minute (time) آرگومان time مي تواند از نوع رشته اي تاريخ و زمان يا تركيبي )Variant( باشد كه بيانگر مقادير زماني هستند. براي مثال به موارد ارايه شده در جدول 8-23 توجه كنيد. جدول 8-23 مثال Print Minute (#8:18:10 AM#) Print Minute (#22:05:00#) Print Minute (" 10:50:43 PM ") Print Minute (" 13:20") Print Minute (" 4:10:3") Print Minute (Now) نتيجه دقيقه با توجه به ساعت جاري سيستم 232

243 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارهشتم: توانايي استفاده از انواع رويه هاي آماده در ويژوال بيسيک نكته اگر مقادير زماني مورد استفاده بزرگ تر از مقادير مجاز براي ساعت دقيقه يا ثانيه باشند در هنگام اجراي برنامه پيام خطاي Syntax error يا Type mismatch مشاهده مي شود تابع Second اين تابع نيز با دريافت يک مقدار رشته اي يا تاريخي شامل زمان مقدار ثانيه را به صورت يک عدد صحيح بين صفر تا 59 بازمي گرداند. شكل كلي نحوه استفاده از اين تابع به صورت زير است: Second (time) آرگومان time مي تواند از نوع رشته اي تاريخ و زمان يا تركيبي )Variant( باشد كه بيانگر مقادير زماني هستند. براي مثال به موارد ارايه شده در جدول 8-24 توجه كنيد. جدول 8-24 نتيجه مثال Print Second (# 8:18:10 Am #) Print Second (#22:05:00 #) 1 Print Second (" 10:50:43 PM") Print Second (" 13:20:2") Print Second (Now) 43 2 مقدار ثانيه با توجه به ساعت جاري سيستم نكته اگر مقادير زماني مورد استفاده بزرگ تر از مقادير مجاز براي ساعت دقيقه يا ثانيه باشند درهنگام اجراي برنامه پيام خطاي Syntax error يا Type mismatch مشاهده مي شود. 8-3 کنترلکادردرليست كنترل هاي كادر ليست يكي ديگر از كنترل هاي ويژوال بيسيک هستند كه به كاربر اجازه مي دهند تا از بين چند مقدار مختلف يكي را انتخاب كند. به عنوان مثال مي توان به كادرهاي ليستي كه در كادرمحاوره تنظيمات ويژگي هاي نمايشي ويندوز وجود دارند اشاره كرد. 233

244 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه كادرهاي ليست انواع مختلفي شامل كادرهاي ليست معمولي )ListBox( و كادرهاي ليست تركيبي بازشو )ComboBox( دارند. تفاوتي كه بين اين دو نوع كنترل عالوه بر شكل ظاهري وجود دارد اين است كه كادرهاي ليست ساده فاقد كادرمتن هستند اما كادرهاي ليست تركيبي بازشو از يك كادر ليست ساده و يك كادرمتن تشكيل ميشوند. جدول 8-25 توضيح اين خاصيت اعضاي موجود در كادر ليست را نگهداري ميكند اين خاصيت در تمام انواع كنترلهاي كادر ليست وجود دارد. اين خاصيت در تمام كنترلهاي كادر ليست وجود دارد و از نوع منطقي است. اگر مقدار اين خاصيت را روي True تنظيم كنيد. اعضاي موجود در كادر ليست به صورت صعودي مرتب ميشوند اما اگر مقدار آن روي False تنظيم شود اعضاي موجود در كنترل به همان ترتيبي كه خاصيت/ متد/رويداد List Sorted در خاصيت List تايپ شدهاند نمايش داده ميشوند. اگر اين خاصيت در كنترلهاي ListBox روي مقدار 0-Standard تنظيم شود كنترل به صورت يك كادر ليست ساده و در صورتي كه روي مقدار 1-CheckBox تنظيم شود هر يك از اعضا در كنترل به همراه يك كادر عالمت نمايش داده ميشوند اين خاصيت ميتواند در Style كنترلهاي ComboBox سه مقدار را كسب كند اگر روي مقدارCombo 0-Dropdown تنظيم شود كنترل به صورت يك كادر ليست بازشو به همراه يك كادر متن و اگر روي مقدار 1-Simple Combo List تنظيم شود كنترل به صورت يك كادر ليست بازشو ساده به همراه يك كادرمتن و در صورتي كه روي مقدارList 2-Dropdown تنظيم شود به صورت يك كادر ليست بازشو و بدون كادر متن نمايش داده ميشود. Locked Text اين خاصيت در كنترل كادر ليست بازشو از نوع Dropdown Combo و Simple Combo قابل استفاده است و عملكرد آن مشابه همين خاصيت در كنترل كادر متن است. اين خاصيت در كنترل كادر ليست ساده و كنترلهاي كادر ليست بازشو بجز نوع Dropdown List قابل استفاده است و عنوان عضو انتخاب شده در كنترل را در خود نگهداري ميكند. 234

245 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهشتم: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك ادامه جدول 8-25 توضيح خاصيت/ متد/رويداد اين متد ميتواند عضوي را به كنترل كادر ليست اضافه كند و شكل كلي نحوه استفاده از آن به AddItem صورت بعد است: )عنوان عضو(. AddItem نام كنترل كادر ليست به وسيله اين متد ميتوان تمام اعضاي موجود در كنترل كادر ليست را حذف كرد. شكل كلي Clear نحوه استفاده از اين متد به صورت زير است:. Clear نام كنترل كادر ليست اين متد ميتواند هر يك از اعضاي موجود در كنترل را براساس شماره انديس آنها در خاصيت List حذف كند. شماره انديس از مقدار صفر براي اولين عضو آغاز ميشود و به ترتيب قرار RemoveItem گرفتن اعضا در ليست افزايش مييابد. شكل كلي نحوه استفاده از اين متد به اين صورت است: شمارهانديس عضو در كنترل(. RemoveItem نامكنترلكادرليست Click اين رويداد در تمام انواع كادرهاي ليست قابل استفاده است و زماني اجرا ميشود كه كاربر يكي از اعضاي موجود در كادر ليست را انتخاب كند. Change اين رويداد در كنترلهاي كادر ليست بازشو از نوع Dropdown Combo و Simple Combo قابل استفاده است و زماني اجرا ميشود كه محتويات كادر متن در كادر ليست تغييركند. 235

246 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه Learn in English Len Function: Returns a Long containing the number of characters in a string or the number of bytes required to store a variable. Syntax Len(string varname) The Len function syntax has these parts: Part String Varname Description Any valid string expression. If string contains Null, Null is returned. Any valid variable name. If varname contains Null, Null is returned. If varname is a Variant,Len treats it the same as a String and always returns the number of characters it contains.

247 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهشتم: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك واژهنامه Abbreviate Argument Binary Compare Day Editor Error Expression Hour Invalid Length Minute Mismatch Month Month Name Remove Replace Right Second Sort Space Start Syntax Syntax Time Treat Week Day Week day Name Year كوتاه كردن مختصر كردن آرگومان دودويي مبناي دو مقايسه كردن روز واژهپرداز خطا عبارت ساعت اشتباه طول دقيقه عدم تطابق مطابقت نداشتن ماه نام ماه رفعكردن برداشتن جايگزين كردن راست ثانيه مرتبكردن فضاي خالي شروع شكل نوشتاري دستور نحو تركيب زمان رفتار كردن روز هفته نام روز هفته سال 237

248 238 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه خالصه مطالب تابع ASC يك رشته را دريافت كرده و كداسكي اولين كاراكتر را بر ميگرداند. تابع Chr كداسكي يك كاراكتر را دريافت كرده و كاراكتر معادل آن را بر ميگرداند. تابع InStr دو رشته را دريافت كرده يكي را در ديگري جستجو ميكند. تابع Left تعداد معيني از كاراكترهاي يك رشته را از سمت چپ آن برميگرداند. تابع Right تعداد معيني از كاراكترهاي يك رشته را از سمت راست آن برمي گرداند. تابع Len يك رشته را دريافت كرده و طول آن را معين ميكند. تابع Mid يك رشته را دريافت كرده و تعداد معيني كاراكتر را از آن جدا مي كند. تابع Replace رشته اي را در رشته ديگري جايگزين مي كند. تابع StrComp دو رشته را دريافت كرده و با هم مقايسه مي كند. با استفاده از تابع Date مي توان تاريخ سيستم را به دست آورده يا تنظيم كرد. تابع Day يك مقدار از نوع تاريخ را دريافت كرده و شماره روز آن را برمي گرداند. با استفاده از تابع Now مي توان تاريخ و ساعت سيستم را به دست آورد. تابع Month يک مقدار از نوع تاريخ را دريافت كرده و شماره ماه آن را برمي گرداند. تابع MonthName با دريافت شماره ماه نام آن را برمي گرداند. تابع Weekday يك عبارت رشته اي يا تاريخي را دريافت كرده و شماره ترتيب روز را در هفته برمي گرداند. تابع Year يک عبارت رشته اي تاريخي را دريافت كرده و مقدار سال آن را برمي گرداند. با استفاده از تابع Time مي توان ساعت سيستم را به دست آورد. تابع Hour يك عبارت رشته اي يا تاريخي شامل زمان را دريافت كرده و مقدار ساعت را برمي گرداند. تابع Minute يك عبارت رشته اي يا تاريخي شامل زمان را دريافت كرده و مقدار دقيقه را برمي گرداند. تابع Second يك عبارت رشته اي يا تاريخي شامل زمان را دريافت كرده و مقدار ثانيه را برمي گرداند. با استفاده از تابع Timer مي توان ثانيه هاي بعد از نيمه شب را محاسبه كرد.

249 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارهشتم: توانايي استفاده از انواع رويههاي آماده در ويژوالبيسيك آزمون نظري - 1 حاصل اجراي دستور" 123 " Right "Windows", Len چيست د- "ind" ج- "ows" ب- "Win" الف- "123" - 2 بهوسيله كدام تابع ميتوان تعدادي از كاراكترهاي يك رشته را جدا كرد د- Asc ج- Len ب- Mid الف- Instr - 3 حاصل اجراي دستور (,3 ("Computer" Left چيست د-"" ج- "puter" ب- "ter" الف- " "Com - 4 كدام تابع امكان جستجوي يك رشته را در رشته ديگر فراهم ميكند د- Space ج- Replace ب- InStr الف- Len - 5 كدام گزينه در رابطه با خروجي دستور )»10:12:36 ( Second درست است د- 48 ج- 36 ب- 12 الف- 1-6 حاصل عبارت )"Computer",5,5( Mid چيست د- Computer ج- puter ب- uter الف- omput - 7 به وسيله كدام تابع ميتوان ساعت و تاريخ جاري سيستم را به دست آورد ب- Time الف- Date د- گزينههاي الف و ج صحيح هستند. ج- Now - 8 حاصل عبارت) "t",3 Replace("Book","o", چيست د- "Btok" ج- "Bttk" ب- "Bttt" الف- "Botk" 9 - Which of the following data types does return by the Len Function? a- integer b- string c- date d- boolean 10- تفاوت و شباهت توابع Date و Now را بيان كنيد. 11- نحوه عملكرد توابع زير را توضيح دهيد. الف- Left ب- Mid ج- Strcomp د- Instr 12- نحوه عملكرد توابع زير را توضيح دهيد. الف- Day ب- Asc ج- Month Name د- Replace 13- نحوه عملكرد توابعYear Hour وMinute را توضيح دهيد. 239

250 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آزمون عملي - 1 يك رويه فرعي بنويسيد كه يك عدد را دريافت كرده كوچكترين رقم آنرا پيدا كند و نمايش دهد. - 2 يك رويه فرعي بنويسيد كه يك رشته را دريافت كرده و كاراكترهاي آنرا به صورت معكوسنمايشدهد. بهعنوان مثالعبارت Computer را بهصورت retupmoc نمايش دهد. 240

251 واحد کار نهم هدف جزیی نحوه استفاده از رويدادهاي ماوس و صفحه كليد هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- رويدادهاي ماوس و صفحه كليد را بيان كند. 2- بتواند از رويدادهاي ماوس و صفحه كليد استفاده كند. 3- كنترلهاي شكل )Shape( و خط )Line( را شرح داده خصوصيات آنها را توضيح دهد. 4- بتواند از كنترلهاي شكل )Shape( و خط )Line( استفاده كند. 241

252 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه کلیات يكي از مسايلي كه در برنامهنويسي براي سيستمهاي عامل با رابط گرافيكي مانند ويندوز مورد توجه قرار ميگيرد عكسلالعملهاي مناسب در رابطه با اتفاقاتي مانند فشردن دكمههاي ماوس حركت اشارهگر آن يا فشردن كليدها در صفحه كليد است. در زبان ويژوالبيسيك رويدادهاي مناسب در اين زمينه براي برآورده كردن نيازهاي برنامهنويسان در نظر گرفته شدهاند. 9-1 رويدادهاي ماوس رويدادهاي ماوس در ويژوال بيسيك به چهار گروه تقسيم ميشوند كه عبارتند از: Click MouseMove MouseUp MouseDown DblClick و DragDrop.در اين واحد كار رويدادهايي را كه در اين رابطه در ويژوال بيسيك وجود دارند فرا ميگيريد رويداد MouseDown شكل كلي اين رويه رويداد به صورت زير است و زماني اجرا ميشود كه يكي از دكمههاي ماوس به پايين فشرده شود. Private Sub نام شئ _ MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) همانطور كه مشاهده ميكنيد اين رويداد برخالف رويدادهايي كه تاكنون ديدهايد دكمهاي را كه كاربر فشرده است Button داراي چهار آرگومان است. آرگومان اول يعني مشخص ميكند. اين مقدار ميتواند يكي از مقادير موجود در جدول 9-1 باشد به اين شكل ميتوانيد هر دكمهاي از ماوس را كه فشرده ميشود شناسايي کنيد. ثابت عددي ثابت رشتهاي vbleftbutton vbrightbutton vbmiddlebutton Right Left جدول 9-1 توضيح درصورتيكه دكمه سمت چپ ماوس فشرده شود. درصورتيكه دكمه سمت راست ماوس فشرده شود. درصورتيكه دكمه وسط ماوس فشرده شود. هر دو 242

253 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارنهم: نحوه استفاده از رويدادهاي ماوس و صفحه كليد آرگومان Shift معين ميكند كه در هنگام فشرده شدن دكمههاي ماوس كداميك از كليدهاي,Alt" Shift Ctrl يا تركيبي از آنها فشرده شده است. مقادير مربوط به آرگومان Shift در جدول 9-2 ارايه شدهاند. توضيح جدول 9-2 ثابت عددي ثابت رشتهاي vbshiftmask vbctrlmask vbaltmask vbshiftmask+vbctrlmask vbshiftmask+vbaltmask vbctrlmask+vbaltmask vbshiftmask+vbctrlmask+ vbaltmask درصورتيكه كليد Shift فشرده شود. درصورتيكه كليد Ctrl فشرده شود. درصورتيكه كليد Alt فشرده شود. درصورتيكه كليدهاي Shift+Ctrl فشرده شوند. درصورتيكه كليدهاي Shift+Alt فشرده شوند. درصورتيكه كليدهاي Ctrl+Alt فشرده شوند. درصورتيكه كليدهاي Shift+Ctrl+Alt فشرده شوند. آرگومانهاي X و Y از نوع عدد اعشاري بوده و موقعيت اشارهگر ماوس را در زمان فشرده شدن كليدهاي آن معين ميكند. مقدار X فاصله از سمت چپ و Y فاصله از باالي فرم يا كنترل مربوطه ميباشند. نام شئ نيز ميتواند نام يك كنترل يا عبارت Form براي فرمها باشد رويداد MouseUp شكل كلي اين رويه رويداد به صورت زير است و زماني اجرا ميشود كه يكي از دكمههاي ماوس كه به پايين فشرده شده است رها شود. Private Sub نام شئ _ MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) آرگومانهاي اين رويداد دقيقا مشابه رويداد MouseDown است رويداد MouseMove شكل كلي اين رويه رويداد به صورت زير است و زماني اجرا ميشود كه اشارهگر ماوس روي فرم يا كنترل مربوطه حركت كند. Private Sub نام شئ _ MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 243

254 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آرگومان هاي اين رويداد نيز دقيقا مشابه دو رويداد قبلي مي باشند. شكل 9-1 مثال 1: پروژه اي طراحي كنيد كه تصويري مطابق شكل 9-1 روي يک فرم نمايش دهد و اگر كاربر روي تصوير كليک كند تصوير با حالت خوشحال نشان داده شود و در صورتي كه كاربر كليک راست كند تصوير با حالت ناراحت نشان داده شود. - 1 يک پروژه از نوع Standard EXE ايجاد كرده و يک فرم با نام frmface و يک كنترل تصوير با نام imgface مطابق شكل 9-1 ايجاد كنيد. - 2 در كنترل تصوير با استفاده از كادرمحاوره Load Picture تصوير FACE10 را از مسير D:\ Program Files\ Microsoft Visual studio\ Common\ Graphics\ Icons\ Misc انتخاب كنيد. )با فرض اين كه برنامه ويژوال استوديو در درايو :D نصب شده باشد.( - 3 رويداد Mouse Down كنترل imgface را به صورت زير تنظيم كنيد. Private Sub imgface_mousedown(button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbleftbutton Then imgface.picture = LoadPicture _ ("C:\Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Misc\FACE 02.ICO") If Button = vbrightbutton Then imgface.picture = LoadPicture _ ("C:\Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Misc\FACE04.ICO") End Sub دراين رويدادبااستفادهاز دستورIf مقدار آرگومانButtonبررسي مي شوداگراين مقداربرابربا Vb Left Button باشد به اين معني است كه دكمه سمت چپ ماوس فشرده شده است بنابراين تابع Load Picture تصوير صورت را با حالت خنده نمايش مي دهد. به همين 244

255 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارنهم: نحوه استفاده از رويدادهاي ماوس و صفحه كليد ترتيب اگر دكمه سمت راست ماوس فشرده شود نتيجه بررسي شرط موجود در دستور If دوم درست )True( مي شود. بنابراين تصوير صورت با حالت ناراحت نمايش داده مي شود. - 4 پروژه و فرم را با نام Show Face ذخيره نماييد سپس پروژه را اجرا كنيد و روي تصوير يک بار كليک و بار ديگر كليک راست كنيد و نتيجه را بررسي نماييد. - 5 اجراي برنامه را متوقف كرده و به پنجره ويژوال بيسيک بازگرديد. تمرين: پروژه ShowFace را به شكلي تنظيم كنيد تا پس از رها كردن دكمه سمت چپ يا راست تصوير اول دوباره نمايش داده شود رويداد DragDrop شكل كلي اين رويه رويداد به صورت زير است و زماني اجرا مي شود كه يک كنترل در روي فرم با استفاده از اشاره گر ماوس از يک محل به محل ديگر منتقل Drop(( Drag & شود. (DragDrop (Source As Control, X As Single, Y As Single _ نام شي Private Sub آرگومان Source شئ كه عمليات انتقال Drop( )Drag & روي آن انجام شده است تعيين مي كند. اگر شئ يک كنترل باشد نام كنترل و اگر فرم باشد كلمه Form مورد استفاده قرار مي گيرد. در رابطه با اين رويداد بايد توجه داشته باشيد كه رويداد DragDrop يک كنترل يا فرم زماني اجرا مي شود كه كنترل ديگري پس از Drag شدن روي آن Dropشود. آرگومان هاي X و Y موقعيت نقطه اي را كه عمل رها كردن )Drop( در آن جا صورت گرفته است مشخص مي كنند. اما الزم است بدانيد كه براي انجام عمل انتقال يک كنترل در روي فرم بايد خصوصيت DragMode را براي كنترل موردنظر روي مقدار 1-Automatic تنظيم كنيد و به عالوه دستور Source Move x,y را در رويداد DragDrop فرم قرار دهيد. 245 مثال 2: پروژه Calculator را كه در واحدكار پنجم طراحي كرده ايد به شكلي تغيير دهيد تا بتوان با عمل Drag & Drop محتويات كادرمتن txtnum1 را در كادرمتن txtnum2 كپي كرد. براي اين كار عمليات زير را به ترتيب انجام دهيد:

256 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: كنيد. باز را Calculator پروژه 1- تنظيم Automatic-1 مقدار روي را txtnum1 كادرمتن كنترل Drag Mode خصوصيت - 2 باشد. امكانپذير كادرمتن كنترل روي Drag & Drop عمل انجام امكان تا كنيد كنيد. تنظيم صورت اين به را txtnum2 كادرمتن كنترل Drag Drop رويداد - 3 Private Sub txtnum2_dragdrop(source As Control, X As Single, Y As Single) txtnum2.text = txtnum1.text End Sub txtnum2 كنترل روي Drag & Drop عمل با برنامه اجراي زمان در txtnum1 كنترل وقتي txtnum2 روي را txtnum1 كادرمتن محتويات و ميشود اجرا رويداد اين بگيرد قرار ميكند. ذخيره نماييد. اجرا را برنامه و كنيد ذخيره را تغييرات - 4 را اول كادرمتن Drag & Drop عمل با سپس كنيد تايپ اول كادرمتن در عدد يك - 5 كنيد. بررسي را نتيجه و بيندازيد دوم كادرمتن روي بازگرديد. ويژوالبيسيك پنجره به و داده خاتمه را برنامه اجراي - 6 تمرين: محتويات Drag & Drop عمل با بتوان تا كنيد تنظيم شكلي به را Calculator پروژه نمود. كپي دوم كادرمتن در نيز را دوم كادرمتن )Line( خط كنترل شكل خطوط انواع ميتوان كنترل اين از استفاده با اين در نمود. رسم را مورب و عمودي و افقي نقطه مختصات y 1 و x خصوصيتهاي كنترل 1 y 2 و x خصوصيتهاي و خط ترسيم براي شروع 2 ميكنند مشخص را خط انتهايي نقطه مختصات خصوصيت از استفاده با عالوه به 9-2(. )شكل خصوصيت با و خط رنگ ميتوان BorderColor نمود. تعيين را خط ضخامت BorderWidth 246

257 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارنهم: نحوه استفاده از رويدادهاي ماوس و صفحه كليد اين كنترل داراي خصوصيت ديگري به نام BorderStyle نيز ميباشد كه به وسيله آن ميتوان انواع خطوط خطچين و خط نقطه و... را مطابق جدول 9-3 مشخص كرد. مقدار خصوصيت 0- Transparent 1- Solid 2- Dash 3- Dot 4- Dash- Dot 5- Dash- Dot- Dot جدول 9-3 نوع خط خط بهصورت نامرئي رسم ميشود Inside Solid 9-3 كنترل شكل )Shape( با اين كنترل ميتوانيد اشكال مختلف هندسي مثل دايره بيضي مربع و غيره را نمايش دهيد. خصوصيتهاي اين كنترل در جدول 9-4 ارائه شدهاند. جدول 9-4 خصوصيات كنترل Shape توضيح رنگ داخل شكل را مشخص ميكند. اگر روي مقدار - Transparent تنظيم شود شكل بهصورت شفاف نمايش داده ميشود اگر روي - Opaque تنظيم شود شكل با رنگي كه در خصوصيت BackColor تعيين شده است نمايش داده ميشود. رنگ كادر دور شكل را مشخص ميكند. نوع كادر دور شكل را مشخص ميكند. ضخامت كادر دور شكل را مشخص ميكند. نوع شكل هندسي را مشخص ميكند. خصوصيت BackColor BackStyle BorderColor BorderStyle BorderWidth Shape 247

258 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه مقاديري كه خصوصيت -Border Style مي تواند كسب كند مشابه مقادير همين خصوصيت در كنترل Line است خصوصيت Shape نيز مقادير مختلفي را كسب مي كنند كه در شكل 9-3 نمايش داده شده اند. شكل 3-9 نكته واحد اندازهگيري پيشفرض در ترسيم اشكال هندسي در روي فرم Twip است. اگر بخواهيد اين واحد اندازهگيري را تغيير دهيد ميتوانيد از خصوصيت ScaleMode فرم استفاده كنيد. اين خصوصيت واحدهاي اندازهگيري مختلفي مانند Millimeter Inch Character Pixel Twip و Centimeter را در اختيار شما قرار ميدهد. 9-4 رويدادهاي صفحه كليد در ويژوال بيسيک سه رويداد براي كليدهاي صفحه كليد در نظر گرفته شده است اين رويدادها شامل رويدادهاي KeyUp KeyDown و KeyPress هستند رويداد KeyDown 248 شكل كلي اين رويه رويداد به صورت زير است و زماني اجرا مي شود كه يكي از كليدهاي صفحه كليد فشرده شوند. Private Sub شئ _نام KeyDown(KeyCode As Integer,Shift As Integer) اين رويداد دو آرگومان دارد. آرگومان KeyCode كداسكي كليد فشرده شده را معين مي كند. در صفحه كليد به هر كليد يک عدد صحيح مثبت بين صفر تا 255 نسبت داده شده است كه با عنوان كداسكي )ASCII( نام گذاري شده اند.آرگومان Shift مقداري را با توجه به فشرده شدن كليدهاي Alt Ctrl و Shift يا تركيبي از آن ها را كه به طور هم زمان با

259 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کارنهم: نحوه استفاده از رويدادهاي ماوس و صفحه كليد كليد اصلي فشرده شده اند در اختيار شما قرار مي دهد. مقادير مربوط به اين آرگومان ها به صورت ضميمه در انتهاي كتاب ارايه شده اند. براي كنترل ها از نام كنترل و براي فرم ها كلمه Form به عنوان نام شئ استفاده مي شود رويداد KeyUp شكل كلي اين رويداد نيز به صورت زير است و زماني اجرا ميشود كه كليد فشرده شده در صفحه كليد رها ميشود. Private Sub _نامشئ KeyUp(KeyCode As Integer,Shift As Integer) آرگومانهاي اين رويداد كامال مشابه رويداد KeyDown هستند و نام شئ ميتواند نام يک كنترل يا عبارت Form براي فرمها باشد. نكته براي تشخيص كاراكترهايي كه با استفاده از كليد Shift تايپ ميشوند و غيره( از آرگومان KeyCodeو Shiftبهطور همزمان استفاده كنيد رويداد KeyPress شكل كلي اين رويه رويداد به صورت زير است و زماني اجرا مي شود كه يكي از كليدهاي صفحه كليد فشرده شده و رها شود: Private Sub نام شئ -KeyPress( KeyAscii As Integer) اين رويه يک آرگومان از نوع عدد صحيح دارد كه كداسكي كليد فشرده شده را مشخص مي كند. مقادير مربوط به اين آرگومان به صورت ضميمه در انتهاي كتاب ارايه شده اند. نام شئ مي تواند نام يک كنترل يا عبارت Form براي فرم ها باشد. تفاوتي كه بين اين رويداد با رويدادهاي ديگر صفحه كليد وجود دارد اين است كه رويداد KeyPress براي حروف بزرگ و كوچک حرفي كدهاي متفاوتي ارايه مي كند در صورتي كه رويدادهاي KeyDown و KeyUp كدهاي يكساني را بازگشت مي دهند. به عنوان مثال رويداد KeyPress براي كاراكتر A كد 65 و براي كاراكتر a كد 97 توليد مي كند اما رويداد KeyDown براي هر دو كاراكتر كد 65 را توليد مي كند. به عالوه رويداد KeyPress براي ساير كاراكترها مانند عاليم > < و غيره كدهايي را مطابق جدول ضميمه در انتهاي كتاب توليد مي كند.

260 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 15 / 1 / 2 ف ه شماره: - 84/ 80 / 1 / 3 / 1 0 نكته رويداد KeyDown نسبت به KeyPress اولويت دارد و زودتر اجرا ميشود. در رويداد KeyPress كد مربوط به كليدهاي رقمي در بخش عددي صفحه كليد مطابق با كد كليدهاي رقمي در بخش حرفي صفحه كليد است. رويداد KeyPress تركيب كليد Ctrl با كاراكترهاي حرفي و عالئم[ و [ را پشتيباني ميكند. رويداد KeyPress از كليدهاي تابعي حركت مكاننما و نظير آنها پشتيباني نميكند. رويداد KeyPress از كليدهاي Backspace Enter و ESC پشتيباني ميكند خصوصيت KeyPreview اين خصوصيت يكي از خصوصيات مهم در فرم هاست و نحوه اجراي رويه هاي رويداد صفحه كليد را براي فرم و كنترل هاي موجود در روي آن معين مي كند. اين خصوصيت از نوع منطقي مي باشد و مقدار پيش فرض آن مقدار False است. در اين حالت اگر كليدي در صفحه كليد فشرده شود رويدادهاي صفحه كليد مربوط به كنترلي كه فوكوس را در اختيار دارد اجرا مي شوند. اما اگر مقدار اين خصوصيت روي True تنظيم شده باشد ابتدا رويدادهاي صفحه كليد فرم اجرا مي شوند و سپس رويدادهاي صفحه كليد مربوط به كنترلي كه فوكوس را در اختيار دارد اجرا مي شوند. در ضمن اگر هيچ كنترلي وجود نداشته باشد رويدادهاي صفحه كليد فرم اجرا مي شوند. نكته وقتي فوكوس روي كنترل دكمه فرمان قرار ميگيرد كليدهاي Enter و حركت مكاننما نميتوانند رويدادهاي صفحهكليد فرم و كنترل دكمه فرمان را اجرا نمايند. 250 مثال 3: يک بازي طراحي كنيد كه بازيكن يک توپ متحرك را با استفاده از كليدهاي جهت دار در داخل يک قاب كنترل كند و از برخورد آن با ديوارهاي اين قاب جلوگيري نمايد در صورتي كه توپ با ديوارها برخورد كند بازي خاتمه يافته و براساس مدت زماني كه بازيكن توانسته است توپ را كنترل كند امتياز وي محاسبه مي شود. به عالوه كاربر بتواند با فشردن كليد تركيبي Ctrl+Q هر زمان كه مايل باشد از بازي خارج شود و با استفاده از كليد تركيبي Alt+P حركت توپ را به طور موقت متوقف كرده و با استفاده از كليد تركيبي Shift+S توپ را مجددا به حركت در آورد.

261 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارنهم: نحوه استفاده از رويدادهاي ماوس و صفحه كليد - 1 برنامه ويژوال بيسيك را اجرا كنيد و يك پروژه از نوع Standard EXE به همراه يك فرم با عرض و ارتفاع 4785 و 375 مطابق شكل 9-4 ايجاد كنيد. شكل 4-9 همانطور كه مشاهده ميكنيد يك توپ با كنترل شكل )Shape( و يك كنترل زمانسنج براي ايجاد حركت در توپ استفاده شده است خصوصيات آنها را مطابق جدول 9-5 تنظيم كنيد. جدول 9-5 كنترل خصوصيت Timer Shape Name tmrtimer shpball BackColor سياه BackStyle 1-Opaque Enabled False Interval 2-2 در بخش تعاريف رويداد KeyDown و Load فرم را به صورت زير تنظيم كنيد: Dim intdirection As Byte Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) Select Case KeyCode Case 13: tmrtimer.enabled = True Case 37: intdirection = 1 Case 38: intdirection = 2 Case 39: intdirection = 3 Case 40: intdirection = 4 End Select Select Case Shift 251

262 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 15 / 1 / 2 ف ه شماره: - 84/ 80 / 1 / 3 / 1 0 Case vbctrlmask: If KeyCode=81 Then Unload Me Case vbaltmask: If KeyCode=80 Then tmrtimer.enabled=false Case vbshiftmask: If KeyCode=83 Then tmrtimer.enabled=true End Select End Sub Private Sub Form_Load() intdirection = End Sub همانطوركه در رويداد KeyDown فرم مشاهده ميكنيد با استفاده از يك دستور Select Case كليد فشرده شده بررسي ميشود. اگر مقدار آرگومان KeyCode برابر 13 باشد به معني فشرده شدن كليد Enter خواهد بود در اين صورت خصوصيت Enabled كنترل زمانسنج True ميشود تا كنترل زمان سنج شروع به كار كند. به اين ترتيب فشردن كليدهاي جهتدار كدهاي 37 تا 4 را توليد ميكنند كه متناسب با كليد فشرده شده متغير عمومي intdirection مقداردهي ميشود. از اين متغير براي ايجاد حركت متناسب با كليد فشرده شده در رويه رويداد كنترل زمان سنج استفاده ميشود. اين متغير در رويه رويداد Load فرم مقدار 1 را به دست ميآورد. اگر مقدار اين متغير 1 باشد به معني حركت به چپ مقدار 2 به معني حركت به باال مقدار 3 به معني حركت به راست و مقدار 4 به معني حركت به پايين خواهد بود. سپس براي مديريت كليدهاي تركيبي Alt+P Ctrl+Q و Shift+S از دستور Select استفاده ميشود و با بررسي مقدار آرگومان Sift ابتدا فشرده شدن كليدهاي Alt Ctrl و Shift بررسي ميشود. براي اين كار در هر Case از ثابتهاي مربوط به هر يك از اين كليدها استفاده شده است و براي تشخيص كليدهاي P Q و S همراه كليدهاي Alt Ctrl و Shift در داده شده است تا با استفاده از آرگومانKeyCode قرار هر يك از آنها يك دستور If Case كليد حرفي نيز شناسايي شود و در صورت درست بودن نتيجه بررسي دستور موردنظر اجرا شود.

263 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارنهم: نحوه استفاده از رويدادهاي ماوس و صفحه كليد - 3 در اين مرحله رويداد Timer كنترل زمانسنج را به صورت زير تنظيم كنيد: Private Sub tmrtimer_timer() Select Case intdirection Case 1: shpball.left = shpball.left - 50 Case 2: shpball.top = shpball.top - 50 Case 3: shpball.left = shpball.left + 50 Case 4: shpball.top = shpball.top + 50 End Select If shpball.left <= 18 Or shpball.left >= 4319 Or _ shpball.top <= 22 Or shpball.top >= 2724 Then tmrtimer.enabled = False MsgBox "Game Over!!!!", vbcritical, "THE END" End If End Sub ميبينيد كه با استفاده از يك دستور Select Case مقدار متغير intdirection كه در رويداد KeyDown با توجه به كليد فشرده شده مقداردهي شده است كنترل ميشود و با توجه به اين مقدار حركت مناسب براي توپ در نظر گرفته ميشود. براي مثال اگر مقدار متغير intdirection برابر 1 باشد به اين معني است كه كليد جهتدار چپ فشرده شده است در نتيجه از خصوصيت Left كنترل شكل 5 واحد كم ميشود كه اين سبب حركت توپ به سمت چپ خواهد شد و اين كار تا زمانيكه كاربر كليد ديگري از كليدهاي جهتدار را فشار ندهد هر 2 ميليثانيه يك بار تكرار ميشود. اين امر سبب خواهد شد تا توپ با يك حركت ماليم به سمت چپ حركت كند. به همين صورت وقتي كليد جهتدار راست فشرده شود Case سوم اجرا ميشود و با اضافه كردن 5 واحد به خصوصيت Left توپ آن را به سمت راست فرم حركت ميدهد و اگر كليد جهتدار باال يا پايين را فشار دهد به ترتيب Case دوم يا چهارم اجرا شده و با كاهش يا افزايش خصوصيت Top توپ آن را به باال يا پايين حركت خواهد داد. در ضمن با استفاده از يك دستور If در هر بار مكان قرارگيري توپ بررسي ميشود تا در صورت برخورد توپ با ديوارههاي فرم كنترل زمان سنج از كار بيفتد و پيام Game Over 253

264 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: شود. داده نشان پيام كادر يك از استفاده با كنيد. اجرا را آن سپس كرده ذخيره ball نام با را فرم و پروژه - 4 سپس كنيد كنترل را توپ جهتدار كليدهاي با بالفاصله و فشرده را Enter كليد - 5 نمايشدادهشود. Game كليدهارارهاكنيدتاتوپباديوارههايفرمبرخوردكردهوپيامOver داده نمايش نيز شده سپري زمان آنكه براي و بازگرديد بيسيك ويژوال پنجره به - 6 را آن Interval خصوصيت سپس دهيد قرار فرم روي ديگر سنج زمان كنترل يك شود و tmrclock روي ترتيب به را آن Enabled و Name خصوصيت و ميليثانيه 1 روي كنيد. تنظيم False دستور Select Case دستور Case اولين در و برويد KeyDown رويداد به اكنون - 7 دوم سنج زمان اول سنج زمان كار به شروع با تا كنيد تايپ را tmrclock.enabled=true كند. كار به شروع نيز دستور و فرم ماژول تعاريف بخش در را Dim lngtime As Long دستور - 8 كنيد. تايپ tmrclock_timer ) رويداد) در را lngtime=lngtime+1 دهيد تغيير بعد صورت به را MsgBox دستور و برويد tmrtimer_timer ) رويداد) به - 9 شود. داده نمايش آمده دست به زمان بازي پايان در تا MsgBox «Game Over! your Time Is: " _ +Str(lngtime)+" Second.",vbCritical,"The End" و نماييد آزمايش و اجرا مجددا را پروژه و كنيد ذخيره را شده ايجاد تغييرات - 10 بازگرديد. ويژوالبيسيك پنجره به داده خاتمه پروژه اجراي به پايان در تمرين: شود: اضافه آن به زير امكانات كه كنيد تنظيم طوري را ball بازي باشد. داشته وجود و + كليدهاي با توپ حركت سرعت كاهش و افزايش امكان الف- باشد. داشته وجود Esc كليد با آن مجدد شروع و Pause كليد با بازي توقف امكان ب- 254

265 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارنهم: نحوه استفاده از رويدادهاي ماوس و صفحه كليد Learn in English Responding to Mouse Events You can use the MouseDown, MouseUp, and MouseMove events to enable your applications to respond to both the location and the state of the mouse. These mouse events are recognized by most controls. Event MouseDown MouseUp MouseMove Description Occurs when the user presses any mouse button. Occurs when the user releases any mouse button. Occurs each time the mouse pointer is moved to a new point on the screen. 255

266 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه واژهنامه Dash خط تيره Dot نقطه Middle مياني وسط Pointer اشارهگر Recognize تشخيص دادن Responding پاسخ دادن Shape شكل Solid State توپ ر حالت وضعيت Transparent شفاف خالصه مطالب رويدادهاي ماوس عبارتند از: MouseMove MouseUp MouseDown و DragDrop رويداد MouseDown زماني اجرا ميشود كه يكي از كليدهاي ماوس فشرده شود. رويداد MouseUp زماني اجرا ميشود كه يكي از كليدهاي ماوس كه فشرده شده است رها شود. رويداد MouseMove زماني اجرا ميشود كه اشارهگر ماوس روي فرم يا يك كنترل به حركت درآيد. رويداد DragDrop زماني اجرا ميشود كه موقعيت يك كنترل روي فرم به وسيله ماوس تغيير كند. از كنترلShapeبرايايجاداشكال هندسي واز كنترلLineبرايايجاد خطاستفاده ميشود. رويدادهاي صفحه كليد عبارتند از: KeyUp KeyDown و.KeyPress رويداد KeyDown و KeyPress زماني اجرا ميشوند كه يک كليد در صفحه كليد فشرده شود. رويداد KeyUp زماني اجرا ميشود كه يك كليد فشرده شده در صفحه كليد رها شود. خصوصيت KeyPreview نحوه اجراي رويدادهاي صفحه كليد را بين فرم و كنترل آن تعيين ميكند. 256

267 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارنهم: نحوه استفاده از رويدادهاي ماوس و صفحه كليد آزمون نظري 1 -كدامرويداددرصفحهكليدبينكاراكترهايحرفيكوچكوبزرگتفاوتقائلميشود الف- KeyDown ب- KeyPress ج- KeyUp د- KeyPreview - 2 كدام خصوصيت در كنترل,Shape نوع شكل را معين ميكند الف- BorderStyle ب- Style ج- Shape د- Appearance - 3 براي استفاده از رويداد DragDrop تنظيم كدام خصوصيت در كنترل الزامي است الف- DragIcon ب- DragMode ج- DragDrop د- DropMode - 4 كدام خصوصيت در كنترل Line نوع خط رسم شده را تعيين ميكند الف- Border Style ب- Border Width ج- Border Color د- Mode Draw - 5 كدام گزينه در رابطه با رسم يك نقطه در روي فرم مناسب است الف- Point ب- PSet ج- PointSet د- Step - 6 كدام آرگومان در رويداد DragDrop كنترل جابهجا شده را مشخص ميكند الف- Control ب- Source ج- Shift د- Ctrl - 7 واحد اندازهگيري پيشفرض در كنترل Shape چيست الف- سانتيمتر ب- اينچ ج- Twip د- Pixel - 8 در صورتي كه خصوصيت KeyPreview روي مقدار True تنظيم شود.... الف- رويدادهاي صفحه كليد فرم زودتر از كنترلها اجرا ميشوند. ب- رويدادهاي صفحه كليد كنترل زودتر از فرم اجرا ميشوند. ج- فقط رويدادهاي صفحه كليد كنترلها اجرا ميشوند. د- فقط رويدادهاي صفحه كليد فرم اجرا ميشوند. - 9 كدام آرگومان در رويدادKeyUp كداسكي كليد فشرده شده را مشخص ميكند الف- KeyCode ب- Key ج- Shift د- Keys - 10 كدام آرگومان در رويداد KeyDown ميتواند فشرده شدن كليدهاي تغيير حالت مانند Alt را مشخص كند الف- Shift ب- Alt ج- Control د- KeyCode 11 -Which of the following mouse events can be used to respond mouse button clicks? a- MouseUp b- MouseDown c- MouseMove d- DragDrop 257

268 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: دهيد. توضيح را Keypress و KeyDown كليد صفحه رويدادهاي بين تفاوت 12- به مربوطه آرگومانهاي با همراه را يك هر و برده نام را ماوس رويدادهاي 13- دهيد. شرح اختصار و KeyDown رويدادهاي در را Shift و KeyCode آرگومانهاي كاربرد و نقش 14- كنيد. بيان KeyUp دهيد. توضيح KeyPress رويداد در را KeyAscii آرگومان وظيفه 15- دهيد. توضيح آن آرگومانهاي با همراه را DragDrop رويداد 16- كنيد. مشخص ماوس رويدادهاي در را Shift و Button آرگومانهاي وظيفه 17- عملي آزمون شكل مطابق كه كنيد طراحي بازي يك - 1 ميان از را متحرك هواپيماي يك بازيكن زير, به داده عبور آنها با برخورد بدون و موانع امتياز شده تلف زمان اساس بر و برساند مقصد برخورد صورت در عالوه به شود محاسبه وي نباشد. امكانپذير بازي ادامه مانع دو با وي را آب زير در زيردريايي يك حركت بعد شكل مطابق كه كنيد طراحي پروژهاي - 2 پريسكوپ از بتوان كليد صفحه با زيردريايي حركت امكان بر عالوه و نمايد شبيهسازي موجود ابرهاي و خورشيد ضمن در و كرد استفاده نيز آب سطح نزديكي در زيردريايي آورند. پديد را شب و روز مثل طبيعي شرايط و باشند متحرك صورت به نيز آسمان در 258

269 واحد کار دهم هدف جزیی نحوه ايجاد انواع منو در ويژوالبيسيك هدفهای رفتاری 259 توجه: مطالعه اين واحدكار براي استاندارد مهارتي رايانه كار پيشرفته وزارت فرهنگ و ارشاد اسالمي به صورت مطالعه آزاد است. پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- انواع منوها را بيان كند. 2- انواع منوها را ايجاد كند و بتواند از رويدادهاي منوها استفاده كند. 3- بتواند از كنترلهاي نوار پيمايش افقي و عمودي استفاده كرده رويدادها و خصوصيات آنها را بهكاربرد. 4- تعريف رابط گرافيكي MDI و SDI و تفاوتهاي آنها را بيان كند. 5- بتواند رابط گرافيكي MDI را ايجاد كند. 6- نحوه ايجاد كادر محاوره باز كردن فايل را بداند.

270 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: کلیات تهيه ويندوز عامل سيستم براي كه برنامههايي دهنده تشكيل اجزاي مهمترين از یكي موجود گزينههاي و منو نوارهاي آنهاست. در موجود گزينههاي و منو نوارهاي ميشوند به را مناسبي ظاهري شكل و كرده آسانتر را برنامه امكانات به كاربر دسترسي آن در مربوطه عمليات خود نظر مورد گزينههاي انتخاب با كاربر تا ميدهند گرافيكي رابط ار آنها از نمونههايي 10-1 شكل در هستند مختلفي انواع داراي منوها انجامدهد. را ميكنيد. مشاهده 10-1 شكل ويژوالبيسيك در منو انواع طراحي نحوه 10-1 ويژوالبيسيك پنجره در Menu Editor ابزار از ميتوانيد خود فرمهاي در منوها ايجاد براي كنيد: انتخاب را روشها اين از يكي ميتوانيد برنامه اين اجراي براي كنيد استفاده كنيد. كليك Menu Editor دكمه روي ويژوالبيسيك استاندارد ابزار نوار در - 1 نماييد. انتخاب Tools منوي از را Menu Editor گزينه

271 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوال بيسيک - 3 از كليد تركيبي Ctrl+E استفاده كنيد. مثال 1: يک واژه پرداز مطابق شكل هاي 10-2 الي 10-4 و جداول 10-1 و 10-2 طراحي كنيد تا كاربر توانايي انتخاب قالب بندي هاي مناسب را براي متن تايپ شده داشته باشد به اين منظور برنامه ويژوال بيسيک را اجرا كنيد و عمليات بعد را به ترتيب انجام دهيد: شكل 10-2 شكل 10-3 شكل 10-4 جدول 10-1 خصوصياتفرم خصوصيت مقدار Name frmeditor جدول 10-2 خصوصيات كنترل كنترل TextBox خصوصيت Caption Text Editor Name txttext MultiLine True ScrollBars Both يک پروژه از نوع Standard EXE ايجاد كنيد كه حاوي يک فرم با يک كنترل كادر متن مطابق شكل 10-5 باشد. شكل 10-5 در شكل هاي 10-2 الي 10-4 مالحظه مي كنيد كه نوار منوي فرم داراي دو منوي File و Options است. در منوي File دو گزينه وجود دارد گزينه New كه براي تايپ يک متن جديد در كادر متن استفاده مي شود و گزينه Exit كه براي خروج از برنامه به كار مي رود.

272 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه منوي دوم يعني Options نيز از گزينههاي Font Size و Font Color تشكيل شده است كه هر يك شامل گزينههايي براي تنظيم اندازه و رنگ قلم هستند با كليك روي اندازهها يا رنگها متن موجود در كادر متن به طور خودكار تنظيم ميشود. - 2 براي ايجاد منو در روي فرم در نوار ابزار استاندارد ويژوالبيسيك روي دكمه Menu Editor كليك كنيد تا كادر محاوره Menu Editor نمايش داده شود. براي فعال كردن اين كادرمحاوره ميتوانيد گزينه Editor... Menu را از منوي Tools برگزينيد يا از كليد تركيبي Ctrl+E استفاده كنيد. - 3 براي ايجاد اولين منو در كادر متن عنوان منو )Caption( عبارت File& را تايپ كنيد كاراكتر & سبب ميشود كليد تركيبي Alt+F براي باز كردن منو در نظر گرفته شود به اين نوع از كليد تركيبي كليد دسترسي سريع يا Hot Key گفته ميشود. سپس در كادر متن نام منو )Name( عبارت mnufile را تايپ كنيد. منوها و گزينههاي موجود در آنها نيز مانند فرمها و كنترلها داراي خصوصيت Name هستند و قوانين نامگذاري آنها مانند فرمها و كنترلهاست. مطابق شكل 10-6 عنوان منو در كادر ليست موجود در قسمت پايين كادر محاوره Menu Editor ديده ميشود. شكل براي ايجاد گزينه New داخل منوي File ابتدا روي دكمه Next در كادرمحاوره Menu Editor كليك كنيد سپس روي دكمه در كادر محاوره كليك كنيد. در كادر ليست عناوين منوها و در زير عبارت File& چهار كاراكتر نقطه ظاهر شدهاند اين عمل سبب ميشود كه ويژوالبيسيك گزينه New را در منوي File نمايش دهد )شكل 10-7(.

273 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوالبيسيك - 5 عبارات New& و mnunew را به ترتيب در كادرهاي متن عنوان و نام كادر محاوره Menu Editor تايپ كنيد. مجددا روي دكمه Next كليك كنيد و به همين صورت گزينه Exit را در منوي File ايجاد كنيد. به عالوه با استفاده از دكمههاي و در كادر محاوره Menu Editor ميتوانيد گزينهها را جابهجا كنيد و به وسيله دكمه Delete در كادر محاوره Menu Editor گزينه مورد نظر خود را حذف نماييد. شكل روي دكمه OK كليك كنيد و به پنجره طراحي فرم باز گرديد. در پنجره طراحي روي منوي File كليك كنيد ميبينيد منويي را كه طراحي كردهايد در پنجره طراحي نيز قابل مشاهده است )شكل 10-8(. - 7 مجددا به كادرمحاوره Menu Editor برويد سپس در كادر ليست عناوين منوها روي گزينه Exit& كليك كرده بعد روي دكمه Next سپس دكمه كليك كنيد. - 8 در كادرهاي متن عنوان و نام منو عبارات Options& و mnuoptions را تايپ كنيد. 263 شكل مانند گزينه New گزينههاي Font Size و Font Color را مطابق شكل 10-9 در منوي Options بسازيد در اين مرحله گزينههاي موجود در زير منوهاي منوي Options را ايجاد كنيد. بنابراين در كادر ليست عناوين منوها ابتدا روي گزينه Font &Color و بعد روي دكمه Insert و دكمه كليك كنيد.

274 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 11 در كادر متن عنوان و نام منو به ترتيب عبارات 10 و mnu10 را تايپ كنيد و به همين صورت گزينههاي 12 و 14 را ايجاد كنيد. چون ميخواهيد گزينههاي زير منوي Font Size داراي چك مارك باشند و گزينه انتخاب شده در اين زير منو با چك مارك نمايش داده شود گزينه 12 را در كادر اسامي منوها انتخاب كرده سپس در كادر عالمت Checked در كادر محاوره Menu Editor كليك كنيد )شكل 10-9(. اين كادر عالمت ميتواند گزينهها را به همراه يك چك مارك نمايش دهد. از اين گزينهها زماني استفاده ميشود كه كاربر بخواهد از چند گزينه موجود در يك منو يا زير منو يكي را انتخاب نمايد مانند مرحله 11 گزينههاي Green Blue و Red را در زير منوي Font Color ايجاد كنيد. در اينجا ميخواهيد براي اين گزينهها كليدهاي تركيبي تعريف كنيد بنابراين روي گزينه Blue& در كادر ليست عناوين منوها كليك كنيد سپس از كادر ليست Shortcut گزينه Ctrl+B را برگزينيد و به همين شكل كليد تركيبي Ctrl+G و Ctrl+R را براي گزينههاي Green و Red انتخاب كنيد. در ضمن چون ميخواهيد به طور پيش فرض رنگ متن آبي باشد بنابراين گزينه Blue را غيرفعالكنيد. به اين منظور دركادر ليست عناوين منوها گزينه Blue& را برگزينيد و روي كادر عالمت Enabled كليك كنيد )شكل 10-9(. اين كادر عالمت اجازه ميدهد تا گزينههاي مورد نظر خود را فعال يا غير فعال كنيد. در صورتيكه اين كادر عالمت انتخاب شود گزينه مربوطه قابل استفاده خواهد بود و در غير اين صورت امكان كليك روي گزينه ممكن نيست روي دكمه OK كليك كنيد و در پنجره طراحي فرم گزينههاي منويي را كه ايجاد كردهايد بررسي نماييد. در ضمن براي مخفي كردن منوها و گزينههاي موجود در آنها ميتوانيد از كادر عالمت Visible در كادر محاوره Menu Editor استفاده كنيد در صورتيكه اين كادر عالمت از حالت انتخاب خارج شود منو يا گزينه مورد نظر مخفي خواهد شد اكنون در منوي File يك خط جداكننده بين گزينههاي New و Exit ايجاد كنيد. براي اين كار كافي است يك گزينه جديد بين گزينههاي New و Exit در منوي File ايجاد كرده و براي عنوان آن از كاراكتر تفريق )-( استفاده كنيد )شكل 10-9(. شكل

275 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوالبيسيك - 14 در اين مرحله رويدادهاي مربوط به هر گزينه را تنظيم كنيد. براي اين كار كافي است در پنجره طراحي فرم روي گزينه مورد نظر كليك كنيد يا در ماژول فرم رويداد Click گزينهها را انتخاب كنيد. به پنجره ماژول فرم برويد و رويداد Click گزينههاي منوي Font Size را به صورت زير تنظيم كنيد: Private Sub mnu10_click() mnu10.checked = True mnu12.checked = False mnu14.checked = False txttext.fontsize = 10 End Sub Private Sub mnu12_click() mnu10.checked = False mnu12.checked = True mnu14.checked = False txttext.fontsize = 12 End Sub Private Sub mnu14_click() mnu10.checked = False mnu12.checked = False mnu14.checked = True txttext.fontsize = 14 End Sub از رويداد Click گزينههاي mun12 mnu10 و mnu14 استفاده شده است. در هر رويداد با توجه به گزينه انتخاب شده خصوصيت Checked آن روي True تنظيم ميشود اين امر سبب ميشود چك مارك در كنار گزينه مورد نظر نمايش داده شود. به عالوه خصوصيت Checked دو گزينه ديگر False خواهد شد و با استفاده از خصوصيت FontSize اندازه قلم متن با توجه به گزينه انتخاب شده تنظيم ميشود. 265

276 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه 15 -اكنون رويدادهاي مربوطبه گزينههاي زير منويColor Font رابهاين صورتتنظيم كنيد: Private Sub mnublue_click() mnublue.enabled = False mnugreen.enabled = True mnured.enabled = True txttext.forecolor = vbblue End Sub Private Sub mnugreen_click() mnublue.enabled = True mnugreen.enabled = False mnured.enabled = True txttext.forecolor = vbgreen End Sub Private Sub mnured_click() mnublue.enabled = True mnugreen.enabled = True mnured.enabled = False txttext.forecolor = vbred End Sub Private Sub Form_Load() Call mnu12_ Click Call mnublue_ Click End Sub در اين رويدادها با استفاده از خصوصيت Enabled گزينهها و با توجه به گزينه انتخاب شده مقدار اين خصوصيت روي False تنظيم ميشود تا گزينه انتخاب شده غيرفعال شود زيرا با تغيير رنگ قلم به رنگ مربوطه انتخاب مجدد همان گزينه الزم نيست اما براي دو گزينه ديگر اين خصوصيت روي True تنظيم ميشود تا گزينهها براي كاربر قابل انتخاب شوند. 266

277 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوالبيسيك به عالوه با استفاده از خصوصيت ForeColor كادر متن رنگ متن تنظيم ميشود و براي هماهنگي بيشتر در رويداد Load فرم رويه رويدادهاي mun12_click و mnublue_ Click فراخواني ميشوند تا اندازه و رنگ قلم روي مقدار 12 و آبي تنظيم شوند. بنابراين هنگام اجراي برنامه اندازه و رنگ متن با گزينههاي مربوطه در منو يكسان ميشوند. 16- پروژه و فرم را با نام texteditor ذخيره كنيد سپس آن را اجرا نماييد و نام و نام خانوادگي خود را در كادر متن بنويسيد. مشاهده ميكنيد كه رنگ قلم آبي و اندازه آن 12 است. 17- روي گزينه 14 و سپس 1 در منوي Font Size كليك كنيد و نتيجه را بررسي كنيد سپس روي گزينههاي Green و Red در منوي Font Color كليك كنيد و نتيجه را بررسي كنيد به اجراي پروژه خاتمه دهيد و به پنجره ويژوالبيسيك بازگرديد. تمرين: پروژه فوق را طوري تنظيم كنيد كه با انتخاب گزينه New محتويات كادر متن حذف شود و با انتخاب گزينه Exit برنامه واژهپرداز خاتمه يابد. به عالوه داراي اين شرايط باشد: الف- يك منوي جديد با عنوان Edit به نوار منو اضافه كنيد كه امكان جستجو و جايگزيني عبارت مورد نظر را در متن داشته باشد. ب- يك گزينه به منوي Options اضافه كنيد تا مانند گزينه Font Color بتواند رنگ زمينه متن را تغيير دهد. 267

278 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: آزاد مطالعه 1 MDI يا سندي چند گرافيكي رابط از استفاده و ايجاد نحوه 10-2 كي هر كه ميشد تشكيل فرم چند يا يك از كردهايد طراحي كه را پروژههايي تاكنون بسته و ميگرفتند قرار استفاده مورد و درآمده نمايش به دسكتاپ روي مستقل طور به فرمهاي ساير روي تأثيري فرم يك حداقلرساني به يا رساني حداكثر به انتقال شدن گفته 2 SDI فرمهاي يا سندي تك گرافيكي رابط برنامهها گونه اين به نميگذاشت برنامه مشابهي انواع يا Excel Word ويژوالبيسيك مانند برنامههايي است ممكن اما ميشود. و فرمها ساير و دارد وجود اصلي پنجره عنوان به پنجره يك آنها در كه باشيد ديده را صورت در كه دارند وابستگي اصلي پنجره به و ميشوند باز پنجره اين داخل در پنجرهها ميشوند بسته يا منتقل آن در موجود پنجرههاي تمام اصلي پنجره شدن بسته يا انتقال پنجره روي تأثيري هستند وابسته اصلي پنجره به كه پنجرههايي انتقال يا شدن بسته اما گفته MDI يا سندي چند گرافيكي رابط پنجرهها از گونه اين به نميگذارد برنامه اصلي وابسته فرمهاي و پنجرهها به و ياMDI )Parent( والد فرم پروژه اصلي پنجره به و ميشود 10-10(. )شكل ميشود گفته )Child( فرزند فرم شكل در Child فرم چند از استفاده اما باشد داشته MDI فرم يك فقط ميتواند پروژه يك متن كادر فرمان دكمه مانند كنترلها بعضي از استفاده ضمن در است. بالمانع پروژه يك نيست. امكانپذير MDI فرمهاي روي در آنها نظاير و تصوير كادر MDI (Multi Document Interface) سندي چند كاربر رابط -1 SDI (Single Document Interface) سندي يك كاربر رابط

279 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوال بيسيک مثال 2: پروژه texteditor را طوري تغيير دهيد كه مطابق شكل به صورت يک رابط گرافيكي MDI مورد استفاده قرار گيرد و تايپ متن در يک فرم SDI انجام شود. به اين منظور عمليات زير را به ترتيب انجام دهيد: - 1 برنامه ويژوال بيسيک را اجرا كنيد و يک پروژه از نوع Standard EXE ايجاد كنيد. - 2 در پنجره پروژه كليک راست كنيد و از زيرمنوي Add گزينه MDI Form را انتخاب كنيد )شكل 10-12( تا يک فرم از نوع MDI ايجاد شود. در اين صورت كادر محاورهMDI Add Form )مطابق شكل 10-13( نمايش داده مي شود. روي دكمه Open كليک كنيد تا يک فرم MDI به پروژه اضافه شود )شكل 10-14(. براي ايجاد يک فرم از نوع MDI مي توانيد يكي از روش هاي زير را نيز انتخاب كنيد: الف- از منوي Project در پنجره ويژوال بيسيک گزينه Add MDI Form را انتخاب كنيد. ب- روي عالمت مثلث دكمه Add Form در نوار ابزار استاندارد كليک كرده و گزينه MDI Form را انتخاب كنيد. شكل شكل شكل شكل 10-13

280 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 3 در پنجره پروژه آيكن Form1 را انتخاب كرده و روي آن كليک راست كنيد و از منويي كه ظاهر مي شود گزينه Remove Form1 را برگزينيد تا فرم از پروژه خارج شود. براي خارج كردن يک فرم از پروژه مي توانيد گزينه )نام فرمRemove ) را از منوي Project در پنجره ويژوال بيسيک انتخاب كنيد. نكته در صورت خارج كردن يک فرم از پروژه, فايل فرم از روي ديسک حذف نميشود. - 4 مشخصات فرم MDI را مطابق جدول 10-3 تنظيم كنيد سپس فرم و پروژه را با نام neweditor ذخيره كنيد. جدول 10-3 خصوصياتفرم مقدار خصوصيت Name mdieditor Caption Text Editor - 5 در اين مرحله فرم text editor.frm را كه در مثال قبل ايجاد كرده ايد به پروژه جاري اضافه كنيد. سپس به پنجره طراحي اين فرم برويد و كادر محاوره Menu Editor را فعال كنيد و روي دكمه Delete كليک كنيد. گزينه File از كادر ليست اسامي عناوين منوها حذف ميشود. به همين روش تمام گزينهها را حذف كرده و در پايان روي دكمه OK كليک كنيد. - 6 در اين مرحله بايد بين فرمهاي MDI و frmeditor ارتباط الزم را برقرار كنيد تا فرم frmeditor به فرم MDI وابسته شود. به اين منظور در پنجره پروژه روي آيكن فرم frmeditor كليک كنيد سپس در پنجره خصوصيات, خصوصيت MDIChild را انتخاب كنيد و مقدار آن را روي True تنظيم كنيد. - 7 همانطور كه ميبينيد نوار منو از فرم Text Editor حذف شده است. نام فرم حاصل را روي frmtext تنظيم كنيد سپس آن را با نام text ذخيره كنيد. - 8 اكنون به پنجره طراحي فرم MDI برويد و منويي را كه از فرم قبلي حذف كردهايد مجددا به همان شكل ايجاد كنيد. 270

281 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوالبيسيك - 9 به پنجره ماژول فرم frmtext برويد و تمام رويدادهاي مربوط به منوها را انتخاب كنيد و به ماژول فرم MDI انتقال دهيد )ابتدا عمل Cut و بعد در ماژول فرم MDI عمل Paste انجام دهيد( سپس رويداد Load فرم MDI و ساير رويدادها را به صورت زير تنظيم كنيد: Private Sub MDIForm_Load() mdieditor.width = 8000 mdieditor.height = 7000 frmtext.top = 500 frmtext.left = 300 frmtext.show frmtext.txttext.fontsize = 12 frmtext.txttext.forecolor = vbblue End Sub Private Sub mnu10_click() mnu10.checked = True mnu12.checked = False mnu14.checked = False frmtext.txttext.fontsize = 10 End Sub Private Sub mnu12_click() mnu10.checked = False mnu12.checked = True mnu14.checked = False frmtext.txttext.fontsize = 12 End Sub Private Sub mnu14_click() mnu10.checked = False mnu12.checked = False mnu14.checked = True frmtext.txttext.fontsize = 14 End Sub Private Sub mnublue_click() mnublue.enabled = False 271 mnugreen.enabled = True

282 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه mnured.enabled = True frmtext.txttext.forecolor = vbblue End Sub Private Sub mnugreen_click() mnublue.enabled = True mnugreen.enabled = False mnured.enabled = True frmtext.txttext.forecolor = vbgreen End Sub Private Sub mnured_click() mnublue.enabled = True mnugreen.enabled = True mnured.enabled = False frmtext.txttext.forecolor = vbred End Sub Private Sub mnunew_click() frmtext.txttext.text = "" End Sub Private Sub mnuexit_click() Unload Me End Sub به پنجره ويژگيهاي پروژه برويد و فرم mdieditor را به عنوان اولين فرم براي نمايش در ابتداي اجراي پروژه انتخاب كنيد سپس تغييرات را ذخيره كنيد و پروژه را اجرا نماييد پنجرههاي پروژه مطابق شكل نمايش داده ميشوند سعي كنيد پنجره فرزند را از محدوده فرم MDI خارج كنيد. همانطور كه انتظار ميرود فرم فرزند به فرم MDI وابسته شده است روي دكمه فرم فرزند كليك كنيد مشاهده ميكنيد كه فرم MDI بسته نميشود. به اجراي پروژه خاتمه داده و مجددا آنرا اجرا كنيد و اين بارروي دكمه پنجره MDI كليك كنيد. خواهيد ديد كه پنجره فرزند نيز با پنجره MDI بسته ميشود اجراي پروژه را متوقف كنيد و به پنجره ويژوالبيسيك بازگرديد. تمرين: پروژه قبل را طوري تنظيم كنيد كه در هنگام اجراي برنامه فقط فرم MDI به همراه منوي File مشاهده شود و فرم فرزند به همراه ساير گزينهها زماني فعال شود كه گزينه New از منوي File انتخاب شده و فرم فرزند فاقد دكمه Close و منوي كنترل باشد.

283 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوالبيسيك 10-3 كنترلهاي نوار پيمايش افقي و عمودي 273 تاكنون از نوارهاي پيمايش در ويندوز و پنجرههاي برنامه استفاده كردهايد و ميدانيد از اين اجزا زماني استفاده ميشود كه محتويات مورد نياز براي نمايش در پنجره از ابعاد پنجره بزرگتر و بيشتر بوده و كاربر با بهكارگيري نوار پيمايش محتويات پنجره را مرور كند. به عنوان نمونه كامال مشخصي از نوار پيمايش, ميتوان به پنجره My Computer اشاره كرد كه وقتي تعداد فايلها و پوشهها بيش از اندازه زياد باشد اين نوارهاي پيمايش هستند كه به كاربر در مشاهده محتويات يك پوشه كمك ميكنند يا نوارهاي پيمايش در كادرهاي متن و نظاير آنها را ميتوان نام برد. ميدانيد كه اين كنترلها از دو دكمه مثلثي شكل و يك دكمه مستطيل شكل متحرك دربيندكمههاي مثلثي تشكيل شدهاند. كاربر ميتواند با كليك روي دكمههاي مثلثي, كشيدن دكمه مستطيل شكل يا كليك روي نقطهاي خالي از كنترل نوار پيمايش, حركت كند. در ويژوالبيسيك دو كنترل نوار پيمايش عمودي ScrollBar( )Vertical و نوار پيمايش افقي ScrollBar( )Horizontal براي استفاده در پروژههاي برنامهنويسي وجود دارند. در اينجا خصوصيتها و رويدادهايي از اين كنترلها كه مشترك هستند بررسي ميشود. خصوصيات LargeChange و SmallChange ايندو خصوصيت مقدار تغييرات را هنگاماستفاده از كنترل تعيين ميكنند. خصوصيت SmallChange مقدار تغييرات را هنگامي كه روي دكمههاي مثلثي كنترل نوار پيمايش كليك شود تعيين ميكند و خصوصيت LargeChange مقدار تغييرات را هنگامي كه كاربر روي مكاني از نوار پيمايش بجز دكمهها كليك ميكند معين مينمايد. اين دو خصوصيت از نوع عددي هستند. خصوصيات Max و Min اين دو خصوصيت مقدار حداكثر را كه با رسيدن دكمه متحرك كنترل به انتهاي نوار پيمايش و مقدار حداقل را كه با رسيدن دكمه متحرك به ابتداي نوار پيمايش بهدست ميآيد تعيين ميكنند. اين دو خصوصيت نيز از نوع عددي صحيح هستند. خصوصيت Value اين خصوصيت مقدار جاري را در نوار پيمايش معين ميكند اين خصوصيت نيز ازنوع عددي است.

284 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه رويداد Change اين رويداد زماني رخ مي دهد كه مقدار خصوصيت Value كنترل تغيير كند. اين مسأله وقتي اتفاق مي افتد كه روي دكمه هاي مثلثي شكل يا در مكان خالي روي نوار پيمايش كليک كنيد. رويداد Scroll اين رويداد زماني اجرا مي شود كه كاربر دكمه متحرك مستطيل شكل را در نوار پيمايش به وسيله ماوس جابه جا كند. مثال 3: يک برنامه براي مشاهده تصاوير ايجاد كنيد كه مطابق شكل توانايي نمايش تصوير دلخواه را داشته باشد و در صورتي كه تصوير بزرگ تر از اندازه فرم باشد بتواند با استفاده از نوارهاي پيمايش تمام تصوير را مرور كند. - 1 يک پروژه از نوع Standard EXE ايجاد كنيد كه شامل يک فرم و كنترل تصوير )Image( با عرض و ارتفاع 6 و 5 با يک نوار منو مطابق شكل هاي و و جداول 10-4 و 10-5 باشد. شكل شكل جدول 10-4 خصوصياتفرم مقدار خصوصيت Name frmeditor Picture Caption Viewer جدول 10-5 خصوصياتكنترل كنترل TextBox خصوصيت Name Imgshow Stretch True 274

285 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در منو انواع ايجاد نحوه کاردهم: واحد كنيد: تنظيم صورت اين به را منوها گزينههاي به مربوط رويدادهاي مرحله اين در - 2 Private Sub mnuopen_click() Dim txtpicture As String txtpicture = InputBox("Enter Path and File Name :", "Open") imgshow.stretch = False End Sub imgshow.picture = LoadPicture(txtpicture) Private Sub mnuzoomin_click() imgshow.stretch = True imgshow.width = imgshow.width * 2 imgshow.height = imgshow.height * 2 End Sub Private Sub mnuzoomout_click() imgshow.stretch = True imgshow.width = imgshow.width / 2 imgshow.height = imgshow.height / 2 End Sub Private Sub mnunormal_click() End Sub imgshow.stretch = False Private Sub mnuexit_click() End Sub Unload Me و نام داده ورود كادر از استفاده با Open گزينه رويداد در ميكنيد مشاهده كه همانطور روي تصوير كنترل Stretch خصوصيت سپس ميشود دريافت كاربر از تصوير فايل مسير LoadPicture تابع ادامه در و شود مشاهده واقعي اندازه با تصوير تا ميشود تنظيم False داد. خواهد نمايش تصوير كنترل در را نظر مورد تصوير 275

286 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه در رويداد گزينههاي Zoom In و Zoom out ابتدا خصوصيت Stretch كنترل تصوير روي True تنظيم ميشود تا امكان تغيير اندازه تصوير با تغيير اندازه كنترل امكانپذير باشد. سپس با ضرب يا تقسيم عرض كنترل تصوير بر عدد 2 حالت بزرگنمايي زيادتر يا كمتر بهوجود ميآيد. رويداد گزينه Normal نيز ميتواند با False كردن خصوصيت Stretch كنترل تصوير آن را مجددا به حالت عادي خود باز گرداند. - 3 براي ايجاد نوار پيمايش عمودي در جعبه ابزار روي آيكن VScrollBar دابل كليك كنيد سپس روي آيكنHScrollBar دابل كليك كنيد تا يك نوار پيمايش افقي نيز روي فرم ايجاد شود سپس خصوصيات آنها را مطابق جدول 10-6 تنظيم كنيد. HScrollBar جدول 10-6 خصوصيات كنترلها VScrollBar vsbimage hsbimage كنترل خصوصيت Name LargeChange SmallChange اكنون رويدادهايChange وScroll دو كنترلنوار پيمايش رابه صورت زير تنظيمنماييد: Private Sub vsbimage_change() imgshow.top = -vsbimage.value End Sub Private Sub vsbimage_scroll() imgshow.top = -vsbimage.value End Sub Private Sub hsbimage_change() End Sub imgshow.left = -hsbimage.value Private Sub hsbimage_scroll() imgshow.left = -hsbimage.value End Sub 276

287 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در منو انواع ايجاد نحوه کاردهم: واحد امكانپذير تصاوير روي پيمايش عمل آنكه براي ميكنيد مشاهده رويدادها اين در كنترل Top خصوصيت به عمودي پيمايش نوار كنترل Value خصوصيت مقدار باشد وسيله به پيمايش صورت در تا ميشود سبب امر اين است. شده داده نسبت تصوير و SmallChange خصوصيتهاي مقدار به توجه با تصوير ممكن روشهاي از يك هر است علت همين به نيز منفي عالمت از استفاده كند. حركت باال سمت به LargeChange همين به كرد. نخواهد حركت پايين به تصوير پيمايش عمل انجام با صورت اين غير در با تا ميشود هماهنگ تصوير كنترل Left خصوصيت با نيز افقي پيمايش نوار كنترل شكل شود. مشاهده قابل تصوير جلوتر قسمتهاي جلو سمت به افقي پيمايش نوار در حركت Zoom Zoom In Open گزينههاي Click رويداد به را زير دستورات مرحله اين در - 5 در حركت ميزان حداكثر تا ميشوند سبب دستورات اين كنيد. اضافه Normal و out تصوير ابعاد به توجه با پيمايش( نوار كنترلهاي Max )خصوصيت پيمايش نوارهاي خصوصيت مقدار جديد تصوير شدن باز يا بزرگنمايي ميزان در تغيير با و شوند تنظيم باشد. رؤيت قابل آن بخش باالترين از تصوير تا شده صفر پيمايش نوارهاي hsbimage.max = imgshow.width vsbimage.max = imgshow.height hsbimage.value =0 vsbimage.value =0 روي و كنيد اجرا را آن سپس كرده ذخيره Picture Viewer نام با را فرم و پروژه - 6 JPG يا BMP نوع از تصوير فايل يك مسير و نام كرده كليك File منوي در Open گزينه كنيد. كليك OK دكمه روي سپس كنيد تايپ داده ورود كادر در را را تصوير پيمايش نوارهاي از استفاده با و كنيد آزمايش را View منوي گزينههاي - 7 نماييد. تكرار مجددا را 7 و 6 مراحل كرده باز را ديگري تصوير سپس كنيد. مرور تمرين: كنيد. اضافه Picture Viewer برنامه به را زير امكانات پيمايش نوارهاي باشد فرم ابعاد از كوچكتر تصوير ابعاد كه صورتي در الف- ميشوند. مخفي پيمايش نوارهاي بتوان آن وسيله به كه كنيد اضافه View منوي در گزينههايي ب- آشكاركرد. و مخفي را 277

288 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه مثال 4: پروژه Picture Viewer را به گونه اي تنظيم كنيد كه بتوان با كليک راست روي تصوير نيز به گزينه هاي منوي View دسترسي پيدا كرد )شكل 10-17(. براي اين كار عمليات بعد را به ترتيب انجام دهيد: شكل پروژهViewer Picture راباز كنيد وبه ماژول فرم و رويدادimgshow_MouseDownبرويد. - 2 سپس اين رويداد را به صورت زير تنظيم كنيد: Private Sub imgshow_mousedown(button As Integer, _ Shift As Integer, X As Single, Y As Single) If Button = vbrightbutton Then PopupMenu mnuview End Sub مشاهده مي كنيد كه با استفاده از دستور PopupMenu مي توانيد منوهاي موضوعي خود را با استفاده از كليک راست ايجاد كنيد. در اين جا با استفاده از رويداد MouseDown و يک دستور If فشرده شدن دكمه راست ماوس بررسي مي شود سپس دستور PopupMenu گزينه هاي منوي View را در زمان كليک راست روي كنترل تصوير در اختيار شما قرار مي دهد. - 3 تغييرات را ذخيره كرده پروژه را اجرا كنيد و يک تصوير دلخواه را نمايش دهيد سپس روي تصوير كليک راست كنيد. مطابق شكل منوي View روي فرم ظاهر مي شود اكنون با استفاده از اين منو عملكرد برنامه را مجددا بررسي كنيد. - 4 به اجراي پروژه خاتمه داده و به پنجره ويژوال بيسيک بازگرديد. 278

289 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوالبيسيك 10-4 كنترل کادر محاوره )CommonDialog( اين كنترل امكان ايجاد كادرهاي محاوره براي بازكردن و ذخيرهسازي فايلها انجام عمليات چاپ انتخاب رنگها و فونتها و نمايش راهنما را فراهم ميآورد. آيكن اين كنترل بهطور پيشفرض در جعبه ابزار ديده نميشود به منظور افزودن اين کنترل به جعبه ابزار به ترتيب زير عمل کنيد: - 1 روي منوي Project در نوار منوي ويژوالبيسيك كليك كنيد. - 2 در منوي Project روي گزينهComponents كليك كنيد. - 3 پس از باز شدن پنجره Components روي زبانه Controls در اين پنجره كليك كنيد. - 4 گزينه 00 Microsoft Common Dialog Control 6 را در ليستي كه نمايش داده شده است انتخاب كنيد )روي مربع ابتداي جمله كليك كنيد(. - 5 دكمه فرمان OK را بفشاريد تا به محيط طراحي فرم بازگرديد. آيكن كنترل مزبور در جعبه ابزار اضافه شده است )شكلهاي و 10-19(. شكل نحوه اضافه كردن كنترل CommonDialog به جعبه ابزار 279

290 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شكل پنجره Components براي اضافه كردن كنترل CommonDialog به جعبه ابزار پس از اضافه شدن آيكن كنترل ميتوانيد اين كنترل را مانند ساير كنترلها به فرمهاي خود اضافه كنيد. اين كنترل هنگام اجراي برنامه در روي فرم مشاهده نميشود و فقط زماني كادرهاي محاوره نمايش داده ميشوند كه متدهاي مربوط به آنها فراخواني شوند. اين كنترل بهوسيله متدهاي زير ميتواند كادرهاي محاوره مربوطه را نمايش دهد اين متدها را در جدول 10-7 مشاهده ميكنيد. جدول 10-7 انواع متدهاي كنترل CommonDialog نام متد نام كادرمحاوره كادرمحاوره باز كردن فايلها كادرمحاوره ذخيرهسازي فايلها كادرمحاوره رنگها كادرمحاوره فونت كادرمحاوره چاپگر كادرمحاوره راهنما ShowOpen ShowSave ShowColor ShowFont ShowPrinter ShowHelp كنترلCommonDialog دراين حالت ميتواند خصوصيات زير را در دسترس شما قرار دهد: خصوصيت :FileName اينخصوصيت نام و مسير فايلي راكه توسط كاربر انتخاب شده است نگهداري ميكند. نوع اين خصوصيت رشتهای است. خصوصيت :Filter اين خصوصيت ميتواند نوع فايلهايي را كه بايد در كادر محاوره 280

291 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوال بيسيک نمايش داده شوند تعيين كند مثال اگر بخواهيد فايل هايي با پسوند txt و doc را در كادرمحاوره ببينيد خصوصيت Filter را به صورت زير تنظيم كنيد. dlg.filter="text Files(*.txt) *.txt Documents(*.doc) *.doc" هر بخش در خصوصيت Filter شامل دو قسمت مي شود قسمت اول يک توضيح است كه در ليست Files of types ديده مي شود و قسمت دوم عبارتي است كه مي تواند نحوه نمايش فايل ها را تعيين كند. خصوصیت FilterIndex: در صورتي كه بيش از يک فايل را به وسيله خصوصيت Filter براي نمايش در كادر محاوره تعيين كرده باشيد به طور پيش فرض اولين نوع فايل در خصوصيت Filter در كادرمحاوره در نظر گرفته ميشود. بهوسيله خصوصيت FilterIndex ميتوانيد گزينه پيشفرض را انتخاب كنيد. خصوصيت FilterIndex ميتواند مقادير عددي صحيح از 1 به باال را كسب كند و بر اساس قرار گرفتن گزينههاي مورد نظر در خصوصيت Filter محاسبه شود. مقدار پيشفرض اين خصوصيت اولين گزينه يا مقدار 1 است. شكل كلي نحوه تنظيم اين خصوصيت به اين صورت است: مقدارعددي = FilterIndex. نام كنترل CommonDialog خصوصیت :FileTitle بهوسيله اين خصوصيت ميتوان به نام فايل انتخاب شده دسترسي پيدا كرد. اين خصوصيت فقط نام فايل را بدون مسير آن نگهداري ميكند. خصوصیت :InitDir زماني كه كادر محاوره Open يا Save As نمايش داده ميشود اسامي فايلها و پوشههاي مسير جاري در ديسک نمايش داده ميشود. در صورتي كه بخواهيد مسير ويژهاي را براي كادرمحاوره در نظر بگيريد ميتوانيد مسير مورد نظر را در اين خصوصيت ذخيره كنيد. شكل كلي نحوه استفاده از اين خصوصيت بهصورت زير است: مسير = InitDir.نام كنترل CommonDialog مسير يک عبارت رشتهاي است كه موقعيت فايل مورد نظر را تعيين ميكند. نكته خصوصيات فوق را ميتوانيد از طريق كادر محاوره Property Pages نيز تنظيم كنيد. براي دسترسيبهپنجرهمزبور درپنجرهخصوصيات كنترلCommonDialogراانتخابكردهورويخصوصيت Custom آن كليک كنيد در ادامه در روبهروي اين خصوصيت روي دكمه كليک كنيد, كادر محاوره Property Pages نمايش داده خواهد شد. در ادامه روي زبانه Open / Save As كليک كنيد ميتوانيد مقادير مورد نظر را براي هر خصوصيت در اين پنجره و در بخش مربوط به هر خصوصيت بنويسيد. 281

292 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شكل مثال 5: پروژه Picture Viewer را به گونه اي تنظيم كنيد تا بتوان با استفاده از كادر محاوره باز كردن فايل ها هر تصوير دلخواهي را انتخاب و مشاهده كرد. به اين منظور عمليات زير را به ترتيب انجام دهيد: - 1 پروژه Picture Viewer را باز كنيد. - 2 يک كنترل كادرمحاوره روی فرم قرار دهيد و خصوصيت نام آن را روی dlgopen تنظيم كنيد. - 3 به ماژول فرم و رويدادClick _mnuopen برويد و رويدادهای زير را تنظيم كنيد: Private Sub Form_Load() dlgopen.filter = "BitMapFile (*.bmp) *.bmp AllFiles(*.*) *.*" dlgopen.filterindex = 1 dlgopen.initdir = "c:\" End Sub Private Sub mnuopen_click() dlgopen.dialogtitle = "Open" dlgopen.showopen imgshow.stretch = False imgshow.picture = LoadPicture(.dlgopen.FileName) End Sub - 4 پس از انجام تغييرات فوق را ذخيره نماييد برنامه را اجرا كرده و روي گزينه Open از منوی File كليک كنيد كادرمحاوره Open باز مي شود. در كادرمحاوره Open روي دكمه در ليست Files of type كليک كنيد تا ليست مربوطه باز شود. همان طور كه مالحظه مي كنيد توضيحات دو نوع فايل قابل مشاهده است در صورتي كه ( )*.bmp BitMapFileانتخاب شود فقط فايل هاي با پسوند bmp و در صورتي كه گزينه)*.*( AllFilesرا انتخاب كنيد تمام فايل ها را خواهيد ديد. يک فايل گرافيكی به دلخواه انتخاب كرده و آن را نمايش دهيد.

293 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوالبيسيك Learn in English Assigning Access Keys to Menu Item You can improve keyboard access to menu commands by defining access keys and shortcut keys. Access Keys Access keys allow the user to open a menu by pressing the ALT key and typing a designated letter. Once a menu is open, the user can choose a control by pressing the letter (the access key) assigned to it. For example, ALT+E might open the Edit menu, and P might select the Paste menu item. An access-key assignment appears as an underlined letter in the menu control s caption. To assign an access key to a menu control in the Menu Editor 1 - Select the menu item to which you want to assign an access key. 2 - In the Caption box, type an ampersand (&) immediately in front of the letter you want to be the access key. 283

294 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه واژهنامه Access Key Assignment Compiler Immediately Improve Interpreter Object Source Structural Programming كليد دسترسي مأموريت مترجم بيدرنگ بالفاصله اصالح كردن بهبود دادن مفسر شئ برنامه مبدأ برنامهنويسي ساختيافته خالصه مطالب در ويژوالبيسيك از كادر محاوره Menu Editor براي ايجاد انواع منو استفاده ميشود. از كنترلهاي نوار پيمايش افقي و عمودي براي مرور تصوير دركنترلهاي تصوير يا محتويات پنجرهها استفاده ميشود. با استفاده از كنترل CommonDialog ميتوان انواع كادرهاي محاوره باز و ذخيره كردن فايل فونت رنگ و غيره را ايجاد نمود. 284

295 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردهم: نحوه ايجاد انواع منو در ويژوالبيسيك آزمون نظري 1 -كدام دستور براي ايجاد منوهاي موضوعي به وسيله كليك راست مناسب هستند د- Editor Menu ج- MouseMove ب- PopupMenu الف- MouseUp - 2 كدام رويداد در كنترلهاي نوار پيمايش در زمان كليك روي مكان خالي از نوار پيمايش اجرا ميشود د- Move ج- Click ب- Scroll الف- Change - 3 در كنترلهاي نوار پيمايش كدام خصوصيت ميزان تغييرات خصوصيت Value را در زمان كليك روي دكمههاي مثلثي كنترل تعيين ميكند د- Change ج- Scroll ب- SmallChange الف- LargeChange - 4 كدام خصوصيت در كنترل كادرمحاوره ميتواند نوع فايلهايي را كه بايد نمايش داده شوند تعيينكند د- InitDir ج- Filter Index ب- Filter الف- File Name - 5 براي نمايش يك منوي موضوعي از كدام دستور استفاده ميشود ب- MenuPopup الف- Menu د- PopupMenu ج- Popup - 6 كدام رويداد در كنترلهاي نوار پيمايش در هنگام درگ كردن دكمه مستطيل شكل اجرا ميشود ب- SmallChange الف- LargeChange د- MinScroll ج- Scroll - 7 كدام رويداد در كنترلهاي نوار پيمايش در زمان كليك روي دكمههاي مثلثي شكل اجرا ميشود د- Change ج- SmallChange ب- LargeChange الف- Scroll - 8 كدام متد نميتواند يك كادرمحاوره را نمايش دهد د- ShowColor ج- ShowSave الف- ShowOpen ب- ShowFile 9 - Which of the following characters is required to create an access key for Menu item? a- * b-? c- - d- & 285

296 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه 10- انواع منو در رابطهاي گرافيكي را همراه با كاربرد هر يك توضيح دهيد. 11- انواع كادرهاي محاوره و كاربرد هر يك از آنها را توضيح دهيد. 12- انواع كنترلهاي نوار پيمايش و نحوه استفاده از آنها را توضيح دهيد. 13- انواع منو و كاربرد هر يك از آنها را توضيح دهيد. 14- خصوصيت Filter در كادرمحاوره Open را توضيح دهيد. آزمون عملي - 1 يك برنامه نقاشي مطابق اين شكلها به گونهاي طراحي كنيد تا كاربر توانايي رسم خطوط و مستطيلهاي دلخواه خود را با رنگهاي مورد نظر داشته باشد. - 2 پروژهاي طراحي كنيد كه مطابق شكلهاي زير توانايي محاسبهمساحت و محيط انواع اشكال هندسي را داشته باشد و به عالوه امكان تعيين واحد اندازهگيري نيز وجود داشته باشد. 286

297 واحد کاریازدهم هدف جزیی توانايي استفاده از انواع آرايهها در ويژوالبيسيك هدفهای رفتاری 287 توجه: مطالعه اين واحدكار براي استاندارد مهارتي رايانه كار پيشرفته وزارت فرهنگ و ارشاد اسالمي به صورت مطالعه آزاد است. پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- توانايي ايجاد انواع آرايههاي يك بعدي با ابعاد ثابت و متغير را داشته باشد. 2- توانايي ذخيرهسازي و بازيابي دادهها بهوسيله آرايههاي يكبعدي را داشته باشد. 3- توانايي ارسال آرايهها به رويهها را داشته باشد. 4- توانايي فراخواني يك آرايه با تعداد آرگومانهاي نامعين را داشته باشد. 5- توانايي ايجاد و استفاده از آرايههاي دوبعدي را داشته باشد. 6- نحوه استفاده از توابع Ubound و LBound را بداند. 7- نحوه استفاده از توابع Filter Split و Join را بداند. 8- توانايي مرتب كردن اعضاي يك آرايه با روشهاي زير را داشته باشد. الف مرتبسازي با روش حبابي ب مرتبسازي با روش انتخابي 9- توانايي جستجوي اطالعات را در آرايهها با روش خطي و دودويي داشته باشد.

298 288 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: کلیات آشنا كامپيوتر اصلي حافظه در اطالعات ذخيرهسازي مختلف روشهاي با تاكنون مشخص كامال نمونههاي از كنترلها خصوصيات و متغيرها انواع از استفاده كه شدهايد است. آن قرار پردازش مورد را داده زيادي تعداد است الزم واقعي برنامهنويسيهاي در گاهي قابل همواره روش اين اما كرد تعريف متغير نظر مورد تعداد به بايد ناچار به كه دهيم نفر هزار اسامي بايد كه كنيد طراحي را برنامهاي ميخواهيد كنيد فرض مثال نيست اجرا بايد قبلي دانستههاي به توجه با حالتي چنين در كند دريافت را دانشگاه يك دانشجويان از دادهها تعداد اگر است منطقي روش اين آيا كنيد. تعريف اساميمختلف با متغير هزار كنيد پيدا اسامي مجموعه ميان در را اسم يك بخواهيد اگر چطور كند پيدا افزايش باز رظن از يا نيست امكانپذير يا معمول روشهاي با عمليات اينگونه ميافتد اتفاقي چه بود. نخواهد منطقي تكنيكي, زا برنامهنويسي زبانهاي تمام در برنامههايي چنين طراحي و مشكل اين حل براي چندين از سري يك واقع در آرايه يك ميشود. استفاده )Array( آرايه نام به مفهومي يكديگر از مثبت( صحيح عدد )يك انديس يك بهوسيله كه است مشابه نام يك با متغير ميشوند. متمايز امش زيرا شود كوتاهتر و سادهتر برنامه كدهاي تا ميشود باعث آرايهها از استفاده آرايه اعضاي از يك هر به انديسها شماره و حلقهها انواع از استفاده با ميتوانيد تمام و هستند داده نوع داراي متغيرهايمعمولي مانند نيز آرايهها كنيد. پيدا دسترسي Variant داده نوع از استفاده بهوسيله ميتوانيد البته هستند داده نوع يك از يكآرايه اعضاي كنيد. ذخيره آرايه يك اعضاي در را دادهها از مختلفي انواع آنها از استفاده بدون و است اجتنابناپذير بزرگ برنامههاي در آرايهها از استفاده بود. خواهد مشكلي بسيار كار داده جستجوي و مرتبسازي عمليات انجام بهطور آرايه اعضاي و ميشود معين آن بااليي و پاييني دامنه بهوسيله آرايه يك ابعاد يك هر براي ويژوالبيسيك ميگيرند. قرار محدوده اين داخل هم سر پشت و پيوسته استفاده بنابراين ميدهد اختصاص حافظه در را جداگانهاي فضاي آرايه يك اعضاي از شد. خواهد استفاده بدون حافظه اشغال باعث نياز مورد اندازه از بزرگتر آرايههايي از

299 بيسيك( )ويژوال مقدماتی نويسی برنامه مهارتی: پیمانه بيسيك ويژوال در ها آرايه انواع از استفاده توانايي کاریازدهم: واحد 11-1 تعريفانواعآرايهدرويژوالبيسيك Static (و يا) Array ايستا آرايه ثابت ابعاد با آرايه دارد: وجود آرايه نوع دو بيسيك ويژوال در ثابت ابعاد با ها آرايه تعريف نحوه به ابتدا.)Dynamic Array يا پويا )آرايه متغير ابعاد با آرايه پردازيم: مي (Static آرايهايستا( Array تعريف براي تاكنون كه روشهايي تمام از ميتوانيد ثابت ابعاد با آرايه تعريف براي دارد وجود آرايه و متغير تعريف بين كه تفاوتي تنها كنيد استفاده گرفتهايد كار به متغيرها Private Public كليدي كلمات بهوسيله ميتوانيد را آرايهها است. آرايه يك ابعاد تعيين كنيد. تعريف كد ماژول يا فرم ماژول تعاريف بخش يا رويه يك در Dim و Static كنيد: استفاده را زير روشهاي از يكي ميتوانيد ثابت ابعاد با آرايه يك تعريف براي ]Dim Public Private Static[ آرايه نام بااليي( )دامنه As داده نوع ]Dim Public Private Static[ آرايه نام پاييني( دامنه To بااليي دامنه ( As داده نوع در موجود كليدي كلمات از يكي ميتوانيد آن كاربرد و آرايه تعريف مكان به توجه با نكته كنيد. انتخاب را ] [ 289 شود: مي استفاده زير فرمان از عضو 15 تعداد با و Integer نوع از آرايه يك تعريف براي مثال Dim no (14) As Integer شود مي آغاز صفر شماره از ها آرايه انديس اولين فرض پيش طور به بيسيك ويژوال در نظر در 14 تا صفر از آرايه هاي انديس بااليي دامنه مقدار به توجه با قبل مثال در بنابراين بود. خواهد 15 اعضا تعداد نتيجه در و شوند مي گرفته زير: صورت به آرايه يك تعريف در و Public counters(20) As Double روش شد. خواهد دهي آدرس حافظه در Double نوع از و عضو 21 تعداد با اي آرايه براي مثال است پاييني و بااليي دامنه از استفاده ثابت ابعاد با آرايه يك تعريف در دوم عضو آخرين انديس و شود شروع يك از آن اول انديس كه عضو( 15 )با اي آرايه تعريف شود: مي استفاده زير فرمان از باشد 15 آن در Dim counters (1 To 15) As Double

300 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه و در تعريف آرايه sums كه به اين صورت انجام شده است: Private sums (100 To 120) As Variant آرايه sums داراي اولين عضو با شماره انديس 1 و آخرين عضو با شماره انديس 2 خواهد بود به عبارت ديگر 21 عضو خواهد داشت. براي آن كه با نحوه كار آرايه ها بهتر آشنا شويد به ذكر مثالي در اين رابطه مي پردازيم: مثال 1: رويهاي بنويسيد كه ده عدد را بهصورت تصادفي ايجاد كرده و در آرايهاي كند سپس آرايه را نمايش دهد. ذخيره به اين منظور يك رويه با نام myrandom به صورت زير بنويسيد: Sub myrandom( ) Dim i As Integer, sngno(9) As Single Randomize For i = 0 To 9 Next i sngno(i) = Rnd For i = 0 To 9 Next i Print, "number("; i + 1; ")="; sngno(i) End Sub در رويه myrandom ابتدا آرايه اي با دامنه بااليي ( 9 1 عضو( تعريف شده است سپس به وسيله يك حلقه For كه مقدار شمارنده آن )i( از صفر شروع مي شود اولين عضو آرايه يعني sngno)0( به وسيله تابع Rnd مقداردهي مي شود براي نمايش اعدادي كه در آرايه sngno ذخيره شده اند نيز از يك حلقه استفاده شده است. البته شما مي توانيد به جاي For از حلقه هاي ديگر نيز استفاده كنيد اما اين كار با استفاده از حلقه For آسان تر خواهد بود. در رويه myrandom تابعي به نام Rnd وجود دارد به وسيله اين تابع مي توان اعداد تصادفي بين صفر و يك را ايجاد كرد. اين تابع يك عدد از نوعSingle را برمي گرداند و يك آرگومان اختياري دارد كه مي تواند يك عدد از نوع Single يا يك عبارت عددي باشد. توجه داشته باشيد كه هربار تابع Rnd فراخواني مي شود يك عدد تصادفي توليد خواهد شد البته اگر برنامه مجددا اجرا و تابع فراخواني شود همان اعداد 290

301 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کاریازدهم: توانايي استفاده از انواع آرايه ها در ويژوال بيسيك به صورت تكراري به دست مي آيند براي جلوگيري از چنين حالتي و اين كه همواره اعداد توليد شده يكساني به دست نيايند مي توانيد قبل از تابع Rnd از تابعRandomize استفاده كنيد. تابعRandomize داراي يك آرگومان اختياري نيز بوده كه مي تواند يك عدد يا عبارت عددي باشد. تمرین: رويه مثال 1 را بهگونهاي تغيير دهيد تا بزرگترين عضو آرايه را بهدست آورده و همراه اعضاي آرايه نمايش دهد. سپس در يك پروژه آنرا فراخواني كنيد و نتيجه را مشاهده نماييد. مثال 2: رويهاي بنويسيد كه دو آرايه 5 عضوي يك بعدي از اعداد تصادفي را ايجاد كرده و حاصلضرب آنها را محاسبه نمايد و در آرايه ديگري ذخيره كند. Sub mymatrix( ) Dim i As Integer, no1(4) As Single Dim no2(4) As Single, no3(4) As Single Randomize For i = 0 To 4 no1(i) = Rnd no2(i) = Rnd Next i For i = 0 To 4 no3(i) = no1(i) * no2(i) Next i 291 End Sub در اين رويه از سه آرايه 5 عضوي استفاده شده است و به وسيله اولين حلقه For اعضاي دو آرايه no1 و no2 مقداردهي شده اند سپس با استفاده از حلقه For دوم حاصل ضرب اعضاي متناظر دو آرايه در عضو متناظر آرايه حاصل ضرب يعني no3 قرار مي گيرد. عالوه بر آرايه هاي عددي مي توانيد داده هاي رشته اي را نيز به صورت آرايه ذخيره كنيد. در واقع فرق زيادي بين آرايه هاي رشته اي و عددي وجود ندارد فقط در مورد آرايه هاي رشته اي طول هر عضو مي تواند ثابت يا متغير باشد.

302 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تمرین: پروژه اي طراحي كنيد كه با استفاده از يك آرايه هر عددي از مبناي 1 را به مبناي 2 تبديل كند. مثال 3: پروژه اي طراحي كنيد كه اسامي 1 نفر را دريافت كرده و در يك آرايه رشته اي ذخيره كند به عالوه بتوان اسامي ذخيره شده را روي يك فرم جداگانه مشاهده نمود. به اين منظور عمليات زير را به ترتيب انجام دهيد: - 1 برنامه ويژوال بيسيك را اجرا كرده و يك پروژه از نوع Standard EXE ايجاد كنيد سپس يك فرم مطابق شكل 11-1 و جدول 11-1 ايجاد كنيد و كنترل هاي آن را مطابق جدول 11-2 روي فرم قرار دهيد. در اين فرم از يك كنترل كادر متن براي دريافت داده ها و از دكمه Add براي ذخيره سازي اسامي در آرايه استفاده مي شود به عالوه با دكمه Show مي توان اسامي ذخيره شده در آرايه را در يك فرم ديگر مشاهده كرد. جدول 11-1 خصوصيات فرم مقدار خصوصيت Name Caption frmarry Array شكل 11-1 جدول 11-2 خصوصيات كنترل ها كنترل خصوصيت Command Button Command Button Command Button Text Box Label Name cmdadd cmdshow cmdexit txtname lblen Caption Add& Show& Exit& :Enter Name - 2 يك ماژول كد به پروژه اضافه كنيد و در بخش تعاريف آن آرايه اي را با نام strname با 1 عضو كه هر عضو آن نيز توانايي دريافت 2 كاراكتر را داشته باشد به صورت زير تعريف كنيد: Public strname(9) As string*

303 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاریازدهم: توانايي استفاده از انواع آرايهها در ويژوالبيسيك رويداد Click كنترل دكمه Add را به اين صورت تنظيم كنيد: Private Sub cmdadd_click( ) Static i As Integer If i < 10 Then Else End If End Sub strname(i) = txtname.text i = i + 1 MsgBox «Array is full» در اين رويداد از يك متغير i بهعنوان شمارنده انديس آرايه بهصورت Static استفاده شده است تا بهوسيله مقدار اين متغير بتوان در هر مرحله يك عضو در آرايه را با ناميكه كاربر در كنترل كادر متن مينويسد پر كرد. اگر اين متغير بهصورت محلي تعريف شود اسامي هموارهدر اولين عضو آرايه ذخيره ميشوند و در نتيجه نامي كه قبال در عضو اول آرايه ذخيره شده است از بين ميرود. در ادامه اجراي رويداد يك فرمان If مقدار i را كنترل ميكند تا مقدار i از دامنه بااليي آرايه )يعني 9( تجاوز نكند در صورتي كه مقدار i كنترل نشود در زمان رسيدن به مقدار 1, چون باالترين مقدار انديس آرايه 9 است پيام خطاي Subscript out of range نمايش داده ميشود. بنابراين اگر )10> i( باشد آنگاه محتويات خصوصيت Text كنترل كادرمتن در يكي از اعضاي آرايه ذخيره ميشود و سپس مقدار i يك واحد افزايش مييابد تا مرحله بعد, انديس عضو بعدي آرايه آماده باشد اما اگر كاربر 1 نام را وارد كند در هنگام ورود نام يازدهم با پياميكه بهوسيله يك تابع MsgBox نمايش داده ميشود از كامل شدن روند عمليات ورود داده مطلع ميشود زيرا در رويداد Click دكمه فرمان Add نتيجه بررسي شرط )10 < i( نادرست بوده و در نتيجه تابع MsgBox فراخواني ميشود. - 4 يك فرم جديد با نام frmdisplay و عنوان Display مطابق شكل 11-2 به پروژه اضافه كرده سپس يك دكمه با نام cmdback و عنوان Back& روي آن قرار دهيد. از اين فرم براي نمايش اسامي ذخيره شده در آرايه استفاده ميشود. 293

304 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 5 رويداد Click دكمه Show را در فرم frmarray به صورت زير تنظيم كنيد: Private Sub cmdshow_click( ) frmarray.hide frmdisplay.show End Sub شكل 11-2 در اين رويداد با استفاده از متد Hide فرم frmarray مخفی شده و با استفاده از متد Show فرم frmdisplay نمايش داده ميشود. - 6 رويداد دكمه cmdbackرا در فرم frmdisplay بهصورت زير تنظيم كنيد: Private Sub cmdback_click( ) End Sub unload frmdisplay frmarray.show در اين رويداد با استفاده از دستور unload فرم frmdisplay بسته شده و با متد Show امكان بازگشت به فرم اول فراهم ميشود. - 7 پس از تنظيم رويداد دكمه فرمان cmdback در فرم frmdisplay دستورات زير را در رويداد Activate همين فرم بهصورت زير تنظيم كنيد: Private Sub Form_Activate( ) Dim j End Sub For j = 0 To 9 Next j Print "NAME ( "; j ; " )= "; strname( j ) 294

305 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کاریازدهم: توانايي استفاده از انواع آرايه ها در ويژوال بيسيك دستورات در اين رويداد باعث خواهند شد تا پس از فعال شدن فرم محتويات آرايه به وسيله يك حلقه نمايش داده شود. - 8 پروژه و فرم frmarray را با نام Array و فرم frmdisplay را با نام Display ذخيره كنيد سپس برنامه را اجرا نماييد و تعداد 1 نام را وارد كرده و بعد از ورود هر نام دكمه Add را كليك كنيد و بعد از پايان ورود داده ها به وسيله دكمه Show محتويات آرايه را مشاهده نماييد در پايان با كليك روي دكمه Back به فرم اول بازگرديد. - 9 روي دكمه Exit كليك كنيد و به پنجره ويژوال بيسيك بازگرديد. تمرین: برنامه قبل را به گونه اي تغيير دهيد كه در صورت عدم استفاده از تمام اعضاي آرايه )خالي ماندن بعضي از اعضا( در هنگام نمايش اطالعات در فرم,cmddisplay فقط تا آخرين انديسي از آرايه كه حاوي نام است, نمايش داده شود مثال اگر كاربر 4 نام را وارد كرده است فقط همان 4 نام نمايش داده شوند و از نمايش عناصر بعدي آرايه يعني انديس هاي بزرگ تر از 3 خودداري شود. در اين جا الزم است كه به ذكر نكته مهمي در رابطه با شماره انديس اولين عضو در آرايه بپردازيم. تاكنون وقتي يك آرايه را با ذكر مقدار انديس بااليي آن تعريف مي كنيد شماره انديس اولين عضو در آرايه از صفر شروع مي شود اما گاهي الزم است كه اين مقدار را با توجه به نياز تغيير دهيد با استفاده از فرمان Option Base در بخش تعاريف مي توانيد مقدار انديس اولين عضو را در آرايه ها تعيين كنيد. شكل كلي فرمان به اين صورت است: Option Base n كه n مي تواند صفر يا يك باشد در صورت استفاده از مقدار صفر يا عدم استفاده از فرمان فوق انديس آغازين در آرايه هاي برنامه صفر خواهد بود و اگر بخواهيد انديس آغازين در آرايه هاي برنامه از يك شروع شود مقدار n را در فرمان مزبور 1 انتخاب كنيد. نكته از اين فرمان فقط يك بار و در بخش تعاريف يكي از ماژولها استفاده كنيد. براي تعيين دامنه پاييني آرايهها به جاي استفاده از فرمان Option Base بهتر است در تعريف آرايه ها دامنه پاييني و بااليي آرايه را تعيين كنيد. 295

306 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه بهعنوان مثال فرض كنيد ميخواهيم يك آرايه عددي با 1 عضو را بهوسيله اعداد تصادفي مقداردهي كنيم )اين مسأله قبال حل شده است اما از آن براي بررسي عملكرد دستورBase Option استفاده ميشود(. Sub myrandom( ) Dim i As Integer, sngno(10) As Single Randomize For i = 1 To 10 sngno( i ) = Rnd Next i End Sub اگر دستور Option Base 1 استفاده شود در رويه myrandom جديد و در تعريف آرايه sngnoبه جاي عدد 9 عدد 1 استفاده ميشود و مقدار پاياني در حلقه For نيز از 9 به 1 تغيير مييابد و مقدار شروع شمارنده نيز از صفر به 1 تبديل ميشود. توجه داشته باشيد كه در ذخيرهسازي مقادير هر دو حالت مشابه هم عمل ميشود فقط در نحوه تعريف آرايهها و استفاده از حلقه بايد دقت كافي داشته باشيد. تمرين: پروژهاي طراحي كنيد كه ده نمره درسهاي يك دانشآموز را در يك آرايه ذخيره كند سپس مجموع و معدل نمرات وي را محاسبه كرده و نمايش دهد )انديس آرايه از عدد 1 شروع شود( آرايه پويا Array( )Dynamic 296 گاهي اوقات ممكن است تعداد دادهها نامشخص باشد در نتيجه نميتوان تعداد اعضا آرايه را در زمان طراحي برنامه تعيين كرد بنابراين الزم است ابعاد آرايه در زمان اجرا تنظيم شود. به اين منظور ويژوالبيسيك نوع ديگري از آرايهها را با نام آرايه پويا در اختيار شما قرار ميدهد. ابعاد آرايهاي از اين نوع را ميتوانيد در زمان اجراي برنامه با توجه به نيازتان مكررا تغيير دهيد.

307 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کاریازدهم: توانايي استفاده از انواع آرايه ها در ويژوال بيسيك براي تعريف يك آرايه ديناميك بهتر است مانند آرايه هاي ثابت عمل كرده اما از ذكر ابعاد آرايه خودداري كنيد. به عنوان مثال به دستور زير توجه كنيد: Dim dynnumber ( ) AS Integer اما در صورت استفاده از آرايه در اين مرحله پيام خطا نمايش داده خواهد شد. براي قابل استفاده شدن آرايههاي پويا پس از تعريف آن بايد ابعاد آن را با استفاده از دستور ReDim تعيين كنيد. بهعنوان مثال پس از تعريف آرايه dynnumber از نوع Integer ابعاد آن به صورت زير تعيين ميشود: ReDim dynumber (10) اگر Option Base باشد آرايه داراي يازده عضو و اگر 1 Option Base باشد آرايه داراي 1 عضو )از 1 تا ) 1 خواهد بود. نكته در صورت استفاده از دستور ReDim مقادير موجود در تمام اعضاي آرايه از بين خواهد رفت بنابراين در استفاده مجدد از دستور ReDim با دقت كافي اقدام كنيد. در صورتي كه بخواهيد مقادير موجود در آرايه در زمان تغيير ابعاد آن حفظ شوند از كلمه كليدي Preserve همراه با دستور ReDim استفاده كنيد. آرايههاي پويا را نيز ميتوانيد بهصورت Private Public يا Static تعريف كنيد. به عنوان مثال به دستورات زير توجه كنيد: )با فرض اين كه Option Base 1 است(. Dim myarray( ) As Integer, i As Integer ReDim myarray(5) Next i ReDim myarray(10) For i = 1 To 10 Next i Print myarray(i) با استفاده از تعريف آرايه پويا آرايه myarray با 5 عضو تعريف شده است سپس به وسيله يك حلقه For مقادير 1 تا 5 در آرايه قرار گرفته اند. پس از حلقه For اول مجددا دستور ReDim به كار گرفته شده است تا تعداد اعضاي آرايه دو برابر شود پس از تغيير 297

308 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيك مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه ابعاد آرايه حلقه For دوم مقادير موجود در آرايه را نمايش مي دهد اما استفاده دوباره از دستور ReDim تمام مقادير قبلي در آرايه را از بين مي برد در نتيجه فقط مقادير صفر توسط حلقه نمايش داده مي شود. حال اگر به جاي دستور (10) myarray ReDim ازدستور) 10 ) ReDim Preserve myarray استفاده كنيد حلقه For دوم پس از نمايش مقادير 1 تا 5 براي اعضاي قبلي, مقدار صفر را هم براي 5 عضو جديد كه اضافه شده اند نمايش مي دهد. تمرین: يك پروژه جديد طراحي كنيد و دستورات فوق را در رويداد Click يك دكمه فرمان قرار داده و نتيجه را در دو حالت بحث شده بررسي كنيد. نكته در صورت كاهش ابعاد يك آرايه بهوسيله دستور ReDim مقادير مربوط به اعضاي حذف شده از بين ميروند. بهوسيله دستور ReDim نيز ميتوانيد يك آرايه پويا Dynamic تعريف كنيد شكل كلي اين دستور براي تعريف يك آرايه پويا بهصورت زير است: نوع داده As (دامنه بالایي) نام آرایه ReDim مثال دستور زير يك آرايه با 2 عضو و از نوع رشتهاي تعريف ميكند. ReDim fam (19) As String در صورت استفاده از دستور ReDim براي تغيير ابعاد يك آرايه ثابت در هنگام اجراي برنامه پيام خطاي Array already dimensioned نمايش داده ميشود. تمرین: مي خواهيم پروژه اي كه در مثال 3 طراحي شده است به گونه اي تغيير كند تا تعداد اسامي با توجه به نياز و درخواست كاربر دريافت و در آرايه ذخيره شود. به اين منظور پروژه Array را باز كنيد و عمليات زير را به ترتيب انجام دهيد: 298

309 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاریازدهم: توانايي استفاده از انواع آرايهها در ويژوالبيسيك دستور Erase از اين دستور براي حذف اعضا در آرايههاي پويا و از بين بردن محتويات اعضا در آرايههاي ثابت استفاده ميشود. شكل كلي دستور Erase بهصورت زير است: نام آرايه Erase اگر اين دستور روي يك آرايه پويا اجرا شود تمام مقادير آن از بين خواهد رفت و شما ميتوانيد مجددا با استفاده از دستور ReDim از آرايه استفاده كنيد اگر پس از حذف اعضاي يك آرايه پويا بدون استفاده از دستور ReDim سعي در دستيابي به اعضاي آن داشته باشيد پيام خطاي Subscript out of range نمايش داده ميشود. اگر اين دستور روي يك آرايه ثابت اجرا شود مقادير موجود در آرايه حذف خواهند شد اما فضاهاي مربوط به اعضاي آرايه در حافظه از بين نخواهند رفت. به عنوان مثال به دستورات زير توجه كنيد )با فرض اين كه Option Base 1 است(: Dim myarray1( ) As Integer, myarray2(5) As Integer Dim i As Integer ReDim myarray1(5) For i = 1 To 5 myarray1 (i) = i myarray2 (i) = i Next i Erase myarray1, myarray2 ReDim myarray1(5) For i = 1 To 10 Print myarray1(i) Print myarray2(i) Next i در اين مجموعه دستورات از يك آرايه پويا )myarray1( و يك آرايهاي با ابعاد ثابت )myarray2( استفاده شده است. در اولين حلقه For آرايههاي myarray1 و myarray2 به ترتيب مقداردهي شدهاند سپس بهوسيله دستور Erase آرايه myarray1 از حافظه كامال پاك شده اما آرايه myarray2 فقط مقادير خود را از دست ميدهد و در نتيجه حلقه For دوم فقط مقادير صفر را براي هر دو آرايه نمايش ميدهد. البته اگر دستور) 5) mayrray1 ReDim پس از حذف آرايه مزبور استفاده نشود آرايه در حلقه For قابل شناسايي نبوده و پيام خطاي Subscript out of range نمايش داده ميشود. 299

310 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: تمرين: باشد: داشته را زير شرايط كه كنيد تنظيم بهگونهاي را Array پروژه باشد. داشته وجود آرايه پرشدن از پس اسامي افزايش امكان الف- نمود. ذخيره آن در جديد اسامي و كرده حذف را آرايه اعضاي بتوان لزوم صورت در ب- بعدي چند آرايههاي 11-2 در اما شديد آشنا بعدي يك آرايههاي از استفاده چگونگي و تعريف نحوه با تاكنون و نيستند گرهگشا نيز بعدي يك آرايههاي اوقات گاهي واقعي پروژههاي برنامهنويسي ميكنند. روبهرو متعددي مشكالت با را برنامهنويسي انديس ميكنند. استفاده خود اعضاي شناسايي براي انديس دو از بعدي دو آرايههاي براي ميكنند. مشخص را آرايه با متناظر ستون شماره دوم انديس و سطر شماره اول است ستون 3 و سطر 4 داراي آرايه اين كنيد, توجه زير آرايه به موضوع بهتر شدن روشن 11-3 جدول ستون شماره 0 سطر شماره a 0, 0 a 0, 1 a 0,2 1 a 1, 0 a 1, 1 a 1, 2 2 a 2, 0 a 2, 1 a 2, 2 3 a 3, 0 a 3, 1 a 3, 2 استفاده انديس دو از آرايه عناصر از يك هر به دسترسي براي آرايهها از نوع در دارد. قرار 1 شماره ستون و 2 شماره سطر در كه است عضوي, a2,1 عنصر مثال ميشود ببريد: كار به را روشها اين از يكي ميتوانيد بعدي دو آرايه تعريف براي ]Dim Public Private Static[ آرايه نام سطرها( باالیی دامنه ستونها بااليی )دامنه 300

311 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کاریازدهم: توانايي استفاده از انواع آرايه ها در ويژوال بيسيك نوع داده As )دامنه بااليی ستون ها دامنه بااليی سطرها( نام آرايه Static[ ]Dim Public Private نوع دادهAs )دامنهبااليی ستون ها To دامنهپايينی ستون ها دامنهبااليی سطرها Toدامنهپايينی سطرها(نام آرايه Static[ Dim Public Private نكته با توجه به مكان تعريف و كاربرد آرايه ميتوانيد يكي از كلمات كليدي موجود در [ ] را انتخاب كنيد. به عنوان مثال فرض كنيد مي خواهيد نمرات سه درس دانش آموزان يك كالس 5 نفره را به صورت يك آرايه دو بعدي بنويسيد. شيمي 2 فيزيك 1 رياضي شماره ستون شماره سطر دانشآموز اول دانشآموز دوم دانشآموز سوم دانشآموز چهارم دانش آموز پنجم 11 اكنون مي خواهيم اين آرايه دو بعدي را تعريف كنيم بنابراين مي توان يكي از موارد زير را براي انجام اين كار استفاده كرد: Dim sng student (4,2) As Single Dim sng student (0 To 4, 0 To 2) As Single نكته صادق است. توجه داشته باشيد كه قوانين دستور Option Base براي آرايه هاي دو بعدي نيز مثال 4: رويه اي بنويسيد كه آرايه دو بعدي 4 4 را با اعداد تصادفي مقداردهي كرده سپس اعضاي آن را نمايش دهد )با فرض.)Option Base 0 301

312 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه Sub mymatrix( ) Dim A(4, 4) As Integer, i As Integer, j As Integer Randomize For i = 0 To 3 Next i For j = 0 To 3 Next j For i = 0 To 3 A(i, j) = Int(100 * Rnd + 1) For j = 0 To 3 Next j Print Next i Print " "; "A("; i; ","; j; ")="; A(i, j) End Sub رويه فرعي فوق در صورت اجرا خروجي مشابه شكل زير را خواهد داشت: A(0,0)=0 A(0,1)=20 A(0,2)=17 A(0,3)=9 A(1,0)=2 A(1,1)= 0 A(1,2)=52 A(1,3)=53 A(2,0)=69 A(2,1)=44 A(2,2)=0 A(2,3)=31 A(3,0)=28 A(3,1)=87 A(3,2)=3 A(3,3)=0 در اين رويه ابتدا آرايه دو بعدي A را تعريف كردهايم سپس با استفاده از دو حلقه تو در تو و تابع Rnd عناصر آرايه مقداردهي شدهاند. حلقه For اول بهوسيله شمارنده i شماره سطر و حلقه دوم به وسيله شمارنده j شماره ستون را در آرايه كنترل ميكنند بنابراين با هر بار اجراي حلقه اول حلقه دوم سه بار تكرار ميشود تا اعضاي هر سطر را جهت مقداردهي به ترتيب آماده كند. به عنوان مثال زماني كه مقدار i برابر با صفر است حلقه دوم مقادير j را به ترتيب روي مقادير 1 2 و 3 تنظيم ميكند. با خاتمه اجراي حلقه دوم حلقه اول مقدار i را يك واحد افزايش ميدهد و حلقه دوم مجددا از j = شروع شده و اعضاي سطر دوم نيز به ترتيب مورد دسترسي قرار ميگيرند. در پايان پس از مقداردهي آرايه با استفاده از دو حلقه For تودرتو اعضاي آرايه نمايش داده ميشوند 302

313 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاریازدهم: توانايي استفاده از انواع آرايهها در ويژوالبيسيك تمرين: پروژهاي طراحي كنيد كه بتواند نام, نام خانوادگي و نمره سه درس پنج دانشآموز را در آرايه ذخيره كند و در ضمن بتوان هر لحظه اطالعات دانشآموزان را مشاهده كرد توابع UBound و LBound از اين توابع براي دستيابي به دامنه پاييني و بااليي يك آرايه استفاده ميشود. تابع LBound ميتواند با دريافت نام يك آرايه دامنه پاييني آن را بهصورت يك عدد از نوع Long بازگرداند. به عبارت ديگر بهوسيله اين تابع ميتوانيد شماره اولين انديس را در آرايه به دست آوريد. شكل كلي اين تابع به اين صورت است: LBound (arrayname,dimension) تابع LBound يك آرگومان اجباري و يك آرگومان اختياري دارد, آرگومان arrayname در واقع نام آرايهاي است كه ميخواهيد انديس آغازين آن را به دست آوريد. آرگومان دوم )dimension( در آرايههاي دو و چند بعدي استفاده ميشود و بعدي از آرايه كه ميخواهيد انديس آغازين آن را پيدا كنيد بهصورت يك عدد صحيح تعيين ميشود. مقدار 1 براي بعد اول )سطر(, 2 براي بعد دوم )ستون( و الي آخر. در صورت عدم استفاده از اين آرگومان, مقدار پيشفرض 1 خواهد بود. بهعنوان مثال به اين دستورات توجه كنيد: Dim A( 1 To 100, 10 To 13 ) As Integer Dim B(10) As Integer Print LBound( A, 1) Print LBound( A, 2) Print LBound( B) در دستورات قبل يك آرايه دو بعدي )A( و يك آرايه يك بعدي )B( تعريف شدهاند. نتيجه اجراي اولين و دومين دستور Print به ترتيب 1 و 1 خواهد بود و در صورت اجراي دستور آخر با توجه به عدم استفاده از آرگومان اختياري و يك بعدي بودن آرايه مقدار صفر نمايش داده ميشود. توجه داشته باشيد كه فرض بر اينباشد كه : Option Base است. 303

314 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تابع UBound ميتواند با دريافت نام يك آرايه دامنه بااليي آن را بهصورت يك عدد از نوع Long بازگرداند به عبارت بهتر عددي را كه در تعريف آرايه بهعنوان دامنه بااليي آرايه تعريف كردهايم در اختيار شما قرار ميدهد. شكل كلي اين تابع بهصورت زير است: UBound (arrayname,dimension) اين تابع نيز يك آرگومان اجباري و يك آرگومان اختياري دارد و عملكردي را مشابه آنچه در تابع LBound دارند به عهده ميگيرند. بهعنوان مثال به دستورات زير توجه كنيد: Dim A( 1 To 100, 10 To 13 ) As Integer Dim B( 10 ) As Integer Print UBound( A, 1) Print UBound( A, 2) Print UBound( B ) اولين و دومين دستور Print به ترتيب مقادير 1 و 13 را نمايش ميدهند و دستور آخر نيز مقدار 1 را نمايش خواهد داد. البته بايد توجه داشت كه دستور Option Base تأثيري روي تابع UBound نميگذارد. بهعنوان مثال به اين دستورات توجه كنيد: Dim A(5) As Integer For i = LBound(A) To UBound(A) Next i Print i در دستورات قبل اگر Option Base 0 باشد حلقه For از مقدار صفر تا 5 را نمايش ميدهد و در واقع آرايه 6 عضو خواهد داشت ولي اگر Option Base 1 باشد حلقه For از مقدار 1 تا 5 را نمايش ميدهد و در نتيجه آرايه 5 عضو خواهد داشت پس همانطور كه ديديد دستور Option Base روي تابع UBound تأثير نميگذارد تابع Split بهوسيله اين تابع ميتوان محتويات يك متغير رشتهاي را بهصورت زير رشتههاي جداگانهاي در يك آرايه يك بعدي ذخيره كرد. مقدار بازگشتي اين تابع يك آرايه يك بعدي است. شكل كلي اين تابع بهصورت زير است 304

315 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کاریازدهم: توانايي استفاده از انواع آرايه ها در ويژوال بيسيك Split (expression, delimiter, limit, compare) اين تابع داراي يك آرگومان اجباري است. expression مي تواند يك عبارت رشته اي باشد. آرگومان delimiter يك آرگومان اختياري است و به طور پيش فرض يك كاراكتر فاصله " " است. در واقع اين آرگومان كاراكتري را كه براي جدا كردن زير رشته ها در آرگومان expression مورد استفاده قرار مي گيرد معين مي كند. آرگومان limit دومين آرگومان اختياري است و تعداد زير رشته هاي مورد نظر را كه بايد بازگشت داده شوند تعيين مي كند در صورت عدم استفاده از اين آرگومان مقدار آن 1- خواهد بود كه به معني بازگشت دادن تمام زير رشته هاست. آرگومان compare نيز اختياري بوده و تعيين مي كند كه آيا تابع بين حروف بزرگ و كوچك آرگومان delimiter با كاراكترهاي expression تفاوت قائل شود يا خير. مقاديري كه اين آرگومان مي تواند دريافت كند در جدول 11-4 ارايه شده اند. جدول 11-4 مقادير مربوط به آرگومان Compare ثابت عددي توضيح تابع بين حروف كوچك و بزرگ تفاوت قائل ميشود. ثابت رشته اي vbbinarycompare vbtextcompare تابع بين حروف كوچك و بزرگ تفاوت قائل نمي شود. 1 نكته مقدار پيش فرض براي آرگومان compare صفر است. براي روشن شدن بهتر مطلب به رويه رويداد زير توجه كنيد: Private Sub cmdsplit_click () Dim strname As String, strresult() As String Dim i As Integer strname = "microsoft visual basic 6" strresult = Split(strname) (For i = 0 To UBound(strresult Print strresult(i) 305

316 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: Next i End Sub,strname رشته در موجود ««خالي فضاهاي براساس Split دستور فوق دستورات در ذخيره strresult آرايه در جداگانه بهصورت را strname رشتهاي متغير در موجود كلمات ميشود. داده نمايش 11-3 شكل مطابق For حلقه يك بهوسيله كه ميكند 11-3 شكل دهيد: تغيير زير بهصورت را Split تابع كنيد فرض اكنون strresult = Split ( strname, "A" ) A كاراكتر ميشود استفاده زيررشتهها كردن جدا براي كه كاراكتري صورت اين در توجه بدون strname رشته ميكنيد مشاهده 11-4 شكل در كه همانطور اما بود. خواهد استفاده compare آرگومان از دستور اين در چون ميماند باقي تغيير بدون A كاراكتر به با دوم آرگومان در A كاراكتر بين تابع نتيجه در است صفر فرض پيش مقدار است نشده است. شده قائل تفاوت strname رشته در a كاراكتر 11-4 شكل خروجي دهيد تغيير strresult = Split بهصورت) strname,»a»,,1 ) را قبل دستور اگر حال با دوم آرگومان در A كاراكتر بين تابع يعني بود خواهد 11-5 شكل بهصورت برنامه ميشود. تقسيم رشته زير سه به strname و نميشود قائل تفاوتي strname رشته در a كاراكتر 306

317 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کاریازدهم: توانايي استفاده از انواع آرايه ها در ويژوال بيسيك در صورتي كه بخواهيد تعداد معيني از زيررشته ها را جدا كنيد مي توانيد از آرگومان سوم در تابع Split استفاده كنيد. مثال اگر مثال قبل را به اين صورت تغيير دهيد: خروجي برنامه مطابق شكل 11-6 خواهد بود. strresult = Split (strname,"ic",2,1) شكل 11-5 شكل 11-6 نكته در صورتي كه آرگومان limit در تابع,Split 1 باشد تمام رشته expression بهصورت يك زير رشته بازگشت داده خواهد شد. تمرین: پروژهاي طراحي كنيد كه يك رشته و كاراكتر دلخواه را دريافت كند و رشته را براساس كاراكتر موردنظر به چند زيررشته تقسيم كرده و نمايش دهد تابع Join 307 عملكرد اين تابع برعكس تابع Split است. به وسيله اين تابع مي توانيد اعضاي يك آرايه رشته اي را به صورت يك مقدار رشته اي واحد درآوريد. شكل كلي اين تابع به صورت زير است: Join (sourcearray, delimiter) اين تابع داراي يك آرگومان اجباري و يك آرگومان اختياري است. آرگومان sourcearray نام آرايه رشته اي مورد نظر است كه مي خواهيد مقادير موجود در آن را به صورت يكپارچه در يك متغير رشته اي ذخيره كنيد.

318 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آرگومان delimiter يك آرگومان اختياري است كه كاراكتر جداكننده را بين كلمات در رشتهاي كه تابع بازگشت ميدهد تعيين ميكند. در صورت عدم استفاده از اين آرگومان كاراكتر فضاي خالي مورد استفاده قرار ميگيرد. بهعنوان مثال به دستورات زير توجه كنيد: Private Sub cmdjoin_click() Dim strname(3) As String, strresult As String strname(0) = "microsoft" strname(1) = "visual" strname(2) = "basic" strname(3) = "6" strresult = Join(strname) Print Print, strresult End Sub در صورت اجراي دستورات فوق خروجي مشابه شكل 11-7 به دست ميآيد همانطور كه ميبينيد مقادير موجود در آرايه strname بهوسيله تابع Join در متغير strresult بهصورت يك رشته واحد ذخيره شدهاند و از كاراكتر فاصله خالي براي ايجاد فاصله بين مقادير آرايه استفاده شده است. اكنون تابع Join را در مثال قبل بهصورت زير تغيير دهيد: strresult = Join ( strname, " # " ) در اين صورت خروجي دستورات بهصورت شكل 11-8 خواهد بود. شكل 11-8 شكل

319 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيك( واحد کاریازدهم: توانايي استفاده از انواع آرايه ها در ويژوال بيسيك تمرین: پروژهاي طراحي كنيد كه تعدادي كلمه را بهصورت جداگانه دريافت كند سپس با استفاده از تابع Join آنها را به يك رشته واحد تبديل نموده و نمايش دهد نحوهارسالآرايههابهرويهها تاكنون با نحوه تعريف آرايه و چگونگي استفاده از آنها آشنا شدهايد اما گاهي اوقات الزم است تا آرايهها را به يك رويه فرعي يا تابع ارسال كنيد. در اينجا با ذكر يك مثال با چگونگي انجام اين كار آشنا ميشويد. مثال 5: مي خواهيم تابعي بنويسيم كه با دريافت يك آرايه عددي از نوع Integer با 1 عضو كوچك ترين عضو را پيدا كرده و بازگرداند. ابتدا به تعريف تابع مي پردازيم در اينجا الزم است آرگومان ورودي به صورت آرايه استفاده شود بنابراين در هنگام تعريف آرگومان از دو پرانتز ( ) استفاده مي شود. Public Function minelement(myarray( ) As Integer) As Integer Dim i As Integer, min As Integer min = myarray(0) For i = 1 To 9 Next i If min > myarray(i) Then min = myarray(i) minelement = min End Function همان طور كه در تعريف تابع مي بينيد براي تعريف يك آرگومان از نوع آرايه فقط كافي است دو پرانتز در ابتداي نام آرايه ذكر كنيد. براي فراخواني اين تابع نيز مي توانيد از دستور زير استفاده كنيد: Print minelement (myarray ( ) ) 309 نكته آرايهها بهطور پيش فرض بهصورت ارسال با مرجع Reference( )Call By به رويه ارسال مي شوند.

320 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه 11-7 روشهاي مرتبسازي آرايهها در برنامهنويسي واقعي معموال الزم است تا اطالعات دريافت شده يا نتيجه محاسبات را بهصورت مرتب شده در اختيار كاربران قرار دهيد. به اين منظور ميتوان از آرايهها استفاده كرد. تاكنون روشهاي متعددي براي مرتب كردن دادههاي موجود در يك آرايه طراحي و معرفي شدهاند كه هر يك نقاط ضعف و قدرتي نيز دارند. از انواع روشهاي معروف در مرتبسازي اطالعات ميتوان به روش مرتبسازي حبابي Sort( )Bubble روش مرتبسازي Shell Sort روش مرتبسازي سريع Sort( )Quick روش مرتبسازي انتخابي Sort( )Selection و مرتبسازي به روش درج Sort( )Insertion اشاره كرد. بعضي از روشهاي نامبرده داراي الگوريتم پيچيدهاي هستند كه از حوصله اين كتاب خارج است بنابراين دو روش مرتبسازي حبابي و مرتبسازي انتخابي Sort( )Selection ارائه ميشود روش مرتبسازي حبابي Sort( )Bubble اين روش سادهترين روش مرتبسازي است و هر عضو از آرايه با اعضاي بعدي آرايه مقايسه ميشود و در صورت نياز, عمل تعويض صورت ميگيرد. در اين روش چون هر عضو با ساير اعضاي بعد از آن مقايسه ميشود در آرايههاي بزرگ زمان زيادي براي مرتب شدن دادهها مصرف ميشود بنابراين توصيه ميشود در صورت كوچك بودن ابعاد يك آرايه از اين روش استفاده كنيد. در زير دستوراتي را ميبينيد كه ميتواند يك آرايه عددي از نوع صحيح با 1 عضو را كه قبال پر شده است به روش حبابي و بهصورت صعودي مرتب كند )با فرض اينكه Option Base 1 است(. Private Sub cmdsort_click() Dim i As Integer Dim j As Integer Dim temp As Integer For i = 1 To 9 For j = 1 To 9 If myarray(j) > myarray(j + 1) Then 310

321 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در آرايهها انواع از استفاده توانايي کاریازدهم: واحد temp = myarray(j) Next i End If Next j myarray(j) = myarray( j + 1) myarray(j + 1) = temp End Sub تعداد )n ميشوند تكرار بار n 1- كه حلقه دو با مرتبسازي عمل رويداد اين در هر مقدار دوم حلقه داخل در If يك بهوسيله واقع در ميشود. انجام است( آرايه اعضاي j آن انديس كه عضوي بودن بزرگتر صورت در و ميشود مقايسه بعدي عضو با عضو روند ادامه با ميشود. تعويض است 1+j آن انديس كه عضوي مقدار با آن مقدار است عمليات انجام روند ميتوانيد شود مرتب آرايه تا ميشود تكرار آنقدر كار اين عمليات و شدن مرتب از قبل را آرايه در موجود مقادير ابتدا در كنيد: مشاهده 11-9 شكل در را را آرايه اعضاي نيز مياني بخش در ميبينيد شده مرتب بهصورت را آرايه همان انتها در مكان تغيير روند به اگر ميكنيد. مشاهده i( شمارنده با )حلقه اول حلقه اجراي بار هر در كرد. خواهيد درك كامال را مرتبسازي نحوه كنيد توجه اعداد شكل

322 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه تمرين: پروژهاي طراحي كنيد كه ده عدد را از كاربر دريافت كند و پس از ذخيرهسازي در يك آرايه آرايه را بهصورت نزولي مرتب كرده و نمايش دهد روش مرتبسازي انتخابي در اين روش ابتدا كوچكترين عضو آرايه تعيين و با عضو اول آرايه جابهجا ميشود. در مرحله بعد كوچكترين عضو آرايه در بين عضو دوم تا آخرين عضو آرايه پيدا شده و با عضو دوم آرايه جابهجا ميشود و به همين ترتيب الي آخر تا آرايه مرتب شود. Private Sub cmdsort_click() Dim length As Integer Dim index As Integer Dim min As Long length = UBound(myarray) For i = 1 To length min = myarray(i) index = i For j = i + 1 To length If min > myarray(j) Then min = myarray(j) index = j End If Next j If index < > i Then temp = myarray(i) myarray(i) = myarray(index) myarray(index) = temp End If Next i End Sub

323 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاریازدهم: توانايي استفاده از انواع آرايهها در ويژوالبيسيك در اين رويداد با استفاده از دو حلقه For تودرتو عمليات مرتبسازي انجام ميشود در ابتدا نخستين حلقه For اولين عضو آرايه را به عنوان كوچكترين مقدار در متغير min ذخيره ميكند. سپس حلقه For دوم اين مقدار را با ساير اعضا يعني اعضاي دوم تا آخرين عضو مقايسه ميكند اگر مقدار عضوي از مقدار min كمتر باشد مقدار كوچكتر را در متغير min و انديس آنرا در متغير index ذخيره ميكند و پس از خاتمه اجراي اين حلقه اگر مقدار كوچكتري پيدا شده باشد )i )index < > آنگاه با استفاده از يك دستور If جاي عضو اول با عضوي كوچكتر كه انديس آن در متغير index ذخيره شده است عوض ميشود. در اين مرحله با رسيدن Next i اجراي دستورات به ابتداي حلقه اول منتقل ميشود. در اين مرحلههمانعملياتبرايعضودومآرايهاجراخواهدشدوبههمينشكلآرايهمرتبميشود )شكل 11-10(. شكل روشهاي جستجوي دادهها در آرايهها گاهي اوقات الزم است تا دادهاي را ميان مجموعهاي از اطالعات موجود جستجو 313

324 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه كرده و مورد دستيابي قرار دهيم. يكي از داليل استفاده از آرايهها جستجوي سريعتر و راحتتر دادهها در ميان انبوهي از اطالعات است. جستجوي داده در يك آرايه مانند مرتبسازي از روشهاي مختلفي امكانپذير است كه از مهمترين آنها ميتوان روش جستجوي خطي و روش جستجوي دودويي را نام برد روش جستجوي خطي Search( )Linear اين روش يكي از سادهترين روشهاي جستجو است در اين روش براي پيدا كردن يك مقدار مقدار مربوطه را يك به يك با اعضاي آرايه مورد مقايسه قرار داده و در صورت پيدا شدن اطالعات مورد نظر جستجو خاتمه مييابد و اگر مقدار مورد نظر در هيچ يك از اعضاي آرايه پيدا نشود در آن صورت نتيجه جستجو منفي خواهد بود و مقدار مربوطه در آرايه وجود نخواهد داشت. بهعنوان مثال فرض كنيد ميخواهيم يك عدد را در آرايهاي با 2 عضو جستجو كنيم. تابع mysearch ميتواند با دريافت يك عدد و آرايه مربوطه عدد مربوط را در آرايه جستجو كند و در صورت وجود عدد در آرايه مقدار Yes و در غير اين صورت مقدار No را برگرداند. Function mysearch(myarray() As Integer,mynumber As Integer) _ As Boolean Dim i As Integer For i = 0 To 19 If mynumber = myarray(i) Then mysearch = True Next i End If Exit Function mysearch = False End Function در اين دستورات با استفاده از حلقه For و يك دستور If تكتك اعضاي آرايه با مقدار متغير mynumber مقايسه ميشوند و در صورت پيدا شدن مقدار مشابه مقدار درست )True( برگشت داده ميشود و پس از آن بهوسيله Exit Function خروج از تابع اتفاق ميافتد. 314

325 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه ويژوالبيسيك در آرايهها انواع از استفاده توانايي کاریازدهم: واحد با نشود پيدا mynumber با برابر مقداري و شوند بررسي آرايه اعضاي تمام اگر اما ميكند. مشخص را مسأله اين )False( نادرست مقدار دادن بازگشت وضع 2 با رشتهاي آرايه يك در را نام يك ميخواهيم كنيد فرض ديگر مثالي بهعنوان ميآيد: در صورت اين به mysearch تابع اينصورت در دهيم قرار جستجو مورد Function mysearch(myarray( ) As String, myname As String) As Boolean Dim i As Integer For i = 0 To 19 If StrComp(myarray(i), myname, 1) Then mysearch = True Exit Function End If mysearch = False Next i End Function نام كردن پيدا براي فقط و است قبل تابع مانند عمليات انجام نحوه نيز فوق تابع در ميشود. استفاده StrComp تابع از آرايه در )myname( نظر مورد تمرين: قرار آرايه در شدهاند توليد تصادفي بهصورت كه را عدد ده كه كنيد طراحي پروژهاي با و كند وارد متن كادر كنترل يك در را دلخواهي عدد كاربر سپس دهد نشان كاربر به و دهد بپردازد. موردنظر عدد جستجوي به خطي جستجوي روش به Search فرمان دكمه روي كليك 315 )Binary Search( دودويي جستجوي روش روش است وقتگير و كند بسيار بزرگ آرايههاي در خطي جستجوي روش زيادي مقدار به را مقايسهها تعداد ساده راهحل اين از استفاده با دويي دو جستجوي ميدهد. كاهش جستجو مورد مقدار با آرايه مياني عضو سپس كرده مرتب را آرايه ابتدا روش اين در در جستجو باشد مياني عضو از كوچكتر جستجو مورد مقدار اگر ميشوند مقايسه

326 316 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه قسمت پاييني عضو مياني صورت ميگيردو اگر مقدار مورد جستجو بزرگتر از عضو مياني باشد جستجو در قسمت بااليي عضو مياني انجام ميگيرد سپس همين اعمال براي نيمه پاييني و يا بااليي در آرايه انجام ميشود و بدين صورت تا زمان پيدا شدن مقدار مورد نظر يا با نصف شدن تعداد اعضاي باقيمانده عمليات ادامه مييابد. بنابراين ميتوانيد تابع Binary Search را به اين صورت بنويسيد: Public Function mysearch(myarray() As Integer,mynum As Integer) As Boolean Dim i As Integer, intlow As Integer Dim inthigh As Integer, intmid As Integer intlow = LBound(myarray) inthigh = UBound(myarray) Do While (inthigh >= intlow) intmid = Int((intlow + inthigh) / 2) If mynum = myarray(intmid) Then mysearch = True Exit Function ElseIf myarray(intmid) < mynum Then Else intlow = intmid + 1 inthigh = intmid - 1 End If Loop mysearch = False End Function اين تابع با دريافت يك آرايه و عدد موردنظر براي جستجو تعريف ميشود پس از تعريف متغيرهاي مورد نظر مقدار انديس بااليي و پاييني در آرايه را بهوسيله توابع Do while قرار ميدهد. سپس يك حلقه intlow و inthigh در متغيرهاي LBound UBound عمليات جستجو را انجام ميدهد. ابتدا مقدار انديس مياني در آرايه محاسبه ميشود براي اين كار انديس پاييني با بااليي جمع شده و مقدار صحيح تقسيم آنها بر عدد 2 توسط تابع Int به دست ميآيد.

327 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاریازدهم: توانايي استفاده از انواع آرايهها در ويژوالبيسيك فرض كنيد كه آرايه داراي 2 عضو است و انديس پاييني 1 است. با اين شرايط مقدار intmid برابر با 5 خواهد بود. پس از محاسبه مقدار انديس عضو مياني بهوسيله فرمان if تساوي عضو مياني )5) myarray با عدد مورد جستجو mynum بررسي ميشود در صورت مساوي بودن آنها با يكديگر مقدار True بازگشت داده خواهد شد و بهوسيله فرمان Exit Function اجراي برنامه به محل فراخواني منتقل ميشود اما اگر تساوي برقرار نباشد شرط موجود در ElseIf بررسي ميشود. اگر در اين مرحله مقدار عضو )5) myarray كوچكتر از مقدار mynum باشد چون آرايه مرتب است بنابراين مقدار انديس پاييني بهوسيله فرمان 1+ intmid intlow = به مقدار بعد از انديس عضو مياني )يعني 6( تغيير پيدا خواهد كرد و حلقه در اجراي دوباره دستورات عناصر موجود در بين انديس 6 و 1 را مورد جستجو قرار ميدهد اما اگر شرط موجود در ElseIf غلط باشد بنابراين عنصر مورد جستجو در نيمه پاييني آرايه قرار دارد و با استفاده از بخشElse مقدار انديس بااليي يكيكمتر از انديس مياني )يعني 4( خواهد شد و در اجراي دوباره حلقه عناصر موجود در بين انديس 1 و 4 مورد جستجو قرار ميگيرند به اين ترتيب با كوچكتر شدن بازه جستجو در صورتي كه مقدار مورد نظر در آرايه كشف نشود مقادير inthigh و intlow بهگونهاي تغيير ميكنند كه نتيجه شرط inthigh > = intlow نادرست شود كه در نتيجه اجراي حلقه خاتمه يافته و مقدار False بازگشت داده ميشود مثال فرض كنيد كه ميخواهيم عدد 2 را در آرايه 1 عضوي )مقدار اعضاي آن از 1 1 تا 1 هستند( جستجو كنيم. عملكرد تابع به اين صورت نمايش داده ميشود: 1 انديس مقدار مقايسه اول اولين بازه جستجو مقايسه دوم شكل تمرين: پروژه تمرين قبل را با روش جستجوي دودويي انجام دهيد. دومين بازه جستجو 317

328 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه Learn in English Array Variables Much of the time, you just want to assign a single value to a variable you've declared. A variable containing a single value is a scalar variable. Other times, it's convenient to assign more than one related value to a single variable. Then you can create a variable that can contain a series of values. This is called an array variable. Array variables and scalar variables are declared in the same way, except that the declaration of an array variable uses parentheses ( ) following the variable name. In the following example, a single-dimension array containing 11 elements is declared: Dim A(1 ) As Integer

329 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاریازدهم: توانايي استفاده از انواع آرايهها در ويژوالبيسيك Array Binary Search Bound Bubble Sort Convenient Delimiter Dimension Dynamic Element Erase Expression Join Limit Linear Search Random Related Scalar Selection Sort Split Subscript واژهنامه آرايه جستجوي دودويي مرز محدوده مرتبسازي حبابي راحت مناسب حائل اندازه بعد پويا عنصر پاككردن عبارت متصل كردن حد اندازه جستجوي خطي تصادفي مربوط عددی مرتبسازي انتخابي از هم جدا كردن انديس زيرنويس خالصه مطالب 319 از آرايهها براي ذخيرهسازي و نگهداري آسانتر دادهها مرتبسازي و جستجوي سريع اطالعات استفاده ميشود. آرايههابه دو دسته كلي آرايههاباابعادثابت و آرايههاي پويا ياباابعاد متغير تقسيم ميشوند. بهوسيله فرمان Option Base ميتوان شماره اولين عنصر آرايه را تعيين كرد. در آرايههاي پويا )Dynamic( تعداد اعضاي آرايه با توجه به تعداد مورد نياز معين ميشوند اما در آرايههاي ثابت تعداد اعضاي آرايه بعد از تعريف آن قابل تغيير نيست. براي قابل استفاده شدن يك آرايه پويا پس از تعريف آرايه از دستور ReDim براي تعيين ابعاد آن استفاده ميشود. در صورتي كه بخواهيد مقادير موجود در يك آرايه پويا در زمان تغيير ابعاد آن از بين

330 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: كنيد. استفاده Preserve كليدي كلمه از نرود كرد. حذف را پويا آرايههاي ميتوان فرمانErase بهوسيله رفت خواهند بين از فرمانErase بهوسيله ثابت ابعاد با آرايه يك در موجود مقادير ميمانند. باقي حافظه در آرايه اعضاي به مربوط فضاهاي اما استفاده مرجع با ارسال حالت از پيشفرض بهطور رويهها به آرايهها ارسال هنگام ميشود. هب مرتبسازي حبابي مرتبسازي : از عبارتند آرايهها مرتبسازي روشهاي Selection( انتخابي مرتبسازي روش Quick Sort مرتبسازي روش,Shell روشSort.Insertion Sort مرتبسازي روش و )Sort دودويي يا خطي جستجوي روش از ميتوان دريكآرايه برايجستجوياطالعات كرد. استفاده محاسبه را نظر مورد آرايه پاييني و بااليي دامنه ترتيب به LBound و UBound توابع ميكنند. كي در جداگانه رشتههاي زير بهصورت را رشتهاي عبارت يك ميتواند Split تابع كند. ذخيره بعدي يك آرايه رشتهاي آرايه يك در موجود رشتهاي مقادير ميتواند,Split تابع برخالف Join تابع درآورد. واحد رشتهاي عبارت يك بهصورت را 320

331 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاریازدهم: توانايي استفاده از انواع آرايهها در ويژوالبيسيك آزمون نظري 1 -درويژوالبيسيكانديساوليكآرايهبهطورپيشفرضازچهشمارهايآغازميشود د- 2 ج- 1 ب- صفر الف پس از تعريف يك آرايه پويا بهوسيله كدام دستور آرايه قابل استفاده ميشود د- ReDim ج- Erase ب- Static الف- Dim - 3 بهوسيله كدام فرمان ميتوان شماره انديس اولين عضو آرايه را تعيين كرد ب- Option Explicit الف- Option Compare Text د- Option Keyword ج- Option Base - 4 آرايه 5(, 1 No ) چند عضو دارد ( 1 ) Option Base د- 4 ج- 45 ب- 5 الف فرمان Erase ميتواند آرايههاي... را حذف كند. ب- با ابعاد ثابت الف- پويا د- گزينههاي الف و ب صحيح هستند. ج- رشتهاي - 6 اگر )1 ( name باشد حاصل عبارت )name( UBound چيست د- 11 ج- 1 ب- 9 الف- 8-7 آرايه 6( Color (1 To 5, 3 To چند عضو دارد د- 35 ج- 3 ب- 25 الف كدامتابعميتوانداعضاييكآرايهرشتهايرابهيكعبارترشتهايواحدتبديلكند د- Preserve ج- Ubound ب- Join الف- Split - 9 در صورتي كه بخواهيم در زمان تغيير ابعاد يك آرايه پويا مقادير قبلي آرايه از بين نرود از كدام كلمه كليدي همراه با دستور ReDim استفاده ميكنيم الف- Dim ب- ParamArray ج- Para د- Preserve - 10 كدام تابع ميتواند يك عبارت رشتهاي را بهصورت كلمات جداگانه در يك آرايه ذخيره كند الف- Split ب- Join ج- Preserve د- Filter 11 -Which of the following answer can be use to create a single dimension array With 5 elements? a- Dim no (5) As Integer b- Dim no (4) As Integer 321 c- Dim no [5] As Integer d- Dim no [4] As Integer

332 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه 12- آرايه را تعريف کنيد و انواع آن را نام ببريد دستور Split Erase و Join را با ذکر مثال توضيح دهيد نحوه تعريف و استفاده از آرايههاي استاتيک و پويا را با ذکر مثال بيان کنيد توابع UBound و LBound را با ذکر مثال توضيح دهيد نحوه مرتب سازي آرايهها با روش حبابي و انتخابي را بيان کنيد کاربرد دستور Option Base را با ذکر مثال توضيح دهيد نحوه ارسال آرايهها به رويههاي تابعي و فرعي را بيان کنيد انواع روشهاي جستجوي دادهها در آرايهها را توضيح دهيد. آزمون عملي - 1 رويهاي بنويسيد كه يك آرايه 5 5 را با اعضاي تصادفي ايجاد كرده سپس مجموع هر سطر و هر ستون آرايه را بهطور جداگانه به همراه خود آرايه نمايش دهد. - 2 رويهاي بنويسيد كه دو آرايه دلخواه را دريافت كرده و آرايه حاصلضرب آن دو را به همراه دو آرايه نمايش دهد. - 3 رويهاي بنويسيد كه دو آرايه يك بعدي دلخواه را دريافت كرده و سپس آرايه حاصل جمع حاصلضرب و حاصل تفريق آن دو را در آرايههاي جداگانهاي ذخيره كند. - 4 رويهاي بنويسيد كه يك آرايه عددي با 2 عضو را بهصورت نزولي مرتب كرده و نمايش دهد. 322

333 واحد کاردوازدهم هدف جزیی توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك هدفهای رفتاری 323 پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- مفاهيم مربوط به سيستم مختصات را بداند. 2- توانايي تغيير مختصات را به منظور انجام ترسيمات داشته باشد. 3- توانايي بهكارگيري متدهاي گرافيكي زير را داشته باشد: PSet, Line, Circle, Point, Cls, Print, TextHeight, TextWidth 4- توانايي استفاده از خصوصيات گرافيكي زير را داشته باشد: CurrentX, CurrentY, AutoRedraw, DrawMode, DrawStyle, DrawWidth, FillStyle توجه: مطالعه اين واحدكار براي استاندارد مهارتي رايانه كار پيشرفته وزارت فرهنگ و ارشاد اسالمي به صورت مطالعه آزاد است. 5- توانايي استفاده از توابع QBColor و RGB را داشته باشد. 6- توانايي استفاده از امكانات چاپ خصوصيات و متدهاي آن را در برنامهها داشته باشد. 7- توانايي استفاده از امكانات چندرسانهاي و كنترل MCI و MAM 8- توانايي استفاده از شئ Picture و رويههاي SavePicture و LoadPicture

334 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته ش ا ه: - 84/ 80 / 1 / 3 / 1 0 ش ا ه:مطال ه آزاد کلیات تاكنون چگونگي طراحي و ساخت رابطهاي گرافيكي را با استفاده از فرمها و بعضي از كنترلها آموختيد اما گاهي اوقات وجود فرمها و كنترلها بدون جلوههاي گرافيكي محيط نرمافزار را خستهكننده و غير قابل استفاده ميكند. با استفاده از جلوههاي گرافيكي نظير رنگ نمودارهاي گرافيكي و تصاوير متحرك ميتوانيد به كاربر در مشاهده و درك بهتر گزارشات و نتيجه محاسبات كمك كنيد. ويژوالبيسيك قابليت بااليي در استفاده از جلوههاي گرافيكي در اختيار شما قرار ميدهد و ميتوانيد اين جلوههاي گرافيكي را با دو روش ايجاد كنيد: كنترلهاي گرافيكي مثل Line,Shape و متدهاي گرافيكي مثل Line, PSet,Circle و مفهوم سيستم مختصات در ويژوالبيسيك در ويژوال بيسيك نيز مانند رياضيات و هندسه براي انجام هر نوع ترسيمياز سيستم مختصات استفاده ميشود همچنين از دو بعد يا محور مختصات براي تعيين موقعيت ترسيمات استفاده ميشود )شكل 12-1(. شكل 12-1 مختصات هر نقطه بهصورت )X,Y( تعيين ميشود مقدار X موقعيت نقطه را در طول محور X و مقدار Y موقعيت نقطه را در طول محور Y بيان ميكند كه مقدار شروع در هر يك از محورها صفر است. دقت داشته باشيد كه محورهاي مختصات در ويژوالبيسيك با محورهاي مختصات در رياضيات متفاوت است. در شكل 12-1 نحوه قرار گرفتن محورها بر نقطه مبنا قابل مشاهده است. مختصات نقطه مبنا )0,0( است كه در گوشه باال و چپ شئ مربوطه كه معموال فرم است قرار دارد. 324

335 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك کاردوازدهم: واحد مختصات سيستم از ميدهيد, تغيير را آن اندازه يا كرده جابهجا را كنترلي وقتي ترسيمات هرگونه و كنترلها واقع در ميكنيد. استفاده دارد, قرار آن در كنترل فرميكه كنترلي اگر ميكنند. تبعيت ميشوند, رسم آن در كه شئ مختصات سيستم از گرافيكي و ميكند پيروي فرم مختصات سيستم از كنترل اندازه و موقعيت گيرد قرار فرم روي در سيستم از خط اندازه و موقعيت شود رسم PictureBox تصوير جعبه يك در خطي اگر ميكند. استفاده تصوير جعبه كنترل مختصات مختصات سيستم وسيله به كنترل يك موقعيت تعيين 12-2 شكل اندازهگيري واحدهاي از محورها بهوسيله گرافيكي ترسيمات موقعيت تعريف براي مختصات سيستم در محور هر ويژوالبيسيك در ميگويند. مقياس آن به كه ميشود استفاده باشد. داشته را خود خاص مقياس ميتواند مختصات سيستم تغيير 12-2 اي Scale خصوصيت بهوسيله را فرم مثل خاص شئ يك مختصات سيستم ميتوانيد مقياس از ميتوانيد كار اين انجام براي كنيد. تنظيم نظرتان مورد مقادير روي Scale متد يك كه اين يا كنيد انتخاب را استاندارد مقياسهاي از يكي يا كرده استفاده پيشفرض موقعيت و اندازه ميتوانيد مختصات سيستم مقياس تغيير با كنيد. ايجاد را جديد مقياس كنيد. تنظيم آساني به نيازتان به توجه با فرم روي را گرافيكي ترسيمات نظير Scale خصوصيت چندين PictureBox مانند كنترلها از بعضي يا فرم هر بهوسيله كه دارند Scale متد يك و ScaleLeft ScaleTop ScalHeight ScaleWidth ScaleMode است. twip پيشفرض مقياس كنيد. تعريف را خود مختصات سيستم ميتوانيد آنها 325

336 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد همانطور كه قبال هم اشاره كرديم هر 567 twip برابر با يك سانتيمتر است. براي انتخاب يك مقياس استاندارد ميتوانيد يكي از مقادير موجود در جدول 12-1 را براي خصوصيت ScaleMode فرم يا كنترل مورد نظر خود در نظر بگيريد. جدول 12-1 مقاديري كه خصوصيت ScaleMode كسب ميكند. ثابت عددي توضيح )نوع مقياس( مقادير تعريفي كاربر در خصوصيات ScaleWidth ScaleHeight ثابت رشتهاي vbuser vbtwips vbpoints vbpixels vbcharacters vbinches vbmillimeters vbcentimeters 1 2 ScaleLeft ScaleTop استفاده ميشوند. twip )72Point = 1Inch( Point Pixel )يك pixel كوچكترين واحد نمايشي در صفحه نمايش يا چاپگر است و تعداد آنها در هر اينچ به مقدار وضوح تصوير بستگي دارد.( Character Inch Milimeter Centimeter اگر بخواهيد مختصات نقطه مبنا را تغيير دهيد يا مقياس جديد را در يك كنترل يا فرم ايجاد كنيد ميتوانيد از خصوصيات ScaleTop ScaleWidth ScaleHeight و ScaleLeft استفاده كنيد. خصوصيات ScaleLeft و ScaleTop با دريافت مقادير عددي مختصات نقطه مبنا را در كنترل و فرم معين ميكنند. مقدار پيشفرض براي اين دو خصوصيت صفر است. مقدار اين خصوصيات را ميتوانيد از طريق پنجره خصوصيات تغيير دهيد و يا با استفاده از نوشتن كد در رويدادها و رويههاي مورد نظر اين كار را انجام دهيد. شكل كلي استفاده از اين خصوصيات بهصورت زير است: object. ScaleLeft = value object. ScaleTop = value منظور از object نام يك فرم يا كنترل است و استفاده از آن اختياري است و در صورتيكه از آن استفاده نشود فرمي كه فوكوس دارد در نظر گرفته خواهد شد. value يك مقدار عددي است كه مختصات نقطه مبنا را تعيين ميكند در صورت 326

337 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك کاردوازدهم: واحد آوريد. بهدست را مبنا نقطه مختصات فعلي مقدار ميتوانيد value از استفاده عدم تنظيم مقادير اين فرمان دكمه كنترل يك با همراه فرم يك در كنيد فرض مثال بهعنوان است: شده Form1. ScaleMode = 1 Command1.Top = 2300 Command1.Left = 1750 صورت اين در دهيم قرار,100( )100 را مبنا نقطه مختصات فرم اين در بخواهيم اگر ميكنيم: تنظيم زير بهصورت را مربوطه خصوصيات Form1.ScaleTop = 100 Form1.ScaleLeft = 100 مقدار روي خودكار بهطور Form1 در ScaleMode خصوصيت مقدار صورت اين در به خودكار بهطور فرمان دكمه در Left و Top خصوصيت ضمن در و ميگيرد قرار صفر در مقادير مقايسه از كه همانطور و ميشوند 185 تنظيم و 2 4 مقادير روي ترتيب مبناي نقطه به توجه با فرمان دكمه كنترل براي )x,y( مقادير ميكنيد مشاهده حالت دو و 12-3 شكلهاي در ميتوانيد را حالت دو اين ميشود. تنظيم 1(, 1 ( جديد كنيد. مشاهده شكل 12-4 شكل مطلع مبنا نقطه مختصات مقدار از ميتوانيد خصوصيت دو اين بهوسيله عالوه به كادر يك در جديد مقادير خصوصيت دو اين مقدار تغيير از پس بعد رويه در شويد ميشوند. داده نمايش پيغام Private Sub cmdshow_click () Form1. ScaleLeft = 150 Form1. ScaleTop = 180 MsgBox " ScaleLeft = " + Str ( ScaleLeft ) + " ScaleTop = " + Str ( ScaleTop ) End Sub

338 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد نكته در صورت عدم استفاده از بخش object فرمي كه فوكوس دارد در نظر گرفته خواهد شد. عالوه بر تغيير مختصات نقطه مبنا مي توانيد مقياس سيستم مختصات را نيز تغيير دهيد. خصوصيات ScaleWidth و ScaleHeight واحد اندازه گيري در محورهاي X و Y را تعيين مي كنند. مقدار اين خصوصيات را مي توانيد از طريق پنجره خصوصيات يا با نوشتن كد مناسب تغيير دهيد. شكل كلي استفاده از اين خصوصيات به صورت زير است: object. ScaleHeight = value object. ScaleWidth = value منظور از object نام يک فرم يا كنترل است و value يک مقدار عددي است كه واحد اندازه گيري را در محورها تعيين مي كند. در صورتي كه از object استفاده نشود فرمي كه فوكوس دارد در نظر گرفته خواهد شد و در صورت عدم استفاده از بخش value مي توانيد مقادير ذخيره شده در اين دو خصوصيت را به دست آوريد. به عنوان مثال به رويه زير توجه كنيد: Private Sub cmdscale_click( ) Form1.ScaleWidth = 1000 Form1.ScaleHeight = 500 End Sub 1 بااجرايرويهفوقمعياراندازهگيريدرمحورافقي ) X ( يکهزارم) ) عرضداخلي 1 1 )Height( يک پانصدم ( ) ارتفاع داخلي )Y( فرم و در محور عمودي )Width( 5 فرم خواهد بود. نكته خصوصيات ScaleWidth و ScaleHeight واحدها را با توجه به ابعاد داخلي فرم يا شئ مربوطه تعيين مي كنند. اين ابعاد شامل حاشيه ها يا منوها يا نوار عنوان نمي شوند. اين دو خصوصيت همواره در رابطه با بخش قابل ترسيم داخل فرم يا شئ مربوطه تعريف مي شوند. به عنوان مثال يک فرم همراه با يک دكمه فرمان با مشخصات زير را ايجاد كنيد: Form1.BorderStyle = None 328

339 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك کاردوازدهم: واحد Form1.Height = 3000 Form1.Width = 4200 Form1.ScaleMode = twip Command1.Height = 400 Command1.Width = 1200 و ScaleHeight خصوصيات مقدار سپس دهيد انجام بهترتيب را فوق تنظيمات اگر ارتفاع مقدار مانند خصوصيت دو اين مقدار كه ديد خواهيد كنيد مالحظه را ScaleWidth فرم فضاي تمام و است عنوان نوار و حاشيه بدون شما فرم زيرا است فرم عرض و Sizeable را BorderStyle خصوصيت مقدار اگر اما ميشود. محسوب دسترس قابل فضاي بود خواهند كمتري مقادير ScaleWidth و ScaleHeight خصوصيت دو مقدار دهيد قرار قابل فضاهاي جزء كه است شده داده حاشيهها و عنوان نوار به فرم ابعاد از بخشي زيرا ScaleMode خصوصيت توسط محورها در اندازهگيري معيار همچنين نيستند. دسترس است. twip نوع از كه ميشود تعيين با كنيد 1 تنظيم و 5 روي را فرم ScaleWidth و ScaleHeight خصوصيات اكنون 0-User مقدار روي خودكار بهطور ScaleMode خصوصيت خصوصيات اين از يكي تغيير كنترل Width و Height خصوصيات فوق خصوصيت دو تغيير از پس ميشود تنظيم و 66/667 به ترتيب به آنها مقدار ميبينيد كه همانطور كنيد. مشاهده را Command1 صورت اين به مقادير اين از يك هر محاسبه براي واقع در است. كرده تغيير 285/ (. و 12-5 )شكل است شده عمل 5 4 =66/667 Command1.Height خصوصيت مقدار = 85/714 Command1.Width خصوصيت مقدار شكل 12-6 شكل

340 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره:مطالعه آزاد شماره: - 84/ 80 / 1 / 3 / 1 0 نكته تنظيم هر يک از خصوصيات Scale مقدار خصوصيت ScaleMode را بهطور خودكار روي تنظيم ميكند. انتخاب مقياس بزرگتر از صفر براي خصوصيت ScaleMode مقدار خصوصيات ScaleHeight و ScaleWidth را بهطور خودكار روي مقادير جديد تنظيم ميكند و مقدار خصوصيات ScaleTop و ScaleLeft را روي صفر تنظيم ميكند. هر چهار خصوصيت Scale مي توانند مقادير اعشاري و حتي منفي داشته باشند. در صورت استفاده از اعداد منفي براي خصوصيات ScaleWidth و ScaleHeight جهت محورها در سيستم مختصات تغيير مي كند مثال براي فرم و كنترلي با مشخصات زير فرمي مطابق شكل 12-7 خواهيد داشت: Form1.ScaleWidth = Form1.ScaleHeight = Form1.ScaleLeft = 0 Form1.ScaleTop = 0 Command1.Left = Command1.Top = شكل 12-7 بهعنوان آخرين مثال در رابطه با دو خصوصيت ScaleWidth و ScaleHeight به اين رويه توجه كنيد: Private Sub cmdscale_click( ) Form1.ScaleMode = 1 Form1.Width = 4200 Form1 height = 3000 Print "Form1.Width = " Form1.Width, "Form1.Height = " Form1.Height Print "Form1.ScaleWidth = " Form1.ScaleWidth Print "Form1.ScaleHeight = " Form1.ScaleHeight Print Form1.ScaleWidth = 1000 Print Form1.ScaleHeight =

341 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك کاردوازدهم: واحد Print "Form1.Width = " Form1.Width, "Form1.Height = " Form1.Height; Print "Form1.ScaleWidth = " Form1.ScaleWidth Print "Form1.ScaleHeight = " Form1.ScaleHeight End Sub سپس است شده گرفته نظر در twip اندازهگيري مقياس نوع ابتدا رويداد رويه اين در فرم ارتفاع و عرض ابتدا Print دستور اولين ميشود. مقداردهي فرم ارتفاع و عرض خصوصيات براي را 2595 و 4 8 مقادير نيز بعدي فرمان دو و 3 42 و يعني بدون را فرم ابعاد خصوصيت دو اين واقع در ميدهد. نمايش ScaleHeight و ScaleWidth دو مقدار بعدي خطوط در اما ميدهند. نمايش فرم عنوان نوار و حاشيه گرفتن نظر در حالت اين در ميشود 15 تنظيم 1 و روي ScaleHeight و ScaleWidth خصوصيت ود مقداردهي از پس ميشود. تنظيم صفر روي خودكار بهطور نيز ScaleMode خصوصيت Print اولين ميشوند اجرا ديگر Print دستور سه ScaleHeight و ScaleWidth خصوصيت دستور دو اما ميدهند نمايش فرم ابعاد براي را 3 42 و يعني قبلي ابعاد همان 15 و 1 يعني ScaleHeight و ScaleWidth خصوصيت دو جديد مقادير بعد Print داد. خواهند نمايش را متد از استفاده برد بهكار ميتوان مختصات سيستم تغيير با رابطه در كه ديگري روش مختصات سيستم تنظيم براي آسانتري و مناسب راهحل Scale متد واقع در است. Scale است: زير بهصورت Scale متد كلي شكل ميباشد. object. Scale (x1,y1) - ( x2,y2) x2,y2 عدد مقادير و شئ چپ سمت و بااليي گوشه مختصات x1,y1 عددي مقادير ميكنند. مشخص را شئ راست سمت و پاييني گوشه مختصات كه است شئ نام واقع در object تعيين را آن مختصات سيستم ميخواهيد اين از استفاده عدم صورت در و كنيد بهعنوان دارد فوكوس كه فرمي قسمت بهعنوان ميشود. گرفته نظر در مربوطه شئ درفرم را مختصات سيستم زير دستور مثال درميآورد بهصورتشكل شكل Form1. Scale (10,10)-(200,200)

342 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: آزاد شماره:مطالعه ميكند: تنظيم صورت اين به را Scale خصوصيت چهار فوق فرمان واقع در ScaleWidth =190 ScaleHeight = 190 ScaleTop = 10 ScaleLeft = 10 گرافيكي متدهاي و خصوصيات 12-3 تاكنون بياموزيد. را گرافيكي ترسيمات انواع انجام چگونگي تا است الزم اينجا در شده معرفي كنترلهاي اما ميداديد انجام گرافيكي كنترلهاي از استفاده با را كار اين مشكالت با را كار نيز مواقع از پارهاي در و نميكنند برطرف را گرافيكي نيازهاي همواره شما گرافيكي نياز گرافيكي خصوصيات تنظيم و متدها از استفاده ميسازند. روبهرو متعدد ميكند. برآورده برنامهنويسي پروژههاي در را PSet متد دهيد قرار مناسب مكانهاي در را خود نظر مورد نقاط ميتوانيد متد اين بهوسيله است: زير بهصورت متد اين كلي شكل object. PSet Step (x,y), color خودداري آن ذكر از اگر ميشود. رسم آن روي نقطه كه است شيئي object از منظور نيز Step كليدي كلمه است. نقطه رسم مكان دارد اختيار در را فوكوس فرميكه كنيد به توجه با ترسيم مكان نقطه رسم هنگام آن از استفاده صورت در و است اختياري ميشود. انتخاب شده انجام ترسيم آن در كه شيئي در جاري موقعيت مشخص را نقطه ترسيم محل مختصات كه هستند Single نوع از عددي مقادير x, y رد كنيد تعيين color بخش بهوسيله را نظر مورد نقطه رنگ ميتوانيد اين بر عالوه ميكنند. در نقطه كه شيئي ForeColor خصوصيت در كه رنگي قسمت اين از استفاده عدم صورت مقادير به مربوط جدول شد. خواهد گرفته نظر در فرم( مثال عنوان )به ميشود رسم آن ثابتهاي از يا رشتهاي ثابتهاي از ميتوانيد است. شده آورده 12-2 جدول در رنگها كنيد. استفاده 16 مبناي در عددي 332

343 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوازدهم: توانايي استفاده از جلوه هاي گرافيكي و چاپ درويژوال بيسيک جدول 12-2 مقاديررنگدرويژوالبيسيك ثابت رشتهاي ثابت عددي (مبناي 16) توضیح vbblack &H0 سياه vbred &HFF قرمز vbgreen &HFF00 سبز vbyellow &HFFFF زرد vbblue &HFF0000 آبي vbmagenta &HFF00FF بنفش vbcyan &HFFFF00 فيروزهاي vbwhite &8HFFFFFF سفيد بهعنوان مثال اين دستورات يک نقطه به رنگ آبي روي فرم نمايش ميدهد: Form1.ForeColor = vbblue PSet ( 1000, 200 ) اكنون دستور زير را در نظر بگيريد: PSet ( 500, 700 ), vbcyan اين دستور نقطه اي را با رنگ فيروزه اي در مختصات 5 و 7 رسم مي كند حال اگر بالفاصله دستور زير اجرا شود: PSet Step ( 500, 700 ), vbgreen مختصات نقطه مربوطه با توجه به مختصات نقطه رسم شده قبلي محاسبه مي شود بنابراين دو نقطه روي يكديگر قرار نخواهند گرفت. مثال 1: مي خواهيم پروژه اي طراحي كنيم كه ده نقطه به صورت تصادفي روي يک فرم ترسيم كند. 333 شكل 12-9 به اين منظور عمليات زير را به ترتيب انجام دهيد: - 1 برنامه ويژوال بيسيک را اجرا كرده و يک پروژه از نوع Standard EXE ايجاد كنيد. - 2 نام فرم frmgraphic و عنوان آن را روي Geraphic تنظيم كنيد سپس يک دكمه فرمان با نام cmdpset و عنوان &Pset مطابق شكل 12-9 روي فرم قرار دهيد.

344 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد - 3 رويداد click دكمه PSet را به صورت زير تنظيم كنيد: Private Sub cmdpset_click( ) Dim i As Integer Randomize For i = 1 To 10 Next i End Sub PSet (Int(Rnd * 1000 ), Int(Rnd * 2000 )) - 4 پروژه و فرم را با نام Point ذخيره كنيد سپس برنامه را اجرا و روي دكمه PSet كليك كنيد تا 1 نقطه به صورت تصادفي روي فرم ترسيم شوند )شكل 12-9(. - 5 از برنامه خارج شويد و به پنجره ويژوالبيسيك بازگرديد. تمرين: پروژه Point را بهگونهاي تغيير دهيد كه نقاط با رنگهاي مختلف به طور پيوسته روي فرم نمايش داده شوند متد Line بهوسيله متد Line ميتوانيد انواع خطوط و مستطيلهاي توپر و توخالي را رسم كنيد. شكل كلي اين متد به صورت زير است: object. Line Step (x1,y1) - ( x2,y2 ), color, B F عملكرد گزينههاي object و Step مانند متد PSet است. مقادير y1 و x1 مختصات نقطه ابتداي خط و مقادير y1 و x1 مختصات نقطه انتهايي را در خط تعيين ميكنند. بهوسيله بخش Color نيز ميتوانيد رنگ خط را مشخص كنيد. استفاده از حرف B يك مستطيل خالي و استفاده از حرف F به همراه حرف )BF( B يك مستطيل توپر ايجاد ميكند البته استفاده از اين دو كاراكتر اختياري است. به عنوان مثال به دستورات زير توجه كنيد: Line (500,800 ) (1500, 1500 ) Line (1000, 2500) ( 200,3500 ),vbblue 334

345 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك Line Step (100,250) ( 1400,3500) ), vbgreen Line (410,870) ( 1500,1800), vbblue, B Line (410,2500) ( 2000,3700), vbred, BF در اين مجموعه دستورات دستور اول يك خط با رنگي كه در خصوصيت ForeColor فرم تعيين شده است ترسيم ميكند دستور دوم يك خط با رنگ آبي و دستور سوم نيز يك خط با رنگ سبز ترسيم ميكنند اما در دستور سوم به دليل استفاده از Step نقطه شروع از انتهاي نقطهاي كه خط دوم تعيين ميكند استفاده ميشود. دستور چهارم و پنجم نيز به ترتيب يك مستطيل توخالي با رنگ آبي و يك مستطيل توپر با رنگ قرمز رسم ميكنند. در شكل و نتيجه اجراي اين دستورات را مشاهده ميكنيد. شكل شكل متد Circle بهوسيله اين متد ميتوانيد انواع دايره بيضي و كمان را رسم كنيد. شكل كلي اين متد بهصورت زير است: object. Circle step (x,y), radius, color, start, end, aspect بخش object و step و color مانند توضيحات ارايه شده در متد PSet است. مقادير عددي x و y از نوع Single بوده و مختصات مركز دايره يا بيضي را با توجه به مقدار ScaleMode تعيين ميكند. مقدار عددي radius نيز از نوع Single است و مقدار شعاع دايره را براساس مقدار ScaleMode معين ميكند. مقادير عددي start و end از نوع Single و اختياري بوده و موقعيت شروع و خاتمه كمان را براي ترسيم معين ميكند. مقدار مجاز براي اين دو مقدار از - 2π راديان تا 2π راديان است. در صورت عدم استفاده از اين دو مقدار كمان ترسيمي از صفر تا 2π راديان در نظر گرفته ميشود.

346 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد نكته جهت ترسيم كمان خالف جهت حركت عقربههاي ساعت است. مقدار عدديaspect از نوع Single استونسبتدوقطرعموديوافقيرادربيضيمعينميكنداگراينمقدار 1 باشددايرهودرغيراين صورتبرايمقاديربزرگتراز 1 بيضيهايعموديوبرايمقاديركوچکتراز 1 بيضيهايافقيايجادميشود. منظور از عدد π, ثابت 3/ است. براي رسم قطاعهاي بيضي يا دايره همراه با خطوط شعاع آنها از مقادير منفي استفاده كنيد. به عنوان مثال به دستورات زير توجه كنيد: Cricle (700, 1000 ),500, vbred Cricle (600,2000), 400, Pi/2,3* Pi/2 Cricle (600,3500), 400, -Pi/6, -Pi/3 Cricle (1700,1200), 500, vbred,,,2 Cricle (1700,2500), 500, vbred,,,0.2 Cricle (1000,4000), 1500,, , Pi/2,0.4 نتيجه اجراي اين دستورات را در شكل هاي و مشاهده مي كنيد. شكل شكل تمرين: پروژه اي طراحي كنيد كه شكل را روي يک فرم ترسيم كند. شكل

347 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك کاردوازدهم: واحد Point متد صحيح عدد يك بهصورت را آن رنگ شماره نقطه يك مختصات دريافت با متد اين است: زير بهصورت متد اين كلي شكل بازميگرداند. Long نوع از object. Point (x,y) قرمز رنگ با توپر مستطيل يك Line متد از استفاده با كه كنيد فرض مثال بهعنوان است: شده رسم Line (500,500)-(2000,2500), vbred, BF Print. Point (700,800) Point متد به دارد قرار قرمز مستطيل در كه را نقطهاي مختصات دوم دستور در بازگشت Point متد توسط است قرمز رنگ بيانگر كه 255 مقدار نتيجه در و ميدهد ميشود. داده نمايش و مييابد CurrentY و CurrentX خصوصيات را ترسيمات صفحه در نما مكان جاري موقعيت ميتوانيد خصوصيت دو اين بهوسيله خصوصيت و X محور جهت در را مكاننما مختصات CurrentX خصوصيت دهيد. تغيير استفاده نحوه كلي شكل ميكنند. تعيين Y محور جهت در را مكاننما مختصات CurrentY است: زير بهصورت خصوصيت دو اين از object. CurrentX = x object. CurrentY = y ترسيمات كه شئ سطح در را مكاننما موقعيت كه هستند عددي مقادير y و x مقادير ميتوان نشود استفاده y xو مقادير اگر ميكنند. مشخص ميگيرد انجام آن روي گرافيكي كنيد: توجه زير دستورات به آورد. بهدست را مكاننما فعلي مختصات Form1.CurrentX = 2000 Form1.CurrentY = PSet (CurrentX, CurrentY) ميكند پيدا تغيير 2( و 1 ( نقطه به مكاننما مختصات ابتدا دستورات اين در هب ميشود. رسم مختصات همين در نقطهاي خصوصيت دو اين مقدار بهوسيله سپس كنيد: توجه زير رويه به ديگر مثالي عنوان

348 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد Private Sub cmdshow_click( ) Form1.CurrentX = ScaleWidth / 2 Form1.CurrentY = ScaleHeight / 2 Line (CurrentX, CurrentY)-(500, 2000) End Sub با استفاده از خصوصيات ScaleWidth و ScaleHeight ابعاد فرم بهدست آمده و با تقسيم آنها بر عدد 2 مختصاتنقطه مياني در فرم محاسبه شدهاست و فرمانLine خطي راازايننقطه تانقطه ( 2 و )5 رسم ميكند )شكل.)12-15 شكل تمرين: پروژهاي طراحي كنيد كه مختصات مركز يك دايره و شعاع و رنگ آنرا دريافت كرده و دايره موردنظر را رسم كند متد Cls 338 شكل كلي اين متد بهصورت زير است: object. Cls اين متد صفحه را كامال پاك كرده و مكاننما رابه مختصات ( و (انتقال ميدهد. قبال بانحوه استفاده از اين متد آشنا شدهايد. بهعنوان مثال در رويه زير ابتدا يك مستطيل توپر با رنگ بنفش و يك دايره با رنگ قرمز رسم ميشود و بعد از رسم آنها يك كادر پيغام )MessageBox( با جمله Choose ok to clear this background نمايش داده ميشود كه در صورت فشرده شدن دكمه

349 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوازدهم: توانايي استفاده از جلوه هاي گرافيكي و چاپ درويژوال بيسيک فرمان OK در كادر پيغام سطح فرم پاك مي شود و مقدار صفر براي دو خصوصيت CurrentX و CurrentY در كادر پيغام ديگري به نمايش درمي آيد كه نشان دهنده عملكرد متد Cls در تغيير موقعيت جاري مكان نماست. Private Sub cmdcls_click( ) Dim pi, msg pi = Line (200, 150)-(850,600), vbmagenta, BF Circle (1600,1800 ), 400, vbred msg = "Choose OK to clear this background" MsgBox msg Cls MsgBox "CurrentX=" + Str(CurrentX) + "CurrentY=" + Str(CurrentY) End Sub مثال 2: پروژه اي طراحي كنيد كه به وسيله آن كاربر بتواند اشكال هندسي مانند نقطه, خط و انواع مستطيل را رسم كند. به اين منظور مراحل بعد را انجام دهيد: - 1 يک پروژه از نوع Standard EXE ايجاد كنيد كه شامل يک فرم با عرض و ارتفاع Drawing و Frmdrawing باشد. سپس نام و عنوان آن را بهترتيب روي 6 و 8 تنظيم كنيد و خصوصيت Appearance آن را روي -Flat تنظيم كنيد.)شكل 12-16(. - 2 در اين مرحله بخش تعاريف فرم و رويدادهاي ماوس را به صورت زير تنظيم كنيد: Option Explicit Dim intx As Integer, inty As Integer Private Sub Form_MouseDown(Button As Integer,Shift As_ Integer, X As Single, Y As Single) If Button = vbleftbutton Then 339

350 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد Pset (X,Y) End Sub intx = X inty = Y End If Private Sub Form_MouseUp(Button As Integer,Shift As Integer, X As Single, Y As Single) If Button = vbleftbutton Then Select Case Shift Case vbctrlmask: Line (intx, inty)-(x,y) Case vbshiftmask: Line (intx, inty)-(x,y),, B Case vbaltmask: Line (intx, inty)-(x, Y),, BF End Select End If End Sub Private Sub Form_MouseMove(Button As Integer,Shift As_ Integer, X As Single, Y As Single) If Button = vbrightbutton Then End If End Sub PSet (X,Y) 340

351 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك شكل در رويداد MouseDown با استفاده از دستور If مقدار آرگومان Button بررسي ميشود. اگر اين مقدار برابر با vbleftbutton باشد به اين معني است كه كليد سمت چپ ماوس فشرده شده است و با استفاده از دستور PSet يك نقطه در موقعيتي كه اشارهگر ماوس قرار دارد ترسيم ميشود و همين مقادير يعني X و Y در دو متغير عمومي ذخيره ميشوند تا براي رويداد MouseUp مورد استفاده قرار گيرند. متد PSet ميتواند يك نقطه در مختصات x و y با رنگ color ايجاد كند color ميتواند يكي از ثابتهاي رنگ ويژوالبيسيك باشد. شكل كلي استفاده از اين دستور به صورت PSet (x,y),color ميباشد. استفاده از آرگومان color اختياري است. از رويداد MouseUp براي ترسيم انواع خطوط و مستطيلهاي توپر و توخالي استفاده شده است. در اين رويداد ابتدا رها شدن كليد سمت چپ ماوس به وسيله دستور If كنترل ميشود سپس با استفاده از يك دستور Select Case فشرده شدن كليدهاي Ctrl 341 Shift و Alt در زمان رها شدن كليد چپ ماوس بررسي ميشود و اگر در زمان رها شدن كليد سمت چپ ماوس كليد Ctrl نگه داشته شود متدintx,inty)-(X,Y ) )Line در اولين Case اجرا شده و يك خط بين نقطه با مختصات )intx,inty( يعني محل اشارهگر در زمان فشرده شدن كليد چپ ماوس و نقطه با مختصات )X,Y( يعني محل اشارهگر در زمان رها شدن كليد چپ ماوس رسم ميشود. اگر در زمان رها شدن كليد چپ ماوس كليد Shift نگه داشته شود متد )B )Line (intx,inty)-(x,y, در Case دوم اجرا شده و يك مستطيل بين نقاط )intx,inty( و )X,Y( رسم ميكند. پارامتر B در متد Line سبب رسم يك مستطيل

352 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد خواهد شد. اما اگر در زمان رها شدن كليد چپ ماوس كليد Alt نگه داشته شود متد Line (intx,inty)-(x,y),,bf در Case آخر اجرا شده و يك مستطيل توپر بين نقاط مربوطه رسم خواهد شد. متد Line ميتواند يك خط را با دريافت موقعيت نقاط ابتدا و انتهاي آن ترسيم كند. شكل كلي اين متد به صورت Line (x1,y1)-(x2,y2),color است كه x2,x1 فاصله نقاط ابتدا و انتهاي خط از سمت چپ فرم و y1 و y2 فاصله نقاط ابتدا و انتهاي خط از باالي فرم ميباشد, آرگومان color رنگ خط ترسيمي را مشخص ميكند. استفاده از اين آرگومان اختياري است. برايرسم يك مستطيلتوخالياز كاراكترB در متدLineبه صورتx1,y1)-(x2,y2),color,B ) Line استفاده كنيد و براي رسم يك مستطيل توپر از عبارت BF در متد Line به صورت Line (x1,y1)-(x2,y2),color,bf استفاده كنيد. آخرين رويداد در ماژول فرم رويداد MouseMove فرم است كه در اين رويداد با بررسي آرگومان Button فشرده شدن دكمه راست ماوس بررسي ميشود. اگر در زمان حركت اشارهگر ماوس كليد راست ماوس نگه داشته شود Drag( )Right متد PSet اجرا شده و يك نقطه در محل اشارهگر ترسيم خواهد كرد. - 3 پروژه را با نام drawing ذخيره كرده و سپس آن را اجرا كنيد. - 4 روي فرم عمل كليك انجام دهيد. مشاهده ميكنيد كه نقاط كوچكي با رنگ سياه روي فرم ايجاد خواهد شد. - 5 روي فرم عمل درگ انجام دهيد و همزمان كليد Ctrl را پايين نگهداريد سپس كليد چپ ماوس را رها كنيد. مشاهده ميكنيد كه يك خط با رنگ سياه ترسيم ميشود. همين عمل را با كليدهاي Shift و Alt انجام دهيد و نتيجه را بررسي كنيد. - 6 در اين مرحله با كليد راست ماوس عمل درگ را انجام دهيد ميبينيد كه با حركت ماوس نقاط ترسيم ميشوند. - 7 از برنامه خارج شده و به پنجره ويژوالبيسيك بازگرديد. 342

353 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوازدهم: توانايي استفاده از جلوه هاي گرافيكي و چاپ درويژوال بيسيک متد Print تاكنون بارها از اين متد استفاده كرده ايد. اين متد مي تواند هرگونه اطالعات اعم از متن, مقادير عددي مقادير مربوط به خصوصيات و نظاير آن ها را روي فرم نمايش دهد. شكل كلي اين متد به صورتي است كه در ادامه مي آيد: object. Print outputlist object نام شيئي است كه اطالعات روي آن نمايش داده ميشوند. outputlist اطالعاتي است كه توسط متد Print روي شئ object نمايش داده ميشود. استفاده از outputlist و object اختياري است و در صورتي كه outputlist استفاده نشود يک خط خالي نمايش داده خواهد شد. نكته: استفاده از كاراكتر " ; " در متد Print سبب ميشود تا اطالعات به صورت چسبيده به هم و بدون فاصله از هم نمايش داده شوند. استفاده از كاراكتر ", " در متد Print سبب ميشود تا اطالعات با فاصله 14 ستون از يكديگر نمايش داده شوند. به عنوان مثال, رويداد زير عبارت Visual Basic 6 را به شكل هاي مختلف نمايش مي دهند: Private Sub cmdprint_click( ) Dim str1 As String Dim str2 As String Dim str3 As String str1 = "Visual" str2 = "Basic" str3 = "6" Print str1; str2; str3 343

354 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد Print str1, str2, str3 Print str1; Print str2, Print str3 End Sub نتيجه اجراي اين دستورات بهصورت زير خواهد بود: Visual Basic 6 Visual Basic 6 VisualBasic 6 شكل براي نمايش فضاهاي خالي توسط متد Print ميتوانيد از تابع Spcace استفاده كنيد. مثال دستور زير قبل از نمايش كلمه BASIC 5 فضاي خالي ايجاد ميكند. Print Spcace (5) ; " BASIC " در ضمن ميتوانيد بهوسيله تابع Tab اطالعات خود را در ستونهاي مورد نظر نمايش دهيد. شكل كلي تابع Tab به اين صورت است: Tab (n) كه در آن n يك مقدار عددي است كه شماره ستون مورد نظر را معين ميكند. مثال فرمان زير كلمه VISUAL را از ستون دوم به بعد و كلمه BASIC را از ستون دهم به بعد نمايش ميدهد.

355 بيسيک( )ويژوال مقدماتی نويسی برنامه مهارتی: پیمانه بيسيک درويژوال چاپ و گرافيكي هاي جلوه از استفاده توانايي کاردوازدهم: واحد Print شود: استفاده زير صورت به فرمان اين اگر اما Tab (2) ; " VISUAL " ; Tab (10) ; " BASIC" Print Tab (2) ; " VISUAL " ; Tab (5) ; " BASIC " كلمه نمايش از پس چون اما شود مي داده نمايش جاري خط دوم ستون از VISUAL كلمه كند مي اشاره پنجم ستون به دوم Tab و گيرد مي قرار هشتم ستون در نما مكان VISUAL شد. خواهد داده نمايش بعد خط پنجم ستون در BASIC كلمه بنابراين نظر در 1 شماره ستون باشد منفي عددي Tab تابع در n مقدار كه صورتي در نكته شد. خواهد گرفته متدهاي TextWidthو TextHeight براي نظر مورد متن ارتفاع TextHeight متد و نظر مورد متن عرض TextWidth متد است: زير صورت به متد دو اين كلي شكل كنند. مي معين را نمايش 345 object. TextWidth ( string ) object. TextHeight ( string ) را Single نوع از عددي مقدار يک متد دو هر است. اي رشته عبارت يک string اين به توانيد مي صفحه وسط در VISUAL BASIC عبارت نمايش براي مثال گردانند بازمي كنيد: عمل صورت Private Sub cmdtext_click( ) CurrentX = (ScaleWidth - TextWidth ("VISUAL BASIC")) / 2 CurrentY = (ScaleHeight - TextHeight ("VISUAL BASIC")) / 2 Print "VISUAL BASIC" End Sub كنيد: مشاهده شكل در را رويه اين اجراي نتيجه متن ارتفاع و عرض محاسبه و TextHeight و TextWidth متد دو وسيله به رويه اين در و ScaleWidth خصوصيات وسيله به كه فرم ارتفاع و عرض از مقادير اين كردن كم با و را متن نمايش محل 2 عدد بر آمده دست به مقدار تقسيم و آيند مي دست به ScaleHeight حتي كه است اين كار اين مزيت اند. شده محاسبه گيرد قرار صفحه وسط در كه اي گونه به باز جديد ابعاد به توجه با نظر مورد متن شود اجرا مجددا رويه و يابد تغيير فرم ابعاد اگر

356 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: آزاد شماره:مطالعه ميگيرد. قرار صفحه وسط در و شده شكل AutoRedraw خصوصيت در كه كردهايد دقت نكته اين به گرافيكي دستورات از استفاده هنگام در تاكنون شايد گرفتن قرار اثر در يا ميرود بين از فرم روي در شده انجام ترسيمات مواقع از بعضي شما ترسيمات است شده انجام آن در ترسيمات كه پنجرهاي روي ديگر پنجرههاي اب كه كنيد طراحي گونهاي به فرمان دكمه يك با فرم يك مثال بهعنوان ميشود. مخدوش كرده اجرا را برنامه سپس شود رسم فرم روي در توپر مستطيل يك فرمان دكمه فشردن )بهوسيله برسانيد اندازه حداقل به را برنامه پنجره بعد و كنيد كليك فرمان دكمه روي و كنيد كليك وظيفه نوار در پنجره آيكن روي مجددا و ) Minimize دكمهكنترلي مشاهده شده رسم شكل از اثري صورت اين در بازگردد. قبل حالت به برنامه پنجره تا شد. نخواهد كه دارند AutoRedraw نام به خصوصيتي PictureBox مانند كنترلها از بعضي و فرمها مقدار روي خصوصيت اين اگر است False خصوصيت اين مقدار پيشفرض حالت در از موجود ترسيمات آن نظاير و فرم اندازه تغيير يا مكان تغيير هنگام در شود تنظيم True ميشوند. داده نمايش كنترل يا فرم مجدد نمايش با و نميروند بين برنامه فرم براي را AutoRedraw خصوصيت داديد انجام قسمت اين در كه مثالي در كنيد. كليك فرمان دكمه روي و كنيد اجرا مجددا را برنامه و كنيد تنظيم True مقدار روي مشاهده دهيد. نمايش دسكتاپ روي را آن دوباره و درآورده Minimize حالت به را فرم است. رفته بين از قبلي مشكل حالت اين در ميكنيد 346

357 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك کاردوازدهم: واحد است: صورت اين به خصوصيت اين از استفاده كلي شكل object. AutoRedraw = Boolean عدم صورت در و باشد كنترل يا فرم نام ميتواند كه است اختياري مقدار يك object ميشود. استفاده دارد فوكوس فرميكه نام آن از استفاده عدم صورت در باشد. False يا True ميتواند كه است منطقي مقدار يك Boolean مقدار اين پيشفرض مقدار ميشود. داده بازگشت خصوصيت مقدار Boolean مقدار از استفاده است. False خصوصيت تمرين: و كرده استفاده كردهايد طراحي تاكنون كه پروژههايي در AutoRedraw خصوصيت از كنيد. بررسي خصوصيت اين استفاده از قبل حالت با را نتيجه DrawMode خصوصيت بهوسيله كه را رنگ( نظر )از ترسيماتي ظاهري شكل ميتوان خصوصيت اين بهوسيله كلي شكل كرد. تعيين ميشوند انجام غيره و PSet Line Circle نظير گرافيكي متدهاي است: زير بهصورت خصوصيت اين از استفاده نحوه object. DrawMode = value درصورت ميكند. مشخص را ترسيمات ظاهري شكل و بوده اختياري نيز value مقدار بخش كه مقاديري ميشود. داده بازگشت خصوصيت مقدار مقدار اين از استفاده عدم شدهاند. آورده 12-3 جدول در كند كسب ميتواند value گرافيكي متد كه است رنگي pen رنگ از 12-3 منظور جدول در كه باشيد داشته توجه ويژوالبيسيك به خصوصيت اين واقع در ميكند. استفاده آن از گرافيكي شكل رسم براي ديگر بهعبارت كند تعيين را صفحه روي نمايشي pixel يك رنگ چگونه كه ميگويد متد بهوسيله pixel اين در كه نقطهاي رنگ و pixel فعلي رنگ اساس بر ويژوالبيسيك ScaleMode خصوصيت مقدار به توجه با را مناسب رنگي تركيب ميشود, ايجاد گرافيكي ميدهند: نشان را خصوصيت اين از استفاده نحوه زير دستورات مثال بهعنوان ميكند. تعيين 347

358 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد Form1.DrawMode = vbinvert Form1.BackColor = vbred Line (500, 500 ) - (2000, 2500) vbgreen, BF در حالت عادي اين دستورات يك مستطيل توپر بهوسيله متد Line با رنگ سبز رسم ميكنند اما چون مقدار خصوصيت DrawMode روي vbinvert تنظيم شده از رنگ معكوس رنگ قرمز )يعني رنگ فعلي نقاطي كه مستطيل بهوسيله آنها نمايش داده ميشود( استفاده ميشود و مستطيل با اين رنگ ديده خواهد شد. بنابراين اگر رنگ ديگري نيز در دستور Line استفاده شود تغييري در رنگ مستطيل ايجاد نميشود. 348 رنگ سفيد 348 جدول 12-3 مقادير مربوط به خصوصيت DrawMode ثابت عددي توضيح رنگ سياه عكس حالت 15-vbMergePen تركيب رنگ بر اساس رنگ زمينه و رنگ معكوس pen عكس حالت 13-CopyPen تركيب رنگهاي عمومي با رنگ pen و رنگ معكوس رنگي كه نمايش داده شده است. رنگ معكوس رنگي كه نمايش داده شده است. تركيب رنگها بر اساس رنگ pen يا رنگي كه نمايش داده شده است. عكس حالت 9-MaskPen تركيب رنگهايعمومي با رنگ pen و رنگي كه نمايش داده شد. عكس حالت 7-vbXorPen ترسيمي انجام نميشود. تركيب رنگ معكوس رنگ pen و رنگيكه نمايش داده شده است. بهطور پيشفرض رنگ pen و اگر رنگ pen تعيين نشود رنگ ForeColor استفاده ميشود. تركيب رنگ pen و رنگ معكوس رنگيكه نمايشداده شدهاست. تركيب رنگ pen و رنگي كه نمايش داده شده است. 1 2 ثابت رشتهاي vbblackness vbnotmergepen vbmasknotpen vbnotcopypen vbmaskpennot vbinvert vbxorpen vbnotmaskpen vbmaskpen vbnotxorpen vbnop vbmergenotepen vbcopypen vbmergepennot vbmergepen vbwhiteness

359 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوازدهم: توانايي استفاده از جلوه هاي گرافيكي و چاپ درويژوال بيسيک نكته مقدارپيشفرضخصوصيت DrawModeاستكهسببميشوداز 13-vbCopyPen رنگيكهدرمتدگرافيكيتعيينميشوداستفادهشودودرصورتيكهرنگتوسطمتدتعييننشود ازرنگيكهدرخصوصيت ForeColorتعيينشدهاستفادهشود خصوصيت DrawStyle به وسيله اين خصوصيت مي توان نوع و حالت خطوط را در ترسيمات گرافيكي تعيين كرد. شكل كلي نحوه استفاده از اين خصوصيت به صورت زير است: object. DrawStyle = value مقدار value اختياري بوده و نوع و حالت ترسيمات را مشخص مي كند. در صورت عدم استفاده از اين مقدار مقدار خصوصيت بازگشت داده مي شود. مقاديري كه value مي تواند كسب كند در جدول 12-4 ارايه شده است. جدول 12-4 مقاديرمربوطبهخصوصيت DrawStyle ثابتعددي حالتنمايشي ثابت رشته اي vbsolid vbdash 1 vbdot vbdashdot vbdashdotdot vbinvisible vbinsidesolid خطنامريي لبهبيرونيحاشيهبرلبهبيرونيشكلمنطبقاست. رويداد زير حالت هاي مختلف ترسيم را براي مقادير صفر تا 4 مورد استفاده قرار مي دهد. Private Sub cmdshow_click( ) DrawStyle = vbsolid Line (500, 200)-(5000, 200), vbblue DrawStyle = vbdash Circle (900,1000), 400, vbred 349

360 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد DrawStyle = vbdot Line (2000, 500)-(5000, 1500), vbblue, B DrawStyle = vbdashdot Circle (900, 2500),400, vbred DrawStyle = vbdashdotdot Line (2000,2000)-( ), vbblue, B End Sub شكل خصوصيت DrawWidth بهوسيله اين خصوصيت ميتوانيد ضخامت خطوط را براي ترسيمات گرافيكي معين كنيد. شكل كلي نحوه استفاده از اين خصوصيت بهصورت زير است: object. DrawWidth = size مقدارsize اختياري بوده و يك عبارت عددي است كه اندازه قلم را براي ترسيمات معين ميكند و در صورت عدم استفاده از اين مقدار مقدار خصوصيت بازگشت داده ميشود. مقدار size ميتواند مقداري بين 1 تا باشد. در اين رويداد حالتهاي مختلف ترسيم را با اندازههاي مختلف قلم مشاهده ميكنيد )شكل 12-20(. Private Sub cmdshow_click( ) DrawStyle = vbdot DrawWidth = 1 Line (500, 150)-(5000, 150), vbblue DrawWidth = 2

361 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوازدهم: توانايي استفاده از جلوه هاي گرافيكي و چاپ درويژوال بيسيک Circle (900, 1000), 400, vbred DrawWidth = 3 Line (2000, 500)-(5000, 1500), vbblue, B DrawWidth = 4 Circle (900, 2500), 400, vbred DrawWidth = 5 Line (2000, 2000)-(5000, 3000), vbblue, B End Sub شكل نكته در صورتي كه خصوصيت DrawWidth روي عدد بزرگتر از يک تنظيم شود مقادير 1 تا 4 براي خصوصيت DrawStyle در زمان اجراي متدهاي گرافيكي عملكردي از خود نشان نميدهند و مانند مقدار vbsolid عمل ميكنند خصوصيت FillStyle به وسيله اين خصوصيت مي توانيد ترسيماتي نظير دايره بيضي و مستطيل را با حالت هاي مختلف پر كنيد. شكل كلي نحوه استفاده از اين خصوصيت به صورت زير است: object. FillStyle = number مقدار number اختياري بوده و عددي صحيح است كه حالت موردنظر را براي پر كردن ترسيمات معين مي كند. در صورت عدم استفاده از اين بخش مقدار خصوصيت بازگشت داده مي شود. مقادير مجاز براي number در جدول 12-5 ارايه شده است: 351

362 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد جدول 12-5 مقادير مربوط به خصوصيت FillStyle ثابت رشتهاي ثابت عددي توضيح داخل شكل با رنگي كه در خصوصيت FillColor تعيين شده پر ميشود. داخل شكل با رنگ زمينه پر ميشود. داخل شكل با خطوط افقي پر ميشود. داخل شكل با خطوط عمودي پر ميشود. داخل شكلبا خطوط مايل پر ميشود )از چپ به راست(. داخلشكلبا خطوط مايل پر ميشود )از راست به چپ(. داخلشكل با خطوط عمودي و افقي پر ميشود )حالت شطرنجي(. داخل شكل با خطوط عمودي وافقي مايل پر ميشود)حالت شطرنجي مايل(. vbfssolid vbfstransparent vbhorizontalline vbverticalline vbupwarddiagonal vbdownwarddiagonal vbcross vbdiagonalcross در اين رويداد حالتهاي مختلف ترسيم را براي مقادير متفاوتي از خصوصيت FillStyle نشان ميدهد: Private Sub cmdshow_click( ) DrawStyle = vbsolid DrawWidth = 1 FillColor = vbgreen FillStyle = 0 Circle (900, 1000), 400, vbred FillColor = vbblack FillStyle = 1 Line (2000, 500)-(5000, 1500), vbblue, B FillStyle = 2 Circle (900,2200), 400, vbred FillStyle = 3 Line (2000, 1700)-(5000, 2700), vbblue, B FillStyle = 4 Circle (900,3500), 400, vbred FillStyle = 5 352

363 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك Line (2000, 3000)-(5000, 4000), vbblue, B FillStyle = 6 Circle (900, (4800, 400, vbred FillStyle = 7 Line (2000, 4300)-(5000,5300), vbblue, B End Sub در اين رويداد پس از تعيين مقادير مورد نظر براي خصوصيات DrawStyle و lfillco رويسبزتنظيمشدهاست.خصوصيت مقدارخصوصيتFillColor DrawWidth or رنگ قلم را براي ترسيماتي كه بهوسيله خصوصيت FillStyle ايجاد ميشود معين ميكند. بهعنوان مثال در دايره اول چون مقدار خصوصيت FillStyle صفر است دايره با رنگ FillColor يعني سبز پر ميشود. در مورد ساير مقادير FillStyle نيز خصوصيت FillColor رنگ خطوط عمودي افقي مايل و غيره كه شكل را پر ميكند تعيين ميكند. نتيجه اجراي اين رويداد را ميتوانيد در شكل مشاهده كنيد. شكل تمرين: پروژهاي طراحي كنيد كه اين شكل را روي يك فرم نمايش دهد: 353 شكل 12-22

364 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد 12-4 تابع QBcolor اين تابع با دريافت يك عدد بين صفر و 15 يك عدد از نوع Long را كه بيانگر رنگ معادل عدد دريافتي است بازميگرداند. شكل كلي اين تابع بهصورت زير است: QBColor ( color ) آرگومان color يك عدد از نوع صحيح است كه براساس جدول 12-6 قابل استفاده خواهند بود. جدول 12-6 مقادير قابل استفاده براي آرگومان color رنگ مقدار عددي رنگ مقدار عددي خاكستري آبي روشن سبز روشن فيروزهاي روشن قرمز روشن بنفش روشن زرد روشن سفيد روشن 8 سياه 9 آبي 1 10 سبز 2 11 فيروزهاي 3 12 قرمز 4 13 بنفش 5 14 زرد 6 15 سفيد 7 بهعنوان مثال در دستورات زير با استفاده از تابع 5 QBColor نقطه با رنگهاي متفاوت نمايش داده خواهد شد. Dim i As Integer Dim XPos As Single, YPos As Single DrawWidth = 4 Randomize For i = 1 To 5000 XPos = Rnd * ScaleWidth YPos = Rnd * ScaleHeight PSet (XPos, YPos), QBColor(Rnd * 15) Next i 354

365 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك 12-5 تابع RGB در ويژوالبيسيك تابع ديگري به نام RGB وجود دارد كه ميتواند تركيبات رنگي را با توجه به نياز ايجاد كند. اين تابع ميتواند با دريافت سه مقدار عددي براي سه رنگ اصلي تمام تركيبات مورد نظر را ايجاد كند. شكل كلي اين تابع بهصورت زير است: RGB ( red, green, blue ) اين تابع سه آرگومان اجباري دارد كه ميتوانند اعداد صحيح از صفر تا 255 را كسب كنند. آرگومان red مقدار رنگ قرمز آرگومان green مقدار رنگ سبز و آرگومان blue مقدار رنگ آبي را معين ميكنند. مقدار بازگشتي اين تابع يك عدد از نوع Long است كه بيانگر تركيب رنگي درخواستي است. مقادير سه آرگومان فوق براي رنگهاي استاندارد در جدول 12-7 ارايه شده است. جدول 12-7 مقادير سه رنگ اصلي براي رنگهاي استاندارد مقدار آرگومان blue مقدار آرگومان green مقدار آرگومان red رنگ سياه آبي 255 سبز 255 فيروزهاي قرمز 255 بنفش زرد سفيد بهعنوان مثال دستورات زيرپانصد دايرهباابعاد و مختصات و رنگهاي تصادفيايجاد ميكند. Dim i As Integer Dim XPos As Single, YPos As Single DrawWidth = 4 355

366 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره:مطالعه آزاد شماره: - 84/ 80 / 1 / 3 / 1 0 Randomize For i = 1 To 500 XPos = Rnd * ScaleWidth YPos = Rnd * ScaleHeight )Circle (XPos, YPos), Rnd * 800, RGB(Rnd * _ 255, Rnd * 255, Rnd * 255 Next i 12-6 شئ چاپگر Object( )Printer تاكنون كليه عملياتي كه انجام دادهايد روي فرم و صفحه نمايش انجام شده است اما گاهي اوقات الزم است تا اطالعات مورد نياز خود را بهوسيله چاپگر روي كاغذ چاپ كنيد. ويژوالبيسيك در اين زمينه نيز امكانات الزم را مهيا كرده است. شما با استفاده از شئ چاپگر عالوه بر انجام عمليات چاپ ميتوانيد بهوسيله خصوصيات اين شئ عمليات چاپ را به نحو مناسبي مديريت كنيد. در اين بخش به معرفي متدهاي چاپ و معرفي خصوصيات شئ چاپگر ميپردازيم متدهاي چاپ تاكنون متدهاي مختلفي را براي نمايش اطالعات و ترسيمات آموختيد. در اين متدها ميتوانيد به جاي پارامتر object از شئ چاپگر استفاده كنيد بنابراين به آساني ميتوانيد از متدهاي TextWidth TextHeight Scale PSet Line Circle و Print استفاده كنيد. فقط كافي است براي معرفي شئ چاپگر از كلمه Printer استفاده كنيد. بهعنوان مثال نتايج حاصل از اجراي دستورات زير روي كاغذ چاپ خواهند شد. Printer. Print " IN THE NAME OF GOD. " )Printer. Line (100,100) (800,800 Printer. Circle (150,150), 500 متد EndDoc اين متد سبب ميشود تا عمليات چاپ متوقف شده و تا زماني كه چاپگر آماده چاپ شود اطالعات مربوط به چاپ روي ديسك يا حافظه كامپيوتر ذخيره ميشود. شكل كلي

367 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك نحوه استفاده از اين متد بهصورت زير است: Printer. EndDoc متد KillDoc اين متد ميتواند در زمان چاپ اطالعات عمليات چاپ را خاتمه دهد. شكل كلي نحوه استفاده از اين متد بهصورت زير است: Printer. KillDoc متد NewPage متد Newpage ميتواند عمليات چاپ صفحه جاري را خاتمه داده و چاپگر چاپ را از صفحه بعدي انجام دهد. شكل كلي نحوه استفاده از اين متد در ادامه ميآيد: Printer. NewPage خصوصيات شئ چاپگر تنظيمات مربوط به چاپگرها نيز مانند اشياي ديگر بهوسيله تعدادي از خصوصيتها قابل دستيابي و تغيير هستند. در اين بخش مهمترين خصوصيات شئ چاپگر را مورد بررسي قرار ميدهيم. بعضي از خصوصيات نيز قبال توضيح داده شدهاند مانند: wdra DrawWidth FillColor FillStyle CurrentX CurrentY DrawMode Style خصوصيات مربوط به قلمها )Fonts( و... خصوصيت ColorMode بهوسيله اين خصوصيت ميتوان نوع چاپگر را از نظر چاپ رنگي يا سياه سفيد تعيين كرد. شكل كلي نحوه استفاده از اين خصوصيت بهصورت زير است: Printer. ColorMode = value value يك ثابت عددي يا رشتهاي است كه نوع چاپ را معين ميكند. اين مقدار ميتواند يكي از مقادير موجود در جدول 12-8 باشد. در صورت عدم استفاده از بخش value مقدار فعلي خصوصيت بازگشت داده خواهد شد. جدول 12-8 مقادير مربوط به خصوصيت ColorMode توضيح ثابت عددي ثابت رشتهاي vbprcmmonochrome vbprcmcolor 1 2 چاپ سياه سفيد چاپ رنگي 357

368 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد نكته استفاده از چاپ رنگي يا سياه سفيد به امكانات چاپگر بستگي دارد. خصوصیت Copies به وسيله اين خصوصيت مي توانيد تعداد نسخه هايي كه چاپگر چاپ مي گيرد تعيين كنيد. شكل كلي نحوه استفاده از اين خصوصيت به صورت زير است: Printer. Copies = number Number يک عبارت عددي از نوع صحيح است كه تعداد نسخهها را براي چاپ معين ميكند و در صورت عدم استفاده از آن مقدار فعلي خصوصيت بازگشت داده خواهد شد. خصوصیت DeviceName اين خصوصيت نام دستگاه چاپگر پيشفرض را باز ميگرداند. نام چاپگرها در زمان نصب آنها از طريق برنامه Control Panel توسط كاربر تعيين ميشود. مثال اگر يک چاپگر EPSON LQ 300 را با نام myprinter و بهصورت پيشفرض نصب كرده باشيد فرمان زير نام چاپگر يعني myprinter را نمايش ميدهد. Print Printer. DeviceName خصوصیت DriverName اين خصوصيت نام راهانداز )driver( دستگاه چاپگر پيشفرض را باز ميگرداند. بهعنوان مثال اگر چاپگر EPSON LQ 500 را با نام myprinter نصب كرده باشيد فرمان زير نام راهانداز نصب شده يعني EPSON LQ 500 را نمايش خواهد داد. Print Printer. DriverName خصوصیت Orientation بهوسيله اين خصوصيت ميتوانيد جهت انجام عمليات چاپ را روي صفحه كاغذ تعيين كنيد. عمليات چاپ ميتواند بهصورت portrait يا landscape باشد. در شكل تفاوت اين دو حالت نمايش داده شده است. شكل

369 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك شكل كلي نحوه استفاده از اين خصوصيت بهصورت زير است: Printer. Orientation = value value يك ثابت عددي يا رشتهاي است كه جهت چاپ اطالعات را روي كاغذ معين ميكند. اين مقدار ميتواند يكي از مقادير موجود در جدول 12-9 باشد. در صورت عدم استفاده از مقدار value مقدار فعلي خصوصيت بازگشت داده خواهد شد. جدول 12-9 مقادير مربوط به خصوصيت Orientation توضيح ثابت عددي ثابت رشتهاي vbprorportrait vbprorlandscape 1 2 چاپ بهصورت portrait چاپ بهصورت landscape خصوصيت Page اين خصوصيت شماره صفحه در حال چاپ را در اختيار برنامه قرار ميدهد. شكل كلي نحوه استفاده از اين خصوصيت به اين صورت است: Printer.Page خصوصيت PaperSize بهوسيله اين خصوصيت ميتوانيد نوع و ابعاد كاغذ چاپ را تنظيم كنيد. شكل كلي نحوه استفاده از اين خصوصيت بهصورت زير است: Printer.PaperSize = value value يك ثابت عددي يا رشتهاي است كه ابعاد كاغذ را معين ميكند. اين مقدار ميتواند يكي از مقادير موجود در جدول باشد. در صورت عدم استفاده از مقدار value مقدار فعلي خصوصيت بازگشت داده خواهد شد. 359

370 اجتماعی امور و كار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بيسيک ويژوال نويسی برنامه استاندارد: نام پيشرفته كار رايانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: آزاد شماره:مطالعه جدول مقاديرمربوطبهاندازهكاغذدرخصوصيت PageSize رشتهاي ثابت عددي ثابت كاغذ ابعاد vbprpsletter Inch Inch )اندازهكوچك( vbprpslettersmall 2 vbprpstabloid Inch vbprpsledger Inch vbprpslegal 5 vbprpsstatement 6 vbprpsexecutive Inch Inch8 7 Inch vbprpsa3 8 A3)297 mm( vbprpsa4 9 A4) 297mm( vbprpsa4small 1 ) كچوك هزادنا ( A4 vbprpsa5 11 A5)148 mm( Port خصوصیت ارسال آن به چاپ كه را چاپگري به مربوط پورت نام توان مي خصوصيت اين وسيله به است: صورت اين به خصوصيت اين از استفاده نحوه كلي شكل آورد. دست به شود مي Printer.Port نكته كنند. مي استفاده LPT2 و LPT1 موازي هاي پورت از معموال چاپگرها PrintQuality خصوصیت نحوه كلي شكل كند. مي معين چاپگر در را چاپ وضوح كيفيت خصوصيت اين است: زير صورت به خصوصيت اين از استفاده Printer.PrintQuality = value در كند مي معين را چاپ وضوح ميزان كه است اي رشته يا عددي ثابت يک value شد. خواهد داده بازگشت خصوصيت فعلي مقدار value مقدار از استفاده عدم صورت 360

371 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك مقدار value ميتواند يكي از مقادير موجود در جدول باشد. جدول مقادير مربوط به كيفيت چاپ در خصوصيت PrintQuality ثابت رشتهاي ثابت عددي توضيح vbprpqdraft 1- چاپ با كيفيت Draft vbprpqlow 2- چاپ با كيفيت پايين vbprpqmedium 3- چاپ با كيفيت متوسط vbprpqhigh 4- چاپ با كيفيت باال 12-7 چندرسانهاي) Multimedia ( يكي از ويژگيهاي ديگر زبان برنامهنويسي ويژوالبيسيك توانايي استفاده از امكانات صوتي و تصويري در آن است. با استفاده از كنترلهاي ارائه شده در زبان برنامهنويسي ويژوالبيسيك ميتوان انواع فايلهاي ويدئويي صوتي و موسيقي را مورد استفاده قرار داد كنترل Interface( MCI )Media Control با استفاده از اين كنترل ميتوان انواع فايلهاي صدا موسيقي ويدئويي و سيديهاي صوتي را پخش كرد. اين كنترل بهطور پيشفرض در جعبه ابزار مشاهده نميشود. براي اضافه كردن اين كنترل گزينه Components را از منوي Project انتخاب كنيد سپس در كادرمحاوره Components كه نمايش داده ميشود كادر عالمت 6.0 Microsoft Multimedia Control را انتخاب كنيد و روي دكمه OK كليك كنيد. در اين مرحله كنترل MCI به كنترل جعبه ابزار اضافه ميشود. كنترل MCI شامل 9 دكمه است كه وظايف مختلفي را به عهده دارند. عملكرد اين دكمهها در شكل و مطابق جدول قابل مشاهده است. 361 شكل 12-24

372 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد مثال 3: مي خواهيم پروژه اي طراحي كنيم كه به وسيله آن بتوان فايل هاي ويدئويي از نوع avi را مشاهده كرد براي اين كار عمليات بعد را به ترتيب انجام دهيد: 1- يک پروژه از نوع Standard EXE ايجاد كنيد سپس خصوصيت هاي فرم را مطابق جدول تنظيم كنيد. جدول خصوصياتفرم مقدار خصوصيت Name Caption frmmultimedia Multimedia - 2 يک كنترل منو و كادر تصوير با نام PicVideo مطابق شكل روي فرم قرار دهيد. شكل كنترل MCI را به جعبه ابزار اضافه كنيد. در جعبه ابزار روي آيكن MMControl دابل كليک كنيد تا كنترل MCI روي فرم قرار گيرد سپس خصوصيت Name آن را روي مقدار mcivideo و اندازه و موقعيت آن را مطابق شكل تنظيم نماييد. - 4 به ماژول فرم برويد و دستورات زير را در رويداد Load فرم تايپ كنيد. mcivideo.devicetype = "avivideo" mcivideo.hwnddisplay = picvideo.hwnd 362

373 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك کاردوازدهم: واحد با فايلها نمايش براي را MCI كنترل DeviceType خصوصيت از استفاده با اول دستور رسانههاي انواع ميتوان خصوصيت اين از استفاده با ميكند. آماده AVI نوع از قالببندي لودج در ارائهشده مقادير ميتواند كرد.اينخصوصيت تنظيم استفاده براي را مالتيمديا كند. كسب را جدول توضيح AVI تصويري صوتي فايلهاي پخش صوتي سيدي پخش ديجيتال ويدئويي فايلهاي پخش ويدئويي ديسكهاي پخش WAV نوع از صوتي فايلهاي پخش مقدار AVIVideo CDAudio DigitalVideo Videodisc WaveAudio جعبه كنترل در ويدئويي فايل تصوير ميشود سبب نيز رويداد اين در دوم دستور شود. داده نمايش Picvideo تصوير كنيد: تنظيم زير صورت به را mnuopen گزينه كليك رويداد - 5 Private Sub mnuopen_click() Dim strpath As String strpath = InputBox("Enter Path and Filename :", "Input Data") mcivideo.filename = strpath mcivideo.command = "Open" End Sub ويدئويي فايل نام و مسير داده ورود كادر يك از استفاده با ابتدا رويداد اين در خصوصيت در strpath محتويات سپس ميشود ذخيره strpath متغير در و شده دريافت پيدا دسترسي ويدئويي فايل به بتواند MCI كنترل تا ميگيرد قرار MCI كنترل Filename كنترل تا ميشود تنظيم Open مقدار روي MCI كنترل Command خصوصيت سپس كند اجرا براي را مختلفي فرمانهاي ميتواند خصوصيت اين شود. ويدئويي فايل پخش آماده است. مشاهده قابل جدول در فرمانها اين كند. مشخص كنترل در 363

374 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد جدول مقدار توضيح ابزارموردنيازبرايكنترل MCIرابازميكند. ابزارموردنيازبرايكنترل MCIراميبندد. فايلويدئويي صداياموسيقيراپخشميكند. عملياتپخشياضبطراموقتا قطعميكند. عملياتضبطياپخشراقطعميكند. ازموقعيتجاريكميبهعقبحركتميكند. ازموقعيتجاريكميبهجلوحركتميكند. بهابتدايشيار) Track (جاريحركتميكند.اگر 3 ثانيهازشيارجاريپخششده باشدبهابتدايشيارقبليبازميگردد. يكتركبهجلوحركتميكند. عملياتضبطراآغازميكند. سيديرابهدرايوواردياازآنخارجميكند. Open Close Play Pause Stop Back Step Prev Next Record Eject - 6 پروژه و فرم را با نام playvideo ذخيره كرده سپس برنامه را اجرا كنيد. - 7 روي گزينه Open از منوي File كليک كرده نام و مسير فايل ويدئويي خود را كه داراي پسوند avi است در كادر ورود داده تايپ كنيد و روي دكمه OK كليک نماييد تا به فرم برنامه بازگرديد. - 8 در اين مرحله بعضي از دكمه هاي كنترل MCI فعال مي شوند روي دكمه پخش )Play( كليک كنيد تا فايل ويدئويي مورد نظرتان در كنترل جعبه تصوير نمايش داده شود سپس عملكرد ساير دكمه هاي كنترل MCI را بررسي نماييد. - 9 از برنامه خارج شده و به پنجره ويژوال بيسيک بازگرديد. تمرين: پروژه playvideo را بهگونهاي تغيير دهيد كه به وسيله آن بتوان فايلهاي صوتي با پسوند WAV را پخش كرد. نكته در كنترل MCI با استفاده از خصوصيت Orientation ميتوان كنترل را به صورت افقي )mciorienthorz( يا عمودي )mciorientvert( تنظيم نمود. 364

375 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوازدهم: توانايي استفاده از جلوه هاي گرافيكي و چاپ درويژوال بيسيک نكته كليه دكمههاي موجود دركنترل MCI را ميتوان با استفاده از صفحههايخصوصيت Pages( )Property مرئي يا مخفي فعال يا غيرفعال نمود. به منظور دسترسي به صفحههاي خصوصيت در پنجره خصوصيات روي دكمه روبهروي خصوصيت Custom كليک كنيد سپس زبانه Controls را انتخاب كنيد )شكل 12-26(. شكل کنترل) Movie)MAM Microsoft Active با استفاده از اين كنترل مي توان انواع فايل هاي صوتي و موسيقي مانند WAV و MIDI را پخش كرد و فايل هاي تصويري مانند MPEG AVI و MOV را نمايش داد. اين كنترل به طور عادي در جعبه ابزار مشاهده نمي شود. براي اضافه كردن اين كنترل گزينه Components را از منوي Project انتخاب كنيد سپس در كادرمحاوره Components كه نمايش داده مي شود كادر عالمت Microsoft Active Movie Control را انتخاب كنيد و روي دكمه OK كليک كنيد تا كنترل MAM به جعبه ابزار اضافه شود. اين كنترل نيز مانند كنترل MCI دكمه هاي متعددي را شامل مي شود كه وظايف متفاوتي را بر عهده دارند )شكل 12-27(. 365 شكل 12-27

376 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: آزاد شماره:مطالعه قابل )Stop( توقف و )Play( پخش دكمههاي فقط پيشفرض طور به كنترل اين در رد كنترل انتخاب از پس ميتوانيد دكمهها ساير به دسترسي منظور به ميباشد. استفاده كادر در كنيد. كليك Custom خصوصيت روبهروي دكمه روي خصوصيات پنجره از استفاده با 12-28(. )شكل كنيد كليك Controls زبانه روي Property Pages محاوره مخفي را كنترل بخشهاي ساير و دكمهها ميتوان بخش اين در موجود عالمت كادرهاي كرد. مشاهده قابل يا شكل صوتي فايلهاي بتوان آن وسيله به كه كنيم طراحي پروژهاي ميخواهيم 4: ال مث دهيد: انجام ترتيب به را زير عمليات كار اين براي كرد. پخش را ويدئويي و موسيقي جدول مطابق را فرم خصوصيتهاي كنيد. ايجاد Standard EXE نوع از پروژه يك - 1 كنيد. تنظيم جدول خصوصيت مقدار Name Caption frmmpeg Movie 366 به را MAM كنترل سپس دهيد قرار فرم روي شكل مطابق منو كنترل يك - 2 تا كنيد كليك دابل Active Movie آيكن روي ابزار جعبه در كنيد. اضافه ابزار جعبه كنيد. تنظيم mammovie روي آنرا Name خصوصيت سپس قرارگيرد فرم روي كنترل True مقدار روي را آن AutoStart خصوصيت و كرده انتخاب را mammovie كنترل - 3 كند. پخش آنرا MAM كنترل ميشود باز تصويري يا صوتي فايل زمانيكه در تا كنيد تنظيم

377 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك شكل خصوصيت ShowPositionControls را در كنترل mammovie روي مقدار True تنظيم كنيد تا چهار دكمه ديگر نيز قابل مشاهده و استفاده شوند. - 5 رويداد Click گزينه Open را به صورت زير تنظيم كنيد: Private Sub mnuopen_click() Dim strpath As String strpath = InputBox("Enter Path and Filename :", "Input Data") mammovie.filename = strpath End Sub در اين رويداد پس از دريافت نام و مسير فايل موسيقي يا ويدئويي و ذخيرهسازي آن در متغير strpath محتويات اين متغير در دستور سوم محتويات اين متغير در خصوصيت FileName كنترل mammovie قرار داده ميشود تا آنرا پخش كند. - 6 پروژه و فرم را با نام activemovie ذخيره كرده سپس برنامه را اجرا كنيد. - 7 با استفاده از گزينه Open در منوي File مسير و نام يك فايل mpg را تعيين كنيد. سپس در هنگام پخش فايل مورد نظرتان عملكرد دكمهها و ساير بخشها در كنترل mammovie را بررسي نماييد. - 8 از برنامه خارج شده و به پنجره ويژوالبيسيك بازگرديد. تمرين: پروژه activemovie را براي انواع ديگر فايلها آزمايش كنيد. 367

378 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نويسی ويژوال بيسيک مقدماتی نام استاندارد رايانه كار پيشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد 12-8 شئتصوير) Picture ( با استفاده از شئ تصوير نيز مي توانيد يک تصوير را روي فرم يا در كنترل كادر تصوير نمايش دهيد. به منظور ايجاد يک شئ تصوير از نوع داده Picture استفاده مي شود. با شئ تصوير مي توان انواع فايل هاي گرافيكي مانند ICO GIF BMP و JPG را نمايش داد. 368 مثال 5: مي خواهيم رويه اي بنويسيم كه بتواند يک تصوير را با استفاده از شئ تصوير نمايش دهد. به اين منظور مي توان از يک شئ تصوير همراه با تابع LoadPicture استفاده كرد به اين ترتيب رويه به صورت زير تعريف مي شود: Public Sub showpicture)strpath As String( Dim objpicture As Picture Set objpicture = LoadPicture)strpath( Set picshow.picture = objpicture End Sub اين رويه با يک آرگومان )strpath( براي دريافت مسير و نام فايل تعريف شده است سپس داخل رويه يک شئ از نوع Picture با نام objpicture با دستور Dim تعريف شده است در مرحله بعد با استفاده از دستور Set و تابع LoadPicture تصوير موردنظر در شئ تصوير objpicture بارگذاري مي شود و در پايان با دستور شئ تصوير در كنترل كادر تصوير picshow نمايش داده مي شود. براي فراخواني رويه ShowPicture مي توان به صورت زير عمل نمود: Call showpicture )" C:\WinXP\Coffee Bean.Bmp"( اگر الزم باشد تصوير روي فرم نمايش داده شود مي توان از متد PaintPicture استفاده كرد. به عنوان مثال دستور سوم در رويه showpicture را مي توان به اين صورت تغيير داد تا تصوير روي فرم نمايش داده شود. PaintPicture objpic, 20, 50, 3000, 4000 اين دستور شئ تصوير را در مختصات 20 = X و 50 = Y با عرض 3000 و ارتفاع 4000 روي فرم نمايش مي دهد.

379 پیمانه مهارتی: برنامه نويسی مقدماتی )ويژوال بيسيک( واحد کاردوازدهم: توانايي استفاده از جلوه هاي گرافيكي و چاپ درويژوال بيسيک نكته از متد PaintPicture ميتوان در كنترل كادر تصوير و شئ چاپگر نيز استفاده كرد. متد LoadPicture از انواع فايل هاي گرافيكي مانند JPG GIF ICO BMP و... پشتيباني مي كند. تمرين: پروژهاي طراحي كنيد كه با استفاده از آن بتوان هر تصوير دلخواهي را با استفاده از يک كادر محاوره Open مشاهده كرد به عالوه امكان بزرگ يا كوچک كردن تصوير موردنظر نيز وجود داشته باشد. مثال : 6 مي خواهيم پروژه اي طراحي كنيم كه به وسيله آن بتوان ترسيمات رسم شده روي فرم را در يک فايل ذخيره كرد. براي اين كار عمليات زير را به ترتيب انجام دهيد: - 1 يک پروژه از نوع Standard EXE ايجاد كنيد و فرم و كنترل هاي آن را مطابق شكل و جدول و تنظيم كنيد. جدول خصوصياتفرم خصوصيت مقدار Name frmdrawing Caption Save Picture شكل كنترل خصوصيت Name جدول خصوصياتكنترلها Command Button Command Button cmddrawline cmdsave Picture Box picdrawing Caption &Line &Save - 2 رويداد Click دكمه Line را به صورت زير تنظيم كنيد. Private Sub cmddrawline_click)( 369 ScaleMode = vbpixels

380 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد در اين رويداد عمليات رسم يك خط انجام ميگيرد. - 3 دستور زير را در رويداد Click دكمه Save تايپ كنيد: AutoRedraw = True Line (10, 10)-(200, 200), vbred End Sub SavePicture Image, "C:\drawing.bmp" رويه فرعي SavePicture ميتواند ترسيمات انجام شده روي فرم يا كنترل كادر تصوير را در يك فايل گرافيكي از نوع BMP ذخيره كند. آرگومان اول در اين رويه فرعي خصوصيت Image فرم يا كنترل كادر تصويري است كه ترسيمات روي آن انجام شده است و آرگومان دوم مسير و نام فايلي است كه ترسيمات در آن ذخيره ميشود. - 4 پروژه و فرم را با نام savepicture ذخيره كرده سپس آنرا اجرا كنيد و ابتدا روي دكمه Line و سپس Save كليك كنيد. در پايان به مسير\: C برويد و فايل drawing.bmp را با برنامه نقاشي ويندوز باز كرده و محتويات آنرا بررسي كنيد. - 5 از برنامه خارج شويد و به پنجره ويژوالبيسيك بازگرديد. تمرين: پروژهاي طراحي كنيد كه بهوسيله آن بتوان هر نوع فايل گرافيكي مانند GIF JPG ICO CUR و... را در فايل جديدي با قالببندي BMP ذخيره كرد. 370

381 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك Learn in English Circle Method Draws a circle, ellipse, or arc on an object. Syntax object.circle [Step] (x, y), radius, [color, start, end, aspect] The Circle method syntax has the following object qualifier and parts: Part object Step )x, y( radius color start, end aspect Description Optional. Object expression that evaluates to an object in the Applies To list. If object is omitted, the Form with the focus is assumed to be object. Optional. Keyword specifying that the center of the circle, ellipse, or arc is relative to the current coordinates given by the CurrentX and CurrentY properties of object. Required. Single values indicating the coordinates for the center point of the circle, ellipse, or arc. The ScaleMode property of object determines the units of measure used. Required. Single value indicating the radius of the circle, ellipse, or arc. The ScaleMode property of object determines the unit of measure used. Optional. Long integer value indicating the RGB color of the circle>s outline. If omitted, the value of the ForeColor property is used. You can use the RGB function or QBColor function to specify the color. Optional. Single-precision values. When an arc or a partial circle or ellipse is drawn, start and end specify (in radians) the beginning and end positions of the arc. The range for both is 2 pi radians to 2 pi radians. The default value for start is 0 radians; the default for end is 2 * pi radians. Optional. Single-precision value indicating the aspect ratio of the circle. The default value is 1.0, which yields a perfect (non-elliptical) circle on any screen. 371

382 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد Circle Component Current Draw Line Movie Multimedia Orientation Point Quality Radius Scale Style واژهنامه دايره جزء جاري رسمكردن كشيدن خط فيلم چند رسانهاي جهت نقطه كيفيت شعاع دايره مقياس سبك روش خالصه مطالب ترسيمات گرافيكي را ميتوان روي فرم يا كنترل PictureBox يا چاپگر ايجاد كرد. بهوسيله خصوصيت ScaleMode ميتوان مقياس را در محورهاي مختصات تنظيم كرد. بهوسيله خصوصيت ScaleLeft و ScaleTop ميتوان مختصات نقطه مبنا را تنظيم كرد. خصوصيات ScaleHeight و ScaleWidth مقياس را ميتوان در سيستم مختصات فرم يا كنترل PictureBox تنظيم كرد. بهوسيله خصوصيت Scale نيز ميتوان مختصات نقطه مبنا و مقياس سيستم مختصات را در فرم يا كنترل مورد نظر تنظيم كرد. بهوسيله متد PSet ميتوان هر نقطه دلخواهي را در موقعيت مورد نظر ترسيم كرد. بهوسيله متد Line ميتوان انواع خطوط مستطيل و مستطيل توپر را در مكان مورد نظر رسم كرد. متد Circle ميتواند انواع دايره بيضي يا كماني از دايره و يا بيضي را رسم كند. بهوسيله متد Point ميتوان رنگ يك نقطه را بهدست آورد. اين متد رنگ نقطه مورد نظر را بهصورت يك عدد از نوع Long باز ميگرداند. متدهاي CurrentX و CurrentY موقعيت جاري مكاننما را در صفحه ترسيمات معين ميكنند. خصوصيت CurrentX موقعيت جاري مكاننما را در محور X و CurrentY موقعيت جاري مكان نما را در محور Y معين ميكنند. 372

383 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك کاردوازدهم: واحد 373 كند. پاك را ترسيمات صفحه ميتواند Cls متد داد. نمايش را خصوصيات و متغيرها مقدار ميتوان عبارت نوع هر Print متد بهوسيله كرد. ايجاد خالي فضاي نظر مورد تعداد به ميتوان Print متد در Spc تابع از استفاده با داد. موردنظرنمايش ستون در را ميتواناطالعاتنمايشي متدPrint در تابعTab بااستفادهاز رشتهاي عبارت ارتفاع و عرض ترتيب به ميتوانند TextHeight و TextWidth متدهاي كنند. معين ميكنند دريافت كه را پنجره يك در موجود ترسيمات حذف از ميتوان AutoRedraw خصوصيت بهوسيله آورد. عمل به جلوگيري كند. تعيين را گرافيكي ترسيمات رنگ ميتواند DrawMode خصوصيت نظير گرافيكي متدهاي در را خطوط نوع ميتوان DrawStyle خصوصيت بهوسيله كرد. تعيين Circle و Line متد در را نقاط و خطوط ضخامت ميتوان DrawWidth خصوصيت از استفاده با كرد. مشخص PSet و Circle Line نظير گرافيكي شكل يك سطح كه خطوطي حالت و نوع FillStyle خصوصيت ميكند. تعيين ميكند پر را بيضي يا دايره مستطيل يك سطح پوشاندن براي را نظر مورد رنگ ميتوان FillColor خصوصيت بهوسيله كرد. تعيين بيضي يا دايره مستطيل نظير گرافيكي شكل يك بهصورت را آن متناظر رنگ صحيح عدد يك دريافت با ميتواند QBColor تابع كند. تعيين Long نوع از عدد رنگ سه مقدار اساس بر را نظرتان مورد رنگي تركيبات ميتوانيد RGB تابع بهوسيله كنيد. ايجاد سبز و قرمز آبي اصلي مورد اطالعات ميتوان شئ, اين متدهاي و خصوصيات و Printer شئ از استفاده با كرد. نظارت چاپ عمليات انجام نحوه بر و كرده چاپ كاغذ روي چاپگر بهوسيله را نظر كرد. راپخش ويدئويي و موسيقي صدا فايلهاي ميتوانانواع وMAM كنترلMCI بهوسيله يور را فايلهايگرافيكي ميتوان PaintPicture و LoadPicture رويههاي بهوسيله داد. نمايش فرم يا تصوير كادر كنترل روي را تصوير كادر كنترل يا فرم روي ترسيمات ميتوان SavePicture رويه بهوسيله كرد. ذخيره ديسك

384 374 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره:مطالعه آزاد آزمون نظري - 1 بهوسيله كدام خصوصيت ميتوان يكي از مقياسهاياستاندارد را در ويژوالبيسيك انتخاب كرد د- Scale ب- thgscalehei ج- ScaleWidth الف- ScaleMode - 2 كدام گزينه براي رسم يك مستطيل توپر توسط متد Line مناسب است د- FB ج- F ب- BF الف- B - 3 كدام تابع در متد Print ميتواند اطالعات نمايشي را در ستون مشخصي نمايش دهد د- Spcb ج- Tab ب- Point الف- Spc - 4 خروجي فرمان,,, )150,200(, Circle به صورت... است. ب- بيضي عمودي الف- بيضي افقي د- ربع دايره ج- نيمدايره - 5 بهوسيله كدام خصوصيت ميتوان ضخامت ترسيمات را تعيين كرد ب- DrawStyle الف- DrawMode د- FillStyle ج- DrawWidth - 6 كدام متد ميتواند عمليات چاپ را خاتمه دهد د- KillDoc ج- NewPage ب- Port الف- EndDoc - 7 كدام تابع ميتواند تركيبات رنگي را بر اساس رنگهاي اصلي ايجاد كند د- ColorMode ج- RGB ب- BackColor الف- QBColor - 8 كدام خصوصيت رنگ مورد نظر براي پر كردن يك مستطيل يا دايره را معين ميكند ب- FillColor الف- FillStyle د- ForeColor ج- ColorMode 9 -بهوسيلهكدامخصوصيتموقعيتجاريمكاننمادرصفحهترسيماتدرجهتمحور افقي معين ميشود ب- CurrentY الف- CurrentX د- گزينههاي الف و ب صحيح هستند. ج- Point - 10 واحد اندازهگيري پيشفرض در سيستم مختصات ويژوالبيسيك عبارت است از: د- twip ج- pixel ب- inch الف- cm

385 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کاردوازدهم: توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك - 11 رويه SavePicture ترسيمات را به صورت فايلهاي گرافيكي از نوع... ذخيره ميكند. الف- JPG ب- BMP ج- ICO د- CUR - 12 كدام يك از كنترلها امكان پخش فايلهاي ويدئويي با پسوند MPG را دارند الف- MCI ب- Image ج- MAM د- Picture 13 - Which of the following answer can be used in circle method to draw an ellipse? a- radius b- start c- aspect d- end - 14 سيستم مختصات در ويژوالبيسيک را توضيح داده و نحوه تنظيم آن را بيان کنيد نحوه ساخت و استفاده از شئ تصوير را توضيح دهيد نحوه استفاده از شئ چاپگر را بيان کرده و خصوصيتها و متدهاي آن را توضيح دهيد کاربرد متدهاي Circle Line PSet و Point را با ذکر مثال توضيح دهيد کنترلهاي چند رسانهاي را در ويژوالبيسيک نام برده و نحوه استفاده از آنها را براي پخش فايلهاي موسيقي و نمايش فيلم توضيح دهيد خصوصيتهاي DrawStyle DrawMode CurrentY CurrentX و DrawWidth را توضيح دهيد نحوه ذخيرهسازي ترسيمات گرافيکي را با استفاده از شئ تصوير توضيح دهيد. 375

386 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: آزاد شماره:مطالعه عملي آزمون دهد. نمايش را زير شكل كه كنيد طراحي پروژهاي - 1 به توجه با را كمان و دايره بيضي انواع بتواند كاربر كه كنيد طراحي پروژهاي - 2 كند. مشاهده دلخواهش مقادير ميانگين نفره كالس 20 5 دانشآموزان معدل دريافت با كه كنيد طراحي پروژهاي - 3 دهد. نمايش ميلهاي نمودار بهصورت را نتايج سپس كند, محاسبه را كالس هر معدل هب متفاوت رنگهاي و اندازه با دايرهها پيوسته طور به كه كنيد طراحي پروژهاي - 4 شوند. داده نمايش و ايجاد تصادفي صورت سپس نموده دريافت را مثلث يك رأس سه مختصات كه كنيد طراحي پروژهاي - 5 كند. ترسيم آنرا كند. شبيهسازي را اتومبيل يك حركت كه كنيد طراحي پروژهاي - 6 موردنظر اندازه با را دلخواه تصوير هر بتوان آن بهوسيله كه كنيد طراحي پروژهاي - 7 نمود. ذخيره BMP نوع از گرافيكي فايل بهصورت آنرا تمايل صورت در و كرد مشاهده 376

387 واحد کارسیزدهم هدف جزیی توانايي انجام يك پروژه عملي هدفهای رفتاری پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: - 1 توانایی انجام یک پروژه برنامهنویسی را داشته باشد. 377

388 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه در اين واحد كار يك پروژه برنامهنويسي واقعي را به صورت عملي انجام خواهيد داد تا آنچه را كه قبال فراگرفتهايد به كار بگيريد. يك ماشين حساب مطابق شكل 13-1 ايجاد كنيد كه توانايي انجام محاسبات چهار عمل اصلي محاسبه مجذور و جذر قرينه اعداد درصد و معكوس اعداد را مانند يك ماشين حساب الكترونيكي داشته باشد. براي اين كار عمليات زير را به ترتيب انجام دهيد: شكل برنامه ويژوالبيسيك را اجرا كرده يك پروژه از نوع Standard EXE ايجاد كنيد كه شامل يك فرم كنترل دكمههاي فرمان دو برچسب مطابق شكل 13-2 و يك كنترل زمانسنج باشد سپس خصوصيات آنها را مطابق جداول 13-1 و 13-2 تنظيم كنيد. شكل

389 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه عملي پروژه يك انجام توانايي : کارسیزدهم واحد و Top خصوصيات و نام عنوان و بوده 5 ارتفاع و عرض داراي فرمان دكمههاي و False مساوي را آنها تمام Cancel خصوصيت و است 13-2 شكل مطابق آنها Left كنيد. تنظيم False روي نيز را =( كنترل )بجز آنها Default خصوصيت فرم خصوصيات 13-1 جدول خصوصيت مقدار Name BorderStyle Caption frmmain 1-Fixed Single Calculator كنترلها خصوصيات 13-2 جدول كنترل خصوصيت Label Label Name lblvalue lblmemory Alignment 1 2 BorderStyle 1 1 Enabled True True Interval AutoSize False False Caption 0 عنوان بدون Timer tmrdelay False 150 كنيد: تعريف زير صورت به را برنامهها نياز مورد متغيرهاي و برويد فرم تعاريف بخش به Dim dblnol As Double, dblno2 As Double Dim dblresult As Double, dblmemory As Double 379 Dim strop As String, strno As String dblno1 متغيرهاي ميشوند. تعريف تعاريف بخش در مختلفي متغيرهاي كه ميبينيد عملگر انتخاب از قبل كه عددي ذخيرهسازي براي ترتيب به و Double نوع از dblno2 و نوع از dblresult متغير و ميروند كار به ميشوند وارد عملگر انتخاب از بعد كه عددي و ميشوند. استفاده dblno2 و dblno1 متغيرهاي روي محاسبات نتيجه نگهداري براي و Double

390 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه بهعالوه متغير dblmemory به عنوان حافظه ماشين حساب و متغير رشتهاي strop براي ذخيره كردن عمل رياضي كه كاربر انتخاب كرده استفاده ميشوند و به عنوان آخرين متغير يك متغير رشتهاي ديگر به نام strno عدد وارد شده به ماشين حساب را به صورت يك رشته در خود قرار ميدهد تا در جريان اجراي برنامه با تبديل آن به مقدار عددي در متغيرهاي dblno1 و dblno2 ذخيره شود. براي جلوگيري از تكرار دستورات در رويههاي ديگر الزم است دو رويه را قبل از ساير رويهها ايجاد نماييد. بنابراين اولين رويه را با نام dellblvalue و به صورت زير تعريف كنيد: Private Sub dellblvalue( ) If (strop = "*" Or strop = "/" Or strop = "+" Or strop = "-") And strno = "" Then End If lblvalue.caption = "" End Sub اين رويه بررسي ميكند كه آيا قبل از ورود يك رقم يكي از دكمههاي چهار عمل اصلي فشرده شده است يا خير. چون در صورت انتخاب يك عملگر ورود هر يك از ارقام به عنوان عدد دوم محسوب ميشود در نتيجه بايد عدد وارد شده كه قبل از انتخاب عملگر مورد نظر در كنترل برچسب نمايش داده ميشود پاك شود. اين عمل با دستور "" lblvalue.caption= انجام خواهد شد. پس از تعريف رويه dellblvalue كه در رويدادهاي Click ارقام 1 الي 9 و نقطه اعشار اجرا ميشود رويه دوم را با نام inputnumber و به صورت زير تعريف كنيد. اين رويه وظيفه دريافت ارقام و تشكيل عدد مورد نظر كاربر را به عهده دارد. Private Sub inputnumber (strdigit As String) If strdigit <> "." Then If Left(strno, 1) = "0" And Mid(strno,2, 1) < > "." Then strno = Mid(strno, 2) + strdigit Else strno = strno + strdigit End If Else If InStr(1, strno, ".") = 0 Then If Len(lblvalue.Caption) = 0 Then strno ="0." Else _ 380

391 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي End If End If lblvalue.caption = strno End Sub strno=strno +"." اين رويه يك آرگومان به نام strdigit از نوع رشتهاي دارد كه در زمان فراخواني با توجه به اين كه روي كدام دكمه كليك شده است رقم متناظر با آن را به رويه ميدهد. پس از كليك روي يكي از ارقام يك تا 9 يا نقطه اعشار رويه فراخواني ميشود و كاراكتر متناظر با رقم مربوطه در آرگومان strdigit ذخيره ميشود. سپس با استفاده از يك دستور If مقدار اين آرگومان بررسي ميشود و در صورتي كه مقدار آن مخالف كاراكتر نقطه باشد به اين معني است كه دكمه مربوطه يكي از ارقام يك تا 9 ميباشد در نتيجه If موجود در بخش Then اجرا ميشود و رشته strno را كه مجموعه ارقام وارد شده ميباشد مورد بررسي قرار ميدهد. با استفاده از توابع Left و Mid رشته strno بررسي ميشود. اگر اولين و دومين كاراكتر رشته strno برابر با صفر و نقطه باشند )".0"( به اين معني است كه عدد بين صفر و يك است بنابراين رقم strdigit به رشته ".0" اضافه ميشود. اما در صورت نادرست بودن شرط رقم strdigit به وسيله دستور strno=strno + strdigit به مجموعه ارقام قبلي در رشته strno اضافه ميشود. در واقع اين If براي كنترل ارقام صفري است كه قبل از نقطه اعشار و ساير ارقام غيرصفر وارد ميشوند. به اين صورت از دريافت رقم صفر قبل از ساير ارقام غيرصفر جلوگيري به عمل ميآيد. اما اگر دكمه كليك شده نقطه اعشار باشد If موجود در بخش Else اولين If اجرا ميشود. اين If از ورود نقطه اعشار اضافه جلوگيري ميكند. با استفاده از تابع InStr وجود نقطه اعشار در ارقامي كه تاكنون وارد شدهاند يعني متغير strno بررسي ميشود. اگر رشته strno فاقد نقطه اعشار باشد If موجود در آن اجرا ميشود و با استفاده از تابع Len طول رشته بررسي ميشود و اگر اين مقدار برابر صفر باشد به اين معني است عدد با مقدار.0 شروع ميشود در غير اين صورت نقطه اعشار با دستور strno+"0" strno= به ارقام قبلي اضافه خواهد شد. در پايان اين رويه ارقامي كه تاكنون وارد شدهاند با استفاده از دستور lblvalue.caption=strno در كنترل برچسب نمايش داده ميشوند. به اين ترتيب ميتوان انواع اعداد كوچكتر يا بزرگتر از يک را وارد كرد. 381

392 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: و 9 تا 1 رقمي دكمههاي Click رويداد كرده فراهم را اعداد ورود امكان مرحله اين در كنيد: تنظيم زير صورت به را اعشار نقطه Private Sub cmd1_click() Call dellblvalue Call inputnumber ("1") End Sub Private Sub cmd2_click() Call dellblvalue Call inputnumber ("2") End Sub Private Sub cmd3_click() Call dellblvalue Call inputnumber ("3") End Sub Private Sub cmd4_click() Call dellblvalue Call inputnumber ("4") End Sub Private Sub cmd5_click() Call dellblvalue Call inputnumber ("5") End Sub Private Sub cmd6_click() Call dellblvalue Call inputnumber ("6") End Sub Private Sub cmd7_click() Call dellblvalue Call inputnumber ("7") End Sub 382

393 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي Private Sub cmd8_click() Call dellblvalue Call inputnumber ("8") End Sub Private Sub cmd9_click() Call dellblvalue Call inputnumber ("9") End Sub 383 Private Sub cmddot_click() Call dellblvalue Call inputnumber (".") End Sub - 5 در اين مرحله رويداد دكمه فرمان رقم صفر را به صورت زير تنظيم كنيد: Private Sub cmd0_click() If strop="*" Or strop = "+" Or strop="-" Or Stop="/" Then If Left(strno, 1)<>"0" Or Mid(strno, 2, 1)= "." Then strno = strno + "0" Else strno = "" lblvalue.caption = "" End If Else If Left(strno,1)<> "0" Or Mid(strno, 2,1) = "." Then strno=strno+"0" End If lblvalue.caption = strno End Sub اين رويداد از يك دستور If تشكيل شده است كه در بخش Then و Else آن نيز مجددا يك دستور If به كار رفته است. در اولين دستور If فشرده شدن يكي از دكمههاي مربوط به چهار عمل اصلي بررسي ميشود. در صورتي كه هيچ يك از آنها استفاده نشده باشند نتيجه شرط نادرست بوده و If موجود در بخش Else اجرا ميشود. در اين If نيز با استفاده از تابع Left و Mid بررسي ميشود كه آيا اولين كاراكتر در متغير strno صفر يا دومين كاراكتر در آن نقطه اعشار است يا خير

394 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه - 6 اكنون رويداد Click مربوط به چهار عمل اصلي را به صورت زير تنظيم كنيد: Private Sub cmdmultiply_click() If strop = "" Then strop = "*" dblnol = Val(strno) strno = "" Else If strno <> "" Then dblno2 = Val(strno) Call Compute dblno1 =Val(strno) strno = "" End If strop = "*" End If End Sub Private Sub cmddivision_click() If strop = "" Then strop = "/" dblnol = Val(strno) strno = "" Else If strno <> "" Then dblno2 = Val(strno) Call Compute dblno1 =Val(strno) strno = "" End If strop = "/" End If End Sub Private Sub cmdplus_click() If strop = "" Then 384

395 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي strop = "+" dblnol = Val(strno) strno = "" Else If strno <> "" Then dblno2 = Val(strno) Call compute dblno1 =Val(strno) strno = "" End If strop = "+" End If End Sub Private Sub cmdminus_click() If strop = "" Then strop = "-" dblnol = Val(strno) strno = "" Else If strno <> "" Then dblno2 = Val(strno) Call compute dblno1 =Val(strno) strno = "" End If strop = "-" End If End Sub دستورات اين چهار رويداد مشابه يكديگر هستند. در اين رويدادها ابتدا با استفاده از دستور If مقدار متغير strop بررسي ميشود تا مشخص شود تاكنون عملگري انتخاب شده است يا خير )چون ممكن است عبارتي كه به ماشين حساب داده ميشود مشابه= +3*2 4 يا مانند عبارت= * 3 2 باشد(. در صورتي كه شرط درست باشد )يعني عملگري تاكنون انتخاب نشده است( ابتدا كاراكتر متناسب با دكمهاي كه كليك شده است در متغير strop 385

396 386 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه ذخيره ميشود مثال اگر روي دكمه * كليك كنيد كاراكتر "*" در strop ذخيره ميشود سپس عددي كه قبل از كليك روي چهار عمل اصلي وارد شده است و در متغير strno نگهداري ميشود با استفاده از تابع Val به نوع عددي تبديل و در متغير dblno1 به عنوان عدد اول ذخيره ميشود و مجددا مقدار "" در strno ذخيره ميشود تا مقدار متغير رشتهاي strno براي دريافت عدد دوم از بين برود. اما اگر قبال يكي از چهار عمل اصلي انتخاب شده باشند ديگر مقدار strop برابر رشته "" نيست و دستورات بخش Else اجرا ميشوند. در اينجا يك If ديگر استفاده ميشود و اگر مقداري در متغير strno موجود باشد به اين معني است كه عدد دوم نيز وارد شده است. بنابراين در صورتي كه عباراتي مانند 2*3+4 يا مشابه آنها وارد شوند به اين معني است كه قبل از دريافت عدد 4 بايد محاسبه 2*3 انجام شود پس عدد دوم در متغير dblno2 ذخيره خواهد شد و با فراخواني رويه compute محاسبات انجام ميشود. رويه compute را نيز به صورت زير در ماژول فرم ايجاد كنيد. Private Sub compute() Select Case strop Case "*": dblresult = dblnol * dblno2 Case "/": dblresult = dblnol / dblno2 Case "+": dblresult = dblnol + dblno2 Case "-": dblresult = dblnol - dblno2 Case "power": dblresult = dblnol ^ dblno2 End Select lblvalue.caption = dblresult strno = dblresult End Sub با فراخواني اين رويه و با استفاده از يك دستور Select Case مقدار متغير strop بررسي ميشود تا با توجه به عمل رياضي انتخاب شده اعمال ضرب تقسيم جمع يا تفريق روي اعداد dblno1 و dblno2 انجام شده و نتيجه در متغير dblresult ذخيرهشود. سپس مقدار اين متغير در خصوصيت Caption برچسب ذخيره ميشود تا نتيجه محاسبات در پنجره ماشين حساب ديده شود و به همين صورت اين مقدار براي انجام محاسبات بعدي در متغير strno ذخيره ميشود. به اين ترتيب پس از خاتمه اجراي رويه compute نتيجه محاسبات كه در متغير strno

397 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي ذخيره شده در متغير dblno1 نيز قرار داده ميشود تا در محاسبات بعدي به عنوان اولين عدد مورد استفاده قرار گيرد و پس از اجراي strno="" و حذف نتيجه محاسبات از متغير strno دستورات If موجود در Else تمام ميشود و به عنوان آخرين دستور در اين بخش كاراكتر متناسب با عمل رياضي انتخاب شده در متغير strop براي استفاده در مراحل بعدي ذخيره ميشود. به اين ترتيب يك دوره كامل از ورود اعداد و انجام محاسبات كدنويسي و آماده شده است. - 7 اكنون بايد ماشين حساب را بهگونهاي تنظيم كنيد كه در صورت استفاده از عباراتي مانند= نيز محاسبات به درستي انجام شود بنابراين رويداد Click دكمه فرمان تساوي را به صورت زير تنظيم كنيد: 387 Private Sub cmdequal_click() If strop="/" Or strop="+" Or strop="-" Or strop="*" Then dblno2 = Val(strno) Call compute End If strop = "" End Sub در اين رويداد نيز ابتدا مقدار متغير strop بررسي ميشود تا در صورت كليك روي يكي از دكمههاي چهار عمل اصلي محاسبات انجام شود بنابراين در صورت درست بودن شرط موجود در دستور If ابتدا عدد دوم در متغير dblno2 ذخيره ميشود سپس رويه compute فراخواني ميشود تا محاسبات مربوطه انجام شود و محتويات متغير strop براي مراحل بعدي خالي شود. ذكر اين نكته ضروري است كه عدد اول نيز در اين حالت در هنگام كليك روي يكي از چهار عمل اصلي در متغير dblno1 ذخيره ميشود. - 8 در اين مرحله رويداد Click دكمه BACKSPACE را به صورت زير تنظيم كنيد: Private Sub cmdbackspace_click() If Len (lblvalue.caption) = 1 Then lblvalue.caption = "0" strno="" Else lblvalue.caption = Left(lblvalue.Caption, Len (lblvalue.caption)-1) strno = lblvalue.caption End If End Sub

398 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: هك رشتهاي طول بررسي با و ميشود آغاز If دستور يك با نيز رويه اين كه ميبينيد انجام موجود مقدار از را كاراكترها حذف عمل ميشود داده نمايش برچسب كنترل در خصوصيت مقدار و بوده درست شرط باشد يك برابر رشته اين طول اگر بنابراين ميدهد. اعمال براي strno "= دستور" سپس شده تنظيم صفر روي برچسب كنترل Caption Left و Len توابع از استفاده با صورت اين غير در ميشود. اجرا نيز محاسبات در تغييرات متغير در Caption خصوصيت مقدار و ميشود حذف رشته راست سمت از كاراكتر يك شود. اعمال نيز محاسبات در شده انجام تغييرات تا ميشود ذخيره نيز strno كنيد: تنظيم زير صورت به را درصد دكمه به مربوط رويداد اكنون - 9 Private Sub cmdpercent_click() lblvalue.caption = Val(lblvalue.Caption) * 0.01 strno = lblvalue.caption strop = "" End Sub آن ضرب و عدد به برچسب كنترل Caption خصوصيت تبديل با ابتدا نيز رويداد اين در متغير در آمده دست به مقدار سپس و كرده محاسبه درصد براساس را مقدار 0/01 عدد در تداخل ايجاد از strno "= " دستور اجراي با و ميشود ذخيره بعدي محاسبات براي strno ميآيد. عمل به جلوگيري دهد رخ عملگر چند انتخاب اثر در است ممكن كه اشتباه و رذج ( X 2 توانرساني) به دكمههاي به مربوط Click رويداد 8 مرحله مانند - 10 چهار اين كنيد. تنظيم صورت اين به را معكوسسازي) 1/x ( و )-/+( قرينهسازي )sqrt( دارند. درصد دكمه Click رويداد رويه مشابه عملكردي رويه Private Sub cmdpower_click() lblvalue.caption = Val(lblvalue.Caption) ^ 2 strno = lblvalue.caption strop= "" End Sub Private Sub cmdsign_click() If strno <> "" Then lblvalue.caption = -Val(lblvalue.Caption) strno = lblvalue.caption End If End Sub 388

399 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي Private Sub cmdsqrt_click() lblvalue.caption = Sqr(Val(lblvalue.Caption)) strno = lblvalue.caption strop= "" End Sub Private Sub cmdinverse_click() If Val(lblvalue.Caption) <> 0 Then lblvalue.caption=1/ Val(lblvalue.Caption) strno = lblvalue.caption strop= "" End Sub - 11 اكنون رويههاي رويداد مربوط به دكمههاي+ M, MR و MC را به صورت زير تنظيم كنيد. دكمه+ M براي ذخيره اعداد و نتيجه محاسبات در حافظه ماشين حساب, دكمه MR براي استفاده ازمحتويات حافظه ماشينحساب درعمليات موردنظر و دكمه MC براي پاك كردن حافظه ماشين حساب بهكار ميروند. Private Sub cmdm_click() If strop = "/" Or strop = "+" Or strop = "-" Or strop="*" Then dblno2 = Val(strno) Call compute End If dblmemory = dblmemory + Val(lblvalue.Caption) lblmemory.caption = "M" strop= "" End Sub Private Sub cmdmc_click() dblmemory = 0 lblmemory.caption = "" End Sub Private Sub cmdmr_click() lblvalue.caption = str(dblmemory) If dblmemory=0 Then strno= "" 389 Else

400 390 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: strno=str(dblmemory) End If End Sub و ميرود كار به حساب ماشين حافظه در مقادير ذخيره براي cmdm_click ) رويه) كليك از قبل رياضي اعمال از استفاده صورت در تا ميشود شروع If دستور يك با نتيجه سپس شود انجام compute رويه فراخواني با محاسبات ابتدا M+ دكمه روي دارد قرار dblmemory متغير در كه حساب ماشين حافظه قبلي محتويات به عمليات شدن ذخيره از كاربر مربوطه برچسب كنترل در M كاراكتر نمايش با و ميشود اضافه عمل يك انتخاب عدم صورت در البته ميشود. مطلع حساب ماشين حافظه در اطالعات نميشود انجام نيز محاسباتي كه است طبيعي و نشده اجرا If بخش دستورات رياضي دستور آخرين شد. خواهد اضافه حافظه به حساب ماشين نمايشگر در موجود عدد اما دارد. را مشابه رويههاي ساير در قبلي كاربرد همان نيز strop= يعني"" رويه اين در كار به حساب ماشين حافظه در شده ذخيره مقدار حذف براي cmdmc_click ) رويه) كنترل از M حرف سپس ميشود صفر dblmemory مقدار ابتدا آن اجراي با و ميرود ميشود. برداشته حافظه به مربوط برچسب انجام زمان در حافظه در شده ذخيره مقدار از استفاده براي نيز cmdmr_click ) رويه) رد آنرا رشتهاي مقدار به dblmemory متغير مقدار تبديل با و ميرود كار به محاسبات در تغييرات اعمال براي را If دستور بعد و داده نمايش حساب ماشين برچسب كنترل ميكند. اجرا محاسبات همانطور كنيد. تنظيم زير صورت به را CE و C دكمههاي رويداد مرحله اين در - 12 حافظه محتويات و شده انتخاب عملگرهاي ورودي, اعداد تمام C دكمه ميدانيد كه اولين ورود از پس شده انتخاب رياضي عمل CE دكمه و ميكند پاك را حساب ماشين نميكند. حذف را شده وارد اول عدد اما ميبرد بين از را عدد Private Sub cmdc_click() strno = "" lblvalue.caption = "0" strop = "" dblno1 = 0 dblno2 = 0 dblresult = 0 dblmemory = 0

401 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي 391 lblmemory.caption = "" End Sub Private Sub cmdce_click() If strop="/" Or strop="+" Or strop ="-" Or strop="*" Then lblvalue.caption=dblno1 strno=dblno1 strop="" End If End Sub رويداد) ) cmdc_click مربوط به دكمه C ميشود و همانطور كه ميبينيد كليه متغيرهاي عددي رشتهاي حافظه و نمايشگر ماشين حساب را پاك ميكند. رويداد) ) cmdce_click نيز نحوه انتخاب عملگرهاي رياضي را بعد از ورود عدد اول بررسي ميكند و در صورت درست بودن شرط متغير dblno1 را در خصوصيت Caption كنترل برچسب ماشين حساب قرار داده و متغير strop را خالي ميكند تا عملگر انتخاب شده از بين رفته و عمليات به مرحله بعد از ورود عدد اول بازگردد اكنون بايد رويدادهاي صفحه كليد را نيز بهگونهاي تنظيم كنيد كه در صورت استفاده از صفحه كليد نيز ماشين حساب قابل استفاده باشد. براي اين كار ابتدا خصوصيت KeyPreview را براي فرم پروژه روي مقدار True و خصوصيت Style كليه دكمههاي فرمان را روي مقدار 1-Graphical تنظيم كنيد سپس رويداد KeyPress فرم را به صورت زير تنظيم نماييد: Private Sub Form_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 8: Call cmdbackspace_click cmdbackspace.backcolor = vbred tmrdelay.enabled = True Case 48: Call cmd0_click cmd0.backcolor = vbred tmrdelay.enabled = True Case 49: Call cmd1_click cmd1.backcolor = vbred

402 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 15 / 1 / 2 ف ه شماره: - 84/ 80 / 1 / 3 / 1 0 tmrdelay.enabled = True Case 50: Call cmd2_click cmd2.backcolor = vbred tmrdelay.enabled = True Case 51: Call cmd3_click Cmd3.BackColor = vbred tmrdelay.enabled = True Case 52: Call cmd4_click cmd4.backcolor = vbred tmrdelay.enabled = True Case 53: Call cmd5_click cmd5.backcolor = vbred tmrdelay.enabled = True Case 54: Call cmd6_click cmd6.backcolor = vbred tmrdelay.enabled = True Case 55: Call cmd7_click cmd7.backcolor = vbred tmrdelay.enabled = True Case 56: Call cmd8_click cmd8.backcolor = vbred tmrdelay.enabled = True Case 57: Call cmd9_click cmd9.backcolor = vbred tmrdelay.enabled = True Case 43: Call cmdplus_click 392

403 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي 393 cmdplus.backcolor = vbred tmrdelay.enabled = True Case 45: Call cmdminus_click cmdminus.backcolor = vbred tmrdelay.enabled = True Case 46: Call cmddot_click Cmddot.BackColor = vbred tmrdelay.enabled = True Case 42: Call cmdmultiply_click cmdmultiply.backcolor = vbred tmrdelay.enabled = True Case 47: Call cmddivision_click cmddivision.backcolor = vbred tmrdelay.enabled = True Case 37: Call cmdpercent_click cmdpercent.backcolor = vbred tmrdelay.enabled = True Case 67, 99: Call cmdc_click cmdc.backcolor = vbred tmrdelay.enabled = True Case 69, 101: Call cmdce_click cmdce.backcolor = vbred tmrdelay.enabled = True Case 80, 112: Call cmdpower_click cmdpower.backcolor = vbred tmrdelay.enabled = True Case 83, 115: Call cmdsqrt_click

404 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه cmdsqrt.backcolor = v bred tmrdelay.enabled = True Case 73, 105: Call cmdinverse_click cmdinverse.backcolor = vbred tmrdelay.enabled = True Case 68, 100: Call cmdmc_click cmdmc.backcolor = vbred tmrdelay.enabled = True Case 77, 109: Call cmdm_click cmdm.backcolor = vbred tmrdelay.enabled = True Case 82, 114: Call cmdmr_click cmdmr.backcolor = vbred tmrdelay.enabled = True Case 71, 103: Call cmdsign_click cmdsign.backcolor = vbred tmrdelay.enabled = True Case 61: End Select End Sub Call cmdequal_click cmdequal.backcolor = vbred tmrdelay.enabled = True مشاهده ميكنيد كه با استفاده از يك دستور Select Case مقدار آرگومان KeyAscii رويداد KeyPress بررسي ميشود و با توجه به كليد فشرده شده رويداد Click متناظر با كليدي كه قبال طراحي شده است فراخواني ميشود. اين كار سبب ميشود تا از تكرار دستورات و شلوغ شدن ماژول فرم جلوگيري شود و در هر Case رويداد Click مربوط به دكمهاي كه فشرده شده است فراخوانيشود. پس از خاتمه اجراي رويه رويداد كليد 394

405 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه عملي پروژه يك انجام توانايي : کارسیزدهم واحد تغيير قرمز به كنترل رنگ مربوطه كنترل BackColor خصوصيت از استفاده با شده فشرده ات ميشود تنظيم True روي زمانسنج كنترل Enabled خصوصيت سپس ميشود. داده اول حالت به را كنترل رنگ كوتاهي زمان گذشت از پس و كند كار به شروع زمانسنج اين به شود. آماده بعد دفعه براي تا ميكند False را خود Enabled خصوصيت و بازگرداند كليدها شدن فشرده حساب ماشين پنجره روي كليد صفحه كليدهاي فشردن با صورت زير صورت به را زمانسنج كنترل Timer رويداد سپس است. مشاهده قابل رنگ تغيير با كنيد: تنظيم Private Sub tmrdelay_timer() cmddot.backcolor = &H F cmd0.backcolor = &H F cmd1.backcolor = &H F cmd2.backcolor = &H F cmd3.backcolor = &H F cmd4.backcolor = &H F cmd5.backcolor = &H F cmd6.backcolor = &H F cmd7.backcolor = &H F cmd8.backcolor = &H F cmd9.backcolor = &H F cmdplus.backcolor = &H F cmdminus.backcolor = &H F cmdmultiply.backcolor = &H F cmddivision.backcolor = &H F cmdbackspace.backcolor = &H F cmdc.backcolor = &H F cmdce.backcolor = &H F cmdpercent.backcolor = &H F cmdpower.backcolor = &H F cmdsqrt.backcolor = &H F cmdinverse.backcolor = &H F cmdmc.backcolor = &H F cmdm.backcolor = &H F cmdmr.backcolor = &H F 395

406 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه cmdsign.backcolor = &H F cmdequal.backcolor = &H F tmrdelay.enabled = False End Sub - 14 رويداد Load فرم را نيز به صورت زير تنظيم كنيد تا مقادير متغيرها مقداردهي اوليه شود: Private Sub Form_Load() cmdc _Click)( End Sub - 15 نوار منو و گزينههاي موجود در آنرا مطابق شكل 13-3 و 13-4 ايجاد كنيد. روي كادر عالمت Enabled گزينه Black و White كليک كنيد و آنها را از حالت انتخاب خارج كنيد. به عالوه روي كادر عالمت Checked گزينه Right Alignment كليك كنيد و آنرا انتخاب نماييد. شكل 13-4 شكل اكنون به ماژول فرم برويد و رويداد Click گزينههاي Clear و Exit را به صورت نشان داده شده در صفحه بعد تنظيم كنيد. گزينه Clear همان عملكرد دكمه C را دارد و انتخاب گزينه Exit سبب نمايش يك كادر پيغام خواهد شد كه در صورت كليك روي دكمه OK برنامه خاتمه يافته و در صورت كليك روي دكمه Cancel كاربر به پنجره ماشين حساب باز ميگردد. Private Sub mnuclear_click() Call cmdc_click End Sub

407 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي Private Sub mnuexit_click() Dim intanswer As Integer intanswer = MsgBox("Do You Want To Exit?",vbOKCancel _ +vbinformation, "Exit") If intanswer = vbok Then Unload Me End Sub - 17 در اين مرحله رويداد مربوط به گزينههاي زيرمنوهاي ForeGround و BackGround را براي تغيير رنگ قلم و زمينه نمايشگر ماشين حساب به صورت زير تنظيم كنيد: Private Sub mnublack_click() lblvalue.forecolor = vbblack mnublack.enabled = False mnublue.enabled = True mnured.enabled = True End Sub Private Sub mnublue_click() lblvalue.forecolor = vbblue mnublack.enabled = True mnublue.enabled = False mnured.enabled = True End Sub Private Sub mnured_click() lblvalue.forecolor = vbred mnublack.enabled = True mnublue.enabled = True mnured.enabled = False End Sub Private Sub mnuwhite_click() lblvalue.backcolor = vbwhite mnuwhite.enabled = False mnugreen.enabled = True mnumagenta.enabled = True End Sub 397

408 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 15 / 1 / 2 ف ه شماره: - 84/ 80 / 1 / 3 / 1 0 Private Sub mnugreen_click() lblvalue.backcolor = vbgreen mnuwhite.enabled = True mnugreen.enabled = False mnumagenta.enabled = True End Sub Private Sub mnumagenta_click() lblvalue.backcolor = vbmagenta mnuwhite.enabled = True mnugreen.enabled = True mnumagenta.enabled = False End Sub - 18 اكنون رويدادClick مربوط به زيرمنوي Alignment را تنظيم كنيد. براي اين كار رويههاي دو گزينه اين زير منو را به صورت زير تنظيم كنيد: Private Sub mnuleft_click() lblvalue.alignment = vbleftjustify mnuleft.checked = True mnuright.checked = False End Sub Private Sub mnuright_click() lblvalue.alignment = vbrightjustify mnuleft.checked = False mnuright.checked = True End Sub در اين صورت با انتخاب هر يك از اين گزينهها چك مارك در كنار گزينهاي كه كليك شده است قرار داده ميشود و چك مارك گزينه ديگر حذف ميشود. به عالوه با توجه به گزينه كليك شده خصوصيت Alignment نمايشگر ماشين حساب نيز تنظيم ميشود در اين مرحله الزم است تا براي گزينه About در منوي Help دستورات الزم را تايپ كنيد. هدف از اين گزينه ارايه شماره نگارش نرمافزار به كاربر است بنابراين يك فرم با مشخصات ارايه شده در جدول 13-3 و مطابق با شكل 13-5 به پروژه اضافه كنيد. 398

409 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( واحد کارسیزدهم : توانايي انجام يك پروژه عملي شكل 13-5 كنترل خصوصيت Image جدول 13-3 Command Label Form Button Name imgcalculate lblversion cmdok frmabout Caption - Calculator Version &OK About Stretch True BorderStyle Alignment پس از اضافه كردن فرم جديد آنرا با نام About ذخيره كنيد و سپس رويداد Click دكمه OK و Unload فرم About را به صورت زير تنظيم كنيد: Private Sub cmdok_click() Unload Me End Sub Private Sub Form_Unload(Cancel As Integer) frmmain.enabled = True End Sub - 21 در اين مرحله رويه رويداد Click گزينه About را از منوي Help به صورت زير تنظيم كنيد. اولين دستور سبب نمايش فرم About ميشود و دستور دوم فرم اصلي را غيرفعال ميكند و تا زماني كه كاربر روي دكمه OK فرم About كليك نكند يا آن را نبندد نميتواند از ماشينحساب استفاده كند. Private Sub mnuabout_click() 399 frmabout.show

410 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه frmmain.enabled = False End Sub - 22 پروژه و فرم اصلي را با نام calculator ذخيره كنيد سپس آنرا اجرا كرده و براي حالتهاي مختلف آزمايش كنيد به اجراي پروژه خاتمه داده و پنجره ويژوالبيسيك را ببنديد. 400

411 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( آزمون پایانی آزمون پايانی )نظري( - 1 مقدار K پس از خاتمه حلقه زير چقدر است K=1 Do While (K<3) K=K+ 1 Loop د- 1 ج- 2 ب- 3 الف- 4-2 در صورتيكه Option Base 1 باشد تعداد اعضاي آرايه 5) A( چقدر خواهد بود د- 8 ج- 7 ب- 6 الف- 5-3 خروجي دستور ( 3, )«AliReza» Right چيست د-»AliRe«ج-»iReza«ب- eza الف-»Ali«- 4 كدام نوع داده ميتواند هر نوع دادهاي را نگهداري كند د- Long ج- Boolean ب- Single الف- Variant - 5 كدام خاصيت كنترل كادر متن تراز متن را در كنترل تعيين ميكند ب- MaxLength الف- Alignment د- Appearance ج- BorderStyle - 6 خروجي دستور)) Now ) WeekdayName (Weekday چيست ب- شماره هفته جاري الف- شماره روز جاري د- نام ماه جاري ج- نام روز جاري 7 -اگرآرايه) To9 grade (10 To 17, 2 تعريفشود آنگاهحاصل 2(, LBound(gradeچيست د- 9 ج- 2 ب- 17 الف خروجي دستور) Replaceچيست («This is a book.», «i», «I»,,, vbbinarycompare ب- book.this Is a الف- book.this Is a د- book.s Is a ج- book.s is a - 9 با فرض اينكه" SuperComputer " strname = باشد حاصل عبارت 401

412 402 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه 5),3(, (strname Left (Right چيست ب-»Sup«الف-»pu«ج-»per«د-»put«10 -كدامخاصيتدركنترلكادرليست شمارهعضوانتخابشدهدرآنراتعيينميكند ب- ListCount الف- ListIndex ج- Index د- Item - 11 كدام كاراكتر در متد Print سبب ميشود اطالعات نمايشي بدون فاصله در كنار هم قرار گيرند الف- ; ب-, ج-! د- # - 12 حاصل عبارت), 0 «ware» InStr(5,»hardwAre and software», چيست ب- صفر الف- 5 ج- 18 د در صورتيكه يك متغير در بخش تعاريف ماژول فرم با دستور Dim معرفي شود.... الف- در زمان اجراي برنامه پيام خطا نمايش داده ميشود. ب- متغير در تمام رويههاي ماژول كد قابل استفاده است. ج- متغير در تمام رويههاي فرم قابل استفاده است. د- متغير در تمام ماژولهاي پروژه قابل استفاده است حاصل عبارتTrue )MonthName (Month(Date), چيست الف- تاريخ جاري سيستم ب- نام ماه جاري به صورت كامل ج- نام ماه جاري به صورت خالصه د- شماره ماه جاري - 15 در صورت تعريف يك رويه با كلمه كليدي... Public. الف- رويه مورد نظر در تمام ماژولهاي فرم و ماژولهاي كد قابل استفاده است. ب- رويه مورد نظر در تمام ماژولهاي فرم قابل استفاده است. ج- امكان فراخواني آن بهوسيله رويههاي رويداد وجود ندارد.

413 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه پایانی آزمون 403 ندارد. وجود ويژوالبيسيك آماده رويههاي بهوسيله آن فراخواني امكان د- چيست عبارت)) Asc(Chr(65 حاصل - 16» A«الف- 65 ب- خالي رشته يك ج- ميشود. داده نمايش خطا پيام د- مييابد خاتمه زير عبارتهاي از كداميك با فرعي رويه يك - 17 Call ب- Function الف- Sub د- End Sub ج- فراهمميكند PicturBox MCIامكاننمايشفيلمرادركنترل كدامخاصيتدركنترل - 18 hwnddisplay ب- DeviceType الف- Command د- FileName ج- ميرود كار به رشتهاي نوع از متغير يك تعريف براي كاراكتر كدام - 19 # ب- & الف- $ د-! ج- چيست Not (True) Or 5<3 And عبارت" A»>"B» حاصل - 20 False ب- True الف- 1 د- صفر ج- كند محاسبه را اعداد از مشخصي تعداد ميانگين و زيرمجموع الگوريتم اگر - 21 است درست 6 مرحله مورد در گزينه كدام شروع 1- I و 1 Sum و c -2 كن دريافت را N 3- كن دريافت را M 4- Sum Sum + M مرحله به برو آنگاه I < اگرN = 7- بده نمايش را Sum -8 N

414 اجتماعی امور و کار وزارت اسالمی ارشاد و فرهنگ وزارت مقدماتی بیسیک ویژوال نویسی برنامه استاندارد: نام پیشرفته کار رایانه استاندارد نام 0-84/ 80 / 1 / 3 / 1 شماره: ه ف - 15 / 1 / 2 شماره: پايان 9- N Sum - د- 1 N N + 1 ج- I I - 1 ب- I I + الف- 1 را گزينه كدام آوريم دست به را M تا 1 اعداد حاصلضرب بخواهيم صورتيكه در - 22 ميدهيم قرار سؤال عالمت بهجاي I >= الف- M I < = ب- M M < ج- I M > د- I ندارد را تابعي كليدهاي تشخيص توانايي رويداد كدام - 23 KeyDown ب- KeyUp الف- KeyDown و KeyUp د- KeyPress ج- ميدهد انجام عملي چه زير الگوريتم - 24 شروع 1- كن دريافت را x 2- x x آنگاه است < x اگر -3 بده نمايش را x 4- پايان 5- مثبت اعداد قرينه ب- x مطلق قدر محاسبه الف- نميدهد. انجام عملي هيچ الگوريتم د- x صحيح جزء ج- 404

415 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( آزمون پایانی - 25 كدامیک از موارد زير از ويژگيهاي الگوريتم محسوب نميشود ب- خاتمه پذير بودن الف- رعايت ترتيب د- ارايه فرمولهاي پيچيده ج- ارايه جزييات كافي - 26 كدام نوع داده براي ذخيرهسازي سن يك فرد مناسبتر است د- Byte ج- Word ب- Long الف- Integer - 27 كدام خاصيت اولويت انجام رويدادهاي صفحه كليد را بين فرم و كنترلهاي موجود در آن تعيين ميكند ب- خاصيت KeyPreview در فرم الف- خاصيت Key در فرم د- خاصيت KeyPreview در كنترلها ج- خاصيت Key در كنترلها - 28 حاصل عبارت 3 + *2 18\3 چيست ب- 14 الف- 13 د- 16 ج عنوان يك فرم به وسيله كدام خاصيت تعيين ميشود ب- Text الف- Enabled د- Caption ج- Name - 30 بهوسيله كدام متد ميتوان رنگ يك نقطه از تصوير را بهدست آورد ب- Point الف- PSet د- Spc ج- Tab آزمون پايانی )عملي( پروژهاي طراحي كنيد كه يك پازل را شبيهسازي كند. 405

416 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه پاسخنامه پيشآزمون 3- ب( 2- ب( 1- ب( آزمون نظري واحد كار 1-4 ب( - 3 ج( -2 الف( -1 ج( 8- د( 7- الف( 6- الف( 5- الف( - 11 )c -10 ب( -9 الف( آزمون نظري واحد كار 2 4 -ب( 3- د( 2 -ب( 1- ج( 8- ج( 7- الف( 6- الف( 5- ب( -11 )b - 10 ب( -9 الف( آزمون نظري واحد كار 3-4 الف( - 3 ب( -2 ب( -1 ب( 8- ج( 7- د( 6- ج( 5- ب( 12- الف( 11- د( 10- ب( 9- ج( -16 )d -15 ب( -14 الف( -13 ب( ) b -17 آزمون نظري واحد كار 4-4 ب( -3 ب( -2 الف( -1 ج( 8- ب( 7- الف( 6- ج( 5- ج( )c -9 آزمون نظري واحد كار 5 4- الف( 3- ب( 2- ب( 1 -ج( 8- الف( 7- ج( 6- الف( 5- ب( -11 b ) 10 -ج( -9 د( آزمون نظري واحد كار 6 4- ج( 3- ج( 2- الف( 1- ب( 5- الف( 6- د( 7- ب( 8- ج( 406

417 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( آزمون پایانی 12- ج( 11- ب( 10- ج( 9- ب( -14 )d -13 الف( آزمون نظري واحد كار 7 4- ب( 3- د( 2- ب( 1- ب( 8- ب( 7- ب( 6- ب( 5- الف( 12- د( 11- الف( 10- ج( 9- د( )c -13 آزمون نظري واحد كار 8 4- ب( 3- الف( 2- ب( 1- ج( 8- ج( 7- ج( 6- ب( 5- ج( )a -9 آزمون نظري واحد كار 9 4- الف( 3- ب( 2- ج( 1- ب( 8- الف( 7- ج( 6- ب( 5- ب( -11 )b -10 الف( -9 الف( آزمون نظري واحد كار ب( 3- ب( 2- الف( 1- ب( 8- ب( 7- د( 6- ج( 5- د( )d -9 آزمون نظري واحد كار ب( 3- ج( 2 -د( 1- ب( 8- ب( 7- الف( 6- ج( 5- الف( -11 )b -10 الف( -9 د( آزمون نظري واحد كار ب( 3- ج( 2 -ب( 1- الف( 8- ب( 7- ج( 6- د( 5- ج( 12- ج( 11- ب( 10- د( 9- الف( )c

418 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه آزمون پاياني )نظري( 4- الف( 3- ب( 2- الف( 1- ب( 8- الف( 7- ج( 6- ج( 5- الف( 12- ج( 11- الف( 10- الف( 9- د( 16- ب( 15- الف( 14- ج( 13- ج( 20- ب( 19- د( 18- ب( 17- ج( 24- الف( 23 -ج( 22- الف( - 21 الف( 28- ج( 27- ب( 26- د( 25- د( 30- ب( 29- د( 408

419 بیسیک( )ویژوال مقدماتی برنامهنویسی مهارتی: پیمانه 1 ضمیمه 1 ضميمه Visual Basic 6.0 نرمافزار نصب CD ديسكهاي بايد ابتدا ويژوالبيسيك برنامهنويسي زبان نصب براي تهيه را )Enterprise Edition( نهايي نگارش Microsoft Visual Studio 6 نرمافزار توضيح CD ديسك روي از نرمافزار اين نصب چگونگي اينجا در كنيد. هستند. مشابهي نصب مراحل داراي تقريبا نيز ديگر مدلهاي ميشود. داده Aut o نوع از شما CD اگر دهيد. قرار درايو داخل را نرمافزار نصب CD به ويندوز نصب برنامه مربوطه درايو در CD گرفتن قرار از بعد باشد Run نرمافزار نصب به مربوط محاوره كادر اولين و ميشود اجرا خودكار طور برنامه نشد اجرا خودكار طور به نصب برنامه كه صورتي در اما ميشود ظاهر Setup. فايل خود CD درايو ريشه در و كرده اجرا را Window Explorer يا My Computer كادر اولين و شده اجرا نصب برنامه كنيد. كليك دابل آن روي سپس و كنيد پيدا را exe 1(. )شكل ميشود داده نمايش نصب محاوره شكل كنيد: دنبال را مراحل اين ترتيب به اكنون كنيد. كليك محاوره كادر اولين در Next دكمه روي ابتدا - 1 روي سپس و I accept the agreement انتخاب دكمه روي 2 شكل مشاهده از پس - 2 نماييد. كليك Next دكمه

420 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه كار پیشرفته شماره: 0 o 84/ 80 / 1 / 3 / 1 شماره: o 15 / 1 / 2 ف ه در صورت تمایل ميتوانید در هر كادرمحاوره با كلیک روي دكمه Back <به كادر نكته محاوره قبل بازگردید. شكل 2 Please enter your product<s ID در شكل 3 در دو كادر متني كه در بخش: number o 3 كادر محاوره قرار گرفته اند شماره )ID( نرم افزار را تایپ كنید. سپس در كادر متن هاي name: Your و : name Your company<s اسامي دلخواه خود را بنویسید و در پایان مجددا روي دكمه Next كلیک كنید. شكل 3 410

421 پیمانه مهارتی: برنامه نویسی مقدماتی )ویژوال بیسیک( ضمیمه 1 نكته در صورت نادرست بودن شماره ID امكان نصب برنامه وجود ندارد. اگر شماره ID ارایه شده در اینجا قابل استفاده نباشد ميتوانید از فایلهاي موجود در CD شماره ID را پیدا كنید یا آن را از فروشنده درخواست كنید. o 4 در كادرمحاوره شكل 4 روي دكمه Next كلیک كنید. o 5 در كادرمحاوره شكل 5 روي دكمه OK كلیک كنید تا كامپیوتر مجددا راه اندازي شود شكل 4 شكل 5 o 6 پس از راه اندازي مجدد كامپیوتر كمي صبر كنید كادرمحاوره اي كه ظاهر مي شود )شكل 6( كه روش هاي مختلفي را براي نصب نرم افزار پیشنهاد مي كند روي دكمه انتخاب Custom و سپس روي دكمه Next كلیک كنید. o 7 در كادرمحاوره شكل 7 مي توانید مسیر نصب نرم افزار را انتخاب كنید. براي این كار مسیر دلخواه خود را در كادر متن تایپ كنید یا با استفاده از دكمه Browse این كار را انجام دهید. 411

422 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شكل 6 شكل 7 در اين كادر محاوره حداقل فضاي مورد نياز براي نصب نرمافزار و فضاي آزاد درايوي كه نرمافزار روي آن نصب ميشود قابل مشاهده است. توجه داشته باشيد كه فضاي آزاد روي درايو مورد نظر كمتر از حداقل فضاي پيشنهادي نباشد. در پايان اينمرحله روي دكمه Next كليك كنيد تا كادرمحاوره بعد )شكل 8( ظاهرشود. شكل 8 412

423 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( ضمیمه 1-8 در اين مرحله مدتي صبر كنيد تا كادرمحاوره بعدي نمايش داده شود. شكل 9-9 در اين كادر محاوره )شكل 9( روي دكمه Continue كليك كنيد تا كادر محاوره مطابق شكل 10 مشاهده شود. در اين كادر محاوره روي دكمه OK كليك كنيد تا روند نصب نرمافزار ادامه يابد. 413 شكل 10

424 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه كار پیشرفته شماره: 0 o 84/ 80 / 1 / 3 / 1 شماره: o 15 / 1 / 2 ف ه نكته اگر مایل هستید عملیات نصب را خاتمه دهید ميتوانید در كادر محاوره شكل 9 روي دكمه Exit Setup كلیک كنید و در كادر محاورهاي كه ظاهر ميشود )شكل 11( روي دكمه Exit Setup كلیک نمایید و اگر ميخواهید مجددا به كادر محاوره قبل )شكل 9( بازگردید روي دكمه Resume Setup كلیک كنید. شكل 11 پس از كلیک روي دكمه OK پنجره نصب نرم افزار به صورت شكل 12 در مي آید. مدتي صبر كنید تا وارد مرحله بعد شوید. شكل 12 o 10 اگر نسخه هاي دیگري از بسته نرم افزاري Visual Studio یا همین نگارش را قبال نصب كرده باشید كادر محاوره اي مشابه شكل 13 نمایش داده مي شود. براي اطمینان بیشتر از ایجاد تغییرات در بخش هاي دیگر سیستم خود در صورت مشاهده این كادر محاوره روي دكمه No كلیک كنید. 414

425 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( ضمیمه 1 شكل پس از انجام مرحله 10 پنجره نصب برنامه مجددا به صورت شكل 12 مشاهده ميشود مدتي صبر كنيد تا كادر محاوره بعدي مطابق شكل 14 نمايش داده شود. 415 شكل دراين مرحله )شكل 14( شمابايد زبانهايبرنامهنويسي مانند زبانهايبرنامهنويسي VCو ++ 6 VB6 VFoxPro6 اجزاي گرافيكي مانند انواع فايلهاي گرافيكي كه در پروژههاي برنامهنويسي ميتوان از آنها استفاده نمود و ساير ابزارهاي مورد نياز خود را براي نصب انتخاب كنيد. چون در اين كتاب زبان برنامهنويسي ويژوالبيسيك 6 مورد نظر است بنابراين با كليك روي كادر عالمت مربوط به موارد زير آنها را انتخاب كنيد يا ساير موارد را در ليست اين كادر محاوره از حالت انتخاب خارج كنيد. كادرهاي عالمتي كه بايد انتخاب شوند عبارتند از: Microsoft Visual Basic 6.0 ActiveX Data Access Graphics Tools

426 وزارت كار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه كار پیشرفته شماره: 0 o 84/ 80 / 1 / 3 / 1 شماره: o 15 / 1 / 2 ف ه پس از انجام تنظیمات گفته شده كادر محاوره مربوطه به صورت شكل 15 در مي آید شكل 15 در خاتمه این مرحله روي دكمه Continue كلیک كنید. نكته هر یک از گروههاي موجود در لیست به چند جزء كوچکتر تقسیم ميشوند كه اگر بخواهید در یک گروه فقط بعضي از اجزاي آن را نصب كنید ميتوانید از دكمه Change Option در كادر محاوره شكل 14 استفاده كنید. البته پیشنهاد ميشود از دستكاري این بخشها بدون آگاهي كافي خودداري نمایید. اگر بخواهید تمام گروهها را در لیست 14 انتخاب كنید روي دكمه Select All كلیک كنید. در صورتي كه بخواهید مسیر نصب هر یک از گروهها را روي دیسک سخت تغییر دهید ميتوانید از دكمه...Change Folder در كادر محاوره شكل 14 استفاده كنید. o 13 پس از انجام مرحله 12 ابتدا برنامه نصب فضاي لازم را براي نصب نرم افزار محاسبه مي كند )شكل 16( و در صورت وجود فضاي آزاد به اندازه مناسب مرحله انجام عملیات كپي فایل هاي نرم افزار مطابق شكل 17 آغاز مي شود. 416

427 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( ضمیمه 1 شكل پس از خاتمه مرحله 13 كادر محاورهاي مطابق شكل 18 نمايش داده ميشود كه بيانگر به روز كردن اطالعات مورد نياز سيستم است در مرحله بعد كادر محاورهاي مطابق شكل 19 نمايش داده ميشود مبني بر اينكه عمل نصب با موفقيت انجام شده است. پس از كليك روي دكمه OK كادر محاوره ديگري مطابق شكل 20 نمايش داده ميشود در اين كادر محاوره روي دكمه Restart Windows كليك كنيد تا سيستم مجددا راهاندازي شود. 417 شكل 17

428 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه شكل 18 شكل

429 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( ضمیمه 1 شكل پس از راهاندازي مجدد سيستم كادرمحاوره ديگري )شكل 21( ظاهر ميشود. اگر ديسكهاي CD مربوط به راهنماي MSDN مايكروسافت را در اختيار داشته باشيد ميتوانيد به وسيله اين بخش راهنماي مزبور را نصب كنيد تا امكان استفاده از منوي Help ويژوالبيسيك فراهم شود. براي اين كار كافي است ديسكهاي CD مربوطه را داخل درايو قرار داده و روي دكمه Next كليك كنيد. 419 شكل 21

430 وزارت کار و امور اجتماعی وزارت فرهنگ و ارشاد اسالمی نام استاندارد: برنامه نویسی ویژوال بیسیک مقدماتی نام استاندارد رایانه کار پیشرفته شماره: - 84/ 80 / 1 / 3 / 1 0 شماره: - 15 / 1 / 2 ف ه اما اگر ديسكهايCD مربوطه را دراختيار نداشته باشيد بايد روي كادر عالمت MSDN Install موجود در اين كادر محاوره كليك كنيد تا از حالت انتخاب خارج شود سپس روي دكمه Next كليك كنيد پس از انجام مرحله 16 )در صورت عدم نصب )MSDN يك كادر پيغام مطابق شكل 22 مبني بر عدم امكان استفاده از منوي Help در برنامه ويژوالبيسيك نشان داده خواهد شد. روي دكمه Yes كليك كنيد. شكل در اين مرحله كادر محاورهاي مطابق شكل 23 براي نصب بعضي از سرويسها نمايش داده ميشود كه به آنها نيازي نداريد. مجددا روي دكمه Next كليك كنيد. شكل در اين مرحله نيز در كادر محاوره شكل 24 روي دكمه Next كليك كنيد زيرا نيازي به نصب سرويسهاي موجود در ليست اين كادر محاوره نخواهيد داشت اگر مايل هستيد در مرحله بعد اطالعات خود را در سايت اينترنتي مربوطه ثبت كنيد )در صورت عدم رعايت حقوق Copy Right امكان استفاده از اين بخش ميسر نيست(.

431 پیمانه مهارتی: برنامهنویسی مقدماتی )ویژوال بیسیک( ضمیمه 1 در پايان روي دكمه Finish كليك كنيد تا نصب نرمافزار خاتمه يابد سپس سيستم را restart نماييد. مطابق شكل 25 در كادر محاوره مربوطه روي كادر عالمت Register Now كليك كنيد تا از حالت انتخاب خارج شود سپس روي دكمه Finish كليك كنيد در اين مرحله عمليات نصب نرمافزار خاتمه يافته است و شما ميتوانيد زبان برنامهنويسي ويژوالبيسيك را از منوي Start ويندوز اجرا كنيد. شكل 24 شكل

در اين آزمايش ابتدا راهاندازي موتور القايي روتور سيمپيچي شده سه فاز با مقاومتهاي روتور مختلف صورت گرفته و س سپ مشخصه گشتاور سرعت آن رسم ميشود.

در اين آزمايش ابتدا راهاندازي موتور القايي روتور سيمپيچي شده سه فاز با مقاومتهاي روتور مختلف صورت گرفته و س سپ مشخصه گشتاور سرعت آن رسم ميشود. ك ي آزمايش 7 : راهاندازي و مشخصه خروجي موتور القايي روتور سيمپيچيشده آزمايش 7: راهاندازي و مشخصه خروجي موتور القايي با روتور سيمپيچي شده 1-7 هدف آزمايش در اين آزمايش ابتدا راهاندازي موتور القايي روتور

Διαβάστε περισσότερα

ﻞﻜﺷ V لﺎﺼﺗا ﺎﻳ زﺎﺑ ﺚﻠﺜﻣ لﺎﺼﺗا هﺎﮕﺸﻧاد نﺎﺷﺎﻛ / دﻮﺷ

ﻞﻜﺷ V لﺎﺼﺗا ﺎﻳ زﺎﺑ ﺚﻠﺜﻣ لﺎﺼﺗا هﺎﮕﺸﻧاد نﺎﺷﺎﻛ / دﻮﺷ 1 مبحث بيست و چهارم: اتصال مثلث باز (- اتصال اسكات آرايش هاي خاص ترانسفورماتورهاي سه فاز دانشگاه كاشان / دانشكده مهندسي/ گروه مهندسي برق / درس ماشين هاي الكتريكي / 3 اتصال مثلث باز يا اتصال شكل فرض كنيد

Διαβάστε περισσότερα

هدف:.100 مقاومت: خازن: ترانزيستور: پتانسيومتر:

هدف:.100 مقاومت: خازن: ترانزيستور: پتانسيومتر: آزمايش شماره (10) تقويت كننده اميتر مشترك هدف: هدف از اين آزمايش مونتاژ مدار طراحي شده و اندازهگيري مشخصات اين تقويت كننده جهت مقايسه نتايج اندازهگيري با مقادير مطلوب و در ادامه طراحي يك تقويت كننده اميترمشترك

Διαβάστε περισσότερα

ﻴﻓ ﯽﺗﺎﻘﻴﻘﺤﺗ و ﯽهﺎﮕﺸﻳﺎﻣزﺁ تاﺰﻴﻬﺠﺗ ﻩﺪﻨﻨﮐ

ﻴﻓ ﯽﺗﺎﻘﻴﻘﺤﺗ و ﯽهﺎﮕﺸﻳﺎﻣزﺁ تاﺰﻴﻬﺠﺗ ﻩﺪﻨﻨﮐ دستوركارآزمايش ميز نيرو هدف آزمايش: تعيين برآيند نيروها و بررسي تعادل نيروها در حالت هاي مختلف وسايل آزمايش: ميز مدرج وستون مربوطه, 4 عدد كفه وزنه آلومينيومي بزرگ و قلاب با نخ 35 سانتي, 4 عدد قرقره و پايه

Διαβάστε περισσότερα

سبد(سرمايهگذار) مربوطه گزارش ميكند در حاليكه موظف است بازدهي سبدگردان را جهت اطلاع عموم در

سبد(سرمايهگذار) مربوطه گزارش ميكند در حاليكه موظف است بازدهي سبدگردان را جهت اطلاع عموم در بسمه تعالي در شركت هاي سبدگردان بر اساس پيوست دستورالعمل تاسيس و فعاليت شركت هاي سبدگردان مصوب هيي ت مديره سازمان بورس بانجام مي رسد. در ادامه به اراي ه اين پيوست مي پردازيم: چگونگي محاسبه ي بازدهي سبد

Διαβάστε περισσότερα

محاسبه ی برآیند بردارها به روش تحلیلی

محاسبه ی برآیند بردارها به روش تحلیلی محاسبه ی برآیند بردارها به روش تحلیلی برای محاسبه ی برآیند بردارها به روش تحلیلی باید توانایی تجزیه ی یک بردار در دو راستا ( محور x ها و محور y ها ) را داشته باشیم. به بردارهای تجزیه شده در راستای محور

Διαβάστε περισσότερα

برخوردها دو دسته اند : 1) كشسان 2) ناكشسان

برخوردها دو دسته اند : 1) كشسان 2) ناكشسان آزمايش شماره 8 برخورد (بقاي تكانه) وقتي دو يا چند جسم بدون حضور نيروهاي خارجي طوري به هم نزديك شوند كه بين آنها نوعي برهم كنش رخ دهد مي گوييم برخوردي صورت گرفته است. اغلب در برخوردها خواستار اين هستيم

Διαβάστε περισσότερα

روش محاسبه ی توان منابع جریان و منابع ولتاژ

روش محاسبه ی توان منابع جریان و منابع ولتاژ روش محاسبه ی توان منابع جریان و منابع ولتاژ ابتدا شرح کامل محاسبه ی توان منابع جریان: برای محاسبه ی توان منابع جریان نخست باید ولتاژ این عناصر را بدست آوریم و سپس با استفاده از رابطه ی p = v. i توان این

Διαβάστε περισσότερα

( ) x x. ( k) ( ) ( 1) n n n ( 1) ( 2)( 1) حل سري: حول است. مثال- x اگر. يعني اگر xها از = 1. + x+ x = 1. x = y= C C2 و... و

( ) x x. ( k) ( ) ( 1) n n n ( 1) ( 2)( 1) حل سري: حول است. مثال- x اگر. يعني اگر xها از = 1. + x+ x = 1. x = y= C C2 و... و معادلات ديفرانسيل y C ( ) R mi i كه حل سري يعني جواب دقيق ميخواهيم نه به صورت صريح بلكه به صورت سري. اگر فرض كنيم خطي باشد, اين صورت شعاع همگرايي سري فوق, مينيمم اندازه است جواب معادله ديفرانسيل i نقاط

Διαβάστε περισσότερα

( ) قضايا. ) s تعميم 4) مشتق تعميم 5) انتگرال 7) كانولوشن. f(t) L(tf (t)) F (s) Lf(t ( t)u(t t) ) e F(s) L(f (t)) sf(s) f ( ) f(s) s.

( ) قضايا. ) s تعميم 4) مشتق تعميم 5) انتگرال 7) كانولوشن. f(t) L(tf (t)) F (s) Lf(t ( t)u(t t) ) e F(s) L(f (t)) sf(s) f ( ) f(s) s. معادلات ديفرانسيل + f() d تبديل لاپلاس تابع f() را در نظر بگيريد. همچنين فرض كنيد ( R() > عدد مختلط با قسمت حقيقي مثبت) در اين صورت صورت وجود لاپلاس f() نامند و با قضايا ) ضرب در (انتقال درحوزه S) F()

Διαβάστε περισσότερα

1 ﺶﻳﺎﻣزآ ﻢﻫا نﻮﻧﺎﻗ ﻲﺳرﺮﺑ

1 ﺶﻳﺎﻣزآ ﻢﻫا نﻮﻧﺎﻗ ﻲﺳرﺮﺑ آزمايش 1 بررسي قانون اهم بررسي تجربي قانون اهم و مطالعه پارامترهاي مو ثر در مقاومت الكتريكي يك سيم فلزي تي وري آزمايش هر و دارند جسم فيزيكي داراي مقاومت الكتريكي است. اجسام فلزي پلاستيك تكه يك بدن انسان

Διαβάστε περισσότερα

+ Δ o. A g B g A B g H. o 3 ( ) ( ) ( ) ; 436. A B g A g B g HA است. H H برابر

+ Δ o. A g B g A B g H. o 3 ( ) ( ) ( ) ; 436. A B g A g B g HA است. H H برابر ا نتالپي تشكيل پيوند وا نتالپي تفكيك پيوند: ا نتالپي تشكيل يك پيوندي مانند A B برابر با تغيير ا نتالپي استانداردي است كه در جريان تشكيل ا ن B g حاصل ميشود. ( ), پيوند از گونه هاي (g )A ( ) + ( ) ( ) ;

Διαβάστε περισσότερα

O 2 C + C + O 2-110/52KJ -393/51KJ -283/0KJ CO 2 ( ) ( ) ( )

O 2 C + C + O 2-110/52KJ -393/51KJ -283/0KJ CO 2 ( ) ( ) ( ) به كمك قانون هس: هنري هس شيميدان و فيزيكدان سوي يسي - روسي تبار در سال ۱۸۴۰ از راه تجربه دريافت كه گرماي وابسته به يك واكنش شيمياي مستقل از راهي است كه براي انجام ا ن انتخاب مي شود (در دماي ثابت و همچنين

Διαβάστε περισσότερα

هر عملگرجبر رابطه ای روی يک يا دو رابطه به عنوان ورودی عمل کرده و يک رابطه جديد را به عنوان نتيجه توليد می کنند.

هر عملگرجبر رابطه ای روی يک يا دو رابطه به عنوان ورودی عمل کرده و يک رابطه جديد را به عنوان نتيجه توليد می کنند. 8-1 جبررابطه ای يک زبان پرس و جو است که عمليات روی پايگاه داده را توسط نمادهايی به صورت فرمولی بيان می کند. election Projection Cartesian Product et Union et Difference Cartesian Product et Intersection

Διαβάστε περισσότερα

را بدست آوريد. دوران

را بدست آوريد. دوران تجه: همانطر كه در كلاس بارها تا كيد شد تمرينه يا بيشتر جنبه آمزشي داشت براي يادگيري بيشتر مطالب درسي بده است مشابه اين سه تمرين كه در اينجا حل آنها آمده است در امتحان داده نخاهد شد. m b الف ماتريس تبديل

Διαβάστε περισσότερα

فصل اول آشنايي با Excel

فصل اول آشنايي با Excel فصل اول آشنايي با Excel 1 هدفهاي رفتاري پس از پايان اين فصل هنرجو بايد در Excel بتواند : 1- قسمتهاي مختلف محيط كار Excel را بشناسد. 2- كاربرد شكلهاي مختلف حالت ماوس را بشناسد. 3- با كاربرد روبانهاي مختلف

Διαβάστε περισσότερα

e r 4πε o m.j /C 2 =

e r 4πε o m.j /C 2 = فن( محاسبات بوهر نيروي جاذبه الکتروستاتيکي بين هسته و الکترون در اتم هيدروژن از رابطه زير قابل محاسبه F K است: که در ا ن بار الکترون فاصله الکترون از هسته (يا شعاع مدار مجاز) و K ثابتي است که 4πε مقدار

Διαβάστε περισσότερα

آزمایش 2: تعيين مشخصات دیود پيوندي PN

آزمایش 2: تعيين مشخصات دیود پيوندي PN آزمایش 2: تعيين مشخصات دیود پيوندي PN هدف در اين آزمايش مشخصات ديود پيوندي PN را بدست آورده و مورد بررسي قرار مي دهيم. وسايل و اجزاي مورد نياز ديودهاي 1N4002 1N4001 1N4148 و يا 1N4004 مقاومتهاي.100KΩ,10KΩ,1KΩ,560Ω,100Ω,10Ω

Διαβάστε περισσότερα

10 ﻞﺼﻓ ﺶﺧﺮﭼ : ﺪﻴﻧاﻮﺘﺑ ﺪﻳﺎﺑ ﻞﺼﻓ ﻦﻳا يا ﻪﻌﻟﺎﻄﻣ زا ﺪﻌﺑ

10 ﻞﺼﻓ ﺶﺧﺮﭼ : ﺪﻴﻧاﻮﺘﺑ ﺪﻳﺎﺑ ﻞﺼﻓ ﻦﻳا يا ﻪﻌﻟﺎﻄﻣ زا ﺪﻌﺑ فصل چرخش بعد از مطالعه اي اين فصل بايد بتوانيد : - مكان زاويه اي سرعت وشتاب زاويه اي را توضيح دهيد. - چرخش با شتاب زاويه اي ثابت را مورد بررسي قرار دهيد. 3- رابطه ميان متغيرهاي خطي و زاويه اي را بشناسيد.

Διαβάστε περισσότερα

یﺭﺎﺘﻓﺭ یﺭﺎﺘﻓﺭ یﺎﻫ یﺎﻫ ﻑﺪﻫ ﻑﺪﻫ

یﺭﺎﺘﻓﺭ یﺭﺎﺘﻓﺭ یﺎﻫ یﺎﻫ ﻑﺪﻫ ﻑﺪﻫ دهم فصل اندازه گذارى ساعات آموزش نظری عملی جمع ٤ ٣ ١ فصل دهم كند. های رفتاری هدف پس از پايان اين فصل از هنرجو انتظار می رود: 1 لزوم اندازه گذاری را تعريف كند. 2 علايم اندازه گذاری را طبق استاندارد شناسايی

Διαβάστε περισσότερα

1) { } 6) {, } {{, }} 2) {{ }} 7 ) { } 3) { } { } 8) { } 4) {{, }} 9) { } { }

1) { } 6) {, } {{, }} 2) {{ }} 7 ) { } 3) { } { } 8) { } 4) {{, }} 9) { } { } هرگاه دسته اي از اشیاء حروف و اعداد و... که کاملا"مشخص هستند با هم در نظر گرفته شوند یک مجموعه را به وجود می آورند. عناصر تشکیل دهنده ي یک مجموعه باید دو شرط اساسی را داشته باشند. نام گذاري مجموعه : الف

Διαβάστε περισσότερα

در اين ا زمايش ابتدا راهاندازي موتور القايي رتور سيمپيچي شده سه فاز با مقاومت مختلف بررسي و س سپ مشخصه گشتاور سرعت ا ن رسم ميشود.

در اين ا زمايش ابتدا راهاندازي موتور القايي رتور سيمپيچي شده سه فاز با مقاومت مختلف بررسي و س سپ مشخصه گشتاور سرعت ا ن رسم ميشود. ا زمايش 4: راهاندازي و مشخصه خروجي موتور القايي با رتور سيمپيچي شده 1-4 هدف ا زمايش در اين ا زمايش ابتدا راهاندازي موتور القايي رتور سيمپيچي شده سه فاز با مقاومت مختلف بررسي و س سپ مشخصه گشتاور سرعت ا

Διαβάστε περισσότερα

آزمایش 1 :آشنایی با نحوهی کار اسیلوسکوپ

آزمایش 1 :آشنایی با نحوهی کار اسیلوسکوپ آزمایش 1 :آشنایی با نحوهی کار اسیلوسکوپ هدف در اين آزمايش با نحوه كار و بخشهاي مختلف اسيلوسكوپ آشنا مي شويم. ابزار مورد نياز منبع تغذيه اسيلوسكوپ Function Generator شرح آزمايش 1-1 اندازه گيري DC با اسيلوسكوپ

Διαβάστε περισσότερα

خطا انواع. (Overflow/underflow) (Negligible addition)

خطا انواع. (Overflow/underflow) (Negligible addition) محاسبات عدديپي پيشرفته فصل اوليه مفاهيم خطا انواع با افزايش دقت از جمع تعداد محدود ارقام حاصل ميشود. (Truncation برش: error) خطاي (Precision) اين خطا كم مي شود. در نمايش يا ذخيره نمودن مقادير عددي با تعداد

Διαβάστε περισσότερα

است). ازتركيب دو رابطه (1) و (2) داريم: I = a = M R. 2 a. 2 mg

است). ازتركيب دو رابطه (1) و (2) داريم: I = a = M R. 2 a. 2 mg دستوركارآزمايش ماشين آتوود قانون اول نيوتن (قانون لختي يا اصل ماند): جسمي كه تحت تا ثيرنيروي خارجي واقع نباشد حالت سكون يا حركت راست خط يكنواخت خود را حفظ مي كند. قانون دوم نيوتن (اصل اساسي ديناميك): هرگاه

Διαβάστε περισσότερα

مقدمه -1-4 تحليلولتاژگرهمدارهاييبامنابعجريان 4-4- تحليلجريانمشبامنابعولتاژنابسته

مقدمه -1-4 تحليلولتاژگرهمدارهاييبامنابعجريان 4-4- تحليلجريانمشبامنابعولتاژنابسته مقدمه -1-4 تحليلولتاژگرهمدارهاييبامنابعجريان -2-4 بامنابعجريانوولتاژ تحليلولتاژگرهمدارهايي 3-4- تحليلولتاژگرهبامنابعوابسته 4-4- تحليلجريانمشبامنابعولتاژنابسته 5-4- ژاتلو و 6-4 -تحليلجريانمشبامنابعجريان

Διαβάστε περισσότερα

هدف: LED ديودهاي: 4001 LED مقاومت: 1, اسيلوسكوپ:

هدف: LED ديودهاي: 4001 LED مقاومت: 1, اسيلوسكوپ: آزمايش شماره (1) آشنايي با انواع ديود ها و منحني ولت -آمپر LED هدف: هدف از اين آزمايش آشنايي با پايه هاي ديودهاي معمولي مستقيم و معكوس مي باشد. و زنر همراه با رسم منحني مشخصه ولت- آمپر در دو گرايش وسايل

Διαβάστε περισσότερα

P = P ex F = A. F = P ex A

P = P ex F = A. F = P ex A محاسبه كار انبساطي: در ترموديناميك اغلب با كار ناشي از انبساط يا تراكم سيستم روبرو هستيم. براي پي بردن به اين نوع كار به شكل زير خوب توجه كنيد. در اين شكل استوانهاي را كه به يك پيستون بدون اصطكاك مجهز

Διαβάστε περισσότερα

Distributed Snapshot DISTRIBUTED SNAPSHOT سپس. P i. Advanced Operating Systems Sharif University of Technology. - Distributed Snapshot ادامه

Distributed Snapshot DISTRIBUTED SNAPSHOT سپس. P i. Advanced Operating Systems Sharif University of Technology. - Distributed Snapshot ادامه Distributed Snapshot يك روش براي حل GPE اين بود كه پردازهي مبصر P 0 از ديگر پردازهها درخواست كند تا حالت محلي خود را اعلام كنند و سپس آنها را باهم ادغام كند. اين روش را Snapshot گوييم. ولي حالت سراسري

Διαβάστε περισσότερα

فصل چهارم آشنايي با اتوكد 2012 فصل چهارم

فصل چهارم آشنايي با اتوكد 2012 فصل چهارم 55 فصل چهارم آشنايي با اتوكد 2012 56 هدفهاي رفتاري پس از پايان اين فصل هنرجو بايد در AutoCAD بتواند : 1- قسمت هاي مختلف محيط كار AutoCAD را بشناسد. 2- با كاربرد روبانهاي مختلف آشنايي كلي داشته باشد. 3-

Διαβάστε περισσότερα

بررسي علل تغيير در مصرف انرژي بخش صنعت ايران با استفاده از روش تجزيه

بررسي علل تغيير در مصرف انرژي بخش صنعت ايران با استفاده از روش تجزيه 79 نشريه انرژي ايران / دوره 2 شماره 3 پاييز 388 بررسي علل تغيير در مصرف انرژي بخش صنعت ايران با استفاده از روش تجزيه رضا گودرزي راد تاريخ دريافت مقاله: 89//3 تاريخ پذيرش مقاله: 89/4/5 كلمات كليدي: اثر

Διαβάστε περισσότερα

V o. V i. 1 f Z c. ( ) sin ورودي را. i im i = 1. LCω. s s s

V o. V i. 1 f Z c. ( ) sin ورودي را. i im i = 1. LCω. s s s گزارش کار ا زمايشگاه اندازهگيري و مدار ا زمايش شمارهي ۵ مدار C سري خروجي خازن ۱۳ ا بانماه ۱۳۸۶ ي م به نام خدا تي وري ا زمايش به هر مداري که در ا ن ترکيب ي از مقاومت خازن و القاگر به کار رفتهشده باشد مدار

Διαβάστε περισσότερα

كار شماره توانايي عنوان آموزش

كار شماره توانايي عنوان آموزش پنجم بخش منطقي گيتهاي و ديجيتال : كلي هدف ديجيتال در پايه مدارهاي عملي و نظري تحليل واحد كار شماره توانايي توانايي عنوان آموزش زمان نظري عملي جمع 22 2 آنها كاربرد و ديجيتال سيستمهاي بررسي توانايي 2 U8

Διαβάστε περισσότερα

(,, ) = mq np داريم: 2 2 »گام : دوم« »گام : چهارم«

(,, ) = mq np داريم: 2 2 »گام : دوم« »گام : چهارم« 3 8 بردارها خارجي ضرب مفروضاند. (,, ) 3 و (,, 3 ) بردار دو تعريف: و ميدهيم نمايش نماد با را آن كه است برداري در خارجي ضرب ( 3 3, 3 3, ) m n mq np p q از: است عبارت ماتريس دترمينان در اينكه به توجه با اما

Διαβάστε περισσότερα

HMI SERVO STEPPER INVERTER

HMI SERVO STEPPER INVERTER راهنماي راهاندازي سريع درايوهاي مخصوص ا سانسور كينكو (سري (FV109 سري درايوهاي FV109 كينكو درايوهاي مخصوص ا سانسور كينكو ميباشد كه با توجه به نيازمنديهاي اساسي مورد نياز در ايران به بازار عرضه شدهاند. به

Διαβάστε περισσότερα

آزمايش (٤) موضوع آزمايش: تداخل به وسيلهي دو شكاف يانگ و دو منشور فرنل

آزمايش (٤) موضوع آزمايش: تداخل به وسيلهي دو شكاف يانگ و دو منشور فرنل آزمايش (٤) موضوع آزمايش: تداخل به وسيلهي دو شكاف يانگ و دو منشور فرنل وسايل مورد نياز: طيف سنج دو شكاف يانگ لامپ سديم و منبع تغذيه ليزر هليوم نئون دو منشور فرنل دو عدد عدسي خط كش چوبي كوليس ريل اپتيكي

Διαβάστε περισσότερα

فصل چهارم: جبر رابطه اي

فصل چهارم: جبر رابطه اي فصل چهارم: جبر ه اي عملوند ها اعداد هستند. که با آن بخوبي آشنا هستيم جبر هاي در جبر رياضي حاصل يک عدد ديگر مي و عدد انجام مي شود دو عملگري )مثل +( روي مثال جبري است که که بحث اين فصل از کتاب است جبر ه

Διαβάστε περισσότερα

حل J 298 كنيد JK mol جواب: مييابد.

حل J 298 كنيد JK mol جواب: مييابد. تغيير ا نتروپي در دنياي دور و بر سيستم: هر سيستم داراي يك دنياي دور و بر يا محيط اطراف خود است. براي سادگي دنياي دور و بر يك سيستم را محيط ميناميم. محيط يك سيستم همانند يك منبع بسيار عظيم گرما در نظر گرفته

Διαβάστε περισσότερα

آزمایش 1: پاسخ فرکانسی تقویتکننده امیتر مشترك

آزمایش 1: پاسخ فرکانسی تقویتکننده امیتر مشترك آزمایش : پاسخ فرکانسی تقویتکننده امیتر مشترك -- مقدمه هدف از این آزمایش بدست آوردن فرکانس قطع بالاي تقویتکننده امیتر مشترك بررسی عوامل تاثیرگذار و محدودکننده این پارامتر است. شکل - : مفهوم پهناي باند تقویت

Διαβάστε περισσότερα

آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ(

آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ( آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ( فرض کنید جمعیت یک دارای میانگین و انحراف معیار اندازه µ و انحراف معیار σ باشد و جمعیت 2 دارای میانگین µ2 σ2 باشند نمونه های تصادفی مستقل از این دو جامعه

Διαβάστε περισσότερα

4- توانايي استفاده از خصوصيات گرافيكي زير را داشته باشد: 6- توانايي استفاده از امكانات چاپ خصوصيات و متدهاي آن را در برنامهها داشته باشد.

4- توانايي استفاده از خصوصيات گرافيكي زير را داشته باشد: 6- توانايي استفاده از امكانات چاپ خصوصيات و متدهاي آن را در برنامهها داشته باشد. واحد کاردوازدهم هدف جزیی توانايياستفادهازجلوههايگرافيكيوچاپدرويژوالبيسيك هدفهای رفتاری 323 پس از مطالعه اين واحد كار از فراگير انتظار ميرود كه: 1- مفاهيم مربوط به سيستم مختصات را بداند. 2- توانايي تغيير

Διαβάστε περισσότερα

:نتوين شور شور هدمع لکشم

:نتوين شور شور هدمع لکشم عددی آناليز جلسه چھارم حل معادلات غير خطي عمده روش نيوتن: مشکل f ( x را در f ( x و برای محاسبه ھر عضو دنباله باید ھر مرحله محاسبه کرد. در روشھای جایگزین تقریبی f ( x x + = x f جایگزین میکنم کنيم. ( x مشتق

Διαβάστε περισσότερα

چكيده SPT دارد.

چكيده SPT دارد. ارايه يك روش چيدمان خلاقانه جديد براي زمانبندي دسترسي به شبكه جهت كاهش انجام درخواستها سهراب خانمحمدي سولماز عبدالهي زاد استاد گروه مهندسي كنترل دانشگاه تبريز تبريز ايران Khamohammadi.sohrab@tabrizu.ac.ir

Διαβάστε περισσότερα

1- مقدمه است.

1- مقدمه است. آموزش بدون نظارت شبكه عصبي RBF به وسيله الگوريتم ژنتيك محمدصادق محمدي دانشكده فني دانشگاه گيلان Email: m.s.mohammadi@gmail.com چكيده - در اين مقاله روشي كار آمد براي آموزش شبكه هاي عصبي RBF به كمك الگوريتم

Διαβάστε περισσότερα

تصاویر استریوگرافی.

تصاویر استریوگرافی. هب انم خدا تصاویر استریوگرافی تصویر استریوگرافی یک روش ترسیمی است که به وسیله آن ارتباط زاویه ای بین جهات و صفحات بلوری یک کریستال را در یک فضای دو بعدی )صفحه کاغذ( تعیین میکنند. کاربردها بررسی ناهمسانگردی

Διαβάστε περισσότερα

آزمایش 8: تقویت کننده عملیاتی 2

آزمایش 8: تقویت کننده عملیاتی 2 آزمایش 8: تقویت کننده عملیاتی 2 1-8 -مقدمه 1 تقویت کننده عملیاتی (OpAmp) داراي دو یا چند طبقه تقویت کننده تفاضلی است که خروجی- هاي هر طبقه به وروديهاي طبقه دیگر متصل شده است. در انتهاي این تقویت کننده

Διαβάστε περισσότερα

چكيده. Keywords: Nash Equilibrium, Game Theory, Cournot Model, Supply Function Model, Social Welfare. 1. مقدمه

چكيده. Keywords: Nash Equilibrium, Game Theory, Cournot Model, Supply Function Model, Social Welfare. 1. مقدمه اثرات تراكم انتقال بر نقطه تعادل بازار برق در مدل هاي كورنات و Supply Function منصوره پيدايش * اشكان رحيمي كيان* سيد محمدحسين زندهدل * مصطفي صحراي ي اردكاني* *دانشكده مهندسي برق و كامپيوتر- دانشگاه تهران

Διαβάστε περισσότερα

جلسه 9 1 مدل جعبه-سیاه یا جستاري. 2 الگوریتم جستجوي Grover 1.2 مسا له 2.2 مقدمات محاسبات کوانتمی (22671) ترم بهار

جلسه 9 1 مدل جعبه-سیاه یا جستاري. 2 الگوریتم جستجوي Grover 1.2 مسا له 2.2 مقدمات محاسبات کوانتمی (22671) ترم بهار محاسبات کوانتمی (22671) ترم بهار 1390-1391 مدرس: سلمان ابوالفتح بیگی نویسنده: هیربد کمالی نیا جلسه 9 1 مدل جعبه-سیاه یا جستاري مدل هایی که در جلسه ي پیش براي استفاده از توابع در الگوریتم هاي کوانتمی بیان

Διαβάστε περισσότερα

مثال( مساله الپالس در ناحیه داده شده را حل کنید. u(x,0)=f(x) f(x) حل: به کمک جداسازی متغیرها: ثابت = k. u(x,y)=x(x)y(y) X"Y=-XY" X" X" kx = 0

مثال( مساله الپالس در ناحیه داده شده را حل کنید. u(x,0)=f(x) f(x) حل: به کمک جداسازی متغیرها: ثابت = k. u(x,y)=x(x)y(y) XY=-XY X X kx = 0 مثال( مساله الپالس در ناحیه داده شده را حل کنید. (,)=() > > < π () حل: به کمک جداسازی متغیرها: + = (,)=X()Y() X"Y=-XY" X" = Y" ثابت = k X Y X" kx = { Y" + ky = X() =, X(π) = X" kx = { X() = X(π) = معادله

Διαβάστε περισσότερα

تحلیل مدار به روش جریان حلقه

تحلیل مدار به روش جریان حلقه تحلیل مدار به روش جریان حلقه برای حل مدار به روش جریان حلقه باید مراحل زیر را طی کنیم: مرحله ی 1: مدار را تا حد امکان ساده می کنیم)مراقب باشید شاخه هایی را که ترکیب می کنید مورد سوال مسئله نباشد که در

Διαβάστε περισσότερα

(POWER MOSFET) اهداف: اسيلوسكوپ ولوم ديود خازن سلف مقاومت مقاومت POWER MOSFET V(DC)/3A 12V (DC) ± DC/DC PWM Driver & Opto 100K IRF840

(POWER MOSFET) اهداف: اسيلوسكوپ ولوم ديود خازن سلف مقاومت مقاومت POWER MOSFET V(DC)/3A 12V (DC) ± DC/DC PWM Driver & Opto 100K IRF840 منابع تغذيه متغير با مبدل DC به DC (POWER MOSFET) با ترانز يستور اهداف: ( بررسی Transistor) POWER MOSFET (Metal Oxide Semiconductor Field Effect براي كليد زني 2) بررسي مبدل DC به.DC كاهنده. 3) بررسي مبدل

Διαβάστε περισσότερα

تلفات کل سيستم کاهش مي يابد. يکي ديگر از مزاياي اين روش بهبود پروفيل ولتاژ ضريب توان و پايداري سيستم مي باشد [-]. يکي ديگر از روش هاي کاهش تلفات سيستم

تلفات کل سيستم کاهش مي يابد. يکي ديگر از مزاياي اين روش بهبود پروفيل ولتاژ ضريب توان و پايداري سيستم مي باشد [-]. يکي ديگر از روش هاي کاهش تلفات سيستم اراي ه روشي براي کاهش تلفات در سيستم هاي توزيع بر مبناي تغيير محل تغذيه سيستم هاي توزيع احد کاظمي حيدر علي شايانفر حسن فشکي فراهاني سيد مهدي حسيني دانشگاه علم و صنعت ايران- دانشکده مهندسي برق چکيده براي

Διαβάστε περισσότερα

مقاطع مخروطي 1. تعريف مقاطع مخروطي 2. دايره الف. تعريف و انواع معادله دايره ب. وضعيت خط و دايره پ. وضعيت دو دايره ت. وتر مشترك دو دايره

مقاطع مخروطي 1. تعريف مقاطع مخروطي 2. دايره الف. تعريف و انواع معادله دايره ب. وضعيت خط و دايره پ. وضعيت دو دايره ت. وتر مشترك دو دايره مقاطع مخروطي فصل در اين فصل ميخوانيم:. تعريف مقاطع مخروطي. دايره الف. تعريف و انواع معادله دايره ب. وضعيت خط و دايره پ. وضعيت دو دايره ت. وتر مشترك دو دايره ث. طول مماس و طول وتر مينيمم ج. دورترين و نزديكترين

Διαβάστε περισσότερα

a a VQ It ميانگين τ max =τ y= τ= = =. y A bh مثال) مقدار τ max b( 2b) 3 (b 0/ 06b)( 1/ 8b) 12 12

a a VQ It ميانگين τ max =τ y= τ= = =. y A bh مثال) مقدار τ max b( 2b) 3 (b 0/ 06b)( 1/ 8b) 12 12 مقاومت مصالح بارگذاري عرضي: بارگذاري عرضي در تيرها باعث ايجاد تنش برشي ميشود كه مقدار آن از رابطه زير قابل محاسبه است: كه در اين رابطه: - : x h q( x) τ mx τ ( τ ) = Q I برش در مقطع مورد نظر در طول تير

Διαβάστε περισσότερα

چكيده 1- مقدمه درخت مشهد ايران فيروزكوه ايران باشد [7]. 5th Iranian Conference on Machine Vision and Image Processing, November 4-6, 2008

چكيده 1- مقدمه درخت مشهد ايران فيروزكوه ايران باشد [7]. 5th Iranian Conference on Machine Vision and Image Processing, November 4-6, 2008 پنهاني سازي تصوير با استفاده از تابع آشوب و درخت جستجوي دودويي رسول عنايتي فر دانشكده مهندسي كامپيوتر دانشگاه آزاد اسلامي فيروزكوه ايران r.enayatifar@iaufb.ac.ir مرتضي صابري كمرپشتي دانشكده مهندسي كامپيوتر

Διαβάστε περισσότερα

اراي ه روشي نوين براي حذف مولفه DC ميراشونده در رلههاي ديجيتال

اراي ه روشي نوين براي حذف مولفه DC ميراشونده در رلههاي ديجيتال o. F-3-AAA- اراي ه روشي نوين براي حذف مولفه DC ميراشونده در رلههاي ديجيتال جابر پولادي دانشكده فني و مهندسي دانشگاه ا زاد اسلامي واحد علوم و تحقيقات تهران تهران ايران مجتبي خدرزاده مهدي حيدرياقدم دانشكده

Διαβάστε περισσότερα

جلسه 3 ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک کوانتمی بیان. d 1. i=0. i=0. λ 2 i v i v i.

جلسه 3 ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک کوانتمی بیان. d 1. i=0. i=0. λ 2 i v i v i. محاسبات کوانتمی (671) ترم بهار 1390-1391 مدرس: سلمان ابوالفتح بیگی نویسنده: محمد جواد داوري جلسه 3 می شود. ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک

Διαβάστε περισσότερα

مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل

مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل شما باید بعد از مطالعه ی این جزوه با مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل کامال آشنا شوید. VA R VB به نظر شما افت ولتاژ مقاومت R چیست جواب: به مقدار عددی V A

Διαβάστε περισσότερα

سلسله مزاتب سبان مقدمه فصل : زبان های فارغ از متن زبان های منظم

سلسله مزاتب سبان مقدمه فصل : زبان های فارغ از متن زبان های منظم 1 ماشیه ای توریىگ مقدمه فصل : سلسله مزاتب سبان a n b n c n? ww? زبان های فارغ از متن n b n a ww زبان های منظم a * a*b* 2 زبان ها پذیرفته می شوند بوسیله ی : ماشین های تورینگ a n b n c n ww زبان های فارغ

Διαβάστε περισσότερα

يﺎﻫ ﻢﺘﻳرﻮﮕﻟا و ﺎﻫ ﺖﺧرد فاﺮﮔ ﻲﻤﺘﻳرﻮﮕﻟا ﻪﻳﺮﻈﻧ :سرد ﻲﺘﺸﻬﺑ ﺪﻴﻬﺷ هﺎﮕﺸﻧاد ﺮﺗﻮﻴﭙﻣﺎﻛ مﻮﻠﻋ هوﺮﮔ ﻪﻴﻟوا ﺞﻳﺎﺘﻧ و ﺎﻫﻒ ﻳﺮﻌﺗ

يﺎﻫ ﻢﺘﻳرﻮﮕﻟا و ﺎﻫ ﺖﺧرد فاﺮﮔ ﻲﻤﺘﻳرﻮﮕﻟا ﻪﻳﺮﻈﻧ :سرد ﻲﺘﺸﻬﺑ ﺪﻴﻬﺷ هﺎﮕﺸﻧاد ﺮﺗﻮﻴﭙﻣﺎﻛ مﻮﻠﻋ هوﺮﮔ ﻪﻴﻟوا ﺞﻳﺎﺘﻧ و ﺎﻫﻒ ﻳﺮﻌﺗ BFS DFS : درخت یک گراف همبند بدون دور است. جنگل یک گراف بدون دور است. پس هر مولفه همبندی جنگل درخت است. هر راس درجه 1 در درخت را یک برگ مینامیم. یک درخت فراگیر از گراف G یک زیردرخت فراگیر از ان است که

Διαβάστε περισσότερα

مقاومت مصالح 2 فصل 9: خيز تيرها. 9. Deflection of Beams

مقاومت مصالح 2 فصل 9: خيز تيرها. 9. Deflection of Beams مقاومت مصالح فصل 9: خيز تيرها 9. Deflection of eams دکتر مح مدرضا نيرومند دااگشنه ايپم نور اصفهان eer Johnston DeWolf ( ) رابطه بين گشتاور خمشی و انحنا: تير طره ای تحت بار متمرکز در انتهای آزاد: P انحنا

Διαβάστε περισσότερα

جلسه ی ۱۰: الگوریتم مرتب سازی سریع

جلسه ی ۱۰: الگوریتم مرتب سازی سریع دانشکده ی علوم ریاضی داده ساختارها و الگوریتم ها ۸ مهر ۹ جلسه ی ۱۰: الگوریتم مرتب سازی سریع مدر س: دکتر شهرام خزاي ی نگارنده: محمد امین ادر یسی و سینا منصور لکورج ۱ شرح الگور یتم الگوریتم مرتب سازی سریع

Διαβάστε περισσότερα

: O. CaCO 3 (1 CO (2 / A 11 بوده و مولكولي غيرقطبي ميباشد. خصوصيتهاي

: O. CaCO 3 (1 CO (2 / A 11 بوده و مولكولي غيرقطبي ميباشد. خصوصيتهاي شيمي آلي مدرسان شريف رتبه يك كارشناسي ارشد شيمي آلي شيمي موادي تركيبها را در آزمايشگاه نميتوان فصل اول «مباني شيمي آلي» است كه با موجودات زنده ارتباط دارد. تا اواسط قرن نوزدهم ميلادي اعتقاد بر اين بود

Διαβάστε περισσότερα

مقدمه دسته بندي دوم روش هاي عددي دامنه محدود اهداف: هاي چندجمله اي رهيافت هاي محاسباتي: سعي و خطا دامنه نامحدود

مقدمه دسته بندي دوم روش هاي عددي دامنه محدود اهداف: هاي چندجمله اي رهيافت هاي محاسباتي: سعي و خطا دامنه نامحدود اهداف: محاسبه ريشه دستگاه دسته عدم وابسته معادالت ريشه هاي چندجمله اي معادالت غيرخطي بندي وابستگي به روش به مشتق مشتق تابع مقدمه غير خطي هاي عددي تابع دسته بندي دوم روش هاي عددي دامنه محدود دامنه نامحدود

Διαβάστε περισσότερα

مربوطند. با قراردادن مقدار i در معادله (1) داريم. dq q

مربوطند. با قراردادن مقدار i در معادله (1) داريم. dq q مدارهاي تا بحال به مدارهايي پرداختيم كه در ا نها اجزاي مدار مقاومت بودند و در ا نها جريان با زمان تغيير نميكرد. در اينجا خازن را به عنوان يك عنصر مداري معرفي ميكنيم خازن ما را به مفهوم جريانهاي متغير با

Διαβάστε περισσότερα

آرايه ها و ساختارها سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر

آرايه ها و ساختارها سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر آرايه ها و ساختارها سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشگاه کاشان- دانشکده مهندسی برق و کامپیوتر آرايه ها آرايه ها به عنوان يک نوع داده مجرد ساختارها و يونيون ها نوع داده اي مجرد چند جمله

Διαβάστε περισσότερα

سايت ويژه رياضيات درسنامه ها و جزوه هاي دروس رياضيات

سايت ويژه رياضيات   درسنامه ها و جزوه هاي دروس رياضيات سايت ويژه رياضيات درسنامه ها و جزوه هاي دروس رياضيات دانلود نمونه سوالات امتحانات رياضي نمونه سوالات و پاسخنامه كنكور دانلود نرم افزارهاي رياضيات و... کانال سایت ریاضی سرا در تلگرام: https://telegram.me/riazisara

Διαβάστε περισσότερα

آزمايش ارتعاشات آزاد و اجباري سيستم جرم و فنر و ميراگر

آزمايش ارتعاشات آزاد و اجباري سيستم جرم و فنر و ميراگر ` آزمايشگاه ديناميك ماشين و ارتعاشات آزمايش ارتعاشات آزاد و اجباري سيستم جرم و فنر و ميراگر dynlab@jamilnia.ir www.jamilnia.ir/dynlab ١ تئوري آزمايش سيستمهاي ارتعاشي ميتوانند بر اثر تحريكات دروني يا بيروني

Διαβάστε περισσότερα

چكيده 1- مقدمه

چكيده 1- مقدمه تشخيص پوست بر اساس يادگيري تقويتي مريم حبيبي پور مهديه پوستچي حميدرضا پوررضا سعيد راحتي قوچاني گروه هوش مصنوعي دانشگاه آزاد اسلامي مشهد گروه هوش مصنوعي دانشگاه علم و صنعت ايران گروه مهندسي كامپيوتر دانشگاه

Διαβάστε περισσότερα

t a a a = = f f e a a

t a a a = = f f e a a ا زمايشگاه ماشينه يا ۱ الکتريکي ا زمايش شمارهي ۴-۱ گزارش کار راهاندازي و تنظيم سرعت موتورهايي DC (شنت) استاد درياباد نگارش: اشکان نيوشا ۱۶ ا ذر ۱۳۸۷ ي م به نام خدا تي وري ا زمايش شنت است. در اين ا زمايش

Διαβάστε περισσότερα

تمرین اول درس کامپایلر

تمرین اول درس کامپایلر 1 تمرین اول درس 1. در زبان مربوط به عبارت منظم زیر چند رشته یکتا وجود دارد (0+1+ϵ)(0+1+ϵ)(0+1+ϵ)(0+1+ϵ) جواب 11 رشته کنند abbbaacc را در نظر بگیرید. کدامیک از عبارتهای منظم زیر توکنهای ab bb a acc را ایجاد

Διαβάστε περισσότερα

هو الحق دانشکده ي مهندسی کامپیوتر جلسه هفتم

هو الحق دانشکده ي مهندسی کامپیوتر جلسه هفتم هو الحق دانشکده ي مهندسی کامپیوتر کدگذاري شبکه Coding) (Network شنبه 2 اسفند 1393 جلسه هفتم استاد: مهدي جعفري نگارنده: سید محمدرضا تاجزاد تعریف 1 بهینه سازي محدب : هدف پیدا کردن مقدار بهینه یک تابع ) min

Διαβάστε περισσότερα

Macromedia Flash MX. U¼Åt¹ô. v{u¹ È ËUM

Macromedia Flash MX. U¼Åt¹ô. v{u¹ È ËUM u v{u¹ È ËUM Macromedia Flash MX vuý do«در شماره ى قبلى ابزارهاى اين نرم افزار را شناختيم. در اين شماره قصد داريم به بحث درباره ى ساخت انيميشن به طور آماتور بپردازيم. سيستمى كه در شماره ى قبل براى اجراى

Διαβάστε περισσότερα

مريم اسپندار - وحيدحقيقتدوست چكيده 1- مقدمه. ١ Vehicular Anti-Collision Mechanism ٢ Intelligent Vehicular Transportation System

مريم اسپندار - وحيدحقيقتدوست چكيده 1- مقدمه. ١ Vehicular Anti-Collision Mechanism ٢ Intelligent Vehicular Transportation System اراي ه الگوريتم اجتناب از برخورد و تشخيص تقدم خودروها در تقاطع با استفاده از شبكه هاي موقتي مريم اسپندار - وحيدحقيقتدوست سازمان تنظيم مقررات و ارتباطات راديويي espandar@cra.ir دانشكده فني و مهندسي دانشگاه

Διαβάστε περισσότερα

شاخصهای پراکندگی دامنهی تغییرات:

شاخصهای پراکندگی دامنهی تغییرات: شاخصهای پراکندگی شاخصهای پراکندگی بیانگر میزان پراکندگی دادههای آماری میباشند. مهمترین شاخصهای پراکندگی عبارتند از: دامنهی تغییرات واریانس انحراف معیار و ضریب تغییرات. دامنهی تغییرات: اختالف بزرگترین و

Διαβάστε περισσότερα

( Δ > o) است. ΔH 2. Δ <o ( ) 6 6

( Δ > o) است. ΔH 2. Δ <o ( ) 6 6 تغييرات انرژي ضمن انحلال: اكثر مواد در موادي مشابه خود حل ميشوند و اين پديده را با برهمكنشهاي ميكروسكوپي بررسي كرديم. براي بررسي ماكروسكوپي اين پديده بايد تغييرات انرژي (ا نتالپي) و تغييرات بينظمي (ا نتروپي)

Διαβάστε περισσότερα

* خلاصه

* خلاصه دانشجوي- ششمين كنگره ملي مهندسي عمران 6 و 7 ارديبهشت 39 دانشگاه سمنان سمنان ايران بررسي و مقايسه همگرايي پايداري و دقت در روشهاي گام به گام انتگرالگيري مستقيم زماني 3 سبحان رستمي * علي معينالديني حامد

Διαβάστε περισσότερα

R = V / i ( Ω.m كربن **

R = V / i ( Ω.m كربن ** مقاومت مقاومت ويژه و رسانندگي اگر سرهاي هر يك از دو ميله مسي و چوبي را كه از نظر هندسي مشابهند به اختلاف پتانسيل يكساني وصل كنيم جريانهاي حاصل در ا نها بسيار متفاوت خواهد بود. مشخصهاي از رسانا كه در اينجا

Διαβάστε περισσότερα

همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین

همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین دو صفت متغیر x و y رابطه و همبستگی وجود دارد یا خیر و آیا می توان یک مدل ریاضی و یک رابطه

Διαβάστε περισσότερα

جلسه ی ۳: نزدیک ترین زوج نقاط

جلسه ی ۳: نزدیک ترین زوج نقاط دانشکده ی علوم ریاضی ا نالیز الگوریتم ها ۴ بهمن ۱۳۹۱ جلسه ی ۳: نزدیک ترین زوج نقاط مدر س: دکتر شهرام خزاي ی نگارنده: امیر سیوانی اصل ۱ پیدا کردن نزدیک ترین زوج نقطه فرض می کنیم n نقطه داریم و می خواهیم

Διαβάστε περισσότερα

رياضي 1 و 2. ( + ) xz ( F) خواص F F. u( x,y,z) u = f = + + F = g g. Fx,y,z x y

رياضي 1 و 2. ( + ) xz ( F) خواص F F. u( x,y,z) u = f = + + F = g g. Fx,y,z x y رياضي و رياضي و F,F,F F= F ˆ ˆ ˆ i+ Fj+ Fk)F ديورژانس توابع برداري ديورژانس ميدان برداري كه توابع اسكالر و حقيقي هستند) به صورت زير تعريف ميشود: F F F div ( F) = + + F= f در اين صورت ديورژانس گراديان,F)

Διαβάστε περισσότερα

A D. π 2. α= (2n 4) π 2

A D. π 2. α= (2n 4) π 2 فصل هشتم پليگون بن ه ف ها رفتار : در پايان اين فصل از فراگير انتظار م رود ه: ۱ پليگون بن را توضيح ده. ۲ ان ازه گير اضلاع و زوايا پليگون را توضيح ده. ۳ تع يل خطا زاويه ا ي پليگون را توضيح ده. ۴ آزمون ي

Διαβάστε περισσότερα

تخمین با معیار مربع خطا: حالت صفر: X: مکان هواپیما بدون مشاهده X را تخمین بزنیم. بهترین تخمین مقداری است که متوسط مربع خطا مینیمم باشد:

تخمین با معیار مربع خطا: حالت صفر: X: مکان هواپیما بدون مشاهده X را تخمین بزنیم. بهترین تخمین مقداری است که متوسط مربع خطا مینیمم باشد: تخمین با معیار مربع خطا: هدف: با مشاهده X Y را حدس بزنیم. :y X: مکان هواپیما مثال: مشاهده نقطه ( مجموعه نقاط کنارهم ) روی رادار - فرض کنیم می دانیم توزیع احتمال X به چه صورت است. حالت صفر: بدون مشاهده

Διαβάστε περισσότερα

فعالیت = ) ( )10 6 ( 8 = )-4( 3 * )-5( 3 = ) ( ) ( )-36( = m n m+ m n. m m m. m n mn

فعالیت = ) ( )10 6 ( 8 = )-4( 3 * )-5( 3 = ) ( ) ( )-36( = m n m+ m n. m m m. m n mn درس»ریشه ام و توان گویا«تاکنون با مفهوم توان های صحیح اعداد و چگونگی کاربرد آنها در ریشه گیری دوم و سوم اعداد آشنا شده اید. فعالیت زیر به شما کمک می کند تا ضمن مرور آنچه تاکنون در خصوص اعداد توان دار و

Διαβάστε περισσότερα

و دماي هواي ورودي T 20= o C باشد. طبق اطلاعات كاتالوگ 2.5kW است. در صورتي كه هوادهي دستگاه

و دماي هواي ورودي T 20= o C باشد. طبق اطلاعات كاتالوگ 2.5kW است. در صورتي كه هوادهي دستگاه 1- بخاري گازسوز كارگاهي مدل انرژي از تعدادي مجرا تشكيل شده كه گازهاي احتراق در آن جريان دارد و در اثر عبور هوا از روي سطح خارجي اين پره ها توسط يك پروانه محوري fan) (axial گرما به هوا منتقل مي شود. توان

Διαβάστε περισσότερα

Aerodynamic Design Algorithm of Liquid Injection Thrust Vector Control

Aerodynamic Design Algorithm of Liquid Injection Thrust Vector Control علوم و تحقيقات هوافضا جلد 2 شماره 2 بهار 1388 الگوريتم طراحي آيروديناميكي كنترل بردار تراست به روش پاشش مايع 2 1 مهدي هاشمآبادي و محمدرضا حيدري دانشگاه صنعتي مالك اشتر مجتمع دانشگاهي هوافضا مركز آموزشي

Διαβάστε περισσότερα

پایگاه داده جلسه 8 محمد علی فرجیان مدرس :محمد علی فرجیان 1

پایگاه داده جلسه 8 محمد علی فرجیان مدرس :محمد علی فرجیان 1 پایگاه داده جلسه 8 محمد علی فرجیان مدرس :محمد علی فرجیان 1 2/23/2015 فهرست تعاریف مدل رابطهاي انواع کلید جامعیت جبر رابطهاي تعاريف دامنه )Domain( مجموعه تمام مقادیر ممکن براي صفت )Attribute( است. تعاريف

Διαβάστε περισσότερα

98-F-ELM چكيده 1- مقدمه

98-F-ELM چكيده 1- مقدمه 98-F-ELM-473 كاهش اعوجاج گشتاور در موتور رلوكتانسي سوييچ شونده امين حسن يزدآور دانشگاه صنعتي امير كبير yazavar@aut.ac.ir مجتبي ميرسليم دانشگاه صنعتي امير كبير mirsalim@aut.ac.ir واژههاي كليدي: موتور رلوكتانسي

Διαβάστε περισσότερα

5 TTGGGG 3 ميگردد ) شكل ).

5 TTGGGG 3 ميگردد ) شكل ). تكميل انتهاهاي مولكولهاي خطي DNA با توجه به اينكه RNA هاي پرايمر بايد از انتهاي مولكولهاي DNA برداشته شوند سي وال اين است در اين صورت انتهاي DNA هاي خطي چگونه تكميل ميگردد. در هنگام همانندسازي نه تنها

Διαβάστε περισσότερα

- 1 مقدمه كنند[ 1 ]:

- 1 مقدمه كنند[ 1 ]: مكانيابي منابع توليد پراكنده در شبكه فوق توزيع با استفاده از الگوريتم ژنتيك غيرمسلط( NSGAII ) 2 1 ري وف قادري محمد رضا بسمي 1 دانشگاه شاهد دانشكده فني مهندسي Raof.ghaderi@yahoo.com 2 دانشگاه شاهد دانشكده

Διαβάστε περισσότερα

جلسه ی ۲۴: ماشین تورینگ

جلسه ی ۲۴: ماشین تورینگ دانشکده ی علوم ریاضی نظریه ی زبان ها و اتوماتا ۲۶ ا ذرماه ۱۳۹۱ جلسه ی ۲۴: ماشین تورینگ مدر س: دکتر شهرام خزاي ی نگارندگان: حمید ملک و امین خسر وشاهی ۱ ماشین تور ینگ تعریف ۱ (تعریف غیررسمی ماشین تورینگ)

Διαβάστε περισσότερα

برنامه سازي سيستم )استاد صهبا(

برنامه سازي سيستم )استاد صهبا( بسمه تعالي برنامه سازي سيستم )استاد صهبا( منابع: 1- مرجع كامل برنامه نويسان سيستم )پيتر نورتون( -2 مايكل فشر PC System Programing برنامه نويسي با C يا ++C كتابهاي با عنوان : مهندس جعفر نژاد )فصل برنامه

Διαβάστε περισσότερα

ˆÃd. ¼TvÃQ (1) (2) داشت: ( )

ˆÃd. ¼TvÃQ (1) (2) داشت: ( ) تغيير ا نتالپي : ΔH بيشتر واكنشها در شيمي در فشار ثابت انجام ميگيرند. سوختن كبريت در هواي ا زاد و همچنين واكنش خنثي شدن سود با سولفوريك اسيد در يك بشر نمونه اي از واكنشهايي هستند كه در فشار ثابت انجام

Διαβάστε περισσότερα

ﻲﻟﻮﻠﺳ ﺮﻴﮔدﺎﻳ يﺎﻫﺎﺗﺎﻣﻮﺗآ زا هدﺎﻔﺘﺳا ﺎﺑ ﻢﻴﺳ ﻲﺑ ﺮﮕﺴﺣ يﺎﻫ ﻪﻜﺒﺷ رد يﺪﻨﺑ ﻪﺷﻮﺧ

ﻲﻟﻮﻠﺳ ﺮﻴﮔدﺎﻳ يﺎﻫﺎﺗﺎﻣﻮﺗآ زا هدﺎﻔﺘﺳا ﺎﺑ ﻢﻴﺳ ﻲﺑ ﺮﮕﺴﺣ يﺎﻫ ﻪﻜﺒﺷ رد يﺪﻨﺑ ﻪﺷﻮﺧ خوشه بندي در شبكه هاي حسگر بي سيم با استفاده از آتوماتاهاي يادگير سلولي محمد احمدي نيا دانشگاه آزاد اسلامي واحد كرمان ايران ahmadna@gmal.com محمدرضا ميبدي دانشكده مهندسي كامپيوتر دانشگاه صنعتي اميركبير

Διαβάστε περισσότερα

چكيده مقدمه SS7 گرديد. (UP) گفته ميشود. MTP وظيفه انتقال پيامهاي SS7 را User Part. Part هاي SS7 هستند. LI I FSN I BSN F

چكيده مقدمه SS7 گرديد. (UP) گفته ميشود. MTP وظيفه انتقال پيامهاي SS7 را User Part. Part هاي SS7 هستند.   LI I FSN I BSN F ه ب ٨٤١ شماره ۷ نشريه دانشکده فني, دوره ۴۲, شماره ۷, بهمن ماه ۱۳۸۷, از صفحه ۸۴۱ تا ۸۵۰ بهينهسازي تقسيم بار در شبكه سيگنالينگ چكيده ۱ رضا خليلي, ۲* ۱ مهدي شيرازي و احمد صلاحي ۱ شركت مخابرات استان تهران

Διαβάστε περισσότερα

يون. Mg + ا نزيم DNA پليمراز III

يون. Mg + ا نزيم DNA پليمراز III مراحل همانندسازي DNA همانندسازي DNA را ميتوان به سه مرحله تقسيم كرد : ۱. مرحله ا غاز phase) :(Initiation شامل شناسايي مبدا همانندسازي تشكيل كمپلكس شروع همانندسازي يا ريپليزوم و اضافه شدن چند نوكلي وتيد

Διαβάστε περισσότερα

No. F-16-EPM مقدمه

No. F-16-EPM مقدمه No. F-16-EPM -2151 بررسي اثر پرداخت بهاي آمادگي بر هزينههاي بازار برق ايران مريم طارمي سيد ميثم عزتي رضا طهماسبي ايمان رحمتي مديريت نظارت و كنترل بر عملكرد بازار برق معاونت بازار برق ايران شركت مديريت

Διαβάστε περισσότερα

رياضي 1 و 2 تابع مثال: مثال: 2= ميباشد. R f. f:x Y Y=

رياضي 1 و 2 تابع مثال: مثال: 2= ميباشد. R f. f:x Y Y= رياضي و رياضي و تابع تعريف تابع: متغير y را تابعي از متغير در حوزه تعريف D گويند اگر به ازاي هر از اين حوزه يا دامنه مقدار معيني براي متغير y متناظر باشد. يا براي هر ) y و ( و ) y و ( داشته باشيم ) (y

Διαβάστε περισσότερα

در کدام قس مت از مسیر انرژی جنبشی دستگاه بیشینه و انرژی پتانسیل گرانشی آن کمینه است

در کدام قس مت از مسیر انرژی جنبشی دستگاه بیشینه و انرژی پتانسیل گرانشی آن کمینه است در کدام قس مت از مسیر انرژی جنبشی دستگاه بیشینه و انرژی پتانسیل گرانشی آن کمینه است فيزيك سیمای فصل -5 كار -5 كار و انرژي جنبشي 3-5 پايستگي انرژي مكانيكي 4-5 توان پرسشهاي مفهومي مسئلهها 86 فصل پنجم/کار

Διαβάστε περισσότερα

آزمايشگاه ديناميك ماشين و ارتعاشات آزمايش چرخ طيار.

آزمايشگاه ديناميك ماشين و ارتعاشات آزمايش چرخ طيار. ` آزمايشگاه ديناميك ماشين و ارتعاشات dynlab@jamilnia.ir www.jamilnia.ir/dynlab ١ تئوري آزمايش چرخ طيار يا چرخ ل نگ (flywheel) صفحه مدوري است كه به دليل جرم و ممان اينرسي زياد خود قابليت بالايي در ذخيرهسازي

Διαβάστε περισσότερα