امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
تغيير محتوای دو متغيير بدون کمک متغییر کمکی
نویسنده پیام
kimia آفلاین
كاربر دو ستاره
**

ارسال‌ها: 223
موضوع‌ها: 28
تاریخ عضویت: خرداد ۱۳۸۳

تشکرها : 0
( 13 تشکر در 12 ارسال )
ارسال: #1
تغيير محتوای دو متغيير بدون کمک متغییر کمکی
سلام

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

سپاس
۱۲-مهر-۱۳۸۶, ۰۹:۰۵:۱۵
وب سایت ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #2
RE: تغيير محتوای دو متغيير بدون کمک متغییر کمکی
منظورت از تغییر دادن چی هست؟!
اگر منظورت این هست که داده‌های هر دو متغییر جاشون با هم عوض بشه خوب:

حالا بستگی داره که متغییر‌هات از چه نوعی هستند.
در خوشبینانه‌ترین حالت فرض می کنم هر دو شون 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 حل کرد.
۱۲-مهر-۱۳۸۶, ۱۰:۰۸:۳۳
وب سایت ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #3
RE: تغيير محتوای دو متغيير بدون کمک متغییر کمکی
یادمه تو دبیرستان و محیط Qbasic دستور Swap رو داشتیم به این صورت :
کد:
a=10
b=20
swap a,b
با دستور بالا مقدار دو متغیر با هم عوض می شه. حالا اگه دنبال الگریتمی هستید که این کار رو انجام بده شاید روش های آقا جواد بهترین باشه....

۱۲-مهر-۱۳۸۶, ۱۳:۳۵:۰۵
وب سایت ارسال‌ها
پاسخ
kimia آفلاین
كاربر دو ستاره
**

ارسال‌ها: 223
موضوع‌ها: 28
تاریخ عضویت: خرداد ۱۳۸۳

تشکرها : 0
( 13 تشکر در 12 ارسال )
ارسال: #4
RE: تغيير محتوای دو متغيير بدون کمک متغییر کمکی
از لطف شما ممنونم دوستان - پاسخ خیلی کاملی دریافت کردم
۱۳-مهر-۱۳۸۶, ۰۹:۳۹:۴۷
وب سایت ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #5
RE: تغيير محتوای دو متغيير بدون کمک متغییر کمکی
برای دو متغیر عددی خیلی ساده میشه از جمع و تفریق استفاده کرد . مثلا اگر دو متغیر به نام a و b داشته باشیم راحت میتونیم بنویسیم :

کد:
a = a + b
b = a - b
a = a - b

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۱۳-مهر-۱۳۸۶, ۱۴:۳۱:۵۴
ارسال‌ها
پاسخ
silent girl آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: اردیبهشت ۱۳۹۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #6
Question  RE: تغيير محتوای دو متغيير بدون کمک متغییر کمکی
سلام

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

حالا میخوام با دستور DW اونها رو جابه جا کنم؟؟
۰۵-اردیبهشت-۱۳۹۵, ۲۱:۴۰:۴۱
ارسال‌ها
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS