まとめ - リストオーガナイザー
CoddyのDartジャーニー「論理とフロー」セクションの一部 — レッスン 9/65。
チャレンジ
簡単数値のリストに対して一連の操作を順番に実行し、データ処理パイプラインを管理するプログラムを作成してください。プログラムは以下の手順を行う必要があります:
- データセット名を表す文字列の入力を読み込む
- 元のデータ値を表す複数の整数の入力を読み込む(入力は
-999を受け取った時点で終了します) - リストの先頭(位置 0)に値
100を挿入する removeWhere()を使用して、リストからすべての負の数値を削除するsort()を使用して、残りの数値を昇順に並べ替えるisEmptyを使用して、最終的なリストが空かどうかを確認する- データ処理の結果を、以下に示す正確な形式で出力する
例えば、データセット名が "Sales Data" で、値が 45, -12, 78, -5, 23 の場合、プログラムは以下のように出力する必要があります:
Dataset: Sales Data
Original data: [45, -12, 78, -5, 23]
Step 1: Inserted 100 at beginning
After insertion: [100, 45, -12, 78, -5, 23]
Step 2: Removed negative numbers
After removal: [100, 45, 78, 23]
Step 3: Sorted in ascending order
After sorting: [23, 45, 78, 100]
Final result: List is not empty
Processing complete: 4 values remainingデータセット名が "Temperature Readings" で、値が -10, -5, -20 の場合、プログラムは以下のように出力する必要があります:
Dataset: Temperature Readings
Original data: [-10, -5, -20]
Step 1: Inserted 100 at beginning
After insertion: [100, -10, -5, -20]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remainingデータセット名が "Error Values" で、唯一の値が -50 の場合、プログラムは以下のように出力する必要があります:
Dataset: Error Values
Original data: [-50]
Step 1: Inserted 100 at beginning
After insertion: [100, -50]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remainingプログラムは、指定された正確な順序ですべての操作を実行する必要があります:まず位置 0 に値 100 を insert() し、次に removeWhere() を使用して負の数値を削除し、次にリストを sort() し、最後にリストが isEmpty かどうかを確認します。最終的なリストに要素がない場合は "List is empty" を、要素がある場合は "List is not empty" を表示してください。
自分で試してみよう
import 'dart:io';
void main() {
// データセット名を読み込む
String? datasetName = stdin.readLineSync();
// -999が入力されるまで数値を読み込む
List<int> originalData = [];
while (true) {
int? number = int.parse(stdin.readLineSync()!);
if (number == -999) {
break;
}
originalData.add(number);
}
// 初期情報を出力する
print('Dataset: $datasetName');
print('Original data: $originalData');
// TODO: 以下にコードを記述してください
// 1. 最初に100を挿入する(位置0)
// 2. removeWhere()を使用してすべての負の数値を削除する
// 3. sort()を使用してリストを昇順にソートする
// 4. isEmptyを使用してリストが空かどうかを確認する
// 5. 要求された形式で結果を出力する
}論理とフローのすべてのレッスン
1リスト操作の応用
リストのプロパティ: first と lastリストの状態: isEmpty と isNotEmptyリストの反転リストへの追加: insertリストの削除: removeWhereリスト内の検索: indexOfリストのソートリストのシャッフルまとめ - リストオーガナイザー