Menu
CoddyTech

Está matriculado

Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 45 de 78.

challenge icon

Desafío

Fácil

Comprueba si un estudiante está inscrito en un curso. Conserva todo lo que escribiste en los pasos anteriores.

1. La función. Debajo de las otras funciones, escribe is_enrolled(student_name: String, course: String) -> bool:

  • Si student_records no tiene el nombre, imprime Student '<name>' not found. y devuelve false.
  • De lo contrario, devuelve true cuando el curso está en el conjunto "courses" del estudiante, y false cuando no lo está.

2. El comando. Añade una rama para enrolled <name> <course>, como enrolled Alice Math, antes de ["show"]. Imprime el valor que devuelve is_enrolled(). Para los comandos

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

el resultado es:

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

Si no se encuentra al estudiante, primero aparece el mensaje y después false.

Pruébalo tú mismo

extends Node

# Cada estudiante: nombre -> {"age": int, "grades": Array, "courses": un conjunto de nombres de cursos}
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])

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de GDScript online