Äó½Ð²ÝÂê¡§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