================================ SyntaxError: /home/XXXXXXXXXX/algo16/interference3.rb:12: dynamic constant assignment Z = make2d(2*s,2*s) ^ =================================
>アルファベット大文字 ([A-Z]) で始まる識別子は定数です。 定数の定義 (と初期化) は代入によって行われますが、メソッドの 中では定義できません。とのことです。(rubyでは)関数の中で定数割り当てしてはいけないためエラーが出ています。
def match_safe(s,p) i = 0 w = p.length() while i + w <= s.length() && submatch(s,i,p,w) < w i = i + 1 end if i + w > s.length() -1 else i end end
while i <= s.length() && submatch(s,i,p,w) < wのように i の最大値を大きめに取っている人も多かった.これもRuby言語では正しく動くので正解ではあるが,これは,submatchの中で文字列sの長さを超えたインデックスでの参照が生じてしまっている(s = "ABCD" に対して s[6..6] のようなもの).Ruby言語では例外が発生せずにnilを返すので正常に動くが,他のプログラミング言語ではこのようなアクセスを行うと例外が発生することがあるので,注意が必要となる.
mkdir algo16のようにします.そして,ターミナルを開くたびに
cd algo16と入力してからirbを動かしてください.詳しくは,はいぱーワークブック「14.4 コマンドを使ったファイル操作」を参照してください.
cd algo16 unzip allcode.zipを実行するか,Finderでalgo16のフォルダの下のallcode.zipをダブルクリックすると,algo16の下にすべての配付プログラムが展開されます.
cd algo16を済ませてから,
ruby vote.rb 選択肢番号のように使います.
irbを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」の15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.
cd ~/algo16と入力してください.これらの機能を使うと,irbを抜けずにvoteできます.
ターミナルの基本的な使い方は,はいぱーワークブックの15.2 ターミナルの基本的な使い方を,より高度な使い方は,15.4 ターミナルの便利な使い方を参照してください.
cdというコマンドと「~」の意味は,はいぱーワークブックの14.4 コマンドを使ったファイル操作の14.4.1 ディレクトリを読むと分かります.
iruby notebookを実行すると,Webブラウザ上で対応するタブが開きます.
include(Math)を入力するように書いています. 毎回入力するのが面倒な場合は,ホームディレクトリの下に「.irbrc」というテキストファイルを作り,その中に
include(Math)と書いておくと,irb起動時にこのファイルの中身を実行してくれるので,毎回指定しなくても大丈夫です.ただし,このファイルの実行中にエラーが出ないように正しく記述剃る必要があります.また,
Math.sqrt(2)のような形で指定すれば,
include(Math)は不要です.
cp -rp /home/5320954122/Ruby ~/Library/Application\ Support/mi/mode/を実行してからmiを立ち上げるとRubyモードが利用可能なモードとして加わります.
の画面が出るので,モードを「Ruby」にして,改行コードを「LF(UNIX)」にして,ウィンドウを閉じてください.以降は,ファイル作成のさいに,「ファイル」->「新規」->「Ruby」で作成すると正しい改行コードが設定されているはずです.
ruby check.rb ex01.rbと実行すると,関数を与えた時の入力と出力があっていることが確認できます. 詳しくは,補足説明 (練習問題確認プログラムの使い方)を御覧ください.
.ai, .ani, .anim, .apng, .art, .bef, .bmf, .bmp, .bsave, .cal, .cdf, .cdr, .cgm, .cgm, .ciff, .cin, .cpc, .djvu, .dng, . dpx, .dxf, .ecw, .emf, .eps, .eva, .exr, .fits, .flic, .fpx, .gerber, .gif, .hdri, .hvif, .icer, .icns, .ico, .ics, .iges, .iges pgml, .ilbm, .jbig, .jbig2, .jng, .jpeg, .jpeg 2000, .jpeg xr, .jpeg-hdr, .jpeg-ls, .miff, .mng, .pbm, .pcx, .pdf, .pgf, .pgm, .pict, .pict, .pictor, .pixel, .png, .postscript, .ppm, .psd, .psp, .rad, .rgbe, .sgi, .svg, .swf, .tga, .tiff, .vml, .wbmp, .webp, .wmf, .x aml, .xar, .xar, .xbm, .xcf, .xpm