Menu
CoddyTech

データ変換

CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 78/78。

challenge icon

チャレンジ

難しい

学生の記録をレポートにまとめます。プログラムは整数 n を読み込み、続いて n 件の記録を読み込みます。各記録には、; で区切られた3つのフィールドがあります。学生ID、成績(整数をカンマで区切ったもの)、科目(カンマで区切ったもの)です。

S123;88,92,85;Math,Science,History

すべての成績が 70 を超えている場合、その学生は合格です(成績がちょうど 70 の場合は合格しません)。配列メソッド all() を使って確認してください。

Qualified students: と合格者数を出力します。次に、入力順に各合格者について、ID、: 、成績の平均を小数点以下2桁で出力します。その後、Subjects: を出力し、合格者が1人以上履修している各科目について、科目名、: 、その科目を履修している合格者数を、科目が最初に登場した順に出力します。

次の入力の場合:

3
S123;88,92,85;Math,Science,History
S124;65,95,80;Math,Science,English
S125;91,89,92;Math,Physics,History

出力は次のとおりです。

Qualified students: 2
S123: 88.33
S125: 90.67
Subjects:
Math: 2
Science: 1
History: 2
Physics: 1

S124 は成績 65 があるため合格せず、そのため English はカウントされません。合格者がいない場合、出力は Subjects: の行で終わります。

自分で試してみよう

extends Node

func _ready():
	var n := int(OS.read_string_from_stdin())
	# n 件のレコードを読み込み、条件を満たす生徒と科目を出力する
	pass

ロジックとフローのすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ