====== オンラインRuby学習サイト replit を利用する方法 ====== ===== replit について ===== replit はオンラインでプログラミングを行ったり、学習したりできるサイトである。 PC でもスマートフォンでも利用できるので便利である。 replit では Ruby だけでなく、C や Python などの様々な言語を扱うことができる。 * [[replit>|replit]] ちなみに、replit のサイトは公益大とは全く関係がない。 ===== ログイン ===== 最初にアカウントを作ってログインする必要がある。 ---- ==== アカウントの作成 ==== - [[replit>|replit]] にアクセスして右上の''**[Sign up]**'' をクリック(タップ)する。 - Username(ユーザ名、15文字以内), Email(メールアドレス), Password(パスワード、6文字以上)を入力して ''**[Create account]**'' ボタンをクリック(タップ)する。 * **ユーザ名とパスワードは自分で考えること。**ユーザ名を入力して「Username is taken」と表示された場合は、そのユーザ名はすでに別の誰かが登録しているので使えない。 * 登録するメールアドレスは大学で各自に割り当てられたメールアドレスでもよい。 - 入力したメールのアドレスに replit からメールが届くので、そこに書かれている URL をクリック(タップ)することでアカウント作成は完了する。 ---- ==== ログイン ==== - [[replit>|replit]] にアクセスして右上の ''**[Log in]**'' をクリック(タップ)する。 - 登録した Username(もしくは Email)と Password を入力して ''**[Log in]**'' をクリック(タップ)する。 ===== Ruby のプログラミング ===== {{ replit_menu.png?nolink |メニュー}} 新規に Ruby のプログラミングを始めるには以下のようにして実行環境を作成してから行う。 - メニューから ''**[+ Create]**'' をクリック(タップ)する。 - Search Templates に ruby と入力して現れる候補から ''**[Ruby]**'' を選択するか、Favorites から ''**[Ruby]**'' を選択する。 - Title に実行環境のタイトルを入力する(あとから変更できるので入力しなくてもよい)。 - ''**[+ Create Repl]**'' をクリック(タップ)する。 保存した実行環境を開くには、メニューから ''**[My Repls]**'' をクリック(タップ)して選択する。 タイトルを付けなかった実行環境は Unamed というフォルダに保存されている。 実行環境を開くと、スマートフォンでは main.rb の編集区画が表示される。 PC では左にサイドバー、中央に編集区画、右にコンソール区画が表示される。 一つの実行環境の中には複数のファイルを作成できるが、**プログラムの実行ができるのは、はじめに用意される main.rb だけなので、main.rb に実行したいプログラムを記述すること。** * ''**[▶ Run]**'' をクリック(タップ)すると main.rb のプログラムが実行され、コンソール区画に出力される。 * プログラム実行中に ''**[■ Stop]**'' をクリック(タップ)するとプログラムの実行を中止する。 * スマートフォンでは下に表示されているファイル名の部分を左右にスワイプすると編集区画とコンソール区画を切り替えられる。 * スマートフォンでは左下のボタンをタップするとサイドバーが表示される。 === 編集区画 === * 編集区画で編集した内容は自動的に保存される。 * はじめに 1行目に表示される文字列(puts "Hello, World!")は例なので削除してよい。 {{ replit_edit.png?nolink |編集区画}} === コンソール区画 === * コンソール区画ではプログラムによる標準入力や標準出力が可能である。 {{ replit_console.png?nolink |コンソール区画}} **サイドバー(ファイル一覧)** * サイドバーには現在の実行環境の中にあるファイル一覧が表示される。 {{ replit_sidebar.png?nolink |サイドバー}} うまくいかない場合 * Web ページの再読込を行う。 * Web ブラウザを変えてみる。 ===== プログラムのテスト ===== 次の簡単なプログラム hello.rb を入力して実行してみよう。 #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- print "Hello, world!\n" **行頭の番号(行番号)は説明のために付けているので入力不要である。** プログラムを記述する際の注意点 * 英語、数字、記号、空白は半角文字でないといけない(文字列やコメントは全角文字でもよい)。 * 英語は大文字と小文字を区別する。 スマートフォンでは画面が小さいため色々と難しいと思うが工夫をしてほしい。 * [[tips:multiwindow|マルチウィンドウ機能]]を使うと便利である。 * 直接入力するよりもメモ帳アプリなどでプログラムを書いてコピペするといいかもしれない。 * プログラムを紙に書いてから入力するという手もある。 このプログラムを実行すると、コンソール区画に次のように表示される。 Hello, world! このプログラムの意味は次の通り。 * 1行目と2行目は本学の環境で Ruby プログラムを記述するときには、いつも書いていた方がよいものである。 * 3行目の「''print''」というのは後に続く文字列を出力しなさいという__**メソッド**__である。 * 3行目の「''"Hello, world!\n"''」は文字列を意味し、その中の「''\n''」は「改行」を表す特殊な文字である。 ===== ファイルからの入力方法 ===== CSV ファイルから読み込んでコンソール区画に出力するプログラムを実行してみよう。 ---- ==== list.csv の準備 ==== まず、プログラムで読み込むためのファイルとして list.csv を準備する。 サイドバーからファイル追加ボタンをクリック(タップ)して、ファイル名「list.csv」を入力するとそのファイルの編集区画が表示される。 編集区画に以下の list.csv の内容をコピペする。 はながた ベニちゃん,Hanagata Benichan,山形市旅籠町2-3-25 寒河江 チェリン,Sagae Cherrin,寒河江市中央1-9-45 庄内 まめうさ,Shonai Mameusa,酒田市浜中字村東30-3 酒田 もしぇのん,Sakata Moshenon,酒田市本町2-2-45 酒田 あののん,Sakata Anonon,酒田市本町2-2-45 桃色 ウサヒ,Momoiro Usahi,西村山郡朝日町大字宮宿1115 米沢 かねたん,Yonezawa Kanetan,米沢市金池5-2-25 バーニック ナガイ,Baniku Nagai,長井市ままの上5-1 {{ :ruby:replit_listcsv.png?nolink |list.csv}} ---- ==== プログラムの実行 ==== 次に、list.csv を一行ずつ読み込んで標準出力に出力するプログラムを実行する。 main.rb の編集区画で、以下のプログラムの内容をコピペする。 #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- f = open("list.csv", "r") while line = f.gets print line end f.close これを実行すると list.csv が読み込まれてコンソール区画に出力される。 ===== ファイルへの出力方法 ===== コンソール区画で数値を入力して結果をファイルに出力するプログラムを実行してみよう。 ---- ==== subjectsum5.rb の実行 ==== 英語、数学、国語の点数を入力して合計点を output.txt に出力するプログラムを実行する。 main.rb の編集区画で、以下のプログラムの内容をコピペする。 #!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- sum = 0 for subject in ["英語", "数学", "国語"] print subject + "は何点? " sum += gets.chomp.to_i end open("output.txt", "w") do |f| f.printf("合計は%d点です\n", sum) end 実行するとコンソール区画で点数の入力待ちになるので適当な数字(例えば「80」「66」「54」)を順次入力する。 {{ :ruby:replit_output1.png?nolink |点数の入力}} 入力した点数の合計点はコンソール区画には出力されずに output.txt に出力(保存)される。 output.txt を見るにはサイドバーのファイル一覧で output.txt を選択する。 {{ :ruby:replit_output2.png?nolink |ファイル選択画面}}