1.6. Zastosowanie instrukcji warunkowej if
Zadania
Zadanie 1. Dana jest string liczby = "23579"
. Zapisz wyrażenie, które zapisze wynik dodawania drugiego i piątego znaku tego stringa.
Zadanie 2. Stwórz skrypt, którymając dane dwie różne liczby a, b
, wybierze mniejszą z nich.
Zadanie 3. Napisz instrukcję warunkową, która dla wartości zmiennej liczbowej a
, wypisze na ekran:
- wartość
1
, gdya
jest dodatnie, - wartość
0
, gdya
jest zerem, - wartość
-1
, gdya
jest ujemna.
Zadanie 4. Tabliczka czekolady jest prostokątem o wymiarach m x n, gdzie m i n to kostki czekolady wzdłuż jej krawędzi. Stwórz program, który będzie stwierdzał, czy jesteśmy w stanie tak przełamać czekoladę, że będzie ona miała dokładnie k kostek.
Twój program powinien sczytywać zmienne m, n
oraz k
i zwracać albo "TAK"
albo "NIE"
.
Zadanie 5. Napisz program, który na podstawie kwoty podanej w zmiennej podstawa
, obliczy wartość należnego podatku. Wykorzystaj do tego poniższą tabelę.
Rozwiązania
Zadanie 1. Tak – zadanie nie wymaga użycia instrukcji warunkowej. To tylko rozgrzewka.
1 2 | x = "23579" print(int(x[1]) + int(x[4])) |
Zadanie 2. Wynik działania skryptu będzie się zmieniał w zależności od prawdziwości wyrażenia a < b
. Jeśli w wyniku testu wykonanego przez Pythona okaże się ono prawdziwe – to liczba a
będzie tą mniejszą i to ona powinna się wydrukować na ekran. Jeśli okaże się fałszem, to mniejszą liczbą będzie b
.
1 2 3 4 5 6 | a = 10 b = 20 if a < b: print(a) else: print(b) |
Zadanie 3. Wynik działania skryptu będzie różnił się w zależności od tego, czy liczba będzie dodatnia, ujemna, czy równa zeru. Taką też instrukcję warunkową należy zapisać.
1 2 3 4 5 6 7 8 9 | a = 123 if a > 0: print(1) elif a == 0: print(0) elif a < 0: print(-1) else: print("To chyba nie jest liczba") |
Zadanie 4. Żeby dobrze napisać ten skrypt, trzeba zauważyć, że tabliczkę czekolady da się tak przełamać, żeby pojawiło się na jednej z części k
-kawałków, gdy liczba tabliczek (równa m*n
) będzie dzieliła się bez reszty przez liczbę k
lub przez liczbę m*n - k
.
Jeśli np. wymiary tabliczki wynosiłyby 4×5, czyli mielibyśmy 20 kostek czekolady, to jesteśmy w stanie uzyskać jednym przełamaniem np. 4 kostki i jednocześnie 16 kostek. Wynika to z faktu, że 20 “ładnie” dzieli się przez 4. Nie będziemy natomiast w stanie uzyskać 11 kostek, gdyż 20 jest niepodzielne przez 11 ani przez 9.
1 2 3 4 5 6 7 8 | m = 4 n = 5 k = 11 if m*n % k == 0 or m*n % (m*n - k) == 0: print("TAK") else: print("NIE") |
Zadanie 5. Program, może wydawać się na trudny, ale tak naprawdę jest bardzo prosty do zapisu, jeśli zacznie się od wyznaczenie kwoty zmniejszającej podatek. Nie ma tu dużo filozofii – wystarczy przeredagować warunki z tabelki na język Pythona. W poniższym programie jest to widoczne za pierwszym komentarzem, a sama kwota będzie przechowywana w zmiennej kzp
.
Jeśli mamy już wyznaczoną kwotę zmniejszającą podatek, można zabierać się za obliczanie podatku. Tu znowu wystarczy przepisać warunki z tabeli i używać zmiennej kzp
do skracania zapisu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | podstawa = 90000 #Obliczamy Kwotę zmniejszającą podatek if podstawa < 8000: kzp = 1440 elif podstawa < 13000: kzp = 1440 - (883.98 * (podstawa - 8000)/5000) elif podstawa < 85528: kzp = 556.02 elif podstawa < 127000: kzp = 556.02 - (556.02 * (podstawa - 85528)/41472) else: kzp = 0 #Obliczanie podatku if podstawa < 85528: kwota = podstawa * 0.18 - kzp else: nadwyzka = podstawa - 85528 kwota = 15395.04 + nadwyzka * 0.32 - kzp print(round(kwota,2)) |