ITPASS 実習レポート 1

名前 岩佐海詩 

担当情報実験機 joho04

問 1

スクリプトの URL

quiz1.sh.txt

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

まず、上記のスクリプトを任意のディレクトリにコピーして、ファイル名をquiz1.shに変更した後、実行権限を与えます。

次に、ITPASSサーバー上にある、カラーコード一覧のデータが入っているeurocolor.csv,jpcolor.csv,metrocolor.csvの3つのファイルをスクリプトと同じディレクトリにコピーします。

1つ目の引数としてRの値、2つ目の引数としてGの値、3つ目の引数としてBの値を入力してスクリプトを実行すると、ファイル内に色の名前がある場合はカラーコードと色の名前が、ない場合は色に名前がない旨のメッセージとカラーコードが出力されます。

入力された3つの引数のうち1つでも0〜255の範囲になかった場合は、エラーメッセージを出力して終了します。

実行結果へのリンク

問1の実行例

参考資料

2進数、8進数、10進数、16進数相互変換ツール
10進数⇔16進数の変換が正しいかどうの確認する際の参考にしました。

UNIXの部屋
各コマンド全般の使い方・使用例を確認する際に参考としました。

sedコマンド | コマンドの使い方(Linux) | hydroculのメモ
sedコマンドの詳しい用法を調べる際に参考としました。

中村誠人君のレポート
ファイルから文字列を検索し、その文字列を含む行を表示させるコマンドgrepの使い方を一部参考にしました。

共同作業した人の名前

なし

工夫したこと, 感想

当初書いていたプログラムでは、16進数のカラーコードが010101のとき、10→a,11→b…,16→fの文字列置換を行うと、カラーコードが0aa1となってしまい正しく表示されない問題が発生したので、そのような問題を解決するため、6桁のカラーコード、色ごと(2桁ごと)ではなく順番に1桁ずつ個別に計算・文字列置換がされるように工夫しました。

問 2

スクリプトの URL

quiz2.sh.txt

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

まず、上記のスクリプトを任意のディレクトリにコピーして、ファイル名をquiz2.shに変更した後、実行権限を与えます。

2016年以降の年を引数としてスクリプトを実行すると、指定された年までの13日の金曜日の合計の日数が出力されます。

2016年以前の年を引数としてスクリプトを実行すると、エラーメッセージを出力して終了します。

実行結果へのリンク

問2の実行例

参考資料

UNIXの部屋
各コマンド全般の使い方・使用例を確認する際に参考としました。

曜日計算
ツェラーの公式を利用して、ある年月日が何曜日かを求める方法を参考としました。

Wikipedia ツェラーの公式
ツェラーの公式の複数の異なる表現について調べました。

共同作業した人の名前

なし

工夫したこと, 感想

13日金曜日の日数を、2016年3〜14月、2017年3〜14月…と順番に数え上げていく方法が思いつかなかったので、まず各年の4月13日の金曜日の日数を数え、次に5月、6月…と数えていくような方法を取りました。その結果、プログラムが長くなり計算量も増えたので、引数として入力する値が大きいと処理にかなり時間がかかることになってしまった点は改善の余地があると思います。