در اين بخش مي‌توانيد در مباحث مربوط به زبانهاي بر پايه C به بحث بپردازيد
Rookie Poster

Rookie Poster



نماد کاربر
پست ها

44

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

شنبه 10 تیر 1385 11:12

آرشيو سپاس: 11 مرتبه در 4 پست

کسي ميتونه در مورد C کمکي بکنه؟؟؟

توسط sos1846 » شنبه 7 بهمن 1385 17:25

سلام
من یه برنامه تو محیط C نوشتم که قراره 20 تا عدد رو بگیره و چاپ کنه و ترتیب صعودی یا نزولی بودنشو بگه اما وقتی کامپایلش میکنم error میده نمیدونم چکار کنم؟؟؟؟؟؟؟
کسی میتونه error هاشو رفع کنه؟؟

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

Colonel II

Colonel II



no avatar
پست ها

90

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

پنج شنبه 9 شهریور 1385 21:15

آرشيو سپاس: 9 مرتبه در 8 پست

توسط athlon64x2 » شنبه 7 بهمن 1385 18:20

سلام دوست عزيز

برنامه ايرادهاي بسيار اساسي داره  که فراتر از مچ نبودن { .} ها است .

اصلا ساختاري براي دريافت 20 عدد و تبديل انها به int و قرار داده در يک ارايه وجود ندارد و در صورت ديباگ نمودن هم برنامه يک رشته 256 کاراکتري مثلا abnlajdsl;jkad;lsa دريافت ميکند که قرار است با numb[i]=0 to i(line); به 20 عدد تبديل شوند که علاوه بر اينکه چنين شکل دستور در سي غير مجاز است و غلط متد کار نيز درست نيست . وانگهي getline جزو iostream است و template based و در کتابخانه هاي سي که در include ذکر کرده ايد نيست . به تو رفتگي کد و هماهنگ نبودن شروع و پايان بلوک (حتما از يکي از دو روش در تمام کد پيروي کنيد روش ريچي يا استراستراپ) و نبود ساختار توجه نشده و ....

ارادتمند
نعيمي

Rookie Poster

Rookie Poster



نماد کاربر
پست ها

44

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

شنبه 10 تیر 1385 11:12

آرشيو سپاس: 11 مرتبه در 4 پست

توسط sos1846 » شنبه 7 بهمن 1385 19:54

سلام
ممنون که جواب دادي اما چيزي که من از اين سوال ميخام اينه که 20تا کاراکتر از کيبورد ( به صورت random) بگيره بعد اونارو به ترتيب صعودي يا نزولي بودن مرتب کنه.
ميتوني کمکي کني که بتونم run کنم اين برنامه رو؟؟
با تشکر
اونقدر ذهنتو باز کن٬ تا مطمئن بشی که نه چیزی می دونی  نه کسی هستی٬ و هر وقت احساس کردی که کسی شدی٬ وقتشه که برگردي به جمله اول!

Colonel II

Colonel II



no avatar
پست ها

90

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

پنج شنبه 9 شهریور 1385 21:15

آرشيو سپاس: 9 مرتبه در 8 پست

توسط athlon64x2 » شنبه 7 بهمن 1385 23:41

sos1846 نوشته است:سلام
ممنون که جواب دادي اما چيزي که من از اين سوال ميخام اينه که 20تا کاراکتر از کيبورد ( به صورت random) بگيره بعد اونارو به ترتيب صعودي يا نزولي بودن مرتب کنه.
ميتوني کمکي کني که بتونم run کنم اين برنامه رو؟؟
با تشکر


سلام دوست خوبم

اين برنامه C کاري که شما ميخوايد رو انجام ميده البته C هست نه C++ وگرنه خيلي ميشه منظم تر و ساختيافته تر نوشت . سعي کردم طبق الگوي برنامه خودتون باشه اما اگر صرفا ديباگ همون برنامه مد نظرتونه بفرماييد تا ارسال کنم. شرمنده که اديتور اينجا تمام فرمتينگ کد رو بهم ميريزه


کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


ارادتمند
نعيمي

Administrator

Administrator



نماد کاربر
پست ها

15465

تشکر کرده: 10175 مرتبه
تشکر شده: 3917 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

توسط Mahdi1944 » يکشنبه 8 بهمن 1385 00:40

athlon64x2 عزيز
ممنون از اينکه به سوالات دوستان با حوصله پاسخ مي ديد  :D
براي جلوگيري از به ريختن فرمت، کدها رو در تگ code قرار بديد، کدهاي پست شما رو در تگ code قرار دادم
موفق باشيد :razz:
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

Colonel II

Colonel II



no avatar
پست ها

90

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

پنج شنبه 9 شهریور 1385 21:15

آرشيو سپاس: 9 مرتبه در 8 پست

توسط athlon64x2 » يکشنبه 8 بهمن 1385 05:04

Mahdi1944 نوشته است:athlon64x2 عزيز
ممنون از اينکه به سوالات دوستان با حوصله پاسخ مي ديد  :D
براي جلوگيري از به ريختن فرمت، کدها رو در تگ code قرار بديد، کدهاي پست شما رو در تگ code قرار دادم
موفق باشيد :razz:


Mahdi1944
دوست و سرور گرامي

از اينکه محبت کرديد و سورس کد رو مرتب فرموديد بي نهايت سپاسگزارم من متاسفانه از اين قابليت اديتور خبر نداشتم .

ارادتمند
نعيمي

Rookie Poster

Rookie Poster



نماد کاربر
پست ها

44

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

شنبه 10 تیر 1385 11:12

آرشيو سپاس: 11 مرتبه در 4 پست

توسط sos1846 » يکشنبه 8 بهمن 1385 10:12

سلام باز هم ممنون از لطفتون اما اگر محبت کنيد و برنامه رو با همون debug قبلي بنويسيد متشکرم
اونقدر ذهنتو باز کن٬ تا مطمئن بشی که نه چیزی می دونی  نه کسی هستی٬ و هر وقت احساس کردی که کسی شدی٬ وقتشه که برگردي به جمله اول!

Colonel II

Colonel II



no avatar
پست ها

90

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

پنج شنبه 9 شهریور 1385 21:15

آرشيو سپاس: 9 مرتبه در 8 پست

توسط athlon64x2 » يکشنبه 8 بهمن 1385 20:24

sos1846 نوشته است:سلام باز هم ممنون از لطفتون اما اگر محبت کنيد و برنامه رو با همون debug قبلي بنويسيد متشکرم


سلام دوست گلم

اگر ديباگ کد اولتون مد نظر شماست همونطور که در پست اول گفتم بايد چند اشکال اساسي رو برطرف کنيد که البته فراتر از تغيير چند کلمست . من اينکارو انجام دادم ولي بازهم خيلي با نسخه شما فرق ميکنه که فکر ميکنم مد نظر شما نيست .  يک خط باقيمانده هم بايد به سي تبديل بشه . به نظر سورس برنامه به زبان ديگه اي است (احتمالا بيسيک) و قصد شما تبديل خط به خط به معادلش هست ولي درست انجام نشده. بخش ورود اطلاعات نقص فراواني داره و سورت در يکي از جهاتها پياده سازي نشده .

ميبينيد که صرفا ديباگ ساده نيست. اگر خواستيد نعييرت رو اعمال کنيد و سپس گد رو ارسال کنيد يا دست من رو براي اعمال تغييرات مورد نظر باز بگذاريد

ارادتمند
نعيمي

Colonel II

Colonel II



no avatar
پست ها

90

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

پنج شنبه 9 شهریور 1385 21:15

آرشيو سپاس: 9 مرتبه در 8 پست

توسط athlon64x2 » دوشنبه 9 بهمن 1385 02:51

سلام

دوست عزيز اين ديگه حداقل تغييري است که ميشه در کد شما داد .

1. توجه کنيد که getline جزو iostream است و نيازمند c++ structured error handling که با منظور شما که برنامه C باشد مغايرت دارد.
2. فرموديد هدف شما دريافت 20 کاراکتر و نمايش مرتب آنهاست . در لوپ اول 20 بار رشته اي بطول 256 کاراکتر قابل تايپ شدن بود در صورتيکه اصلا نيازي به آرايه کاراکتر نيست و خود کاراکترها در زمان دريافت ميتوانند در ارايه int ذخيره شوند در سي برخلاف بيسيک کاراکتر يک بايت است يعني عدد است و اصلا نيازي به تبديل ندارد. اگر اصرار به دريافت رشته کارکتر داريد الزامي براي جلوگيري از buffer overflow خطر بايد مشابه سورس کدي که پيشتر فرستادم اقدام کنيد (در انجا سعي کردم الگوي شما رو حفظ کنم) که البته در کد نويسي تفاوت بسياري با کد اول شما خواهد کرد که مطابق خواست شما نبود.
3. گرفتن يک کاراکتر از ارايه 256 کاراکتري و ذخير کد اسکي که قاعدتا بايد اولين کاراکتر ميبوده اشتباه بود numb[i]=0 to i(line);
4. بجاي کاراکتر در انتهاي کار کد اسکي رو نشون ميداد
5. ضرورتي به الزام کاربر به تايپ کامل عبارت decreasing براي سورت معکوس چندان منطقي نبود (باگ نيست البته)
6. برنامه همانند بيسيک اجرايي خطي يا linear دارد که البته طبق فرمايش شما حفظ شد ولي همانطور که قبلا گفتم با اين رويه موافق نيستم چراکه سي زباني procedural است .
7. هنوز هم کاراکترها رو با فاصله يک tab پرينت ميکنه که کمي ناخواناست (با توجه به سورت شدن) بهتره زير هم و پياپي باشن  که البته بازهم تصميم با شماست.


کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


ارادتمند
نعيمي

Major II

Major II



نماد کاربر
پست ها

258

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

پنج شنبه 29 تیر 1385 03:36

محل سکونت

دانشگاه

آرشيو سپاس: 25 مرتبه در 22 پست

توسط borhan » جمعه 13 بهمن 1385 03:38

سلام
من میخوام یه برنامه بنویسم که درخت B رو پیاده سازی کنه،تو پیاده سازیشم عملیات لازم روش انجام بده،از جمله حذف،اضافه،جستجو و پیمایش..
ضمنا اطلاعات رو از رو فایل بخونه...
اگه شما کدی با این رابطه دارین یا پیشنهادی برا من دارین ازتون میخوام منو راهنماییم کنین .. :(
زود ازدواج کردن اشتباهه،ولي دير ازدواج کردن اشتباهي بزرگتر..

Colonel II

Colonel II



no avatar
پست ها

90

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

پنج شنبه 9 شهریور 1385 21:15

آرشيو سپاس: 9 مرتبه در 8 پست

توسط athlon64x2 » جمعه 13 بهمن 1385 03:56

borhan نوشته است:سلام
من میخوام یه برنامه بنویسم که درخت B رو پیاده سازی کنه،تو پیاده سازیشم عملیات لازم روش انجام بده،از جمله حذف،اضافه،جستجو و پیمایش..
ضمنا اطلاعات رو از رو فایل بخونه...
اگه شما کدی با این رابطه دارین یا پیشنهادی برا من دارین ازتون میخوام منو راهنماییم کنین .. :(


سلام دوست گرامي و عزيز

در مورد کد ميتونين سايت زير رو ببينين که پياده سازي خوب و مناسبي از b-tree به زبان c++ داره و از کتابخانه خاصي استفاده نکرده و اصلاحا پياده سازي pure  هست که براي يادگيري عاليه.
http://textelectric.net/btree.html

اين سايت هم اطلاعات خوبي در مورد مشخصات و بهينه سازي داره البته سورس کد به سي++ نيست
http://www.semaphorecorp.com/btp/btp.html

در مورد پيشنهاد هم واقعا بسته به تبحر شما در کتابخانه هاي مختلف داره . 6 يا 7 کتابخانه سي و سي++ ميتونيد پيدا کنيد که پياده سازي استاندارد لينک ليست ها و tree ها و ... رو داشته باشن . مثلا من stl رو با اينکه خيلي انتزاعي تر بوده و فاقد tree هاست اما بخاطر ساختار استثنايي کلاس هاش به همه ترجيح ميدم و مثلا اگر بخوام btree درست کنم از mao يا با اکستند کردن iterator اون استفاده ميکنم.

براي خوندن از فايل هم  بهتره از fstream استفاده کنيد  ولي با c buffered هم کاملا امکانپذيره و مشکلي پيش نمياد چرا که با stdio , stout سر و کارندارين و فايل پويتنر جديد ميسازين اما در يک روتين دو روش رو مخلوط نکنيد . اگر به سمت stl رفتين به شدت fstream توصيه ميشه چرا که خيلي راحت stl براتون alloc/destroy رو انجام ميده و نيازي به مديريت حافظه نخواهيد داست .

ارادتمند
نعيمي


 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان