Intelligente Kontaktverwaltung
Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 76 von 78.
Aufgabe
MittelBereinige eine Kontaktliste. Das Programm liest eine ganze Zahl n und anschließend n Zeilen. Jede Zeile enthält einen Kontakt: einen Namen, eine E-Mail-Adresse und eine Telefonnummer, durch Kommas getrennt (jede Zeile enthält genau zwei Kommas).
Gehe die Kontakte der Reihe nach durch:
- Schreibe die E-Mail-Adresse in Kleinbuchstaben und behalte von der Telefonnummer nur die Ziffern:
(555) 123-4567wird zu5551234567 - Überspringe den Kontakt, wenn die E-Mail-Adresse ungültig ist: Eine gültige E-Mail-Adresse enthält
@und.und kein Leerzeichen - Überspringe den Kontakt, wenn die Telefonnummer nicht genau
10Ziffern hat - Überspringe den Kontakt, wenn ein zuvor übernommener Kontakt dieselbe E-Mail-Adresse oder dieselbe Telefonnummer (nach der Bereinigung) hat
Gib jeden übernommenen Kontakt in einer eigenen Zeile aus: den Namen, | , die E-Mail-Adresse, | und die Ziffern der Telefonnummer. Gib zuletzt Contacts kept: , die Anzahl der übernommenen Kontakte, of und n aus.
Für diese Eingaben:
3
John Doe,JOHN@email.com,123-456-7890
Jane Doe,jane@email.com,123.456.7890
Bob Smith,invalid.email,12345lautet die Ausgabe:
John Doe | john@email.com | 1234567890
Contacts kept: 1 of 3Jane wird übersprungen, weil ihre Telefonnummer dieselben Ziffern wie die von John hat, und Bob, weil seiner E-Mail-Adresse ein @ fehlt und seine Telefonnummer zu kurz ist.
Probier es selbst
extends Node
func _ready():
var n := int(OS.read_string_from_stdin())
# Lies n Kontakte ein, bereinige sie und gib die behaltenen aus
pass
Alle Lektionen in Logik & Ablaufsteuerung
1Strings im Detail
String-MethodenIn Strings suchenErsetzen und TrimmenAufteilen und ZusammenfügenRückblick – Benutzernamen prüfen4Wörterbücher Teil 2
Verschachtelte WörterbücherArrays aus WörterbüchernWörterbücher zusammenführenWörterbücher kopierenWiederholung – Häufigkeitszähler10Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Wiederholung – Sortieren mit LambdaRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Wiederholung – Verschachteltes Array summieren13Inventarverwaltungssystem
ProjektübersichtArtikel hinzufügen2Fortgeschrittene Entscheidungsfindung
Match mit VariablenMatch-GuardsArray-MusterDictionary-MusterMitgliedschaftsprüfungenRückblick – Befehlsparser5Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen8Schülerdatenverwaltung
ProjektübersichtSchüler hinzufügen3Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysAuf Elemente in 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysGezackte ArraysGängige Muster für 2D-ArraysWiederholung – Spielbrett6Mengen mit Dictionaries
Was ist eine Menge?Dictionary als MengeHinzufügen und EntfernenVereinigung und SchnittmengeMengendifferenzWiederholung – Duplikate entfernen9Fortgeschrittene Datenaggregation
Werte summierenMinimum und Maximum findenBenutzerdefiniertes SortierenRückblick – Wörterbuch-Sortierer12Einfache Fehlerbehandlung
Was ist Fehlerbehandlung?Eingaben validierenGuard ClausesFehlercodes zurückgebenRückblick – Sichere DivisionÜbe selbstständig: Online-GDScript-Compiler