PDA

View Full Version : سوال: ‌برنامه پرتاب تاس



samira69
شنبه 07 آذر 1388, 01:01 صبح
فرض كنيد كه دو تاس داريم هم زمان پرتابشان ميكنيم. برنامه اي بنويسيد كه تابع ()start را فراخواني كند و اين تابع را با استفاده از بازگشت(بدون حلقه تكرار) تاس ها را تا زماني كه هر دو باهم 6 بياند چاپ كند.
يكي از دوستان تابع زير رو نوشته بودن ولي error داره



void Start(int tas1, int tas2)
{
if( tas1==6 && tas2==6 ) {
cout<<"برابر";
return;
}
Start(random(6)+1, random(6)+1);
}

max_15s
شنبه 07 آذر 1388, 09:49 صبح
من چک کردم ، مشکلی نداشت ، چیزی نداره که ایرور بده
هدر stdlib رو اضافه کردید؟

این فایل رو ببینید

samira69
شنبه 07 آذر 1388, 10:50 صبح
من چک کردم ، مشکلی نداشت ، چیزی نداره که ایرور بده
هدر stdlib رو اضافه کردید؟

این فایل رو ببینید

ممنون از لطفتون
فقط ميشه اين قسمتش رو توضيح بديد:
Start(random(6)+1, random(6)+1);
با تشكر

max_15s
شنبه 07 آذر 1388, 18:47 عصر
random تابعیه که دو یک عدد رندم تولید می کنه و در stdlib قرار داره ، در اینجا هم به عنوان انداختن تاس که یک عمل تصادفیه استفاده می شه

random(6)+1 تابع رندم 6 یک عدد تصادفی بین صفر و کمتر از 6 تولید می کنه که وقتی با یک جمع بشه یک عدد به صورت تصادفی از یک تا 6 خواهیم داشت

http://barnamenevis.org/forum/showthread.php?t=192350

samira69
شنبه 07 آذر 1388, 20:47 عصر
random تابعیه که دو یک عدد رندم تولید می کنه و در stdlib قرار داره ، در اینجا هم به عنوان انداختن تاس که یک عمل تصادفیه استفاده می شه

random(6)+1 تابع رندم 6 یک عدد تصادفی بین صفر و کمتر از 6 تولید می کنه که وقتی با یک جمع بشه یک عدد به صورت تصادفی از یک تا 6 خواهیم داشت

http://barnamenevis.org/forum/showthread.php?t=192350

شرمنده كه دوباره مزاحم شدم :خجالت:
اين برنامه در هر بار اجرا همون اعداد تصادفي قبلي رو توليد ميكنه!
فكر كنم بايد از تابع ()srand و تابع ()time استفاده كنيم تا در هر بار اجرا اعداد مختلفي رو نمايش بده!
ولي خودم نتونستم جورش كنم
ممنون ميشم كمكم كنين
با تشكر

max_15s
یک شنبه 08 آذر 1388, 09:11 صبح
مشکل کجاست ؟
هدر tmie.h رو اضافه کنید و برای مقدار دهی srand با زمان کنونی سیستم به صورت زیر عمل کنید

srand (time (0));

اگه اول جستجو کنید خیلی راحت تره