تک دیک

واژه نامه و مجله آموزشی کامپیوتر و فناوری

جابجایی مقدار دو متغیر عددی بدون متغیر کمکی

ترفندهای برنامه نویسی و الگوریتم های خاص از نمونه‌های ساده تا حرفه ای یکی از روش‌های سنجش میزان مهارت و یادگیری برنامه نویسان و تقویت این مهارت‌ها محسوب می‌شود. در این میان الگوریتم جابجایی (Swap) مقدار دو متغیر عددی بدون متغیر سوم یکی از الگوریتم هایی است که ممکن است برای دانش آموزان و دانشجویان رشته کامپیوتر و افراد مبتدی جالب و البته چالش زا باشد.

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

الگوریتم تعویض مقدار دو متغیر – حالت عادی

برای جابجایی مقدار دو متغیر عددی با استفاده از متغیر کمکی کافیست ابتدا مقدار یکی از متغیرها (در اینجا مقدار متغیر اول) را به یک متغیر سوم (برای مثال متغیری با نام temp که متغیر کمکی یا موقت محسوب می‌شود) اختصاص بدهید. سپس مقدار متغیر دوم را به متغیر اول اختصاص دهید و در پایان مقدار متغیر کمکی را به متغیر دوم اختصاص دهید.

a = 3
b = 5
temp = a
a = b
b = temp

در مثال فوق در خط سوم، مقدار متغیر temp برابر با 3 می‌شود. در خط چهارم، مقدار متغیر a برابر با 5 می‌شود و در خط پنجم، مقدار متغیر b برابر با 3 می‌شود.

البته این روش صرفا به متغیرهای عددی محدود نمی‌شود و برای مقادیر غیر عددی نیز قابل استفاده است.

الگوریتم جابجایی دو متغیر عددی بدون متغیر سوم یا متغیر کمکی

برای جابجایی مقدار دو متغیر عددی بدون استفاده از متغیر کمکی می‌توانید ابتدا مجموع مقادیر دو متغیر را در یکی از متغیرها نگهداری کنید. سپس با دو بار تفریق مقدار متغیر دیگر از مجموع مقادیر (به صورت مثال زیر)، مقدار دو متغیر را با هم عوض کنید.

a = 3
b = 5
a = a + b
b = a - b
a = a - b

در مثال فوق، مقدار متغیر a در خط سوم برابر با 8 می‌شود. در خط چهارم مقدار متغیر b برابر با 3 می‌شود و در خط پنجم نیز مقدار متغیر a برابر با 5 می‌شود.

البته این روش تنها روش برای تعویض مقدار دو متغیر عددی بدون متغیر موقت نیست. شما چه راهی برای انجام این کار پیشنهاد می‌کنید؟ خوشحال می‌شویم آن را در بخش نظرات همین مطلب با ما در میان بگذارید.

امیرحسین شهسواری

عاشق دنیای رایانه و فناوری به خصوص برنامه نویسی هستم؛ یادگرفتن و البته یاد دادن چیزای جالبی که یاد گرفتم باعث خوشحالیم میشه و از اولویت‌های اصلی زندگیم به حساب میاد. از مدیریت و نوشتن در تک دیک هم واقعا لذت می‌برم :)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *