تالار گفتمان مانشت
سوال از خطاها - نسخه‌ی قابل چاپ

صفحه‌ها: ۱ ۲
سوال از خطاها - fulgent - 16 بهمن ۱۳۹۲ ۰۵:۳۳ ب.ظ

سلام
نمیدونم سوال زیر جز سوالهای کامپایلر یا برنامه سازی.... به هر حال ممنون میشم جواب سوال رو بدین:

استفاده از + به جای = در عبارت زیر، در زبان C چه نوع خطایی محسوب می شود؟
;a + b-c


۱) نحوی(زمان کامپایل)
۲) ازمون نوع (زمان اجرا)
۳) معنایی(زمان کامپایل)
۴) منطقی(زمان اجرا)

RE: سوال از خطاها - hosshah - 16 بهمن ۱۳۹۲ ۱۱:۳۳ ب.ظ

به نظرم گزینه ۱ درسته
اگه درست میگم که بگید تا تو همین پست توضیحات رو بنویسم
اگه نه هم که هیچی Undecided

RE: سوال از خطاها - fulgent - 16 بهمن ۱۳۹۲ ۱۱:۳۶ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۱۱:۳۳ ب.ظ)hosshah نوشته شده توسط:  به نظرم گزینه ۱ درسته
اگه درست میگم که بگید تا تو همین پست توضیحات رو بنویسم
اگه نه هم که هیچی Undecided
نظر خودمم روی گزینه یک هست به علت اینکه درخت پارس می تونه متوجه بشه که به جای مساوی به اضافه اومده! اما با توجه به سوال پارسال شک کردم! که اینجا خطای منطقی نیست؟!!

RE: سوال از خطاها - AEM4949 - 16 بهمن ۱۳۹۲ ۱۱:۳۹ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۰۵:۳۳ ب.ظ)fulgent نوشته شده توسط:  سلام
نمیدونم سوال زیر جز سوالهای کامپایلر یا برنامه سازی.... به هر حال ممنون میشم جواب سوال رو بدین:

استفاده از + به جای = در عبارت زیر، در زبان C چه نوع خطایی محسوب می شود؟
;a + b-c


۱) نحوی(زمان کامپایل)
۲) ازمون نوع (زمان اجرا)
۳) معنایی(زمان کامپایل)
۴) منطقی(زمان اجرا)

سوال مربوط ب درس برنامه سازی هست و احتمال زیاد گزینه ۱/

RE: سوال از خطاها - hosshah - 16 بهمن ۱۳۹۲ ۱۱:۴۱ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۱۱:۳۶ ب.ظ)fulgent نوشته شده توسط:  نظر خودمم روی گزینه یک هست به علت اینکه درخت پارس می تونه متوجه بشه که به جای مساوی به اضافه اومده! اما با توجه به سوال پارسال شک کردم! که اینجا خطای منطقی نیست؟!!

Dodgy
البته سوال پارسال رو من از روی تجربه پاسخ دادم که درست بود اما این بر اساس دانشه و اطمینان زیادی نداره Big Grin
برای کجاست این سوال

RE: سوال از خطاها - fulgent - 16 بهمن ۱۳۹۲ ۱۱:۴۵ ب.ظ

اگر همه با گزینه ۱ موافق هستید پس یعنی میشه گفت سوالی هم که پارسال داده بودند در مورد == در شرط If ، اگر در گزینه ها خطای نحوی داشت جواب خطای نحوی می شد؟
اگر بله، یعنی نحوی نتونسته بود این خطا رو بگیره که در زمان اجرا به عنوان خطای منطقی مطرح شد؟
اگر خیر، چرا؟ و چطور این خطای نحوی میشه و اون نمیشه؟
دچار تناقض عجیب غریبی شدم!!!Undecided

RE: سوال از خطاها - hosshah - 16 بهمن ۱۳۹۲ ۱۱:۵۸ ب.ظ

نحوی که قطعا نبود ولی حالا معنایی رو نمیدونم چجور نقض کنم
چون ما میتونیم با استفاده از پارسری که داریم a=b رو هم کاهش بدیم
یعنی این هم یک عبارت مجاز توی زبانمون هست

RE: سوال از خطاها - AEM4949 - 17 بهمن ۱۳۹۲ ۱۲:۰۷ ق.ظ

(۱۶ بهمن ۱۳۹۲ ۱۱:۴۵ ب.ظ)fulgent نوشته شده توسط:  اگر همه با گزینه ۱ موافق هستید پس یعنی میشه گفت سوالی هم که پارسال داده بودند در مورد == در شرط If ، اگر در گزینه ها خطای نحوی داشت جواب خطای نحوی می شد؟
اگر بله، یعنی نحوی نتونسته بود این خطا رو بگیره که در زمان اجرا به عنوان خطای منطقی مطرح شد؟
اگر خیر، چرا؟ و چطور این خطای نحوی میشه و اون نمیشه؟
دچار تناقض عجیب غریبی شدم!!!Undecided

سوال پارسال رو کسایی ک ب برنامه سازی C++ و ساختمان مسلط بودن خیلی راحت می تونستن تشخیص بدن ک خطای منطقی هست.
البته ممکن بود این خطا در سوال پارسال در یک زبان دیگه ک عملگر مساوی مقدار برگشتی نداشت ، خطای معنایی تلقی بشه.

RE: سوال از خطاها - e.shrm - 17 بهمن ۱۳۹۲ ۱۲:۱۰ ق.ظ

این سوال به نظرم ۱ میشه. همون تحلیل خودت به نظرم درسته. اساسا ربطی هم به خطاهای معنایی نداره.
ولی سوالت در مورد = و == قدیما اینجا توضیح داده بودم :
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: سوال از خطاها - hosshah - 17 بهمن ۱۳۹۲ ۱۲:۱۰ ق.ظ

(۱۷ بهمن ۱۳۹۲ ۱۲:۰۷ ق.ظ)AEM4949 نوشته شده توسط:  البته ممکن بود این خطا در سوال پارسال در یک زبان دیگه ک عملگر مساوی مقدار برگشتی نداشت ، خطای نحوی تلقی بشه.

در اون صورت هم من میگم خطا نحوی نبود بلکه خطای مفهومی یا معنایی بود

RE: سوال از خطاها - AEM4949 - 17 بهمن ۱۳۹۲ ۱۲:۱۴ ق.ظ

(۱۷ بهمن ۱۳۹۲ ۱۲:۱۰ ق.ظ)hosshah نوشته شده توسط:  
(17 بهمن ۱۳۹۲ ۱۲:۰۷ ق.ظ)AEM4949 نوشته شده توسط:  البته ممکن بود این خطا در سوال پارسال در یک زبان دیگه ک عملگر مساوی مقدار برگشتی نداشت ، خطای معنایی تلقی بشه.

در اون صورت هم من میگم خطا نحوی نبود بلکه خطای مفهومی یا معنایی بود

مرسی___اشتباه تایپی بود . اصلاح شدSmile

RE: سوال از خطاها - hosshah - 17 بهمن ۱۳۹۲ ۱۲:۱۷ ق.ظ

(۱۷ بهمن ۱۳۹۲ ۱۲:۱۴ ق.ظ)AEM4949 نوشته شده توسط:  مرسی___اشتباه تایپی بود . اصلاح شدSmile

قربون تو Wink

RE: سوال از خطاها - mohammad.ardeshiri - 17 بهمن ۱۳۹۲ ۱۲:۳۷ ق.ظ

من رشتم کامپیوتر نیست ولی امیدوارم کمکتون کرده باشم

خطای syntax اگه کد برنامه به صورت گرامری اشتباه باشه این خطا رو داریم
جا ۳=x+1 بنویسیم ۳+۱+x

خطای logical برنامه اجرا میشه ولی جواب مورد نظر بدست نمیاد یعنی موقعه کامپایل مشخص نیست
جا ۳=x+1 بنویسیم ۳=x*1

خطای run time برنامه کامپایل میشه ولی خطای رخ میده و برنامه متوقف میشه مثله اینکه یه جا تقسم صفر بنویسیم

این خطای که شما میگین Syntax هست خطای معنایی نحوی قاعدی ... گزینه دو جواب میشه

RE: سوال از خطاها - Elena_71 - 17 بهمن ۱۳۹۲ ۰۳:۵۷ ق.ظ

سوال برنامه سازی فصل ۳هست
+ برا زمان کامپایله؛اگر میگفت کامپایل؛ میشد ترجمه اما الان گفته زمان کامپایل ینی موقع پیاده سازی؛میدونیم + برا پیاده سازیه.پس تا اینجا ۲و ۴ حذف ؛بعد چون ساختار برنامه رو عوض کردیم خطای syntax یا همون نحوی میده گزینه ۱درسته

RE: سوال از خطاها - e.shrm - 17 بهمن ۱۳۹۲ ۰۸:۲۰ ق.ظ

در کمال شگفتی الان با یه کتاب چک کردم! گفته عبارت مثلا ;i+j طبق تعریف نحو زبان C یک عبارت درست است. و اساسا این خطای منطقی میشه.
یادم نمیاد تا حالا همچین کدی نوشته باشم ، برلندم باز نشد کدشو بزنم. ولی میگه درسته دیگه!

[تصویر:  247049_81001903554240048336.jpg]

[تصویر:  247049_46260054318761361119.jpg]