Cena końcowa (argumenty domyślne i nazwane)

Zadanie 15 z 17 · rozdział 6Trudność: 1 z 3funkcjeargumenty domyślneargumenty nazwanefloat

Treść zadania

Napisz funkcję cena_koncowa(netto, vat=23, rabat=0), która zwraca cenę brutto towaru po rabacie:

  • najpierw od ceny netto odejmujemy rabat — rabat procent ceny netto,
  • potem do tak obniżonej ceny doliczamy podatek VAT — vat procent.

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:

  1. cena_koncowa(netto) — domyślny VAT 23% i brak rabatu,
  2. cena_koncowa(netto, 8) — VAT 8% (drugi argument trafia do parametru vat), brak rabatu,
  3. cena_koncowa(netto, rabat=rabat) — domyślny VAT 23% i wczytany rabat,
  4. 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 co cena_koncowa(100, vat=5, rabat=10).
  • Argumenty podane bez nazwy (pozycyjne) trafiają do parametrów po kolei: w cena_koncowa(100, 8) liczba 8 to vat.

Przykład

Wejście
100
10
Wyjście
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.

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 uruchomiono
Wejście
0
50
Oczekiwane wyjście
0.00
0.00
0.00
0.00

Test 2

Nie uruchomiono
Wejście
50
0
Oczekiwane wyjście
61.50
54.00
61.50
52.50

Test 3

Nie uruchomiono
Wejście
19.99
15
Oczekiwane wyjście
24.59
21.59
20.90
17.84

Test 4

Nie uruchomiono
Wejście
250
100
Oczekiwane wyjście
307.50
270.00
0.00
0.00

Test 5

Nie uruchomiono
Wejście
39.9
25
Oczekiwane wyjście
49.08
43.09
36.81
31.42
Uruchom z własnymi danymi