Äó½Ð²ÝÂê¡§03²óÌÜ¥ì¥Ý¡¼¥È ËÜʸ¡§ ¡ Ruby²Û»ÒÊÞ¡¢¤ª²Û»Ò ¢ 4ÈÖ¤Þ¤Ç £ £±¡¥ #!/usr/koeki/bin/ruby £²¡¥ # -*- coding: utf-8 -*- £³¡¥ £´¡¥ total = 0 £µ¡¥ £¶¡¥ kasi = Hash.new(0) £·¡¥ £¸¡¥ open("kasi.csv","r:utf-8") do |data| £¹¡¥ while line = data.gets £±£°¡¥ if /(\S+)\s+(\d+)\s+(\d+)/ =~ line £±£±¡¥ kasi[$1] = [$2.to_i,$3.to_i] £±£²¡¥ end £±£³¡¥ end £±£´¡¥ end £±£µ¡¥ £±£¶¡¥ while true £±£·¡¥ print "²¿¤òÇ㤤¤Þ¤¹¤«?(Çã¤ï¤Ê¤¤¾ì¹ç¤Ïexit)\n" £±£¸¡¥ for goods in kasi.keys £±£¹¡¥ printf("%s ",goods) £²£°¡¥ end £²£±¡¥ print"\n" £²£²¡¥ £²£³¡¥ kau = gets.chomp! £²£´¡¥ money = kasi[kau] £²£µ¡¥ £²£¶¡¥ if kau == "exit" £²£·¡¥ break £²£¸¡¥ end £²£¹¡¥ £³£°¡¥ if money == 0 £³£±¡¥ printf("¡Ö%s¡×¤Î¥Ç¡¼¥¿¤Ï¤¢¤ê¤Þ¤»¤ó\n", kau) £³£²¡¥ redo £³£³¡¥ else £³£´¡¥ printf("¡Ö%s¡×¤ÎÃÍÃʤÏ%d±ß¤Ç¤¹\n", kau, money[0]) £³£µ¡¥ end £³£¶¡¥ £³£·¡¥ print "²¿¸ÄÇ㤤¤Þ¤¹¤«?\n" £³£¸¡¥ kosuu = gets.chomp!.to_i £³£¹¡¥ £´£°¡¥ if kosuu > money[1] £´£±¡¥ printf("¤´¤á¤ó¤Ê¤µ¤¤¡¢¡Ö%s¡×¤Îºß¸Ë¤Ï»Ä¤ê%d¸Ä¤·¤«¤Ê¤¤¤Ç¤¹¡£Â¾¤Î¿ôÎ̤Ǥª´ê¤¤¤·¤Þ¤¹¡£\n",kau,money[1]) £´£²¡¥ redo £´£³¡¥ end £´£´¡¥ £´£µ¡¥ money[1] -= kosuu £´£¶¡¥ £´£·¡¥ goukei = money[0] * kosuu £´£¸¡¥ printf("¹ç·×%d±ß¤Ç¤¹¡£\n",goukei) £´£¹¡¥ £µ£°¡¥ total += goukei £µ£±¡¥ £µ£²¡¥ end £µ£³¡¥ £µ£´¡¥ £µ£µ¡¥ printf("Á´ÂΤιç·×¤ÎÃÍÃʤÏ%d±ß¤Ç¤¹¡£¤ªÇ㤤¾å¤²¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£\n",total) ¡ÊCSV¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¡Ë ¤¢¤á 20 50 ¥Á¥ç¥³ 100 20 ¤ï¤¿¤¢¤á 250 10 ¥É¡¼¥Ê¥Ä 150 10 ¥»¥é¥ß¥É3·»Äï 800 3 ¤»¤ó¤Ù¤¤ 50 20 ¥¦¥¨¥Ï¡¼¥¹ 120 20 ¤ª¤ä¤Ä¥é¡¼¥á¥ó 30 10 ¥¼¥ê¡¼ 20 20 ¥°¥ß 130 5 ¤²¿¤òÇ㤤¤Þ¤¹¤«?(Çã¤ï¤Ê¤¤¾ì¹ç¤Ïexit) ¤¢¤á ¥Á¥ç¥³ ¤ï¤¿¤¢¤á ¥É¡¼¥Ê¥Ä ¥»¥é¥ß¥É3·»Äï ¤»¤ó¤Ù¤¤ ¥¦¥¨¥Ï¡¼¥¹ ¤ª¤ä¤Ä¥é¡¼¥á¥ó ¥¼¥ê¡¼ ¥°¥ß ¤¢¤á ¡Ö¤¢¤á¡×¤ÎÃÍÃʤÏ20±ß¤Ç¤¹ ²¿¸ÄÇ㤤¤Þ¤¹¤«? 5 ¹ç·×100±ß¤Ç¤¹¡£ ²¿¤òÇ㤤¤Þ¤¹¤«?(Çã¤ï¤Ê¤¤¾ì¹ç¤Ïexit) ¤¢¤á ¥Á¥ç¥³ ¤ï¤¿¤¢¤á ¥É¡¼¥Ê¥Ä ¥»¥é¥ß¥É3·»Äï ¤»¤ó¤Ù¤¤ ¥¦¥¨¥Ï¡¼¥¹ ¤ª¤ä¤Ä¥é¡¼¥á¥ó ¥¼¥ê¡¼ ¥°¥ß ¤¢¤á ¡Ö¤¢¤á¡×¤ÎÃÍÃʤÏ20±ß¤Ç¤¹ ²¿¸ÄÇ㤤¤Þ¤¹¤«? 100 ¤´¤á¤ó¤Ê¤µ¤¤¡¢¡Ö¤¢¤á¡×¤Îºß¸Ë¤Ï»Ä¤ê45¸Ä¤·¤«¤Ê¤¤¤Ç¤¹¡£Â¾¤Î¿ôÎ̤Ǥª´ê¤¤¤·¤Þ¤¹¡£ ²¿¤òÇ㤤¤Þ¤¹¤«?(Çã¤ï¤Ê¤¤¾ì¹ç¤Ïexit) ¤¢¤á ¥Á¥ç¥³ ¤ï¤¿¤¢¤á ¥É¡¼¥Ê¥Ä ¥»¥é¥ß¥É3·»Äï ¤»¤ó¤Ù¤¤ ¥¦¥¨¥Ï¡¼¥¹ ¤ª¤ä¤Ä¥é¡¼¥á¥ó ¥¼¥ê¡¼ ¥°¥ß ¤¢¤á ¡Ö¤¢¤á¡×¤ÎÃÍÃʤÏ20±ß¤Ç¤¹ ²¿¸ÄÇ㤤¤Þ¤¹¤«? 10 ¹ç·×200±ß¤Ç¤¹¡£ ²¿¤òÇ㤤¤Þ¤¹¤«?(Çã¤ï¤Ê¤¤¾ì¹ç¤Ïexit) ¤¢¤á ¥Á¥ç¥³ ¤ï¤¿¤¢¤á ¥É¡¼¥Ê¥Ä ¥»¥é¥ß¥É3·»Äï ¤»¤ó¤Ù¤¤ ¥¦¥¨¥Ï¡¼¥¹ ¤ª¤ä¤Ä¥é¡¼¥á¥ó ¥¼¥ê¡¼ ¥°¥ß ¤»¤ó¤Ù¤¤ ¡Ö¤»¤ó¤Ù¤¤¡×¤ÎÃÍÃʤÏ50±ß¤Ç¤¹ ²¿¸ÄÇ㤤¤Þ¤¹¤«? 5 ¹ç·×250±ß¤Ç¤¹¡£ ²¿¤òÇ㤤¤Þ¤¹¤«?(Çã¤ï¤Ê¤¤¾ì¹ç¤Ïexit) ¤¢¤á ¥Á¥ç¥³ ¤ï¤¿¤¢¤á ¥É¡¼¥Ê¥Ä ¥»¥é¥ß¥É3·»Äï ¤»¤ó¤Ù¤¤ ¥¦¥¨¥Ï¡¼¥¹ ¤ª¤ä¤Ä¥é¡¼¥á¥ó ¥¼¥ê¡¼ ¥°¥ß ¤¢¤¤¤¹ ¡Ö¤¢¤¤¤¹¡×¤Î¥Ç¡¼¥¿¤Ï¤¢¤ê¤Þ¤»¤ó ²¿¤òÇ㤤¤Þ¤¹¤«?(Çã¤ï¤Ê¤¤¾ì¹ç¤Ïexit) ¤¢¤á ¥Á¥ç¥³ ¤ï¤¿¤¢¤á ¥É¡¼¥Ê¥Ä ¥»¥é¥ß¥É3·»Äï ¤»¤ó¤Ù¤¤ ¥¦¥¨¥Ï¡¼¥¹ ¤ª¤ä¤Ä¥é¡¼¥á¥ó ¥¼¥ê¡¼ ¥°¥ß exit Á´ÂΤιç·×¤ÎÃÍÃʤÏ550±ß¤Ç¤¹¡£¤ªÇ㤤¾å¤²¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£ ¥ 6¹ÔÌÜ¡¢kasi¤¬¶õ¤Î¥Ï¥Ã¥·¥åÊÑ¿ô¤Ç¤¢¤ë¤³¤È¤òÀë¸À¡£ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤key¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢value¤È¤·¤Æ¡Ê¡Ë¤ÎÃæ¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£ £¸¹ÔÌÜ¡¢open¥á¥½¥Ã¥É¤Ç¡Ö¾¦ÉÊ̾¡¢ÃÍÃÊ¡¢ºß¸Ë¿ô¡×¤¬½ñ¤«¤ì¤¿csv¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¡¢data¤Ë³ÊǼ¡£ £¹¹ÔÌÜ¡¢¥Õ¥¡¥¤¥ë¤«¤é½ç¼¡ÆÉ¤ß¹þ¤à¡£ 10¹ÔÌÜ¡¢Àµµ¬É½¸½¡£ 11¹ÔÌÜ¡¢Àµµ¬É½¸½¤Ë¥Þ¥Ã¥Á¤µ¤»$1~¤Ç¼è¤ê½Ð¤·³Æ¥Ï¥Ã¥·¥å¤ËÂåÆþ¡£ 18¡Á20¹ÔÌÜ¡¢kasi¤È¤¤¤¦¥Ï¥Ã¥·¥åÊÑ¿ô¤Îkey¤ÎÉôʬ¤ò½ç¼¡goods¤È¤¤¤¦ÊÑ¿ô¤ËÂåÆþ¤·¤Æ¤æ¤¡¢É½¼¨¤¹¤ë¡£¤³¤Î¥×¥í¥°¥é¥à¤Î¾ì¹çkey¤Ï¾¦ÉÊ̾¤ÎÉôʬ¤Ë¤Ê¤ë¡£ 23¹ÔÌÜ¡¢kau¤È¤¤¤¦ÊÑ¿ô¤Ë²¿¤òÇ㤦¤«¡¢É½¼¨¤µ¤ì¤¿¾¦ÉÊ̾¤òÆþÎϤ·¤Æ¤â¤é¤¦¡£ 24¹ÔÌÜ¡¢money¤È¤¤¤¦ÊÑ¿ô¤Ëkasi¤Îvalue¡Êkey¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿¥Ç¡¼¥¿¡Ë¤òÂåÆþ¡£ kasi[kau]¤Î¤è¤¦¤Ë¡¢[]¤ÎÃæ¤Îʸ»ú¤È·ë¤Ó¤Ä¤±¤é¤ì¤ë¡£Î㤨¤Ðkau¤È¤¤¤¦ÊÑ¿ô¤Ë¥°¥ß¤òÆþ¤ì¤Æ¤¤¤ì¤Ðkasi[¥°¥ß]¤È¤Ê¤ê¡¢money¤Ë¤Ï¥°¥ß¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤¿¥Ç¡¼¥¿¤¬Æþ¤ë¡£ 26¡Á28¹ÔÌÜ¡¢¾¦ÉÊ̾¤òÆþÎϤ¹¤ë¤È¤exit¤ÈÆþÎϤ·¤¿ºÝ¡¢·«¤êÊÖ¤·¤«¤éÈ´¤±¤ë¡£ 30¡Á35¹ÔÌÜ¡¢money¤ÎÃͤ¬£°¡¢¤Ä¤Þ¤êÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤key¤¬»ØÄꤵ¤ì¤¿»þ¤Ë¡¢¡ÖÆþÎϤµ¤ì¤¿¥Ç¡¼¥¿¤Ï¸ºß¤·¤Ê¤¤¡×¤È¤¤¤¦»ö¤òɽ¼¨¡£ ¤½¤ì°Ê³°¤ÎÃͤÇÃÍÃʤòɽ¼¨¡£ 40¡Á43¹ÔÌÜ¡¢kosuu¤ËÆþÎϤµ¤ì¤¿Ãͤ¬money[1]¡Êºß¸Ë¿ô¡Ë¤è¤ê¿¤«¤Ã¤¿¾ì¹ç¡¢ºÆÆþÎϤòÂ¥¤¹¡£money[1]¤È¤¤¤¦¤Î¤Ï¡¢value¤Î¤Ê¤«¤Ë¤Ï¥Ç¡¼¥¿¤¬£²¤ÄÆþ¤Ã¤Æ¤¤¤ë¤¿¤áÇÛÎó¤òÍѤ¤¤ë¤³¤È¤Ç¡¢²¿¸ÄÌܤΥǡ¼¥¿¤«¤ò»ØÄê¤Ç¤¤ë¡£ 45¹ÔÌÜ¡¢ºß¸Ë¤ÏÃíʸ¤¹¤ë¤¿¤Ó¸º¤Ã¤Æ¤¤¤¯¤¿¤ákosuu¤ËÆþÎϤµ¤ì¤¿Ãͤº¤Ä°ú¤¤¤Æ¤¤¤¯¡£ 47¹ÔÌÜ¡¢¤½¤Î»þ¤ËÃíʸ¤·¤¿¹ç·×¶â³Û¤òµá¤á¤ë¡£money[0]¤Ïvalue¤Î1ÈÖÌܤΥǡ¼¥¿¤Î¤³¤È¤Ç¤¢¤ë¡£ 50¹ÔÌÜ¡¢ºÇ½ªÅª¤Ê¹ç·×¶â³Û¤òµá¤á¤ë¡£ ¦ 5Èְʹߤ¬Æñ¤·¤«¤Ã¤¿¡£¥Õ¥¡¥¤¥ë¤ÎÆþ½ÐÎϤò¤Ä¤«¤¨¤ÐÎɤ¤¤È¹Í¤¨¤¿¤¬¡¢ºß¸Ë¿ô¤ò¥Ô¥ó¥Ý¥¤¥ó¥È¤ÇÊѹ¹¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤«¤ï¤«¤é¤Ê¤«¤Ã¤¿¡£¤Þ¤¿Ä©À路¤Æ¤ß¤¿¤¤¡£ źÉÕ¡§ ruby2-2-3.rb kasi.csv