W poniższym samouczku poznamy operację podziału piętra przy użyciu języka programowania Python.
Ale zanim zaczniemy, zrozummy krótko, czym jest podział pięter.
Zrozumienie podziału pięter
Dzielenie pięter jest normalną operacją dzielenia, z tą różnicą, że zwraca największą możliwą liczbę całkowitą. Ta liczba całkowita może być mniejsza niż wynik normalnego dzielenia lub mu równa.
Funkcja podłogi jest oznaczona symbolem ⌊ ⌋ w kategoriach matematycznych.
Przyjrzyjmy się teraz działaniu operacji podziału pięter. Na przykład,
⌊36/5⌋
Krok 1: Najpierw wykonaj dzielenie. Podzielimy się 36 przez 5 .
36 ÷ 5 = 7,2
Krok 2: Teraz wykonamy funkcję podłogi na wartości, którą otrzymamy po podzieleniu, tj. 7.2 .
⌊7,2⌋=7
W rezultacie otrzymujemy 7 która jest wartością minimalną 7.2 . Dlatego dzielenie piętra oznacza dzielenie i zaokrąglanie w dół do najbliższej liczby całkowitej.
Różne języki programowania oferują określoną wbudowaną funkcję lub operator do obliczania podziału piętra. Oto kilka przykładów:
- Możemy skorzystać z podłoga() metoda w języku programowania C++.
- Możemy skorzystać z podłoga() metoda w języku programowania Java.
- Możemy skorzystać z // operator w języku programowania Python.
Jednakże będziemy omawiać jedynie użycie operacji dzielenia pięter w Pythonie za pomocą metody operator podwójnego ukośnika odwrotnego (//). .
Zrozumienie podziału pięter przy użyciu języka Python
W języku programowania Python dzielenie piętra służy do dzielenia dwóch liczb i zaokrąglania wyniku w dół do najbliższej liczby całkowitej.
Zanim zagłębimy się w koncepcję podziału pięter, przypomnijmy sobie krótko o znaczeniu podziału i działaniu matematyka.podłoga() funkcja w Pythonie.
Wykonywanie zwykłego podziału w Pythonie
Możemy podzielić dwie liczby za pomocą ukośnika odwrotnego ( / ) operator dzielenia w Pythonie. Rozważmy następujący przykład ilustrujący to samo:
Przykład 1:
# declaring variables a = 13 b = 4 # performing regular division c = a / b # printing the result print(a, '/', b, '=', c)
Wyjście:
13 / 4 = 3.25
Wyjaśnienie:
W powyższym fragmencie kodu zdefiniowaliśmy dwie zmienne: a = 13 I b = 4 . Następnie wykonaliśmy operację dzielenia przy użyciu ukośnika odwrotnego ( / ) operator dzielenia i zapisał wynikową wartość w nowej zmiennej, C . Na koniec wydrukowaliśmy wartość C .
Jak widzimy, dzielenie w Pythonie działa tak samo, jak dzielenie w matematyce.
Zrozumienie funkcji math.floor() w Pythonie
W Pythonie istnieje wbudowany moduł matematyczny, który składa się z różnych przydatnych narzędzi matematycznych do obliczeń.
Jedną z takich wbudowanych funkcji matematyka moduł to matematyka.podłoga() funkcjonować. Ta funkcja przyjmuje dane liczbowe i zwraca wartość minimalną, zaokrąglając ją w dół do najbliższej liczby całkowitej.
Rozważmy następujący przykład ilustrujący to samo:
Przykład 2:
# importing the floor() function from the math module from math import floor # declaring the variables a = 5.34 b = -5.34 # using the floor() function c = floor(a) d = floor(b) # printing the values print('Floor value of', a, '=', c) print('Floor value of', b, '=', d)
Wyjście:
Floor value of 5.34 = 5 Floor value of -5.34 = 6
Wyjaśnienie:
W powyższym fragmencie kodu zaimportowaliśmy plik podłoga() funkcja z matematyka moduł. Następnie zadeklarowaliśmy dwie zmienne jako a = 5,34 I b = -5,34 . Następnie skorzystaliśmy z podłoga() funkcja obliczająca wartości minimalne obu zmiennych i zapisując je w nowych zmiennych, C I D . W końcu wydrukowaliśmy wyniki dla użytkowników.
Teraz, gdy zrozumieliśmy koncepcje dzielenia i układania liczb na podłodze w Pythonie. Przejdźmy do szczegółów związanych z podziałem pięter w Pythonie.
Wykonywanie podziału pięter w Pythonie
Dzielenie pięter to operacja w Pythonie, która pozwala nam podzielić dwie liczby i zaokrąglić wynikową wartość w dół do najbliższej liczby całkowitej. Podział pięter następuje poprzez operator podwójnego ukośnika odwrotnego (//). . Składnię tego samego pokazano poniżej:
Składnia:
res = var_1 // var_2
Gdzie:
Możemy myśleć o podziale pięter jako o regularnym podziale połączonym z matematyka.podłoga() wywołanie funkcji.
Uwaga: Dzielenie piętra może zaokrąglić dowolną liczbę w dół do najbliższej liczby całkowitej. Na przykład 3,99 nadal będzie zaokrąglane w dół do 3.
Rozważmy teraz przykład ilustrujący działanie podziału pięter.
Przykład 3:
# declaring the variables a = 13 b = 5 # using the // operator c = a // b # comparing the floor value with regular division d = a / b # printing the values print('Floor Division:', a, '//', b, '=', c) print('Regular Division:', a, '/', b, '=', d)
Wyjście:
Floor Division: 13 // 5 = 2 Regular Division: 13 / 5 = 2.6
Wyjaśnienie:
W powyższym fragmencie kodu zadeklarowaliśmy dwie zmienne jako a = 13 I b = 5 . Następnie skorzystaliśmy z // operator obliczający wartość podziału piętra i zapisując wartość piętra w nowej zmiennej, C . Następnie przeprowadziliśmy regularny podział za pomocą / operator i zapisał wartość w innej zmiennej, D . W końcu wydrukowaliśmy oba wyniki i porównaliśmy je.
Rozważmy teraz inny przykład użycia matematyka.podłoga() funkcjonować.
Przykład 4:
# importing the floor() function from the math module from math import floor # declaring the variables a = 17 b = 5 # using the floor() function c = floor(a / b) # comparing the floor() function with // operator d = a // b # printing the values print('Floor Division using floor() function:', c) print('Floor Division using // operator:', d)
Wyjście:
Floor Division using floor() function: 3 Floor Division using // operator: 3
Wyjaśnienie:
Zaimportowaliśmy podłoga() funkcja z matematyka moduł w powyższym fragmencie kodu. Następnie zadeklarowaliśmy dwie zmienne jako a = 17 I b = 5 . Następnie skorzystaliśmy z podłoga() funkcja, podzielona A przez B i zapisałem go w zmiennej c. Następnie obliczyliśmy wartość podłogi za pomocą // operator i zapisał wartość w nowej zmiennej, D . W końcu wydrukowaliśmy obie wartości i porównaliśmy je.
Wykonywanie podziału pięter z liczbami ujemnymi
Dzielenia pięter możemy dokonać także za pomocą liczb ujemnych.
W przypadku liczb ujemnych wartość wynikową nadal zaokrągla się w dół do najbliższej liczby całkowitej. Niektórzy mogą się zdezorientować, gdy zaokrąglenie liczby ujemnej oznacza odejście od zera. Na przykład, -23 jest podłogowy do -3 .
Rozważmy przykład pokazujący podział piętra za pomocą liczb ujemnych.
Przykład 5:
# declaring the variables a = -10 b = 4 # calculating floor value using // operator c = a // b # printing the value print('Floor Division:', a, '//', b, '=', c)
Wyjście:
Floor Division: -10 // 4 = -3
Wyjaśnienie:
W powyższym fragmencie kodu zadeklarowaliśmy dwie zmienne jako a = -10 I b = 4 . Następnie skorzystaliśmy z // operator do obliczenia wartości podłogi i zapisania jej w nowej zmiennej, C . W końcu wydrukowaliśmy wartość dla użytkownika.
Przy regularnym podziale -10/4 wróci -2,5 ; jednakże w przypadku dzielenia piętra liczba ta jest zaokrąglana w dół do najbliższej ujemnej liczby całkowitej, tj. do -3 .
Wykonywanie podziału podłogi za pomocą pływaków
W Pythonie możemy również wykonać dzielenie pięter za pomocą elementów zmiennoprzecinkowych. Kiedy liczba zmiennoprzecinkowa dzieli podłogę, wynikiem jest liczba zmiennoprzecinkowa reprezentująca najbliższą liczbę całkowitą.
Rozważmy następujący przykład pokazujący podział podłogi za pomocą pływaków.
Przykład 6:
# initializing the lists a = [17.5, 10, 13.4] b = [3.3, 2.5, 3] # using for-loop to iterate through the list for i in range(0, 3): # calculating the floor division value c = a[i] // b[i] # printing the result print(a[i], '//', b[i], '=', c)
Wyjście:
17.5 // 3.3 = 5.0 10 // 2.5 = 4.0 13.4 // 3 = 4.0
Wyjaśnienie:
W powyższym fragmencie kodu zainicjowaliśmy dwie listy. Następnie skorzystaliśmy z Do -loop do iteracji po elementach tych list, obliczania wartości dla każdej operacji podziału pięter i drukowania wyników dla użytkowników.
W rezultacie możemy zaobserwować, że operacja dzielenia podłogi jest wykonywana za pomocą zmiennoprzecinkowych, a liczba zmiennoprzecinkowa z liczbą całkowitą zwraca wartość zaokrągloną w dół do najbliższej liczby całkowitej reprezentowanej jako liczby zmiennoprzecinkowe.
Podział pięter i Modulo w Pythonie
W matematyce modulo jest pojęciem kojarzonym głównie z podziałem pięter. Można też powiedzieć, że modulo oznacza resztę z dzielenia dwóch liczb. Innymi słowy, możemy policzyć, ile z niego zostało.
Możemy obliczyć modulo w Pythonie za pomocą procentu ( % ) operatora.
Rozważmy przykład ilustrujący związek pomiędzy podziałem piętra a modulo w Pythonie.
Przykład 7.1:
Mając 13 cukierków i 4 zjadaczy, możemy obliczyć liczbę cukierków, które otrzyma każdy zjadacz, korzystając z podziału podłogi.
Kod:
# declaring variables numberOfCandies = 13 numberOfEaters = 4 # using floor division to calculate the number of candies each eater gets candiesPerEater = numberOfCandies // numberOfEaters # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('The number of candies each eater gets:', candiesPerEater)
Wyjście:
Number of Candies: 13 Number of Eaters: 4 The number of candies each eater gets: 3
Wyjaśnienie:
W powyższym fragmencie kodu zadeklarowaliśmy zmienne oznaczające liczbę cukierków i zjadaczy. Następnie skorzystaliśmy z // operatorowi, który dokona podziału piętra w celu obliczenia liczby cukierków, które otrzyma każdy zjadacz. Następnie wydrukowaliśmy te wartości dla użytkownika.
Obliczmy teraz całkowitą liczbę cukierków rozdzielonych pomiędzy grupę. To nie jest bardzo ważne.
Przykład 7.2:
Liczbę cukierków na osobę pomnożymy przez liczbę zjadaczy.
Kod:
# calculating the total number of candies being shared among the group totalCandiesShared = candiesPerEater * numberOfEaters # printing values print('The total number of candies being shared among the group:', totalCandiesShared)
Wyjście:
The total number of candies being shared among the group: 12
Wyjaśnienie:
W powyższym fragmencie kodu obliczyliśmy całkowitą liczbę cukierków rozdzielonych pomiędzy grupę, mnożąc liczbę cukierków na osobę przez liczbę zjadaczy i wydrukowaliśmy wynikową wartość dla użytkowników.
Łączna liczba pełnych udostępnionych cukierków wynosi 12 . Jednak całkowita liczba cukierków jest 13 . To stwierdzenie sugeruje, że jeden cukierek zostanie i nie zostanie zjedzony.
Powyższy przykład opisuje jeden ze sposobów obliczenia ilości resztek. Jeśli jednak interesuje nas tylko liczba resztek, możemy ją bezpośrednio obliczyć za pomocą modulo.
c++ konwertuje na ciąg
Przykład 7.3:
Biorąc pod uwagę 13 cukierków i 4 zjadaczy, jaka jest liczba pozostałych cukierków?
Kod:
# declaring variables numberOfCandies = 13 numberOfEaters = 4 # using modulo to calculate the leftover candies leftoverCandies = numberOfCandies % numberOfEaters # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('Total number of Leftover Candies:', leftoverCandies)
Wyjście:
Menedżer zadań dla Linuksa
Number of Candies: 13 Number of Eaters: 4 Total number of Leftover Candies: 1
Wyjaśnienie:
W powyższym fragmencie kodu zadeklarowaliśmy zmienne przechowujące wartość cukierki i zjadacze. Następnie obliczyliśmy liczbę pozostałych cukierków za pomocą % operator oznaczający operację modulo. W końcu wydrukowaliśmy kilka zestawień i wynikowych wartości dla użytkowników. W rezultacie widzimy, że pozostały cukierki są 1 .
a = b * (a // b) + (a % b)
W Pythonie dzielenie podłogi i modulo są powiązane następującym równaniem:
Gdzie:
Na przykład sprawdźmy, czy powyższe równanie jest prawdziwe w przypadku 13 cukierków i 4 zjadaczy.
13 = 4 * (13 // 4) + (13% 4)
13 = 4 * 3 + 1
13 = 13
W ten sposób zrozumieliśmy pojęcia podziału pięter i modulo w Pythonie. Teraz przyjrzymy się wbudowanej funkcji, która oblicza oba.
Zrozumienie funkcji divmod() w Pythonie
Python oferuje wbudowaną funkcję o nazwie divmod() co pozwala nam obliczyć zarówno podział piętra, jak i modulo między dwiema wartościami liczbowymi.
Składnia dla divmod() funkcja jest pokazana poniżej:
Składnia:
res = divmod(var_1, var_2)
Gdzie:
Rozważmy teraz następujący przykład ilustrujący divmod() funkcjonować.
Przykład 8:
Biorąc pod uwagę 13 cukierków i 4 zjadaczy, ile pełnych cukierków otrzyma każdy z zjadaczy i ile cukierków zostało?
Kod:
# declaring variables numberOfCandies = 13 numberOfEaters = 4 # using the divmod() function nCandies, nLeftovers = divmod(numberOfCandies, numberOfEaters) # printing values print('Number of Candies:', numberOfCandies) print('Number of Eaters:', numberOfEaters) print('Number of Candies per eater:', nCandies) print('Total number of Leftover Candies:', nLeftovers)
Wyjście:
Number of Candies: 13 Number of Eaters: 4 Number of Candies per eater: 3 Total number of Leftover Candies: 1
Wyjaśnienie:
W powyższym fragmencie kodu zadeklarowaliśmy kilka zmiennych. Skorzystaliśmy z divmod() funkcja obliczająca wartość podziału piętra i modulo dla podanych zmiennych. Następnie wydrukowaliśmy te wartości dla użytkowników.
Zrozumienie pierwszeństwa podziału pięter
W Pythonie operator dzielenia pięter // ma podobny poziom pierwszeństwa jak mnożenie ( * ), dział ( / ) i modulo ( % ).
Z tego stwierdzenia wynika, że jeśli pomnożymy, a następnie podzielimy piętro, najpierw zostanie osiągnięte mnożenie, a następnie dzielenie piętra i odwrotnie.
Jeśli jednak na przykład odejmiemy dwie liczby, a następnie wykonamy dzielenie pięter, operacja dzielenia pięter utoruje drogę.
Rozważmy przykład pokazujący to samo.
Przykład 9.1:
# declaring some variables a = 3 b = 5 c = 6 d = 7 # performing an operation e = a * b // c - d # printing the result print(a, '*', b, '//', c, '-', d, '=', e)
Wyjście:
3 * 5 // 6 - 7 = -5
Wyjaśnienie:
W powyższym fragmencie kodu zadeklarowaliśmy niektóre zmienne jako a = 3, b = 5, c = 6 , I d = 7 . Następnie wykonaliśmy operację i zapisaliśmy wynikową wartość w nowej zmiennej, To jest . W końcu wydrukowaliśmy tę wartość dla użytkowników.
Aby zrozumieć, jak obliczany jest ten wynik, możemy wstawić nawiasy wokół terminów we właściwej kolejności pierwszeństwa.
Przykład pokazany poniżej przedstawia to samo:
Przykład 9.2:
# declaring some variables a = 3 b = 5 c = 6 d = 7 # performing an operation e = ((a * b) // c) - d # printing the result print('((', a, '*', b, ') //', c, ') -', d, '=', e)
Wyjście:
(( 3 * 5 ) // 6 ) - 7 = -5
Wyjaśnienie:
W powyższym fragmencie kodu zadeklarowaliśmy niektóre zmienne jako a = 3, b = 5, c = 6 , I d = 7 . Następnie wykonaliśmy tę samą operację, ale z nawiasami i zapisaliśmy wynikową wartość w nowej zmiennej, To jest . W końcu wydrukowaliśmy tę wartość dla użytkowników.
Jak możemy zauważyć, otrzymujemy podobny wynik jak w poprzednim przykładzie, co oznacza, że kolejność obliczeń jest następująca:
Mnożenie → Dzielenie pięter → Odejmowanie
Oto etapowe obliczenie powyższego:
3 * 5 // 6 - 7
((3 * 5) // 6) - 7
(15 // 6) - 7
2 - 7
-5
Dobrze zrozumieliśmy podział pięter i jego zastosowanie w języku programowania Python.
Na koniec przyjrzymy się zaawansowanemu przypadkowi użycia podziału pięter. W poniższym przypadku zaawansowany nie oznacza trudny; jest to jednak dość niezwykłe.
Zrozumienie wcześniejszego użycia podziału pięter
Niektórzy z nas mogą być świadomi, że w Pythonie możemy także tworzyć niestandardowe obiekty wspierające operację podziału pięter. Można to osiągnąć dzięki specjalnej metodzie zwanej __floordiv__() .
Metoda __floordiv__() w Pythonie
Operacja dzielenia piętra w Pythonie służy do dzielenia dwóch liczb i zaokrąglania wyniku w dół do najbliższej liczby całkowitej.
Działa pod maską, ponieważ typ numeryczny implementuje specjalną metodę zwaną __floordiv__() . Następnie, ilekroć zadzwonimy do // operator między dwoma obiektami, __floordiv__() metoda zostaje wywołana.
W Pythonie możemy także bezpośrednio wywołać metodę __floordiv__() metoda. Rozważmy następujący przykład ilustrujący to samo:
Przykład 10:
# declaring some variables a = 31 b = 7 # performing floor division using the // operator c = a // b # performing floor division using the __floordiv__() method d = (a).__floordiv__(b) # printing the results of both operations print('Using the // operator: ', a, '//', b, '=', c) print('Using the __floordiv__() method: (', a, ').__floordiv__(', b, ') =', c)
Wyjście:
Using the // operator: 31 // 7 = 4 Using the __floordiv__() method: ( 31 ).__floordiv__( 7 ) = 4
Wyjaśnienie:
W powyższym fragmencie kodu zadeklarowaliśmy dwie zmienne jako a = 31 I b = 7 . Następnie dokonaliśmy podziału pięter za pomocą // operatora i __floordiv__() metodę i zapisywał uzyskane wartości w dwóch zmiennych, C I D . W końcu wydrukowaliśmy wyniki dla użytkowników.
Z wyników pokazanych powyżej możemy zauważyć, że oba wyrażenia dały ten sam wynik. Dzieje się tak, ponieważ pierwsze wyrażenie zostaje przekonwertowane na drugie wyrażenie. Innymi słowy, te wywołania są sobie równoważne.
Teraz sytuacja stanie się interesująca. Rozważmy następujący przykład.
Przykład 11.1:
W poniższym przykładzie utworzymy niestandardową klasę reprezentującą wartości całkowite jako ciągi znaków. Następnie utworzymy dwa obiekty tej niestandardowej klasy i wykonamy na nich operację podziału pięter.
Kod:
# creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # printing the result of the floor division operation print(intOne // intTwo)
Wyjście:
Traceback (most recent call last): File 'D:Python_programspycase.py', line 11, in print(intOne // intTwo) TypeError: unsupported operand type(s) for //: 'IntStr' and 'IntStr'
Wyjaśnienie:
W powyższym fragmencie kodu zdefiniowaliśmy klasę jako Międzystr który reprezentuje wartości całkowite jako ciągi znaków. Następnie utworzyliśmy dwa obiekty Międzystr klasa. W końcu mamy podział piętra intonować obiekt przez inTwo obiekt i próbowałem wydrukować wynik.
Jednakże powyższe dane wyjściowe wskazują TypBłąd . Ten komunikat o błędzie to ujawnia Międzystr obiekty nie obsługują podziału pięter. Ten błąd ma sens. W jaki sposób typ niestandardowy miałby jakąkolwiek wskazówkę dotyczącą obiektów ciągów dzielących podłogę?
Jak się jednak okazuje, możemy to zrobić Międzystr podział piętra wsparcia obiektu.
Wcześniej dowiedzieliśmy się, ilekroć wywołujemy metodę // operatora, nazywamy __floordiv__() metoda. Ta metoda jest wykonywana gdzieś w klasie obiektu. Na przykład obiekty int obsługują podział pięter, ponieważ klasa int zastosowała metodę __floordiv__() metoda.
Te specjalne metody, jak __floordiv__() , mają coś niesamowitego wspólnego, że możemy zaimplementować te metody w klasie niestandardowej. Innymi słowy, możemy sprawić, że niestandardowe obiekty będą obsługiwały podział pięter w języku programowania Python.
Rozważmy teraz następujący przykład demonstrujący to samo.
Przykład 11.2:
W poniższym przykładzie zaimplementujemy __floordiv__() metoda w Międzystr klasa. Następnie utworzymy dwa obiekty tej niestandardowej klasy i wykonamy na nich operację podziału pięter.
Kod:
# creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val def __floordiv__(self, other): intOne = int(self.val) intTwo = int(other.val) res = intOne // intTwo return IntStr(str(res)) # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # performing floor division operation res = intOne // intTwo # printing the result of the floor division operation print(intOne.val, '//', intTwo.val, '=', res.val)
Wyjście:
17 // 4 = 4
Wyjaśnienie:
W powyższym fragmencie kodu zdefiniowaliśmy klasę jako Międzystr który reprezentuje wartości całkowite jako ciągi znaków. Wdrożyliśmy także __floordiv__() metoda w tej klasie. Ta metoda akceptuje wartość ciągu numerycznego z siebie i innego obiektu. Przekonwertowaliśmy te wartości łańcuchowe na liczby całkowite i dokonaliśmy podziału między nimi. Następnie przekonwertowaliśmy wynik z powrotem na ciąg znaków i utworzyliśmy nowy Międzystr obiekt. Stworzyliśmy instancję Międzystr klasę z dwoma obiektami i wykonał operację podziału piętra między nimi. Na koniec wydrukowaliśmy wynikową wartość dla użytkowników.
Teraz, gdy pomyślnie rozumiemy metodę tworzenia niestandardowej klasy obsługującej podział pięter.
Jeśli nie podoba nam się fakt, że musimy zadzwonić obiekt.val aby zobaczyć wynik, możemy wdrożyć __str__() metoda, która bezpośrednio zwraca wartość podczas drukowania.
Rozważmy następujący przykład ilustrujący to samo.
Przykład 11.3:
# creating a class representing integer values as string class IntStr: def __init__(self, val): self.val = val def __floordiv__(self, other): intOne = int(self.val) intTwo = int(other.val) res = intOne // intTwo return IntStr(str(res)) def __str__(self): return self.val # instantiating the class with two objects intOne = IntStr('17') intTwo = IntStr('4') # performing floor division operation res = intOne // intTwo # printing the result of the floor division operation print(intOne, '//', intTwo, '=', res)
Wyjście:
17 // 4 = 4
Wyjaśnienie:
W powyższym fragmencie kodu zdefiniowaliśmy klasę jako Międzystr który reprezentuje wartości całkowite jako ciągi znaków. Wdrożyliśmy także __floordiv__() metoda w tej klasie. Następnie zdefiniowaliśmy __str__() metoda, która bezpośrednio zwraca wartości ciągu podczas drukowania. Stworzyliśmy instancję Międzystr klasę z dwoma obiektami i wykonał operację podziału piętra między nimi. Na koniec wydrukowaliśmy wynikową wartość dla użytkowników.