開発環境
- 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 コメント:
コメントを投稿