View Full Version : سوال: بازنویسی تابع if بدون هیچ تابعی!!!
danyalbursin
جمعه 05 تیر 1394, 22:19 عصر
سلام دوستان . میخواستم بدونم چجوری میشه دوتا عدد و مقایسه کرد بدون هیچ تابعی! . استادمون گفته یه برنامه بنویسید که بدونه هیچ تابع یا دستور شرطی یک تابع بنویسید که بگه کدام عدد بزرگترع کدام کوچکتر!
rahnema1
شنبه 06 تیر 1394, 20:42 عصر
سلام
دوست عزیز کامپایلر بورلند نسبت به کامپایلرهای مشابه در زمینه ++c حرفی واسه گفتن نداره به همین خاطر این تالار زیاد بازدید نمیشه اگه بتونید سوال خودتون را در تالار زیر مطرح کنید که افراد بیشتری اونجا هستند
http://barnamenevis.org/forumdisplay.php?45
جواب سوال شما هم قبلا پاسخ داده شده که در تاپیک زیر هست:
http://barnamenevis.org/showthread.php?435697
golbafan
شنبه 06 تیر 1394, 21:10 عصر
سلام جواب شما:
bigger:=(x>y)*x+(y>x)*y;
amin1softco
شنبه 06 تیر 1394, 22:56 عصر
http://www.geeksforgeeks.org/compute-the-minimum-or-maximum-max-of-two-integers-without-branching/
habibb
یک شنبه 07 تیر 1394, 15:41 عصر
سلام دوستان . میخواستم بدونم چجوری میشه دوتا عدد و مقایسه کرد بدون هیچ تابعی! . استادمون گفته یه برنامه بنویسید که بدونه هیچ تابع یا دستور شرطی یک تابع بنویسید که بگه کدام عدد بزرگترع کدام کوچکتر!
سلام
اگر بخوام بزرگتر یا کوچکتر بودن یک عدد رو بدون شرط حساب کنم. از شیفت به راست استفاده می کنم.
نکته: حتی در زبان اسمبلی هم شرط داریم. همهی کارهای برنامه نویسی با شرط ها انجام می شود.
if بررسی می کنه که اگر 0 بود نکنه و اگر یک بود اجرا کنه. پس اگر استفاده نکنیم باید اگر رو از جمله حذف کنیم. که میشه 0 بود نکنه و 1 بود اجرا کنه.
int a = 4; int b = 3;
Console.WriteLine("________number 1 = \nZero means small and one means big");
Console.WriteLine(a >> 2 );
Console.WriteLine("________number 2 = \n");
Console.WriteLine(b >> 2);
Console.ReadLine();
مثلا برای اینکه بدونم 4 بزرگتر از 3 هست هر دو عدد را 2 بار شیفت به راست دادم. بعد دیدم که عدد 4 یک بیت یک اضاف داره. و اینجوری فهمیدم که بزرگتره. ولی 3 هیچ بیتی در آخر نداشت.
از طرف حرکت جوهری (http://substantialmotion.ir/) برنامه نویس فوق حرفه ای (http://substantialmotion.ir/)http://www.forum.98ia.com/images/smilies/2/-2-32-.gif
پس 2 جواب شد. یکی با XOR و یکی هم با SHIFT R(ولی برای اعداد منفی جواب نمیده)
چند تا لینکASCII Code - The extended ASCII table (http://www.ascii-code.com/)
Compute the minimum or maximum of two integers without branching - GeeksforGeeks (http://www.geeksforgeeks.org/compute-the-minimum-or-maximum-max-of-two-integers-without-branching/)
Bit Twiddling Hacks (http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax)
جابجایی دو متغییر بدون استفاده از متغییر کمکی (http://barnamenevis.org/showthread.php?2133-%D8%AC%D8%A7%D8%A8%D8%AC%D8%A7%DB%8C%DB%8C-%D8%AF%D9%88-%D9%85%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%85%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%DA%A9%D9%85%DA%A9%DB%8C)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.