نگهداري عدد n رقمي

miladmovie

Active Member
براي نگهدلري عدد n رقمي با استفاده از آرايه ها شما چه پيشنهادي مي دهيد
 

Majid

مدیر سایت
عضو کادر مدیریت
سلام
آقا ميشه يك توضيحي بدي كه دقيقا چطوري ميخواي باشه؟!



مجيد
 

ImanYari

Member
سلام
اول مرسي از اينكه اين انجمن راه افتاد (براي مجيد!)
دوم
براي نگهداري يك عدد n رقمي بايد شما معني چند رقمي بودن رو براي برنامه شبيه سازي كنين
البته اگر بخواين از اين عدد استفاده كنين (مثلا جمع و ضرب و...)
اگر دقيقا مورد سوال رو بگين بهتر ميتونم راهنمايي كنم

ايمان
 

miladmovie

Active Member
سلام
ممنون از اينكه جواب داديد

آقا قرار است من يك ماشين حساب با C بنويسم كه بتونه عمليات هاي را براي عداد n رقمي انجام بده حالا از اون جايي كه هر نوع اطلاعات توانايي يك حداكثر رقم رو داره(مثل integer) من بايد بتونم اين رقم رو طوري ذخيره كنم.
 

ImanYari

Member
سلام

حقيقتش من با C كار نكردم
ولي با پاسكال و VB برنامه نوشتم
ما قبلا داخل پاسكال براي اينكار از pointer استفاده ميكرديم كه ميشه گفت يه جور آرايه هستش كه ميشه در طول برنامه كم و زيادش كرد (اين همون چيزيه كه آقا مجيد گفتش)
ولي فكر نميكنم مشكل شما اين باشه!
در واقع شما روشي ميخواين كه بشه باهاش عدد رو در آرايه ذخيره كرد و بعد ازش استفاده كنين
براي ذخيره كردنش بايد بگم اول بايد عددتون رو رقم به رقم جدا كنيد و در آرايه قرار بدين
بعد هر وقت خواستين ازش استفاده كنين بايد عدد داخل هر خونه از آرايه رو در 10 به توان شماره اون خونه ضرب كنين و بعد عددهاي به دست امده رو با هم جمع كنين
مثل اين:
a(0)=5 , a(1)=7 , a(2)=3
(5*10^0) + (7*10^1) + (3*10^2) (قابل توجه آقا مجيد: اينو در حالت انگليسي نوشتم ولي از راست به چپ نوشت!!)
به هر حال جواب ميشه: 375
درواقع شما در اينجا يكان و دهگان و صدگان و... رو براي برنامه تعريف كردين

اگه باز سوالي دارين بپرسين

ايمان
 

miladmovie

Active Member
سلام


آقا ايمان شما در بالا مثلي زديد كه جواب اون 375 بود ولي اگر جواب حاصل مثلا 1000000000000 بود آيا اون موقع هم مي شد اين كار روكرد؟
 

ImanYari

Member
سلام

از سوالت ممنونم ( مثل معلمها جواب دادم!!!) :lol:
خوب در مورد عددهاي بزرگ بايد با رشته ها به صورت مجازي كار كرد
يعني شما چند تا تابع براي جمع و ضرب و تقسيم و... مينويسيد كه عددها رو حساب كنن و در آرايه ذخيره كنن ( خود متغير رشته اي string به صورت يك آرايه عمل ميكنه)
در اون صورت شما به جاي اينكه عددها رو با هم جمع كنين اول اونها رو به رشته تبديل ميكنين و بعد به هم ميچسبونين!
يه چيزي مثل اين:
strDigit=str(3*10^0)+str(8*10^1)+str(6*10^2)+....+str(m*10^n) 0
اينجوري ديگه مشكل تعداد ارقام رو نداريم
(صفر اول خط براي چپ به راست بودن متن ميباشد و هيچگونه ارزش ديگري ندارد!!)

ايمان
 

ImanYari

Member
ببخشيد يادم رفت يه اشتباه كردم!!! :oops:

براي ذخيره عدد در رشته نبايد رقمها رو به توان برسونيم!!!!
فقط بايد اونها رو كنار هم بچينيم
مثلا 1382 ميشه:
a(0)=1 , a(1)=3 , a(2)=8 , a(3)=2
strDigit=str(a(0))+str(a(1))+str(a(2))+str(a3)) ...0
 

miladmovie

Active Member
سلام

آقا از اونجاي كه درست كردن ماشين حساب n رقمي پروژه من بود و من هم بايد اون رو مي نوشتم خب من هم اون رو نوشتم

هر كس مي خواهد مي تونه اون رو از آدرس زير بگيره

فقط چند مطلب
1:همون قوانين كپي رايت
2:اينكه اين ماشين حساب تا 20 رقم مي تونه حساب كنه اگر خودتون خواستيد مي تونيد بيشترش كنيد
3:در تابع گرافيك(آخرهاي برنامه) شما بايد بر اساس آدرسي كه برنامه C قرار داره يك دستكاري بكنيد
کد:
 initgraph(&driver,&mode,"d:\\tc\\bgi");
كه به جاي d درايو اون رو عوض كنيد

http://www.searchestan.com/download/CALCULATOR.CPP
 

جدیدترین ارسال ها

بالا