Assignment1.pdf

‫تمرین سری اول‬
‫درس برنامهنویسی شیءگرا‬
‫موعد ارسال‪ :‬چهارشنبه ‪ 14‬اسفند ‪1389‬‬
‫کاهیار اللَْردی‬
‫تمرین سری اول برنامه سازی شیءگرا‬
‫مهلت تحویل‪ :‬چهارشنبه ‪ 41‬اسفند ‪4319‬‬
‫نکات کلی‬
‫‪ٍ ‬رٍدی تزًاهِّا ٍرٍدی استاًذارد ‪ ٍ #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 for end of input‬‬
‫))(‪if (!sc.hasNextLine‬‬
‫;‪return‬‬
‫تزای هطاّذُ کالس ‪ ٍ Scanner‬لیست تَاتع آى هی تَاًیذ تِ آدرس سیز هزاجعِ کٌیذ‪:‬‬
‫‪http://java.sun.com/javase/6/docs/api/java/util/Scanner.html‬‬
‫‪ ‬هطخصات کلی توزیي ّا تِ ایي ضزح است‪:‬‬
‫نام کالس‬
‫نام فایل‬
‫نمره‬
‫توزیي ‪1‬‬
‫‪BinaryMult‬‬
‫‪BinaryMult.java‬‬
‫‪15‬‬
‫توزیي ‪2‬‬
‫‪Interpreter‬‬
‫‪Interpreter.java‬‬
‫‪35‬‬
‫توزیي ‪3‬‬
‫‪MicroSudoku‬‬
‫‪MicroSudoku.java‬‬
‫‪20‬‬
‫توزیي ‪4‬‬
‫‪Deduction‬‬
‫‪Deduction.java‬‬
‫‪30‬‬
‫تزًاهِ ّایی کِ قثالً در ستاى ‪ C‬هی ًَضتیذ را در جاٍا ًیش تٌَیسیذ‪.‬‬
‫‪ ‬تزای ارسال توزیي تِ آدرس سیز هزاجعِ کٌیذ‪:‬‬
‫‪http://judge.ce.sharif.edu/‬‬
‫تَجِ ًواییذ کِ تایذ ّز کذام اس فایلّای ‪ .java‬را تؽَر جذاگاًِ ارسال ًواییذ‪$ .‬تؽَر دقیقتز‪ً ،‬ثایذ تواهی آًْا‬
‫را ‪ zip‬کٌیذ!‪#‬‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫‪ّ ‬ذف ایي توزیي‪ ،‬آسهایص تزقزاری ارتثاغ ضوا تا جاٍاست‪ .‬پس اس ایي توزیي ضوا تایذ تزاحتی تتَاًیذ توام‬
‫‪1‬‬
‫‪ ‬هَعذ تحَیل ساعت ‪$ 11:59‬ظْز‪ #‬رٍس چْارضٌثِ ‪ 14‬اسفٌذ تَدُ ٍ تِ ّیچ عٌَاى توذیذ ًخَاّذ ضذ‪.‬‬
‫‪ ‬تأخیز تا ‪ 1‬ساعت‪ ،‬تِ اسای ّز ‪ 3‬دقیقِ هَجة کسز ضذى ‪ً "1‬وزُ‪ ،‬اس ‪ 1‬ساعت تا ‪ 24‬ساعت هَجة کسز ضذى‬
‫‪ً "22‬وزُ‪ ،‬اس ‪ 24‬ساعت تا ‪ 25‬ساعت‪ ،‬تِ اسای ّز ‪ 2‬دقیقِ هَجة کسز ضذى ‪ً "1‬وزُی دیگز ٍ تیي ‪ 25‬ساعت‬
‫تا ‪ 48‬ساعت تاعث کسز ضذى ‪ً "52‬وزُ هیضَد‪ .‬تأخیز تیطتز اس ‪ 48‬ساعت قاتل قثَل ًیست‪.‬‬
‫‪ ‬قؽع تَدى ایٌتزًت خَاتگاُ‪ ،‬کٌذی پایگاُ ایٌتزًتی داًطکذُ‪ ،‬توام ضذى کارت ایٌتزًت ٍ … ّیچکذام دلیل‬
‫هَجْی تزای تأخیز ًیستٌذ‪ .‬تٌاتزایي پیطٌْاد هیضَد جَابّای خَد را در دانشکذه ارسال کٌیذ‪.‬‬
‫‪ ‬اس آًجایی کِ هوکي است تصحیح تِ ضکل خَد کار اًجام ضَد در ًتیجِ عذم رعایت ًکات ظزیف هاًٌذ ًام‬
‫هتذّا ٍ ‪ ...‬هَجة اختالل در رًٍذ تصحیح ‪ً ٍ$‬وزُ‪ #‬خَاّذ ضذ‪.‬‬
‫‪ ‬تالش تزای استفادُ اس هٌاتع سیستن هاًٌذ کارت صذا ٍ پزیٌتز ٍ ًَضتي تِ فایل ٍ ‪ ...‬هٌجز تِ دریافت ًوزُی‬
‫صفز در ایي توزیي هیضَد‪.‬‬
‫‪ ‬کالسّا ٍ هتذّای گفتِ ضذُ در آىّا حذاقلّای السم ّستٌذ‪ .‬یعٌی ضوا هیتَاًیذ تزای راحتتز ضذى پیادُ‪-‬‬
‫ساسیتاى یا ضیگزاتز ضذى کذتاى تِ ایي کالسّا هتذّای دیگزی اظافِ کٌیذ یا تِ کل توزیي کالسّای‬
‫دیگزی اظافِ کٌیذ‪ٍ .‬لی دقت داضتِ تاضیذ کِ کالسّای گفتِ ضذُ ٍ هتذّای آًْا تایذ تِ ّویي ضکل‪ ،‬هَجَد‬
‫تاضٌذ‪.‬‬
‫‪ ‬سَاالت خَد را تا فزستادى ایویل تِ آدرس ‪ [email protected]‬هؽزح کٌیذ‪.‬‬
‫‪ً ‬حَُ تحَیل حعَری توزیي هتعاقثاً اعالم خَاّذ ضذ‪.‬‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫‪2‬‬
‫تمرین ‪ : 1‬ضرب باینري‬
‫دٍ عذد حذاکثز ‪ 32‬رقوی را در هثٌای دٍ اس ٍرٍدی دریافت کٌیذ ٍ حاصلعزب را در خزٍجی ًوایص دّیذ‪.‬‬
‫صفزّای تیارسش ًثایذ در خزٍجی ًوایص دادُ ضًَذ‪:‬‬
‫‪00110001001  110001001‬‬
‫مثال‬
‫ورودی‬
‫خروجی‬
‫‪1001001100111010111110000001110010010010101010‬‬
‫‪01001001100101100000001011010010‬‬
‫‪1000000000001101‬‬
‫مثال‬
‫ورودی‬
‫خروجی‬
‫‪0‬‬
‫‪0000‬‬
‫‪01010101‬‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫‪3‬‬
‫تمرین ‪ : 2‬مترجم‬
‫یک جولِ تِ ستاى اًگلیسی تِ ضوا دادُ هی ضَد ٍ ضوا تایذ آى را تزجوِ کٌیذ‪ .‬ساختار جوالت تِ ضکل سیز است‪:‬‬
‫‪[subject] [verb] [adjective].‬‬
‫تیي ّزتخص ٍ تخص تعذی یک فاصلِ ٍجَد دارد‪ .‬تَظیحات ّز تخص در اداهِ آهذُ است‪.‬‬
‫ترجمه بخش ]‪:[subject‬‬
‫ترجمه‬
‫]‪[subject‬‬
‫‪shoma‬‬
‫‪man‬‬
‫‪anha‬‬
‫‪ma‬‬
‫‪oo‬‬
‫]‪[others‬‬
‫‪You‬‬
‫‪I‬‬
‫‪They‬‬
‫‪We‬‬
‫‪He/She‬‬
‫]‪[others‬‬
‫ردیف آخز تِ ایي هعٌاست کِ ّزکلوِی دیگزی کِ در ردیف ّای قثلی ًثاضذ‪ ،‬تعذ اس تزجوِ تغییز ًوی کٌذ‪.‬‬
‫ترجمه بخش ]‪:[verb‬‬
‫ترجمه‬
‫شرط‬
‫]‪[verb‬‬
‫‪ast‬‬
‫‪hastam‬‬
‫‪hastid‬‬
‫‪hastand‬‬
‫‪hastim‬‬
‫‪hastand‬‬
‫‬‫‬‫‪after You‬‬
‫‪after They‬‬
‫‪after We‬‬
‫]‪after [others‬‬
‫‪is‬‬
‫‪am‬‬
‫‪are‬‬
‫‪are‬‬
‫‪are‬‬
‫‪are‬‬
‫ترجمه بخش ]‪:[adjective‬‬
‫ساختار ایي تخص سادُتزیي ضکل هوکي است ٍ تٌْا یک اسن است‪.‬‬
‫تزای تزجوِ اتتذا لیست لغات سیز تایذ تزرسی ضَد‪ ،‬در صَرتی کِ کلوِ ٍجَد ًذاضت‪ ،‬تذٍى تغییز در تزجوِ‬
‫تایذ آٍردُ ضَد‪.‬‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫‪4‬‬
‫ترجمه‬
‫]‪[adjective‬‬
‫‪hazer‬‬
‫‪ghayeb‬‬
‫‪nadan‬‬
‫‪bahoosh‬‬
‫‪irani‬‬
‫‪khareji‬‬
‫]‪[anything else‬‬
‫‪present‬‬
‫‪absent‬‬
‫‪fool‬‬
‫‪smart‬‬
‫‪Iranian‬‬
‫‪foreigner‬‬
‫]‪[anything else‬‬
‫ردیف آخز‪ّ ،‬واًٌذ جذٍل ]‪ ،[subject‬تِ هعٌای عذم تغییز در کلوِی ٍرٍدی تعذ اس تزجوِ است‪.‬‬
‫شیوه ترجمه‪:‬‬
‫پس اس تزجوِ ّز تخص‪ ،‬تزای ًوایص تزجوِ ًْایی در خزٍجی تایذ کلوات تزجوِ ضذُ را تِ تزتیة هٌاسة‬
‫ًوایص دّیذ‪:‬‬
‫‪[subject] [adjective] [verb].‬‬
‫تزای ًوًَِ جولِ سیز‪:‬‬
‫‪We are fool.‬‬
‫تِ ایي ضکل تزجوِ هیضَد‪:‬‬
‫‪ma nadan hastim.‬‬
‫‪ ‬در تواهی جذٍلّا کَچک ٍ تشرگ تَدى تواهی حزٍف هْن است‪ .‬تزای هثال کلوِی ‪ you‬تا ‪ You‬هتفاٍت‬
‫است ٍ ًثایذ تِ ‪ shoma‬تزجوِ ضَد‪.‬‬
‫‪ ‬در صَرتیکِ جولِای ّیچ کذام اس حالتّای تخص ]‪ [verb‬را ًذاضت‪ ،‬تذٍى تغییز در ٍرٍدی آى را در خزٍجی‬
‫ًوایص دّیذ‪ .‬تزای ًوًَِ جولِی سیز تعذ اس تزجوِ تایذ تذٍى تغییز در خزٍجی ًوایص دادُ ضَد‪:‬‬
‫‪Ali was Iranian.‬‬
‫‪ ‬هیتَاًیذ فزض کٌیذ تواهی تخصّا تٌْا هیتَاًٌذ کلوات سادُ تاضٌذ ٍ ّیچ فاصلِای داخل ایي تخصّا‬
‫ًویتَاًذ ٍجَد داضتِ تاضذ‪ .‬تزای هثال جوالت سیز در ٍرٍدی ًخَاّذ آهذ‪:‬‬
‫‪This student is Iranian.‬‬
‫‪You are a student.‬‬
‫‪John Doe is an anonymous party.‬‬
‫ورودی‪:‬‬
‫یک هتي کِ تا یک ًقؽِ تِ پایاى رسیذُ تاضذ‪.‬‬
‫خروجی‪:‬‬
‫مثال‬
‫ورودی‬
‫خروجی‬
‫‪man hazer hastam.‬‬
‫‪I am present.‬‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫هتي تزجوِ ضذُ‪.‬‬
‫‪5‬‬
‫مثال‬
‫ورودی‬
They are Iranian.
‫خروجی‬
anha irani hastand.
‫مثال‬
‫ورودی‬
Cubism is Art.
‫خروجی‬
Cubism Art ast.
‫مثال‬
Company went broke.
‫خروجی‬
Company went broke.
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫ورودی‬
6
‫تمرین ‪ : 3‬ميکرو سودوکو‬
‫تایذ یک جذٍل ‪ 3x3‬را تا قَاًیي سیز پز کٌیذ‪:‬‬
‫‪ ‬فقػ اعذاد ‪ 3ٍ2ٍ1‬تایذ در جذٍل تاضٌذ‪.‬‬
‫‪ ‬در ّز سؽز ٍ ّز ستَى ًثایذ عذد تکزاری داضتِ تاضین‪.‬‬
‫‪ ‬هی تَاًیذ فزض کٌیذ ٍرٍدی دقیقاً یک جَاب دارد ٍ هوکي ًیست کِ تیص اس یک جَاب داضتِ تاضذ یا اصالً‬
‫جَاب ًذاضتِ تاضذ‪.‬‬
‫ورودی‪:‬‬
‫‪ 3‬خػ کِ در ّز خػ ‪ 3‬کاراکتز آهذُ است کِ ّز کاراکتز یکی اس حالت ّای }‪ {1,2,3,x‬است‪.‬‬
‫ایي ‪ 3‬خػ تطکیل یک جذٍل ‪ 3x3‬هی دٌّذ‪.‬‬
‫کاراکتزّای ‪ x‬هقذار هطخصی ًذارًذ ٍ تایذ پس اس حل کزدى هقذار آى ّا را تعییي کٌیذ‪.‬‬
‫خروجی‪:‬‬
‫جذٍل حل ضذُ تِ صَرت ‪ 3‬خػ خزٍجی کِ ّز خػ تایذ ‪ 3‬کاراکتز ٍجَد داضتِ تاضذ کِ یکی اس حالت ّای }‪{1,2,3‬‬
‫هی تَاًذ تاضذ‪.‬‬
‫توجه‪ّ :‬ن در ٍرٍدی ٍ ّن در خزٍجی‪ّ ،‬ز کاراکتز تا یک فاصلِ اس کاراکتز تعذی جذا ضذُ است‪.‬‬
‫مثال‬
‫ورودی‬
‫خروجی‬
‫‪x 3 2‬‬
‫‪2 1 x‬‬
‫‪x 2 1‬‬
‫‪1 3 2‬‬
‫‪2 1 3‬‬
‫‪3 2 1‬‬
‫ورودی‬
‫خروجی‬
‫‪3 2 1‬‬
‫‪1 3 2‬‬
‫‪2 1 3‬‬
‫‪x x x‬‬
‫‪1 x 2‬‬
‫‪x 1 3‬‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫مثال‬
‫‪7‬‬
‫تمرین ‪ : 4‬استنتاج‬
‫تعذادی عثارت هٌؽقی کِ هیداًین درست ّستٌذ تِ ضوا دادُ هیضَد‪ .‬ضوا تایذ درستی تواهی گشارُّای هَجَد را‬
‫تزرسی کٌیذ‪ّ .‬ز گشارُ تا یک حزف کَچک اًگلیسی‪$‬اس ‪ a‬تا ‪ً #z‬وایص دادُ هیضَد‪ .‬هیتَاًیذ اس قَاًیي استٌتاج سیز‬
‫استفادُ کٌیذ‪:‬‬
‫‪p&q‬‬
‫‪T‬‬
‫‪F‬‬
‫‪F‬‬
‫‪F‬‬
‫‪p|q‬‬
‫‪T‬‬
‫‪T‬‬
‫‪T‬‬
‫‪F‬‬
‫‪p<=>q‬‬
‫‪T‬‬
‫‪F‬‬
‫‪F‬‬
‫‪T‬‬
‫‪p=>q‬‬
‫‪T‬‬
‫‪F‬‬
‫‪T‬‬
‫‪T‬‬
‫‪~p‬‬
‫‪F‬‬
‫‪F‬‬
‫‪T‬‬
‫‪T‬‬
‫‪q‬‬
‫‪T‬‬
‫‪F‬‬
‫‪T‬‬
‫‪F‬‬
‫‪p‬‬
‫‪T‬‬
‫‪T‬‬
‫‪F‬‬
‫‪F‬‬
‫ّز عثارت هٌؽقی تٌْا یکی اس حاالت جذٍل تاالست‪ ،‬تِ ؼَر هثال ‪ p|q|s‬جشٍ حاالت هَرد ًظز ًیست‪ٍ .‬لی در توام‬
‫حاالت جذٍل تاال‪ ،‬هیتَاى اس ًقیط گشارُ استفادُ کزد‪ ،‬تِ ؼَر هثال ‪ّ p|~q‬ن یک حالت پذیزفتِ است‪.‬‬
‫تزای ًتیجِگیزی هٌؽقی تایذ توام عثارات را تزرسی کٌیذ ٍ درستی گشارُّا را تیاتیذ‪.‬‬
‫راهنمایی‪:‬‬
‫اتتذا اس عثارات تک گشارُای درستی یا ًادرستی گشارُّای هزتَغ را تیاتیذ ‪ ،‬سپس آًقذر تِ جستجَ در عثارات دیگز اداهِ‬
‫دّیذ تا دیگز گشارُ ای ًاهعیي ٍجَد ًذاضتِ تاضذ‪ ،‬یا تِ تٌاقعی تزخَردیذ ٍ یا دیگز تا جستجَ گشارُّای تیطتزی را‬
‫ًویتَاًیذ تعییي کٌیذ‪ .‬تَظیحات ّز کذام اس ایي سِ حالت در تخص خزٍجی آهذُ است‪.‬‬
‫ورودی‪:‬‬
‫در خػ اٍل تعذاد کل گشارُّا ٍارد هی ضَد‪ .‬در خػ تعذی تعذاد عثارات هٌؽقی‪ .‬در خؽَغ تعذی عثارات هٌؽقی تِ‬
‫ٍرٍدی دادُ هیضًَذ‪.‬‬
‫خروجی‪:‬‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫‪8‬‬
‫تزای ّز گشارُ یک خػ خزٍجی ًطاى دادُ هیضَد کِ ّز خػ تِ ضکل سیز درستی یا ًادرستی گشارُ را ًطاى هیدّذ‪:‬‬
‫‪p=true‬‬
‫تزتیة ًوایص گشارُّا در خزٍجی‪ ،‬تِ تزتیة کاراکتزّای گشارُّا تایذ تاضذ‪ .‬تِ ؼَر هثال ًتیجِ گشارُ ‪ p‬تایذ قثل اس گشارُ‬
‫‪ً q‬وایص دادُ ضَد‪.‬‬
‫در صَرتیکِ تزای یکی اس گشارُّا جَاتی پیذا ًطذ یا تیص اس یک جَاب پیذا ضذ‪ ،‬تایذ عثارت سیز ًوایص دادُ ضَد‪:‬‬
‫‪No Answer‬‬
‫تَجِ داضتِ تاضیذ کِ در صَرتی چٌذ جَاب ٍجَد خَاّذ داضت کِ عثارات هٌؽقی کافی تزای تعییي قؽعی درستی‬
‫گشارُّا هَجَد ًثاضٌذ ٍلی در حالتی جَاب ٍجَد ًخَاّذ داضت کِ عثارات هٌؽقی هتٌاقط تاضٌذ‪ ،‬تِ ؼَر هثال یک‬
‫عثارت درستی یک گشارُ را ًتیجِ دّذ ٍ عثارت دیگزی ًادرست تَدى ّواى گشارُ را ًتیجِ دّذ‪.‬‬
‫مثال‬
‫ورودی‬
‫خروجی‬
‫‪2‬‬
‫‪2‬‬
‫‪p‬‬
‫‪q‬‬
‫‪p=true‬‬
‫‪q=true‬‬
‫مثال‬
‫ورودی‬
‫خروجی‬
‫‪2‬‬
‫‪2‬‬
‫‪p‬‬
‫‪p=>q‬‬
‫‪p=true‬‬
‫‪q=true‬‬
‫مثال‬
‫ورودی‬
‫خروجی‬
‫‪2‬‬
‫‪1‬‬
‫‪p=>q‬‬
‫‪No Answer‬‬
‫ورودی‬
‫خروجی‬
‫‪a=true‬‬
‫‪b=false‬‬
‫‪c=true‬‬
‫‪d=true‬‬
‫‪4‬‬
‫‪4‬‬
‫‪b<=>~a‬‬
‫‪a=>c‬‬
‫‪d|~c‬‬
‫‪~b‬‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫مثال‬
‫‪9‬‬
‫مثال‬
‫ورودی‬
‫خروجی‬
‫‪No Answer‬‬
‫‪1‬‬
‫‪2‬‬
‫‪p‬‬
‫‪~p‬‬
‫هَفق تاضیذ‬
‫توزیي سزی اٍل تزًاهِ ساسی ضیءگزا‬
‫‪12‬‬