Wyzwanie: suma liczb
Część sekcji Podstawy ścieżki Dart w Coddy. Lekcja 93 z 94.
Wyzwanie
ŁatwyW tym wyzwaniu utworzysz funkcję, która oblicza sumę liczb z listy na podstawie określonych warunków.
Masz listę liczb całkowitych i musisz uzupełnić funkcję sumWithCondition, która dodaje tylko liczby spełniające określone kryteria.
Funkcja powinna:
- Obliczać sumę wszystkich liczb z listy, które są większe od wartości
threshold - Natychmiast przestać dodawać liczby, gdy suma przekroczy wartość
maxSum(końcowa suma może być większa niżmaxSum) - Zwracać końcową sumę
Ważne: Funkcja przestaje dodawać liczby po dodaniu liczby, która powoduje przekroczenie przez sumę wartości maxSum. Oznacza to, że końcowy wynik może być większy niż maxSum.
Przykład: Jeśli liczby większe od threshold to [15, 20, 25, 30], a maxSum wynosi 50:
- Dodaj 15: suma = 15 (kontynuuj)
- Dodaj 20: suma = 35 (kontynuuj)
- Dodaj 25: suma = 60 (przekracza 50, więc tutaj zakończ)
- Wynik: 60 (nie 50)
Spróbuj swoich sił
void main() {
// Przypadki testowe
List<int> numbers = [5, 10, 15, 20, 25, 30];
// Zsumuj liczby większe niż 12, przy maksymalnej sumie 50
int result = sumWithCondition(numbers, 12, 50);
print('Sum of numbers > 12 (max 50): $result');
// Zsumuj liczby większe niż 8, przy maksymalnej sumie 100
result = sumWithCondition(numbers, 8, 100);
print('Sum of numbers > 8 (max 100): $result');
}
// TODO: Uzupełnij tę funkcję, aby sumowała liczby zgodnie z warunkami
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
int sum = 0;
// TODO: Przejdź przez listę numbers
// TODO: Dodawaj do sum tylko liczby większe niż threshold
// TODO: Przestań dodawać, jeśli sum przekroczy maxSum
return sum;
}Wszystkie lekcje w sekcji Podstawy
4Operatory – część 2
Operatory porównaniaLogiczne ANDLogiczne ORLogiczne NOTOperatory sprawdzania typuPodsumowanie – porównywanie7Praca z ciągami znaków
Łączenie ciągów znakówInterpolacja ciągów znakówCiągi wielolinioweWłaściwości ciągów znakówPodstawowe metody ciągów znaków10Kolekcje — podstawy map
Czym są mapy?Tworzenie mapyDostęp do wartości za pomocą kluczaPary klucz-wartośćPobieranie rozmiaru mapyPobieranie kluczyPobieranie wartościSprawdzanie, czy klucz istnieje13Bezpieczeństwo wartości null w szczegółach
Zrozumienie wartości nullTypy dopuszczające nullTypy niedopuszczające nullOperator wymuszający wartośćInicjalizacja opóźnionaPodsumowanie — bezpieczna obsługa wartości null2Zmienne i podstawowe typy danych
Czym są zmienne?Łańcuchy znakówLiczby całkowite (int)Liczby zmiennoprzecinkowe (double)Wartości logiczne (bool)Wnioskowanie o typie za pomocą „var”Zmienne finalZmienne stałeKonwencje nazewnictwaPodstawowe bezpieczeństwo nullPodsumowanie — deklarowanie zmiennych8Przepływ sterowania — pętle
Pętla „for”Pętla „while”Pętla „do-while”Używanie „break” w pętlachUżywanie „continue” w pętlachPodsumowanie — powtarzanie kodu3Operatory, część 1
Operatory arytmetyczneDzielenie całkowiteOperator moduloInkrementacja i dekrementacjaSkrócone operatory przypisaniaPodsumowanie — proste obliczenia6Sterowanie przepływem — podejmowanie decyzji
Instrukcja „if”Instrukcja „else”Instrukcja „else if”Podsumowanie — proste decyzjeZagnieżdżone instrukcje „if”Instrukcja „switch”9Kolekcje — podstawy list
Czym są listy?Tworzenie listyDostęp według indeksuPobieranie długości listyDodawanie elementówUsuwanie elementówSprawdzanie, czy lista jest pustaIterowanie po liście12Funkcje zaawansowane
Opcjonalne parametry pozycyjneParametry nazwaneWymagane parametry nazwaneDomyślne wartości parametrówPodsumowanie — parametry funkcji15Projekt: Prosty kalkulator
KonfiguracjaDeklarowanie liczbyPoćwicz samodzielnie: Kompilator Dart online