ايران ويج

نسخه‌ی کامل: تغيير محتوای دو متغيير بدون کمک متغییر کمکی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

چطوری می توانيم محتوای دو متغيير را بدون استفاده از متغيير کمکی تغيير دهيم؟

سپاس
منظورت از تغییر دادن چی هست؟!
اگر منظورت این هست که داده‌های هر دو متغییر جاشون با هم عوض بشه خوب:

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

کد:
Dim X1 As String
Dim X2 As String

X1 = "fx1"
X2 = "fx2"
    
MsgBox X1 & vbCrLf & X2
'''''''''''''''''''
X1 = X1 & Chr$(0) & X2
X2 = Split(X1, Chr$(0))(0)
X1 = Split(X1, Chr$(0))(1)
'''''''''''''''''''
MsgBox X1 & vbCrLf & X2

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

کد:
Dim X1 As Long
Dim X2 As Long

X1 = 1111
X2 = 2222
    
MsgBox X1 & vbCrLf & X2
'''''''''''''''''''
X1 = X1 * X2
X2 = X1 / X2
X1 = X1 / X2
'''''''''''''''''''
MsgBox X1 & vbCrLf & X2

اما در حالات سخت تر ممکنه دو تا متغییر از انواع مشکل تری باشند مثلا هر دوشون تصویر باشند که در این صورت هم میشه این مسئله رو به وسیله API و با کمک فرمان CopyMemory حل کرد.
یادمه تو دبیرستان و محیط Qbasic دستور Swap رو داشتیم به این صورت :
کد:
a=10
b=20
swap a,b
با دستور بالا مقدار دو متغیر با هم عوض می شه. حالا اگه دنبال الگریتمی هستید که این کار رو انجام بده شاید روش های آقا جواد بهترین باشه....
از لطف شما ممنونم دوستان - پاسخ خیلی کاملی دریافت کردم
برای دو متغیر عددی خیلی ساده میشه از جمع و تفریق استفاده کرد . مثلا اگر دو متغیر به نام a و b داشته باشیم راحت میتونیم بنویسیم :

کد:
a = a + b
b = a - b
a = a - b
سلام

چطوری میتونم بدون استفاده از متغیر کمکی محتویات دو متغیر عددی رو جابه جا کنم؟
مثلا:مقادیر 15 و 25 به ترتیب در متغیر های P1 , P2

حالا میخوام با دستور DW اونها رو جابه جا کنم؟؟