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