Ex-3.pdf

‫تمرین سری سوم درس مبانی برنامهسازی‬
‫)ترم بهار ‪(۱۳۸۷‬‬
‫مهلت ارسال‪ :‬جمعه ‪ ۱۷‬خرداد ‪۱۳۸۷‬‬
‫فهرست‬
‫آیدین نصیریشرق )‪([email protected]‬‬
‫مقدمه ‪1 .................................................................‬‬
‫نحوه ارسال ‪1 ..............................................................‬‬
‫آدرس ارسال ‪1 .............................................................‬‬
‫عنوان ایمیل ‪2 ..............................................................‬‬
‫پیوست ایمیل ‪2 .............................................................‬‬
‫مهلت ارسال ‪3 ..............................................................‬‬
‫نحوه نمرهدهی به برنامه ‪3 ........................................................‬‬
‫نکات آخر ‪3 ...............................................................‬‬
‫تمرین اول‪ :‬صحافی کتاب )‪ ۲۰‬نمره( ‪4 ................................................‬‬
‫تمرین دوم‪ :‬روبات و جواهرات گمشده )‪ ۲۰‬نمره( ‪5 ..........................................‬‬
‫تمرین سوم‪ :‬بزرگترین کشور )‪ ۳۰‬نمره( ‪6 ..............................................‬‬
‫تمرین چهارم‪ :‬جمع اعداد خیلی بزرگ! )‪ ۳۰‬نمره( ‪7 .........................................‬‬
‫تمرین سری سوم درس مبانی برنامهسازی )ترم بهار‬
‫‪(۱۳۸۷‬‬
‫مهلت ارسال‪ :‬جمعه ‪ ۱۷‬خرداد ‪۱۳۸۷‬‬
‫مقدمه‬
‫در این فایل اوّلین سری تمرینهای برنامهسازی شما )دومین سری در مجموع( آمده است‪ .‬این مجموع شامل ‪ ۴‬تمرین است که شما باید هر کدام را در یک‬
‫فایل )الزام ًا با نام خواسته شده( نوشته و سپس هر ‪ ۴‬فایل را )فقط فایلهای کد و نه فایلهای اجرایی( طبق روشهای گفته شده ‪ zip‬کرده و نهایت ًا فایل‬
‫‪ zip‬را به آدرس خواسته شده بفرستید‪.‬‬
‫نحوه ارسال‬
‫لطف ًا به موارد زیر در ارسال ایمیل پاسخهای خود دقت کنید‪ .‬بدیهیست که در صورت بروز هرگونه اشتباهی در این پروسه‪ ،‬نمره شما ممکن است اکیدًا‬
‫صفر بشود و اکیدًا هیچ اعتراضی در این زمینه پذیرفته نیست‪ .‬این اشتباهات شامل‬
‫•‬
‫ارسال ایمیل به هر آدرسی غیر از آدرس ذکر شده یا درج عنوان اشتباه‬
‫•‬
‫نامگذاری نادرست فایلها )حتی اشتباه در نامگذاری حروف بزرگ و کوچک(‬
‫•‬
‫اشتباه در زیپکردن فایلها‪ ،‬نامگذاری نادرست فایل زیپ شده نهایی‪ ،‬اشتباه در ‪ attach‬کردن فایل زیپ‬
‫•‬
‫کامپایل نشدن برنامه توسط کامپایلر ‪) g++‬در ‪ MinGW‬یا ‪(DevCPP‬‬
‫•‬
‫خواندن و نوشتن اشتباه و زائد )هر گونه توضیح اضافه در خروجی یا قرار دادن )(‪ getchar‬در انتهای برنامه(‬
‫و موارد مشابه خواهد بود‪.‬‬
‫آدرس ارسال‬
‫برنامههای خود را‪ ،‬پس از تکمیل شدن و بررسی نکات ذیل بهصورت پیوست‪ 1‬به آدرس ‪ [email protected]‬ارسال کنید‪ .‬دقت کنید که بدنهی‬
‫که مبنی بر دریافت ایمیل است‪.‬‬
‫توجه کنید که این آدرس ممکنست در طول مهلت ارسال توسط دستیاران درس چک نشود؛ پس اگر سؤال یا مشکلی داشتید‪ ،‬حتم ًا بهطور مستقیم با یکی‬
‫از دستیاران درس )ترجیح ًا ‪ ( [email protected]‬تماس بگیرید‪ .‬ضمن ًا از ارسال برنامههایتان توسط ایمیلی بهجز ایمیل شخصی خودتان‪ ،‬اکیدًا‬
‫خودداری کنید‪ .‬ایمیلهای خودتان را )حداقل( هر ‪ ۳‬روز یک بار چک کنید!‬
‫درصورتی که پس از فرستادن برنامههایتان )و پیش از اتمام موعد مقرّر( تصمیم به ارسال مجدد )و با تغییر( برنامههایتان گرفتید‪ ،‬ایمیل دیگری با همان‬
‫مشخصات و فرمتهای ایمیل قبلی به همان آدرس بزنید و در بدنهی ایمیل دلیل ارسال مجدد و تغییرات ایجاد شده را بنویسید‪ .‬دقت کنید در ایمیل‬
‫جدید باید تمامی فایلها را عین ًا مانند ایمیل اوّلتان و عین ًا با همان فرمت‪ ،‬قرار دهید‪ .‬ضمن ًا درصورتیکه دلیلتان برای ارسال موجه نباشد‪،‬‬
‫ممکنست کسری از نمره را از دست بدهید‪.‬‬
‫‪Attachment‬‬
‫تمرین سری سوم درس مبانی برنامهسازی )ترم بهار ‪(۱۳۸۷‬‬
‫ایمیل شما ممکنست به هیچوجه خوانده نشود‪ .‬پس از ارسال ایمیل‪ ،‬احتما ًال یک ایمیل از طرف ‪) Cpp Assistant‬همان آدرس فوق( به شما میآید‬
‫‪1‬‬
‫‪1‬‬
‫عنوان ایمیل‬
‫ن‬
‫‪ 86abcdef-3‬باشد که در آن به جای ‪ 86abcdef‬شماره دانشجویییتان را باید قرار ددهید‪ .‬بهعنوان‬
‫‪8‬‬
‫فرمت‬
‫ایمیل شما باید به ت‬
‫عنوان یا ‪ subject‬ل‬
‫‪ 86113804‬را بررای این سری از تممرینها )سری سوم( انتخاب کند‪.‬‬‫‪ ۸۶‬باید عبارت ‪-3‬‬
‫شجوی به شماره داننشجویی ‪۶۱۱۳۸۰۴‬‬
‫مثال دانش‬
‫ال حذف ه‬
‫د‪ ،‬کام ً‬
‫ارسالی که فرمت عنوان را رعایت نکرداند‬
‫ی‬
‫نید که ممکنست ایمیلهای‬
‫دقت کنی‬
‫شده و نمرهشان صفر شود‪.‬‬
‫پیوست ایمیل‬
‫ت‬
‫ظیر ‪،P32.cpp ،P31.cpp‬‬
‫های گفته شده )نظ‬
‫های خود را با نامها‬
‫برنامه ی‬
‫‪ (P34.cpp‬نوشته و در یک پپوشه‪ 2‬دلخواه ذخیره کنید‪ .‬سپس‬
‫‪P‬‬
‫‪ P33‬و‬
‫‪3.cpp‬‬
‫انتخاب تمامی فایل و زدن کلیک راست ماووس‪ ،‬از منوی‬
‫ب‬
‫با‬
‫‪Compressed Folder‬‬
‫‪Send‬‬
‫‪d to‬‬
‫گزینهی‬
‫سؤالی از طرف‬
‫در صورت پرسیدن س‬
‫را انتخاب کرده و ر‬
‫بزنید‪.‬‬
‫ویندوز‪ ،‬گگزینهی ‪ No‬را د‬
‫یک فایل شبیه‬
‫نهایت ًا فایل ‪ zip‬ساخته شود توسط خود ویندوز را به ک‬
‫در آن ‪ abcdef‬ساییر ارقام شماره‬
‫‪ 86abcdef-3‬تغغییر نام دهید که ر‬
‫‪3.zip‬‬
‫ال دانشجوی به شماره دانشجویی ‪ ۸۶۱۱۱۳۸۰۴‬باید نام‬
‫دانشجویی شماست‪ .‬مث ً‬
‫ی‬
‫کنید که وجود‬
‫د‬
‫زیپشدهاش ‪ 86113804-3.zip‬باشد‪ .‬دقت‬
‫فایل پ‬
‫ده و اشتباه در نامگذاری فایل‪،‬‬
‫های اضافی غیر از ‪ ۴‬فایل خواستهشد‬
‫فایل ی‬
‫دن نمره بشود‪.‬‬
‫ست باعث کسر شد‬
‫ممکنس‬
‫ظیر ‪ (zip‬به طور‬
‫دقت کننید که ممکنست پسوند فایلها )نظ‬
‫فرض به شما نشان داده نشود و پس از تغییر نام فایل‪ ،‬به‬
‫پیش ض‬
‫طور خوددکار در انتهای نام شما )بدون اینکه ممتوجه شوید( درج‬
‫تمرین سری سوم درس مبانی برنامهسازی )ترم بهار ‪(۱۳۸۷‬‬
‫‪2‬‬
‫الف انتظار‪ ،‬نام واقعی فایل شما‬
‫شود! در اینصورت برخال‬
‫‪86113804-3.zip‬‬
‫‪p.zip‬‬
‫بود‪،‬‬
‫در‬
‫حالیکه‬
‫‪ 86113804-3‬ببه شما نمایش داده میشود! برای‬
‫‪3.zip‬‬
‫است منجر به صفر‬
‫جلوگیری از بروز این مشککل که ممکن ت‬
‫ی‬
‫شدن ننمره شما بشود‪ ،‬از منوی‬
‫‪Folder Option‬‬
‫‪T‬‬
‫‪Tools‬‬
‫باالیی‪ ،‬گزینهی‬
‫انتخاب کرده و سپس در پنجرهای که باز‬
‫ب‬
‫را‬
‫میشود‪ ،‬از قسمت‬
‫‪known file types‬‬
‫‪View‬‬
‫گزینهی‬
‫‪Hide extension‬‬
‫‪ns for‬‬
‫را )پاایینترین گزینهی قابل رؤیت!( غیر‬
‫نید )تیک آن را برددارید(‪ .‬اکنون میتووانید مطمئن باشد‬
‫فعال کنی‬
‫هستند که میبینید!‬
‫د‬
‫که نام فاایلها همانی‬
‫‪ 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‬در پایان برنامه( بپرهیزید‪.‬‬
‫•‬
‫اسم برنامههایتان صحیح )بدون پسوند اضافه( باشد‪ .‬توجه کنید که ‪ P31.cpp‬با ‪) p31.cpp‬غلط( و ‪) P31.CPP‬غلط( متفاوت است!‬
‫•‬
‫نام و نام خانوادگی و توضیحات اضافی را بهصورت ‪ comment‬در برنامههایتان قرار داده باشد‪.‬‬
‫•‬
‫از دوستانتان و دستیاران درس کمک بگیرید ولی هرگز کُپ نزنید!‬
‫دقت کنید که رعایت نکردن هر یک از ‪ ۴‬نکتهی فوق ممکنست باعث از دست دادن تمام یا بخشی از نمرهی شود‪.‬‬
‫در صورت مشاهدهی کُپ یا کدی که توسط خود دانشجو نوشته نشده باشد‪ ،‬نمرهی فرد یا افراد خاطی )منجمله ُکپدهنده!( به ‪ -۱‬تبدیل خواهد شد‪ .‬در‬
‫صورتی که از شخص خاص کمک الگوریتمی گرفتهاید‪ ،‬حتم ًا این نکته را )نام فرد کمک گیرنده و توضیح کمک وی( بهصورت ‪ comment‬در ابتدای برنامهی‬
‫خود بنویسید‪.‬‬
‫‪ 3‬این اعداد به نوع کامپیوتر‪ ،‬نوع دستورات و موارد زیادی وابستهاند‪ ،‬اما به طور تقریبی صحیحاند‪.‬‬
‫تمرین سری سوم درس مبانی برنامهسازی )ترم بهار ‪(۱۳۸۷‬‬
‫پیش از ارسال برنامهها‪ ،‬یکبار دیگر به نکات زیر توجه کرده و آنها را در هر ‪ ۴‬برنامهی خود بررسی کنید‪.‬‬
‫‪3‬‬
‫تمرین اول ‪ :‬ص حافی کتاب ) ‪ ۲۰‬نمره (‬
‫برنامه شما برای این تمرین باید با نام ‪ P31.cpp‬نوشته و ذخیره شود‪.‬‬
‫کامبیز در کار صحافی کتاب است! او میخواهد بداند در نوشتن شماره صفحات یک کتاب‬
‫‪۱۶‬‬
‫برنامهای بنویسید که یک عدد ‪۱۰‬‬
‫صفحهای )اعداد ‪ ۱‬تا (‪ ،‬چند رقم بهکار میروند؟‬
‫‪ ۱‬از ورودی خوانده و تعداد رقمهای بهکار برده شده در شماره صفحات کتابی با این تعداد صفحه را حساب‬
‫کند‪.‬‬
‫دقت کنید که‪:‬‬
‫•‬
‫‪۹‬‬
‫‪ ۲‬است و از این رو شما باید از تایپ دیگری )نظیر ‪ (long long‬استفاده کنید!‬
‫حداکثر عددی که در تایپ ‪ int‬جا میشود حدود ‪۱۰‬‬
‫ضمن ًا تعداد عملیاتی که شما انجام میدهید‪ ،‬اگر متناسب با‬
‫ال ‪ ۲‬تا عمل جمع(‪ ،‬احتما ًال برنامهی شما برای ورودیهای بزرگ‪ ،‬مدت‬
‫باشد )مث ً‬
‫‪۸‬‬
‫بسیار زیادی )حدود چند سال!( زمان الزم داشته و نتیجت ًا نابود میشود؛ چرا که بهطور تجربی هر ‪ ۱۰‬عمل در یک ثانیه انجام میشود‪.‬‬
‫خروجی صحیح‬
‫مثال ورودی‬
‫‪12‬‬
‫مثال ورودی‬
‫خروجی صحیح‬
‫‪103‬‬
‫تمرین سری سوم درس مبانی برنامهسازی )ترم بهار ‪(۱۳۸۷‬‬
‫‪4‬‬
‫‪15‬‬
‫‪201‬‬
‫تمرین دوم ‪ :‬روبات و جواهرات گم شده ) ‪ ۲۰‬نمره (‬
‫برنامه شما برای این تمرین باید با نام ‪ P32.cpp‬نوشته و ذخیره شود‪.‬‬
‫یک روبات احمق صبح یک روز بارانی روی نقطهی ‪ ۰, ۰‬صفحه مختصات دو بعدی ایستاده و بهدنبال جعبهی جواهرات گمشدهاش که در یکی از نقاط‬
‫صحیح صفحهی مختصات است‪ ،‬میگردد‪ .‬برای این منظور او در ثانیهی صفر به سمت شرق )سمت مثبت محور ها( میرود و پس از آن در هر ثانیه یک‬
‫واحد )روی یک خط صاف به طول یک( به جلو میرود؛ اما چون پای راستش میلنگد‪ ،‬جهت حرکتش تمایل به ‪ ۹۰‬درجه چرخش به سمت راست )نسبت به‬
‫جهت قبلیاش( دارد و اگر در پایان یک ثانیه خانهی سمت راست )سمت راست نسبت به جهت آخرین حرکت قبلی و نه لزوم ًا شرق( خانهی جاریاش را‬
‫ندیده باشد‪ ،‬به آن خانه متمایل میشود‪.‬‬
‫شکل زیر مسیر حرکت روبات تا ثانیهی ‪ ۲۲‬را نشان میدهد‪ .‬برای مثال در انتهای ثانیهی ‪ ،۳‬وقتی روبات در خانه ‪ ۰, ۱‬قرار دارد علیرغم میل‬
‫ال آنجا را دیده است‪.‬‬
‫باطنیاش برای چرخش به سمت راست و رفتن به نقطهی ‪ ، ۰, ۰‬نمیتواند به آن خانه برود چرا که قب ً‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫‪3‬‬
‫‪1‬‬
‫‪2‬‬
‫‪-1‬‬
‫‪0‬‬
‫‪-2‬‬
‫‪-3‬‬
‫‪-1‬‬
‫‪-2‬‬
‫‪-3‬‬
‫مختصههای داده شده در ورودی در بازهی ‪۱۰۰۰۰۰, ۱۰۰۰۰۰‬‬
‫قرار دارند‪.‬‬
‫خروجی صحیح‬
‫مثال ورودی‬
‫‪-1 -1‬‬
‫مثال ورودی‬
‫‪4‬‬
‫خروجی صحیح‬
‫‪-2 1‬‬
‫‪19‬‬
‫تمرین سری سوم درس مبانی برنامهسازی )ترم بهار ‪(۱۳۸۷‬‬
‫برنامهای بنویسید که مختصات جعبهی جواهرات )ابتدا‬
‫و سپس‬
‫آن( را از ورودی خوانده و مشخص کند روبات پس از چند ثانیه به آنجا میرسد‪.‬‬
‫‪5‬‬
‫تمرین سوم ‪ :‬بزرگ ترین کشور ) ‪ ۳۰‬نمره (‬
‫برنامه شما برای این تمرین باید با نام ‪ P33.cpp‬نوشته و ذخیره شود‪.‬‬
‫کامبیز میخواهد به کشور اندونزی سفر کند! کشور اندونزی از‬
‫جزیره تشکیل شده است و بین بعضی از جزیره‪ ،‬مسیر دریایی وجود دارد‪ .‬هر مسیر‬
‫دریایی‪ ،‬دقیق ًا یکی از جزیره را به یکی دیگر از جزیرهها متّصل میکند‪.‬‬
‫کامبیز )که در ایران زندگی میکند( میخواهد ابتدا با هواپیما به کشور اندونزی رفته و با چترنجات در یکی از جزیرههای این کشور فرود بیاید‪ ،‬سپس‬
‫صرف ًا با حرکت در مسیرهای دریایی )با قایق(‪ ،‬بیشترین تعداد جزیره را ببیند‪ .‬به کامبیز کمک کنید تا جزیرهای را پیدا کند که با فرود آمدن در آن جزیره‪،‬‬
‫بتواند بیشترین تعداد جزیره را ببیند‪ .‬دقت کنید که تنها تعداد جزایر متفاوت مشاهده شده برای کامبیز مهم هستند و نه هیچ چیز دیگری!‬
‫در سطر اوّل ورودی تعداد جزیرهها ) ( آمده است‪ .‬در سطر دوم تعداد مسیرهای دریایی ) ( و بهدنبال آن در سطرهای سوم تا ‪۲‬‬
‫اُم‪ ،‬در هر سطر‬
‫یک مسیر دریایی ذکر شده است‪ .‬هر مسیر دریایی با شمارهی دو جزیرهی انتهایی اش مشخص میشود‪ .‬فرض کنید مسیرهای دریایی دوطرفه بوده و‬
‫شمارهی جزیرهها از ‪ ۱‬تا‬
‫است‪ .‬بین هر دو جزیره حداکثر یک مسیر دریایی وجود دارد و دو جزیرهی انتهایی یک مسیر دریایی الزام ًا متفاوتند‪.‬‬
‫ضمن ًا میدانیم‪:‬‬
‫‪ ۰‬است‪.‬‬
‫‪ ۱‬و ‪۱۰۰٬۰۰۰‬‬
‫•‬
‫در تمامی تستها‪۱۰۰۰ ،‬‬
‫•‬
‫در صورتی که بیش از یک جزیره مطلوب برای کامبیز وجود دارد )که وی میتواند در آنجا فرود بیاید و بیشترین تعداد جزیره را ببیند(‪،‬‬
‫شما باید جزیرهی با اندیس کوچکتر را در خروجی چاپ کنید‪.‬‬
‫خروجی صحیح‬
‫مثال ورودی‬
‫‪2‬‬
‫‪4‬‬
‫‪3‬‬
‫‪5‬‬
‫تمرین سری سوم درس مبانی برنامهسازی )ترم بهار ‪(۱۳۸۷‬‬
‫‪6‬‬
‫‪2‬‬
‫‪5‬‬
‫‪4‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫خروجی صحیح‬
‫مثال ورودی‬
‫‪1‬‬
‫‪4‬‬
‫‪2‬‬
‫‪1 3‬‬
‫‪2 4‬‬
‫خروجی صحیح‬
‫مثال ورودی‬
‫‪3‬‬
‫‪0‬‬
‫‪1‬‬
‫تمرین چه ارم ‪ :‬جمع اعداد خیلی بزرگ ! ) ‪ ۳۰‬نمره (‬
‫برنامه شما برای این تمرین باید با نام ‪ P34.cpp‬نوشته و ذخیره شود‪.‬‬
‫برنامهای بنویسید که ابتدا یک عدد طبیعی‬
‫را از ورودی بخواند؛ سپس در سطر دوم ورودی‪،‬‬
‫عدد »)قدر مطلق ًا( خیلی بزرگ« خوانده و حاصل جمع این‬
‫اعداد را در خروجی بنویسد‪ .‬دقّت کنید که اعداد خیلی بزرگ ممکن است در هیچ یک از نوع‪4‬های متعارف جا نشود‪.‬‬
‫•‬
‫حداکثر مقدار ‪ ۱۰ ،‬بوده و هر یک از اعداد خیلی بزرگ صفر‪ ،‬مثبت یا منفی بوده و حداکثر ‪ ۱۰۰‬رقم )بدون عالمت( خواهند داشت‪.‬‬
‫•‬
‫در سمت چپ هیچ عددی در ورودی صفر اضافی وجود ندارد )نظیر ‪ (۰۰۱۲‬و در خروجی نیز این نکته باید رعایت شود‪.‬‬
‫•‬
‫در سمت چپ اعداد منفی تنها یک کاراکتر ‪ -‬قرار دارد و در خروجی نیز این نکته باید رعایت شود‪.‬‬
‫خروجی صحیح‬
‫مثال ورودی‬
‫‪3‬‬
‫‪1000‬‬
‫‪-100‬‬
‫‪10‬‬
‫مثال ورودی‬
‫‪910‬‬
‫خروجی صحیح‬
‫‪3‬‬
‫‪1234567890123456789012345678901234567890‬‬
‫‪-1‬‬
‫‪2011111111111111111111111111111111111112‬‬
‫مثال ورودی‬
‫‪3245679001234567900123456790012345679001‬‬
‫خروجی صحیح‬
‫‪3‬‬
‫‪-100‬‬
‫‪81‬‬
‫‪19‬‬
‫خروجی صحیح‬
‫‪5‬‬
‫‪-50‬‬
‫‪100‬‬
‫‪-60‬‬
‫‪0‬‬
‫‪-9‬‬
‫‪-19‬‬
‫»موفق باشید!«‬
‫‪Type‬‬
‫‪4‬‬
‫تمرین سری سوم درس مبانی برنامهسازی )ترم بهار ‪(۱۳۸۷‬‬
‫مثال ورودی‬
‫‪0‬‬
‫‪7‬‬