Menu
CoddyTech

Est inscrit

Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 45 sur 78.

challenge icon

Défi

Facile

Vérifie si un étudiant suit un cours. Garde tout ce que tu as écrit aux étapes précédentes.

1. La fonction. Sous les autres fonctions, écris is_enrolled(student_name: String, course: String) -> bool :

  • Si student_records ne contient pas le nom, affiche Student '<name>' not found. et renvoie false.
  • Sinon, renvoie true lorsque le cours se trouve dans l'ensemble "courses" de l'étudiant, et false dans le cas contraire.

2. La commande. Ajoute une branche pour enrolled <name> <course>, par exemple enrolled Alice Math, avant ["show"]. Elle affiche la valeur renvoyée par is_enrolled(). Pour les commandes

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
enrolled Alice Math
enrolled Alice Biology
enrolled Bob Biology
enrolled Charlie Math
exit

la sortie est :

Student 'Alice' added successfully.
Student 'Bob' added successfully.
true
false
true
Student 'Charlie' not found.
false
Goodbye!

Pour un étudiant introuvable, le message s'affiche d'abord, puis false.

Essayez vous-même

extends Node

# Chaque étudiant : nom -> {"age": int, "grades": Array, "courses": un ensemble de noms de cours}
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))
			["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])

Toutes les leçons de Logique et flux d’exécution

Entraînez-vous par vous-même : Compilateur GDScript en ligne