ITPASS実習 レポート 1


B3 高橋由実子
担当情報実験機 joho 05

問1 数当て


スクリプトのURL

http://epa.scitec.kobe-u.ac.jp/~takahasu/report01/scripts/quiz1.sh.txt

スクリプトの使い方の解説

以下の手順に従って下さい.
  • quiz1.shの実行権限のある状態で./quiz1.sh number(numberは任意の二桁の整数)を実行する.
    ここで入力したnumberがこれから当てる数になる.
  • What's your number?というメッセージが表示されるので,任意の二桁の数を入力する.
  • その数が当てる数より大きいか小さいかが表示されるので,それをヒントに当てる数により近い数を入力していく.
  • これを繰り返し,入力した数が当てる数と一致すると,メッセージが表示され, スクリプトが終了する.
  • 実行結果はquiz1.txtにも出力されている.

実行結果へのリンク

http://epa.scitec.kobe-u.ac.jp/~takahasu/report01/results/quiz1.txt

参考資料


共同作業した方

後藤陽香さん

アドバイスをいただいた方

河合佑太さん エラーの原因などを指摘していただきました. 有難うございました.

工夫したこと,感想

 whileの条件を「引数とnumberが一致しないとき」とすることで後の構造をifで単純にすることができた.
ITPASSのメーリングリストで,teeコマンドのことが書かれていたので,それを参考にして出力する手間を省くことができた.
 このスクリプトでは二桁の数を自分で入力してしまうので,よりゲーム性を高めるために,ランダムな数を発生させて,
それを当てるスクリプトも作った. 以下のURLに置いておく.
http://epa.scitec.kobe-u.ac.jp/~takahasu/report01/scripts/quiz1dv.sh.txt

問2 素因数分解


スクリプトのURL

http://epa.scitec.kobe-u.ac.jp/~takahasu/report01/scripts/quiz2.sh.txt

スクリプトの使い方の解説

以下の手順に従って下さい.
  • quiz2.shの実行権限がある状態で./quiz2.shを実行する.
  • What's your number?というメッセージが表示されるので,素因数分解したい数を入力する.
    ただし1以下の数を入力した場合はエラーになる.
  • 入力した数の横に素因数分解の結果が表示される. また,quiz2.txtにも実行結果が出力されている.

実行結果へのリンク

5354618を入力した場合 http://epa.scitec.kobe-u.ac.jp/~takahasu/report01/results/quiz2.txt

参考資料

  • 後藤陽香さんのレポート
    第二問のスクリプトから, 改行せずに出力するecho -nの使い方を参考にした.

  • 2008年のレポート課題の黒田美紀さんのレポート
    第二問のスクリプトから, exprコマンドと数値の代入の書き方を参考にした.

  • Arnold Robbins・Nelson H.F.Beebe,2006:詳細シェルスクリプト,オライリー・ジャパン
    testコマンド,exprコマンドの使い方を参考にした.

共同作業した方

高木瑠美さん  違う方法のスクリプトで同じ数値を素因数分解して,結果が出るまでの時間の比較をさせていただきました.

工夫したこと,感想

 素因数の候補の数を1ずつ足していく方法では効率が悪く,時間がかかってしまうので,最初に偶数の候補をつぶして
奇数の候補を調べるようにした. しかし実際には時間はあまり短くならず,8桁以上では計算に長い時間がかかってしまう.
 また,1以下の数を入力すると無限ループしてしまうので,そのような数が入力された場合, エラーと表示させるようにした.

HTML作成の参考資料