バリケンのJavaScript日記 RSSフィード

2006-10-26

[] Core JavaScript 1.5 Guide 日本語版を読む(7)  Core JavaScript 1.5 Guide 日本語版を読む(7) - バリケンのJavaScript日記 を含むブックマーク はてなブックマーク -  Core JavaScript 1.5 Guide 日本語版を読む(7) - バリケンのJavaScript日記  Core JavaScript 1.5 Guide 日本語版を読む(7) - バリケンのJavaScript日記 のブックマークコメント

きょうもCore JavaScript 1.5 Guide 日本語版「第3章 コア言語の機能」を引き続き読んでいくよ。

今日も気になったところをメモするよ。

浮動小数点リテラル

浮動小数点リテラルは、3.1415、-3.1E12、.1e12、2E-12とかだよ。「e」と「E」に違いはなくて、どちらも指数部(10の何乗か)をあらわすよ。

整数リテラル

10進数、16進数、8進数が表せるけど、8進数リテラルは将来的にはサポートされなくなるみたいだから使わないほうがいいみたい。16進数は最初に「0x」をつければいいみたいだよ。

[] 「たのしいRuby 第2版」の練習問題をJavaScriptで解く(1)  「たのしいRuby 第2版」の練習問題をJavaScriptで解く(1) - バリケンのJavaScript日記 を含むブックマーク はてなブックマーク -  「たのしいRuby 第2版」の練習問題をJavaScriptで解く(1) - バリケンのJavaScript日記  「たのしいRuby 第2版」の練習問題をJavaScriptで解く(1) - バリケンのJavaScript日記 のブックマークコメント

JavaScriptRubyに似ているから、「たのしいRuby」の練習問題をRubyの回答と比較しながら解いてみて、理解を深めてみることにするよ。

まずはこちら

(1)温度を表すときに、日本では通常「摂氏セルシウス)温度」という単位系が使われていますが、アメリカなどでは「華氏(ファーレンハイト)温度」という単位系が使われています。摂氏温度を華氏温度に変換するメソッドcels2fahrを定義してください。なお、摂氏温度と華氏温度の変換の公式は次のようになります。

華氏摂氏×9÷5+32

たのしいRuby 第2版

じゃあ、ぼくの答えだよ。

function cels2fahr(num) {
  return num * 9 / 5 + 32;
}

次はこちら

(2) (1)とは逆に華氏温度を摂氏温度に変換するメソッドfahr2celsを定義してください。また、摂氏1度から摂氏100度まで1度きざみに華氏温度との対応を出力させてください。

たのしいRuby 第2版

じゃあ、ぼくの答えだよ。

function fahr2cels(num) {
  return (num - 32) * 5 / 9;
}

for (var i = 1; i <= 100; i++) {
  print(i + ' ' + cels2fahr(i) + '\n');
}

その次はこちら

(3) randメソッドを「rand(n)」と呼ぶと0からn-1の値を得ることができます。このrandメソッドを利用して、1から6までの数字をランダムに返すメソッドdiceを定義してください。

たのしいRuby 第2版

じゃあ、ぼくの答えだよ。

function dice() {
  return Math.ceil(Math.random() * 6);
}

さらにその次はこちら

(4) 整数numが素数であるかどうかを調べるメソッドprime?(num)を定義してください。なお、素数とは「それ自身と1以外で割ることのできない数」です。1桁の整数のうち、素数となるのは「2,3,5,7」です。

たのしいRuby 第2版

じゃあ、ぼくの答えだよ。

function is_prime(num) {
  if (num < 2)
    return false;
  else if (num == 2)
    return true;
  else if (num % 2 == 0)
    return false;
  else {
    try{
      for (var i = 3; i <= Math.ceil(Math.sqrt(num)); i += 2) {
        if (num % i == 0) throw "exit";
      }
    } catch(e) {
      return false;
    }
    return true;
  }
}

うーん、いまのところ気になるのは、Rubyの「範囲オブジェクト」に相当するものがないことかなあ。

追記:ObjectRangeが「範囲オブジェクトなんだね!」

トラックバック - http://javascript.g.hatena.ne.jp/muscovyduck/20061026