مديريت رشته ها در ويژوال بيسيک
مديريت رشته ها در ويژوال بيسيک ۶
توابعی که برای مديريت رشته ها در وی بی می توانيد از آنها استفاده کنيد عبارتند از :
تابع Asc : کد اسکی اولين کاراکتر رشته ورودی را بر می گرداند .
فرمت کلی آن بصورت زير است :
توابعی که برای مديريت رشته ها در وی بی می توانيد از آنها استفاده کنيد عبارتند از :
تابع Asc : کد اسکی اولين کاراکتر رشته ورودی را بر می گرداند .
فرمت کلی آن بصورت زير است :
۱ - استفاده از یک تابع کتابخانه ای به اسم GetAsyncKeyState موجود در کتابخانه user32.dll . این تابع ، فشرده شدن یا رها شدن یک کلید را تشخیص می دهد . نحوه declare کردن این تابع بصورت زیر است :
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
حال در برنامه تان یک timer قرار داده و در event آن کد زیر را قرار دهید :
For i = 1 To 255
results = 0
results = GetAsyncKeyState(i)
If results <> 0 Then
Msgbox(Chr(i))
End If
Next
برای مشاهده یک برنامه نمونه به این آدرس مراجعه کنید .
۲ - استفاده از قلاب یا Hook : قلاب ، یک ابزار در مکانیزم مدیریت پیغام سیستم ویندوز است که توسط آن برنامه ها می توانند یک روتین را برای مدیریت و پردازش پیغامهای خاصی قبل از اینکه آن پیغامها به برنامه مقصد برسند نصب نمایند . قلابها باعث کندی سیستم می شوند زیرا حجم پردازشی سیستم روی هر پیغام را افزایش می دهند بنابراین بایستی زمانیکه واقعاً به قلاب نیاز دارید آنرا نصب نموده و هر چه زودتر آنرا حذف نمایید . سیستم ویندوز از انواع زیادی از قلابها پشتیبانی می کند که هر کدام امکان دستیابی به پیغامهای خاصی را مهیا می نمایند برای مثال یک برنامه کاربردی می تواند با استفاده از قلاب کیبرد برای مدیریت و پردازش پیغامهای مربوط به آن ( مثل فشرده شدن یک کلید خاص یا رها شدن آن ) استفاده کند .
برای نصب یک قلاب در برنامه از یک تابع کتابخانه ای به اسم SetWindowsHookEx استفاده می شود . این تابع یک قلاب را به زنجیره قلابهای سیستم اضافه می کند . نحوه declare کردن این تابع بصورت زیر است :
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
همچنین برای آزاد کردن یک قلاب و حذف آن از زنجیره قلابها از تابع کتابخانه ای UnhookWindowsHookEx استفاده می گردد . نحوه declare کردن این تابع بصورت زیر است :
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
برای ایجاد قلاب کیبرد همچنین نیاز به تعریف یک ثابت است که شماره قلاب کیبرد در آن قرار دارد :
Public Const WH_KEYBOARD = 2
حال بایستی یک تابع پس زمینه یا Callback Function نوشت که به ازای فشرده شدن کیبرد اجرا شود و آدرس آنرا ( با استفاده از کلمه کلیدی Address Of ) بهمراه ثابت فوق به تابع SetWindowsHookEx فرستاد .
برای اطلاعات بیشتر و مشاهده یک نمونه برنامه به این آدرس مراجعه کنید .
توابع رياضی موجود در ويژوال بيسيک ۶
- تابع Abs (قدرمطلق) : مقدار بدون علامت يک عدد را برمی گرداند .
- تابع Atn (آرک تانژانت) : خروجی تابع عددی از نوع double است که برابر زاويه ای است که تانژانت آن عدد ورودی تابع است .
- تابع Cos ( کسينوس ) : خروجی تابع عددی از نوع double است که برابر کسينوس زاويه ورودی است .
- تابع Exp (توان نمانی) : خروجی تابع عددی از نوع double است که برابر e به توان ورودی تابع است .
- تابع Int (تابع کف يا تابع جزء صحيح) : نزديکترين عدد صحيح مساوی يا کوچکتر نسبت به عدد ورودی را برمی گرداند .
- تابع Log (لگاريتم ) : خروجی تابع عددی از نوع double است که برابر لگاريم طبيعی عدد ورودی است ( لگاريتم بر مبنای عددe يا همان Ln )
- تابع Round ( گرد کردن ) : خروجی تابع عددی از نوع double است که برابر نزديکترين عدد صحيح به مقدار عدد ورودی است .
- تابع Sgn (علامت) : خروجی تابع عددی از نوع صحيح است که نشان دهنده علامت عدد ورودی است .
- تابع Sin (سينوس ) : خروجی تابع عددی از نوع double است که برابر سينوس زاويه ورودی است .
- تابع Sqr (جذر) : خروجی تابع عددی از نوع double است که برابر ريشه دوم يا جذر عدد ورودی است .
- تابع Tan (تانژانت) : خروجی تابع عددی از نوع double است که برابر با تانژانت زاويه ورودی ( برحسب راديان ) می باشد .
نکته : برای محاسبه توان n ام يک عدد ( n می توان صحيح يا اعشاری باشد ) از اپراتور ^ استفاده نمائيد . برای مثال :
2^5=32
9^0.5=3
4.2^3.7=202.31
چگونگی ايجاد ساير توابع رياضی که در ويژوال بيسيک ۶ وجود ندارند
جدول زير چگونگی محاسبه ساير توابع رياضی که در ويژوال بيسيک ۶ وجود ندارند را نشان می دهد :
|
سکانت |
Sec(X) = 1 / Cos(X) |
|
کسکانت |
Cosec(X) = 1 / Sin(X) |
|
کتانژانت |
Cotan(X) = 1 / Tan(X) |
|
آرک سينوس |
Arcsin(X) = Atn(X / Sqr(1-X * X )) |
|
آرک کسينوس |
Arccos(X) = Atn(-X / Sqr(1-X * X)) + 2 * Atn(1) |
|
آرک سکانت |
Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) -1) * (2 * Atn(1)) |
|
آرک کسکانت |
Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1)) |
|
آرک کتانژانت |
Arccotan(X) = Atn(X) + 2 * Atn(1) |
|
سيونس هيپربوليک |
HSin(X) = (Exp(X) - Exp(-X)) / 2 |
|
کسينوس هيپربوليک |
HCos(X) = (Exp(X) + Exp(-X)) / 2 |
|
تانژانت هيپربوليک |
HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X)) |
|
سکانت هيپربوليک |
HSec(X) = 2 / (Exp(X) + Exp(-X)) |
|
کسکانت هيپربوليک |
HCosec(X) = 2 / (Exp(X) - Exp(-X)) |
|
کتانژانت هيپربوليک |
HCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X)) |
|
آرک سينوس هيپربوليک |
HArcsin(X) = Log(X + Sqr(X * X + 1)) |
|
آرک کسينوس هيپربوليک |
HArccos(X) = Log(X + Sqr(X * X - 1)) |
|
آرک تانژانت هيپربوليک |
HArctan(X) = Log((1 + X) / (1 - X)) / 2 |
|
آرک سکانت هيپربوليک |
HArcsec(X) = Log((Sqr(1-X * X) + 1) / X) |
|
آرک کسکانت هيپربوليک |
HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X) |
|
آرک کتانژانت هيپربوليک |
HArccotan(X) = Log((X + 1) / (X - 1)) / 2 |
|
لگاريتم بر مبنای N |
LogN(X) = Log(X) / Log(N) |
اعداد π و e در ويژوال بيسيک 6
برای استفاده از عدد پی و عدد e در برنامه های خود ثوابت زير را تعريف نمائيد :
Const Pi = 3.14159265358979
Const e = 2.71828182845904
همچنين عدد پی را می توان به صورت زير تعريف کرد :
Pi = 4*Atn(1)
تبديل راديان / درجه
چون اکثر توابع مثلثاتی بر حسب راديان کار می کنند گاهی اوقات نياز داريم تا زاويا را از در جه به راديان و بالعکس تبديل کنيم . برای تبديل يک زاويه که بر حسب راديان می باشد به درجه آنرا در 180 ضرب کرده و سپس بر عدد پی تقسيم می کنيم :
Degree(x) =x*180/Pi
برای تبديل يک زاويه که بر حسب درجه بيان شده به راديان آنرا در عدد پی ضرب کرده و سپس بر 180 تقسيم می کنيم :
Rad(x) =x*Pi/180
توابع رياضی و VB.Net
مجموعه توابع رياضی در در ويژوال بيسيک دات نت وجود دارند بسيار قويتر و کاملتر هستند . اين مجموعه توابع در کلاس System.Math موجود می باشند :
- در کلاس Math دو ثابت به اسم E و PI برای نشان دادن پايه لگاريتم طبيعی و عدد پی وجود دارند .
- توابع مثلثاتی : Acos ( آرک کسينوس ) ، Asin ( آرک سينوس) ، Atan ( آرک تانژانت) ، Atan2 ( آرک تانژانت خارج قسمت تقسيم ورودی ها ) ، Cos ( کسينوس ) ، Sin ( سينوس ) ، Tan ( تانژانت )
- توابع عمومی : Abs ( قدرمطلق ) ، BigMul ( حاصلضرب کامل دو عدد 32 بيتی ) ، Ceiling ( تابع سقف ) ، DivRem ( خارج قسمت نقسيم دو عدد ) ، Floor ( تابع کف ) ، IEEERemainder ( باقيمانده نقسيم دو عدد ) ، Max ( ماکزيمم بين دو عدد ) ، Min ( مينيمم بين دو عدد ) ، Round ( تابع گرد کردن ) ، Sign ( تابع علامت ) ، Sqrt ( تابع جذر )
- توابع هيپربوليک : Cosh ( کسينوس هيپربوليک ) ، Sinh ( سينوس هيپربوليک ) ، Tanh ( تانژانت هيپربوليک )
- توابع نمايي و لگاريتمی : Exp ( عدد e به توان مقدار ورودی ) ، Log ( لگاريتم ) ، Log10 ( لگاريتم بر پايه 10 ) ، Pow ( تابع توان )