ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2011/07/01
    230
    104

    اشتباه در طراحی زبان C

    با سلام
    اشتباهی در طراحی زبان C وجود داره که هر از چندی با اون مواجه میشم و کلی من رو سر کار میزاره
    این اشتباه مربوط به اولویت اعمال ریاضی و منطقی در این زبان هست و از نظر اینکه من سریع برنامه نویسی میکنم گاهی این مسئله رو فراموش میکنم یا دقت کافی بخرج نمیدم. در اینجا بد نیست شما رو به چالش دعوت کنم تا ببینم شما هم با چنین اشتباهی مواجه شدید یا خیر یا در این باره کمی بررسی کنید.
  2. #2
    2016/11/21
    62
    65

    پاسخ : اشتباه در طراحی زبان C

    با سلام دوست من
    زبان سی از عملگرها ، دستورات و توابع تشیکل شده.
    در مورد عمگرها و اولویت عملگر ها باید به مستندات زبان سی مراجعه کنید.

    ذکر این نکته ضروری است که علاوه بر اولویت در عملگرها اطلاع از چپ مقدار یا راست مقدار بودن عملگرها نیز مهم است.

    راه حل : برای کاهش اشتباهات و بالا بردن وضوح برنامه از پرانتز استفاده کنید،
    ویرایش توسط Esmail.dadkhah : 2017/01/26 در ساعت 12:34
  3. #3
    2011/07/01
    230
    104

    پاسخ : اشتباه در طراحی زبان C

    دوست گرامی ممنون از بابت جدولی که گذاشتید
    فکر کنم پرسش من رو درست متوجه نشدید، من یک اشتباه در اولویت های زبان C پیدا کردم. که از نظر منطقی نباید اینطور باشه میخواستم ببینم دوست دیگری هم با این اشتباه روبرو شده یا خیر. برای راهنمایی اشاره کنم که این اشتباه در دستور if خودش رو نشون میده.
  4. #4
    2016/11/21
    62
    65

    پاسخ : اشتباه در طراحی زبان C

    نقل قول نوشته اصلی توسط Davood Kheradmand

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    دوست گرامی ممنون از بابت جدولی که گذاشتید
    فکر کنم پرسش من رو درست متوجه نشدید، من یک اشتباه در اولویت های زبان C پیدا کردم. که از نظر منطقی نباید اینطور باشه میخواستم ببینم دوست دیگری هم با این اشتباه روبرو شده یا خیر. برای راهنمایی اشاره کنم که این اشتباه در دستور if خودش رو نشون میده.
    لطفا کد قرار بدید .
    درمورد شرط ها ، اشتباه عملگر = به جایی == یا عمگرها مقایسه ای ≥•≤ که با درک چپ مقدار بودن و راست مقدار بودن عملگرها بر طرف شد.
  5. #5
    2011/07/01
    230
    104

    پاسخ : اشتباه در طراحی زبان C

    اون که = بجای == گذاشته بشه اشتباه برنامه نویس هست
    بهتر هست که خودم توضیح بدم
    یک مثال میزنم
    if ( i*6<17) doSomething();//ok
    if( i*2 == 12) doSomething();//ok
    if( i&7 == 3) doSomething();//not ok
    در مثال اول مشکلی نیست
    در مثال دوم هم همینطور
    اما در مثال سوم آی هر مقداری داشته باشه شرط غلطه . ببینید ما یک شرط داریم که یک مقایسه در اون انجام میشه و دو طرف مورد مقایسه با علامت == یا =! با هم مقایسه میشن اما در اینجا ابتدا میاد مقایسه میکنه که 7 مساوی 3 هست یا خیر بعد نتیجه رو با آی اند میکنه!
    در زبان C اولویت لاجیکال اند یا لاجیکال اور پایین تر از مقایسه هست. و این بنظر من اشتباه هست
    البته این مشکل رو با پرانتز حل میکنم اما گاهی عبارتهای شرطهام خیلی بزرگ یا زیاد میشه و گذاشتن این همه پرانتز برنامه رو شلوغ میکنه و چیز جالبی نیست
  6. #6
    2016/11/21
    62
    65

    پاسخ : اشتباه در طراحی زبان C

    این موضوع خیلی جالبه
    از طرفی شما اصول مهندسی نرم افزا را رعایت نمی کنید.
    مهندسی نرم افزار بر خوانا بودن برنامه تاکید داره ، که استفاده از پرانتز کار خوبیه.
    و یک اصل در برنامه نویسی هست که می گه اگر دستوری نوشتید که در یک خط جا نشد یعنی برنامه شما از لحاظ مهندسی نرم افزار مشکل دارد ( دایتل - دایتل )

    این موضوع را با شک عرض می کنم ،( ته زهنم یه چیزی هست امیدوارم درست باشه )
    در برنامه نویسی سی شرط ها نهایتا به درست و غلط یا صفر یا یک تبدیل می شود
    مثال در حلقه بینهایت از while(1). استفاده می کنیم.
    وقتی از عملگر برابری استفاده می کنیم در صورت برابری عدد یک را بر می گردونه و if(1) اجرا می شه و در صورت اشتباه بودن شرط if(0) می شود و شرط اجرا نمی شود.
    در نهایت سبک برنامه نویسی شما ساختار یافته نیست . هر چند سرعت برنامه نویسی شما نسبت به یک برنامه نویس ساختاریافته بالاتر است ولی به مشکلات عجیب اینچنینی برخورد می کنید.
    ویژگی های برنامه نوسی ساختار نیافته
    سرعت برنامه نویسی بالا
    اشکال یابی و خطا یابی سخت
    بروزرسانی وقت گیر ( گاهی باید مقدار. قابل توجهی از کد ها را تغییر داد)
    قابلیت استفاده مجدد از کدها نیست
    ویژگی برنامه نویسی ساختاریافته :
    سرعت برنامه نوسی کند
    اشکال یابی و خطا یابی سریع
    بروزرسانی و ارتقای کد سریع
    قابلیت استفاده از کد ها وجود دارد.
  7. #7
    2011/07/01
    230
    104

    پاسخ : اشتباه در طراحی زبان C

    نقل قول نوشته اصلی توسط Esmail.dadkhah

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    این موضوع خیلی جالبه
    از طرفی شما اصول مهندسی نرم افزا را رعایت نمی کنید.
    مهندسی نرم افزار بر خوانا بودن برنامه تاکید داره ، که استفاده از پرانتز کار خوبیه.
    و یک اصل در برنامه نویسی هست که می گه اگر دستوری نوشتید که در یک خط جا نشد یعنی برنامه شما از لحاظ مهندسی نرم افزار مشکل دارد ( دایتل - دایتل )

    این موضوع را با شک عرض می کنم ،( ته زهنم یه چیزی هست امیدوارم درست باشه )
    در برنامه نویسی سی شرط ها نهایتا به درست و غلط یا صفر یا یک تبدیل می شود
    مثال در حلقه بینهایت از while(1). استفاده می کنیم.
    وقتی از عملگر برابری استفاده می کنیم در صورت برابری عدد یک را بر می گردونه و if(1) اجرا می شه و در صورت اشتباه بودن شرط if(0) می شود و شرط اجرا نمی شود.
    در نهایت سبک برنامه نویسی شما ساختار یافته نیست . هر چند سرعت برنامه نویسی شما نسبت به یک برنامه نویس ساختاریافته بالاتر است ولی به مشکلات عجیب اینچنینی برخورد می کنید.
    ویژگی های برنامه نوسی ساختار نیافته
    سرعت برنامه نویسی بالا
    اشکال یابی و خطا یابی سخت
    بروزرسانی وقت گیر ( گاهی باید مقدار. قابل توجهی از کد ها را تغییر داد)
    قابلیت استفاده مجدد از کدها نیست
    ویژگی برنامه نویسی ساختاریافته :
    سرعت برنامه نوسی کند
    اشکال یابی و خطا یابی سریع
    بروزرسانی و ارتقای کد سریع
    قابلیت استفاده از کد ها وجود دارد.
    جناب دادخواه عزیز
    شما از همون اول نوشته های من رو درست نخوندید
    من چند بار توضیح دادم اما هنوز تو باغ نیستید
    من متوجه نمیشم که این نوشته های متناقض شما مربوط به صحبت های من هست یا اشتباهی برای کس دیگری به اشتباه در اینجا قرار دادید.
    اگر برای من نوشتید باید خودتون اطلاعات خوبی نسبت به علم کامپیوتر و برنامه نویسی داشته باشید
    ببخشید اینجوری میگم اما من نوشته های شما رو در باره ی کامپایلر بسکام خوندم با توجه به اظهار نظراتی که داشتید پیشنهاد میکنم در این جور موارد با احتیاط بیشتری برای بقیه راه کار نشون بدید یا در باره کارشون نظر بدید. بخصوص وقتی که بحث سر این چیزا نیست.
    افراد با تجربه ای در این فوروم حضور داشتن و من دوست داشتم اونها هم در این بحث مشارکت میکردن اما کسی نیومد نظری بده
    برای همین من با یک توضیح تکمیلی مطلب رو بپایان میبرم
    اولویت در زبان C بصورت جدول زیر هست:

    1 () [] -> . :: Function call, scope, array/member access
    2 ! ~ - + * & sizeof type cast ++ -- (most) unary operators, sizeof and type casts (right to left)
    3 * / % MOD Multiplication, division,

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    4 + - Addition and subtraction
    5 << >> Bitwise shift left and right
    6 < <= > >= Comparisons: less-than, ...
    7 == != Comparisons: equal and not equal
    8 & Bitwise AND
    9 ^ Bitwise exclusive OR (XOR)
    10 | Bitwise inclusive (normal) OR
    11 && Logical AND
    12 || Logical OR
    13 ? : Conditional expression (ternary)
    14 = += -= *= /= %= &= |= ^= <<= >>= Assignment operators (right to left)
    15 ,

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    من اگر طراح زبان C بودم ایتمهای 6 و 7 رو در بین آیتمهای 10 و 11 قرار میدادم
    به عبارت دیگه اولویت بالاتر برای بیت وایز اند - اکس اور-اور بعد اپراتورهای مقایسه کننده و بعد لاجیکال اند و لاجیکال اور(در اولویت پایین تر)
  8. #8
    2016/11/21
    62
    65

    پاسخ : اشتباه در طراحی زبان C

    عذرخواهی می کنم که کاربر ساده هستم و فقط ده سال تجربه برنامه نویسی دارم.
    من فقط سه تا شرط شما بررسی کردم.
    بیشتر منظورم این بود که مشکل از زبان c نیست و مشکل از سبک برنامه نویسی شماست.
    واقعا شرمنده با نوشته هام باعث ناراحتی شما شدم.
    در نهایت با یه خداحافظی خوشحالتون می کنم .
نمایش نتایج: از 1 به 8 از 8

موضوعات مشابه

  1. طراحی و پیاده سازی فیلتر IIR توسط زبان VHDL
    توسط mohsen_k.nazar در انجمن پردازش سيگنال و هوش محاسباتي
    پاسخ: 4
    آخرين نوشته: 2017/01/21, 11:39
  2. اشتباه در اتصالات PCB
    توسط Alireza-Filter در انجمن مدار چاپی (PCB)
    پاسخ: 6
    آخرين نوشته: 2016/02/17, 15:34
  3. طراحی فیبر مدار چاپی PCB به زبان ساده
    توسط SHAHRYAR52 در انجمن مدار چاپی (PCB)
    پاسخ: 4
    آخرين نوشته: 2011/06/07, 17:56
  4. طراحی ولت متر به زبان بیسیک برای atmega8-16
    توسط hosein-eghbali در انجمن میکروکنترلرهای AVR
    پاسخ: 10
    آخرين نوشته: 2009/03/13, 08:18
  5. پاسخ: 2
    آخرين نوشته: 2007/12/06, 22:47

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •