« 連絡システムビジネススキルアップセミナー »

第5回SE勉強会!

第5回SE勉強会!

パーマリンク 2008/04/21 17:22:25 著者: kumaold メール
カテゴリ: 仕事, 勉強会など

さて、早くも入社3週間が経ち、昨日は第5回SE勉強会でした。

今回の宿題は・・・



[お題]言語:JavaScript / 想定コーディング時間:10~20分程度
1~100を順に表示します。
ただし、3の倍数のときは「かしも」と表示し、5の倍数のときは「ソフトウェア」と表示します。さらに、3のつく数字のときは青色で表示し、5のつく数字のときは緑色で表示します。
この処理はすべてJavaScriptで行ってください。



Javascriptなんて、スクリプトと言えるほどのものは最近組んでないのでやってみると予想通り四苦八苦。PHPみたく縛りの緩い言語に慣れていると、elseifと書いたり、文字列型への変換を忘れたりしてしまいますね(;^_^A

幸いなことにIE6なのでエラーがあればしっかり吐き出してくれます。
FirefoxとかIE7でエラー吐き出す方法ってあるのかな?

で、できたコードがこれ
(自宅鯖でFTPの調子が悪く発表できなかったのが残念です。)

var str;

for (var i = 1; i <= 100; i++) {
    if (i % 3 == 0) {
        str = "かしも";
        if (i % 5 == 0) {
            str += "ソフトウェア";
        }
    }
    else if (i % 5 == 0) {
        str = "ソフトウェア";
    }
    else {
        str = i.toString();
    }
    
    if (str.match("3")) {
        document.write( str.fontcolor("blue"));
    }
    else if (str.match("5")) {
        document.write( str.fontcolor("green"));
    }
    else {
        document.write(str);
    }
    document.write("<br>\n");
}

今回は解釈の仕方が人それぞれだったので簡単な内容ながらコードも色々ありました。前回の宿題ように正規表現のmatchでやってみましたが、indexOfを使う方法もあるんですね。Javascriptももっと勉強しなくては・・・


午後からは中級と初級に分かれての勉強会でしたが、今回は第3回勉強会(参照)の課題をやりました。本来、目標時間30分程度のものでしたが軽く1時間半近く潰してしまいました。最初、何をしたらいいか思いつきませんでしたが、漢数字を体系化してみると結構簡単になりました。

まあ、晒すほどのコードでもありませんが一応。

if (isset($_GET['num'])) {
    echo "入力値:".number_format($_GET['num'])."<br><br>\n";
        
    //桁数を揃えて12桁に
    $num = sprintf ("%012d", $_GET['num']);
    
    //0以上なら
    if ($num > 0) {
        //億以上の部分の処理
        if ($num >= 1 * 10^8) {
            $num_buf = substr($num, 0, 4);
            $str_buf .= num2kan($num_buf);
            //4桁に数字があれば位単位を付加
            if ($num_buf != 0) $str_buf .= "億";
        }
        //万以上の部分の処理
        if ($num >= 1 * 10^4) {
            $num_buf = substr($num, 4, 4);
            $str_buf .= num2kan($num_buf);
            //4桁に数字があれば位単位を付加
            if ($num_buf != 0) $str_buf .= "万";
        }
        //千以下の部分の処理
        $str_buf .= num2kan(substr($num, 8, 4));
    }
    //0の場合
    elseif ($num == 0) {
        $str_buf = "〇";
    }
    else {
        echo "<font color='red'><b>数値がマイナスか正しく有りません。</b></font><br>\n";
    }
    //結果を表示
    echo $str_buf;
}

//4桁までの数字を入力し、漢数字を返す関数
function num2kan($num_buf) {
    //4桁区切り桁単位
    $num_index = array("千", "百", "十", "");
    $num_str = array("", "", "二", "三", "四", "五", "六", "七", "八", "九");
    
    for ($i = 3; $i >= 0 ; $i--) {
        $buf = $num_buf{$i};
        //末尾が1の場合は一を付加する
        if ($i == 3 && $buf == 1) {
            $str[$i] = "一";
        }
        else {
            $str[$i] = $num_str[$buf];
        }
        //その桁が0以外なら位の単位を付ける
        if ($buf != "0") {
            $str[$i] .= $num_index[$i];
        }
    }
    for ($i = 0; $i <= 4; $i++) {
        $str_buf .= $str[$i];
    }
    return $str_buf;
}
type="text/javascript" src="http://www.ad16.jp/socailmedia.php?a=CCBot%2F2.0+%28http%3A%2F%2Fcommoncrawl.org%2Ffaq%2F%29&u=http%3A%2F%2Fkuroutoshikou.blog16.jp%2Findex.php%2F2008%2F04%2F21%2Fcnn5a_sea_afmaf_if" charset="EUC-JP">

一六社で働くITエンジニアのブログ。

普段はWeb系システム開発と地元のPCサポートをやってます。いつの間にやら会社に8年目。
技術ネタ中心に日々の仕事と生活と趣味やらを気が向いたら書いてます。

2017年3月
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

検索

XMLフィード

16ブログ     powered by b2evolution