Menu
CoddyTech

Werte summieren

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 49 von 78.

GDScript verfügt über keine integrierte Funktion, die ein Array aufsummiert. Du addierst die Werte mit einer Schleife und einer laufenden Summe, einer Variablen, die bei 0 beginnt und mit jedem Wert wächst:

var coins := [12, 30, 8, 50]
var total := 0
for amount in coins:
	total += amount
print(total) # 100

Um die Werte zu einem Anfangsbetrag hinzuzufügen, beginne mit diesem Betrag als Gesamtsumme. Ein Spieler, der vor dem Level 40 Münzen hatte, hat am Ende 140:

var total := 40
for amount in coins:
	total += amount
print(total) # 140

Dieselbe Schleife summiert die Werte eines Dictionarys, wenn sie über values() iteriert, und summiert ein Feld jedes Dictionarys in einem Array, wenn sie dieses Feld ausliest:

var inventory := {"potion": 3, "arrow": 20, "bomb": 2}
var items := 0
for count in inventory.values():
	items += count
print(items) # 25

var party := [{"hero": "Mia", "hp": 80}, {"hero": "Leo", "hp": 65}]
var party_hp := 0
for member in party:
	party_hp += member["hp"]
print(party_hp) # 145

Um eine Summe pro Gruppe zu erhalten, speichere die Summen in einem Dictionary. get() mit dem Standardwert 0 berücksichtigt eine Gruppe, für die es noch keine Summe gibt:

var loot := [["gold", 10], ["gems", 2], ["gold", 25]]
var totals := {}
for drop in loot:
	totals[drop[0]] = totals.get(drop[0], 0) + drop[1]
print(totals) # { "gold": 35, "gems": 2 }

Für den Durchschnitt teilst du die Gesamtsumme durch die Anzahl der Werte und wandelst zuerst in float um, damit die Nachkommastellen erhalten bleiben: float(total) / coins.size().

challenge icon

Aufgabe

Einfach

Ein Geschäft möchte den Kassenbestand am Ende des Tages wissen. Das Programm liest zwei Zeilen:

  1. Die Verkäufe des Tages, ganze Zahlen, durch Leerzeichen getrennt. Die Zeile ist leer, wenn es keine Verkäufe gab.
  2. Das Bargeld, das sich zu Beginn des Tages in der Kasse befand (eine ganze Zahl).

Addiere jeden Verkauf zum Anfangsbestand und gib das Ergebnis nach Total: aus. Für die Eingaben 100 200 150 300 und 50 lautet die Ausgabe:

Total: 800

Probier es selbst

extends Node

func _ready():
	var sales := OS.read_string_from_stdin().split(" ", false)
	var starting_cash := int(OS.read_string_from_stdin())
	# Addiere jeden Verkauf zum Startkapital und gib die Gesamtsumme aus
	pass
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler