تور لحظه آخری
امروز : پنجشنبه ، 17 آبان 1403    احادیث و روایات:  امام صادق (ع):سنگهاى زیربناى اسلام سه چیز است: نماز، زکات و ولایت که هیچ یک از آنها بدون دیگرى درست ...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

 






آمار وبسایت

 تعداد کل بازدیدها : 1826749899




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

اشکال این برنامه کجاست؟


واضح آرشیو وب فارسی:سایت ریسک: singleguy15-03-2009, 11:37 AMمن میخوام با c++یه برنامه بنویسم که 6جمله ی اول دونباله زیر را برام حساب کنه 1+1/2+1/4+1/8+1/16+... من برنامه ی زیر را نوشتم ولی خروجی را 111111میبینم در صورتی که باید1.96875باشه میشه بگید اشکال از کجاست؟ #include <iostream.h> #include <conio.h> #define N 6 main(){ int i,x; float sum=0; for(i=1,x=1;i<=N;x*=2,i++){ sum+=1/x; cout<<sum; } getch(); return 0; } bestirani215-03-2009, 03:11 PMدو تا اشكال دارد: 1.هنگام استفاده از عملگرد تقسيم،در صورتي كه از دو مقدار صحيح استفاده كنيد،جواب را هم به صورت صحيح مي‌دهد.چون شما در اين تمرين با اعشار سر و كار داريد به جاي 1 بايد بگذاريد 0.1 2.cout را بايد از حلقه خارج كنيد.چون فقط يك بار نتيجه مجموع را مي‌خواهيد. كه كدتون در نهايت ميشه: #include <iostream.h> #include <conio.h> main(){ int i,x,n; float sum=0; cin >>n; for(i=1,x=1;i<=n;x*=2,i++){ sum+=1.0/x; } cout<<sum; getch(); return 0; } singleguy17-03-2009, 04:39 PMسلام این برنامه ای هست که اعداد را معکوس میکنه ولی نمیدونم چرا برای اعداد شش رقم به بالا جواب درستی نمیده مثلا اگه 123456 به برنامه داده بشه جواب اینه: -6-1-6-7 اشکال کجاست؟ #include <iostream.h> #include <conio.h>main() main() { int digit,num; clrscr(); while(1){ cout<<" enter number:"; cin>>num; cout<<"inverse is:"; do{ digit=num%10; cout<<digit; num/=10; } while(num!=0); } } _ermia17-03-2009, 06:04 PMبرنامتون که هیچ اشکالی نداره و درست کار میکنه ببینید من هم با اعداد زیر 6 رقم امتحان کردم و هم 6 رقمی و هم بالای 6 رقم http://i39.tinypic.com/34pnfyr.jpg فقط 2 تا اشکال کوچولو داره (وگرنه از نظر منطقی هیچ ایرادی نداره): 1) یدونه کلمه main زیادی گذاشته بودید که البته تاثیری تو برنامه نداره اما خوب باید رعایت بشه. 2) دستور while(1) ای که دادین باعث میشه مدام از کاربر عدد بخواد، باید یه راهیم بذارید برای خارج شدن مثلا این طوری: http://i43.tinypic.com/t5odpf.jpg که کدش میشه این: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! bestirani218-03-2009, 03:33 PMسلام این برنامه ای هست که اعداد را معکوس میکنه ولی نمیدونم چرا برای اعداد شش رقم به بالا جواب درستی نمیده مثلا اگه 123456 به برنامه داده بشه جواب اینه: -6-1-6-7 اشکال کجاست؟ #include <iostream.h> #include <conio.h>main() main() { int digit,num; clrscr(); while(1){ cout<<" enter number:"; cin>>num; cout<<"inverse is:"; do{ digit=num%10; cout<<digit; num/=10; } while(num!=0); } } اين مشكل به خاطر محدوديت نوع int هست،كه البته به كامپايلرت هم ربط داره توي نسخه هاي قديم c++ كه از نظر برنامه اي شبيه همون c هست 2 بايت به int‌تعلق ميگيره كه البته تو نسخه هاي جديد كامپايلر ها 1 كلمه به اون ميدن. خلاصه براي رفع اين مشكل به جاي int از long استفاده كن و اگر هم اعداد منفي نميگيري unsigned long بگذار به اين ترتيب ميتوني تا 4294967295 رو وارد كني در حالي كه با int تنها ميتونستي تا 32767 را وارد كني. اگر باز ميخواي عدد بزرگتر بگيري نياز به كد نويسي هست و بايد يك نوع داده خودت بسازي كه اعداد بزرگتر رو در بر داشته باشه كه من كدش رو نميگذارم تا خودت روش فكر كني و اگه نتونستي برات بدم به عنوان راهنمايي هم بگم كه long تا 4 بايت ميتونه ذخيره كنه حال اگر عدد بزرگتري بدي،4 بايت كم ارزشتر حساب ميشه. bestirani218-03-2009, 03:36 PMبرنامتون که هیچ اشکالی نداره و درست کار میکنه ببینید من هم با اعداد زیر 6 رقم امتحان کردم و هم 6 رقمی و هم بالای 6 رقم http://i39.tinypic.com/34pnfyr.jpg فقط 2 تا اشکال کوچولو داره (وگرنه از نظر منطقی هیچ ایرادی نداره): 1) یدونه کلمه main زیادی گذاشته بودید که البته تاثیری تو برنامه نداره اما خوب باید رعایت بشه. 2) دستور while(1) ای که دادین باعث میشه مدام از کاربر عدد بخواد، باید یه راهیم بذارید برای خارج شدن مثلا این طوری: http://i43.tinypic.com/t5odpf.jpg که کدش میشه این: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! كامپايلري كه شما استفاده ميكنيد كامپايلر استاندارد c++ هست كه توي اين كامپايلر int تا 2147483647 مقدار دهي ميشه حال اگه عدد بزرگتري بدي به مشكل بر ميخوريد. bestirani218-03-2009, 03:37 PMيك پيشنهاد اين تاپيك رو مهم كنيد مخصوص رفع اشكال برنامه ها تا هر كي برنامه اي مينويسه كه مشكل داره بياد اينجا بگه. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 251]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن