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