Inteligentny menedżer kontaktów
Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 76 z 78.
Wyzwanie
ŚredniWyczyść listę kontaktów. Program odczytuje liczbę całkowitą n, a następnie n wierszy. Każdy wiersz to kontakt: imię i nazwisko, adres e-mail oraz numer telefonu, oddzielone przecinkami (każdy wiersz zawiera dokładnie dwa przecinki).
Przejdź po kolei przez kontakty:
- Zapisz adres e-mail małymi literami i zachowaj tylko cyfry numeru telefonu:
(555) 123-4567staje się5551234567 - Pomiń kontakt, jeśli adres e-mail jest nieprawidłowy: prawidłowy adres e-mail zawiera
@i., a także nie zawiera spacji - Pomiń kontakt, jeśli numer telefonu nie składa się dokładnie z
10cyfr - Pomiń kontakt, jeśli wcześniej zachowany kontakt ma ten sam adres e-mail lub ten sam numer telefonu (po oczyszczeniu)
Wypisz każdy zachowany kontakt w osobnym wierszu: imię i nazwisko, | , adres e-mail, | i cyfry numeru telefonu. Na koniec wypisz Contacts kept: , liczbę zachowanych kontaktów, of i n.
Dla tych danych wejściowych:
3
John Doe,JOHN@email.com,123-456-7890
Jane Doe,jane@email.com,123.456.7890
Bob Smith,invalid.email,12345wynik to:
John Doe | john@email.com | 1234567890
Contacts kept: 1 of 3Jane zostaje pominięta, ponieważ jej numer telefonu ma te same cyfry co numer Johna, a Bob — ponieważ jego adres e-mail nie zawiera @, a jego numer telefonu jest za krótki.
Spróbuj swoich sił
extends Node
func _ready():
var n := int(OS.read_string_from_stdin())
# Wczytaj n kontaktów, oczyść je i wypisz te, które zachowasz
pass
Wszystkie lekcje w sekcji Logika i przepływ programu
1Łańcuchy znaków — zagadnienia zaawansowane
Metody łańcuchów znakówWyszukiwanie w łańcuchach znakówZastępowanie i przycinanieDzielenie i łączeniePodsumowanie — sprawdzanie nazwy użytkownika4Słowniki, część 2
Zagnieżdżone słownikiTablice słownikówŁączenie słownikówKopiowanie słownikówPodsumowanie – licznik częstotliwości7Typy wyliczeniowe
Czym jest typ wyliczeniowy?Definiowanie typu wyliczeniowegoWartości typu wyliczeniowegoTypy wyliczeniowe w matchPowtórka – sygnalizacja świetlna10Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Powtórka — sortowanie za pomocą lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Powtórka — sumowanie zagnieżdżonej tablicy13System zarządzania zapasami
Omówienie projektuDodawanie produktu2Zaawansowane podejmowanie decyzji
Dopasowanie ze zmiennymiStrażnicy dopasowaniaWzorce tablicWzorce słownikówSprawdzanie przynależnościPowtórka — parser poleceń5Aplikacja książki kontaktów
Wyświetlanie menuDodawanie kontaktu8Menedżer danych studentów
Przegląd projektuDodaj studenta3Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DTablice postrzępioneTypowe wzorce tablic 2DPodsumowanie — plansza do gry6Zbiory ze słownikami
Czym jest zbiór?Słownik jako zbiórDodawanie i usuwanieSuma i część wspólnaRóżnica zbiorówPowtórka – usuwanie duplikatów9Zaawansowana agregacja danych
Sumowanie wartościZnajdowanie minimum i maksimumSortowanie niestandardowePodsumowanie – Sortownik słownikówPoćwicz samodzielnie: Kompilator GDScript online