□アプリケーション紹介
授業や学生指導の中で,作成してきたアプリケーションを紹介します. 画像ありは,こちらです.
目次
「」をクリックすると,アプリケーションを使うことができます.
Euclid_js: 拡張ユークリッド互除法をJavaScriptで
Euclid_js(ユークリッド?ジェイエス)は,ある整数解を求める問題を,拡張ユークリッド互除法を使って解いてくれます.
aとbに,正の整数値を入力し,ボタンを押せば,a*x+b*y=gcd(a,b) を満たす整数x,yを求めます.右辺の「gcd(a,b)」は,aとbの最大公約数です.
情報セキュリティの授業では,RSAの鍵生成アルゴリズムに合わせて,拡張ユークリッド互除法を取り上げています.整数のみの加減乗除で求められるのですが,手で解くと,よく計算ミスや,変数の取り違いをしてしまいます.
そこで,JavaScriptプログラムを書き,ブラウザの上で解かせることにしました.
検算用にどうぞ.なお,試験では使用できません.
zjs: ブラウザで動く学会タイマー
zjs(ズィー?ジェイ?エス)は,時間に厳格な,学会発表や,大学の卒業研究発表会などで,秒単位で時間を管理するためのアプリケーションです.
このタイマーを動かすのに必要なものは,HTMLファイル一つと,ブラウザだけです.wavファイルを用意すれば,音を鳴らすこともできます。
時間の設定や,時間を進めるなどの操作は,いろいろな方法で行えます.発表だけでなく,発表練習にも使えるようになっており,例えば,スライドごとに何分何秒が経過したかを記録することができます.
nlmate: 2重ループで頭の体操
nlmate(エヌエルメイト)は,「2重ループを自由自在に書けるようになりたい」という人を支援する,小さなソフトウェアです.
Linuxなどの端末で,実行します.すると,英語の説明文のあとに,「Goal: (0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)」と出てきます.この出力になるように,i(第1成分の変数)とj(第2成分の変数)を変化させるfor文を考えて打ち込みます.ちなみに1問目は,英文をよく読めば答えが書かれています.2問目からはノーヒントです.
1回で解くのは3問までです(オプション指定により最大9問まで).間違えると,同じ問題をやり直します.問題は100通り以上ありますが,すべてすらすら解けるようになれば,2重ループのプログラミングは卒業と言っていいでしょう.私が9問解くと,3?4分かかっていますので,まずはこの時間を目指してみてください.
プログラム自体は,単一のRubyスクリプトで構成しています.動かすには,rubyコマンドと,コンパイルのためのgccコマンドが必要ですが,いずれも学習用Linux環境であればすでにインストールされているでしょう.また,本学の演習室で使用してみたい人は,Linuxでログインし,端末を起動してから,~takehiko/bin/nlmate を実行すれば動きます.