2013年12月3日火曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の10章(アルゴリズム)、10.4(練習問題)、10-2-a, b, c.をDartで解いてみる。

その他参考書籍

10.4(練習問題)、10-2-a, b, c.

コード

sample.dart

import 'dart:html';
import 'dart:math' as math;

void main() {
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  math.Random random = new math.Random();
  run.onClick.listen((MouseEvent event){
    String result = '${window.navigator.userAgent}\n';
    List<num> sequence = [];
    for (var n in new List(10)){
      sequence.add(random.nextInt(100));
    }
    result += 'リスト: $sequence\n';
    result += '最小値とそのindex: ${minOrMaxIndex(sequence, true)}\n';
    result += '最大値とそのindex: ${minOrMaxIndex(sequence, false)}\n';
    pre.text = result;
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');
}

List<num> minOrMaxIndex(List<num> sequence, bool b){
  return b ? minIndex(sequence) : maxIndex(sequence);
}

List<num> minIndex(List<num> sequence){
  num m = sequence.first;
  int i = 0;
  List<num> result = [m, i];
  int l = sequence.length;
  for (i = 1; i < l; i += 1){
    if (sequence[i] < result.first){
      result = [sequence[i], i];
    }
  }
  return result;
}

List<num> maxIndex(List<num> sequence){
  num m = sequence.first;
  int i = 0;
  List<num> result = [m, i];
  int l = sequence.length;
  for (i = 1; i < l; i += 1){
    if (sequence[i] > result.first){
      result = [sequence[i], i];
    }
  }
  return result;
}














						

0 コメント:

コメントを投稿