開発環境
- 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(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-16.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
12.7(練習問題)、12-16.
コード
sample.dart
import 'dart:html';
import 'dart:math' as math;
void main() {
InputElement t0 = querySelector('#t0');
InputElement input = querySelector('#f0');
InputElement run = querySelector('#run_dart');
InputElement clear = querySelector('#clear');
Element pre = querySelector('#pre0');
var random = new math.Random();
run.onClick.listen((MouseEvent event){
pre.text = '${window.navigator.userAgent}\n';
var nums = new List.generate(10, (int index) => random.nextInt(100));
pre.text += '$nums\n標準偏差: ${standartDeviation(nums)}\n';
FileReader reader = new FileReader();
try{
File file = input.files.first;
reader.readAsText(file);
reader.onLoad.listen((Event event){
pre.text += '${findLast(reader.result, t0.value)}\n';
});
}catch(e){
pre.text += '$e\n';
}
});
clear.onClick.listen((MouseEvent event) => pre.text = '');
}
findLast(String contents, String str){
int line_no = 0;
List line_no_and_line = [null, null];
for(var line in contents.split('\n')){
line_no += 1;
if(line.contains(str)){
line_no_and_line = [line_no, line];
}
}
return line_no_and_line;
}
num standartDeviation(List<num> nums){
num total = 0;
for(var n in nums){
total += n;
}
num average = total / nums.length;
total += 0;
for(var n in nums){
total += math.pow(n - average, 2);
}
num variance = total / nums.length;
return math.sqrt(variance);
}
0 コメント:
コメントを投稿