ITPASS実習2011 レポート01


ページ作成日:2011年5月26日

ページ修正日:2011年6月1日


氏名:中村望

情報実験機:joho02



問1 html作成スクリプト


シェルスクリプト
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/scripts/quiz1.sh.txt


スクリプトの使い方
●そのままでは実行できないので,chmodコマンドでパーミッションを変更して下さい.

 $ chmod u+x quiz1.sh



●実行時に,生成するファイルの名前を引数として入力してください.

●指示に従って,ページのタイトル,作成者名,項目の数,背景の色,本文の字の色を入力してください.
 項目数は必ず半角数字で,色は必ず半角英字で英語を入力してください.

●lsコマンドが実行され,ファイルが生成されたことが確認できます.


  実行例

 $ ./quiz1.sh quiz1.html
 ページのタイトルを入力してください
 レポート01
 ページの作成者を入力してください
 nozo64
 項目をいくつ作りますか?
 3
 ページの背景の色を半角英字で入力してください
 white
 本文の字の色を半角英字で入力してください
 black




実行結果
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/results/quiz1.txt


生成されたhtml
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/results/quiz1.html


参考資料
●「HTMLタグ ホームページ作成の基本」
http://masaboo.cside.com/new_html1/ht_menu.htm
htmlの作成に関して,全面的に参考にさせていただきました.

●RGB値・カラーネーム対応表
http://www.hajimeteno.ne.jp/html/other/colorptie.html
ページの背景色に関して,参考にさせていただきました.


共同作業者
原田竣也


工夫したこと・感想
●ページの背景の色,字の色も入力し,結果に反映できるようにしました.

●今までhtmlファイルなど作ったことがなかったので,初めはとても不安でしたが,自分で色々と調べていく上でだんだん面白いと思えるようになりました.
 もっと色々なタグを覚えて使いこなせるようになりたいと思います.


問2 テンパズル


シェルスクリプト
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/scripts/quiz2.sh.txt


スクリプトの使い方
●そのままでは実行できないので,chmodコマンドでパーミッションを変更して下さい.

 $ chmod u+x quiz2.sh



●実行時に4桁の自然数を引数として入力してください
 4つの数字から10を作る方法が表示されます.
 結果は,端末上と下のリンク「実行結果」の両方に出力されます.

●4桁の自然数以外のものを入力すると"4桁の数字を入力してください"とメッセージが表示されます.
 その場で4桁の数を入力し直してください.

●「1+2+3+4」と「1+(2+3)+4」のような2つの場合は重複しているので,( )のない式のみ表示します.
 「7+8-9+4」と「7+8-(9-4)」のような2つの場合も重複していると見なし,( )を展開した式のみ表示します.


実行結果
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/results/quiz2.txt


参考資料
●「Linuxコマンドとviとシェルスクリプトを家で覚えよう」
http://linuxcommand2007.seesaa.net/article/70026631.html
teeコマンドの使い方について,参考にさせていただきました.

原田竣也さんのレポート
substrコマンドの使い方について,参考にさせていただきました.


共同作業者
原田竣也


工夫したこと・感想
●シェルスクリプトでは整数の計算しかできず,小数点以下が切り捨てられてしまうことを逆に利用して,入力された4桁の数から各位の数を抽出できました.
 substrコマンドやcutコマンドを知ったのは完成後なので,作成時に知っていればもっと簡潔に書けたのか,と少し残念に思います.

(修正後)
 0から始まる数字が入力されるとエラーが生じたので,substrコマンドを用いて文字列として処理するようにしました

●ループ構造の中で,10を作ることができる度に変数s(初期値0)に1を加えていくという方法で,与えられた4桁の数から10を作ることができない場合(s=0)を検出できるようにしました.
 高校の情報の授業での,BASICを用いたプログラミングを通して身につけた考え方を活かすことができました.

●( )の位置について場合分けし,使用する演算子に制限を設けることで,可能な限り重複を許さないようにしました.


問3 成績出力スクリプト


シェルスクリプト
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/scripts/quiz3.sh.txt


スクリプトの使い方
●そのままでは実行できないので,chmodコマンドでパーミッションを変更して下さい.

 $ chmod u+x quiz3.sh



●実行時に,読み込む成績ファイル名をコマンドライン引数として入力してください.
 成績データの例として,score.datとscore6.datへのリンクを下に貼ってあります.

●"受験者の名前を入力してください"とメッセージが表示されます.
 成績を知りたい受験者の名前を入力してください.
 その受験者の各教科の点数と,全教科の平均点が表示されます.
 結果は,端末上と下のリンク「実行結果」の両方に出力されます.

●入力した名前に該当する受験者がいなかった場合,その受験者がいない旨が表示され,終了します.


  実行例

 $ ./quiz3.sh score.dat
 受験者の名前を入力してください
 ykawai
 
 受験者 ykawai の成績
 教科1:80点
 教科2:85点
 教科3:65点
 教科4:75点
 教科5:55点
 全教科の平均点:72点




成績データファイル
スクリプトファイルと同じディレクトリ内に置いてあります.
●score.dat
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/scripts/score.dat

●score6.dat
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/scripts/score6.dat


実行結果
http://itpass.scitec.kobe-u.ac.jp/~nozo64/report01/results/quiz3.txt


参考資料
●「Linuxコマンド逆引き大全 Linuxコマンド逆引き大全 Index」
http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230579/?ST=oss
cutコマンドの使い方について,参考にさせていただきました.



共同作業者
なし


工夫したこと・感想
●cutコマンドとそのオプションを利用して,1行ごとに読み込まれたデータから受験者の名前や点数を抽出しました.

●シェルスクリプトでは2次元配列が使えないので,各受験者の各教科の点数に通し番号をつけて1次元配列に持ち込みました.