MODUŁ 07
Funkcje pomocnicze i dzielenie problemu
Funkcja pomocnicza powinna wykonywać jedną dobrze określoną czynność. Dzięki temu łatwiej ją przetestować i wykorzystać w kilku miejscach. Przed napisaniem większego rozwiązania ustal:
W skrócie
Funkcja pomocnicza powinna wykonywać jedną dobrze określoną czynność. Dzięki temu łatwiej ją przetestować i wykorzystać w kilku miejscach. Przed napisaniem większego rozwiązania ustal:
- jakie dane ma przetwarzać każda funkcja;
- co dokładnie ma zwracać;
- które funkcje wywołują inne;
- jak przetestować je osobno.
Jeśli zadanie jawnie wymaga użycia funkcji pomocniczej, samo uzyskanie poprawnego wyniku nie wystarcza do zaliczenia kryterium strukturalnego. Platforma powinna wtedy sprawdzać strukturę programu.
Przykład
Predykat parzystości i suma, która go używa.
bool czyParzysta(int x) {
return x % 2 == 0;
}
long long sumaParzystych(const std::vector<int>& v) {
long long s = 0;
for (int x : v) if (czyParzysta(x)) s += x;
return s;
}
- Predykat odpowiada na jedno pytanie tak/nie.
- Suma nie zna się na parzystości — pyta pomocnika.
Struktura to też odpowiedźSprawdzarka patrzy w drzewo programu, nie w tekst — wywołanie w komentarzu nie przejdzie.
Ćwiczenia
- 1Suma liczb parzystych z pomocniczym predykatemczyParzysta zwraca informację, czy liczba jest parzysta.Otwórz w Pracowni →
- 2Czy ciąg jest niemalejący?Zwróć true, jeśli każdy element jest większy lub równy poprzedniemu.Otwórz w Pracowni →
- 3Zwracanie minimum i maksimumZwróć parę {minimum, maksimum}.Otwórz w Pracowni →