زنگ

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

اپراتورهای VBA: حساب، بولی، مقایسه، تکالیف

اپراتورکوچکترین واحد کد VBA است که می تواند اجرا شود. یک دستور می تواند یک متغیر را تعریف یا تعریف کند، یک گزینه کامپایلر VBA تنظیم کند، یا برخی از اقدامات را در یک برنامه انجام دهد.

تنها 7 عملگر حسابی در VBA وجود دارد. چهار عملگر استاندارد: جمع (+)، تفریق (-)، ضرب (*)، تقسیم (/) و سه عملگر دیگر:

  • برای مثال توان (^). 2^3 = 8 ;
  • تقسیم عدد صحیح (\). عدد اول را بر عدد دوم تقسیم می کند و قسمت کسری را دور می زند (نه گرد می کند). مثلا، 5\2 = 2 ;
  • بخش مدولو (Mod). عدد اول را بر عدد دوم تقسیم می کند و فقط باقیمانده تقسیم را برمی گرداند. مثلا، 5 مود 2 = 1.

عملگر انتساب در VBA علامت برابر است. می توان اینگونه نوشت:

بگذارید nVar = 10 باشد

یا حتی ساده تر:

nvar = 10

در حالت دوم، علامت تساوی را با عملگر مساوی اشتباه نگیرید.

اصطلاح

nvar = 10

به این معنی است که "متغیر nVar را روی 10 قرار دهید" و اگر خط به این شکل باشد:

اگر (nVar = 10)

یعنی "اگر مقدار متغیر nVar برابر با 10 باشد".

اگر نیاز دارید که یک شی را به یک متغیر اختصاص دهید، این کار به روش های دیگری انجام می شود.

تنها 8 عملگر مقایسه در VBA وجود دارد:

  • برای مثال برابری (=) اگر (nVar = 10);
  • بزرگتر و کمتر از (> و<), например, اگر (nVar > 10);
  • بزرگتر یا مساوی و کوچکتر یا مساوی (>= و<=), например, اگر (nVar >= 10);
  • نا برابر (<>)، مثلا، اگر (nVar<>10) ;
  • مقایسه اشیاء (Is). تعیین می کند که آیا متغیرهای شی به یک شی اشاره دارند یا به موارد مختلف، برای مثال، اگر (obj1 obj2 است);
  • شباهت (Like). یک شی رشته را با یک الگو مقایسه می کند و تعیین می کند که آیا الگو مطابقت دارد یا خیر.

عملگرهای مقایسه همیشه درست یا نادرست را برمی‌گردانند - درست اگر ادعا درست باشد و نادرست اگر نادرست باشد.

کمی در مورد مقایسه مقادیر رشته:

  • هنگام مقایسه مقادیر رشته، حروف بزرگ و کوچک حساس است.
  • فاصله در مقادیر رشته نیز در نظر گرفته می شود.
  • هنگام مقایسه رشته های متنی به صورت پیش فرض بیشتر/کمتر، آنها به سادگی با هم مقایسه می شوند کدهای باینریشخصیت ها - چه کم و بیش. اگر نیاز به استفاده از ترتیبی که در حروف الفبا وجود دارد، می توانید از دستور استفاده کنید

گزینه مقایسه متن

کمی بیشتر در مورد عملگر Like. نحو کلی آن به نظر می رسد

Expression1 مانند Expression2

در این حالت Expression1 هر عبارت متنی VBA است و Expression2 قالبی است که به عملگر Like ارسال می شود. شما می توانید از حروف عام خاص در این الگو استفاده کنید (جدول 3.1 را ببینید)

Tab. 3.1حروف عام برای عملگر LIKE

اغلب، هنگام آزمایش چندین شرط، از عملگرهای منطقی استفاده می شود:

  • AND - منطقی AND، هر دو شرط باید درست باشند.
  • OR - منطقی یا، حداقل یکی از شرایط باید درست باشد.
  • NOT - نفی منطقی، اگر شرط نادرست باشد، TRUE را برمی گرداند.
  • XOR یک استثنا منطقی است. در یک عبارت E1 XOR، E2 اگر فقط E1 = TRUE یا فقط E2 = TRUE در غیر این صورت FALSE، TRUE را برمی گرداند.
  • EQV - معادل دو عبارت، اگر مقدار یکسانی داشته باشند، TRUE را برمی گرداند.
  • IMP - مفهوم، FALSE را اگر E1 = TRUE و E2 = FALSE، در غیر این صورت TRUE برمی گرداند.

شما باید در مورد AND، OR، NOT به خاطر داشته باشید، سایر عملگرهای منطقی به ندرت استفاده می شوند.

تقریباً هر برنامه VBA از عملگرهای الحاقی استفاده می کند. دو مورد از آنها در VBA وجود دارد - + یا &. توصیه می شود همیشه استفاده کنید و زیرا:

  • هنگام استفاده از &، تبدیل خودکار مقادیر عددی به رشته ها انجام می شود - خطر اشتباه وجود ندارد.
  • هنگام استفاده از عملگر +، با افزودن یک مقدار رشته به مقداری از نوع Null، Null به دست می آید.

MsgBox "پیام به کاربر" و vUserName

ترتیب اعمال عملگرها را می توان با استفاده از پرانتز کنترل کرد.

دستورالعمل های زبان (یا عملگرها)واحدهای برنامه ای هستند که نوعی عمل انجام می دهند یا داده ها را توصیف می کنند.

یک عبارت از یک یا چند کلمه کلیدی و به صورت اختیاری پارامترها تشکیل شده است. چندین عبارت واقع در یک خط برنامه با یک دو نقطه از یکدیگر جدا می شوند. اگر عبارت خیلی طولانی است، می توانید با استفاده از کاراکتر زیر خط _ برای بسته بندی، آن را به چندین خط تقسیم کنید.

Oپ ویراستاراعتبارات

دستور انتساب برای تخصیص یک مقدار جدید به یک متغیر در طول اجرای برنامه استفاده می شود. علامت تکلیف "=".

مثلا، اپراتور:

x = Sqr(5 + Tan(1.8) ^ 2)

مقدار عبارت را به x نسبت می دهد. در نتیجه ارزیابی عبارت نوشته شده در سمت راست، یک عدد واقعی به دست می آید. اما مقداری که به متغیر x تعلق می گیرد بستگی به نحوه اعلان نوع این متغیر دارد. بنابراین، اگر متغیر x از نوع Single باشد، نتیجه 4.834464، اگر Double، سپس 4.83446368725481، و اگر Integer، 5 باشد، به آن اختصاص داده می شود.

نوع داده متغیر x باید با نوع داده این عبارت سازگار باشد. زبان ویژوال بیسیک علاوه بر تبدیل ضمنی از یک نوع به نوع دیگر در حین انتساب، امکان تبدیل انواع با استفاده از توابع را فراهم می کند. به عنوان مثال، تابع cdblداده ها را به دو نوع تبدیل می کند، سینت- برای تایپ عدد صحیح، clng- برای تایپ Long، csng- به نوع تک، CStr- برای تایپ String و غیره

توابع CINT و Clng نتیجه را گرد می کنند. در این حالت، اگر قسمت کسری عدد 0.5 باشد، گرد کردن به نزدیکترین عدد زوج انجام می شود.

اپراتور واگذاریاجازه می دهد تا نه تنها یک مقدار را به یک متغیر اختصاص دهید، بلکه مقادیر ویژگی های اشیاء VBA را نیز تنظیم کنید. مثلا اپراتور

ردیف ("1:1"). قلم. پررنگ=درست است

خط اول کاربرگ را پررنگ می کند.

خط شکست

ترکیبی<Пробел> + <Знак подчеркивания>در پایان یک خط اطمینان حاصل می کند که خط بعدی ادامه خط قبلی است. در انجام این کار، باید به یاد داشته باشید که:

§ ثابت های رشته ای را پیچیده نکنید

§ بیش از هفت ادامه همان خط مجاز نیست

§ خود رشته نمی تواند بیش از 1024 کاراکتر داشته باشد

مثال.

انتقال نادرست انتقال صحیح

String = "Visual Basic for _ String = "Visual Basic" _

برنامه ها" و "برای برنامه ها"

نظرات

متن زیر علامت (") در برنامه تا انتهای خط توسط کامپایلر نادیده گرفته می شود و یک نظر است. نظرات برای افزودن توضیحات و توضیحات به برنامه استفاده می شود. نظرات هنگام اشکال زدایی برنامه مفید هستند: آنها اجازه می دهند در حین اشکال زدایی، خطوط برنامه را به طور موقت غیرفعال کنید.

مشروط اپراتور

اپراتور مشروطبسته به مقدار عبارت شرط، دستورات خاصی (عملگرها) را اجرا می کند. فلوچارت برای بررسی شرایط به صورت زیر است:

برنج. 1. انشعاب ممکن است ناقص باشد (به چنین ساختاری بای پس نیز گفته می شود).

برنج. 2. عملگر شرطی دارای دو شکل نحو است: درون خطی و بلوک.

فرم کوچک

اگر وضعیتسپس [ operators_if_true]

الگوریتم ارائه شده در شکل. 1، به صورت حروف کوچک به صورت نوشته خواهد شد

اگر وضعیتسپس operators_if_trueدیگر operators_if_false

شکل 2 مربوط به ورودی است

اگر وضعیتسپس operators_if_true

شکل 3 مربوط به ورودی است

اگر وضعیتسپس دیگر operators_if_false

شکل بلوک

اگر شرط-1سپس

[operators_if condition–1_true]

[اظهارات_if_all_conditions_false]]

شرایط ذکر شده در قسمت های If و ElseIf عبارت های رابطه ای یا هستند عبارات بولی. هنگامی که یکی از شرایط برآورده شد، عبارات زیر کلمه کلیدی تطبیق سپس اجرا می‌شوند و بقیه عبارات نادیده گرفته می‌شوند (یعنی هیچ بررسی دیگری انجام نمی‌شود و کنترل به دستور بعد از End If منتقل می‌شود). اگر هیچ یک از شرایط منطقی درست نباشد، اظهارات_اگر_همه_شرایط_قبلی_نادرست، یا اگر این قسمت حذف شود، کنترل به دنبال دستور شرطی به خط برنامه منتقل می شود.

فرم بلوک دستور If ترجیح داده می شود اگر:

هنگامی که شرط برآورده می شود یا برآورده نمی شود، چندین دستور اجرا می شود (از شکل کوچک نیز می توان در این مورد استفاده کرد، اما خط بسیار طولانی خواهد بود و برنامه کمتر قابل درک است).

چندین شرط به صورت متوالی بررسی می شوند و وقتی شرط بعدی برآورده شد، بررسی شرایط بعدی توصیه نمی شود (برای این، کلمه کلیدیالسیف).

مثال

این شرکت به خریداران عمده تخفیف می دهد.

بر اساس حجم مشخص سفارش، لازم است هزینه آن مشخص شود.

برای محاسبه هزینه سفارش از تابع استفاده می کنیم:

هزینه سفارش کارکرد عمومی (تعداد تا زمانی) دوبرابر

اگر مقدار<= 999 Then

Order_cost = تعداد * 5

مقدار ElseIf<= 1999 Then

Order_cost = مقدار * 4.8

Order_cost = مقدار * 4.75

در این مورد، می توانید از شکل کوچک عبارت IF نیز استفاده کنید:

تابع عمومی Order_Cost1 (تعداد به مدت) به عنوان دو برابر

اگر مقدار<= 999 Then Стоимость_заказа1 = Количество * 5

اگر عدد >= 1000 و عدد<= 1999 Then Стоимость_­ заказа1 = Количество * 4.8

اگر مقدار >= 2000 سپس OrderCost1 = مقدار * 4.75

اگر کاستی‌ها را در نظر نگیریم که خطوط طولانی هستند، و برای هر حجم سفارشی، همه بررسی‌ها به صورت متوالی انجام می‌شوند (روش اول برای حجم‌های سفارش کوچک سریع‌تر عمل می‌کند)، برنامه به درستی و شاید حتی بصری‌تر نوشته می‌شود.

با این حال، زمانی می توان مثال هایی ارائه داد که، اگر یکی از شرایط برآورده شود (یا برآورده نشده باشد)، بقیه به سادگی قابل بررسی نیستند.

مثلا، برخی از دستورات باید زمانی که شرایط با هم برآورده می شوند اجرا شوند: چک ها از عملگر استفاده می کنند

اگر x>0 و y

سپس با مقدار منفی x، هنگام فراخوانی تابع sqr خطایی رخ می دهد (زیر ریشه یک عدد منفی است).

با استفاده از ساختار می توان از این خطا جلوگیری کرد

اگر x > 0 سپس اگر y< Sqr(x) Then

در نماد آخر، اگر یک کلمه کلیدی Else وجود داشته باشد، به آخرین دستور If اشاره می کند.

بیانیه را انتخاب کنید

انتخاب مورد اصطلاح

[دستورالعمل ها_دیگر]]

پارامتر عبارت هر عبارت عددی یا رشته ای است. به جای ارزیابی یک شرط منطقی، مقدار عبارت با هر یک از مقادیر مشخص شده توسط پارامتر مقایسه می شود. بیان_لیست-n.

مقادیر مقایسه گنجانده شده در express-list-n، می تواند به شکل زیر ارائه شود:

- ارزش های؛

- محدوده مقادیر در فرم مقدار اولیهبه ارزش_پایانی;

– عبارات مقایسه ای به شکل Is مقدار مقایسه_اپراتور;

- لیستی از هر یک از انواع عبارات ذکر شده (جداکننده - کاما).

یک دستور می تواند هر تعداد بلوک Case داشته باشد. اگر هیچ یک از شرایط درست نباشد، دستورات بلوک Case Else اجرا می شوند.

به عنوان مثال، اگر شرط نمره بالاتر از سه باشد، می توان این شرط را نوشت: Case 4، 5 یا Case Is >3 یا Case Is >= 4 یا Case 4 to 5.

توجه داشته باشید. کلمه کلیدی Is را می توان حذف کرد، خود به خود اضافه می شود.

مثال

مثال قیمت تخفیف خورده مورد بحث در بالا را می توان با استفاده از ساختار Select Case به صورت زیر حل کرد:

عملکرد عمومی Order_Cost2 (تعداد به مدت) به عنوان دو برابر

مقدار مورد را انتخاب کنید

Order_cost2 = مقدار * 5

مورد 1000 تا 1999

Order_cost2 = مقدار * 4.8

مورد >= 2000 است

Order_Cost2 = مقدار * 4.75

برنامه VBA دنباله ای از عبارات است.

تعدادی از قراردادها در برنامه نویسی باید رعایت شود. بنابراین، می توانید چندین عبارت را در یک خط قرار دهید. یک دونقطه بین دستورات در همان خط قرار می گیرد.

هر خطی را می توان با قرار دادن کاراکترهای "Space" + "Underscore" (_) در انتهای خط اول به دو قسمت تقسیم کرد که در این صورت خط دوم ادامه خط اول در نظر گرفته می شود.

از نظرات برای سهولت خواندن برنامه استفاده می شود. دو راه برای وارد کردن نظرات در VBA وجود دارد: استفاده از آپوستروف (‘)، که می‌تواند در هر نقطه از یک خط قرار گیرد، و استفاده از کلمه رزرو شده Rem به جای آپستروف.

1. بیانیه کم رنگبرای اعلام انواع متغیر است.

کم نور A به عنوان عدد صحیح - متغیر A به عنوان یک عدد صحیح اعلام می شود، یعنی. فقط مقادیر صحیح را ذخیره می کند .

کم نور D به عنوان تاریخ - متغیر D برای ذخیره تاریخ ها اعلام می شود.

· نام خانوادگی کم رنگ، نام به عنوان رشته - متغیرها اعلام می شوند. نام خانوادگی و نام برای ذخیره متن در نظر گرفته شده است.

Dim B(12) به عنوان عدد صحیح - یک آرایه یک بعدی (بردار) متشکل از 12 عدد صحیح اعلام می شود و به طور پیش فرض اولین عنصر آرایه B(0) و آخرین عنصر B(12) خواهد بود.

کم نور B(3،3) به عنوان مجرد - یک آرایه دو بعدی 3x3 (ماتریس) متشکل از اعداد واقعی اعلام شده است.

اگر نوع متغیر مشخص نشده باشد، به طور پیش فرض از نوع Variant استفاده می شود. با این حال، تعیین یک نوع متغیر خاص باعث اطمینان بیشتر برنامه و سرعت بخشیدن به کار آن می شود، زیرا VBA مجبور نیست هر بار که به یک متغیر اعلام نشده دسترسی پیدا می کند، زمانی را صرف تشخیص آن کند.

اگر اندازه آرایه M از قبل مشخص نباشد و در طول برنامه مشخص شود، در هنگام توصیف آرایه، تعداد عناصر نشان داده نمی شود و آرایه به صورت زیر تعریف می شود:

Dim M() به عنوان عدد صحیح

پس از تعیین تعداد عناصر آرایه، به عنوان مثال، N، باید عملگر را بنویسید

2. اپراتور واگذاریبرای تخصیص یک مقدار به یک متغیر استفاده می شود.

نحو:

متغیر (یا ویژگی شی) = عبارت.

a=5 - متغیر A برای اختصاص مقدار 5 ;

b = "مدیر" - متغیر ب اختصاص دهدبه معنی "مدیر";

آدرس = برگه ها ("سازمان ها"). سلول ها (2،2) - محتویات سلول B2 را که در برگه سازمان در کتاب کار فعلی قرار دارد به متغیر Address اختصاص دهید.

LastName=UserForm1.TextBox1.Text - متغیر نام خانوادگی برای تخصیص محتویات فیلد TextBox1 فرم کاربر UserForm1.

3. با / پایان با بیانیهبرنامه نویس را از تعداد زیادی تکرار نام همان شی نجات می دهد.

نحو:

با شی

عملگر 1

عملگر 2



operatorN

به عنوان مثال، به جای دنباله ای از عبارات

UserForm1.TextBox1.Text = تاریخ

UserForm1.TextBox2.Text = " "

UserForm1.ComboBox1.Text = " "

می توان اینگونه نوشت

TextBox1.Text = تاریخ

. TextBox2.Text = " "

. ComboBox1.Text = " "

REM در برگه Sheet1 در ستون A، با شروع از خط دوم، "نرخ کارکنان" ثبت می شود. کادر ترکیبی ComboBox1 را در UserForm1 پر کنید

خط اول برنامه در sheet Sheet1 در ستون A است، تعداد سلول‌های پر شده شمارش می‌شود، نتیجه به متغیر N اختصاص می‌یابد.

N=Application.CountA(Sheets("Sheet1").Range("A:A")).

D=”A2:A”&Cint(N)

Sheets("Sheet1").Range(D).Name="Rates"

TextBox1.Text = تاریخ

. TextBox2.Text = " "

. ComboBox1.Text = " "

. ComboBox1.Rowsource = "نرخ ها"

4. بیانیه مشروط If/Ten/Else- به شما امکان می دهد شرایط خاصی را بررسی کنید و بسته به نتایج بررسی، یک یا عمل دیگری را انجام دهید

نحو:

اگروضعیت سپسعملگرها 1 [ دیگرعملگرها 2]

اگر شرط درست باشد، دستورات 1 و در غیر این صورت دستورات 2 اجرا می شوند.

همچنین مجاز به استفاده از یک عملگر شرطی پیچیده است که به صورت بلوک نوشته می شود:

اگرشرط 1 سپس

اپراتورها 1

اگر دیگرشرط 2 سپس

اپراتورهای پایه زبان VBA

نظرات (0)

3.1. قوانین ضبط اپراتور

هنگام نوشتن عملگرها، باید قوانین زیر را رعایت کنید:

هر عبارت جدید در یک خط جدید نوشته می شود.

برای نوشتن چند عبارت در یک خط، آنها را با یک دونقطه (:) از هم جدا کنید.

اگر عبارت در یک خط قرار نمی گیرد، باید یک فاصله و یک خط زیر (_) در انتهای سطر قرار دهید و سپس قسمتی را که مطابقت نداشت در خط بعدی ادامه دهید.

3.2. اپراتور واگذاری

عملگر انتساب زمانی استفاده می شود که به یک متغیر نیاز است مقدار جدیدی نسبت داده شود. دارای نحو زیر است:

VARIABLE_NAME= اصطلاح

ابتدا عبارت سمت راست ارزیابی می شود و سپس نتیجه به متغیر سمت چپ اختصاص می یابد.

مثلا. با استفاده از عملگر انتساب عبارت ریاضی زیر را بنویسید:

در VBA، این عبارت را می توان به صورت عبارت زیر نوشت:

Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))

3 .3. بیانیه های I/O

3 .3.1. عملگر و تابع MsgBox

اپراتور MsgBoxاطلاعات را در یک کادر محاوره ای نمایش می دهد و حالت انتظار کلیک کاربر را تنظیم می کند.

دارای نحو زیر است:

MsgBox پیام[,دکمه‌ها][، عنوان]

استدلال ها:

پیام - استدلال اجباری که پیام اطلاعاتی نمایش داده شده را در پنجره مشخص می کند. ممکن است شامل چندین خط متن باشد که با علامت به هم وصل شده اند & . استفاده در این استدلال Chr(13)هنگام خروجی اطلاعات باعث شکست خط می شود.

دکمه ها - مقدار این آرگومان دسته بندی دکمه هایی که در پنجره ظاهر می شوند را تعیین می کند. مقدار آرگومان دکمه همچنین تعیین می کند که آیا یک نماد در پنجره ظاهر می شود یا خیر. اگر مشخص نکنید که کدام دکمه ها در کادر پیام نمایش داده شوند، از مقدار پیش فرض مربوط به دکمه OK استفاده می شود. روی میز. 3.1 ترکیب های ممکن از دکمه ها و نمادها را در پنجره پیام نشان می دهد.

سرتیتر - عنوان پنجره را تنظیم می کند.

عملکرد MsgBoxیک عدد صحیح را برمی‌گرداند که نشان می‌دهد کدام دکمه در کادر محاوره‌ای کلیک شده است.

جدول 3.1. مقادیر متغیر دکمه معتبر

نمایش دادن

بحث و جدل

دکمه OK

دکمه های OK و Cancel

دکمه های بله و خیر

دکمه های بله، خیر و لغو

دکمه های لغو، سعی مجدد و نادیده گرفتن

VbAbortRetryIgnore

دکمه های Redo و Cancel.

علامت اطلاعات

علامت سوال

علامت تعجب

مثلا. نمایش یک پیام در مورد تاریخ فعلی.

MsgBox "امروز در تقویم" و تاریخ، "توجه"

در نتیجه پنجره زیر نمایش داده می شود (شکل 3.1).

هنگامی که دکمه OK کلیک می شود، کادر پیام بسته می شود و اجرای برنامه بلافاصله پس از تماس MsgBox از دستور از سر گرفته می شود.

3.3.2. عملکرد InputBox

عملکرد InputBoxورودی مقادیر متغیر را با استفاده از پنجره ورودی انجام می دهد و دارای نحو زیر است:

متغیر_نام = جعبه ورودی(پیام[، عنوان] )

استدلال ها:

پیام یک استدلال لازم است. یک پیام اطلاعاتی را در پنجره مشخص می کند که معمولاً معنای مقدار ورودی را توضیح می دهد

سرتیتر - عنوان پنجره را تنظیم می کند.

مثلا، مقدار متغیر N را از صفحه کلید وارد کنید و مقدار پیش فرض 10 را ارائه کنید.

برای این کار می توانید از عملگر زیر استفاده کنید:

N = InputBox ("N"، "Input Data"، 10)

در نتیجه پنجره زیر برای وارد کردن مقدار متغیر N نمایش داده می شود (شکل 3.2).

اگر مقدار پیش‌فرض برای کاربر مناسب باشد، پس از کلیک بر روی دکمه OK، پنجره ورودی بسته می‌شود، به متغیر N مقدار 10 اختصاص داده می‌شود و اجرای برنامه بلافاصله پس از تماس از عبارت عبارت از سر گرفته می‌شود. InputBox.

اگر مقدار پیش فرض برای کاربر مناسب نیست، قبل از کلیک بر روی دکمه OK، باید مقدار مورد نظر را برای متغیر N وارد کنید.

3 چهار. عبارت IF شرطی

برای پیاده سازی یک فرآیند محاسباتی انشعاب در VBA از عملگر استفاده می شود اگر… پس… وگرنه،که ساده ترین شکل بررسی شرایط است. دارای نحو زیر است:

اگروضعیتسپسOPERATOR_1ElseOPERATOR_2

OPERATOR_1انجام می شود اگر وضعیتدرست است، در غیر این صورت اجرا می شود OPERATOR_2. در این حالت، عبارت If…Then…Else در یک خط نوشته می شود.

وضعیتیک عبارت بولی است. نتیجه یک عبارت همیشه از نوع بولی است. عبارت می تواند ساده یا پیچیده باشد. هنگام نوشتن شرایط ساده، می توان از تمام عملیات رابطه ای ممکن که در جدول 1 نشان داده شده است استفاده کرد. 3.2.

جدول3 .2. روابط منطقی

عمل

نام

اصطلاح

نتیجه

اگر A برابر با B باشد درست است

اگر A برابر با B نباشد درست است

درست است اگر A بزرگتر از B باشد

اگر A کمتر از B باشد درست است

بیشتر یا برابر

اگر A بزرگتر یا مساوی B باشد درست است

کمتر یا مساوی

اگر A کمتر یا مساوی B باشد درست است

شرایط پیچیده از ساده با اعمال عملیات منطقی و پرانتز تشکیل می شود. لیست عملیات منطقی در جدول آورده شده است. 3.3.

جدول3 .3. عملیات بولی

نام

اصطلاح

نتیجه

بولی
نفی

منطقی و

منطقی OR

در یک دستور شرطی، می توانید به جای هر یک از دستورات، از یک بلوک عبارات استفاده کنید. در این مورد، عملگر شرطی به نظر می رسد:

اگروضعیتسپس

OPERATOR_BLOCK_1

OPERATOR_BLOCK_2

پایان If

چند شرط را می توان در یک دستور شرطی آزمایش کرد. در این مورد، عملگر شرطی به نظر می رسد:

اگرCONDITION_1سپس

OPERATOR_BLOCK_1

اگر دیگرCONDITION_2سپس

OPERATOR_BLOCK_2

دیگر

پایاناگر

مثال 1. بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.3.

مثال 2بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.4.

3.5. عبارت Case را انتخاب کنید

استفاده از دستور Select Case زمانی مناسب است که بسته به مقدار برخی عبارت که دارای مجموعه محدودی از مقادیر معتبر است، نیاز به انجام اقدامات مختلف دارید. همچنین برای دستورات شرطی اعمال می شود، اما شکل متفاوتی دارد:

انتخاب موردEXPRESSION_CHECKED

موردVALUES_1

OPERATORS_1

موردارزش های_ 2

اپراتورها_ 2

. . .

موردVALUES_N

اپراتورها

[ مورددیگر

در غیر این صورت_ اپراتورها]

پایان انتخاب کنید

EXPRESSION_CHECKEDمی تواند از هر نوع اسکالر به جز واقعی باشد. ارزش هایشامل تعداد دلخواه مقادیر یا محدوده هایی است که با کاما از یکدیگر جدا می شوند.

نوعی از ارزش هایباید با نوع مطابقت داشته باشد EXPRESSION_CHECKED.

ابتدا محاسبه شد EXPRESSION_CHECKED. اگر مقدار آن با یکی از مقادیر مطابقت داشته باشد VALUES_I، سپس OPERATORS_I پایان انتخاب کنید. اگر مقدار آن با هیچ یک از مقادیر مطابقت نداشته باشد VALUES_I، سپس ELSE_OPERATORSو کنترل به اپراتور ایستاده پس از آن منتقل می شود پایان انتخاب کنید

مثلا.بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.5 که مقدار متغیر S را بسته به مقدار متغیر n تعیین می کند.

3.6. عبارات حلقه

برای اجرای یک فرآیند محاسباتی چرخه ای، یعنی اجرای چندگانه یک یا چند عملگر، از عملگر چرخه استفاده می شود. برای بعدی، که دارای نحو زیر است:

برایCOUNTER=INIT_VALUEتیoEND_VALUEگامگام

OPERATOR_BLOCK

OPERATOR_BLOCK

بعدپیشخوان

برای… حلقه بعدی از طریق مقادیر یک متغیر تکرار می شود پیشخوان، که یک پارامتر حلقه است، از مقدار شروع تا پایان با مرحله تغییر مشخص شده. این تضمین می کند که بلوک عبارات بدنه حلقه با هر مقدار جدید شمارنده اجرا می شود. اگر یک گامگامدر ساخت و ساز وجود ندارد، سپس به طور پیش فرض در نظر گرفته می شود که گام برابر با 1 است. با توجه به اپراتور خروج برایمی توانید از دستور حلقه قبل خارج شوید پیشخوانبه آخرین مقدار می رسد.*

برای تکرار روی اشیاء از گروهی از اشیاء مشابه، مانند سلول‌های یک محدوده یا عناصر آرایه، استفاده از عملگر حلقه راحت است. برای…هر… بعدی.

برای هرعنصرکه درگروه

مسدود کردن_ اپراتورها

OPERATOR_BLOCK

بعدعنصر

در VBA، سایر دستورات حلقه برای سازماندهی حلقه ها با تعداد نامعلوم تکرار از قبل استفاده می شود:

حلقه ها با پیش شرط - انجام دادندر حالی کهحلقه,

انجام دادنتا زمانحلقه;

حلقه ها با شرط پست - انجام دادنحلقهدر حالی که,

انجام دادنحلقهتا زمان.

نحو این دستورات حلقه در زیر آمده است:

"حلقه با پیش شرطانجام دادن در حالی که حلقه

انجام در حالی کهوضعیت

OPERATOR_BLOCK

OPERATOR_BLOCK

"حلقه با پیش شرطانجام دادن تا زمان حلقه

انجام دادنتا زمانوضعیت

OPERATOR_BLOCK

OPERATOR_BLOCK

"حلقه با شرط پستانجام دادن حلقه در حالی که

مسدود کردن_ اپراتورها

OPERATOR_BLOCK

حلقه در حالی کهوضعیت

"حلقه با شرط پستانجام دادن حلقه تا

مسدود کردن_ اپراتورها

OPERATOR_BLOCK

حلقه تاوضعیت

اپراتور انجام دادندبلیوتپه… حلقهتضمین می کند که یک بلوک از عبارات بارها تکرار می شود تا زمانی که وضعیتمشاهده می شود و اپراتور



اخبار دیگر

همه عملگرهای حسابی، مقایسه، منطقی و الحاقی در اینجا به تفصیل توضیح داده شده اند. من سعی کردم همه چیزهایی را که در مورد این اپراتورها بدانیم جمع آوری کنم. هر اپراتور با یک مثال ارائه شده است. توضیحات توسط من از راهنمای استاندارد "a VB5" ​​ترجمه شده است.

عملگرهای حسابی

عملگر ^ (توانایی)

این عملگر برای بالا بردن یک عدد به توان است.

نحو:

نتیجه = عدد^درجه

گزینه ها:

نتیجه
عدد
درجه- ضروری؛ هر عبارت عددی

ملاحظات:

عددفقط اگر می تواند منفی باشد درجهیک عدد صحیح است. اگر چندین عملگر ^ در یک عبارت استفاده شود، ارزیابی از چپ به راست انجام می شود. معمولا نوع نتیجه Double است. با این حال، اگر یا درجه، یا عدد- پس عبارت تهی نتیجهپوچ هم

مثال:

کم نور MyValue
MyValue = 2^2" 4 را برمی گرداند.
MyValue = 2^3^3" بر خواهد گشت 512 (2^3=8, 8^3=512)
MyValue=(-5)^3" بر خواهد گشت -125.

نکات:

اگر نیاز به افزایش یک عدد به توان ثابت دارید، بهتر است از چندین عملگر - ضرب، تا یک - توان استفاده کنید، خودتان قضاوت کنید، یک چرخه یک میلیونی با محاسبه عبارت عبور می کند:

test1 = 2^8 اینچ 893 میلی‌ثانیه
test1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 " 130ms!

عملگر * (ضرب)

برای ضرب دو عدد استفاده می شود.

نحو:

نتیجه = شماره 1* شماره 2

گزینه ها:

نتیجه- ضروری؛ هر متغیر عددی
شماره 1- لزوما؛ هر عبارت عددی
شماره 2- لزوما؛ هر عبارت عددی

یادداشت:

نوع داده نتیجه معمولاً با دقیق ترین نوع دو عدد یکسان است. ترتیب دقت، از بزرگ‌ترین به کوچک‌ترین، بایت، عدد صحیح، طولانی، تک، ارز، دو برابر، اعشاری است. درست است، استثنائاتی وجود دارد:

  • اگر Single و Long ضرب شوند، نتیجه Double است
  • اگر نوع داده نتیجه- یک Long Single یا Date که حاوی نتیجه خود عبارت نیست، سپس نتیجه به Variant حاوی Double تبدیل می شود.

اگر یک شماره 1یا شماره 2

ترتیب دقت در ضرب با مواردی که در جمع و تفریق استفاده می شود متفاوت است.

مثال:

کم نور MyValue
MyValue = 2 * 2 "4 را برمی گرداند.
MyValue = 459.35 * MyValue "(!LANG: 495.35 * 4 برمی گردد

اپراتور / (بخش)

برای تقسیم دو عدد و به دست آوردن نتیجه ممیز شناور استفاده می شود.

نحو:

نتیجه = شماره 1 / شماره 2

گزینه ها:

نتیجه- ضروری؛ هر متغیر عددی
شماره 1- لزوما؛ هر عبارت عددی
شماره 2- لزوما؛ هر عبارت عددی

یادداشت:

نتیجهمعمولا از نوع Double. درست است، استثنائاتی وجود دارد:

  • اگر هر دو عبارت از نوع Byte، Integer، Single باشند، نتیجه Single است. اما اگر ابعاد عبارت در محدوده Single قرار نگیرد، خطایی رخ می دهد.
  • اگر هر دو عبارت از نوع Variant حاوی Byte، Integer یا Single باشند، نتیجه یک Variant واحد است. با این حال، اگر ابعاد عبارت در محدوده Single قرار نگیرد، آنگاه Double Variant.
  • اگر یکی از اعداد از نوع Decimal باشد، نتیجه Decimal است.

اگر یک شماره 1یا شماره 2- تهی، به سادگی به عنوان یک 0 معمولی تفسیر می شود.

مثال ها:

کم نور MyValue
MyValue = 10/4" !} بر خواهد گشت 2.5.
MyValue = 10/3 اینچ بر خواهد گشت 3.333333.

عملگر \ (تقسیم عدد صحیح)

برای تقسیم دو عدد و به دست آوردن یک عدد صحیح استفاده می شود.

نحو:

نتیجه = شماره 1 \ شماره 2

گزینه ها:

نتیجه- ضروری؛ هر متغیر عددی
شماره 1- لزوما؛ هر عبارت عددی
شماره 2- لزوما؛ هر عبارت عددی

یادداشت:

قبل از اینکه چنین تقسیمی رخ دهد، عبارات به عبارات Byte، Integer یا Long گرد می شوند. به طور معمول نوع داده نتیجه بایت، بایت نوع، عدد صحیح، نوع صحیح، نوع طولانی یا طولانی است. هر قسمت کسری کوتاه شده است.

با این حال، اگر هر یک از عبارات Null باشد، نتیجه Null است. هر عبارتی که حاوی Empty باشد 0 تفسیر می شود.

مثال ها:

کم نور MyValue
MyValue=11\4" بر خواهد گشت 2.
MyValue=9\3" بر خواهد گشت 3.
MyValue=100\3" بر خواهد گشت 33.

اپراتور مود (باقی مانده تقسیم)

برای تقسیم دو عدد و بدست آوردن مابقی تقسیم آنها استفاده می شود.

نحو:

نتیجه = شماره 1مد شماره 2

گزینه ها:

نتیجه- ضروری؛ هر متغیر عددی
شماره 1- لزوما؛ هر عبارت عددی
شماره 2- لزوما؛ هر عبارت عددی

یادداشت:

هنگام تقسیم، اعداد دارای نقطه گرد می شوند. به عنوان مثال، نتیجه عبارت زیر 5 است:

A=19 مود 6.7

اینجا چه خبره؟ ابتدا عدد 6.7 به عدد 7 گرد می شود. سپس تقسیم اتفاق می افتد، 2.7 می گیریم .... باقیمانده تقسیم = 5. (2 * 7 = 14، 19 - 14 = 5).

نتیجه معمولاً از نوع Byte، Byte variant، Integer، Integer variant، Long یا Variant حاوی Long است.

اگر هر یک از عبارات Null باشد، نتیجه Null است. هر عبارتی که حاوی Empty باشد 0 تفسیر می شود.

مثال ها:

کم نور نتیجه من
MyResult = 10 Mod 5" بر خواهد گشت 0.
MyResult = 10 Mod 3" بر خواهد گشت 1.
MyResult=12 Mod 4.3" بر خواهد گشت 0.
MyResult = 12.6 Mod 5" بر خواهد گشت 3.

عملگر + (اضافه)

برای جمع دو عدد استفاده می شود.

نحو:

نتیجه = بیان 1+بیان 2

گزینه ها:

نتیجه- ضروری؛ هر متغیر عددی
بیان 1
بیان 2- لزوما؛ هر بیانی

یادداشت:

وقتی از عملگر + استفاده می کنید، نمی توانید تعیین کنید چه اتفاقی می افتد، اضافه کردن یا الحاق رشته ها. برای الحاق، از عملگر & برای جلوگیری از سوء تفاهم و خوانایی بیشتر کد استفاده کنید.

اگر یکی از عبارت ها Variant نباشد، قوانین زیر اعمال می شود:

  • اگر هر دو عبارت از نوع عددی (بایت، بولی، عدد صحیح، طولانی، تک، دوگانه، تاریخ، ارز یا اعشار) باشند، آنها اضافه می شوند.
  • اگر هر دو عبارت رشته ای الحاقی باشند.
  • اگر یکی از عبارت ها دارای نوع عددی باشد و دیگری دارای مقدار Variant از جمله Null باشد، جمع اتفاق می افتد.
  • اگر یکی از عبارت ها یک رشته و دیگری هر مقدار Variant باشد، الحاق اتفاق می افتد.
  • اگر یکی از عبارات حاوی Empty باشد، عبارت دوم بدون تغییر بازگردانده می شود.
  • اگر یکی از عبارت ها از نوع عددی و دیگری رشته ای باشد، خطای عدم تطابق Type رخ می دهد.
  • اگر هر عبارت Null باشد، نتیجه نیز Null است.

اگر هر دو عبارت Variant هستند، قوانین زیر اعمال می شود:

  • اگر هر دو عبارت عددی باشند، جمع می شوند.
  • اگر هر دو عبارت رشته ای باشند، آنگاه به هم پیوسته اند.
  • اگر یکی از عبارت ها عدد و دیگری رشته باشد، جمع اتفاق می افتد.

برای جمع عادی، نوع داده نتیجه معمولاً با دقیق ترین نوع دو عدد یکسان است. ترتیب دقت بایت، عدد صحیح، طولانی، تک، دو برابر، ارز و اعشار است. استثناهایی وجود دارد:

  • اگر Single و Long اضافه شوند، نتیجه Double است
  • اگر عبارتی از نوع Date با هر عبارت دیگری اضافه شود، نتیجه یک تاریخ است.

اگر یک یا هر دو عبارت Null باشند، نتیجه نیز Null است. اگر هر دو عبارت حاوی Empty باشند، نتیجه عدد صحیح است. اگر فقط یک مورد وجود داشته باشد، عبارت دوم اصلاح نشده به عنوان نتیجه برگردانده می شود.

مثال ها:

کم نور MyNumber، Var1، Var2
MyNumber = 2 + 2 " بر خواهد گشت 4.
MyNumber = 4257.04 + 98112" بر خواهد گشت 102369.04.

var1 = "34"
Var2 = 6 " متغیرهای مختلط را راه اندازی کنید
MyNumber = Var1 + Var2" بر خواهد گشت 40.

var1 = "34"
Var2 = "6" " متغیرها را با رشته ها مقداردهی اولیه کنید
MyNumber = Var1 + Var2" بر خواهد گشت"346" (اتفاق افتاد
"الحاق، نه اضافه!").

نکات:

عملگر جمع (+) را می توان برای اضافه کردن تاریخ استفاده کرد، به عنوان مثال. متغیرهای نوع Date:

دیم دی به عنوان تاریخ
d = DateSerial(2002, 8, 15) "تاریخ مقداردهی اولیه 08/15/2002
d=d+15 "اکنون d حاوی تاریخ 8/30/2002 است
"یعنی ما 15 روز اضافه کردیم

عملگر - (تفریق، تغییر علامت)

برای پیدا کردن تفاوت بین دو عدد یا همچنین برای تغییر علامت یک عبارت استفاده می شود.

نحو:

نتیجه = بیان 1- بیان 2

-اصطلاح

گزینه ها:

نتیجه- ضروری؛ هر متغیر عددی
اصطلاح- لزوما؛ هر بیانی
بیان 1- لزوما؛ هر بیانی
بیان 2- لزوما؛ هر بیانی

ملاحظات:

در دستور اول، عملگر "-" برای یافتن تفاوت بین دو عدد مورد نیاز است. در دستور دوم، "-" برای تغییر علامت y استفاده می شود اصطلاحات.

نوع داده نتیجه معمولاً با دقیق ترین نوع دو عدد یکسان است. ترتیب دقت بایت، عدد صحیح، طولانی، تک، دو برابر، ارز و اعشار است. استثنائاتی وجود دارد:

  • اگر تفریق شامل انواع Single و Long باشد، نتیجه Double است
  • اگر تفریق از عبارتی از نوع Date استفاده کند،
    سپس نتیجه تاریخ است.
  • با تفریق دو تاریخ، یک دابل حاصل می شود.

اگر یک یا هر دو عبارت Null باشند، نتیجه نیز Null است. اگر یکی از عبارات Empty باشد، به صورت 0 تعبیر می شود.

ترتیب دقت در جمع و تفریق با آنچه در ضرب استفاده می شود متفاوت است.

مثال ها:

کم نور نتیجه من
MyResult = 4 - 2" بر خواهد گشت 2.
MyResult = 459.35 - 334.90" بر خواهد گشت 124.45.

نکات:

مانند عملگر جمع، عملگر تفریق می تواند برای محاسبه تفاوت (در روز) بین دو تاریخ استفاده شود:

کم نور d1 به عنوان تاریخ
کم نور d2 به عنوان تاریخ
کم نور تا زمانی متفاوت است
d1 = DateSerial(1983, 10, 14)
d2 = DateSerial(2002, 8, 15)
razn = d2 - d1 "تفاوت در روز (6880).

اپراتورهای مقایسه

برای مقایسه برخی عبارات استفاده می شود. آنها 3 نحو دارند:

نحو:

نتیجه = بیان 1 عملگر مقایسه بیان 2
نتیجه = شی 1است شی 2
نتیجه = خطپسندیدن نمونه

گزینه ها:

نتیجهضروری؛ هر متغیر عددی
اصطلاحلزوما؛ هر بیانی
عملگر مقایسهضروری؛ هر عملگر مقایسه
یک شیضروری؛ نام هر شی
خطضروری؛ هر عبارت رشته ای
نمونهضروری؛ هر عبارت رشته ای یا طیفی از حروف و اعداد

یادداشت:

جدول زیر شامل لیستی از عملگرهای مقایسه و شرایطی است که نتیجه یک عبارت (درست یا نادرست) تعیین می شود.

اپراتور

درست است اگر

نادرست اگر

باطل اگر

< (меньше чем) بیان 1 <
بیان 2
بیان 1 >=
بیان 2

یکی
از جانب
عبارت حاوی Null است

<= (меньше или равно) بیان 1 <=
بیان 2
بیان 1 >
بیان 2
> (بیشتر از) بیان 1 >
بیان 2
بیان 1 <=
بیان 2
>= (بزرگتر یا مساوی) بیان 1 >=
بیان 2
بیان 1 <
بیان 2
= (برابر) بیان 1 =
بیان 2
بیان 1 <>
بیان 2
<>(نا برابر) بیان 1 <>
بیان 2
بیان 1 =
بیان 2

عملگرهای Is و Like توابع خاصی را انجام می دهند و جدول مقایسه آنها با جدول نشان داده شده متفاوت است (در زیر به آنها نگاه خواهیم کرد).

وقتی دو عبارت با هم مقایسه می‌شوند، همیشه نمی‌توان تعیین کرد که مقایسه اعداد یا رشته‌ای خواهد بود. در زیر نشان می دهد که اگر هر دو عبارت دارای نوع دیگری غیر از Variant باشند، نتیجه چگونه محاسبه می شود:

  • اگر هر دو عبارت عددی باشند (بایت، بولی، عدد صحیح، طولانی، تک، دو برابر، تاریخ، ارز یا اعشار)، آنگاه مقایسه اعداد رخ می دهد.
  • اگر هر دو عبارت رشته ای باشند، مقایسه رشته ای رخ می دهد. (رشته کوچکتر رشته ای است که حروف اول و بعدی آن دارای کد ascii کوچکتر هستند).
  • اگر یکی از عبارات یک عدد و دیگری یک Variant باشد که می توان آن را به عنوان یک عدد تفسیر کرد، آنگاه اعداد با هم مقایسه می شوند.
  • اگر یکی از عبارات یک عدد و دیگری یک رشته Variant است که نمی تواند به عنوان یک عدد تفسیر شود، خطا رخ می دهد (عدم تطابق نوع).
  • اگر یکی از عبارات یک رشته و دیگری هر مقدار Variant (حتی Null) باشد، آنگاه مقایسه رشته ای رخ می دهد.
  • اگر یکی از عبارات خالی و دیگری عدد باشد، مقایسه اعداد رخ می دهد که در آن خالی به عنوان 0 در نظر گرفته می شود.
  • اگر یکی از عبارت ها Empty و دیگری یک رشته باشد، مقایسه رشته ای رخ می دهد که در آن خالی به عنوان رشته خالی "" در نظر گرفته می شود.

اگر هر دو عبارت اول و دوم از نوع Variant باشند، عبارات با توجه به انواع داده‌ای که Variant شامل آن است مقایسه می‌شوند:

  • اگر هر دو عبارت Variant حاوی اعداد باشند، اعداد با هم مقایسه می شوند.
  • اگر هر دو عبارت Variant دارای رشته باشند، رشته ها با هم مقایسه می شوند.
  • اگر یکی از عبارات Variant شامل یک عدد و دیگری یک رشته باشد، آنگاه عبارت عددی کمتر از عبارت رشته است.
  • اگر یکی از عبارات Variant خالی و دیگری عدد باشد، خالی به عنوان 0 در نظر گرفته می شود.
  • اگر یکی از عبارات Variant خالی و دیگری یک رشته باشد، آنگاه Empty به عنوان رشته خالی "" در نظر گرفته می شود.
  • اگر هر دو عبارت Empty باشند، با آنها برابر رفتار می شود.

وقتی یک متغیر Single با یک Double مقایسه می شود، Double به دقت یک Single گرد می شود.

اگر ارز با Single یا Double مقایسه شود، Single یا Double به ارز تبدیل می شود. به طور مشابه، هنگام مقایسه اعشاری به Single یا Double، سپس Single یا Double به Decimal تبدیل می شود. برای ارز، هر بخش کسری کمتر از 0.0001 ممکن است از بین برود. برای Decimal، این مقدار 1E-28 است، یا ممکن است خطایی رخ دهد. بنابراین، با از دست دادن جزء کسری، عبارات را می توان برابر تفسیر کرد، اگرچه در واقع، یکی از دیگری متفاوت خواهد بود. (هر چند کوچک).

مثال ها:

کم نور MyResult، Var1، Var2
MyResult = (45< 35) " بر خواهد گشتنادرست
MyResult = (45 = 45)" بر خواهد گشتدرست است، واقعی.
MyResult = (4<> 3) " بر خواهد گشتدرست است، واقعی.
MyResult = ("5" > "4")" بر خواهد گشتدرست است، واقعی.

Var1="5": ​​Var2=4 "در VB می توانید از دو نقطه استفاده کنید،
برای جدا کردن اپراتورها.

MyResult = (Var1 > Var2)" بر خواهد گشتدرست است، واقعی.

Var1=5: Var2= خالی
MyResult = (Var1 > Var2)" بر خواهد گشتدرست است، واقعی.

Var1 = 0: Var2 = خالی
MyResult = (Var1 = Var2)" بر خواهد گشتدرست است، واقعی.

عملگر مقایسه Is

این عملگر برای مقایسه متغیرهای شی استفاده می شود.

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

یادداشت:

اگر شیء 1 و شیء 1 به یک شی اشاره دارند، نتیجه True است، اگر نه، نادرست است. دو متغیر می توانند به یک شی به بیش از یک روش اشاره کنند. در مثال زیر، A به همان شیء B اشاره دارد:

مجموعه A=B

مثال زیر باعث می‌شود که متغیرهای A و B به یک شی، C اشاره کنند:

مجموعه A = C
SetB=C

مثال ها:

کم نور MyObject، YourObject، This Object، _
OtherObject، ThatObject، MyCheck

YourObject = MyObject را تنظیم کنید " ارجاعات شی ایجاد کنید
ThisObject = MyObject را تنظیم کنید
ThatObject = OtherObject را تنظیم کنید
MyCheck = YourObject Is ThisObject " True برمی گردد.
MyCheck = ThatObject Is ThisObject " False را برمی گرداند.
ما فرض می کنیم که MyObject<>Other Object
MyCheck = MyObject Is ThatObject " Returns False.

عملگر مقایسه رشته - Like

عملگر مقایسه رشته Like برای مقایسه رشته ها استفاده می شود.

نحو این عملگر قبلاً در بالا مورد بحث قرار گرفته است.

اظهار نظر:

از این عملگر می توان برای بررسی استفاده کرد رشتهروی ماسک الگو. این یک اپراتور بسیار قدرتمند است که تقریباً مشابه آن است عبارات با قاعدهدر پرل.

بنابراین، این عملگر به صورت زیر عمل می کند. اگر رشته با ماسک مطابقت داشته باشد، نتیجه True است. اگر نه - نادرست. اگر یکی از عبارات Null باشد، نتیجه نیز Null است.

رفتار عملگر Like به نوع پیش فرض مقایسه رشته بستگی دارد. (گزاره مقایسه گزینه).

اگر نوع روی Binary تنظیم شود (یعنی مقایسه باینری)، رشته ها بر اساس آنها مقایسه می شوند کدهای Ascii(در کدگذاری های مختلف متفاوت است). معمولاً از دنباله زیر استفاده می شود:

آ< B < E < Z < a < b < e < z < А < К < Я < а < к < я

اگر نوع روی Text تنظیم شده باشد (مقایسه متن). با چنین مقایسه ای، دنباله با قبلی متفاوت است، در اینجا حروف بزرگ و کوچک برابر هستند:

(A=a)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

اکثر عملکرد اصلیعملگر Like تستی است برای اینکه ببیند آیا یک رشته به یک ماسک تعلق دارد یا خیر. از محصولات ویژه زیر می توان در ماسک استفاده کرد. شخصیت ها:

هر شخصیت منفرد
* صفر یا بیشتر کاراکتر
# هر رقم (0-9).
هر شخصیت منفرد در charlist
[!charlist] هر شخصیت مجردی که در فهرست charlist نباشد

در اینجا یک یادداشت کوچک است. به منظور بررسی مالکیت یک رشته بر روی ماسک حاوی یک خاص. نمادها (به عنوان مثال، بررسی کنید، اگر نمادهای [,?,#,],* در رشته وجود دارد)، پس باید از داخل آن را محصور کنید. براکت های مربع. شما نمی توانید فقط یک براکت جداگانه [ یا ] مانند آن قرار دهید.

هنگام تعیین لیستی از کاراکترها، می توانید از خط تیره (-) استفاده کنید. به عنوان مثال، برای تعیین یک دنباله از A تا Z، از یک ماسک استفاده می کنید. همه چیز در پرانتز نباید دارای جداکننده (فاصله، کاما و غیره) باشد، در غیر این صورت آنها نیز در دنباله قرار خواهند گرفت.

قوانین مهم دیگری برای اعتبارسنجی ماسک وجود دارد:

  • علامت (!) در ابتدای لیست کاراکترها نشان می دهد که باید به دنبال کاراکترهایی بگردید که در این لیست گنجانده نشده اند. اگر باید خود علامت را پیدا کنید!، پس باید براکت ها را قرار دهید [!].
  • (–) برای تعیین محدوده ای از کاراکترها استفاده می شود.
  • هنگامی که یک محدوده کاراکتر مشخص می شود، باید کدهای ASCII صعودی باشد. آن ها ماسک درسته ولی نه
  • دنباله به عنوان رشته خالی "" تفسیر می شود.

مثال ها:

کم نور MyCheck
MyCheck = "aBBBa" مانند "a*a" "درست است.
MyCheck = "F" مانند "" " درست است.
MyCheck = "F" مانند "[!A-Z]" " نادرست برمی گردد.
MyCheck = "a2a" مانند "a#a" "درست است.
MyCheck = "aM5b" مانند "a#[!c-e]" "درست است.
MyCheck = "BAT123khg" مانند "B?T*" "درست است.
MyCheck = "CAT123khg" مانند "B?T*" " نادرست برمی گردد.

myString = "312T-87GD-8922"

اگر myString مانند "###-##-####" سپس ...

عملگرهای الحاق رشته ها

در واقع، شما می توانید از 2 عملگر برای اتصال رشته ها در ویژوال بیسیک استفاده کنید. این & و + است. عملگر + در بالا توضیح داده شده است. بیایید در مورد اپراتور & صحبت کنیم.

عملگر الحاق رشته - &

برای به هم پیوستن دو عبارت استفاده می شود.

نحو:

نتیجه = بیان 1 & بیان 2

نتیجهضروری؛ هر متغیر رشته یا متغیر
بیان 1لزوما؛ هر تعبیری
بیان 2لزوما؛ هر تعبیری

یادداشت:

اگر عبارت یک رشته نباشد، به یک String Variant تبدیل می شود. نوع داده نتیجه فقط زمانی String است که هر دو عبارت از نوع String باشند. در غیر این صورت، نتیجه String Variant است. اگر هر دو عبارت Null باشند، نتیجه نیز Null است. با این حال، اگر فقط یکی از عبارات حاوی مقدار صفر، سپس به عنوان رشته خالی "" تفسیر می شود. خالی نیز به عنوان رشته خالی "" تفسیر می شود.

مثال ها:

کم نور MyStr
MyStr = "سلام" و "جهان"
" بر خواهد گشترشته "سلام جهان".
MyStr = "Check" & 123 & "Check"
" رشته "Verify 123 Verify" را برمی گرداند.

عملگرهای منطقی

این جالب ترین گروه اپراتورها است. هنگام برنامه نویسی، باید کار و کاربرد آنها را بشناسید (و نه تنها در ویژوال بیسیک).

6 مورد از آنها در ویژوال بیسیک وجود دارد. بیایید هر اپراتور را با جزئیات در نظر بگیریم.

و اپراتور

برای انجام ضرب منطقی در دو عبارت استفاده می شود.

نحو:

نتیجه = بیان 1و بیان 2

نتیجه
بیان 1لزوما؛ هر تعبیری
بیان 2لزوما؛ هر تعبیری

یادداشت:

جدول زیر نحوه عملکرد عملگر And را نشان می دهد:

اگر عبارت 1 =

، و بیان2 =

آن نتیجه =

درست است، واقعی درست است، واقعی درست است، واقعی
درست است، واقعی نادرست نادرست
درست است، واقعی خالی خالی
نادرست درست است، واقعی نادرست
نادرست نادرست نادرست
نادرست خالی نادرست
خالی درست است، واقعی خالی
خالی نادرست نادرست
خالی خالی خالی

عملگر And نیز برای تست بیت های یک عدد استفاده می شود. برای بیت ها، عملگر And به این صورت عمل می کند (از چپ به راست نگاه کنید)

0 0 0
0 1 0
1 0 0
1 1 1

مثال ها:

کم نور A، B، C، D، MyCheck
MyCheck=A>B و B>C" بر خواهد گشتدرست است، واقعی.
MyCheck=B>A و B>C" بر خواهد گشتنادرست
MyCheck=A>B و B>D" بر خواهد گشتخالی.
MyCheck = A و B" بر خواهد گشت8 (مقایسه بیت).

بیایید نگاهی دقیق تر به آخرین مثال بیندازیم. عدد 10 در بیت به صورت زیر نمایش داده می شود (به عنوان یک تتراد، یعنی 4 بیت):

و عدد 8 به این صورت است:

در نتیجه عملکرد عملگر And، مطابق جدول بالا، به دست خواهیم آورد:

آن ها 8. چرا این کار را کردیم؟ ما این کار را انجام دادیم تا بررسی کنیم که آیا بیت چهارم عدد A تنظیم شده است؟ با دریافت B، مطمئن شدیم که این بیت تنظیم شده است.

یا اپراتور

برای انجام یک جمع منطقی از دو عبارت استفاده می شود.

نحو:

نتیجه = بیان 1یا بیان 2

نتیجهضروری؛ هر متغیر عددی (از جمله بولی).
بیان 1لزوما؛ هر تعبیری
بیان 2لزوما؛ هر تعبیری

یادداشت:

جدول زیر نحوه عملکرد عملگر Or را نشان می دهد:

اگر عبارت 1 =

، و بیان2 =

آن نتیجه =

درست است، واقعی درست است، واقعی درست است، واقعی
درست است، واقعی نادرست درست است، واقعی
درست است، واقعی خالی درست است، واقعی
نادرست درست است، واقعی درست است، واقعی
نادرست نادرست نادرست
نادرست خالی خالی
خالی درست است، واقعی درست است، واقعی
خالی نادرست خالی
خالی خالی خالی

عملگر Or برای تنظیم بیت های خاصی از یک عدد استفاده می شود. برای بیت ها، عملگر Or به صورت زیر عمل می کند (از چپ به راست نگاه کنید)

0 0 0
0 1 1
1 0 1
1 1 1

نتیجه به صورت پررنگ است.

مثال ها:

کم نور A، B، C، D، MyCheck
MyCheck=A>B یا ​​B>C" بر خواهد گشتدرست است، واقعی.
MyCheck=B>A یا B>C" بر خواهد گشتدرست است، واقعی.
MyCheck=A>B یا ​​B>D" بر خواهد گشتدرست است، واقعی.
MyCheck=B>D یا B>A" بر خواهد گشتخالی.
MyCheck = A یا 5" بر خواهد گشت 15:

بیایید نگاهی دقیق تر به آخرین مثال بیندازیم. عدد 10 در بیت به صورت زیر نمایش داده می شود (به عنوان یک تتراد، یعنی 4 بیت):

و شماره 5:

در نتیجه عملکرد عملگر Or، طبق جدول بالا، به دست می آید:

آن ها 15. همانطور که می بینید، عملگر Or نه تنها در عبارات مقایسه، بلکه برای تنظیم بیت های معینی از یک عدد، بسیار آسان و راحت است.

اپراتور Xor

برای انجام نفی منطقی دو عبارت استفاده می شود.

نحو:

نتیجه = بیان 1 Xor بیان 2

نتیجهضروری؛ هر متغیر عددی (از جمله بولی).
بیان 1لزوما؛ هر تعبیری
بیان 2لزوما؛ هر تعبیری

یادداشت:

جدول زیر نحوه عملکرد عملگر Xor را نشان می دهد:

عملگر Xor برای معکوس کردن بیت های خاصی از یک عدد استفاده می شود. برای بیت ها، عملگر Xor به این صورت عمل می کند (از چپ به راست نگاه کنید)

0 0 0
0 1 1
1 0 1
1 1 0

نتیجه به صورت پررنگ است. Xor با Or فقط در این است که وقتی هر دو بیت 1 هستند، Xor 0 را تولید می کند. عملگر Xor از این جهت جالب است که وقتی دو بار اعمال می شود همان عدد را تولید می کند. این اغلب در رمزنگاری استفاده می شود.

مثال ها:

کم نور A، B، C، D، MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Xor B>C" بر خواهد گشتنادرست
MyCheck=B>A Xor B>C" بر خواهد گشتدرست است، واقعی.
MyCheck=B>A Xor C>B" بر خواهد گشتنادرست
MyCheck=B>D Xor A>B" بر خواهد گشتخالی.
MyCheck=A Xor B" بر خواهد گشت 2

یک مثال جالب از استفاده از عملگر Xor مبادله مقادیر دو متغیر عددی است:

کم نور به عنوان طولانی، b به عنوان طولانی
a = 4
b = 7
a = a Xor b
b = a Xor b
a = a Xor b

حال متغیر a حاوی مقدار متغیر b است و بالعکس.

اپراتور نیست

برای انجام یک وارونگی منطقی دو عبارت استفاده می شود.

نحو:

نتیجه= نه اصطلاح

نتیجهضروری؛ هر متغیر عددی (از جمله بولی).
اصطلاحلزوما؛ هر تعبیری

یادداشت:

جدول زیر نحوه عملکرد عملگر Not را نشان می دهد:

عملگر Not همه بیت ها را معکوس می کند. اصطلاحات.برای بیت ها، عملگر Not به این صورت عمل می کند (از چپ به راست مشاهده می شود):

0 1
1 0

نتیجه به صورت پررنگ است.

مثال ها:

کم نور A، B، C، D، MyCheck
A=10: B=8: C=6: D=Null
MyCheck = Not(A>B)" بر خواهد گشتنادرست
MyCheck = Not(B>A)" بر خواهد گشتدرست است، واقعی.
MyCheck = Not(C>D)" بر خواهد گشتخالی.
MyCheck = نه A" بر خواهد گشت-11 (همه بیت ها معکوس شده اند)

بیایید نگاهی دقیق تر به آخرین مثال بیندازیم. عدد 10 به صورت بیت به صورت زیر نمایش داده می شود (به عنوان یک بایت، یعنی 8 بیت):

پس از معکوس کردن همه بیت ها، به دست می آوریم:

و این -11 است.

اپراتور Eqv

برای انجام هم ارزی منطقی بین دو عبارت استفاده می شود.

نحو:

نتیجه = بیان 1معادل بیان 2

نتیجهضروری؛ هر متغیر عددی (از جمله بولی).
بیان 1لزوما؛ هر تعبیری
بیان 2لزوما؛ هر تعبیری

یادداشت:

جدول زیر نحوه عملکرد عملگر Eqv را نشان می دهد:

برای بیت ها، عملگر Eqv به صورت زیر عمل می کند (از چپ به راست نگاه کنید)

0 0 1
0 1 0
1 0 0
1 1 1

مثال ها:

کم نور A، B، C، D، MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Eqv B>C" بر خواهد گشتدرست است، واقعی.
MyCheck=B>A Eqv B>C" بر خواهد گشتنادرست
MyCheck=A>B Eqv B>D" بر خواهد گشتخالی.
MyCheck = A Equv B " بر خواهد گشت -3

اپراتور imp

برای ایجاد یک مفهوم منطقی از دو عبارت استفاده می شود.

نحو:

نتیجه = بیان 1بد بیان 2

نتیجهضروری؛ هر متغیر عددی (از جمله بولی).
بیان 1لزوما؛ هر تعبیری
بیان 2لزوما؛ هر تعبیری

یادداشت:

جدول زیر نحوه عملکرد عملگر Imp را نشان می دهد:

اگر عبارت 1 =

، و بیان2 =

آن نتیجه =

درست است، واقعی درست است، واقعی درست است، واقعی
درست است، واقعی نادرست نادرست
درست است، واقعی خالی خالی
نادرست درست است، واقعی درست است، واقعی
نادرست نادرست درست است، واقعی
نادرست خالی درست است، واقعی
خالی درست است، واقعی درست است، واقعی
خالی نادرست خالی
خالی خالی خالی

برای بیت ها، عملگر Imp به این صورت عمل می کند (از چپ به راست نگاه کنید)

0 0 1
0 1 1
1 0 0
1 1 1

مثال ها:

کم نور A، B، C، D، MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Imp B>C" بر خواهد گشتدرست است، واقعی.
MyCheck=A>B Imp C>B" بر خواهد گشتنادرست
MyCheck=B>A Imp C>B" بر خواهد گشتدرست است، واقعی.
MyCheck=B>A Imp C>D" بر خواهد گشتدرست است، واقعی.
MyCheck=C>D Imp B>A" بر خواهد گشتخالی.
MyCheck=B Imp A" -1 برمی گردد

زنگ

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