Menu
CoddyTech

Adicionar Nota

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 44 de 78.

challenge icon

Desafio

Fácil

Registre as notas dos alunos. Mantenha tudo o que você escreveu nas etapas anteriores.

1. A função. Abaixo das outras funções, escreva add_grade(student_name: String, grade: int) -> void:

  • Se student_records não tiver o nome, imprima Student '<name>' not found. e retorne.
  • Caso contrário, acrescente a nota ao array "grades" do aluno e imprima Grade <grade> added for student '<name>'.

As notas são armazenadas em um array, não em um conjunto, porque um aluno pode tirar a mesma nota duas vezes e ambas contam.

2. O comando. Adicione um ramo para grade <name> <grade>, como grade Alice 90, acima de ["show"]. Ele chama add_grade() com a nota convertida para um int. Para os comandos

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
grade Alice 90
grade Alice 85
grade Bob 75
grade Charlie 80
show
exit

a saída é:

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'.
Student 'Charlie' not found.
{ "Alice": { "age": 20, "grades": [90, 85], "courses": { "Math": true, "Physics": true } }, "Bob": { "age": 22, "grades": [75], "courses": { "Biology": true, "Chemistry": true } } }
Goodbye!

Experimente você mesmo

extends Node

# Cada aluno: nome -> {"age": int, "grades": Array, "courses": um conjunto de nomes 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))
			["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)

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online