- ارسال شده در ۱۳۹۲ خرداد ۰۱ ساعت ۱۹:۳۶
- توسط پویا شفیعی
- ۱۵۲ نظر
- در مالتی مدیا بیلدر » اسکریپ نویسی
حالت خطی مفاهیم اولیه اسکریپت نویسی در Multimedia Builder
Multimedia Builder نرم افزاری جالب و با محیطی ساده برای ساخت برنامه های چندرسانه ایست.
این برنامه نیز مانند ابزارهای مشابه دارای سینتکس و زبان اسکریپت نویسی خاص خود است که با آن شما قادر خواهید بود برنامه های خود را با نوشتن کدها تحت قالب اسکریپت نویسی برنامه قویتر و کاربردی تر کنید.
این زبان (در واقع اسکریپت) نیز مانند زبان های دیگر قواعد و چارچوبی برای کدنویسی دارد.
متغیر ها: متغیرها در این زبان اسکریپت نویسی تنها دو نوع اند:
متغیرهای رشته ای (String) : این نوع متغیر کاراکتر ها را در خود نگهداری میکند، برای مشخص کردن یک متغیر از نوع String کافیست در انتهای نام متغیر کاراکتر $ را قرار دهید (= $StringVariable)
برای مقداردهی این نوع متغیر باید متن مورد نظر(کاراکترها) را بین دو کاراکتر ' محصور کرد:
کد:
StringVariable$ = 'Hello World'
متغیرهای عددی (Integer): این نوع متغیرها از نوع عددی هستند و اعداد را در خود ذخیره میکنند
برای مشخص کردن یک متغیر از نوع عددی کافیست که نام متغیر را بدون علامت $ را ذکر کنید:
کد:
IntegerVariable = 125
** لازم به ذکر هست که در MMB متغیرها نیاز نیست که از قبل تعریف شده باشن و بعد ازشون استفاده بشه، در واقع هرجا ما یک متغیر جدید رو مقدار دهی میکنیم، همونجا متغیر تعریف میشه و این متغیر در سرتاسر برنامه در دسترس هست، مثلاً با کد زیر یک متغیر از نوع رشته ای یا String تعریف و مقداردهی میشه:
کد:
StringVariable$ = 'Hello World'
عملگرها: در این برنامه میتونید از چهار عملگر اصلی جمع (+) ضرب (*) تقسیم (/) و تفریق(-) استفاده کنید.
برای متغیرهای عددی این چهار عملگر همگی در دسترس اند (قابل استفاده اند)، که همانطور که مشخص هست با این عملگرها میتوان اعمال ریاضی را روی متغیرهای عددی انجام داد
نکته ی قابل توجه این است که برای متغیرهای رشته ای تنها میتوان از عملگر جمع استفاده نمود که باعث پیوند دادن دو رشته به یکدیگر میشود.
کد:
Int1 = 12
Int2 = 25
Sum = Int1 + Int2
مقدار متغیر Sum برابر جمع دو متغیر Int1 و Int2 است که در این مثال برابر 37 خواهد بود
در این کد میتوان از عملگرهای ضرب، تقسیم و تفریق نیز استفاده نمود که جواب معادل ریاضی آنها خواهد بود
کد:
String1$ = 'Hello'
String2$ = 'Every Body'
FinalString$ = String1$ + String2$در این کد نیز ما ابتدا دو متغیر از نوع رشته ای تعریف کرده و آنها را مقداردهی نمودیم سپس یک متغیر رشته ای دیگر نیز تعریف نموده و مقدار آن را برابر جمع دو متغیر رشته ای قبل قرار دادیم
عملگر جمع در متغیرهای رشته ای باعث پیوند خوردن دو رشته به یکدیگر میشود، به عنوان مثال در کد بالا مقدار متغیر $FinalString برابر HelloEvery Body خواهد بود.
همانگونه که در کدهای بالا مشاهده میکنید، تنها متغیرهای از یک نوع قابل جمه شدن با هم هستند، یعنی مثلاً ما نمیتوانیم یک متغیر عددی را با یک متغیر رشته ای جمع نماییم.
و همچنین متغیری که مقدار آن برابر جمع دو متغیر عددی است، خود نیز باید از نوع عددی باشد (Sum = Int1 + Int2 هر سه عددی)
و همچنین متغیری که مقدار آن برابر جمع دو متغیر رشته ای است، خود نیز باید از نوع رشته ای باشد(FinalString$ = String1$ + String2$)
البته دستوراتی در MMB موجود است که توسط آن میتوان انواع کتغیرها را به یکدیگر تبدیل کرد که در آینده به آنها اشاره خواهد شد.
لازم به ذکر است که متغیرها در MMB از نوع Case Sensetive(حساس به کوچک و بزرگی حروف) هستند بدان معنا که INT با Int یا int برابر نخواهد بود.
عبارات شرطی
خب، در قسمت قبل تا حدودی با متغیرها آشنا شدید
حالا نوبت میرسه به عبارات شرطی...
عبارات شرطی (If..Then Statements): عبارت شرطی عبارتی است که در آن یک یا چند شرط رو تعریف میکنیم و دستوراتی رو تعیین میکنیم که در صورت برقراری شرط اجرا میشن، همچنین میتونیم دستوراتی رو مشخص کنیم که در صورت عدم برقراری شرط اجرا بشن.
شکل کلی عبارات شرطی در MMB بدین شکل هست:
کد:
[font=Courier New][size=small][color=#0000ff]If[/color] (STATEMENTS) [color=#0000ff]Then[/color] [/size][/font]
[font=Courier New][size=small] [color=#009000]** CODES[/color] [/size][/font]
[font=Courier New][size=small] [color=#0000ff]Else[/color] [/size][/font]
[font=Courier New][size=small] [color=#009000]** CODES[/color] [/size][/font]
[font=Courier New][size=small][color=#0000ff]End[/color][/size][/font]
به مثالهایی از کاربرد عبارات شرطی توجه فرمایید:
فرض کنید برنامه ی ما قرار است چک کند که اگر تاریخ سال که در متغیر عددی Year تعریف شده است برابر 2009 بود پیغام سال 2009 مبارک را به کاربر بدهد و در غیر اینصورت، پیغامی مبنی بر اینکه امسال، سال 2009 نیست به کاربر بدهد:
کد:
If (Year = 2009) Then
Message("Happy Year 2009 !","")
Else
Message("This Year is not year 2009","")
End
همانطور که مشاهده میکنید در خط دوم (قبل از عبارت Else) دستوراتی که قرار است در صورت برقرار شدن شرط اجرا شوند را مشخص میکنیم و در خط چهارم (بعد از Else و قبل از End) دستوراتی که در صورت عدم برقراری شرط اجرا میشوند را معین میکنیم
توجه کنید که فرم کلی دستور به این شکل است که دستور با عبارت IF شروع میشود، سپس شرط موردنظر در پرانتز قرار میگیرد و بعد از آن عبارت Then، در خط بعد کدهایی که در صورت برقراری شرط باید اجرا شوند را مشخص میکنیم، سپس اگر بخواهیم در عبارت شرطی کدهایی را برای زمانی که شرط برقرار نشده است را نیز مشخص کنیم، در خط بعد عبارت Else را نوشته و در خط بعد از آن کدهای مربوطه را تعیین میکنیم، و در پایان هم عبارت End را که به معنای پایان عبارت شرطی است و باید نوشته شود را می نویسیم
* اگر در قسمت اسکریپت نویسی MMB عبارت IF را نوشته و دکمه ی Space را بزنیم، برنامه بدنه ی عبارت شرطی را برای ما وارد میکند و نیاز نیست که تمام عبارت را خودمان بنویسیم.
** در مثال بالا از دستور Message بعنوان کد نمونه استفاده شده است، این کد یک پنجره ی MessageBox را با متن مشخص شده نمایش میدهد، در قسمت های بعدی با انواع دستورات MMB آشنا خواهید شد.
عملگرهایی که در قسمت شرط عبارات شرطی قابل استفاده اند به شرح زیر است:
مساوی : ( = ) همانطور که مشخص است این عملگر برابری دو مقدار رو چک میکنه مخالف : ( <> ) این عملگر نا برابری دو مقدار رو چک میکنه کوچکتری : ( > ) این عملگر هم همانطور که مشخص هست کوچکتر بودن مقدار اول رو از مقدار دوم چک میکنه بزرگتری : ( < ) این عملگر هم بزرگتر بودن مقدار اول رو نسبت به مقدار دوم چک میکنه کوچکتر مساوی : ( > ) این عملگر کوچکتر یا مساوی بودن مقدار اول رو نسبت به مقدار دوم چک میکنه بزرگتر مساوی : ( < ) این عملگر بزرگتر یا مساوی بودن مقدار اول رو نسبت به مقدار دوم چک میکنه
در عبارات شرطی میتوان چندین شرط رو با هم تعیین کرد
برای تعیین کردن چند شرط از عبارات "و" ( & ) و "یا" ( | ) میتوان استفاده کرد، به مثال زیر توجه فرمایید:
کد:
If (Name$ = 'Ali' & Age = 18) Then
Message("Ali is 18","")
End
در این قطعه کد اگر نام (متغیر رشته ای $Name) برابر Ali بود و سن (متغیر عددی Age) نیز برابر 18 بود برنامه پیامی را نمایش میدهد
در این مثال از اپراتور " & " استفاده شده که به معنای "و" است یعنی برای اجرای دستورات باید هردو شرط نام و سن برقرار باشند.
همانطور که میبینید در این کد از قسمت دوم شرط یعنی عبارت Else استفاده نشده که بدین معناست که هیچ رویدادی برای زمانی که شرط برقرار نیست تعریف نشده است، که این نشان دهنده ی اختیاری بودن این قسمت است.
کد:
If (Name$ = 'Ali' | Name$ = 'Ahmad') Then
Message("Welcome !","")
End
در مثال بالا از اپراتور " | " که به معنای " یا " است استفاده کردیم به این معنا که در صورتی که یکی از دوشرط موجود برقرار باشد کدها اجرا میشوند و پیغام خوش آمد گویی نمایش داده میشود !
همچنین میتوان در عبارات شرطی از ترکیبی از این دو اپراتور استفاده نمود:
کد:
If ((Name$ = 'Ali' | Name$ = 'Ahmad') & Age = 18) Then
Message("Ali is 18","")
End
در این مثال اگر نام برابر Ali یا Ahmad باشد و سن برابر 18 باشد کدها اجرا میشوند
یعنی در این شرط اگر مقدار متغیر $Name برابر یکی از مقادیر Ali یا Ahmad باشد، و در عین حال سن نیز حتماً برابر 18 باشد کدها اجرا میشوند
در این پست دستورات شرطی مختصراً توضیح داده شد، این عبارات در برنامه نویسی اهمیت زیادی دارند زیرا به کمک آن میتوان برای شرایطی خاص کدهایی را برای اجرا تعیین نمود باعث هوشمندی بیشتر برنامه ی ساخته شده خواهند شد.
بعد از متغیر ها و عبارات شرطی، نوبت به حلقه ها میرسه
حلقه ها (Loops): از حلقه ها برای انجام یک یا چند کار (اجرای یک قطعه کد) به تعداد دفعات متعدد استفاده میکنیم.
مثلاً فرض کنید ما بخایم که پیغام "Hello" رو 5 بار نمایش بدیم، بجای اینکه کد Message رو 5 بار بنویسیم از یک حلقه استفاده میکنیم که به تعداد 5 بار کدهای داخل حلقه رو اجرا کنه (5 بار دور بزنه)
شکل کلی حلقه در MMB بدین صورت است:
کد:
For i = FirstValue To LastValue
** CODES
Next i
که در آن " i " را متغیر شمارنده گویند، زیرا شماره ی مربوط به تعداد دفعات تکرار حلقه را در خور نگاه میدارد
در این حلقه منظور از FirstValue عددی است که حلقه باید شمارش را از آن آغاز نماید و منظور از LastValue عددی است که حلقه با رسیدن به آن عمل تکرار را متوقف میسازد
کد:
For i = 1 To 5
Message("Message from loop: Hello","")
Next i
در این حلقه متغیر " i " متغیر شمارنده ی ما است، البته می توان بجای i از هر متغیر عددی یا نام دیگری استفاده کرد و قرار دادن i به عنوان شمارنده صرفاً یک قرارداد است.
در حلقه ها میتوان عدد اول را بزرگتر از عدد دوم در نظر گرفت، در اینصورت در هر بار دور حلقه یک واحد به متغیر شمارنده اضافه میشود
و یا میتوان عدد اول را کوچکتر از عدد دوم در نظر گرفت، که در این صورت در هر بار دور زدن حلقه یک واحد از متغیر شمارنده کم میشود و اصطلاحاً حلقه در جهت عقب دور میزند
همچنین در حاقه ها میتوان از اعداد منفی (1-) نیز استفاده نمود
* در حلقه ها میتوان بجای عدد دوم یا LastValue از ثابت Infinity استفاده نمود، این ثابت که به معنای بینهایت است باعث میشود که حلقه بینهایت بار تکرار شود و در واقع به تعداد نا محدودی تکرار شود
** در حلقه ها میتوان با رسیدن حلقه به یک شرایط خاص حلقه را متوقف کرد، مثلاً فرض کنید می خواهیم کدی بنویسیم که تعداد شرکت کنندگان در یک آزمون اختصاصی را دریافت کند و از این تعداد، تنها 20 نفر را پذیرش کند، از آنجا که تعداد شرکت کنندگان در آزمون برای ما مشخص نیست، ما باید کدی بنویسیم که حلقه را تا زمانی ادامه دهد که تعداد شرکت کنندگان برابر 20 باشد و اگر حلقه به عدد 21 رسید، حلقه را متوقف کند:
کد:
For Participant = 1 To NumOfParticipants
If (Participant = 21) Then
Return()
End
Message("Participant Accepted.","")
Next Participant
در این کد یک عبارت شرطی در حلقه قرار داده شده که هر بار که حلقه اجرا می شود، شمارنده ی حلقه را چک میکند که اگر برابر 21 باشد حلقه را متوقف میکند(می توانستیم بنویسیم اگر بزرگتر از 20باشد؛ Participant > 20)، در این کد برای متوقف کردن حلقه از دستور ()Return استفاده شده است، که باعث میشود ادامه ی کد اجرا نشود و اسکریپت را متوقف میسازد
در این کد می توانستیم بجای ()Return از دستور ()Break استفاده کنیم، تفاوت این دو در این است که دستور ()Return از اجرای اسکریپت بطور کامل جلوگیری میکند، بدین معنا که دستوراتی که پس از حلقه وجود دارند نیز اجرا نخواهند شد، در صورتی که دستور ()Break باعث میشود که تنها حلقه متوقف شود و کدهایی که پس از حلقه وجود دارند بلافاصله اجرا خواهند شد.
در قسمت هاب بعد با کاربرد این دستورات بیشتر آشنا خواهید شد
*** متغیر دوم در حلقه ها (LastValue) میتواند بصورت دینامیک تغییر کند، یعنی مثلاً میتوان حلقه را از عدد 1 تا عدد 10 (که در متغیر LastValue تعریف شده است) تعریف نمود و سپس با رسیدن حلقه به عدد 4، عدد پایانی حلقه را به مثلاً عدد 4 یا هر عدد دیگری تغییر داد، که در اینصورت، حلقه بجای پایان یافتن در عدد 10 در عدد جدید متوقف میشود، از این روش میتوان بجای استفاده از ()Break و ()Return استفاده کرد:
کد:
For Participant = 1 To NumOfParticipants
Message("Participant Accepted.","Participant")
If (Participant = 20) Then
NumOfParticipants = Participant
End
Next Participant
از آنجایی که حلقه ها مستمراً تا به پایان رسیدنشان تکرار میشوند، اگر تعداد تکرار زیاد باشد یا مثلا بینهایت باشد (Infinity)، تمام زمان برنامه بر روی حلقه صرف میشود و برنامه از اجرای درست کدهای دیگر باز می ماند و ممکن است برنامه هنگ کند، برای رفع این مشکل می توان در حلقه از دستورات زیر استفاده نمود:
("")Refresh: این دستور به قسمت های دیگر برنامه اجازه می دهد تا کدهایشان را به درستی اجرا کنند، توجه کنید که استفاده از این دستور در حلقه های طولانی برای اجرای درست و مناسب برنامه بسیار حیاتی است.
("")Pause : این دستور اجرای حلقه را به مدت زمانی که در این دستور مشخص شده (برحسب میلی ثانیه) به تأخیر می اندازد (یا متوقف میکند)، مثلاً با کمک این دستور می توان حلقه ای را هر یک ثایه یکبار تکرار کرد [ ("1000")Pause ]
آرایه ها
آرایه ها: آرایه ها نوع خاصی از متغیر ها هستند که میتوانند چند آیتم را در خود نگه دارند، در واقع آرایه ها مانند یک بسته عمل میکنند که حاوی چندین داده از یک نوع است و میتوان با ذکر شماره ی داده، به آن داده دسترسی یافت
در MMB نیز از آرایه ها استفاده میکنیم، به این آرایه ها آرایه های تک بعدی گفته میشود، زیرا که داده ها در این آرایه ها بصورت "خطی" ذخیره میشوند
آرایه ها در MMB گروهی از متغیرها تحت یک نام هستند، به همراه آدرس هایی، که ما به کمک این آدرس ها میتوانیم به هر آیتم در آرایه دسترسی داشته باشیم.
در زبان MMB آرایه ها نیز مانند متغیرها استفاده میگردند
Variable | Array
a$ | a$[n]
name$ | name$[n]
clicks | clicks[n]
user_adress$ | user_adress$[n]
user_counter | user_counter[n]
در سمت چپ جدول متغیرها قرار دارند و در سمت راست جدول، همان متغیرها، اما به فرم آرایه - نوع پیشرفته ی متغیر که میتوانیم اطلاعات بیشتری را در آن ذخیره نماییم.
بیایید یک آرایه را بررسی کنیم:
کد:
user_counter[n]
این آرایه از اجزای زیر تشکیل شده است:
نام آرایه: user_counter: نام آرایه که می تواند از نوع متغیر عددی یا رشته ای (با علامت $) باشد.
دو کروشه (Square Brackets) : [] : اندیس آرایه در بین این دو کروشه محصور میشود
اندیس آیتم: (n) : عدد با متغیری عددی که به شماره ی آیتم مورد نظر در آن آرایه اشاره میکند.
چند مثال از آرایه ها:
آرایه هایی که اندیس شان (آدرس آیتم در آرایه) از نوع عدد است:
کد:
a[1]
twain$[72]
my_finger[534]
tool$[102]
آرایه هایی که اندیس شان از نوع متغیر عددی است:
کد:
a[i]
twain$[chapter_no]
my_finger[finger_number]
tool$[tool_drawer]
آرایه ها به طور گسترده ای در حلقه ها مورد استفاده قرار میگیرند، که استفاده از متغیرهای عددی در اندیس آرایه راهکار مناسبی است
به مثالی از آرایه توجه کنید:
کد:
For i = 1 To 6
Array[i] = i * i
Next i
با اجرای این حلقه یک آرایه ی 6 عضوی ایجاد خواهد شد که عناصر آن به شرح زیر است:
Array[1] = 1
Array[2] = 4
Array[3] = 9
Array[4] = 16
Array[5] = 25
Array[6] = 36
که در آن هر عنصر از آرایه برابر i به توان 2 است
این نوشته توضیح مختصری بود بر آرایه ها در MMB، البته نوع دیگری از آرایه ها در MMB وجود دارند که به آنها Delimited String نیز گفته میشود که در نوشته های آتی به توضیح بیشتر این موضوع خواهم پرداخت.
در پست قبل در حد مطلوبی با آرایه ها آشنا شدید
گفته شد که آرایه ها نوع خاصی از متغیر ها هستند، بدین معنا که می توان با آنها همانند متغیرها رفتار نمود، با این تفاوت که آرایه ها توانایی ذخیره ی چندین مقدار متفاوت از یک نوع را در خود دارند، و از این جهت باعث راحت تر شدن کار ما شده اند !
و گفنه شد که آرایه ها نیز همانند متغیرها میتوانند از نوع رشته ای یا عددی باشند:
آرایه ی عددی: این نوع آرایه توانایی ذخیره ی اعداد را در خود دارد و شمایل کلی آن بدین صورت است:
کد:
IntegerArray[]
آرایه ی رشته ای (متنی) : این نوع آرایه توانایی ذخیره ی کلمات و کاراکترها و اعداد (از نوع کاراکتر) را در خود دارد و در نوشتن نام آین نوع آرایه همانند متغیر همتای خود از پسوند $ استفاده میشود:
کد:
StringArray$[][i]
و برای دستیابی به مثلاً آیتم n ام این آرایه (آدرس آیتم) از کدی همانند کد زیر استفاده میگردد:
کد:
Integer = IntegerArray[n]
String$ = StringArray$[n][i]
اما گفته شد که علاوه بر این نوع آرایه، نوع دیگری از آرایه ها نیز موجود است:
کد:
Array$ = 'Ali#Hamid#Elham#Homa#Saeid#Neda#Farzad#Anahita#'[i]
این نوع آرایه ها که به " Delimited String " معروف اند، نوع خاصی از آرایه ها هستند که تمام آیتم های آن توسط یک کاراکتر خاص (در این مثال کاراکتر " # " ) از هم جدا شده اند، به این کاراکتر، کاراکتر جداساز گفته میشود.
نمونه ی بارزی از این نوع آرایه ها، فایلهای (CSV (Comma Seperated Values هستند، این نوع فایلها از کاراکتر " , " به عنوان کاراکتر جداساز استفاده کرده است، شاید همینجا اهمیت این نوع آرایه برای ما مشخص شود، با پشتیبانی MMB از این نوع آرایه میتوان فایلهایی از این دست را مورد پردازش قرار داد
MMB برای کار با این نوع آرایه ها دو دستور پیش روی ما قرار داده است:
(GetArrayNum(Array$,Delimiter
توسط این دستور میتوان تعداد آیتم های موجود در آرایه را بدست آورد، این دستور دو ورودی میگیرد که ورودی اول " $Array " است که در واقع نام آرایه ی مورد نظر است و ورودی دوم که " Delimiter " است، در واقع همان کاراکتر جداساز است که این دستور با کمک آن تعداد آیتم های موجود در آرایه را تشخیص میدهد، و خروجی این دستور یک عدد است که مشخص کننده ی تعداد آیتم های موجود در آرایه است.
لطفاً توجه فرمایید که این دستور به تنهایی نمیتواند بکار رود و باید در طرف دیگر تساوی یک متغیر عددی باشد، به کد زیر توجه فرمایید:
کد:
Array$ = 'Ali#Hamid#Elham#Homa#Saeid#Neda#Farzad#Anahita#'
NumOfItems = GetArrayNum(Array$,#)
Message("Number of Items in Array:","NumOfItems")
که در این مثال مقدار برگردانده شده توسط این دستور عدد 8 است که نشان دهنده ی تعداد آیتم های موجود در آرایه ی مشخص شده است.
برای پردازش این نوع آرایه ها ابتدا توسط این دستور تعداد آیتم های موجود در آرایه را بدست آورده، سپس با مشخص شدن تعداد آیتم توسط دستور بعد - که توضیح داده خواهد شد - آیتم ها را استخراج می نماییم.
(GetArrayItem(Array$,Delimiter,Index
توسط این دستور میتوان یک آیتم خاص را از آرایه استخراج نمود.
این دستور سه ورودی دارد که شرح داده خواهند شد:
$Array : نام آرایه ی مورد نظر را مشخص میکند
Delimiter : کاراکتر جداساز بکار رفته در آرایه را مشخص میکند، مشخص کردن این کاراکتر برای پردازش صحیح آرایه الزامیست
Index : این ورودی یک عدد است که مشخص کننده ی شماره ی آیتم مورد نظر در آرایه است، این عدد میتواند بین 1 و عدد بازگردانده شده توسط دستور GetArrayNum (تعداد آیتم های موجود در آرایه) باشد
و خروجی این دستور نیز یک String است که حاوی آیتم مورد نظر است
به مثال زیر توجه کنید:
کد:
Array$ = 'Ali#Hamid#Elham#Homa#Saeid#Neda#Farzad#Anahita#'
Item$ = GetArrayItem(Array$,#,3)
Message("The Third Item in Array:","Item$")[i]
که خروجی این دستور متن " Elham " است که در واقع سومین آیتم این آرایه است.
در مثال زیر، استفاده ی پیشرفته تر این دو دستور نشان داده میشود:
کد:
Array$ = 'Ali#Hamid#Elham#Homa#Saeid#Neda#Farzad#Anahita#'
Delimiter$ = '#'
NumOfItems = GetArrayNum(Array$,Delimiter$)
For i=1 To NumOfItems
Item$ = GetArrayItem(Array$,Delimiter$,i)
Text$ = 'Item ' + CHAR(i)
Message("Text$","Item$")
Next i
در این مثال ابتدا توسط دستور GetArrayNum تعداد آیتم های موجود در آرایه مشخص میشود، سپس در یک حلقه که از 1 تا تعداد آیتم های موجود در آرایه اجرا میشود، تک تک آیتم های موجود در آرایه استخراج میشود و سپس در یم MessageBox نمایش داده میشود
* نکته: در خط ششم کد از دستور (CHAR(i استفاده شده است، این دستور محتویات یک متغیر عددی را به کاراکتر ها تبدیل میکند، مزیت و ضرورت انجام این کار اینست که یک متغیر عددی ( i ) و کاراکتر ها (متغیر رشته ای) قابلیت جمع شدن با هم وکنار هم آمدن را ندارند چون دارای ماهیتی متفاوت اند، برای حل این مشکل از دستور ()CHAR استفاده میشود که متغیر عددی را به کاراکتر تبدیل میکند و ماهیت آن را به ماهیت متغیر رشته ای که همان کاراکتر است تغییر میدهد، که اینکار امکان جمع شدن این دو را فراهم می آورد.
برای درک بهتر موضوع سعی کنید یک متن و یک عدد را در کنر هم قرار دهید و نتیجه را مشاهده کنید (احتمالاً با طرح این موضوع این سوال برایتان پیش آمده که برای تبدیل کاراکتر به عدد - یا بهتر بگویم عددهایی که در قالب کاراکتر اند - چه باید کرد ؟ خوب این هم راه دارد که بعداً به آن پرداخته خواهد شد، فقط خیلی آرام بگویم، از دستور ()VAL استفاده میشود )
تا اینجا با متغیرها که پایه ای ترین مبحث در اسکریپت نویسی MMB است آشنا شدید و دانستید که چگونه میتوان اعمالی را روی متغیرها انجام داد
در قسمت قبل اشاره ای به دستور (CHAR(i شد، که این دستور محتوای متغیر عددی i را به کاراکتر تبدیل میکرد که اینکار امکان درج آن عدد در یک جمله - یا متغیر رشته ای - را فراهم می آورد
در این قسمت با توابع و دستوراتی که اعمالی را روی متغیرها - عددی و رشته ای - انجام میدهند آشنا میشوید
(CHAR(integer
این دستور یک متغیر عددی یا یک عدد را میگیرد - به عنوان ورودی؛ در پرانتز - و آن را به نوع متغیر رشته ای یا کاراکتر تبدیل می کند
کد:
integer = 25
String$ = 'My Score is: '
Score$ = String$ + integer
Message("Score$","")
این کد سعی میکند یک متغیر رشته ای و یک متغیر عددی را - همانگونه که هستند - به هم پیوند دهد، اگر این کد را در پنجره ی اسکریپت نویسی MMB بنویسید، با خطایی مواجه خواهید شد مبنی بر اینکه شما مجاز نیستسد داده هایی از نوع مختلف را به هم پیوند دهید
برای انجام اینکار از تابع ()CHAR بهره میبریم:
کد:
integer = 25
String$ = 'My Score is: '
Score$ = String$ + CHAR(integer)
Message("Score$","")
این کد همان کار را به شیوه ای صحیح و درست انجام میدهد، با اجرای این کد یک پیغام نمایش داده میشود
($VAL(String
این تابع یک متغیر رشته ای را به متغیر عددی تبدیل می کند، این تابع اعداد موجود در رشته را از اولین کاراکتر تا رسیدن به یک کاراکتر غیر عدد، را به اعداد صحیح یا متغیر عددی تبدیل میکند
کد:
String$ = '22 January 2009'
Integer = VAL(String$)
Message("Integer Value is:","Integer")
این کد متغیر رشته ای $String را به عدد تبدیل کرده و آن را در متغیر عددی Integer قرار میدهد (میریزد)
خروجی این کد عدد 22 خواهد بود، زیرا این دستور از اولین کاراتر رشته شروع به خواندن میکند و تا جایی که کاراکتر از نوع عدد باشد عمل تبدیل را انجام میدهد، در کد بالا دو کاراکتر اول از نوع عدد عستند (22) ولی کاراکتر سوم یک کاراکتر غیرعددی است (فاصله)، بنابراین تابع به محض رسیدن به کاراکتر سوم عملیات تبدیل را متوقف میکند و مقدار بدست آمده را بر میگرداند، همانگونه که میبینید عدد 2009 که در رشته وجود دارد، به دلیل انفصالی که بین کاراکترهای عددی وجود دارد و اینکه بعد از کاراکترهای غیر عددی قرار گرفته است لحاظ نمیشود و برگردانده نمیشود،
توجه کنید که اگر اولین کاراکتر از نوع عدد نباشد، عملیات تبدیل از همان ابتدا متوقف شده و تابع مقدار صفر را برمیگرداند
مطالب مرتبط:
- آموزش اسکریپت نویسی در برنامه MultiMedia Builder ( بخش اول )
- آموزش اسکریپت نویسی در برنامه MultiMedia Builder ( بخش دوم )
- آموزش اسکریپت نویسی در برنامه MultiMedia Builder ( بخش سوم )
- آموزش اسکریپت نویسی در برنامه MultiMedia Builder ( بخش چهارم )
ارسال پاسخ
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد.
آخرین اخبار



۱۵۲ نظر
Rogerwox
۱۳۹۶/۰۵/۰۳ - ۱۳:۱۴:۴۸Dissertation Writing Service - EssayErudite.com
Our https://essayerudite.com/dissertation-writing-service/ provides a full-scale writing assistance accessible online 24/7.
Apart from many other writing companies, we are rather picky when forming a professional staff of experts.
Moreover, we try to make our every customer feel safe and pleased with the service.
EssayPaper
۱۳۹۶/۰۵/۰۴ - ۱۴:۲۴:۰۳EssayErudite.com is the web's leading provider of quality and professional academic writing.
When it comes to essay writing, an in-depth research is a big deal. Our experienced writers are professional in many fields of knowledge so that they can assist you with virtually any academic task. We deliver papers of different types: essays, theses, book reviews, case studies, etc.
We have thousands of satisfied customers who have already recommended us to their friends. Why not follow their example and place your order today?
EssayPaper
۱۳۹۶/۰۵/۰۴ - ۱۷:۴۵:۰۹EssayErudite.com is the web's leading provider of quality and professional academic writing.
When it comes to essay writing, an in-depth research is a big deal. Our experienced writers are professional in many fields of knowledge so that they can assist you with virtually any academic task. We deliver papers of different types: essays, theses, book reviews, case studies, etc.
We have thousands of satisfied customers who have already recommended us to their friends. Why not follow their example and place your order today?
AaauceHibIa
۱۳۹۶/۰۵/۰۸ - ۰۶:۱۸:۴۰Segway Verona offers tours that make sure you will enjoy a fun and immerse experience of our beloved city. We combine Segway, our innovative way of transportation, with tours in the historical city centre. Through our explorations of 1 or 2 hours, we will bring you to the most breathtaking spots, so that, if you do not stay long in Verona, we make sure that you see all of the unmissable sights!
Segway is really easy to use! It is so intuitive that it feels like an extension of the human body. To understand why, consider this: if you stand up and lean forward, so that you are out of balance, you will intuitively put your leg forward. Segway works the same way: to move forward or backward
AaauceHibIa
۱۳۹۶/۰۵/۰۸ - ۰۶:۱۸:۴۰Segway Verona offers tours that make sure you will enjoy a fun and immerse experience of our beloved city. We combine Segway, our innovative way of transportation, with tours in the historical city centre. Through our explorations of 1 or 2 hours, we will bring you to the most breathtaking spots, so that, if you do not stay long in Verona, we make sure that you see all of the unmissable sights!
Segway is really easy to use! It is so intuitive that it feels like an extension of the human body. To understand why, consider this: if you stand up and lean forward, so that you are out of balance, you will intuitively put your leg forward. Segway works the same way: to move forward or backward
nacmokhek
۱۳۹۶/۰۵/۱۰ - ۲۱:۲۴:۵۲Chris Pratt foto alla perdita di peso http://cigopweight.space/tvh875ugv683528-616p.html a test fogyГЎs menГј http://cigopweight.space/zey51xh-8mma.html hogyan kell alkalmazni a joghurtot a fogyГЎs http://cigopweight.space/1xb18-xd6l5-4hn.html fogyГЎs diГ©ta orvos Bormental http://cigopweight.space/5z96m1r-5na34r-17-a.html Test non si ГЁ in sovrappeso http://cigopweight.space/55f532h12n2zq28hvlf.html fotГі elЕ‘tte utГЎna diГ©ta 5kg http://cigopweight.space/k42-fansket.html pillola di dieta fluoxetina http://cigopweight.space/u-j-1-8-7n-2-9c93w28h.html inni diГ©ta gyГ¶mbГ©r citrom arГЎnya http://cigopweight.space/kjf8okh872i75a-w68.html nicht einen sГјГџen Zahn haben, ist es mГ¶glich, das Gew