ASP.NET2005
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

آموزش ASP-عملگرهای ریاضی در زبان VBscript

اذهب الى الأسفل

آموزش ASP-عملگرهای ریاضی در زبان VBscript Empty آموزش ASP-عملگرهای ریاضی در زبان VBscript

پست  mohammad moradi الإثنين نوفمبر 16, 2009 7:36 am

ما با عملگر هايي از VBScript شروع كرديم كه مي توانند به عنوان عملگر هاي رياضي تقسيم بندي شوند. آنها شامل عملگر هاي جمع ,تفريق ,منفي ,ضرب ,تقسيم و توان مي باشند. همه اين عملگر ها را احتمالا شما قبلا ديده ايد به غير از division integer ، قدر مطلق و چسباندن ريشه ها كه براي شما جديد مي باشد.

جمع يا Addition
عملگر جمع به صورت فرمول argument+argument مي باشد كه در آن هر آرگومان مي تواند يك عدد يا يك متغير عددي يا عبارت عددي ديگري باشد مثل:

<%
Dim iSum
iSum = 3+5
%>

اين يكي از ساده ترين نمونه هاست كه هر دو آرگومان عدد مي باشد. وقتي كه اجرا گردد مقدار نهايي متغير isum عدد 8 مي باشد. مثال بعدي نشان مي دهد كه چطور يك متغير ممكن است به عنوان آرگومان استفاده گردد:

<%
Dim sngSum, sngLeft
sngLeft = 3.2
sngSum = sngLeft + 1.1
%>

در اين مثال نتيجه همان طوري كه ممكن است حدس زده باشيد مقدار 4.3 ميباشد. مقدار موجود در متغير sngLeft با عدد 1.1 جمع شده و در داخل متغير sngSum ذخيره مي گردد. متغير sngLeft تحت تاثير عملگر جمع قرار نمي گيرد.
حال به يك مثال دشوار تر نگاهي بيندازيم:

<%
Dim iCount
iCont = 2
iCont = iCont +1
%>

اين مثال ممكن است كمي سخت تر از اولي به نظر برسد. حال چگونه ممكن است كه متغير iCont برابر با متغير 1+iCont شود؟
اولا: به ياد بياوريد كه علامت تساوي با علامت انتساب تفاوت دارد. در خط اول همان طور كه قبلا ديده ايد عمل empty در داخل آن ايجاد شده است. خط دوم مقدار عددي 2 را در داخل متغير iCont جايگزين مي نمايد. در خط سوم عدد 2 از iCont بازيابي شده است. سپس عدد 1 با آن جمع مي شود و مقدار 3 را توليد ميكند. سپس عدد 3 توسط عملگر انتساب به منظور ذخيره شدن در داخل iCont فرستاده مي شود. بنابراين در انتهاي اين كدها iCont مقدار 3 را در خود نگاه ميدارد. مقدار عددي قبلي يعني عدد 2 كه در داخل iCont وجود داشت رونويسي مي گردد.
توجه كنيد كه عدد 1 قبل از اين كه عملگر انتساب وارد عمل شود با متغير iCont جمع مي شود.هر چيزي كه در سمت راست عملگر انتساب قرار دارد قبل از اين كه عمل انتساب صورت بگيرد اجرا مي گردد. جدول زير ليست دستوراتي مي باشد كه عمليات آنها قبل از عمل انتساب صورت مي گيرد:

اولويت عملگرها

Precedence Operators
Highest(done first) Anything in parentheses
Exponentiation(^)
Negation (-)
Multiplicathion, Division (*,/)
Integer Division (\)
Modulus (mod)
Addition, Subtraction (+,-)
String Concatenation (&)
Equality (=)
Inequality (<>)
Less than (<)
Greater than (>)
Less than or equal to (<=)
Greater than or equal to (>=)
Not
And
Or
Xor
Eqv
Imp
Lowest (done last)

تفريق يا Subtraction
حالا كه جمع كردن اعداد را ياد گرفتيد ممكن است كه سوال نماييد كه چگونه عمل تفريق صورت مي گيرد؟ عمل تفريق همانند عمل جمع صورت مي گيرد و فرمول آن به صورت argument-argument ميباشد. هر نوع تركيبي كه شما در عمليات جمع استفاده كرديد با عمليات تفريق نيز استفاده مي شود. تنها اختلاف تفريق با جمع در اين است كه در تفريق ترتيب آرگومان ها مهم مي باشد. براي مثال عبارت 3-5 با عبارت 5-3 تفاوت دارد. در كدهاي زير آيا مي توانيد بگوييد كه بعد از پايان كدها متغير iCont چه مقداري در خود دارد؟

<%
Dim iCont
iCont = 3
iCont = iCont+1
iCont = iCont-2
%>

جوابي كه شما بايد به دست آورده باشيد مقدار 2 مي باشد. مقدار iCont در ابتدا 3 مي باشد سپس با 1 جمع شده و مقدار آن 4 مي گردد و سپس با 2 تفريق شده و مقدار آن 2 مي گردد.

ضرب يا Multiplication
ضرب براي شما ساده مي باشد. نشانه عملگر ضرب علامت (*) است. عملگر ضرب همان شكلي را كه ساير عملگر ها پيروي مي كردند و ما درباره آن بحث كرديم دنبال مي كند. البته عملگر ضرب يك پيچيدگي جديد نيز دارد.

لغت جديد: درباره عبارت رياضي 3*5+2 فكر كنيد. مقدار اين عبارت رياضي چند مي باشد؟ اگر شما عمل جمع را در ابتدا انجام دهيد نتيجه مقدار 21 است. اگر شما عمل ضرب را در ابتدا انجام دهيد نتيجه 17 مي باشد. كدام يك درست است؟ شما بايد به خاطر داشته باشيد كه عملگر ضرب نسبت به عملگر جمع متقدم است. بنابراين مقدار درست 17 است. اين واقعيت كه عملگر ضرب تقدم بيشتري نسبت به جمع دارد را اولويت يا Precedence مي گويند. اولويت مجموعه اي از قوانين براي ترتيب عملگر ها مي باشند كه بايد انجام شوند.ضرب داراي اولويت بالاتري نسبت به جمع است.

اگر شما قصد داريد كه اول عمل جمع صورت بگيرد يك راه وجود دارد. در كلاس رياضي شايد به خاطر داريد كه هر جايي كه پرانتز قرار دارد اول اجرا مي گردد. VBScript نيز همين گونه رفتار مي كند.
قرار دادن پرانتز در داخل عبارت قبلي به شما عبارت 3*(5+2) را مي دهد كه برابر با 21 مي باشد. پرانتز ها ميتوانند با هر نوع عملگري كه قصد داريد ابتدا اجرا گردند به كار روند.

نكته: شما مي توانيد از پرانتز ها استفاده كنيد حتي وقتي نياز به شفاف تر كردن يك عبارت رياضي نداريد. پرانتز ها مي توانند همچنين وقتي كه نمي توانيد تقدم عملگرها را به خاطر بياوريد استفاده گردند.

تقسيم يا Division
VBScript دو نوع مختلف از تقسيم را دارد. اولين نوع را كه احتمالا با آن آشنايي بيشتري داريد تقسيم استاندارد مي باشد كه با علامت (/) slash نشان داده مي شود. اين نوع تقسيم دو مقدار عددي را مي گيرد و يك خارج قسمت مميز شناور را بر مي گرداند. براي مثال 5/2 برابر با 2/5 و 4/5 مقدار 0.8 مي باشد.
بعضي از تقسيم ها نتيجه اي دارند كه پايان ندارد. در اين موارد از بهترين تقريبي كه سيستم مي تواند ذخيره كند استفاده مي گردد. براي مثال در مورد 1/3 كامپيوتر نمي تواند مقدار دسيمال تكرار پذير نا محدود 0.3333 را ذخيره كند... همچنين از تقسيم بر صفر نيز اجتناب نماييد. تقسيم بر صفر يا يك عددي نزديك به صفر كه كامپيوتر آن را صفر در نظر مي گيرد يك خطا را ايجاد مي نمايد.

Integer Division يا خارج قسمت
عبارت زير را در نظر بگيريد:
5 تقسيم بر 3 ميشود 1 با باقيمانده 2.
عملگر هاي خارج قسمت و با قيمانده به شما اجازه مي دهندكه اين نوع تقسيم را در VBScript انجام دهيد. عملگر خارج قسمت با علامت (\) backslash نشان داده مي شود و يك عدد را بر مي گرداند. براي مثال:
5\3 Returns 1
4\2 Returns 2
0\8 Returns 0
1.2 Returns 0
بر عكس بيشتر زبان هاي برنامه نويسي خارج قسمت حتي وقتي اعداد به صورت مميز شناور نيز باشند كار مي كند. وقتي كه عملگر خارج قسمت براي اعداد مميز شناور به كار برده ميشود عدد به نزديكترين integer گرد مي شود. براي مثال:
4\2.2 Returns 2
8.3\2.6 Returns 2

باقيمانده يا Modulus
عملگر ديگري كه به همراه خارج قسمت به كار برده مي شود عملگر باقيمانده مي باشد. در حالي كه عملگر integer division خارج قسمت را بر مي گرداند, هنگامي كه دو عدد بر يكديگر تقسيم مي شوند, عملگر modulus مقدار باقيمانده را بر مي گرداند. براي مثال:
5 mod 3 Returns 2
4 mod 2 Returns 0
0 mod 8 Returns 8
1 mod 2 Returns 1
4 mod 2.2 Returns 0
8.3 mod 2.6 Returns 2

فايده اين دو عملگر آخري ممكن است اكنون براي شما آشكار نباشد اما در حقيقت آنها بسيار پر قدرت مي باشند. به عملگر هاي باقيمانده زير توجه كنيد.
0 mod 3 Returns 0
1 mod 3 Returns 1
2 mod 3 Returns 2
3 mod 3 Returns 0
4 mod 3 Returns 1
5 mod 3 Returns 2

وقتي شما از يك روش چرخه اي استفاده نماييد عملگر باقيمانده بسيار مفيد واقع مي شود. عملگر mod همچنين مي‌تواند در اين كه آيا يك عدد بر ديگري قابل قسمت مي‌باشد نيز به ما كمك نمايد. اگر a mod b مقدار صفر را برگرداند يعني b مقسوم عليه a مي باشد.

Exponentiation يا عملگر توان
در VBScript عملگر توان به وسيله سمبول (^)carat نشان داده مي شود. اگر شما چيزي در مورد توان به ياد نمي آوريد توجه كنيد كه (b دفعه) a^b = a*a*a*a*a براي مثال:
3^3 = 3*3*3* = 27
5^2 = 5*5 = 25
6^3 = 6*6*6 = 216
همچنين توجه كنيد كه توان از چپ به راست اجرا مي گردد. اين به آن معني است كه اگر شما يك عبارت رياضي به صورت 2^3^2 داريد در ابتدا 2^3 انجام مي شود و سپس نتيجه به توان 2 مي رسد.
2^3^2 = 8^2 =64

عملگر نقيض يا Negation
عملگر نقيض عملگري است كه اعداد مثبت را به اعداد منفي تبديل مي‌نمايد و بر عكس. اين عملگر مثل اين است كه يك عدد را در 1- ضرب كنيم. عملگر نقيض با سمبول dash نمايش داده مي شود.

واژه جديد: فرق بين عملگر نقيض با عملگر تفريق در اين است كه عملگر تفريق _ مانند جمع, ضرب و ديگر عملگر هايي كه قبلا مورد بحث قرار گرفتند _ عملگر هايي دو تايي مي باشند. يك عملگر دو تايي عملگري است كه داراي دو آرگومان مي باشد.

واژه جديد: بر عكس, عملگر نقيض يك عملگر تكي مي باشد. يعني اين كه اين عملگر فقط يك آرگومان دارد. بنابراين علامت dash وقتي بين دو مقدار عددي به كار رفته باشد براي تفريق به كار مي رود و وقتي در جلوي آن يك آرگومان باشد به عنوان عملگر نقيض به كار مي رود.

به كار بردن عملگر هاي رياضي در كنار يكديگر

<% @ Language="VBScript" %>
<% Option Explicit
Dim iTerm1, iTerm2, sngArithmetic, sngGeometric
%>
<HTML>
<BODY>
<%
iTerm1 = 5
iTerm2 = 16
Response.Write("We are computing the averages of ")
Response.Write(iTerm1)
Response.Write(" and ")
Response.Write(iTerm2)
%>
<BR>
<%
sngAritmetic = iTerm1 + iTerm2
sngAritmetic = sngAritmetic / 2
sngGeometric = (iTerm1 * iTerm2)^0.5
Response.Write(" Their arithmetic mean is ")
Response.Write(sngArithmetic)
Response.Write(" and their geometric mean is ")
Response.Write(sngGeometric)
%>
</BODY>
</HTML>

خط 3 متغير هايي كه در اين اسكريپت به كار رفته است را تعريف مي نمايد. خط 8 يكي از متغير ها را با عدد 5 مقدار دهي مي كند. در خط 9 متغير ديگر با عدد 16 مقدار دهي مي شود. خطوط 10 تا 13 يك پيغام را نمايش مي دهند كه به كاربر مي گويد كه چه اعدادي براي محاسبات رياضي مورد استفاده قرار گرفته اند.
خطوط 17 و 18 محاسبات رياضي كه بين دو عدد مي باشند را نشان مي دهد. Arithmetic_mean معدل گيري ساده اي مي باشد كه شما در مدرسه آن را آموخته ايد. خط 17 دو عدد را مي گيرد و آن ها را با يكديگر جمع مي كند و نتيجه را در متغير sngArithmetic ذخيره مي نمايد. در خط 18 متغير sngArithmetic بر عدد تقسيم مي شود و نتيجه در متغير sngArithmetic ذخيره مي گردد. توجه كنيد كه استفاده از slash نشان دهنده اين است كه ما از تقسيم مميز شناور به جاي نوع integer استفاده نموده ايم. اكنون متغير sngArithmetic معدل بين دو عدد را نگهداري مي نمايد.
خط 19 معدل هندسي را محاسبه مي كند. اگر شما با معدل هندسي بين دو عدد قبلا برخورد نداشته ايد آن عبارتست از جذر ريشه هاي دو عدد. براي محاسبه ابتدا دو عدد را با يكديگر ضرب مي كنيم سپس نتيجه را به توان 0.5 مي رسانيم. رساندن يك عدد به توان 0.5 معادل گرفتن جذر ريشه آن عدد مي باشد. توجه كنيد كه پرانتز هايي كه در خط 19 مورد استفاده قرار گرفته اند ضروري مي باشند. بدون وجود آنها عمل توان رساني ابتدا انجام مي گرفت و سپس عمل ضرب صورت مي گرفت.
خطوط 20 تا 23 چندين پيام بسته را چاپ مي كند. مقادير داخل متغير هاي sngArithmetic و sngGeometric نمايش داده مي‌شوند.
mohammad moradi
mohammad moradi
Admin
Admin

تعداد پستها : 220
تاريخ التسجيل : 2009-10-31

بازگشت به بالاي صفحه اذهب الى الأسفل

بازگشت به بالاي صفحه

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد