M2 L3 Funkcje – ciąg dalszy

Tworzenie funkcji może wydawać się proste, ale stworzenie „dobrych” funkcji to umiejętność znacznie trudniejsza do opanowania. Funkcje używane w praktycznym programowaniu będą znacznie dłuższe, odnosiły się do innych funkcji, miały złożone listy parametrów itd.

Dobre funkcje muszą być jednocześnie proste – umożliwiając zrozumienie zasad działania „na pierwszy rzut oka” – jak też i na tyle złożone, by działać poprawnie dla różnych kombinacji parametrów. Prosty przykład:

Programistycznie, funkcja ta jest zupełnie poprawna. Podając długości dwóch boków prostokąta otrzymamy ich iloczyn, czyli pole. Co jednak w sytuacji, gdy jedna z długości będzie ujemna albo zerowa? Dwie liczby ujemne? Wynik zostanie wyliczony zgodnie z zasadami matematyki, nie będzie jednak miał wiele wspólnego z polem prostokąta.

Z pomocą przychodzą znane nam już instrukcje warunkowe. Definiując funkcje, możemy dodawać dowolne warunki logiczne i uzależniać od nich zwracaną wartość.

UWAGA: Wiele języków programowania wymaga określenia typu parametrów dostarczanych do funkcji, jak również tego co będzie zwracane przez return, np. liczba poleProstokata(liczba a, liczba b). W ramach kursu zakładamy jednak, że dostarczone parametry będą miały poprawny typ, a ewentualne błędy będą wynikać z ich wartości.

Zadania

1. Zmodyfikuj funkcję poleProstokąta, by wypisać komunikat o błędzie dla niewłaściwych wartości liczbowych i zwrócić dla nich 0.

2. Zmodyfikuj funkcje poleProstokata, by nie zwracała żadnej wartości w przypadku ujemnych parametrów. Następnie przypisz jej wynik do zmiennej i wykonać na niej dowolną operację matematyczną.