開発環境
- 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(著)長尾 高弘(翻訳))の6章(条件分岐)、6.5(練習問題)、1から4をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
6.5(練習問題)、1から4。
コード
sample.dart
import 'dart:html'; void main() { querySelector("#run_dart").onClick.listen((MouseEvent event){ var result = '1.\n', booleans = []; for(var a in [[true && !false, 'true'], [true || true && false, 'true'], [!true || !false, 'true'], [52 < 52.3, 'true'], [1 + 52 < 52.3, 'false'], [4 != 4.0, 'false']]){ result += '${a[0]} ${a[1]}\n'; } result += '2. 2つ目の規則の反例 true && false\n'; var a = true && false; result += '${a}\n'; result += '3.\n'; for(var x in [true, false]){ for(var y in [true, false]){ booleans.add([x, y]); } } result += 'a. 両方の変数がtrueならtrue\n'; result += 'x && y\n'; result += booleans.map( (a) => 'x = ${a[0]}, y = ${a[1]}: ${a[0] && a[1]}').join('\n'); result += '\n'; result += 'b. xがfalseならtrue, そうでなければfalse\n'; result += '!x\n'; result += booleans.map( (e) => 'x = ${e[0]}, y = ${e[0]} ${!e[0]}').join('\n'); result += '\n'; result += 'c. 少なくとも1つの変数がtrue\n'; result += booleans.map( (e) => 'x = ${e[0]}, y = ${e[1]} ${e[0] || e[1]}').join('\n'); result += '\n'; result += '4. 排他的論理和\n'; result += booleans.map( (e) => 'full = ${e[0]}, empty = ${e[1]} ${xor(e[0], e[1])}').join('\n'); querySelector('#pre0').text = window.navigator.userAgent + '\n' + result; }); querySelector('#clear').onClick.listen((MouseEvent event){ querySelector('#pre0').text = ''; }); } bool xor(bool x, bool y){ return (!x && y) || (x && !y); }
0 コメント:
コメントを投稿