2013年12月13日金曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-7.をDartで解いてみる。

その他参考書籍

12.7(練習問題)、12-7.

コード

sample.dart

import 'dart:html';

void main() {
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  run.onClick.listen((MouseEvent event){
    pre.text = '${window.navigator.userAgent}\n';
    int passes = 0;
    int failures = 0;
    int exception = 0;
    test_cases.forEach((var s){
      try{
        if(average(s.last) == s.first){
          passes += 1;
        } else {
          failures += 1;
        }
      }catch (e){
        exception += 1;
      }
    });
    pre.text = '合格: $passes\n不合格: $failures\n例外: $exception';
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');
}

num sum(List<num> nums){
  return nums.fold(0, (var prev, num n) => prev += n);
}

num average(List<num> nums){
  if (nums.length == 0){
    throw "空っぽ";
  }
  return sum(nums) / nums.length;
}

List<List<num>> test_cases = [[null, []],
                              [0.0, [0.0]],
                              [0.0, [-1.0, 1.0]],
                              [1.0, [0.0, 2.0]],
                              [2.0, [0.0, 1.0, 2.0, 3.0, 4.0]]];














						

0 コメント:

コメントを投稿