Cena końcowa (argumenty domyślne i nazwane)
Treść zadania
Napisz funkcję cena_koncowa(netto, vat=23, rabat=0), która zwraca cenę brutto towaru po rabacie:
- najpierw od ceny
nettoodejmujemy rabat —rabatprocent ceny netto, - potem do tak obniżonej ceny doliczamy podatek VAT —
vatprocent.
Czyli funkcja zwraca $\text{netto} \cdot \left(1 - \frac{\text{rabat}}{100}\right) \cdot \left(1 + \frac{\text{vat}}{100}\right)$ — bez zaokrąglania.
Parametry vat i rabat mają wartości domyślne (23 i 0), więc przy wywołaniu można je pominąć.
Program wczytuje cenę netto oraz rabat i wywołuje funkcję czterema sposobami:
cena_koncowa(netto)— domyślny VAT 23% i brak rabatu,cena_koncowa(netto, 8)— VAT 8% (drugi argument trafia do parametruvat), brak rabatu,cena_koncowa(netto, rabat=rabat)— domyślny VAT 23% i wczytany rabat,cena_koncowa(netto, rabat=rabat, vat=5)— VAT 5% i wczytany rabat.
Dane wejściowe
- 1. linia: cena netto — liczba rzeczywista
- 2. linia: rabat w procentach — liczba całkowita
Dane wyjściowe
Cztery linie — wyniki wywołań 1–4 w tej kolejności, każdy z dokładnością do dwóch miejsc po przecinku.
Ograniczenia
- $\text{netto} \ge 0$
- $0 \le \text{rabat} \le 100$
Uwagi
- Argument domyślny to wartość parametru podana w nagłówku funkcji (
vat=23). Jeśli przy wywołaniu nie podasz tego argumentu, parametr dostanie wartość domyślną. - Argument nazwany podajesz w postaci
nazwa=wartość, np.cena_koncowa(100, rabat=10). Dzięki temu możesz pominąćvat, a ustawićrabat. Kolejność argumentów nazwanych jest dowolna:cena_koncowa(100, rabat=10, vat=5)to to samo cocena_koncowa(100, vat=5, rabat=10). - Argumenty podane bez nazwy (pozycyjne) trafiają do parametrów po kolei: w
cena_koncowa(100, 8)liczba8tovat.
Przykład
100 10
123.00 108.00 110.70 94.50
Np. trzecie wywołanie: $100 \cdot 0.9 = 90$, a $90 \cdot 1.23 = 110.7$.
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 6
Zadania w tym rozdziale uczą pisania funkcji: definiowania ich instrukcją def, przekazywania argumentów i zwracania wyniku instrukcją return.
Konwencje wspólne:
- Każde zadanie (i każdy podpunkt a, b, c…) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Treść mówi, jaką funkcję napisać (nazwa, parametry, zwracana wartość). Program wczytuje dane, wywołuje funkcję i wypisuje zwrócony przez nią wynik.
- „Funkcja zwraca” oznacza użycie instrukcji
return. Funkcja nie wczytuje danych i nie wypisuje wyniku sama — robi to reszta programu (chyba że treść zadania mówi inaczej). - Sekcja „Kod startowy” zawiera gotowy szkielet: nagłówek funkcji oraz linie, które wczytują dane i wypisują wynik. Wystarczy uzupełnić ciało funkcji.
- Liczby na wejściu podane są w osobnych liniach — wczytuj je dokładnie w podanej kolejności.
- Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono0 50
0.00 0.00 0.00 0.00
Test 2
Nie uruchomiono50 0
61.50 54.00 61.50 52.50
Test 3
Nie uruchomiono19.99 15
24.59 21.59 20.90 17.84
Test 4
Nie uruchomiono250 100
307.50 270.00 0.00 0.00
Test 5
Nie uruchomiono39.9 25
49.08 43.09 36.81 31.42