上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
どうしてプログラマに・・・プログラムが書けないのか?
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

上記のページに触発されて、ちょっくらFizzBuzz問題をJavaScriptで書いてみました。

コードはこんな感じ。
function FizzBuzz(){
  var n;
  for( n = 1 ; n <= 100; n++){
    if( n % 3 == 0 && n % 5 == 0 ){
      document.write("FizzBuzz
"); }else if( n % 3 == 0 ){ document.write("Fizz
"); }else if( n % 5 == 0 ){ document.write("Buzz
"); }else{ document.write(n + "
"); } } window.stop(); }
もっとスマートに処理できるかどうか1日考えてみましたが思いつかず…。
なんかいいアイディアがありましたらコメントいただければ助かります。

いい方法あるかなぁ?

Powered by ScribeFire.

JavaScriptで日付型変数を生成する際に気をつけるべき1つのポイントがあります。
それは”月が0基点で始まっていること”。

なぜだかわかりませんが、月の値が0から始まっているんです。
ざっくり、一覧にすると下記ような感じ。

0, 1月4, 5月 8,  9月
1, 2月5, 6月 9, 10月
2, 3月6, 7月10, 11月
3, 4月7, 8月11, 12月

故に、"2009-06-10T19:00:00+09:00"みたいな文字列から日付型変数を生成する際には
月の部分だけ、文字列を切り取っただけではなく数値を -1 して調整する必要があります。
以上、JavaScriptで日付型を生成するときに気をつけるべき1つのポイントでした。

Powered by ScribeFire.

ソートアルゴリズムの勉強をしているときにあったら便利だなぁと思ったので作ってみました。
テキストボックスに半角数字で長さを入力してから[生成]ボタンをクリックすると、任意の長さの
ランダム配列を生成・表示します。
実際にランダム配列を使いたいときはmyArrayをそのまま使えばOKかと。

動作内容としては、配列に値を追加してランダムな位置と入れ替えるというのを与えた長さの分だけ行って
います。ちなみにテキストボックスに半角数字以外を入れたときや、リターンキーを押したときなどの想定外
の操作に対する処理は行っていませんのであしからず。


//スクリプト部分

//HTML部分

数日かけて一生懸命コード化したバブルソートですが、Javascriptの配列について調べているときに
こんなのを見つけました。

配列に対してsortメソッドを使うと実は1行でバブルソートを表現できるそうな。
arr.sort( function ( _n1 , _n2 ){ return _n1 - _n2; } );
※arr:配列

sortメソッドの中に作る関数は、配列要素から2つずつ値を受け取って比較して結果によって正、ゼロ、負の
値を返します。正の場合、大きい要素が後ろに持っていかれるので上記のコードの場合は昇順でソートされます。

実際にどういう経過でソートされるのか出力して確認したいのですが、sortメソッドを使うとソートが終わった
状態で出力されるので、どうやって調べようか考え中です。

どうやったら、経過をうまく出力できるかな。

前回作ったバブルソートのJavascriptがちょっと無理矢理っぽい感じだったので改良しました。
出力される結果自体は同じなので、今回はコードのみの公開です。

前回に比べてかなりスマートでわかりやすいコードになったのではないでしょうか。
myArray[0]が1になったらループを抜けるといった無理矢理なループも無くなり、ソートし終わった後の
余計なサーチもしないように改良してあります。

flag変数について
パッと見だと、flag変数って何に使ってるの?となると思いますがソートが完了してもサーチしてしまうのを
防ぐために使っています。単純に最悪計算回数までループを回さないためです。

openclose

カテゴリ一覧

そま宗助

  • Author:そま宗助
  • タイ生まれのちょっと変な?日本人。
    農学博士の父とブラジル日系1世の母の間に生まれたため、普通の日本人とはちょっと違う視点で世界を見つめる男。

    最近、勉強会やカンファレンスにちょいちょい顔出ししてます。

    読書週間継続中?

    ストレングスファインダー
    1.収集心
    2.学習欲
    3.共感性
    4.指令性
    5.運命思考
プロフィール

※注意書き※
当ブログに掲載されているJavaScriptの動作確認はFirefoxでのみ行っております。他ブラウザでの動作に関しては保障できませんのでご注意ください。






1キロバイトの素材屋さん
フリーエリア
FC2カウンター

名前:
メール:
件名:
本文:

メールフォーム

Page Top

Powered by FC2 Blog |

FC2Ad

| Template Design by スタンダード・デザインラボ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。