diff --git "a/\043evenodd.rb\043" "b/\043evenodd.rb\043" new file mode 100755 index 0000000..6c6ae92 --- /dev/null +++ "b/\043evenodd.rb\043" @@ -0,0 +1,15 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +while true + x = gets.chomp + if x == "q" then + break + end + sum = x.to_i + if sum%2 == 0 + print "偶数です\n" + else + print "奇数です\n" + end +end diff --git "a/\043filed-search.rb\043" "b/\043filed-search.rb\043" new file mode 100644 index 0000000..56a5d61 --- /dev/null +++ "b/\043filed-search.rb\043" @@ -0,0 +1,18 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +require 'csv' +search = CSV.read(ARGV[0], headers:true) + +0 = ["SoC"] +1 = ["AnTuTu_score"] +2 = ["GPU_score"] +3 = ["測定機種"] + +print "何番のフィールドで検索しますか: " +soku = STDIN.gets.chomp + +data.each do |row| + if soku == row["測定機種"] + printf("%sのAnTuTu_scoreは%sです。\n", row["SoC"], row["AnTuTu_score"]) + end +end \ No newline at end of file diff --git "a/\043meibosearch.rb\043" "b/\043meibosearch.rb\043" new file mode 100755 index 0000000..cc9657e --- /dev/null +++ "b/\043meibosearch.rb\043" @@ -0,0 +1,15 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' +meibo = CSV.read(ARGV[0], headers:true) + +print "検索パターン: " +pattern = STDIN.gets.chomp! +regexp = Regexp.new(pattern, nil) + +meibo.each do |row| + line = row.to_s + if regexp =~ line + print line + end +end diff --git "a/\043mydata-N.rb\043" "b/\043mydata-N.rb\043" new file mode 100755 index 0000000..f3a22a5 --- /dev/null +++ "b/\043mydata-N.rb\043" @@ -0,0 +1,22 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +score = CSV.read(ARGV[0], headers:true) + +lower = ARGV[1].to_f # 指定されないとARGV[1]は nil になる +upper = ARGV[2].to_f # 指定されないとARGV[2]は nil になる +score.each do |record| + +height = record["AnTuTu_score"].to_f + + if ARGV[2] + if lower <= height && height <= upper + printf("%sのAnTuTu_scoreは%dです.\n", record["測定機種"], height) + end + else + if lower <= height + printf("%sのAnTuTu_scoreは%dです.\n", record["測定機種"], height) + end + end +end diff --git "a/\043score1.rb\043" "b/\043score1.rb\043" new file mode 100644 index 0000000..e69de29 --- /dev/null +++ "b/\043score1.rb\043" diff --git "a/\043word2.rb\043" "b/\043word2.rb\043" new file mode 100755 index 0000000..4b6c400 --- /dev/null +++ "b/\043word2.rb\043" @@ -0,0 +1,12 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +tango = CSV.read("word2.csv") + +tango.each do |row| # 1レコードの値の集合が配列でrowに入る + # rowには [第1列の項目, 第2列の項目] の配列が毎回入る + printf("「%s」といえば?", row[0]) + gets + printf("「%s」です\n", row[1]) +end \ No newline at end of file diff --git a/accum.rb b/accum.rb new file mode 100755 index 0000000..f7392bf --- /dev/null +++ b/accum.rb @@ -0,0 +1,14 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +sum = 0 +while true + STDERR.print "足したい数(終了は q): " + line = gets.chomp + if line == "q" then + break + end + sum += line.to_i + printf("これまでの合計は %d です\n", sum) +end +printf("合計は %d です\n", sum) diff --git a/akita-2024.csv b/akita-2024.csv new file mode 100644 index 0000000..a41aa43 --- /dev/null +++ b/akita-2024.csv @@ -0,0 +1,32 @@ +区分,読み,人口,面積,人口密度 +秋田市,あきたし,300096,906.07,331.21 +能代市,のしろし,46967,426.95,110.01 +横手市,よこてし,80647,692.8,116.41 +大館市,おおだてし,65665,913.22,71.9 +男鹿市,おがし,22971,241.09,95.28 +湯沢市,ゆざわし,39298,790.91,49.69 +鹿角市,かづのし,27007,707.52,38.17 +由利本荘市,ゆりほんじょうし,71421,1209.59,59.05 +潟上市,かたがみし,31068,97.72,317.93 +大仙市,だいせんし,73637,866.79,84.95 +北秋田市,きたあきたし,27917,1152.76,24.22 +にかほ市,にかほし,22068,241.13,91.52 +仙北市,せんぼくし,22780,1093.56,20.83 +鹿角郡,かづのぐん,4455,201.7,22.09 +小坂町,こさかまち,4455,201.7,22.09 +北秋田郡,きたあきたぐん,1840,256.72,7.17 +上小阿仁村,かみこあにむら,1840,256.72,7.17 +山本郡,やまもとぐん,22678,764.26,29.67 +藤里町,ふじさとまち,2630,282.13,9.32 +三種町,みたねちょう,14022,247.98,56.54 +八峰町,はっぽうちょう,6026,234.14,25.74 +南秋田郡,みなみあきたぐん,20193,449.98,44.88 +五城目町,ごじょうめまち,7804,214.92,36.31 +八郎潟町,はちろうがたまち,5241,17,308.29 +井川町,いかわまち,4285,47.95,89.36 +大潟村,おおがたむら,2863,170.11,16.83 +仙北郡,せんぼくぐん,17431,168.32,103.56 +美郷町,みさとちょう,17431,168.32,103.56 +雄勝郡,おがちぐん,15417,434.46,35.49 +羽後町,うごまち,12854,230.78,55.7 +東成瀬村,ひがしなるせむら,2563,203.69,12.58 diff --git a/asgmt_ruby_01.rb b/asgmt_ruby_01.rb new file mode 100755 index 0000000..551a936 --- /dev/null +++ b/asgmt_ruby_01.rb @@ -0,0 +1,14 @@ +#! /usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +def speed(km, h) + hayasa = km/h +end + +STDERR.puts"距離は何キロですか?\n" +km = gets.chomp!.to_f +STDERR.puts"時間は何時間ですか?\n" +h = gets.chomp!.to_f +speed(km, h) + +printf("%.2f km/h です\n", speed(km, h)) diff --git a/avg-me.rb b/avg-me.rb new file mode 100755 index 0000000..e872f67 --- /dev/null +++ b/avg-me.rb @@ -0,0 +1,16 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +seiseki = CSV.read(ARGV[0], headers: true) +seiseki.each do |row| # レコードごとに値をrowに入れて繰り返す + math = row["数学"].to_i # 添字 "数学" で数学欄の値 .to_iで整数化 + eng = row["英語"].to_i # 添字 "英語" で英語欄の値 .to_iで整数化 + sum = 0 + seiseki["数学"].each do |pt| + sum += pt.to_f + end + avg = seiseki["数学"].sum{|pt| pt.to_f}.to_f/seiseki.length + avg1 = seiseki["英語"].sum{|pt| pt.to_f}.to_f/seiseki.length + printf("数学の平均は%d点、\n英語の平均は%d点です。\n", avg, avg1) +end diff --git a/brick.rb b/brick.rb new file mode 100755 index 0000000..e9ec640 --- /dev/null +++ b/brick.rb @@ -0,0 +1,17 @@ +#! /usr/koeki/bin/ruby +# -*- coding:utf-8 -*- + +# nとn-1を足したものである。ただしn-1は1までとする。 + +def tumiki(n) + if n == 1 + 1 + else + n + tumiki(n-1) + end +end + +STDERR.puts"積み木で何段の家を建てたいですか?" +STDERR.puts"自然数を入力してください" +n = gets.to_i +printf("%d階建ての家を立てるには%d個の積み木が必要です。\n", n, tumiki(n)) diff --git a/count3.rb b/count3.rb new file mode 100755 index 0000000..9537dc7 --- /dev/null +++ b/count3.rb @@ -0,0 +1,17 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +sum = 0 +while true + STDERR.print "数を入力(終了は q): " + line = gets.chomp + if line == "q" then + break + end + + if line.to_i % 3 == 0 && line.to_i != 0 + sum += 1 + end + printf("これまでの3の倍数の合計は %d 個です\n", sum) +end +printf("3の倍数の合計は %d 個でした\n", sum) diff --git a/csv-name.rb b/csv-name.rb new file mode 100755 index 0000000..597c7c9 --- /dev/null +++ b/csv-name.rb @@ -0,0 +1,8 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +require 'csv' + name = CSV.read("score.csv") + name.each do |row| + printf("%s\n", row[0]) +end diff --git a/cur-hello.rb b/cur-hello.rb new file mode 100644 index 0000000..7b233a3 --- /dev/null +++ b/cur-hello.rb @@ -0,0 +1,15 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'curses' +include Curses + +init_screen # スクリーンを初期化する + +begin + setpos(4, 9) # 5行目の10桁目(0から数えるため) + addstr("こんにちは") + refresh # 出力を画面に反映させる + sleep 3 # これがないとすぐ消えてしまうため +ensure + close_screen +end diff --git a/cur-jump.rb b/cur-jump.rb new file mode 100755 index 0000000..de2f448 --- /dev/null +++ b/cur-jump.rb @@ -0,0 +1,54 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +# Ruby1.9 Ready +# cursesを用いて●を動かす +require 'curses' +include Curses +noecho # エコーバックなし +cbreak # Returnなしで即入力 +Curses.timeout = 0 # 入力は待たない + +init_screen # 画面も消える +ball = "●" +kesu = " " +wait = 0.03 # タイマー + +x = 0 +y = lines-2 # 下から2行目 +j = 0 # ジャンプの高さ +jmax = 6 # 2ステップ分高度をあげる +jnow = 0 # 現在のステップ(0〜3) + +setpos(1, 0) +addstr("SPCでジャンプ!") +setpos(y-5, cols/2+rand(3)) # ランダムに決めた位置に +addstr("★") # ★を置く +begin + h = y-1 # 高さの初期値をセットしておく + while x < cols # 右から左へ + setpos(h, x-1) # カーソルを今の位置へ + addstr(kesu) # 前のボールを消す + x += 1 + h = y-1 - ((jmax-jnow)*jnow/2) # ジャンプは2次曲線 + setpos(h, x-1) # カーソルを次の位置へ + addstr(ball) # ボールを書く + setpos(0,0) # カーソルを邪魔でないところへ + refresh # これをしないと画面に反映されない + if jnow > 0 then + jnow -= 1 # ジャンプ中の処理 + getch # ジャンプ中に押されたキーは捨てる + else + key = getch + if key == " "[0] # SPCだったら + jnow = jmax # ジャンプ開始 + end + end + sleep(wait) # 一定時間休む + end + setpos(y-1, 0) + addstr("おしまい\n") + refresh # 最後も忘れずに + sleep 3 +ensure + close_screen +end diff --git a/daichusho.rb b/daichusho.rb new file mode 100644 index 0000000..d3e23e8 --- /dev/null +++ b/daichusho.rb @@ -0,0 +1,10 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +meibo = CSV.read("akita-2024.csv", headers:true) +meibo.each do |row| + if /大?中?小/i =~ row["区分"] + print row.to_s + end +end diff --git a/dataread.rb b/dataread.rb new file mode 100755 index 0000000..6b66c5d --- /dev/null +++ b/dataread.rb @@ -0,0 +1,9 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +require 'csv' + +name = CSV.read("score.csv") +name.each do |row| + printf("%s:%5s点\n", row[0] ,row[1]) +end diff --git a/dist/life_gacha.rb b/dist/life_gacha.rb new file mode 100755 index 0000000..669ec45 --- /dev/null +++ b/dist/life_gacha.rb @@ -0,0 +1,198 @@ +#!/usr/koeki/bin/ruby +# coding: utf-8 +#学校の環境で動かす場合は/usr/koeki/bin/rubyを使用する +#-*- coding: utf-8 -*- +require 'csv' +csv_data = CSV.read('zinnsei.csv', headers: true) +puts'-----------------------------------------------------------------------------' +puts' ██╗ ██╗███████╗███████╗ ██████╗ █████╗ ██████╗██╗ ██╗ █████╗' +puts' ██║ ██║██╔════╝██╔════╝ ██╔════╝ ██╔══██╗██╔════╝██║ ██║██╔══██╗' +puts' ██║ ██║█████╗ █████╗ ██║ ███╗███████║██║ ███████║███████║' +puts' ██║ ██║██╔══╝ ██╔══╝ ██║ ██║██╔══██║██║ ██╔══██║██╔══██║' +puts' ███████╗██║██║ ███████╗ ╚██████╔╝██║ ██║╚██████╗██║ ██║██║ ██║' +puts' ╚══════╝╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝' +puts'-----------------------------------------------------------------------------' +puts'LOADING NOW...' +sleep(2) + + +print("新たな人生が始まる予感...そなたの名は: ") +name = gets.chomp +printf("あなたは%sとして地球に生誕した\n", name) +sleep(2) + +lifepoint = rand(8..14)#8~14の間でランダムに数字を選ぶ + +#ここから人生ゲームの主要のプログラム +#受け答えのときのセリフは、「人生の分かれ道」と表示させて選択を表示させる +#+-の内容はこれから考える。なるべく時間がかからないようにする +#lifepointが0になったら、強制終了(急死、早死、etc...) + +print("あなたはこの地球に生まれた。ここからいくつかの試練が来るだろう\n") +puts'----------------------------------------------------' +sleep(2) +#------------------------- bignnining of main program ------------------------- +#1st question +printf("人生の分かれ道:第一問\n") +printf("1.%sは学び続ける人生を歩むか\n",name) +printf("2.%sは遊び続ける人生を歩むか\n",name) +print("1か2で選択するのだ\n") +gacha = gets.chomp.to_i +sleep(2) +if gacha == 1 + printf("あなたは学びの道を選んだ\n") + lifepoint += 1 +else + printf("あなたは遊びの道を選んだ\n") + lifepoint -= 1 +end +puts'----------------------------------------------------' +if lifepoint <= 0 + puts "あなたは原因不明の急死により人生を全うできませんでした..." + exit # プログラムを強制終了 +end +sleep(2) + +#2ed question +printf("人生の分かれ道:第二問\n") +printf("1.%sは習い事をするか\n",name) +printf("2.%sはこもってゲームをしまくるか\n",name) +print("1か2で選択するのだ\n") +gacha = gets.chomp.to_i +sleep(2) +if gacha == 1 + printf("あなたは学びの道を選んだ\n") + lifepoint += 1 +else + printf("あなたは遊びの道を選んだ\n") + lifepoint -= 1 +end +puts'----------------------------------------------------' +if lifepoint <= 0 + puts "あなたは原因不明の急死により人生を全うできませんでした..." + exit # プログラムを強制終了 +end +sleep(2) + +#3rd question +printf("人生の分かれ道:第三問\n") +printf("1.%sは受験勉強をするか\n",name) +printf("2.%sは他のことに夢中になるか\n",name) +print("1か2で選択するのだ\n") +gacha = gets.chomp.to_i +sleep(2) +if gacha == 1 + printf("あなたは学びの道を選んだ\n") + lifepoint += 1 +else + printf("あなたは遊びの道を選んだ\n") + lifepoint -= 1 +end +puts'----------------------------------------------------' +if lifepoint <= 0 + puts "あなたは原因不明の急死により人生を全うできませんでした..." + exit # プログラムを強制終了 +end +sleep(2) + +#4th question +printf("人生の分かれ道:第四問\n") +printf("1.%sは就活を頑張るか\n",name) +printf("2.%sはサークルを全力で楽しむか\n",name) +print("1か2で選択するのだ\n") +gacha = gets.chomp.to_i +sleep(2) +if gacha == 1 + printf("あなたは働く意義を得た\n") + lifepoint += 1 +else + printf("あなたは全力で遊ぶ意義を得た\n") + lifepoint -= 1 +end +puts'----------------------------------------------------' +if lifepoint <= 0 + puts "あなたは原因不明の急死により人生を全うできませんでした..." + exit # プログラムを強制終了 +end +sleep(2) + +#5th question +printf("人生の分かれ道:第五問\n") +printf("1.%sは大変そうな人を助けるか\n",name) +printf("2.%sは自分の今やることを優先するか\n",name) +print("1か2で選択するのだ\n") +gacha = gets.chomp.to_i +sleep(2) +if gacha == 1 + printf("あなたは優しさを得た\n") + lifepoint += 1 +else + printf("あなたは真面目さを得た\n") + lifepoint -= 1 +end +puts'----------------------------------------------------' +if lifepoint <= 0 + puts "あなたは原因不明の急死により人生を全うできませんでした..." + exit # プログラムを強制終了 +end +sleep(2) + +#6th question +printf("人生の分かれ道:第六問\n") +printf("1.%sはボランティアに参加するか\n",name) +printf("2.%sは自己啓発セミナーに参加するか\n",name) +print("1か2で選択するのだ\n") +gacha = gets.chomp.to_i +sleep(2) +if gacha == 1 + printf("あなたは共生の心を得た\n") + lifepoint += 1 +else + printf("あなたは自信を得た\n") + lifepoint -= 1 +end +puts'----------------------------------------------------' +if lifepoint <= 0 + puts "あなたは原因不明の急死により人生を全うできませんでした..." + exit # プログラムを強制終了 +end +sleep(2) + +#7th question +printf("人生の分かれ道:第七問\n") +printf("1.%sは一生を悔いなく生きたか\n",name) +printf("2.%sはやりたいことがまだあるか\n",name) +print("1か2で選択するのだ\n") +gacha = gets.chomp.to_i +sleep(2) +if gacha == 1 + printf("あなたは満足できるような生き方をした\n") + lifepoint += 1 +else + printf("あなたはまだまだ欲求が強い人生を歩んだ\n") + lifepoint -= 1 +end +puts'----------------------------------------------------' +if lifepoint <= 0 + puts "あなたは原因不明の急死により人生を全うできませんでした..." + exit # プログラムを強制終了 +end +sleep(2) +#------------------------- end of main program ------------------------- + +#------------------------- biginning of result ------------------------- +printf("あなたの人生は...\n") +sleep(2) + +result_row = csv_data.find{ |row| row['No'].to_i == lifepoint} +if result_row + + puts '-------------------- あなたの人生の結果 --------------------' + puts "職業: #{result_row['職業']}" + puts "年収: #{result_row['年収']}" + puts "出会い&生活状況: #{result_row['出会い&生活状況']}" + puts "死因: #{result_row['死因']}" + puts '-------------------- あなたの人生の結果 --------------------' + +end +#-------------------------end of result ------------------------- diff --git a/dist/zinnsei.csv b/dist/zinnsei.csv new file mode 100644 index 0000000..785ebf1 --- /dev/null +++ b/dist/zinnsei.csv @@ -0,0 +1,22 @@ +No,職業,年収,出会い&生活状況,死因 +1,医者,4000万円,未婚,孤独死 +2,高校教師,300万円,うつ病,がん +3,配送ドライバー,500万円,結婚して子供が二人,老衰 +4,冒険家,800万円,無人島生活中,落下死 +5,コンビニ店員,1100万円,危篤状態,自殺 +6,総理大臣,1700万円,豪邸で暮らす,暗殺 +7,芸術家,7000万円,ひき逃げ中,死刑 +8,Youtuber,1億円,宝くじ1等当選,危険な場所に足を踏み入れた +9,パイロット,5億円,音速に辿り着くための実験中,光の速度で消えた +10,研究者,850万円,未知の物体を作成中,地球滅亡 +11,警察,750万円,多忙&疲労困憊,銃で撃たれた +12,俳優,1500万円,不倫中,刺された +13,映画監督,5000万円,借金1億円,海に身を投げた +14,一流シェフ,900万円,弟子ができた,火事 +15,サラリーマン,600万円,毎日苦痛,過労死 +16,犬,0円,毎日楽しい,天使が迎えに来た +17,猫,0円,ほのぼの生活,踏まれた +18,恐竜,0円,食物連鎖の頂点に辿り着く,隕石にぶつかる +19,万屋,200万円,実家暮らし,人体実験で失敗 +20,スポーツ選手,50億円,がちゃぴん(犬)と家族で暮らしている,不明 +21,幽霊,0円,いつも誰かのそばに,成仏 diff --git a/double.rb b/double.rb new file mode 100755 index 0000000..a147538 --- /dev/null +++ b/double.rb @@ -0,0 +1,12 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +while true + print "好きなことは(qで終了)?: " + koto = gets + if koto == "q\n" then + break + end + printf("%sだ、", koto) + printf("%sだ楽しいな。\n", koto.chomp) +end diff --git a/evenodd.rb b/evenodd.rb new file mode 100755 index 0000000..6c6ae92 --- /dev/null +++ b/evenodd.rb @@ -0,0 +1,15 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +while true + x = gets.chomp + if x == "q" then + break + end + sum = x.to_i + if sum%2 == 0 + print "偶数です\n" + else + print "奇数です\n" + end +end diff --git a/factorial.rb b/factorial.rb new file mode 100755 index 0000000..701650e --- /dev/null +++ b/factorial.rb @@ -0,0 +1,19 @@ +#! /usr/koeki/bin/ruby +# -*- coding:utf-8 -*- + +def factorial(n) + if n <= 1 + 1 + else + n*factorial(n-1) + end +end + +if ARGV[0] == nil + STDERR.puts"階乗の計算したい数を指定してください" + STDERR.puts"例:./factorial.rb 5" + exit 0 +end + +n = ARGV[0].to_i +printf("%dの階乗は%dです。\n", n, factorial(n)) diff --git a/flower.jpg b/flower.jpg new file mode 100644 index 0000000..59baf56 --- /dev/null +++ b/flower.jpg Binary files differ diff --git a/flower.xcf b/flower.xcf new file mode 100644 index 0000000..9e13798 --- /dev/null +++ b/flower.xcf Binary files differ diff --git a/gazou.rb b/gazou.rb new file mode 100644 index 0000000..2b7ad04 --- /dev/null +++ b/gazou.rb @@ -0,0 +1,8 @@ +#!/usr/koeki/bin/ruby +# coding: utf-8 + +hana = "flower.jpg" +pid = fork { + exec "display -geometry +0-0 #{hana}"} +sleep 10 +Process.kill(:INT, pid) diff --git a/h2.rb b/h2.rb new file mode 100755 index 0000000..927c166 --- /dev/null +++ b/h2.rb @@ -0,0 +1,9 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +require 'csv' +taiju = CSV.read("hw1000.csv", headers: true) + +taiju.each do |row| + printf("%s, %5s cm,%5s kg\n", row["n"] ,row["height"] ,row["weight"] ) +end diff --git a/hello.rb b/hello.rb new file mode 100644 index 0000000..6ab5e14 --- /dev/null +++ b/hello.rb @@ -0,0 +1,3 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +print "Hello\n" diff --git a/hw-bmi.rb b/hw-bmi.rb new file mode 100644 index 0000000..f1900b7 --- /dev/null +++ b/hw-bmi.rb @@ -0,0 +1,16 @@ +#!/usr/koeki/bin/ruby +# coding: utf-8 +require 'csv' +require './kprintf.rb' + +data = Array.new +csv = CSV.read("hw.csv") + +csv.each do |row| + name, height, weight = row[0], row[1].to_f, row[2].to_f + bmi = weight/(height/100)**2 + data << [name, height, weight, bmi] +end +data.each do |i| # ここをBMI値でソートしたい + printf("%-20s: %.1f[cm], %4.1f[kg], BMI=%.2f\n", *i) +end diff --git a/hw1000.csv b/hw1000.csv new file mode 100644 index 0000000..d16547e --- /dev/null +++ b/hw1000.csv @@ -0,0 +1,1001 @@ +"n","height","weight" +1,154.2,43.0 +2,155.3,50.0 +3,162.1,54.3 +4,158.9,46.3 +5,165.3,49.7 +6,155.0,55.9 +7,156.3,53.7 +8,160.5,60.1 +9,160.7,56.0 +10,151.7,51.4 +11,160.1,46.0 +12,165.3,56.9 +13,153.8,48.8 +14,160.5,47.2 +15,143.5,57.9 +16,175.6,47.7 +17,153.9,40.8 +18,146.5,55.0 +19,170.2,51.0 +20,163.3,42.3 +21,160.8,45.7 +22,160.9,48.6 +23,161.9,55.5 +24,158.3,55.9 +25,147.1,52.0 +26,159.7,52.6 +27,169.5,53.8 +28,163.6,59.8 +29,157.3,48.1 +30,163.8,48.2 +31,158.3,55.9 +32,163.6,55.5 +33,152.2,51.7 +34,162.7,48.2 +35,153.9,52.9 +36,153.7,60.3 +37,165.3,52.0 +38,154.3,48.8 +39,161.4,51.8 +40,172.4,45.3 +41,156.0,61.6 +42,163.9,49.3 +43,158.6,47.5 +44,152.2,52.0 +45,147.2,52.8 +46,153.9,38.6 +47,160.3,51.2 +48,150.6,51.0 +49,159.0,60.1 +50,156.2,54.4 +51,154.4,48.5 +52,163.9,41.7 +53,149.7,49.9 +54,144.8,52.9 +55,169.4,47.9 +56,154.2,50.9 +57,158.7,58.8 +58,163.6,48.1 +59,154.8,55.0 +60,159.4,53.7 +61,154.5,58.5 +62,150.6,57.3 +63,154.8,51.7 +64,154.8,61.4 +65,157.4,56.4 +66,155.7,51.0 +67,151.6,41.8 +68,159.5,58.2 +69,157.1,48.0 +70,153.7,49.5 +71,153.6,63.4 +72,146.6,55.2 +73,161.4,49.9 +74,155.9,50.1 +75,162.6,55.3 +76,158.0,42.0 +77,169.6,46.3 +78,149.4,49.3 +79,159.8,39.3 +80,154.8,45.7 +81,154.1,41.8 +82,151.7,40.2 +83,164.4,49.1 +84,158.2,53.3 +85,164.7,46.7 +86,160.1,52.5 +87,156.7,53.0 +88,154.6,51.5 +89,155.8,60.7 +90,154.2,58.8 +91,157.6,55.4 +92,167.0,48.6 +93,150.9,42.5 +94,158.5,56.5 +95,148.5,54.9 +96,161.3,41.3 +97,151.6,58.6 +98,157.7,43.4 +99,161.6,57.9 +100,163.0,54.9 +101,168.9,45.9 +102,156.6,47.9 +103,157.5,48.5 +104,157.5,53.2 +105,156.0,57.2 +106,160.8,57.7 +107,154.7,55.0 +108,168.6,62.6 +109,155.9,46.1 +110,155.1,58.5 +111,162.7,44.3 +112,143.9,53.1 +113,151.6,49.7 +114,172.6,59.8 +115,156.7,50.6 +116,162.5,37.8 +117,161.8,49.6 +118,158.8,56.2 +119,160.3,43.1 +120,145.9,48.3 +121,159.9,47.5 +122,152.7,47.4 +123,154.0,47.5 +124,154.8,52.0 +125,165.1,54.3 +126,155.2,50.2 +127,160.0,51.5 +128,165.8,56.7 +129,152.7,54.0 +130,149.8,49.1 +131,160.7,54.7 +132,160.3,53.2 +133,155.5,60.5 +134,157.7,54.5 +135,150.1,45.7 +136,150.4,58.2 +137,149.4,55.7 +138,151.4,54.6 +139,149.4,56.5 +140,162.8,44.4 +141,153.5,50.3 +142,156.3,44.8 +143,152.7,56.2 +144,161.8,45.4 +145,164.6,43.6 +146,167.6,45.5 +147,158.1,43.1 +148,159.2,56.1 +149,151.0,40.7 +150,158.1,32.5 +151,155.3,44.3 +152,158.7,49.7 +153,158.0,53.9 +154,164.7,53.0 +155,151.5,57.9 +156,160.9,45.7 +157,147.7,48.3 +158,161.8,61.2 +159,169.4,48.5 +160,156.3,42.1 +161,154.4,44.1 +162,161.0,60.9 +163,169.2,51.1 +164,156.8,56.9 +165,162.0,59.5 +166,160.1,49.3 +167,157.3,49.0 +168,151.6,58.1 +169,165.4,53.5 +170,164.6,49.5 +171,148.2,57.8 +172,147.5,54.4 +173,163.7,47.6 +174,158.9,46.6 +175,159.9,54.4 +176,154.6,54.9 +177,150.8,44.0 +178,162.5,56.9 +179,168.5,51.2 +180,152.2,60.0 +181,160.1,43.0 +182,152.3,55.6 +183,159.5,50.3 +184,168.0,56.6 +185,162.7,48.5 +186,166.7,50.2 +187,148.9,63.9 +188,161.0,52.1 +189,157.1,49.9 +190,161.8,50.5 +191,168.2,54.0 +192,140.8,51.5 +193,149.9,45.9 +194,157.9,54.1 +195,169.9,56.1 +196,159.5,53.2 +197,145.0,50.8 +198,164.0,57.4 +199,157.7,49.8 +200,160.5,50.3 +201,158.7,62.2 +202,163.5,66.5 +203,165.0,58.6 +204,163.6,54.1 +205,164.2,52.4 +206,153.1,42.5 +207,151.7,53.7 +208,156.6,61.8 +209,167.2,47.8 +210,168.5,46.6 +211,147.7,51.4 +212,156.4,48.6 +213,155.8,56.0 +214,155.6,49.5 +215,168.1,49.5 +216,156.1,59.7 +217,158.5,66.9 +218,151.0,56.3 +219,158.0,59.3 +220,161.3,55.1 +221,159.2,51.2 +222,150.6,58.4 +223,152.8,61.5 +224,158.8,54.5 +225,161.3,55.5 +226,167.5,50.9 +227,155.0,57.1 +228,154.8,45.2 +229,157.4,49.1 +230,152.6,44.4 +231,155.6,44.6 +232,154.2,48.5 +233,155.8,51.6 +234,154.8,46.2 +235,155.1,47.1 +236,164.4,55.5 +237,155.3,59.1 +238,161.9,55.6 +239,160.1,52.5 +240,149.2,51.5 +241,163.0,57.3 +242,159.1,49.5 +243,156.3,36.2 +244,162.2,60.5 +245,161.3,62.4 +246,153.8,40.9 +247,158.0,44.6 +248,156.7,52.2 +249,155.9,47.3 +250,158.1,46.3 +251,156.4,53.7 +252,152.5,50.7 +253,167.9,51.3 +254,154.6,58.8 +255,145.1,54.1 +256,156.2,66.3 +257,155.7,45.0 +258,164.1,53.2 +259,157.7,51.0 +260,152.0,43.6 +261,160.2,59.2 +262,150.1,52.0 +263,162.5,57.2 +264,153.8,50.4 +265,158.3,38.2 +266,154.5,57.9 +267,160.0,50.9 +268,151.2,42.4 +269,164.0,57.3 +270,159.0,50.4 +271,145.6,60.4 +272,159.7,59.5 +273,168.2,49.6 +274,160.4,58.5 +275,149.7,54.6 +276,165.8,52.0 +277,160.9,55.0 +278,157.2,48.3 +279,166.4,55.1 +280,153.9,57.6 +281,154.7,52.1 +282,157.1,50.5 +283,167.5,52.1 +284,157.7,52.6 +285,172.6,59.7 +286,156.2,55.0 +287,153.3,44.2 +288,161.5,54.5 +289,156.9,52.2 +290,155.9,62.7 +291,164.2,54.2 +292,154.9,52.6 +293,155.4,45.4 +294,166.0,45.6 +295,157.6,45.2 +296,157.4,49.0 +297,157.6,56.7 +298,159.9,55.7 +299,149.3,51.1 +300,160.5,51.5 +301,161.1,55.7 +302,154.5,51.7 +303,163.9,45.3 +304,150.5,50.0 +305,160.1,49.5 +306,159.0,54.2 +307,160.8,50.5 +308,158.5,53.9 +309,148.2,58.1 +310,157.9,47.3 +311,147.7,49.8 +312,159.4,49.0 +313,156.7,51.1 +314,158.0,48.7 +315,156.7,46.3 +316,165.1,33.7 +317,159.7,38.5 +318,159.9,46.7 +319,156.2,44.9 +320,161.3,61.3 +321,164.7,54.1 +322,158.5,43.9 +323,164.3,50.9 +324,161.1,54.7 +325,153.4,48.9 +326,154.5,59.0 +327,158.6,45.9 +328,157.4,45.7 +329,168.0,46.3 +330,160.1,53.1 +331,158.9,53.7 +332,156.7,60.4 +333,164.8,44.8 +334,156.8,51.4 +335,162.0,56.3 +336,163.8,50.6 +337,161.3,45.1 +338,162.5,53.8 +339,159.0,42.3 +340,154.5,57.9 +341,161.0,46.1 +342,147.7,49.5 +343,163.6,55.9 +344,153.2,45.3 +345,159.5,47.7 +346,161.4,52.8 +347,169.4,53.6 +348,159.2,52.7 +349,149.8,56.7 +350,158.5,55.1 +351,149.7,50.8 +352,154.6,48.1 +353,164.9,51.1 +354,160.1,41.7 +355,159.4,50.7 +356,160.3,62.3 +357,155.3,62.6 +358,155.7,47.4 +359,157.2,60.2 +360,154.7,62.9 +361,161.6,51.4 +362,168.9,42.2 +363,164.4,57.4 +364,155.9,55.8 +365,164.9,50.6 +366,152.9,46.8 +367,164.2,50.3 +368,153.5,52.0 +369,153.3,40.6 +370,162.9,47.8 +371,159.2,59.9 +372,159.7,49.9 +373,164.2,60.5 +374,153.5,50.7 +375,161.6,48.4 +376,152.3,52.7 +377,157.4,54.2 +378,156.0,58.1 +379,153.9,42.3 +380,160.0,53.4 +381,161.2,43.6 +382,173.6,51.6 +383,157.3,48.3 +384,154.6,59.2 +385,163.8,46.4 +386,159.1,53.1 +387,161.3,42.5 +388,155.8,43.9 +389,154.0,44.0 +390,161.5,51.4 +391,160.4,57.7 +392,152.4,46.4 +393,156.6,53.8 +394,162.3,51.3 +395,166.6,44.9 +396,158.0,53.4 +397,168.6,50.1 +398,155.3,53.1 +399,159.3,59.1 +400,161.7,45.9 +401,156.8,41.7 +402,153.1,45.7 +403,153.4,49.9 +404,159.2,54.9 +405,151.4,55.6 +406,150.9,50.6 +407,162.5,51.3 +408,156.6,55.6 +409,167.1,51.9 +410,156.8,50.5 +411,150.5,54.6 +412,158.7,49.3 +413,154.8,45.5 +414,156.6,53.6 +415,157.2,43.5 +416,147.6,60.3 +417,155.8,59.0 +418,149.3,52.9 +419,156.1,59.7 +420,149.1,42.3 +421,162.8,47.0 +422,150.2,59.7 +423,149.4,52.2 +424,155.4,47.0 +425,164.8,59.2 +426,164.7,46.5 +427,164.1,48.9 +428,151.3,45.2 +429,167.6,59.3 +430,154.8,44.8 +431,155.0,48.0 +432,158.4,47.8 +433,156.3,58.3 +434,157.4,47.7 +435,165.2,54.7 +436,161.7,61.2 +437,161.9,53.5 +438,163.5,58.5 +439,163.0,42.5 +440,156.8,55.2 +441,158.3,62.2 +442,152.9,47.7 +443,160.0,35.1 +444,156.4,62.5 +445,159.4,43.5 +446,163.6,48.0 +447,162.9,52.3 +448,163.7,68.8 +449,157.9,45.9 +450,147.5,48.4 +451,155.6,49.8 +452,169.1,56.9 +453,164.6,54.4 +454,160.1,56.0 +455,161.1,58.0 +456,156.9,58.9 +457,172.4,56.9 +458,158.0,56.7 +459,156.4,48.1 +460,164.7,51.4 +461,160.1,50.2 +462,152.6,41.9 +463,157.2,58.8 +464,159.9,59.4 +465,162.8,51.5 +466,162.0,46.6 +467,158.5,45.4 +468,163.2,52.0 +469,154.7,50.8 +470,168.4,52.6 +471,166.8,60.8 +472,159.3,50.6 +473,155.2,47.8 +474,163.4,44.8 +475,161.6,54.6 +476,154.2,50.7 +477,159.8,49.6 +478,169.6,47.5 +479,156.6,47.9 +480,154.7,49.1 +481,150.5,56.3 +482,154.8,54.5 +483,161.5,54.8 +484,159.8,48.1 +485,161.2,53.5 +486,165.8,52.0 +487,159.4,50.2 +488,148.2,40.9 +489,159.7,54.9 +490,149.6,58.0 +491,154.7,47.3 +492,149.2,52.6 +493,160.7,47.2 +494,152.2,48.2 +495,167.8,54.1 +496,163.7,59.9 +497,148.6,51.5 +498,162.4,45.1 +499,152.2,49.2 +500,157.1,51.7 +501,160.6,64.4 +502,163.8,51.1 +503,162.4,55.5 +504,161.3,50.0 +505,150.0,58.7 +506,145.5,51.2 +507,153.6,51.4 +508,149.6,42.0 +509,157.8,59.4 +510,159.3,47.7 +511,165.0,44.7 +512,160.8,50.9 +513,164.9,57.0 +514,161.1,47.9 +515,157.3,57.3 +516,165.0,46.5 +517,159.4,50.6 +518,148.8,58.4 +519,151.6,48.5 +520,158.5,55.1 +521,170.8,57.1 +522,157.3,54.8 +523,164.0,42.4 +524,158.9,43.7 +525,156.3,59.8 +526,163.0,45.7 +527,159.5,46.0 +528,159.3,59.6 +529,164.3,40.1 +530,161.1,49.0 +531,164.2,49.5 +532,155.7,51.7 +533,157.8,56.5 +534,156.9,47.3 +535,157.4,49.3 +536,149.5,43.6 +537,156.2,51.3 +538,166.2,55.3 +539,151.9,54.2 +540,155.4,48.5 +541,161.0,48.1 +542,157.9,60.7 +543,153.7,59.0 +544,168.0,50.5 +545,153.9,43.5 +546,165.6,55.6 +547,159.8,51.9 +548,152.5,55.1 +549,153.8,39.4 +550,157.3,50.9 +551,146.9,49.8 +552,155.9,44.6 +553,158.8,52.4 +554,156.9,51.5 +555,165.5,45.4 +556,160.6,66.9 +557,160.0,47.1 +558,155.0,51.1 +559,158.9,40.0 +560,154.7,50.9 +561,148.4,48.5 +562,158.4,57.1 +563,164.0,59.4 +564,151.9,45.1 +565,165.3,46.3 +566,152.4,59.8 +567,166.8,53.5 +568,154.5,48.8 +569,157.5,50.5 +570,157.1,55.1 +571,156.8,47.8 +572,161.6,54.4 +573,156.8,58.0 +574,155.3,47.8 +575,157.8,57.3 +576,152.3,59.2 +577,159.2,49.6 +578,148.9,53.3 +579,159.4,49.5 +580,152.8,50.9 +581,165.9,56.1 +582,162.7,49.6 +583,161.2,51.6 +584,159.3,48.2 +585,166.6,45.8 +586,159.5,58.9 +587,156.3,49.4 +588,158.3,52.6 +589,151.0,50.2 +590,159.8,47.0 +591,151.4,42.3 +592,150.1,48.1 +593,152.6,47.3 +594,165.0,46.1 +595,154.7,42.7 +596,149.0,45.0 +597,154.2,62.6 +598,156.6,54.7 +599,151.9,58.5 +600,162.4,47.9 +601,162.7,63.5 +602,162.1,58.1 +603,159.3,61.0 +604,153.7,51.1 +605,153.1,56.2 +606,160.8,49.0 +607,153.9,48.7 +608,154.5,45.6 +609,159.4,48.4 +610,161.8,48.1 +611,161.2,50.5 +612,152.4,42.7 +613,161.1,49.2 +614,160.5,53.6 +615,165.7,45.5 +616,163.2,59.6 +617,151.8,54.2 +618,159.4,45.7 +619,154.6,47.2 +620,167.2,57.4 +621,150.7,51.6 +622,164.9,50.9 +623,160.7,48.9 +624,147.8,45.2 +625,156.9,56.5 +626,155.0,56.7 +627,154.3,48.2 +628,164.5,47.8 +629,167.8,60.8 +630,147.3,43.0 +631,151.3,42.8 +632,172.3,48.6 +633,165.2,52.4 +634,158.2,55.2 +635,150.4,45.5 +636,156.8,50.3 +637,156.2,53.0 +638,167.7,45.7 +639,153.1,53.9 +640,158.7,48.2 +641,162.3,51.4 +642,149.7,49.4 +643,169.7,56.2 +644,152.6,50.0 +645,158.1,47.0 +646,164.0,44.4 +647,163.7,50.5 +648,162.4,43.1 +649,165.9,45.3 +650,155.2,54.3 +651,153.8,53.8 +652,162.6,46.4 +653,156.4,52.3 +654,163.6,56.2 +655,160.4,52.7 +656,146.5,60.3 +657,160.6,45.9 +658,159.3,51.8 +659,158.4,38.6 +660,159.4,41.9 +661,154.4,51.2 +662,170.1,48.4 +663,152.1,51.9 +664,166.6,51.3 +665,163.4,51.1 +666,164.9,51.2 +667,161.5,45.8 +668,159.8,51.1 +669,166.7,45.9 +670,162.6,50.4 +671,158.1,48.3 +672,159.1,58.7 +673,158.0,41.2 +674,162.3,48.1 +675,160.6,57.2 +676,166.7,48.0 +677,163.8,47.8 +678,153.0,49.7 +679,154.0,49.1 +680,147.3,56.4 +681,154.0,44.1 +682,160.0,61.9 +683,158.2,43.8 +684,147.5,49.2 +685,155.2,59.4 +686,158.5,43.6 +687,158.7,48.6 +688,149.4,53.1 +689,145.5,52.1 +690,161.3,54.5 +691,172.3,50.2 +692,157.0,47.8 +693,161.3,49.4 +694,153.2,56.3 +695,167.1,47.6 +696,158.0,47.9 +697,170.5,46.4 +698,158.1,52.1 +699,145.8,53.1 +700,159.0,43.1 +701,156.2,58.7 +702,164.6,49.4 +703,159.9,52.5 +704,161.2,50.1 +705,158.5,55.1 +706,159.3,61.6 +707,154.8,52.6 +708,166.7,56.6 +709,153.7,63.1 +710,159.5,44.4 +711,148.5,55.2 +712,161.8,62.2 +713,164.1,56.0 +714,163.9,41.4 +715,154.7,47.4 +716,149.2,47.0 +717,159.8,50.6 +718,161.3,44.8 +719,159.1,49.9 +720,158.3,56.5 +721,162.1,44.8 +722,165.7,44.8 +723,161.9,54.4 +724,159.2,56.9 +725,163.0,50.1 +726,157.6,55.3 +727,152.0,44.0 +728,162.3,48.5 +729,155.0,49.0 +730,151.3,42.4 +731,151.3,57.7 +732,157.3,43.3 +733,156.0,50.5 +734,154.4,56.8 +735,156.6,49.4 +736,154.9,49.0 +737,162.6,49.8 +738,157.4,49.2 +739,163.6,50.1 +740,156.1,53.6 +741,160.3,53.5 +742,155.7,45.0 +743,166.2,49.1 +744,159.6,60.5 +745,165.6,45.9 +746,163.4,56.2 +747,162.5,53.6 +748,163.7,51.9 +749,159.0,53.6 +750,156.9,53.0 +751,154.2,58.5 +752,168.3,38.7 +753,163.2,41.0 +754,153.6,54.0 +755,159.8,40.5 +756,162.7,54.5 +757,166.8,59.7 +758,157.3,63.7 +759,161.1,50.3 +760,161.8,47.0 +761,164.7,46.5 +762,156.6,63.1 +763,169.0,58.5 +764,157.0,60.6 +765,161.2,48.7 +766,158.5,64.6 +767,164.3,49.4 +768,165.5,46.5 +769,164.0,53.9 +770,155.4,61.1 +771,162.3,50.6 +772,158.5,53.3 +773,158.1,61.3 +774,151.0,45.5 +775,152.5,51.5 +776,155.5,55.3 +777,163.1,47.8 +778,151.5,49.0 +779,165.1,57.2 +780,155.5,45.1 +781,149.6,58.8 +782,160.7,50.4 +783,154.6,48.5 +784,163.1,59.2 +785,154.0,51.4 +786,161.3,50.2 +787,155.9,48.8 +788,156.3,55.8 +789,159.7,39.8 +790,162.6,51.9 +791,165.4,52.9 +792,162.1,40.0 +793,153.7,45.7 +794,168.1,64.3 +795,160.0,53.7 +796,157.0,60.1 +797,158.1,49.0 +798,154.3,54.9 +799,160.9,49.2 +800,145.2,46.1 +801,160.5,50.1 +802,150.3,58.7 +803,146.3,43.1 +804,157.7,47.7 +805,159.2,44.9 +806,161.8,58.8 +807,157.4,55.3 +808,166.5,54.4 +809,150.7,56.5 +810,163.2,60.6 +811,156.3,63.5 +812,157.6,39.3 +813,161.8,48.8 +814,165.8,48.4 +815,156.7,42.8 +816,160.0,58.0 +817,158.1,52.5 +818,150.9,54.6 +819,161.0,49.4 +820,159.0,53.8 +821,165.5,39.7 +822,166.2,50.9 +823,155.9,59.3 +824,157.1,49.1 +825,155.2,51.4 +826,154.5,42.9 +827,163.4,55.6 +828,159.5,39.9 +829,154.1,42.1 +830,167.3,49.4 +831,166.2,61.3 +832,153.3,43.4 +833,157.0,48.8 +834,159.3,53.1 +835,153.1,54.5 +836,162.9,60.8 +837,159.2,56.5 +838,158.9,52.8 +839,159.0,54.2 +840,162.9,51.6 +841,158.4,53.5 +842,156.5,54.4 +843,159.1,52.8 +844,151.6,49.3 +845,153.3,51.8 +846,154.6,53.6 +847,166.4,35.8 +848,162.3,60.9 +849,150.9,55.6 +850,154.7,37.3 +851,154.9,49.4 +852,154.8,63.7 +853,154.9,50.6 +854,155.8,48.5 +855,159.2,47.0 +856,162.3,59.5 +857,163.7,54.6 +858,165.9,48.7 +859,170.6,48.8 +860,150.4,57.6 +861,162.2,71.5 +862,169.3,47.4 +863,160.1,54.5 +864,152.9,44.1 +865,156.6,45.2 +866,165.2,41.1 +867,150.2,43.5 +868,162.4,54.6 +869,164.9,48.8 +870,162.8,43.9 +871,158.2,60.3 +872,152.3,48.8 +873,154.2,52.3 +874,156.3,50.0 +875,148.0,57.5 +876,153.4,40.9 +877,160.8,51.6 +878,155.9,55.2 +879,171.9,41.8 +880,166.3,59.0 +881,158.4,57.4 +882,158.1,46.4 +883,166.3,46.9 +884,156.6,52.7 +885,163.9,47.8 +886,157.1,47.3 +887,155.4,48.6 +888,162.0,51.2 +889,164.1,41.3 +890,158.8,50.2 +891,157.8,49.8 +892,156.5,58.0 +893,160.2,49.1 +894,160.2,45.6 +895,160.7,51.3 +896,167.7,47.8 +897,170.4,46.0 +898,157.4,57.7 +899,156.5,55.5 +900,158.8,41.5 +901,163.8,47.5 +902,154.0,59.4 +903,152.7,47.3 +904,162.2,55.1 +905,161.3,59.0 +906,161.7,48.7 +907,160.7,46.0 +908,163.8,38.8 +909,161.7,43.4 +910,151.9,56.8 +911,164.8,45.7 +912,156.5,53.1 +913,163.2,51.1 +914,157.6,56.7 +915,157.1,51.2 +916,164.7,50.4 +917,152.2,42.1 +918,158.1,57.9 +919,165.5,49.5 +920,155.7,50.3 +921,151.0,48.0 +922,163.1,54.8 +923,159.5,51.7 +924,167.4,54.4 +925,160.1,49.3 +926,156.3,49.9 +927,162.0,51.4 +928,155.8,50.0 +929,157.9,56.2 +930,155.1,50.9 +931,151.2,57.1 +932,161.7,47.9 +933,160.0,52.4 +934,159.1,42.0 +935,146.0,48.8 +936,160.3,62.1 +937,156.5,51.3 +938,160.3,50.8 +939,156.5,61.0 +940,155.6,58.3 +941,164.8,48.5 +942,147.4,52.9 +943,160.4,45.0 +944,163.9,50.3 +945,158.6,66.8 +946,154.0,56.9 +947,157.2,63.9 +948,154.3,45.8 +949,155.3,54.4 +950,162.4,52.8 +951,160.2,51.2 +952,156.4,54.5 +953,161.0,47.3 +954,157.2,52.9 +955,167.0,52.9 +956,150.8,52.8 +957,156.1,47.1 +958,163.8,54.7 +959,162.2,53.1 +960,168.6,55.7 +961,156.7,40.9 +962,162.3,56.9 +963,160.6,50.9 +964,150.7,46.0 +965,158.5,45.5 +966,159.6,56.5 +967,155.9,49.9 +968,162.3,52.3 +969,159.3,39.6 +970,154.1,63.0 +971,164.2,40.6 +972,162.0,48.0 +973,152.1,57.8 +974,156.7,54.2 +975,162.9,48.7 +976,165.2,52.1 +977,158.5,46.1 +978,160.6,51.7 +979,158.3,54.6 +980,156.1,55.0 +981,151.8,49.0 +982,166.0,55.6 +983,160.2,45.8 +984,156.9,50.8 +985,162.0,48.3 +986,160.8,54.7 +987,166.2,55.2 +988,168.9,60.7 +989,169.8,51.9 +990,149.4,48.4 +991,162.1,46.3 +992,160.1,54.4 +993,166.6,49.4 +994,157.2,57.2 +995,152.7,46.8 +996,158.5,60.2 +997,153.7,49.7 +998,151.0,42.2 +999,151.5,58.0 +1000,162.9,44.2 diff --git a/ja-math.csv b/ja-math.csv new file mode 100644 index 0000000..0e0422c --- /dev/null +++ b/ja-math.csv @@ -0,0 +1,7 @@ +氏名,国語,数学 +山田太郎,50,40 +中町太郎,90,70 +飯森花子,91,90 +鶴岡一人,60,50 +酒田三吉,52,80 +三川一二三,12,96 diff --git a/kadai9.rb b/kadai9.rb new file mode 100755 index 0000000..f3c2c5a --- /dev/null +++ b/kadai9.rb @@ -0,0 +1,11 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +AnTuTu = CSV.read(ARGV[0], headers: true) +AnTuTu.each do |row| # レコードごとに値をrowに入れて繰り返す + soc = row["SoC"] # 添字 "氏名" で氏名欄の値 + machine = row["測定機種"] # 添字 "数学" で数学欄の値 .to_iで整数化 + score = row["AnTuTu_score"].to_i # 添字 "英語" で英語欄の値 .to_iで整数化 + printf("%sの測定機種は%sで、AnTuTu_scoreは%d点です。\n", soc, machine, score) +end diff --git a/kanacchi.jpeg b/kanacchi.jpeg new file mode 100644 index 0000000..3deb7c7 --- /dev/null +++ b/kanacchi.jpeg Binary files differ diff --git a/kokugo-rank.rb b/kokugo-rank.rb new file mode 100755 index 0000000..115a15f --- /dev/null +++ b/kokugo-rank.rb @@ -0,0 +1,25 @@ +#!/usr/bin/env ruby +# coding: utf-8 +require "./kprintf.rb" +require 'csv' + +# ja-math.csv: 氏名,国語,数学 +score = CSV.read("ja-math.csv", headers:true) + +puts "元の並び:" +print "--氏名--------------+-国語-+-数学-+-合計--\n" +score.each do |row| + name, ja, math = row["氏名"], row["国語"], row["数学"] + total = ja.to_i + math.to_i + printf("%-20s %5d %5d %5d\n", name, ja.to_i, math.to_i, total) +end +puts "-"*42 + +puts "国語上位から:" +print "--氏名--------------+-国語-+-数学-+-合計--\n" +score.sort_by{|x| x["国語"].to_i}.reverse.each do |row| + name, ja, math = row["氏名"], row["国語"], row["数学"] + total = math.to_i + ja.to_i + printf("%-20s %5d %5d %5d\n", name, ja.to_i, math.to_i, total) +end +puts "-"*42 diff --git a/kprintf.rb b/kprintf.rb new file mode 100644 index 0000000..b6d503e --- /dev/null +++ b/kprintf.rb @@ -0,0 +1,31 @@ +# kanji-aware printf for both Ruby1.8 or 1.9+ +class String + require 'kconv' + if defined?("".force_encoding) + def toeucbin() + self.toeuc.force_encoding("binary") + end + else + def toeucbin() + self.toeuc + end + end +end + +class IO + def printf(*args) + out = sprintf(*(args.collect{|x| x.is_a?(String) ? x.toeucbin : x })) + print out.toutf8 + end +end + +class Object + def printf(*args) + if args[0].is_a?(String) + $stdout.printf(*args) + else + port = args.shift + port.printf(*args) + end + end +end diff --git a/la-list.rb b/la-list.rb new file mode 100644 index 0000000..2097be8 --- /dev/null +++ b/la-list.rb @@ -0,0 +1,7 @@ +#!/usr/koeki/bin/ruby +# coding: utf-8 + +require 'csv' +csv = CSV.read("ja-math.csv", headers:true) + +puts csv["国語"] diff --git a/life_SIM.rb b/life_SIM.rb new file mode 100644 index 0000000..41da731 --- /dev/null +++ b/life_SIM.rb @@ -0,0 +1,8 @@ +#!/usr/koeki/bin/ruby +#-*- coding: utf-8 -*- + +# 人生ガチャシミュレーター + +puts "あなたの名前は?:" +name = gets.chomp +printf("%sさんで間違いないですね?\n", name) diff --git a/life_gacha.tar.gz b/life_gacha.tar.gz new file mode 100644 index 0000000..8300195 --- /dev/null +++ b/life_gacha.tar.gz Binary files differ diff --git a/macchi.jpeg b/macchi.jpeg new file mode 100644 index 0000000..6452a80 --- /dev/null +++ b/macchi.jpeg Binary files differ diff --git a/match.rb b/match.rb new file mode 100755 index 0000000..54cdda2 --- /dev/null +++ b/match.rb @@ -0,0 +1,29 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +match = 17 + +print "1から3本の範囲でマッチ棒を取ります。最後の1本を取った方の負け!\n" + +while match > 0 + printf("あなたの番: マッチ棒が%d本あります\n", match) + print "何本取りますか?(1..3): " + toru = gets.chomp.to_i + if toru < 1 || toru > 3 then + print "1から3の範囲で取って下さい.\n" + redo + end + match -= toru + if match < 1 then + print "最後の1本を取りました。あなたの負けです! やあい\n" + break + end + printf("わたしの番: マッチ棒が%d本あります\n", match) + com_toru = 3-toru+1 + printf("私は%d本取りました。\n", com_toru) + match -= com_toru + if match < 1 then + print "最後の1本を取りました。わたしの負けです! くやちいい!!\n" + break + end +end diff --git a/meibo.csv b/meibo.csv new file mode 100644 index 0000000..afd42ee --- /dev/null +++ b/meibo.csv @@ -0,0 +1,10 @@ +ナマエ,Name,氏名,居住地 +サトウ ムネユキ,SATOH Muneyuki,さとう胸幸,青葉台 +ナカマチ タロウ,NAKAMACHI Taro,中町太郎,酒田 +イイモリ ハナコ,IIMORI Hanako,飯森花子,飯森山 +サイトウ テツヤ,SAITOH Tetsuya,斎藤徹夜,白夜の国 +ゲゲノ キタロウ,GEGENO Kitarou,下々野喜太郎,魔界村 +ナニワノ タロー,NANIWANO Taro,浪花之太朗,探偵騎士王国 +ヒミ ヨンタロウ,HIMI Yontarou,悲見四太郎,甲子園 +ヤマタイ ヒミコ,YAMATAI Himiko,邪馬台氷見子,大和 +イモリ テツコ,IMORI Tetsuko,井森徹子,井戸 diff --git a/meibosearch.rb b/meibosearch.rb new file mode 100755 index 0000000..cc9657e --- /dev/null +++ b/meibosearch.rb @@ -0,0 +1,15 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' +meibo = CSV.read(ARGV[0], headers:true) + +print "検索パターン: " +pattern = STDIN.gets.chomp! +regexp = Regexp.new(pattern, nil) + +meibo.each do |row| + line = row.to_s + if regexp =~ line + print line + end +end diff --git a/method-1.rb b/method-1.rb new file mode 100755 index 0000000..41dc25d --- /dev/null +++ b/method-1.rb @@ -0,0 +1,6 @@ +#! /usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +def f(x) + 2*x + 1 +end diff --git a/method-2.rb b/method-2.rb new file mode 100755 index 0000000..de0b1bd --- /dev/null +++ b/method-2.rb @@ -0,0 +1,10 @@ +#! /usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +def f(x) + 2*x + 1 +end + +STDERR.puts"数値を入れてください。2倍して1足します。" +y = gets.to_i +printf("%d\n", f(y)) diff --git a/method-3.rb b/method-3.rb new file mode 100755 index 0000000..8746485 --- /dev/null +++ b/method-3.rb @@ -0,0 +1,12 @@ +#! /usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +def g(x) + a = x*2 + b = 1 + c = a + b +end + +STDERR.puts"数値を入れてください。計算した結果を表示します。" +y = gets.to_i +printf("%d\n", g(y)) diff --git a/method-4.rb b/method-4.rb new file mode 100755 index 0000000..5f5ec43 --- /dev/null +++ b/method-4.rb @@ -0,0 +1,14 @@ +#! /usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +def hello(who) + printf("%s さんこんにちは!\n", who) +end + +STDERR.puts"あなたの名前を入れてください。" +you = gets.chomp! +hello(you) + +STDERR.puts"あなたの近くに座っている人の名前を入れてください。" +friend = gets.chomp! +hello(friend) diff --git a/method.rb b/method.rb new file mode 100644 index 0000000..b883e22 --- /dev/null +++ b/method.rb @@ -0,0 +1,12 @@ +#!/usr/koeki/bin/ruby +# -*- coding:utf-8 -*- +a = [1,3,5,7,9] +def mean(a) + sum = 0.0 + a.each do |row| + sum += row + end + sum/a.length +end + +printf("\n平均値は%.1fです\n", mean(a)) diff --git a/mydata-N.rb b/mydata-N.rb new file mode 100755 index 0000000..22e4b0a --- /dev/null +++ b/mydata-N.rb @@ -0,0 +1,21 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +score = CSV.read(ARGV[0], headers:true) + +lower = ARGV[1].to_f # 指定されないとARGV[1]は nil になる +upper = ARGV[2].to_f # 指定されないとARGV[2]は nil になる +score.each do |record| + height = record["AnTuTu_score"].to_f + + if ARGV[2] + if lower <= height && height <= upper + printf("%sのAnTuTu_scoreは%dです.\n", record["測定機種"], height) + end + else + if lower <= height + printf("%sのAnTuTu_scoreは%dです.\n", record["測定機種"], height) + end + end +end diff --git a/mydata-search.rb b/mydata-search.rb new file mode 100755 index 0000000..e53965a --- /dev/null +++ b/mydata-search.rb @@ -0,0 +1,15 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' +meibo = CSV.read(ARGV[0], headers:true) + +print "機種名で探します。検索パターン: " +pattern = STDIN.gets.chomp! +regexp = Regexp.new(pattern, nil) + +meibo.each do |row| + line = row.to_s + if regexp =~ line + print line + end +end diff --git a/mydata.csv b/mydata.csv new file mode 100644 index 0000000..0b47bfd --- /dev/null +++ b/mydata.csv @@ -0,0 +1,11 @@ +SoC,AnTuTu_score,GPU_score,測定機種 +Snapdragon_8_Elite,3003084,1252889,ROG_Phone_9_Pro +Apple_M4,2862117,1237364,iPad_Pro_13_2024 +MediaTek_Dimensity_9400,2771552,1208311,OPPO_Find_X8_Pro +Apple_M2,2352234,1026868,iPad_Pro_12.9_2022 +Snapdragon_8_Gen_3,2213723,897137,ROG_Phone_8_Pro +MediaTek_Dimensity_9300+,2203693,898090,realme_Neo7 +Apple_M1,1935061,875718,iPad_Pro_11_2021 +Apple_A18_Pro,1928411,786531,iPhone16_Pro +Exynos_2400e,1812126,724002,Galaxy_S24_FE +Snapdragon_8_gen_2,1699444,624140,nubia_Z50S_Pro diff --git a/mydata.rb b/mydata.rb new file mode 100755 index 0000000..80a89f1 --- /dev/null +++ b/mydata.rb @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +require 'csv' + +# ./mydata.rb CSVファイル名 +# のように起動するとそのファイルを読む。 +data = CSV.read(ARGV[0] || "mydata.csv", headers:true) + +#(1)カラムで選ぶ +print "AnTuTu_score,GPU_score ,測定機種 のどれを出しますか: " +sel = STDIN.gets.chomp # 後ろにファイル名をつけて起動するときは + # STDIN.gets とする必要がある +data.each do |row| + printf("%sの%sは%sです。\n", row["SoC"], sel, row[sel]) +end + + +#(3)測定機種で選ぶ +puts "測定機種一覧:" +puts data["測定機種"] +print "どの測定機種にしますか: " +soku = STDIN.gets.chomp + +data.each do |row| + if soku == row["測定機種"] + printf("%sのAnTuTu_scoreは%sです。\n", row["SoC"], row["AnTuTu_score"]) + end +end diff --git a/newchar.rb b/newchar.rb new file mode 100755 index 0000000..b09cf3b --- /dev/null +++ b/newchar.rb @@ -0,0 +1,13 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +newchar = Hash.new # newchar = {} と同じ +print "名前は何にしますか?: " +newchar["名前"] = gets.chomp +print "属性は何にしますか?: " +newchar["属性"] = gets.chomp +print "最大MPはいくつにしますか?: " +newchar["最大MP"] = gets.to_i +print "初期MPはいくつにしますか?: " +newchar["初期MP"] = gets.to_i + +puts newchar diff --git a/pasta.csv b/pasta.csv new file mode 100644 index 0000000..d52e533 --- /dev/null +++ b/pasta.csv @@ -0,0 +1,6 @@ +num,pasta +1,ペペロンチーノ +2,カルボナーラ +3,ボンゴレビアンコ +4,カチョエペペ +5,ナポリタン diff --git a/pasta.rb b/pasta.rb new file mode 100755 index 0000000..9178e00 --- /dev/null +++ b/pasta.rb @@ -0,0 +1,15 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +data = CSV.read(ARGV[0], headers: true) + +print"1~5から選んでね" + +name = STDIN.gets.chomp +regexp = Regexp.new(name ,nil) +data.each do |row| + if regexp =~ row["num"] + print row.to_s + end +end diff --git a/population.rb b/population.rb new file mode 100644 index 0000000..a09e3bf --- /dev/null +++ b/population.rb @@ -0,0 +1,9 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +p=p0=250000 +y=0 +while p < 3*p0 + p *= 1.03 + printf("%3d年\t%d円\n", y+=1, p) +end diff --git a/printline.rb b/printline.rb new file mode 100644 index 0000000..f075f6a --- /dev/null +++ b/printline.rb @@ -0,0 +1,8 @@ +#! /usr/koeki/bin/ruby +# coding:utf-8 +require 'csv' + +CSV.foreach("akita-2024.csv", headers: true) do |row| +puts row.to_s + +end diff --git a/qsort.rb b/qsort.rb new file mode 100755 index 0000000..4366c0a --- /dev/null +++ b/qsort.rb @@ -0,0 +1,44 @@ +#!/usr/koeki/bin/ruby +# coding: utf-8 + +def qsort(data) # 配列を受け取る + + if data.length <= 1 # データが1個以下なら + data # そのものを返して並べ換え完了 + else + left = Array.new # left(左側配列)を新規作成 + right = Array.new # right(右側配列)を新規作成 + k = data.shift # 変数dataの先頭を取り出してkにする + + for x in data # 残ったdata全てに対して繰り返す + if x > k # kより大きかったら + left << x # 左側に追加 + else + right << x # 右側に追加 + end + end # 繰り返し終わり + + # qsort(left)の末尾にkを足し、さらにqsort(right)を結合 + qsort(left).push(k) + qsort(right) + end +end + +def readNumArray() + ary = [] + while line=gets # 入力が続く間 + datum = line.chomp!.to_i # 整数に直して + ary.push(datum) # aryに追加していく + end + ary # 最後にaryを呼び主に返す +end + +def printArray(a) + printf("[%s]\n", a.join(", ")) +end + +ary = readNumArray() + +puts "整列前:" +printArray(ary) +puts "整列後:" +printArray(qsort(ary)) diff --git a/saito-katakana.rb b/saito-katakana.rb new file mode 100755 index 0000000..2ebb2c3 --- /dev/null +++ b/saito-katakana.rb @@ -0,0 +1,10 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +meibo = CSV.read(ARGV[0], headers:true) +meibo.each do |row| + if /サイ?トウ/i =~ row["ナマエ"] + print row.to_s + end +end diff --git a/saito-line.rb b/saito-line.rb new file mode 100755 index 0000000..33d537a --- /dev/null +++ b/saito-line.rb @@ -0,0 +1,10 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +meibo = CSV.read(ARGV[0], headers:true) +meibo.each do |row| + if /sai?toh/i =~ row.to_s + print row.to_s + end +end diff --git a/saito.rb b/saito.rb new file mode 100755 index 0000000..a5e2aba --- /dev/null +++ b/saito.rb @@ -0,0 +1,10 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +meibo = CSV.read(ARGV[0], headers:true) +meibo.each do |row| + if /sai?toh/i =~ row["Name"] + print row.to_s + end +end diff --git a/score-csvheader.rb b/score-csvheader.rb new file mode 100755 index 0000000..2332b49 --- /dev/null +++ b/score-csvheader.rb @@ -0,0 +1,11 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +seiseki = CSV.read(ARGV[0], headers: true) +seiseki.each do |row| # レコードごとに値をrowに入れて繰り返す + name = row["氏名"] # 添字 "氏名" で氏名欄の値 + math = row["数学"].to_i # 添字 "数学" で数学欄の値 .to_iで整数化 + eng = row["英語"].to_i # 添字 "英語" で英語欄の値 .to_iで整数化 + printf("%sさんの数学は%d点、英語は%d点です。\n", name, math, eng) +end diff --git a/score.csv b/score.csv new file mode 100644 index 0000000..8ec0b1b --- /dev/null +++ b/score.csv @@ -0,0 +1,6 @@ +山田太郎,50 +中町太郎,90 +飯森花子,91 +鶴岡一人,60 +酒田三吉,52 +三川一二三,12 diff --git a/score.rb b/score.rb new file mode 100755 index 0000000..1a39462 --- /dev/null +++ b/score.rb @@ -0,0 +1,24 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +require 'csv' # CSVライブラリを呼び出す +require './kprintf.rb' # printfの%Xsでの幅を合わせるため + +score=[] +name =[] +sum = 0 +seiseki = CSV.read(ARGV[0]) # ./score.rb score.csv のように指定する想定 +seiseki.each do |row| # 1レコードずつ取り出してrowに入れて繰り返す + # rowには ["山田太郎", "50"] のような形式が順番に入る + name << row[0] # 第0要素は氏名 + score << row[1].to_f # 第1要素は得点の文字列なので .to_i で整数化 + sum += row[1].to_f +end +average = sum.to_f/score.length + +i = 0 +print "--SoC------------------+-benchmark-+-平均との差--\n" +while i < score.length + printf("%-25s %5d %5.1f\n", name[i], score[i], score[i]-average) + i += 1 +end diff --git a/score1.csv b/score1.csv new file mode 100644 index 0000000..94a2eb9 --- /dev/null +++ b/score1.csv @@ -0,0 +1,3 @@ +Snapdragon_8_Elite,3003084 +Apple_M4,2869516 +Media_Tek_Dimensity_9400,2741747 diff --git a/score2.csv b/score2.csv new file mode 100644 index 0000000..c631652 --- /dev/null +++ b/score2.csv @@ -0,0 +1,6 @@ +山田太郎,50,70 +中町太郎,90,80 +飯森花子,91,60 +鶴岡一人,60,45 +酒田三吉,52,82 +三川一二三,12,98 diff --git a/score2.rb b/score2.rb new file mode 100755 index 0000000..72a4cd2 --- /dev/null +++ b/score2.rb @@ -0,0 +1,29 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +require 'csv' # CSVライブラリを呼び出す +require './kprintf.rb' # printfの%Xsでの幅を合わせるため + +score=[] +score2=[] +name =[] +sum = 0 +sum2 = 0 +seiseki = CSV.read(ARGV[0]) # ./score.rb score.csv のように指定する想定 +seiseki.each do |row| # 1レコードずつ取り出してrowに入れて繰り返す + # rowには ["山田太郎", "50"] のような形式が順番に入る + name << row[0] # 第0要素は氏名 + score << row[1].to_i # 第1要素は得点の文字列なので .to_i で整数化 + score2 << row[2].to_i + sum += row[1].to_i + sum2 += row[2].to_i +end +average = sum.to_f/score.length +average2 = sum.to_f/score.length + +i = 0 +print "--氏名--------------+-国語得点-+-平均との差--+-数学得点-+-平均との差-\n" +while i < score.length + printf("%-20s %8d %11.1f %10d %10.1f\n", name[i], score[i], score[i]-average,score2[i], score2[i]-average2) + i += 1 +end diff --git a/score3.csv b/score3.csv new file mode 100644 index 0000000..c631652 --- /dev/null +++ b/score3.csv @@ -0,0 +1,6 @@ +山田太郎,50,70 +中町太郎,90,80 +飯森花子,91,60 +鶴岡一人,60,45 +酒田三吉,52,82 +三川一二三,12,98 diff --git a/score3h.csv b/score3h.csv new file mode 100644 index 0000000..4a1b677 --- /dev/null +++ b/score3h.csv @@ -0,0 +1,7 @@ +氏名,数学,英語 +山田太郎,50,70 +中町太郎,90,80 +飯森花子,91,60 +鶴岡一人,60,45 +酒田三吉,52,82 +三川一二三,12,98 diff --git a/showimg.rb b/showimg.rb new file mode 100755 index 0000000..2b7ad04 --- /dev/null +++ b/showimg.rb @@ -0,0 +1,8 @@ +#!/usr/koeki/bin/ruby +# coding: utf-8 + +hana = "flower.jpg" +pid = fork { + exec "display -geometry +0-0 #{hana}"} +sleep 10 +Process.kill(:INT, pid) diff --git a/sortany.rb b/sortany.rb new file mode 100644 index 0000000..444b359 --- /dev/null +++ b/sortany.rb @@ -0,0 +1,18 @@ +#! /Users/makoto/.rbenv/shims/ruby +# -*- coding:utf-8 -*- + +require 'csv' +csv = CSV.read("sntw.csv", headers:true) +print("身長と体重を調べます。\n") +print("身長順ならh, 体重順ならw を入力してください。(h以外のものを入力すると、体重順が優先されます)\n") +search = gets.chomp + +if search == "h" + csv.sort_by{|x| x[2].to_f}.reverse.each do |hight| + printf("番号:%s 名前:%s 身長:%.2fcm 体重:%.2fkg\n", hight[0], hight[1], hight[2], hight[3].to_f) + end +else + csv.sort_by{|x| x[3].to_f}.reverse.each do |weight| + printf("番号:%s 名前:%s 身長:%.2fcm 体重:%.2fkg\n", weight[0], weight[1], weight[2], weight[3].to_f) + end +end diff --git a/supermatch.rb b/supermatch.rb new file mode 100755 index 0000000..1080205 --- /dev/null +++ b/supermatch.rb @@ -0,0 +1,57 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +match = 17 + +print "1から3本の範囲でマッチ棒を取ります。最後の1本を取った方の負け!\n" +print "先手(f)か後手(s)を選んでください\n" +mode = gets.chomp.to_s + + +if mode == "f" #先手 + while match > 0 + printf("あなたの番: マッチ棒が%d本あります\n", match) + print "何本取りますか?(1..3): " + toru = gets.chomp.to_i + if toru < 1 || toru > 3 then + print "1から3の範囲で取って下さい.\n" + redo + end + match -= toru + if match < 1 then + print "最後の1本を取りました。あなたの負けです! やあい\n" + break + end + match -= com_toru + if match < 1 then + print "最後の1本を取りました。わたしの負けです! くやちいい!!\n" + break + end + end +end + +if mode == "s" #後手 + print"マッチ棒が2本追加されました。\nわたしの番: マッチ棒が19本あります\n私は2本取りました\n" + while match > 0 + printf("あなたの番: マッチ棒が%d本あります\n", match) + print "何本取りますか?(1..3): " + toru = gets.chomp.to_i + if toru < 1 || toru > 3 then + print "1から3の範囲で取って下さい.\n" + redo + end + match -= toru + if match < 1 then + print "最後の1本を取りました。あなたの負けです! やあい\n" + break + end + printf("わたしの番: マッチ棒が%d本あります\n", match) + com_toru = 3-toru+1 + printf("私は%d本取りました。\n", com_toru) + match -= com_toru + if match < 1 then + print "最後の1本を取りました。わたしの負けです! くやちいい!!\n" + break + end + end +end diff --git a/syllabus.csv b/syllabus.csv new file mode 100644 index 0000000..b2e3008 --- /dev/null +++ b/syllabus.csv @@ -0,0 +1,7 @@ +科目名,科目コード,担当教員,開講時期,概要 +基礎プログラミング,154,鳥海三輔,春学期,"プログラミングを通じて問題解決能力を向上を図る。 +本講ではRubyを用い,データ処理の構造と考え方の基礎を学ぶ" +応用プログラミング,254,飯森大和,秋学期,"問題解決を通じてプログラミング能力向上を図る。 +本講ではプログラミング言語Cを通じて,問題解決に最適なアルゴリズムを適用する方策を学ぶ。" +応用もっけ論,39,酒田育造,春学期,"山形県庄内地方でよく使われる「もっけ」には様々な意味があり,他の地域にもこのような多様性を持つ言葉がある。 +その成立ちをふまえて正しくその地域の「もっけ」を理解し,深い交流のきっかけとする。" diff --git a/tohoku.csv b/tohoku.csv new file mode 100644 index 0000000..d3fed4b --- /dev/null +++ b/tohoku.csv @@ -0,0 +1,6 @@ +青森県,りんご,白鳥 +岩手県,桐,キジ +宮城県,ミヤギノハギ,雁 +秋田県,ふきのとう,やまどり +山形県,紅花,オシドリ +福島県,ネモトシャクナゲ,キビタキ diff --git a/tohoku.rb b/tohoku.rb new file mode 100755 index 0000000..d68f6a6 --- /dev/null +++ b/tohoku.rb @@ -0,0 +1,10 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +tango = CSV.read("tohoku.csv") + +tango.each do |row| # 1レコードの値の集合が配列でrowに入る + # rowには [第1列の項目, 第2列の項目] の配列が毎回入る + printf("%sの花は%s, 鳥は%sです\n", row[0], row[1], row[2]) +end diff --git a/varerr.rb b/varerr.rb new file mode 100644 index 0000000..127ab2d --- /dev/null +++ b/varerr.rb @@ -0,0 +1,12 @@ +#!/usr/koeki/bin/ruby + +waribiki = 0.8 # 見切り品の割引倍率(2割引) + +def mikiri(price, waribiki) # mikiriメソッドの定義 + newprice = price*waribiki # 割引倍率を掛けているつもり + printf("%d円のところ%d円!!\n", price, newprice.to_i) +end + +print("元の値段: ") +x = gets.to_i +mikiri(x, waribiki) diff --git a/word.csv b/word.csv new file mode 100644 index 0000000..71c5b4c --- /dev/null +++ b/word.csv @@ -0,0 +1,3 @@ +bird,2 +cat,4 +octopus,8 diff --git a/word2.csv b/word2.csv new file mode 100644 index 0000000..56706a9 --- /dev/null +++ b/word2.csv @@ -0,0 +1,4 @@ +花より,団子 +泣きっ面に,蜂 +三度目の,正直 +二度あることは,三度ある diff --git a/word2.rb b/word2.rb new file mode 100755 index 0000000..2528056 --- /dev/null +++ b/word2.rb @@ -0,0 +1,12 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +require 'csv' + +tango = CSV.read("word2.csv") + +tango.each do |row| # 1レコードの値の集合が配列でrowに入る + # rowには [第1列の項目, 第2列の項目] の配列が毎回入る + printf("「%s」といえば?", row[0]) + gets + printf("「%s」です\n", row[1]) +end