# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها > سوال: جابجایی دو عدد ورودی بدون متغییر کمکی

## Slytherin

این یکی از سوالات فصل دوم کتابمبانی کامپیوتر و برنامه نویسی، جعفر تنها هست:
"فلوچارتی رسم نمائید که دو عدد از ورودی دریافت کرده، سپس محتویات دو عدد را *بدون استفاده از متغیر کمکی* جابجا کند."
من انتظاری ندارم که کسی واسم فلوچارت رسم کنه!
تنها سوالم اینه که چطور باید این مسئله رو حل کرد؟
اینکه بدون متغییر کمکی بخواهیم این کار رو انجام بدیم واسم قابل درک نیست...

----------


## Slytherin

مشکل حل شد:
http://i9.tinypic.com/4ptc8yh.jpg

----------


## soorena

فرض کن a=7 و b=10 پس داريم : 
a=a+b
b=a-b
a=a-b
نتيجه ميشه:
a=10
b=7
اينم بدون استفاده از متغير کمکی

----------


## gbg

با جمه و تفریق ممکنه سرریزی رخ بده
از XOR باید استفاده کرد

----------


## m.soleimani

> با جمه و تفریق ممکنه سرریزی رخ بده
> از XOR باید استفاده کرد


متوجه منظورت نشدم دوست عزیز منظورت هم نوع نبودن هست یا چیز دیگه ؟ اگر توضیح بدی ممنون می‌شم بالاخره آدم یه چیزایی رو کلن روش شک می‌کنه دیگه./

----------


## gbg

1 - منظورم از جمه ، جمع بود
2 - یه متغیر تعداد بیت ثابت رو میتونه ذخیره کنه مثلا بایت 8 بیت ، حالا اگه دو عدد 8 بیتی رو باهم جمع کنی ، ممکنه این عدد برای ذخیره شدن در متغییر نیاز به 9 بیت داشته باشه و این یه بیت اضافه در جمع رو رقم نقلی میگن

----------


## T_shahbazi

تمرین کلاسی: فلوچارتی رسم کنید که عـددي صـحیح طبیعـی n را 
دریافت کند و تعداد اعـداد اول کـوچکتر از آن را محاسـبه کـرده و 
نمایش دهد

----------

