アプリケーション紹介

授業や学生指導の中で,作成してきたアプリケーションを紹介します. 画像なしは,こちらです.

目次

アプリへ」をクリックすると,アプリケーションを使うことができます.

Euclid_js: 拡張ユークリッド互除法をJavaScriptで

Euclid_js(ユークリッド・ジェイエス)は,ある整数解を求める問題を,拡張ユークリッド互除法を使って解いてくれます.アプリへ

aとbに,正の整数値を入力し,ボタンを押せば,a*x+b*y=gcd(a,b) を満たす整数x,yを求めます.右辺の「gcd(a,b)」は,aとbの最大公約数です.

情報セキュリティの授業では,RSAの鍵生成アルゴリズムに合わせて,拡張ユークリッド互除法を取り上げています.整数のみの加減乗除で求められるのですが,手で解くと,よく計算ミスや,変数の取り違いをしてしまいます.

そこで,JavaScriptプログラムを書き,ブラウザの上で解かせることにしました.

検算用にどうぞ.なお,試験では使用できません.

使用例
euclid

zjs: ブラウザで動く学会タイマー

zjs(ズィー・ジェイ・エス)は,時間に厳格な,学会発表や,大学の卒業研究発表会などで,秒単位で時間を管理するためのアプリケーションです.アプリへ

このタイマーを動かすのに必要なものは,HTMLファイル一つと,ブラウザだけです.wavファイルを用意すれば,音を鳴らすこともできます。

時間の設定や,時間を進めるなどの操作は,いろいろな方法で行えます.発表だけでなく,発表練習にも使えるようになっており,例えば,スライドごとに何分何秒が経過したかを記録することができます(右の画像).

最新版は github よりダウンロードできます.また,開発記録を日記で公開しています.

使用例
zjis1 zjis2

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 を実行すれば動きます.

最新版は github よりダウンロードできます.また,開発記録を日記で公開しています.

使用例(1問目)
使用例(1問目正解)