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, gdy a jest dodatnie,
  • wartość 0, gdy a jest zerem,
  • wartość -1, gdy a 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))