Nilai Rata-Rata
Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 46 dari 78.
Tantangan
MudahHitung nilai rata-rata seorang siswa. Pertahankan semua yang kamu tulis pada langkah-langkah sebelumnya.
1. Fungsinya. Di bawah fungsi-fungsi lainnya, tulis calculate_average_grade(student_name: String) -> float:
- Jika
student_recordstidak memiliki nama tersebut, cetakStudent '<name>' not found.dan kembalikan-1.0. Tidak ada nilai rata-rata nyata yang negatif, jadi pemanggil dapat mengetahui bahwa siswa tersebut tidak ditemukan. - Jika siswa belum memiliki nilai, kembalikan
0.0. - Jika tidak, kembalikan jumlah seluruh nilai dibagi banyaknya nilai tersebut, sebagai
float.
2. Perintahnya. Tambahkan cabang ini untuk average <name> di atas ["show"]. Cabang ini mencetak nilai rata-rata dengan dua angka desimal, kecuali jika siswa tidak ditemukan:
["average", var student]:
var average := calculate_average_grade(student)
if average >= 0:
print("Average grade of '%s': %.2f" % [student, average])Untuk perintah-perintah berikut
add Alice 20 Math Physics
add Bob 22 Biology Chemistry
grade Alice 90
grade Alice 85
grade Bob 75
average Alice
average Bob
average Charlie
exitkeluarannya adalah:
Student 'Alice' added successfully.
Student 'Bob' added successfully.
Grade 90 added for student 'Alice'.
Grade 85 added for student 'Alice'.
Grade 75 added for student 'Bob'.
Average grade of 'Alice': 87.50
Average grade of 'Bob': 75.00
Student 'Charlie' not found.
Goodbye!Coba sendiri
extends Node
# Setiap siswa: name -> {"age": int, "grades": Array, "courses": set nama kursus}
var student_records := {}
func _ready():
while true:
var parts := Array(OS.read_string_from_stdin().split(" ", false))
match parts:
["add", var student, var age, ..]:
add_student(student, int(age), parts.slice(3))
["grade", var student, var grade]:
add_grade(student, int(grade))
["enrolled", var student, var course]:
print(is_enrolled(student, course))
["show"]:
print(student_records)
["exit"]:
print("Goodbye!")
break
func add_student(student_name: String, age: int, courses: Array) -> void:
if student_records.has(student_name):
print("Student '%s' already exists." % student_name)
return
var course_set := {}
for course in courses:
course_set[course] = true
student_records[student_name] = {"age": age, "grades": [], "courses": course_set}
print("Student '%s' added successfully." % student_name)
func add_grade(student_name: String, grade: int) -> void:
if not student_records.has(student_name):
print("Student '%s' not found." % student_name)
return
student_records[student_name]["grades"].append(grade)
print("Grade %d added for student '%s'." % [grade, student_name])
func is_enrolled(student_name: String, course: String) -> bool:
if not student_records.has(student_name):
print("Student '%s' not found." % student_name)
return false
return student_records[student_name]["courses"].has(course)
Semua pelajaran di Logika dan Alur
1Mendalami String
Method untuk StringMencari dalam StringMengganti dan Menghapus SpasiMemisahkan dan MenggabungkanUlasan: Memeriksa Nama Pengguna4Dictionary Bagian 2
Dictionary BersarangArray berisi DictionaryMenggabungkan DictionaryMenyalin DictionaryRangkuman: Penghitung Frekuensi10Fungsi Lanjutan
Mengembalikan Beberapa NilaiFungsi Lambda Bagian 1Fungsi Lambda Bagian 2Ringkasan: Mengurutkan dengan LambdaFungsi Rekursif Bagian 1Fungsi Rekursif Bagian 2Ringkasan: Menjumlahkan array Bersarang13Sistem Manajemen Inventaris
Ikhtisar ProyekTambahkan Barang2Pengambilan Keputusan Lanjutan
Pencocokan dengan VariabelGuard pada MatchPola arrayPola dictionaryPemeriksaan KeanggotaanUlasan: Parser Perintah5Aplikasi Buku Kontak
Tampilkan MenuTambah Kontak8Pengelola Data Siswa
Gambaran Umum ProyekTambah Siswa11Fungsi Tingkat Tinggi
Method mapMethod filterMethod reduceany dan allUlasan: Validator EmailUlasan: Pemroses Angka3Array Multidimensi
Dasar-Dasar Array 2DMengakses Elemen Array 2DNested Loop dengan Array 2DRangkuman: Array 2DArray Tidak BeraturanPola Umum Array 2DRangkuman: Papan Permainan6Set dengan Dictionary
Apa Itu Set?Dictionary sebagai SetMenambahkan dan MenghapusUnion dan IntersectionSelisih SetRangkuman: Menghapus DuplikatLatihan sendiri: Compiler GDScript online