JAVA_901_HW1_V3.pdf

‫تمرین سری اول‬
‫درس برنامه نویسی شیءگرا‬
‫موعد ارسال‪ :‬جمعه ‪ 92‬مهر ‪0921‬‬
‫تٌْام حاتوی‬
‫هحوذ چگیٌی‬
‫توشیي سشی اٍل تشًاهِ ساصی ضیءگشا‬
‫هْلت تحَیل‪ :‬جمعٍ ‪ 92‬مهر ‪0921‬‬
‫وکات کلی‬
‫‪ٍ ‬سٍدی تشًاهِّا ٍسٍدی استاًذاسد ‪ ٍ #console$‬خشٍخی آًْا ًیض خشٍخی استاًذاسد است‪.‬‬
‫تشای چاج دس خشٍخی استاًذاسد اص تَاتؼی ضثیِ تِ ‪ System.out.println‬استفادُ کٌیذ‪.‬‬
‫تشای خَاًذى اص ٍسٍدی استاًذاسد ًیض اص کالس ‪ Scanner‬تِ ضکل صیش کوک تگیشیذ‪.‬‬
‫‪//Construct a new scanner associated with standard input‬‬
‫;)‪Scanner sc = new Scanner(System.in‬‬
‫‪//Retrieve an integer‬‬
‫;)(‪int x = sc.nextInt‬‬
‫‪//Retrieve a whole line‬‬
‫;)(‪String s = sc.nextLine‬‬
‫‪//Check that the next input is Int‬‬
‫)‪if(sc.hasNextInt() == false‬‬
‫;‪return‬‬
‫تشای هطاّذُ کالس ‪ ٍ Scanner‬لیست تَاتغ آى هی تَاًیذ تِ آدسس صیش هشاخؼِ کٌیذ‪:‬‬
‫‪http://java.sun.com/javase/6/docs/api/java/util/Scanner.html‬‬
‫‪ ‬هطخصات کلی توشیي ّا تِ ایي ضشح است‪:‬‬
‫توشیي ‪1‬‬
‫‪MonotonicStrings‬‬
‫‪MonotonicStrings.java‬‬
‫‪15‬‬
‫توشیي ‪2‬‬
‫‪Derivative‬‬
‫‪Derivative.java‬‬
‫‪15‬‬
‫توشیي ‪3‬‬
‫‪Reverse‬‬
‫‪Reverse.java‬‬
‫‪22‬‬
‫توشیي ‪4‬‬
‫‪Table‬‬
‫‪Table.java‬‬
‫‪22‬‬
‫توشیي ‪5‬‬
‫‪BignumRoot‬‬
‫‪BignumRoot.java‬‬
‫‪45‬‬
‫‪ّ ‬ذف ایي توشیي‪ ،‬آصهایص تشلشاسی استثاط ضوا تا خاٍاست‪ .‬پس اص ایي توشیي ضوا تایذ تشاحتی تتَاًیذ توام‬
‫تشًاهِ ّایی کِ لثالً دس صتاى ‪ C‬هی ًَضتیذ سا دس خاٍا ًیض تٌَیسیذ‪.‬‬
‫‪ ‬تشای اسسال توشیي تِ آدسس صیش هشاخؼِ کٌیذ‪:‬‬
‫‪http://ce.sharif.edu/~whoamI‬‬
‫توشیي سشی اٍل تشًاهِ ساصی ضیءگشا‬
‫توشیي‬
‫وام کالس‬
‫وام فایل‬
‫ومرٌ‬
‫‪1‬‬
‫تَخِ ًواییذ کِ تایذ ّش کذام اص فایلّای ‪ .java‬سا تغَس خذاگاًِ اسسال ًواییذ‪$ .‬تغَس دلیكتش‪ً ،‬ثایذ تواهی آًْا‬
‫سا ‪ zip‬کٌیذ!‪#‬‬
‫‪ ‬هَػذ تحَیل ساػت ‪$ 11:59‬ضة‪ #‬سٍص خوؼِ ‪ 29‬هْش تَدُ ٍ تِ ّیچ ػٌَاى توذیذ ًخَاّذ ضذ‪.‬‬
‫‪ ‬تأخیش تا ‪ 1‬ساػت‪ ،‬تِ اصای ّش ‪ 3‬دلیمِ هَخة کسش ضذى ‪ً "1‬وشُ‪ ،‬اص ‪ 1‬ساػت تا ‪ 24‬ساػت هَخة کسش ضذى‬
‫‪ً "22‬وشُ‪ ،‬اص ‪ 24‬ساػت تا ‪ 25‬ساػت‪ ،‬تِ اصای ّش ‪ 2‬دلیمِ هَخة کسش ضذى ‪ً "1‬وشُی دیگش ٍ تیي ‪ 25‬ساػت‬
‫تا ‪ 48‬ساػت تاػث کسش ضذى ‪ً "52‬وشُ هیضَد‪ .‬تأخیش تیطتش اص ‪ 48‬ساػت لاتل لثَل ًیست‪.‬‬
‫‪ ‬لغ غ تَدى ایٌتشًت خَاتگاُ‪ ،‬کٌذی پایگاُ ایٌتشًتی داًطکذُ‪ ،‬توام ضذى کاست ایٌتشًت ٍ … ّیچکذام دلیل‬
‫هَخْی تشای تأخیش ًیستٌذ‪ .‬تٌاتشایي پیطٌْاد هیضَد خَابّای خَد سا دس داوشکدٌ اسسال کٌیذ‪.‬‬
‫‪ ‬اص آًدایی کِ هوکي است تصحیح تِ ضکل خَد کاس اًدام ضَد دس ًتیدِ ػذم سػایت ًکات ظشیف هاًٌذ ًام‬
‫هتذّا ٍ ‪ ...‬هَخة اختالل دس سًٍذ تصحیح ‪ً ٍ$‬وشُ‪ #‬خَاّذ ضذ‪.‬‬
‫‪ ‬تالش تشای استفادُ اص هٌاتغ سیستن هاًٌذ کاست صذا ٍ پشیٌتش ٍ ًَضتي تِ فایل ٍ ‪ ...‬هٌدش تِ دسیافت ًوشُی‬
‫صفش دس ایي توشیي هیضَد‪.‬‬
‫‪ ‬کالسّا ٍ هتذّای گفتِ ضذُ دس آىّا حذاللّای الصم ّستٌذ‪ .‬یؼٌی ضوا هیتَاًیذ تشای ساحتتش ضذى پیادُ‪-‬‬
‫ساصیتاى یا ضیگشاتش ضذى کذتاى تِ ایي کالسّا هتذّای دیگشی اضافِ کٌیذ یا تِ کل توشیي کالسّای‬
‫دیگشی اضافِ کٌیذ‪ٍ .‬لی دلت داضتِ تاضیذ کِ کالسّای گفتِ ضذُ ٍ هتذّای آًْا تایذ تِ ّویي ضکل‪ ،‬هَخَد‬
‫تاضٌذ‪.‬‬
‫‪ ‬سَاالت خَد سا تا فشستادى ایویل تِ آدسس ‪ java-91-1 @gmail.com‬هغشح کٌیذ‪.‬‬
‫‪ً ‬حَُ تحَیل حضَسی توشیي هتؼالثاً اػالم خَاّذ ضذ‪.‬‬
‫تمریه ‪ :0‬رشتٍی یکىًا‬
‫‪ ‬ضوا تایذ تشًاهِای تٌَیسیذ تا تتَاًذ سضتِّایی کِ حشٍف الفثا ٍ اػذاد آى یکٌَا تاضذ سا تطخیص دّیذ‪.‬‬
‫توشیي سشی اٍل تشًاهِ ساصی ضیءگشا‬
‫‪2‬‬
‫يريدی‪:‬‬
‫ٍسٍدی ضاهل تؼذادی سضتِی هختلف هیتاضذ کِ هوکي است دس چٌذ خظ آهذُ است‪.‬‬
‫خريجی‪:‬‬
‫تؼذاد سضتِّای یکٌَای هَخَد‪.‬‬
‫مثال‬
‫يريدی‬
‫خريجی‬
‫‪4‬‬
‫‪I am Bahram, 15 years old.‬‬
‫تمریه ‪ :9‬مشتق‬
‫تشًاهِای تٌَیسیذ کِ هطتك یک ػثاست تک هتغیشُی تک خولِای خثشی سا تا ّش هشتثِی خَاستِ ضذُ حساب کٌذ‪.‬‬
‫ػالئن تِ کاس سفتِ دس ایي ػثاست هحذٍد تِ ^ ٍ ‪ %‬است‪ .‬هتغیش ّویطِ ‪ x‬است‪ .‬الصم تِ رکش است کِ تَاى یک سا تایذ تِ‬
‫صَست ‪ً x^1‬وایص دّیذ ٍلی تشای تَاى صفش تِ خای ‪ x^0‬ػذد ‪ 1‬سا تِ کاس تشیذ‪ .‬ضوٌاً ضشیة ‪ّ 1‬یچ گاُ ًوایص دادُ‬
‫ًویضَد‪.‬‬
‫مثال‬
‫يريدی‬
‫خريجی‬
‫)‪(6*x^3,2‬‬
‫‪36*x^1‬‬
‫مثال‬
‫يريدی‬
‫خريجی‬
‫‪8‬‬
‫)‪(8*x^1,1‬‬
‫مثال‬
‫خريجی‬
‫‪5*x^4‬‬
‫)‪(x^5,1‬‬
‫توشیي سشی اٍل تشًاهِ ساصی ضیءگشا‬
‫يريدی‬
‫‪3‬‬
‫تمریه ‪ :9‬برعکس کىىدٌ‬
‫‪ ‬ضوا تایذ تشًاهِای عشاحی ًواییذ تا تتَاًذ سضتِّای ٍسٍدی سا دسیافت ًوایذ ٍ سضتِّای هَخَد سا تشػکس چاج‬
‫ًوایذ‪.‬‬
‫‪ ‬اگش سضتِی هَخَد هفَْم ػذدی ًذاضتِ تاضذ ٍ تٌْا حشف اٍل آى تضسگ تاضذ‪ ،‬ضوا تایذ آى حشف سا کَچک‬
‫ًواییذ ٍ پس اص تشػکس کشدى‪ ،‬کاساکتش اٍل آى سا ‪$‬اگش لاتل تضسگ ضذى تاضذ‪ #‬تضسگ ًواییذ‪.‬‬
‫‪ ‬اگش سضتِی هَخَد هفَْم ػذدی ًذاضتِ تاضذ ٍ دس حالت لثل دس آى صذق ًکٌذ‪ ،‬تٌْا آى سا تشػکس ًواییذ‪.‬‬
‫‪ ‬اگش سضتِی هَخَد هفَْم ػذدی داضتِ تاضذ‪ ،‬اگش صحیح تاضذ تایذ حشٍف آى سا تشػکس ًواییذ ٍ صفشّای اٍل‬
‫آى سا حزف کٌیذ‪.‬‬
‫‪ ‬اگش سضتِی هَخَد هفَْم ػذدی داضتِ تاضذ ٍ ػذدی اػطاسی تاضذ ‪ #double$‬تایذ هؼکَس آى سا چاج‬
‫ًواییذ ٍ تا دلت ‪ 4‬سلن اػطاس گشد ضَد‪.‬‬
‫يريدی‪:‬‬
‫ٍسٍدی ضاهل تؼذادی سضتِی هختلف هیتاضذ کِ هوکي است دس چٌذ خظ آهذُ است‪.‬‬
‫خريجی‪:‬‬
‫هتي تشػکس ضذُ‪.‬‬
‫مثال‬
‫يريدی‬
‫خريجی‬
‫‪I ma Ereh .‬‬
‫‪I ma .here‬‬
‫توشیي سشی اٍل تشًاهِ ساصی ضیءگشا‬
‫‪4‬‬
‫‪I am Here .‬‬
‫‪I am Here.‬‬
‫مثال‬
‫يريدی‬
‫خريجی‬
‫‪312 0.5000‬‬
‫تمریه ‪ :4‬جديل‬
‫‪2130 2.0‬‬
‫یک ستات دس یک خذٍل لشاس دادُ ضذُ است‪ .‬دس ّش هشحلِ آدم آٌّی دستَس حشکت تِ یکی اص خْات سا دسیافت‬
‫هیکٌذ ٍ دس صَست اهکاى تِ اًذاصُی یک خاًِ دس آى خْت حشکت هیکٌذ‪ .‬دس خذٍل ها پٌح ًَع خاًِ ٍخَد‬
‫داسد‪.‬‬
‫‪ ‬خاًِی فٌشی ‪ :#J$‬اگش ستات‪ ،‬تِ ایي خاًِ ٍاسد ضَد تِ خاًِی لیٌک ضذُ تِ آى‪ ،‬پشش هیًوایذ‪.‬‬
‫‪ ‬خاًِی دیَاس ‪ :#B$‬ستات‪ً ،‬ویتَاًذ تِ ایي خاًِ ٍاسد ضَد‪.‬‬
‫‪ ‬خاًِی چاُ ‪ :#S$‬ستات‪ ،‬دس صَست ٍسٍد تِ ایي خاًِ کطتِ هیضَد‪.‬‬
‫‪ ‬خاًِی ػادی ‪ :#G$‬ایي خاًِ ّیچ هحذٍدیتی ًذاسد‪.‬‬
‫ضوا تایذ دس هشاحل هختلف پیامّای هٌاسة سا ًطاى دّیذ‪.‬‬
‫تَخِ کٌیذ ستات ّشگض اص خذٍل خاسج ًویضَد‪.‬‬
‫يريدی‪:‬‬
‫‪ ‬دس خظ اٍل ٍسٍدی دٍ ػذد ‪ m ،n‬کِ تِ تشتیة تؼذاد سغشّا ٍ ستَىّای خذٍل سا هطخص هیکٌذ‪.‬‬
‫‪ ‬پس اص آى ‪ m‬سغش‪ّ ،‬ش کذام ضاهل ‪ n‬سضتِ‪ ،‬کِ ًطاى دٌّذُی ًَع خاًِّا است‪ ،‬آهذُ است‪.‬‬
‫‪ ‬تَخِ ًواییذ خاًِّای فٌشی تِ صَست «)‪ً »J(i, j‬وایص دادُ هیضًَذ کِ ًطاى هیدّذ‪ ،‬خاًِی هَسد ًظش تِ‬
‫خاًِی ‪ #i, j$‬لیٌک ضذُ است‪ .‬تَخِ کٌیذ تمیِ خاًِّا تِ صَست یک حشفی تَصیف هیضًَذ‪.‬‬
‫‪ ‬پس اص آى دستَس «)‪ »init(i, j, name‬کِ ًطاى هی دّذ کِ ستات تا اسن هَسد ًظش سا دس خاًِی «‪»#i, j$‬‬
‫لشاس هیدّذ‪.‬‬
‫‪ ‬پس اص آى تِ تؼذاد دلخَاّی حشف «‪ »L R U D P‬تِ صَست خذا خذا‪ ،‬هیآیذ‪.‬‬
‫دس صَست ٍخَد هطکل دس ّش هشحلِ‪ً »Error.« ،‬طاى دادُ ضَد ٍ اص تشًاهِ خاسج ضَیذ‪ .‬تَخِ کٌیذ دس ایي سَال‪،‬‬
‫هوکي است خغا تِ صَست هفَْهی ٍخَد داضتِ تاضذ ٍلی تضویي هیضَد ٍسٍدی تِ ضکل صحیح ٍاسد ضذُ است‪.‬‬
‫دس صَست آهذى حشف ‪ P‬تایذ هکاى ستات تِ صَست «‪ »#i, j$‬چاج ضَد کِ دس آى ‪ i‬ضواسُی سغش ٍ ‪ j‬ضواسُی ستَى‬
‫هیتاضذ‪.‬‬
‫دس صَست اًدام ًطذى حشکت تِ ّش دلیلی ػثاست ”‪ “Impossible Move.‬چاج ضَد‪.‬‬
‫توشیي سشی اٍل تشًاهِ ساصی ضیءگشا‬
‫خريجی‪:‬‬
‫‪5‬‬
‫دس صَست کطتِ ضذى ستات‪ ،‬تایذ پیغام "‪ "$name has been killed.‬سا ًطاى تذّیذ ٍ اص تشًاهِ خاسج ضَیذ‪.‬‬
‫مثال‬
‫يريدی‬
‫خريجی‬
‫‪Impossible Move.‬‬
‫)‪(1, 1‬‬
‫)‪(1, 2‬‬
‫‪Impossible Move.‬‬
‫)‪(1, 1‬‬
‫‪Soren has been killed.‬‬
‫‪23‬‬
‫‪GGB‬‬
‫‪S J(1,1) G‬‬
‫)’‪init(1,1, ‘Soren‬‬
‫‪L‬‬
‫‪P‬‬
‫‪R‬‬
‫‪P‬‬
‫‪R‬‬
‫‪D‬‬
‫‪P‬‬
‫‪D‬‬
‫‪P‬‬
‫تمریه ‪ :5‬تًان اعداد خیلی بزرگ‬
‫‪ ‬هیخَاّین یک تشًاهِ تٌَیسین‪ ،‬کِ تتَاًذ تَاى گَیای یک ػذد سا هحاسثِ کٌذ‪.‬‬
‫‪ ‬ػذدی کِ تِ تَاى خَاّذ سسیذ‪ ،‬یک ػذد صحیح حذاکثش ‪ 62‬سلوی هیتاضذ‪.‬‬
‫‪ً ‬وای تَاى‪ ،‬یک ػذد کسشی تِ صَست ‪ a / b‬هیتاضذ کِ دس آى ‪ b ،a‬اػذادی صحیح کِ دس هتغیشی اص خٌس‬
‫"‪ ،"integer‬خا هیضًَذ‪.‬‬
‫‪ ‬خغاّای هوکي دس تشًاهِ دٍ حالت داسد‪ .‬یکی ایٌکِ ٍسٍدی تِ ضکل استاًذاسد ًثاضذ‪ .‬هثالً ػذد دٍم اػطاسی‬
‫تاضذ‪ .‬یکی ایٌکِ اص ًظش هفَْم سیاضی ًادسست تاضذ‪ .‬تشًاهِی ضوا تایذ دس صَست ٍلَع خغا‪ ،‬آى سا تطخیص‬
‫توشیي سشی اٍل تشًاهِ ساصی ضیءگشا‬
‫‪6‬‬
‫دّذ ٍ ػثاست «‪ »Error.‬سا ًطاى دّذ‪.‬‬
‫‪ ‬دس ٍسٍدی چْاس سضتِ آهذُ است‪ٍ .‬سٍدی تشًاهِ تِ گًَِای است کِ ‪ّ a‬وَاسُ اص ‪ 7‬کَچکتش است‪ .‬دس صَستی‬
‫کِ خَاب تَاى ػذدی صحیح ًثاضذ ضوا تایذ اٍلیي ػذد صحیح کَچکتش اص آى سا تِ ػٌَاى خَاب ًوایص‬
‫دّیذ‪.‬‬
‫مثال‬
‫يريدی‬
‫خريجی‬
‫‪-15‬‬
‫‪6 / 4‬‬
‫‪58‬‬
‫مثال‬
‫يريدی‬
‫خريجی‬
‫‪Error.‬‬
‫‪Mohammad‬‬
‫‪1 / 0.0‬‬
‫هَفك تاضیذ‬
‫توشیي سشی اٍل تشًاهِ ساصی ضیءگشا‬
‫‪7‬‬