diff --git a/after1.jpg b/after1.jpg new file mode 100644 index 0000000..869bd59 --- /dev/null +++ b/after1.jpg Binary files differ diff --git a/after2.jpg b/after2.jpg new file mode 100644 index 0000000..cf38a52 --- /dev/null +++ b/after2.jpg Binary files differ diff --git a/after3.jpg b/after3.jpg new file mode 100644 index 0000000..96b41d6 --- /dev/null +++ b/after3.jpg Binary files differ diff --git a/animal.rb b/animal.rb new file mode 100644 index 0000000..1fbc504 --- /dev/null +++ b/animal.rb @@ -0,0 +1,60 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +#初期設定 + +require 'curses' +include Curses + +init_screen +cbreak +noecho + +rt = [] + +begin + sleep(0) + + 10.times do + system("display -geometry +0+0 before.jpg&") + sleep(2) + system('pkill magick -U `whoami`') + srand + i = rand(3)+1 + if i == 1 + system("display -geometry +0+0 after1.jpg&") + elsif i == 2 + system("display -geometry +0+0 after2.jpg&") + elsif i == 3 + system("display -geometry +0+0 after3.jpg&") + end + setpos(0,0) + addstr("\n 1:安全 2:危険") + refresh + start = Time.now + answer = getch + stop = Time.now + rt << [i,answer,stop.to_f - start.to_f] + refresh + + system('pkill magick -U `whoami`') + setpos(0,0) + addstr("\n ") + refresh + sleep(2) + end + + correct = 0 + total = 0 + for j in rt + total += j[2] + if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2") + correct += 1 + end + end + +ensure + close_screen +end + +printf("正答%d回  反応時間%5.3f秒\n", correct, total/10) diff --git a/before.jpg b/before.jpg new file mode 100644 index 0000000..660e13f --- /dev/null +++ b/before.jpg Binary files differ diff --git a/bmi b/bmi new file mode 100755 index 0000000..c27a6c4 --- /dev/null +++ b/bmi @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby +# -#- coding: utf-8 -*- + +def hyakubai(x) + x:100 +end + +print 体重を入れてください +print 身長を入れてください +puts "数値を入れてくだい。100倍します" +y=(taizyu -(0.832*taizyu-70.989))/(0.832*sintyo-b)*100 (%) + printf("%d\n" + diff --git a/break.rb b/break.rb new file mode 100644 index 0000000..f7055a9 --- /dev/null +++ b/break.rb @@ -0,0 +1,18 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +puts"1から9の数字を入力しましょう。足した合計が30以上になると終わるよ!" +sum = 0 +while true + suuji = gets.to_i + sum += suuji.to_i + puts"また数字を入れてみましょう!" + if sum >= 30 then #合計が30以上になると、処理を開始する。 + printf("合計は%dです。\n",sum) + break # 処理を中止して、ループを終わらせる + end +end + + +#break 処理を中止して、ループを終わらせる +#改良点 ifを何個か用いることで、いくつかの条件ごとに結果が分かれるようなプログラムをつくることができる。 diff --git a/cafe.csv b/cafe.csv new file mode 100644 index 0000000..6f3c838 --- /dev/null +++ b/cafe.csv @@ -0,0 +1,4 @@ +店名,人気メニュー,住所,電話番号,バス停,バス線名 +Le-Monde,塩汁スパゲティー,山形県酒田市北新橋2-11-8,0234-23-0373,北新橋,市内循環D線 +ギャラリー喫茶ヴィヨン,鉄板ナポリタン,山形県酒田市千石町2-11-15,0234-24-8300,酒田リハビリ病院前,市内循環A線 +珈琲貴族,担々麺,山形県酒田市東泉町1-13-13,0234-24-7811,東泉町二丁目,市内循環A線・市内循環B線 diff --git a/cafe.rb b/cafe.rb new file mode 100644 index 0000000..9b84433 --- /dev/null +++ b/cafe.rb @@ -0,0 +1,37 @@ +#!/usr/koeki/bin/ruby +#-*-coding: utf-8-*- + +require 'csv' +data = CSV.read("cafe.csv", headers: true) +while true + puts "酒田市のカフェについてのページだよ!" + puts "何を知りたい?" + puts "1 カフェの場所" + puts "2 カフェ近くのバス停(るんるんバス)" + puts "0 終了" + print("番号を選んでね!:") + input=gets.to_i + if input == 0 then + break + elsif input == 1 then + n=0 + data.each{|row| + printf("%d %s: %sが有名のカフェだよ\n",n+=1, row["店名"],row["人気メニュー"]) + printf("住所は、%s。電話番号は、%s。\n", row["住所"],row["電話番号"]) + print("-------------------------------------------------------------\n")} + elsif input == 2 then + s=0 + data.each{|row| + printf("%d %s \n",s+=1,row["店名"])} + print("どのバス停が知りたい?(番号で答えてね):") + num = gets.to_i-1 + if num >= 0 && num < data.length + printf("%sに近いバス停は、 %sです\n", data[num]["店名"],data[num]["バス停"]) + printf("そのバス停は%sのバス線にあります\n", data[num]["バス線名"]) + print("------------------------------------------------------\n") + end + else + print("0〜2から選んでね\n") + end +end + diff --git a/count.rb b/count.rb new file mode 100644 index 0000000..b88c40c --- /dev/null +++ b/count.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +count = 0 + +while count < 10 +count += 1 +if count % 3 != 0 +next +end +printf("3の倍数は%d\n",count) +end diff --git a/debug-j2305-1.rb b/debug-j2305-1.rb new file mode 100644 index 0000000..a5082a0 --- /dev/null +++ b/debug-j2305-1.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# 第1問 +# 次のプログラムは、整数を入力させてそれが偶数(2で割り切れる数)か +# 判定するものですが、間違えているので動きません。 +# これを ~/Ruby/debug-j2305-1.rb という名前で作成し、 +# 間違っている部分を修正してください。 + +plint "数を入れてね: " +kazu = gets.to-i +if suuji % 3 = 0 + plint "偶数だよ!" +end diff --git a/debug-j2305-2.rb b/debug-j2305-2.rb new file mode 100644 index 0000000..70134a8 --- /dev/null +++ b/debug-j2305-2.rb @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby +# 第2問 +# 次のプログラムは、九九の表を出力させるものですが +# 間違えているので動きません。 +# これを ~/Ruby/debug-j2305-2.rb という名前で作成し、 +# 間違っている部分を修正してください。 + +gyou = 1 +while gyou > 9 + retsu = 1 + printf("%2d | ", retsu) + while retsu > 9 + printf("%4d ", (retsu+=1)*gyou) + end + gyou += 1 + puts +end diff --git a/for.rb b/for.rb new file mode 100755 index 0000000..dbeffa1 --- /dev/null +++ b/for.rb @@ -0,0 +1,22 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- +#一つ目のプログラム +sports = ["野球","バレーボール","サッカー"] +for kibun in sports #kibun変数にsports配列の要素を順番に代入される + printf("今日は%sしたい気分だ。\n",kibun) #この部分が繰り返される +end + +#for文とは??:配列や範囲などの複数の値を、順番に変数へ代入する処理 +#一つ目のプログラムの詳しい解説:sportsという配列に格納される配列の要素を順番にkibunという変数に代入して処理が繰り返されて、野球、バレーボール、サッカーの順番で出力されます。 +#今回はsportsという配列を事前に作ってfor文のオブジェクト指定の部分に要素として入れていますが、["野球","バレーボール","サッカー"] を直接入力しても動きます。 + + +#改善編~このプログラムを動かすときは一つ目のプログラムの行の初めにシャープをつけてコメント文にして、改善版プログラムの一行目からシャープを消そう~ +#sports = ["野球","バレーボール","サッカー","ボート","ホッケー","ラグビー","卓球"] +#i=0 #for文の中のprintf文で添字を作るためのもの +#puts "スポーツ図鑑" +#for zukan in sports #x変数にsports配列の要素を順番に代入される +# printf("%d: %s\n", i+=1, zukan) #%dにはiに1づつ追加されていき、%sにはx変数に代入されているsports配列の要素がが入る +#end + +#改善版プログラムの詳しい解説:i=0を活用してprintfの中にi+=1を入れることでスポーツ名を出す時の添字にしています。また、sportsという配列に格納される配列の要素を順番にzukanという変数に繰り返し代入されるため、野球、バレーボール、サッカーボート、ホッケー、ラグビー、卓球の順番で出力されます。 diff --git a/fruits.csv b/fruits.csv new file mode 100644 index 0000000..73e65dc --- /dev/null +++ b/fruits.csv @@ -0,0 +1,7 @@ +品物,価格,生産地 +りんご,200,青森 +さくらんぼ,500,山形 +みかん,100,愛媛 +もも,1000,福島 +バナナ,300,沖縄 +ぶどう,700,山梨 diff --git a/fruits.rb b/fruits.rb new file mode 100644 index 0000000..0630c12 --- /dev/null +++ b/fruits.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# coding: utf-8 +Encoding.default_external = "utf-8" # CSVファイルがutf-8のとき +require "csv" +data = CSV.read("fruits.csv",headers: true) + +data.each{|row| + printf("%sは、%d円で生産地は%sです\n", + row["品物"],row["価格"],row["生産地"])} + + + diff --git a/hairetsu.rb b/hairetsu.rb new file mode 100644 index 0000000..bed7b80 --- /dev/null +++ b/hairetsu.rb @@ -0,0 +1,36 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +jikanwari = [] + +puts "時間割に1〜5時間目の教科を登録します。" +puts "1時間目の教科を入力してください。" +kyoka1 = gets.chomp +jikanwari << kyoka1 +puts "2時間目の教科を入力してください。" +kyoka2 = gets.chomp +jikanwari << kyoka2 +puts "3時間目の教科を入力してください。" +kyoka3 = gets.chomp +jikanwari << kyoka3 +puts "4時間目の教科を入力してください。" +kyoka4 = gets.chomp +jikanwari << kyoka4 +puts "5時間目の教科を入力してください。" +kyoka5 = gets.chomp +jikanwari << kyoka5 + +printf("今日の時間割は%sです。\n", jikanwari) + +#内容 +#<<でgetsしたデータをどんどん足していくものです。1〜5時間目の教科を入力していき配列として出力されます。 + +#各行の説明 +#4行目:データを格納するために空の配列jikanwariを用意します。 +#7〜9行目:1時間目の教科として入力した値が変数kyoka1に代入され、jikanwariに格納されます。 +#10〜21行目:同様に入力した2〜5時間目の教科も配列に格納されます。<<は配列の末尾に値を格納していくものです。 +#23行目:printfでjikanwariを参照し、配列として時間割が出力されます。 + +#改良点 +#何校時授業かを最初に入力してもらって、whileでその回数だけ入力させられるとよいでしょう。 +#また、forでjikanwariに入っている値を取り出して、1教科ずつ出力できるとよいと思います。 diff --git a/hello.rb b/hello.rb new file mode 100755 index 0000000..9fc83f1 --- /dev/null +++ b/hello.rb @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby +print("こんにちは\n") +print("わたしの名前は菅原漣人です。\n") +print("よろしくお願いします!\n") + diff --git a/himando.rb b/himando.rb new file mode 100755 index 0000000..f8acd39 --- /dev/null +++ b/himando.rb @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +def keisan(sin, tai) + return ((tai/((0.832*sin)-83.695))-1)*100 +end + +puts "肥満度を計算します。" +print "身長を入力:" +sin = gets.to_i +print "体重を入力:" +tai = gets.to_i +printf("あなたの肥満度は%d%です。\n", keisan(sin, tai)) diff --git a/hyozyun.rb b/hyozyun.rb new file mode 100755 index 0000000..ee035fa --- /dev/null +++ b/hyozyun.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +def keisan(sin) + return ((0.832*sin)-83.695) +end + +puts "身長別標準体重を計算します。" +print "身長を入力: +sin = gets.to_i +printf("%dです。\n", keisan(sin)) + diff --git a/if.rb b/if.rb new file mode 100644 index 0000000..43f157d --- /dev/null +++ b/if.rb @@ -0,0 +1,78 @@ +# 点数の入力・判別、それに対してのコメントをするプログラム +# 「if」はプログラムに分かれ道をつくることができる。 +# 場合分けをして実行結果を変化させる処理のことを条件分岐という +# 場合分けを増やす場合は「elsif」 +# 場合分け以外の場合は「else」を使う。 + +# コード +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +# 点数の入力 +puts "テストの点数を入力してね" +score = gets.to_i + +# 点数の判定 +if score > 100 or score < 0 # 0〜100以外の点数は受け付けない。 + puts "もう一度入力してください" +elsif score >= 100 + puts "すごい!満点だ!" +elsif score >= 80 + puts "素晴らしい!" +elsif score >= 60 + puts "グッド!" +elsif score >= 40 + puts "よくやった!" +elsif score >= 20 + puts "もう少し頑張ろう!" +elsif score >= 0 + puts "もっと勉強しよう!" +end + + +# このコードを改造してよりよくするなら。 +# 科目ごとに点数を入力してもらう。while, 配列(array), メソッド(method)を使う。 + +# 改造コード(例) +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +# 判別をするメソッド +# def hanbetu(score) +# comment = "" +# if score > 100 or score < 0 # 0〜100以外の点数は受け付けない。 +# comment = "もう一度入力してください" +# elsif score >= 100 +# comment = "すごい!満点だ!" +# elsif score >= 80 +# comment = "素晴らしい!" +# elsif score >= 60 +# comment = "グッド!" +# elsif score >= 40 +# comment = "よくやった!" +# elsif score >= 20 +# comment = "もう少し頑張ろう!" +# elsif score >= 0 +# comment = "もっと勉強しよう!" +# end +# return comment # comment変数に代入された文字列を返す +# end + +# subject = ["国語","数学","理科","社会","英語"] +# tensuu = [] # 入力された点数が追加される配列 + +# i = 0 +# while i <= subject.length - 1 # iが、配列の長さ(今回は4)より大きくなったらループを抜ける。配列の長さを取得するには、.lengthを使う。 +# printf("%sの点数は?\n>>", subject[i]) +# tensuu << gets.to_i #入力された点数を配列(tensuu)に追加 +# i += 1 +# end + +# puts "" + +# puts "最後に5科目の点数を確認をしましょう。" +# j = 0 +# while j <= subject.length - 1 #上に同じ +# printf("%sの点数は%i点です。%s\n", subject[j], tensuu[j], hanbetu(tensuu[j])) #科目、点数をそれぞれの配列の左から順番に出力している。最後に点数に対してコメントを返す。 +# j += 1 +# end diff --git a/j2305_last.rb b/j2305_last.rb new file mode 100755 index 0000000..83909ce --- /dev/null +++ b/j2305_last.rb @@ -0,0 +1,26 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +require 'csv' + +#プログラムのテーマは、おすすめのラーメンの店を紹介するプログラムをつくりました、これを作れば、どこのラーメンがおすすめなのかが、すぐにわかることがあったら便利だと思ったから。 +プログラムを作った上で、実装下っかった機能は、写真を乗せることでもっとはわかりやすく使っている人がわかりやすくなるのでつけたいし、条件分岐を使って味ごとにおすすめの味ごとに分けることなどもしていきたいと思った。 + + +data = CSV.read("ramen.csv", headers:true) + +data.each{|row| + + printf("%sの詳しい情報は?\n", row["店名"]) + + printf("店名 => %s \nおすすめ => %s \n", + row["店名"], row["おすすめ"]) + + + + printf("住所 => %s \n電話番号 => %s \n", + row["住所"], row["電話番号"]) + + print("--------------------------\n") } + + + diff --git a/kakikomi.rb b/kakikomi.rb new file mode 100755 index 0000000..24b1fa3 --- /dev/null +++ b/kakikomi.rb @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +# coding: utf-8 +require 'csv' +CSV.open("output.csv", "w") do |csv| + csv << ["a", "b", "c"] + csv << [1,2,3] + csb << ["りんご","みかん","バナナ"] +end diff --git a/kankou.rb b/kankou.rb new file mode 100755 index 0000000..4461034 --- /dev/null +++ b/kankou.rb @@ -0,0 +1,11 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +require 'csv' +data = CSV.read("output.csv", headers:true) + +data.each{|row| + printf("%sの詳しい情報は?\n", row["建物名"]) + printf("住所 ~=> %s \n 電話番号 => %s \n", + row["住所"], row["電話番号"]) + print("--------------------------\n") } + diff --git a/keisan.rb b/keisan.rb new file mode 100755 index 0000000..93f587e --- /dev/null +++ b/keisan.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +def keisan(x) + a = x*2 + b = 1 + c = a + b +end + +puts "数値を入れてください。 計算した結果を表示します。" +y = gets.to_i +print("%d\n", keisan(y)) diff --git a/kensaku.csv b/kensaku.csv new file mode 100644 index 0000000..8577746 --- /dev/null +++ b/kensaku.csv @@ -0,0 +1,6 @@ +name,gakko,gakunen,kozukai +公益太郎,三川八中,2,2000 +飯森花子,余目百中,1,4000 +鶴岡一人,タキタロウ小,4,200 +鶴岡二子,タキタロウ小,2,300 +遊佐梅花,丸池小,6,900 diff --git a/kensaku.rb b/kensaku.rb new file mode 100644 index 0000000..fa29cf1 --- /dev/null +++ b/kensaku.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +#coding: utf-8 + +Encoding.default_external = 'utf-8' +require 'csv' + +data = CSV.read('moji.csv', headers: true) +data.each do |row| + puts row['moji'] +end diff --git a/kensaku1.rb b/kensaku1.rb new file mode 100644 index 0000000..7ddaf3a --- /dev/null +++ b/kensaku1.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# coding: utf-8 + +Encoding.default_external = 'utf-8' +require 'csv' + +data = CSV.read('moji.csv', headers:true) +data.each do |row| + if /i/ =~ row['moji'] + puts row['moji'] + end +end diff --git a/kensaku2.rb b/kensaku2.rb new file mode 100644 index 0000000..db220f4 --- /dev/null +++ b/kensaku2.rb @@ -0,0 +1,31 @@ +#!/usr/bin/env ruby +# coding: utf-8 + +require 'csv' +data = CSV.read("kensaku.csv", headers: true) + +puts "学校で探す:1" +puts "金額で探す:2" +print "どれにしますか:" +sel = gets.to_i +if sel == 1 + print "探したい学校名を入れてください:" + ptn = Regexp.new(gets.chomp) + data.each do |row| + if ptn =~ row["gakko"] + printf("%sさんは%s%s年です\n", row["name"], row["gakko"], row["gakunen"]) + end + end + +elsif sel == 2 + print "絞り込みたい金額を入れてください:" + gaku = gets.to_i + data.each do |row| + if gaku < row["kozukai"].to_i + printf("%sさんは%d円もらっています\n", row["name"], row["kozukai"].to_i) + end + end + +else + printf("%d番はありません。さようなら。\n", sel) +end diff --git a/kibun.rb b/kibun.rb new file mode 100644 index 0000000..d1a9b8b --- /dev/null +++ b/kibun.rb @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +# -*- coding:utf-8 -*- + + + +for i in kibun + printf("今日は%sをしたい気分だ。\n", kibun) +end diff --git a/konnichiha2.rb b/konnichiha2.rb new file mode 100755 index 0000000..0cac127 --- /dev/null +++ b/konnichiha2.rb @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +puts("こんにちは!") diff --git a/kudamono.rb b/kudamono.rb new file mode 100755 index 0000000..0e02418 --- /dev/null +++ b/kudamono.rb @@ -0,0 +1,7 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +kudamono = ["りんご", "みかん", "バナナ"] +puts "好きな数字を入れて、値を取り出そう" +x = gets.to_i +puts kudamono[x] diff --git a/kyoutsuugo.txt b/kyoutsuugo.txt new file mode 100644 index 0000000..4f07c3e --- /dev/null +++ b/kyoutsuugo.txt @@ -0,0 +1,13 @@ +いや~今日のテストわからなくて苦労したよ +わからなくても大丈夫さ +大丈夫なんてお前たちダメでしょう +しっかり勉強しないと偉くなれないよ +偉くなんてならなくてもいいよ +ぺらぺら言わないで早く勉強しなさい +お父さんはいつもうるさいね~ +いいか言うこと聞かないと怒るぞ +でも今日のテストのプリントどこにやったかわからないんだもの +わからないなんてきちんとさがして勉強しなさい +勉強の前にご飯食べさせて +たくさん食べなさい +はい食べます \ No newline at end of file diff --git a/last.csv b/last.csv new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/last.csv diff --git a/method.rb b/method.rb new file mode 100644 index 0000000..a0ce3ef --- /dev/null +++ b/method.rb @@ -0,0 +1,60 @@ +#!/usr/koeki/bin/ruby +# coding: utf-8 + +def speed(distance,time) + distance/time +end + +puts"分速を計算するよ!" + +puts"距離を入力してね(単位:m)" +x = gets.to_i + +puts"時間を入力してね(単位:分)" +y = gets.to_i + +printf("%dmを%d分で走ったときの分速は%dm/mです\n",x,y,speed(x,y)) + +# defとは +# def メソッド名(仮引数)で最初に実行したい処理を定義し、メソッド名で呼び出すことで決められた処理を実行することができるもの + +# プログラム解説 +# 分速を求めるプログラム +# 速度は距離÷時間で求めることができるので、speedというメソッドで定義する +# 10行目から14行目で計算に必要な距離と時間を入力してもらう +# 16行目で結果を表示 + +# 改善案 +# 入力してもらうところをメソッド定義してみよう! +# 距離と時間の求め方もメソッド定義してwhileでどれを求めるか選択できるようにしよう! +# 例) +# def kazu(x) +# printf("%sを入力してね\n",x) +# end +# def speed(distance,time) +# 時速を求める処理 +# end +# def distance(speed,time) +# 距離を求める処理 +# end +# def time(distance,speed) +# 時間を求める処理 +# end +# while true +# puts"求めたいものを選択してね" +# puts"1.時速" +# puts"2.距離" +# puts"3.時間" +# puts"4.終了" +# sentaku = gets.to_i +# if sentaku == 1 +# x = kazu("距離") +# y = kazu("時間") +# speed(x,y) +# elsif sentaku == 2 +# . +# . +# . +# end + + diff --git a/moji.csv b/moji.csv new file mode 100644 index 0000000..4f7b043 --- /dev/null +++ b/moji.csv @@ -0,0 +1,6 @@ +moji +i +Programming +Application +I +Image diff --git a/nedan_f.rb b/nedan_f.rb new file mode 100755 index 0000000..a6025ea --- /dev/null +++ b/nedan_f.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +nedan = [50, 100, 150, 200] +i = 1 + +for n in nedan + printf("%dつ目の値段は%d円です。 \n", i, n ) + i += 1 +end diff --git a/nedan_w.rb b/nedan_w.rb new file mode 100755 index 0000000..311ec6e --- /dev/null +++ b/nedan_w.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +nedan = [50,100,150,200] +i = 0 + +while i < nedan. length + printf("%dつ目の値段は%d円です。 \n", i, n) + i+= 1 +end diff --git a/nibai.rb b/nibai.rb new file mode 100755 index 0000000..5a43e9f --- /dev/null +++ b/nibai.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +def nibai(x) + x*2 +end + +puts "数値を入れてください。2倍します。" +y=gets.to_i +printf("%d\n",nibai(y) diff --git a/nyuroku.rb b/nyuroku.rb new file mode 100755 index 0000000..aede91d --- /dev/null +++ b/nyuroku.rb @@ -0,0 +1,5 @@ +#!/bin/env ruby +# -*- coding: utf-8 -*- + +print("数字を入れる\n") +nenreis.=gets.to_i diff --git a/nyuryoku b/nyuryoku new file mode 100755 index 0000000..8afbd78 --- /dev/null +++ b/nyuryoku @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +print("数字を入れる\n") +nenrei = gets.to_i + +purintf("私は%d再です。\n",nenrei) + diff --git a/nyuryoku.rb b/nyuryoku.rb new file mode 100755 index 0000000..0defc1d --- /dev/null +++ b/nyuryoku.rb @@ -0,0 +1,7 @@ +#!/usr/bin/env ruby +# -*- codiing: utf-8 -*- + +print("数字を入れる\n") +nenrei = gets.to_i +printf("%d 歳です。\n", nenrei) + diff --git a/output.csv b/output.csv new file mode 100644 index 0000000..c368a67 --- /dev/null +++ b/output.csv @@ -0,0 +1,11 @@ +Eigo,日本語 +biku,バイク +dog,犬 +airplane,飛行機 +bleakfadt,朝食 +library,図書館 +moon,月 +singer,歌手 +water,水 +car,くるま +elephant,ゾウ diff --git a/output1.csv b/output1.csv new file mode 100644 index 0000000..47c8b69 --- /dev/null +++ b/output1.csv @@ -0,0 +1,11 @@ +Eigo,日本語 +elephant,ゾウ +dog,犬 +dinner,夕飯 +bleakfadt,朝食 +brotter,男兄弟 +姉妹,sister +歌手,singer +水,water +ブロッコリー,broccoli +りんご,apple diff --git a/program.rb b/program.rb new file mode 100644 index 0000000..1fbc504 --- /dev/null +++ b/program.rb @@ -0,0 +1,60 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +#初期設定 + +require 'curses' +include Curses + +init_screen +cbreak +noecho + +rt = [] + +begin + sleep(0) + + 10.times do + system("display -geometry +0+0 before.jpg&") + sleep(2) + system('pkill magick -U `whoami`') + srand + i = rand(3)+1 + if i == 1 + system("display -geometry +0+0 after1.jpg&") + elsif i == 2 + system("display -geometry +0+0 after2.jpg&") + elsif i == 3 + system("display -geometry +0+0 after3.jpg&") + end + setpos(0,0) + addstr("\n 1:安全 2:危険") + refresh + start = Time.now + answer = getch + stop = Time.now + rt << [i,answer,stop.to_f - start.to_f] + refresh + + system('pkill magick -U `whoami`') + setpos(0,0) + addstr("\n ") + refresh + sleep(2) + end + + correct = 0 + total = 0 + for j in rt + total += j[2] + if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2") + correct += 1 + end + end + +ensure + close_screen +end + +printf("正答%d回  反応時間%5.3f秒\n", correct, total/10) diff --git a/program_advanced.rb b/program_advanced.rb new file mode 100644 index 0000000..d740d94 --- /dev/null +++ b/program_advanced.rb @@ -0,0 +1,66 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +#初期設定 + +require 'curses' +include Curses + +init_screen +cbreak +noecho + +rt = [] + +begin + sleep(0) + + 10.times do + system("display -geometry +0+0 before.jpg&") + sleep(2) + system('pkill magick -U `whoami`') + srand + i = rand(3)+1 + if i == 1 + system("display -geometry +400+0 quiz1.jpg&") + sleep(0.5) + system("display -geometry +0+0 after1.jpg&") + elsif i == 2 + system("display -geometry +400+0 quiz1.jpg") + sleep(0.5) + system("display -geometry +0+0 after2.jpg&") + elsif i == 3 + system("display -geometry +400+0 quiz1.jpg&") + sleep(0.5) + system("display -geometry +0+0 after3.jpg&") + end + setpos(0,0) + addstr("\n 1:安全 2:危険") + refresh + start = Time.now + answer = getch + stop = Time.now + rt << [i,answer,stop.to_f - start.to_f] + refresh + + system('pkill magick -U `whoami`') + setpos(0,0) + addstr("\n ") + refresh + sleep(2) + end + + correct = 0 + total = 0 + for j in rt + total += j[2] + if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2") + correct += 1 + end + end + +ensure + close_screen +end + +printf("正答%d回  反応時間%5.3f秒\n", correct, total/10) diff --git a/ramen.CSV b/ramen.CSV new file mode 100644 index 0000000..8f1d4f6 --- /dev/null +++ b/ramen.CSV @@ -0,0 +1,17 @@ +味,店名, おすすめ,住所, 電話番号 + +しょうゆ, 銀河,銀河ラーメン,山形県鶴岡市下山添一里塚152, 0235-57-4645 + +しょうゆ, 田代食堂, チャーシューメン, 山形県鶴岡市田代大坂山309, 0235-57-4614 + +しょうゆ, 久太, ラーメン, 山形県鶴岡市湯温海湯之尻518, 0235-43-3315 + +しお, 千石や, 塩ラーメン,山形県鶴岡市大宝寺字日本国378-10,0235-25-7242 + +しお, 晴天の風, しおワンタン麺,山形県鶴岡市伊勢原町2-24, 0235-23-8508 + +みそ, 満び,辛味噌ラーメン,山形県鶴岡市日出1丁目22-8, 0235-25-5338 + +みそ,つるおか家, みそホルモンめん,山形県鶴岡市小淀川地田5-1,0235-23-5727 + +みそ,龍上海 赤湯からみそラーメン, 山形県鶴岡市日出2丁目3-51,0235-77-4000 diff --git a/ramen.csv b/ramen.csv new file mode 100644 index 0000000..1bebb55 --- /dev/null +++ b/ramen.csv @@ -0,0 +1,17 @@ +味,店名,おすすめ,住所,電話番号 + +しょうゆ,銀河,銀河ラーメン,山形県鶴岡市下山添一里塚152,0235-57-4645 + +しょうゆ,田代食堂,チャーシューメン,山形県鶴岡市田代大坂山309,0235-57-4614 + +しょうゆ,久太,ラーメン,山形県鶴岡市湯温海湯之尻518,0235-43-3315 + +しお,千石や,塩ラーメン,山形県鶴岡市大宝寺字日本国378-10,0235-25-7242 + +しお,晴天の風,しおワンタン麺,山形県鶴岡市伊勢原町2-24,0235-23-8508 + +みそ,満び,辛味噌ラーメン,山形県鶴岡市日出1丁目22-8,0235-25-5338 + +みそ,つるおか家,みそホルモンめん,山形県鶴岡市小淀川地田5-1,0235-23-5727 + +みそ,龍上海,赤湯からみそラーメン,山形県鶴岡市日出2丁目3-51,0235-77-4000 diff --git a/ramen.rb b/ramen.rb new file mode 100755 index 0000000..3158681 --- /dev/null +++ b/ramen.rb @@ -0,0 +1,60 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require 'csv' +data = CSV.read("ramen.csv", headers:true) +while true + puts "好きなラーメンの味をえらんでね!" + puts "1:しょうゆ" + puts "2:しお" + puts "3:みそ" + puts "0:終了" + print("0〜3の数字を入力してね!:") + input=gets.to_i + if input == 0 then + break + elsif input == 1 then + data.each{|row| + printf("%d %s: %sがおすすめのラーメンだよ¥n", row["店名"]) + printf("住所は, %s 電話番号は, %s ¥n", row ["住所"],row["電話番号"]) + print ("---------------------------------------------------------------¥n")} + elsif input == 2 then + data.esch{|row| + printf("%d %s: %sがおすすめのラーメンだよ¥n", row["店名"]) + printf("住所は, %s 電話番号は, %s。¥n", row ["住所"],row["電話番号"]) + print ("--------------------------------------------------------------¥n")} + elsif input == 3 then + date.each{|row| + printf("%d %s: %sがおすすめのラーメンだよ¥n", row["店名"]) + printf("住所は, %s 電話番号は, %s。¥n", row ["住所"],row ["電話番号"]) + print ("-------------------------------------------------------------¥n")} + end + print("1〜3から選んでね") + end + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ramen2.rb b/ramen2.rb new file mode 100755 index 0000000..e61d574 --- /dev/null +++ b/ramen2.rb @@ -0,0 +1,6 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +print("味を入力してね。\n") + + diff --git a/ramen3.rb b/ramen3.rb new file mode 100755 index 0000000..574e836 --- /dev/null +++ b/ramen3.rb @@ -0,0 +1,51 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require 'csv' +data = CSV.read("ramen.csv", headers:true) +while true + puts "好きなラーメンの味をえらんでね!" + puts "1:しょうゆ" + puts "2:しお" + puts "3:みそ" + puts "0:終了" + print("0〜3の数字を入力してください") + input=gets.to_i + if input == 0 then + break + elsif input == 1 then + printf("銀河と田代食堂がおすすめです。\n") + elsif input == 2 then + printf("千石やと晴天の風がおすすめです。\n") + elsif input == 3 then + printf("満びとつるおか家がおすすめです。\n") + end + + end + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rand.rb b/rand.rb new file mode 100644 index 0000000..9151e99 --- /dev/null +++ b/rand.rb @@ -0,0 +1,35 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +puts "1から9の間の数字を3回入力してください。その合計を足します。" +tasu = 0 +goukei = 0 + +while tasu < 3 + printf("数字を入力してください: ") + kazu = gets.to_i + + if kazu > 9 || kazu < 0 + printf("----1から9の数字を入力してください。----\n") + redo + end + + goukei += kazu + printf("入力された数字: %d\n", kazu) + tasu += 1 +end + +printf("3つの数字の合計は %dです。\n", goukei) + +# redoとは、繰り返し処理を中断し、処理を最初からやり直す働きを持っています。 +# 3回入力してもらいますが、1〜9以外の数字を入力すると9行目の +# printf("数字を入力してください: ")に戻り、処理を最初からやり直します。 + +# 最後に3つの入力された数字の合計を出力しますが、1〜9以外の数字が入力されたときは足されません. + +#-------------改良するなら------------- +# redoだけではなく、nextやbreakもプログララムの中で使ってみよう! +# たとえば、1〜4の4択クイズで不正解の場合はredoでやり直し、正解したらbreakでプログラムを終了するようなプログラム + +# また、このプログラムは3回ですが、最初に何回入力させるかをユーザーに入力させてその回数分だけ入力を繰り返してみよう! + diff --git a/score.sq3 b/score.sq3 new file mode 100644 index 0000000..1570848 --- /dev/null +++ b/score.sq3 Binary files differ diff --git a/shonaiben_translator.rb b/shonaiben_translator.rb new file mode 100644 index 0000000..18ce909 --- /dev/null +++ b/shonaiben_translator.rb @@ -0,0 +1,44 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +def levenshtein(string1, string2, memo={}) # レーベンシュタイン距離を計算するメソッド + return memo[[string1, string2]] if memo[[string1, string2]] + return string2.size if string1.empty? + return string1.size if string2.empty? + return levenshtein(string1[1..], string2[1..], memo) if string1[0] == string2[0] + min_dist = 1 + [levenshtein(string1[1..], string2, memo), + levenshtein(string1, string2[1..], memo), + levenshtein(string1[1..], string2[1..], memo) + ].min + memo[[string1, string2]] = min_dist + min_dist +end + +source = File.readlines("shounaiben.txt") # 庄内弁の文章をファイルから読み込み、配列に保存 +candidates = File.readlines("kyoutsuugo.txt") # 共通語の訳文をファイルから読み込み、配列に保存 + +i = 0 +while i < source.length # 庄内弁の文章ごとに同じ処理を繰り返す + dist2target = levenshtein(source[i].chomp, candidates[i].chomp) # 正解訳文への編集距離の計算 + min_dist = dist2target # 最短編集距離の初期値(=正解訳文への編集距離) + count_same_or_lower = 0 # 編集距離が正解への距離以下である文章の総数の初期値 + best_cand = candidates[i].chomp # 最短編集距離の訳文の初期値(=正解訳文) + for cand in candidates # それぞれの共通語の文章への編集距離を調べる + dist = levenshtein(source[i].chomp, cand.chomp) + if dist < min_dist + min_dist = dist + best_cand = cand + end + if dist <= dist2target + count_same_or_lower += 1 + end + end + printf("庄内弁の文章: %s\n", source[i].chomp) + printf("共通語の訳文(正解): %s\n", candidates[i].chomp) + printf("最短編集距離の訳文: %s\n", best_cand.chomp) + printf("正解訳文への編集距離: %d\n", dist2target) + printf("最短編集距離: %d\n", min_dist) + printf("編集距離が正解訳文への距離以下である文章の総数: %d\n", count_same_or_lower) + puts + i += 1 +end \ No newline at end of file diff --git a/shounaiben.txt b/shounaiben.txt new file mode 100644 index 0000000..8266081 --- /dev/null +++ b/shounaiben.txt @@ -0,0 +1,13 @@ +いや~今日のテストわがらねぐでよいでねけ~ +わがらねたってなんでもね~ +なんでもでねんでろおめだだめだんねあんが +ちゃんと勉強しねど偉ぐならんねさげの~ +偉ぐなんてなんねぐてもいさげ +しゃべっちょこいでねでちゃっちゃど勉強せ +だだはいっつもやがましちゃ +いがの~言うごど聞がねどごげっぞ +したって今日のテストのプリントどごさやたがわがらねもの~ +わがらねどちゃんとさがして勉強せ +勉強の前さままかせでくれ +ほれいっぺけ~ +せばく~ \ No newline at end of file diff --git a/tango2.rb b/tango2.rb new file mode 100755 index 0000000..0e83916 --- /dev/null +++ b/tango2.rb @@ -0,0 +1,21 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +require 'csv' + +printf("問題スタート!\n") + +data = CSV.read("output.csv", headers:true) + +data.each{|row| + + printf("%sの意味は?\n", row["Eigo"]) + + sleep(3) + + printf("%s \n", row["日本語"]) + + sleep(3) + + print("---------\n") } + + printf("終了!\n") diff --git a/tangotyou b/tangotyou new file mode 100755 index 0000000..0a3a646 --- /dev/null +++ b/tangotyou @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require 'csv' + +CSV.open("output.csv","w" ) do |csv| + + csv << ["elephant","ゾウ"] + + csv << ["dog","犬"] + + csv << ["dinner", "夕飯"] + + csv << ["bleakfadt","朝食"] + + csv << ["brotter","男兄弟"] + + csv << ["姉妹","sister"] + + csv << ["歌手","singer"] + + csv << ["水","water"] + + csv << ["ブロッコリー","broccoli"] + + csb << ["りんご,"apple"] + +end + diff --git a/tangotyou.rb b/tangotyou.rb new file mode 100755 index 0000000..4dffe87 --- /dev/null +++ b/tangotyou.rb @@ -0,0 +1,32 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require 'csv' + +CSV.open("output.csv","w" ) do |csv| + + csv << ["Eigo","日本語"] + + csv << ["biku","バイク"] + + csv << ["dog","犬"] + + csv << ["airplane", "飛行機"] + + csv << ["bleakfadt","朝食"] + + csv << ["library","図書館"] + + csv << ["moon","月"] + + csv << ["singer","歌手"] + + csv << ["water","水"] + + csv << ["car","くるま"] + + csv << ["elephant","ゾウ"] + +end + +printf("OK\n") diff --git a/while.rb b/while.rb new file mode 100644 index 0000000..11130e7 --- /dev/null +++ b/while.rb @@ -0,0 +1,46 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +num = 1 # ① +while num < 51 do # ② + puts num # ③ + num = num + 1 # ④ +end # ⑤ + + + +# どういったもの ? + +# A.繰り返し(ループ)処理を記述するためのもので、指定した条件が満たされている間はずっと繰り返し処理を行いたいときに使う。 + + + +# ーーーーーーーーーーーーーーーー +# ① 最初の数字 | ( 例 ) num = 1の時 1〜50 | +# | num = 0の時 0〜50 | +# ーーーーーーーーーーーーーーーー + + +# ② [ while ]から[ end ]までの間をループする。 +# [ num < 51 do ]は51以上の数字を出さないようになる。 + + + +# ③ [ puts num ]は[ num ]の数字を表示する。 + + + +# ④ [ num = num + 1 ]は①の数字に[ 1 ]を足した数が左に出てくる。 +# ↑ ======== +# ーーーーーーーーーーーーーーーーーー| +# * 注意 :③と④の位置を変えると [ 51 ]まで表示してしまう。 + + +# ⑤ [ end ]がないとエラーが発生する。 + + +# ーーーーーーーーーーーーーーー* 改造する時の注意点 *ーーーーーーーーーーーーーーーーーーーーーーーー + +# 1. 改造するときには必ず [ whille ]と [ end ] をセットとして入れること。 +# 2. [ while ]のうしろに [ do ] や [ true ]、[ break ] が作成するプログラムによって使い方が変わる。 +# 3.あとは②、③を改造すれば [ while ]から[ end ]内にある改造したものがループするようになる。