Procon 20111031
- 5. 前回の反省点と変更点
• 前回の反省点
– 言語の得意・不得意が大きく影響した。
– 抜き打ちで実施したのがさらに影響を大きくした。
• 今回の変更点
– 言語の得意・不得意による影響を最小限に抑える。
– 抜き打ちではなく、開催日時を事前に通知する。
• 具体的な改善策は以降のスライドにて。
- 13. 前回から変わらない点:評価時
• 説明する人
– 動作確認とプログラムの説明をする。
– 同じような問題を解いたことがあれば自主申告する。
– 制限時間は5分間。
• 評価する人
– 気に入ったプログラム上位3本を決める。
– 気に入った理由も記述する。
– 自分で自分に投票してもよい。
– 1位=3点、2位=2点、3位=1点。合計点が高い人が優勝。
- 14. 前回から変わらない点:コンテストの目的
• 自分のスキルを相対的に評価する。
– 課題が同じなので相対的な評価が可能。
– 実務では同じ課題に同時に取り組むことはない。
• 他人のロジックやコードから新しい発見を得る。
– 良いコード、悪いコード(?)に関する知識を深める。
• 良い意味でメンバー内の競争心をあおる。
– チームワークがいい = みんな同じスキル、ではない。
– 負けたくない、一番になりたいという気持ちも大事!
- 17. 問題1:Excel列名変換問題
• 仕様
– 入力されたアルファベットを数字に変換する
• 変換ルールはExcelの列名と同等。
• 例) A=1、B=2、Z=26、AA=27、XFD=16384
• 起動時引数
– [0] アルファベット (A~ZZZZ…[上限なし])
• 実行例
– ExcelColConv.pl A → 1
– ExcelColConv.pl AA → 27
- 18. 問題2:Excel列名変換問題(逆変換)
• 仕様
– 入力された数字をアルファベットに変換する。
• ただし、問題1で作ったプログラムを拡張すること。
• 起動時引数
– [0] 0=数字へ変換、1=アルファベットへ変換
– [1] アルファベットまたは数字 (上限なし)
• 実行例
– ExcelColConv.pl 0 AA → 27
– ExcelColConv.pl 1 27 → AA
- 21. 説明する人
• 動作確認
– こちらが提示する引数を与えて実行してください。
• プログラムの説明
– どんなロジックで書いたのか説明してください。
– 何かアピールポイントがあればそれも説明してください。
– 同じ問題を解いたことがあれば自主申告してください。
• 制限時間は5分です。
– オーバーしたら打ち切ります。
- 23. 評価ポイント
• バグが無いか?
• 読みやすいか?
– インデント、変数名、関数名、コメント、etc
• 保守しやすいか?
– コードの重複が無い、変更に強い、etc
• 実行効率が良いか?
– 実行速度が速い、メモリの使用量が少ない、etc
• その他、あなたの感性で。