PDA

View Full Version : سوال: تعداد ارقام اعشار؟



sarab.mb
چهارشنبه 20 دی 1391, 15:57 عصر
بچه ها ایا میشه بدون استفاده از ارایه تعداد ارقام بعد از ممیز را شمرد؟

sarab.mb
چهارشنبه 20 دی 1391, 15:59 عصر
منظورم با اعمال ریاضی هست مثلا.... در c++

sarab.mb
چهارشنبه 20 دی 1391, 16:03 عصر
لطفا سریعتر جواب بدید.لازم دارم الان:ناراحت:

sarab.mb
چهارشنبه 20 دی 1391, 16:26 عصر
دوستان کسی واقعا نمیدونه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

mahak006
چهارشنبه 20 دی 1391, 16:30 عصر
لطفا سریعتر جواب بدید.لازم دارم الان:ناراحت:
میشه . اما نه به سادگی . باید یه تابع درست کنی که این کار رو انجام بده این تابع باید شامل موارد زیر باشه :
یه حلقه که از صفر میشمره ( شمارندش تعداد ارقام بعد از اعشار رو محاسبه می کنه .
تو هر بار شروع حلقه ، مقدار عدد اعشاریت رو به یه متغیر صحیح می دی ( که در این صورت اعشارش تو متغیر صحیح از دست می ره و فقط خود عدد می مونه . ) بعد دوباره همون مقدار رو از عدد صحیح می گیری و به یه متغیر عدد اعشاری می دی . حالا عدد اعشاری اولیه رو با این عدد اعشاری دومی مقایسه می کنی . اگه برابر بودن ، یعنی رقم اعشاری دیگه نداری و باید از حلقه خارج شی . و اگه برابر نبودن باید عدد اعشاری اولیه رو در ۱۰ ضرب کنی و بریزی تو خودش و شمارنده رو اضافه کنی . اگه شمارندت i اسمش باشه ، قطعه آخر برنامه اینطور می شه .

if ( d1==d2)
isequal=true;
else
{
d1=d1*10;
i++;
}


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

sarab.mb
چهارشنبه 20 دی 1391, 16:38 عصر
نفهمیییییییییدم..
من با توربو c++ مینویسم

sarab.mb
چهارشنبه 20 دی 1391, 17:20 عصر
متشکر واقعا

sarab.mb
چهارشنبه 20 دی 1391, 21:28 عصر
با ارایه چی؟؟؟؟

mahak006
چهارشنبه 20 دی 1391, 23:17 عصر
با ارایه چی؟؟؟؟

چقد زود زود توقع جواب گرفتن داری . بذار دوباره بیام سایت ، پیامتو ببینم . بعد جواب ندادم ، ناراحت شو . با آرایه هم میشه . البته از نوع کارکتر . اون طوری باید عدد اولیه رو تو آرایه کارکتری ( رشته ) بریزی و با یه حلقه بری جلو تا وقتی به کارکتر '\0' برسی ( یعنی شرط پایان حلقت این بشه . ) بعد یه حالتی بذاری که از وقتی کارکتر '.' تو رشته دیده شد ، تا پایان رشته با یه شمارنده تعداد کارکتر ها رو بشمره . آخر عدد شمارنده نشون دهنده تعداد رقم اعشاره .
روش اول این طوره :

int num,i;
double d1,d2;
bool isequal=true;
cin<<d1;
while(!isequal)
{
num=(int)d1;
d2=num;
if(d1==d2)
isequal=true;
else
i++;
}

i می شه تعداد ارقام اعشار . خط ۷ ممکنه تو بعضی کامپایلر های قدیمی شناخته نشده باشه . ولی به احتمال زیاد جواب می ده .
این قطعه برنامه اون چیزی هست که شما می خواید . اما روش کارکتری هم میشه استفاده کرد که از آرایه کارکتری ( رشته ) استفاده کنه . پیاده سازی اون رو توضیح دادم . کد نویسیش با خودتون :)