開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の10章(アルゴリズム)、10.4(練習問題)、10-2-a, b, c.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
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 コメント:
コメントを投稿