صفحه شخصی مهدی هاشمی نژاد

پاسخ سوالات پایان ترم درس برنامه سازی پیشرفته

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

ضمنا لازم به ذکر هست که من واقعا از دیدن این سوالات شرمنده شدم! البته منظورم اصلا اشتباهات خیلی زیاد موجود در سوالات نیست! مساله اینجاست که خیلی از سوالات فقط به منظور گیج کردن شما طراحی شده بودند و در بعضی موارد طراح سوال اونقدر سرگرم پیچیده کردن صورت سوال بوده که ظاهرا فراموش کرده که هدف اصلی این درس آموزش برنامه نویسی بوده و نه تست حوصله و همچنین هوش دانشجویان! به هر حال من (با اینکه هیچ نقشی در این موضوع نداشته ام)  به سهم خودم از این بابت از شما عذرخواهی میکنم و امیدوارم با دیدن این سوالات فکر نکنید که هدف نهایی این درس این بوده که بتونید به این سوالات پاسخ بدهید! هدف از این درس یادگرفتن برنامه نویسی و شئ گرایی بوده که امیدوارم به این هدف رسیده باشید!

در ادامه پاسخ سوالات رو آورده ام. گزینه های داده شده، برای سری یک سوالات (سوالات آپلود شده در این آدرس) است.

  1. گزینه 3
  2. گزینه 3
  3. گزینه 3 (به علت عدم وجود ; در انتهای تعریف enum همه قطعه کدها غلط هستند)
  4. گزینه 1 (عبارت float اشتباها به صورت Float نوشته شده)
  5. گزینه 4 (عبارت y:: به معنای y در حوزه global هست که در اینجا چنین متغیری وجود ندارد. بنابراین استفاده از این متغییر در خطا 12 اشتباه است و سوال غلط است و البته برنامه خطای کامپایل هم دارد. البته اگر فراموش کردن علامت { در انتهای تابع main را در نظر نگیریم.)
  6. هیچ کدام (جواب درست عدد 12 است)
  7. گزینه 3 (عدد 1- در آخر خروجی هیچ وقت چاپ نمی شود و در نتیجه همه گزینه ها غلط هستند)
  8. گزینه 3 (عدد 8 در انتهای خروجی هیچ وقت چاپ نمی شود و در نتیجه همه گزینه ها غلط هستند)
  9. گزینه 2
  10. گزینه 1 (جواب با این فرض داده شده که تابع test تعریف شده در بالا همان تابع f فراخوانی شده در پایین باشد و ضمنا مقدار & که به عنوان آرگومان به تابع ارسال شده حذف شود و طبیعتا در انتهای تابع main هم علامت { گذاشته شود!)
  11. گزینه 4
  12. گزینه 7 گزینه 3
  13. گزینه 2
  14. گزینه 4 (عبارت int اشتباها به صورت in نوشته شده)
  15. گزینه 1 (عبارت short اشتباها به صورت shor نوشته شده)
  16. گزینه 2
  17. گزینه 4 (از بین 3 مورد داده شده، مورد 2 نادرست است. با فرض اینکه مورد 4 که در صورت سوال نیست نادرست بوده، میتوان گزینه 4 را انتخاب کرد!)
  18. گزینه 4
  19. گزینه 1 یا 3 (مطمئن نیستم که فاصله بین کارکترها در رشته عمدی است یا اشتباه تایپی! اگر بین کارکترهای رشته یک علامت فاصله در نظر بگیریم، گزینه 1 صحیح است و در غیر اینصورت گزینه 3 صحیح خواهد بود. البته همانطور که مشخص است، در ++C علامت رشته کارکتر " است که در اینجا اشتباها علامت کارکتر بجای آن قرار گرفته)
  20. گزینه 3 (متغییر x در گزینه 2 اصلا در صورت سوال تعریف نشده ولی گزینه 3 در هر صورت نمیتواند استفاده شود)
  21. هیچ کدام (صورت سوال ناقص است و قادر به تشخیص جواب احتمالی نیستم)
  22. گزینه 2 (پاسخ صحیح عدد 61 است زیرا برای هر رشته، یک اشاره گر به کارکتر نیز تعریف شده است که در مجموع 20 بایت فضا توسط 5 اشاره گر مذکور فضا گرفته می شود)
  23. هیچ کدام (در انتهای رشته عبارت at the world وجود ندارد و اگر فرض کنیم یکی از دستورات از صورت سوال اشتباها جا افتاده است، یکی از دو گزینه 1 و 3 صحیح خواهد بود. ضمنا یک نکته که ربطی به برنامه نویسی ندارد ولی فقط محض یادآوری گرامر زبان انگلیسی: We live in the world و PNU is one of the best universities in the world صحیح است!)
  24. گزینه 2
  25. گزینه 3
  26. گزینه 1
  27. گزینه 4 (بعد از تعریف کلاس علامت ; و قبل از تعریف تابع main مقدار int فراموش شده است)
  28. گزینه 1
  29. هیچ کدام (جواب درست 9 6 3 4 2 1 است، البته با فرض اینکه علامت { سرگردان موجود در خط 6 که اضافی است، حذف شود! در اینجا عبارت for اشتباها به صورت For و cout هم به صورت Cout نوشته شده)
  30. گزینه 2 (بهتر بود خروجی تابع main به صورت int تعریف می شد و البته اشتباهات تایپی مثل عبارت cout که اشتباها count نوشته شده و یا متغییر P و p که باید یکسان در نظر گرفته بشن و علامت { آخر تابع main و ... رو طبق معمول نادیده بگیرید!)


[ 79 نظر ]
نتیجه تمرین آخر درس برنامه سازی پیشرفته
شماره دانشجويي نتيجه تشابه با برنامه
870032639 CompileError  
870064681 WrongAnswer  
880316751 Accepted  
880317475 CompileError *2
890041838 CompileError *2
890053473 CompileError *2
890053618 CompileError *1
890053786 Accepted  
890053870 CompileError *1
890314300 WrongAnswer  
890314369 WrongAnswer  
890314937 WrongAnswer  
890315107 Accepted  
890315395 CompileError *2
890316285 CompileError  
890317323 CompileError *1
900054409 CompileError  
900063639 Accepted  

 



[ 31 نظر ]
نتیجه تمرین آخر درس مبانی کامپیوتر

 

شماره دانشجویی نتیجه تشابه با برنامه
880242800 WrongAnswer *
880316495 Accepted  
890186401 WrongAnswer  
890315281 Accepted  
900034448 WrongAnswer  
900047207 CompileError  
900064951 CompileError  
900074836 WrongAnswer  
900126870 WrongAnswer  
900152121 CompileError  
900217960 WrongAnswer *
900224604 WrongAnswer  
900228779 WrongAnswer  
900264782 WrongAnswer  
900272715 WrongAnswer  
900278037 CompileError *
900303297 WrongAnswer  
900329765 WrongAnswer  
900344607 WrongAnswer  
900374582 WrongAnswer  
900382375 CompileError  
900411266 Accepted  
900425373 Accepted  

 



[ 58 نظر ]
صورت تمرین هفتم درس مبانی کامپیوتر (تمرین آخر)
  • پاسخ توسط توسط ایمیل ارسال گردد. عنوان (subject) ایمیل باید عبارت "pnu07" باشد و طبق معمول تمرین باید به صورت فایل ضمیمه (به نام دانشجویی) باشد.
  • فقط فایل برنامه (pas.) ارسال شود. از فرستادن فایل اجرایی (exe.) جدا خودداری کنید!
  • مهلت ارسال این تمرین تا ساعت 12 ظهر روز دوشنبه 5 دی است.

شرح تمرین:

در این تمرین میخواهیم عملیات ساده ریاضی را روی اعداد صحیح بزرگ انجام دهیم. عملیات انجام شده تنها یکی از دو عمل ضرب و یا جمع می باشد. حداکثر طول اعداد و همینطور حداکثر طول پاسخ بیشتر از 100 عدد نیست.

ورودی:
در خط اول ورودی تعداد دفعات انجام عملیات ریاضی قرار دارد.
در ادامه به ازای هر  عملیات ریاضی، چند خط وجود دارد که در هر خط یک مقدار قرار گرفته است. این مقادیر برای هر عمل ریاضی به ترتیب عبارتند از:

  • مقدار اول: عملیات روی اعداد (یکی از دو کارکتر + یا *)
  • مقدار دوم: عدد اول
  • مقدار سوم: عدد دوم


خروجی:
به ازای هر عمل ریاضی انجام شده، در خروجی یک خط چاپ میشود که در آن حاصل محاسبه انجام شده قرار دارد.

نمونه وروی:

2
+
99999999999999999999
2
*
1234000
3843174486576033


نمونه خروجی:

100000000000000000001
4742477316434824722000

بروزرسانی: به علت درخواست دوستان، تاریخ تحویل پروژه تمدید شد.



[ 43 نظر ]
صورت تمرین نهم درس برنامه سازی پیشرفته (تمرین آخر)
  • پاسخ توسط توسط ایمیل ارسال گردد. عنوان (subject) ایمیل باید عبارت "pnu19" باشد و طبق معمول تمرین باید به صورت فایل ضمیمه (به نام دانشجویی) باشد.
  • فقط فایل برنامه (cpp.) ارسال شود. از فرستادن فایل اجرایی (exe.) جدا خودداری کنید!
  • مهلت ارسال این تمرین تا ساعت 12 ظهر روز دوشنبه 5 دی است.

شرح تمرین:

در این تمرین میخواهیم عملیات ساده ریاضی را روی اعداد صحیح بزرگ انجام دهیم. اعداد ورودی میتوانند در مبناهای متفاوتی (از 2 تا 16) باشند و عملیات انجام شده تنها یکی از دو عمل ضرب و یا جمع می باشد. حداکثر طول اعداد (و در نتیجه حداکثر طول جواب) از قبل مشخص نیست.

ورودی:
در خط اول ورودی تعداد دفعات انجام عملیات ریاضی قرار دارد.
در ادامه به ازای هر  عملیات ریاضی، چند خط وجود دارد که در هر خط یک مقدار قرار گرفته است. این مقادیر برای هر عمل ریاضی به ترتیب عبارتند از:

  • مقدار اول: مبنای اعداد مورد محاسبه (یک عدد صحیح بین 2 تا 16)
  • مقدار دوم: عملیات روی اعداد (یکی از دو کارکتر + یا *)
  • مقدار سوم: تعداد ارقام عدد اول
  • مقدار چهارم: عدد اول
  • مقدار پنجم: تعداد ارقام عدد دوم
  • مقدار ششم: عدد دوم


خروجی:
به ازای هر عمل ریاضی انجام شده، در خروجی یک خط چاپ میشود که در آن حاصل محاسبه انجام شده قرار دارد. نتیجه باید در همان مبنای اعداد ورودی باشد. به عنوان مثال اگر دو عدد ورودی در مبنای 2 بودند، نتیجه محاسبات نیز باید در مبنای 2 نمایش داده شود.

نمونه وروی:

3
10
*
7
1234000
16
3843174486576033
2
+
8
11100101
5
11101
16
*
8
21EC2020
11
8002B30309D

نمونه خروجی:

4742477316434824722000
100000010
10F66BA0C1C79D5B3A0

بروزرسانی: نمونه خروجی تصحیح شد.

بروزرسانی2: به علت درخواست دوستان، تاریخ تحویل پروژه تمدید شد.



[ 29 نظر ]
آخرین تمرین دروس مبانی کامپیوتر و برنامه سازی پیشرفته

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

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

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



[ 35 نظر ]
نتیجه تمرینات درس برنامه مبانی کامپیوتر

تمرین پنجم - قسمت دوم (مبانی کامپیوتر)

شماره دانشجویی نتیجه تشابه با برنامه
880316495 Accepted  
890315023 CompileError 900024907
890315089 Accepted  
890315281 Accepted  
900018216 WrongAnswer  
900024907 CompileError 890315023
900039057 WrongAnswer  
900047207 Accepted  
900064951 Accepted  
900082774 TimeLimit  
900088719 WrongAnswer  
900094976 WrongAnswer  
900124555 Accepted  
900126870 WrongAnswer  
900152155 WrongAnswer ***
900177296 CompileError  
900228779 WrongAnswer ***
900252530 Accepted  
900262085 WrongAnswer  
900268387 Accepted  
900272715 Accepted  
900288828 WrongAnswer ***
900300869 WrongAnswer  
900303297 Accepted  
900329765 CompileError  
900344791 TimeLimit  
900364172 Accepted  
900374582 WrongAnswer  
900381291 CompileError  
900382375 CompileError  
900387856 TimeLimit  
900411266 Accepted  
900412339 Accepted  
900425373 Accepted  
900427411 Accepted  

تمرین ششم (مبانی کامپیوتر)

880316495 WrongAnswer  
890315023 CompileError 900024907
890315089 Accepted  
890315281 Accepted  
900018216 Accepted  
900024907 CompileError 890315023
900039057 WrongAnswer  
900047207 Accepted  
900064951 Accepted 900411266
900074836 CompileError  
900082774 TimeLimit  
900088719 WrongAnswer  
900094976 Accepted  
900124555 Accepted  
900152155 CompileError 900288828
900177296 CompileError  
900217960 CompileError  
900228779 WrongAnswer  
900252530 Accepted  
900264782 WrongAnswer  
900268387 Accepted  
900272715 WrongAnswer  
900288828 CompileError 900152155
900364172 WrongAnswer  
900411266 Accepted 900064951
900412339 Accepted  
900425373 Accepted  
900427411 WrongAnswer  

 



[ 17 نظر ]
نتیجه تمرینات درس برنامه سازی پیشرفته

تمرین هفتم (برنامه سازی پیشرفته)

شماره دانشجویی نتیجه
88031741 RuntimeError
866143060 CompileError
866190864 WrongAnswer
870028252 Accepted
880211472 Accepted
880240784 Accepted
880259109 Accepted
880259293 CompileError
880316751 Accepted
880317167 Accepted
880317401 Accepted
880318783 Accepted
890049293 Accepted
890053084 WrongAnswer
890053200 WrongAnswer
890053321 CompileError
890053618 CompileError
890053786 Accepted
890053870 CompileError
890313837 CompileError
890314300 Accepted
890315024 WrongAnswer
890315107 Accepted
890315400 WrongAnswer
890317088 Accepted
890317323 RuntimeError
900032616 Accepted
900054409 WrongAnswer

 

تمرین هشتم (برنامه سازی پیشرفته)

شماره دانشجویی نتیجه
88031741 WrongAnswer
861140051 Accepted
866142529 Accepted
866190864 CompileError
870028252 Accepted
880240784 Accepted
880259109 Accepted
880316751 Accepted
880317167 WrongAnswer
880317401 Accepted
880318783 WrongAnswer
890049293 WrongAnswer
890053084 WrongAnswer
890053200 WrongAnswer
890053473 CompileError
890053786 Accepted
890314300 Accepted
890315024 Accepted
890315107 Accepted
890315395 TimeLimit
890317088 Accepted
890317323 CompileError
900054409 CompileError
900063639 Accepted

 



[ 9 نظر ]
نتایج آخرین تمرین (مبانی و برنامه سازی پیشرفته)

به علت گرفتاری زیاد هنوز فرصت بررسی تمرینهای این هفته رو نداشتم. در اولین فرصت نتایج رو در همین سایت میذارم.

البته توجه کنید که با اینکه هنوز نتایج رو در سایت نگذاشتم ولی مهلت ارسال تمام شده!



[ 7 نظر ]
صورت تمرین ششم درس مبانی کامپیوتر
  • در صورت ارسال توسط ایمیل باید عنوان (subject) ایمیل عبارت "pnu06" باشد و طبق معمول تمرین به صورت فایل ضمیمه (به نام دانشجویی) باشد.
  • فقط فایل برنامه (pas.) ارسال شود. از فرستادن فایل اجرایی (exe.) جدا خودداری کنید!
  • مهلت ارسال این تمرین تا ساعت 8 صبح روز جمعه 11 آذر است.

شرح تمرین:

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

ورودی:
مشابه قسمت دوم از تمرین پنجم


خروجی:
مشابه قسمت دوم از تمرین پنجم ولی به صورت مرتب شده بر حسب امتیاز تیم ها به طوری که تیمی که بیشترین امتیاز را کسب کرده در ابتدای لیست و تیمی که کمترین امتیاز را کسب کرده، در انتهای لیست قرار دارد.

نمونه ورودی:

4
5
1 2 2 3
3 0 4 0
1 1 3 0
4 1 2 2
4 1 2 0

نمونه خروجی:

Team2: 6
Team4: 4
Team1: 3
Team3: 1


[ 4 نظر ]
اولین صفحهصفحه قبلی1 2 3 4 صفحه بعدی آخرین صفحه
صفحه اصلی
پست الکترونیک