تمرین سری دوم درس مبانی برنامهسازی مهلت ارسال :یکشنبه ۲۷آبان ماه ۱۳۸۶ آیدین نصیریشرق )([email protected] فهرست نحوه ارسال 1 ................................................................ آدرس ارسال 1 ............................................................. عنوان ایمیل 1 .............................................................. پیوست ایمیل 2 ............................................................. مهلت ارسال 2 .............................................................. نحوه نمرهدهی به برنامه 3 ........................................................ نکات آخر 3 ............................................................... تمرین اول :تعداد مقسومعلیهها ) ۲۰نمره( 4 ................................................. تمرین دوم :محل اعداد ) ۲۵نمره( 5 ..................................................... تمرین سوم :بزرگترین مقلوب ) ۲۵نمره( 6 ................................................. تمرین چهارم :مرتبسازی ماتریس ) ۳۰نمره( 7 ............................................... تمرین سری دوم درس مبانی برنامهسازی مهلت ارسال :یکشنبه ۲۷آبان ماه ۱۳۸۶ نحوه ارسال لطف ًا به موارد زیر در ارسال ایمیل پاسخهای خود دقت کنید .بدیهیست که در صورت بروز هرگونه اشتباهی در این پروسه ،نمره شما ممکن است اکیدًا صفر بشود و اکیدًا هیچ اعتراضی در این زمینه پذیرفته نیست .این اشتباهات شامل • ارسال ایمیل به هر آدرسی غیر از آدرس ذکر شده • درج عنوان اشتباه • نامگذاری نادرست فایلها )حتی اشتباه در نامگذاری حروف بزرگ و کوچک( • اشتباه در زیپکردن فایلها ،نامگذاری نادرست فایل زیپ شده نهایی ،اشتباه در attachکردن فایل زیپ • کامپایل نشدن برنامه توسط کامپایلر ) g++در MinGWیا (DevCPP • خواندن و نوشتن اشتباه و زائد )هر گونه توضیح اضافه در خروجی یا قرار دادن )( getcharدر انتهای برنامه( و موارد مشابه خواهد بود. آدرس ارسال برنامههای خود را ،پس از تکمیل شدن و بررسی نکات ذیل بهصورت پیوست 1به آدرس [email protected]ارسال کنید .دقت کنید که بدنهی ایمیل شما ممکنست به هیچوجه خوانده نشود .پس از ارسال ایمیل ،احتما ًال یک ایمیل از طرف ) Cpp Assistantهمان آدرس فوق( به شما میآید که مبنی بر دریافت ایمیل است. توجه کنید که این آدرس ممکنست در طول مهلت ارسال توسط دستیاران درس چک نشود؛ پس اگر سؤال یا مشکلی داشتید ،حتم ًا بهطور مستقیم با یکی از دستیاران درس )ترجیح ًا ( [email protected]تماس بگیرید .ضمن ًا از ارسال برنامههایتان توسط ایمیلی بهجز ایمیل شخصی خودتان ،اکیدًا خودداری کنید .ایمیلهای خودتان را )حداقل( هر ۳روز یک بار چک کنید! درصورتی که پس از فرستادن برنامههایتان )و پیش از اتمام موعد مقرّر( تصمیم به ارسال مجدد )و با تغییر( برنامههایتان گرفتید ،ایمیل دیگری با همان مشخصات و فرمتهای ایمیل قبلی به همان آدرس بزنید و در بدنهی ایمیل دلیل ارسال مجدد و تغییرات ایجاد شده را بنویسید .دقت کنید در ایمیل جدید باید تمامی فایلها را عین ًا مانند ایمیل اوّلتان و عین ًا با همان فرمت ،قرار دهید .ضمن ًا درصورتیکه دلیلتان برای ارسال موجه نباشد، عنوان ایمیل عنوان یا subjectایمیل شما باید به فرمت 86abcdef-2باشد که در آن به جای 86abcdefشماره دانشجوییتان را باید قرار دهید .بهعنوان مثال دانشجوی به شماره دانشجویی ۸۶۱۱۳۸۰۴باید عبارت 86113804-2را برای این سری از تمرینها )سری دوم( انتخاب کند. ال حذف شده و نمرهشان صفر شود. دقت کنید که ممکنست ایمیلهای ارسالی که فرمت عنوان را رعایت نکرداند ،کام ً Attachment تمرین سری دوم درس مبانی برنامهسازی ممکنست کسری از نمره را از دست بدهید. 1 1 پیوست ایمیل ت ظیر ،P22.cpp ،P21.cpp های گفته شده )نظ های خود را با نامها برنامه ی (P24.cppنوشته و در یک پپوشه 2دلخواه ذخیره کنید .سپس P P23و 3.cpp انتخاب تمامی فایل و زدن کلیک راست ماووس ،از منوی ب با Compressed Folder Send d to گزینهی سؤالی از طرف در صورت پرسیدن س را انتخاب کرده و ر بزنید. ویندوز ،گگزینهی Noرا د یک فایل شبیه نهایت ًا فایل zipساخته شود توسط خود ویندوز را به ک در آن abcdefساییر ارقام شماره 86abcdef-2تغغییر نام دهید که ر 2.zip ال دانشجوی به شماره دانشجویی ۸۶۱۱۱۳۸۰۴باید نام یی شماست .مث ً دانشجو ی کنید که وجود د زیپشدهاش 86113804-2.zipباشد .دقت فایل پ ده و اشتباه در نامگذاری فایل، های اضافی غیر از ۴فایل خواستهشد فایل ی دن نمره بشود. ست باعث کسر شد ممکنس ظیر (zipبه طور دقت کننید که ممکنست پسوند فایلها )نظ فرض به شما نشان داده نشود و پس از تغییر نام فایل ،به پیش ض طور خوددکار در انتهای نام شما )بدون اینکه ممتوجه شوید( درج الف انتظار ،نام واقعی فایل شما شود! در اینصورت برخال 86113804-2.zip p.zip بود، در حالیکه 86113804-2ببه شما نمایش داده میشود! برای 2.zip است منجر به صفر جلوگیری از بروز این مشککل که ممکن ت ی شدن ننمره شما بشود ،از منوی Folder Option T Tools باالیی ،گزینهی انتخاب کرده و سپس در پنجرهای که باز ب را میشود ،از قسمت known file types View گزینهی Hide extension ns for را )پاایینترین گزینهی قابل رؤیت!( غیر نید )تیک آن را برددارید( .اکنون میتووانید مطمئن باشد فعال کنی هستند که میبینید! د که نام فاایلها همانی تمرین سری دوم درس مبانی برنامهسازی 2 مهلت ارسال شنبه ۲۷ ،آبان ماه است .پس از این تتاریخ ،شما ۲۴ساععت وقت دارید تا ابا کسر ۲۰٪از مهلت شمما برای ارسال این تمارین ساعت ۲۳:۵۹:۵۹روز یک شن اینترنت ،داشتن تمرین ،کووئیز و میانترم ، شدن کارت اینترنت خوابگاه ،تمام ش ت سابی ،تمارین خود را با تأخیر ارسال ککنید .دالیلی نظیر ققطع بودن نمره اکتس نمیسازند. فوت اقوام درجه ۲به باال و ...همگی غیرموجه بوده و هیچ ععذری را پذیرفته ی ن ،خواب ماندن ،ت های دیگر ،فراموشی ،ببرگشتن از شهرستان درس ی Folderیا Directory 2 نحوه نمرهدهی به برنامه برنامههای خود را با نامهای خواسته شده ذخیره و آمادهسازی کنید و حتم ًا نام ،نام خانوادگی و شماره دانشجویی خود را )با حروف انگلیسی( باالی هر برنامه به صورت کامنت قرار دهید .همچنین رویه اجرای برنامه و تمام متغیرها و توابع خود را با قرار دادن کامنتهای الزم حتم ًا خوانا و واضح کنید .تخطی از این موارد ممکنست باعث شود شما درصدی از نمره را از دست بدهید. معیار نمرهدهی به برنامه صرفاً ،صحّت عملکرد و سرعت اجرای برنامه میباشد ،امّا خوانایی و وضوح کد اکیدًا توصیه میشود .دقّت کنید که یک برنامهی طوالنی ولی دقیق و کارا بسیار با اهمیتتر از یک برنامهی کثیف)!( و فشرده است. در بعضی از برنامههای خواسته شده ،محدودیتی برای ورودیها ذکر شده است .با این محدودیتها و محاسبهی تعداد اعمال برنامهشما ،و این فرض که در هر ثانیه بین ۱۰۶تا ۱۰۹دستور توسط کامپیوتر انجام میشود ،3شما میتوانید تقریبی از زمان اجرای برنامهی خود بهدست بیاورید. به هر یک از برنامههای شما ۱۰ ،ورودی مختلف داشته میشود و برنامهی شما باید در حداکثر ۱ثانیه )برای هر ورودی( پاسخ صحیح را ارائه داده و به پایان برسد ،در غیر اینصورت ،نمرهی آن ورودی را نمیگیرید .با این وصف ،حلقهی زیر برای ۱, ۰۰۰, ۰۰۰, ۰۰۰ ،بیشتر از ۱ثانیه طول میکشد و نتیجت ًا الگوریتم مناسبی برای محاسبهی »باقیماندهی مجموع اعداد ۱تا nبر «۱۰۰۰نمیباشد! ;int sum = 0 )for (int i=0; i<n; i++ ;sum = (sum + i) % 1000 بد نیست این کد را نوشته و ببینید حداکثر مقدار که در حدود یک ثانیه کار به پایان میرسید ،چه توانی از ۱۰است؟! نکات آخر پیش از ارسال برنامهها ،یکبار دیگر به نکات زیر توجه کرده و آنها را در هر ۴برنامهی خود بررسی کنید. • از خواندن و نوشتن اضافی )نظیر نوشتن The result is: 10به جای 10و گذاشتن )( getcharدر پایان برنامه( بپرهیزید. • اسم برنامههایتان صحیح )بدون پسوند اضافه( باشد .توجه کنید که P21.cppبا ) p21.cppغلط( و ) P21.CPPغلط( متفاوت است! • نام و نام خانوادگی و توضیحات اضافی را بهصورت commentدر برنامههایتان قرار داده باشد. • از دوستانتان و دستیاران درس کمک بگیرید ولی هرگز کُپ نزنید! دقت کنید که رعایت نکردن هر یک از ۴نکتهی فوق ممکنست باعث از دست دادن تمام یا بخشی از نمرهی شود. در صورت مشاهدهی کُپ یا کدی که توسط خود دانشجو نوشته نشده باشد ،نمرهی فرد یا افراد خاطی )منجمله ُکپدهنده!( به -۱تبدیل خواهد شد .در صورتی که از شخص خاص کمک الگوریتمی گرفتهاید ،حتم ًا این نکته را )نام فرد کمک گیرنده و توضیح کمک وی( بهصورت commentدر ابتدای برنامهی خود بنویسید. تمرین سری دوم درس مبانی برنامهسازی 3این اعداد به نوع کامپیوتر ،نوع دستورات و موارد زیادی وابستهاند ،اما به طور تقریبی صحیحاند. 3 تمرین ا ول :ت عداد مقسوم علیه ها ) ۲۰نمره ( برنامه شما برای این تمرین باید با نام P21.cppنوشته و ذخیره شود. برنامهای بنویسید که یک عدد طبیعی • از ورودی بخواند و تعداد مقسومعلیههایش را چاپ کند! عدد دادهشده در بازهی ۱, ۱, ۰۰۰, ۰۰۰, ۰۰۰قرار دارد. توجه کنید که شبهبرنامه زیر بیشتر از یک ثانیه طول میکشد و احتما ًال حدود ۵۰درصد نمره را میگیرد! ;cin >> n ;int divisors = 0 )for (int i=1; i<=n; i++ )if (n % i == 0 ;divisors++ ;cout << divisors << endl پس دنبال الگوریتم سریعتری بگردید! خروجی صحیح مثال ورودی 36 مثال ورودی خروجی صحیح 923013000 تمرین سری دوم درس مبانی برنامهسازی 4 9 768 تمرین د وم :محل اعداد ) ۲۵نمره ( برنامه شما برای این تمرین باید با نام P22.cppنوشته و ذخیره شود. فرض کنید اعداد طبیعی به صورت زیر در ربع اوّل صفحهی مختصات چیده شدهاند .در این شکل ،در سطر ام ،عدد نوشته شدهاست که از نقطهی ,در آن سطر شروع شده و تا نقطهی 1 , 2ادامه خواهند داشت. برنامهای بنویسید که دو عدد xو سپس yرا )که مختصات نقطهی , هستند( از ورودی بگیرد و عددی که در آن نقطه نوشته شده است را در خروجی بنویسد .در صورتی که در این نقطه ،با این روش چینش عددی نوشته نشده باشد عبارت No Numberباید نوشته شود) .دقت کنید که حروف Nدر این دو کلمه بزرگ بوده و سایر حروف کوچکاند؛ پس نوشتن No numberغلط است(. • اعداد ورودی در بازهی ۱, ۴۰۰۰۰قرار دارند. 5 4 10 9 8 7 6 5 5 4 3 4 2 3 2 3 2 1 1 0 8 7 6 مثال ورودی 1 0 خروجی صحیح 5 3 مثال ورودی 6 خروجی صحیح تمرین سری دوم درس مبانی برنامهسازی 4 2 No Number 5 تمرین س وم :بزرگ ترین م قلوب ) ۲۵نمره ( برنامه شما برای این تمرین باید با نام P23.cppنوشته و ذخیره شود. مقلوب عدد صحیح عددی است که از برعکس کردن ارقام آن بهدست میآید .برای مثال مقلوب عدد ،۱۹۵عدد ۵۹۱بوده و مقلوب عدد ،۴۳۰۰عدد ۳۴ است. برنامهای بنویسید که تعدادی عدد طبیعی را بخواند و مشخص کند که مقلوب کدام یک از مقلوب بقیه سایرین بیشتر است. در ورودی ابتدا )تعداد اعداد( آمده است .سپس در هر یک از سطر بعدی ،در هر سطر یک عدد آمده است. در تنها سطر خروجی ،عددی که مقلوب آن از سایرین بیشتر است را بنویسید. • میدانیم ۱۰۰, ۰۰۰ ۱و اعداد دادهشده در بازهی ۱, ۱۰۰, ۰۰۰, ۰۰۰قرار دارند. خروجی صحیح مثال ورودی 18 3 17 18 55 خروجی صحیح مثال ورودی 5 1920 322 211 99 8010 تمرین سری دوم درس مبانی برنامهسازی 6 1920 تمرین چ هارم :مرتب سازی ماتریس ) ۳۰نمره ( برنامه شما برای این تمرین باید با نام P24.cppنوشته و ذخیره شود. )با فرض کنید یک ماتریس بگیرد .پس از آن در سطر و سطر بعدی ،در هر سطر ستون( از اعداد صحیح تصادفی پر شده است .برنامهای بنویسید که از ورودی ابتدا اعداد عدد بخواند که عدد اُم در سطر اُم ،درایهی پس از خواندن ورودی ،برنامهی شما باید دو ماتریس ماتریس و , و سپس ماتریس است. را در خروجی )مشابه ورودی اما بدون نوشتن سایز ماتریس( چاپ کنید که ال بهصورت صعودی مرتب شدهاند و است که سطرهای آن مستق ً را نیز مشابه ًا همان ماتریس همان ال بهصورت است که ستونهای آن مستق ً صعودی مرتب شدهاند. بین هر دو درایهی هر یک از دو ماتریس یک فاصلهی خالی 4بگذارید .بین خو ِد دو ماتریس نیز یک خط خالی چاپ کنید. • میدانیم ۱۰۰ , ۱و مقادیر درایهها اعداد صحیح در بازهی ۱۰۰, ۱۰۰ قرار دارند. در این سؤال از هر الگوریتم مرتبسازی که بخواهید )بهجز توابع مرتبسازی خود (C++میتوانید استفاده کنید! خروجی صحیح مثال ورودی 5 8 2 6 2 2 8 5 2 6 2 5 8 6 خروجی صحیح مثال ورودی 3 11 1 6 3 2 7 3 5 4 9 8 1 9 1 3 6 11 2 3 5 7 1 8 9 9 »موفق باشید!« Space 4 تمرین سری دوم درس مبانی برنامهسازی 9 11 3 9 3 8 1 6 2 7 1 5 7
© Copyright 2026 Paperzz