Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Zmienne możemy wyobrazić sobie jako pojemniki (kontenery), w których przechowuje się dane.

W językach C++Java zmienne definiuje się, podając typ obiektów, które będą one przechowywać (np. liczby, znaki, wartości logiczne). Typ zmiennej określony zostaje na stałe, tzn. gdy zdefiniujemy zmienną typu logicznego, nie da się jej przypisać liczby zmiennoprzecinkowej.

Inaczej jest w języku Python: w tym przypadku ta sama zmienna może najpierw przechowywać liczbę zmiennoprzecinkową, a następnie ciąg tekstowy.

Zadanie 1

Treść zadania:

Wykonywane jest działanie , gdzie oznacza dzielenie modulo, czyli obliczanie reszty z dzielenia liczby przez liczbę .

  1. Jakiego typu powinna być zmienna ?

  2. Jakiego typu powinna być zmienna ?

  3. Czy wynik działania powinno się zapisać jako zmienną typu floatfloatfloat?

Rozwiązanie:

Ustalmy najpierw, dla jakich liczb można wykonywać operację dzielenia z resztą. Dzielenie z resztą jest zdefiniowane tylko dla liczb całkowitych, dlatego odpowiedzi na pytania  brzmią: zmienna powinna być typu całkowitego (intintegerint).

Jaka jest odpowiedź na pytanie nr ? Wynik całego działania będzie liczbą mającą część ułamkową (sumujemy wartość oraz pewną liczbę całkowitą). Odpowiedź brzmi: tak, powinniśmy użyć zmiennej typu float.

Zadanie 2

Treść zadania:

Producenci A i B sprzedają pewien towar po za sztukę. Producent A daje odbiorcom zniżki przy zakupie do sztuk oraz zniżki przy zakupie powyżej sztuk. Natomiast producent B dla odbiorców przygotował zniżki przy zakupie do sztuk, zniżki od każdej sztuki powyżej sztuk (aż do sztuk). Przy zakupie powyżej sztuk oferuje zniżkę od każdej zakupionej sztuki.

Reguły wyznaczania kwoty do zapłacenia – w zależności od liczby sztuk towaru – są następujące:

– liczba sztuk,
 – koszt zakupu.

Producent A:

  • Dla mamy: .

  • Dla mamy: .

Producent B:

  • Dla mamy: .

  • Dla mamy: .

  • Dla mamy: .

Towar pakowany jest po sztuk, dlatego wartości  w przedstawionym opisie i w odpowiedziach na podane pytania mogą być tylko wielokrotnościami liczby . W obliczeniach przyjmij, że  jest liczbą z przedziału .

Wykorzystując dostępne narzędzia informatyczne, wykonaj potrzebne obliczenia i odpowiedz na następujące pytania:

  1. W jakich przedziałach wartości koszt zakupu  sztuk towaru jest niższy u producenta A?

  2. Przy jakiej liczbie sztuk towaru nie ma znaczenia, u którego producenta hurtownia zrobi zakupy?

  3. Jaka jest największa liczba sztuk, dla której koszt zakupu u producenta A jest mniejszy niż koszt zakupu sztuk u producenta B?

  4. Jaka jest największa liczba sztuk, dla której koszt zakupu u producenta B jest mniejszy niż koszt zakupu sztuk u producenta A?

Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki w roku (poziom podstawowy). Cały arkusz można znaleźć na stronie internetowej Centralnej Komisji Edukacyjnej.

Rozwiązanie:

Nie będziemy rozwiązywać całego zadania. Skoncentrujemy się na typach zmiennych, których należy użyć, aby przechować liczbę sztuk () oraz koszt ().

Ponieważ  to liczba sztuk towaru, musimy posługiwać się liczbami całkowitymi. Wiemy również, że  jest liczbą z przedziału . Który typ pozwala zapisać całkowite wartości z takiego zbioru? Może być nim int, w języku C++ odpowiedni byłby typ unsigned int.

Zmienne typu całkowitego nie nadają się z kolei do przechowywania kosztu (). W tym przypadku musimy uwzględniać wartości całkowite (złotówki) oraz ułamkowe (grosze). Odpowiedni w tym przypadku może być typ zmiennoprzecinkowy float.

Ważne!

W przypadku typu float oraz int zakresy zmiennych mogą się różnić w zależności od kompilatora.

Słownik

float
float

zmienna typu zmiennoprzecinkowego; zajmuje bity w pamięci w przypadku zdefiniowania jej w języku C++ lub Java; precyzja zapisu zależy od kompilatora – można przyjąć, że wynosi cyfr po przecinku (aby uzyskać większą dokładność, należy użyć typu double); w języku Python typ float jest równoważny typowi doubleC++Javie; jednak zapisywany jest na bitach oraz umożliwia przechowanie cyfr po przecinku

integer
integer

zmienna typu całkowitego (int); zajmuje bity w przypadku zdefiniowania jej w języku C++ lub Java; przechowuje liczby z zakresu ; w języku Python (od wersji ) zakres jest teoretycznie nieskończony; w praktyce jednak limitem jest ilość dostępnej pamięci adresowej