Typy liczbowe, zmienne, operatory
Zajęcia 4
Zmienne
Zmienna
– to w programowaniu element programu, który może mieć
przypisaną pewną wartość (wartość ta może być różna w różnych momentach
wykonania programu); jest uchwytem do tej wartości.
Zmienna lokalna
– to zmienna widoczna tylko w obrębie danej funkcji lub
bloku, tworzona w momencie inicjalizowania bloku i niszczona w momencie
kończenia bloku. Kolejne, rekurencyjne wywołanie tej samej funkcji tworzy na
stosie nową instancję zmiennej.
Zmienna globalna
– to zmienna widoczna w obrębie całego programu.
Zmienne
na ogół oznaczamy pojedynczymi literami, wyrazami lub złożeniem
wyrazów, przy czym wszystkie znaki wchodzące w skład nazwy zmiennej
piszemy małą literą chyba, że nazwa zmiennej jest wieloczłonowa wtedy każdy
kolejny wyraz począwszy od drugiego wchodzący w skład nazwy zmiennej
piszemy z dużej litery, np..: x, y, n, a, wzor, delta, predkoscSamochodu,
wysokoscBudynkuSzkoly, itp.
Definicja zmiennej w C++:
typ_zmiennej nazwa zmiennej;
Przypisanie zmiennej wartości w C++:
nazwa_zmiennej = wartość_zmiennej;
Typy całkowite w C++
short
– zmienna tego typu przechowuje liczbę 16-bitową postaci:
-2^15..2^15-1
unsigned short
– zmienna tego typu przechowuje liczbę 16-bitową postaci:
0..2^16-1
int
– zmienna tego typu przechowuje liczbę 32-bitową postaci:
-2^31..2^31-1
unsigned int
– zmienna tego typu przechowuje liczbę 32-bitową postaci:
0..2^32-1
long long
– zmienna tego typu przechowuje liczbę 64-bitową postaci:
-2^63..2^63-1
unsigned long long
– zmienna tego typu przechowuje liczbę 32-bitową postaci:
0..2^32-1
Typy całkowite w C++
Wielkość zadeklarowanego typu zawsze możemy sprawdzić za pomocą polecenia:
sizeof(typ_zmiennej);
Maksymalne i minimalne wartości każdego z typów uzyskamy za pomocą stałych:
SHRT_MAX
,
SHRT_MIN
,
USHRT_MAX
,
USHRT_MIN
INT_MAX
,
INT_MIN
,
INT_MAX
,
INT_MIN
LLONG_MAX
,
LLONG_MIN
,
ULLONG_MAX
,
ULLONG_MIN
Zadanie 1
Napisz w C++ program który wypisze rozmiar każdego z podstawowych typów
całkowitych oraz największą oraz najmniejszą liczbę w każdym z przypadków.
Zadanie 2
Napisz w C++ program w którym podajesz dwie liczby całkowite wejściowe
jako boki prostokąta a program liczy i wypisuje jego pole.
Modyfikatory Zmiennej
++
– zwiększa wartość zmiennej o 1 (inkremetowanie)
--
– zmniejsza wartość zmiennej o 1 (dekremetowanie)
Stosować można je na dwa sposoby, tzn.:
zmienna++;
zmienna--;
lub
++zmienna;
--zmienna;
Dostępne również są operatory: += oraz -=, które działają w sposób następujący:
zmienna += 4
, to to samo co
zmienna = zmienna + 4
zmienna -= 4
, to to samo co
zmienna = zmienna - 4
Zadanie 3
Napisz program w C++ w którym deklarujesz zmienne a,b i przypisujesz im
wartości 100 i 40, odpowiednio.
(a) Niech c=a++ i d=b--. Ile wynoszą wartości zmiennych a,b,c,d?
(b) Niech c=++a i d=--b. Ile wynoszą wartości zmiennych a,b,c,d?
Zadanie 4
Przypuśćmy, że x=1, y=2.
(a) Jeżeli z = x + (x+=2 * (x+ y++)), to z = ?
(b) Jeżeli z = y += (x++ + --x), to z = ?
Operatory
+
- operator dodawania
-
- operator odejmowania
*
- operator mnożenia
/
- operator dzielenia (całkowitego)
%
- operator reszty z dzielenia
Zadanie 5
Napisz program w C++ w którym wczytujesz z klawiatury dwie liczby całkowite
a i b. Program wypisuje na ekranie ile razy liczba a mieści się w liczbie b oraz wypisuje
resztę z dzielenia liczby b przez liczbę a.
Typy zmiennoprzecinkowe w C++
float
– zmienna tego typu przechowuje liczbę 32-bitową o pojedynczej precyzji: 7-8 cyfr
znaczących, zakres +/- 3,4*10^38
double
– zmienna tego typu przechowuje liczbę 64-bitową o podwójnej precyzji: 15 cyfr
znaczących, zakres +/- 1,7*10^308
long double
– zmienna tego typu przechowuje liczbę 80-bitową o podwójnej precyzji: 19-
20 cyfr znaczących, zakres +/- 1,1*10^4932
Rzutowanie w C++
float a = 1.234;
int b = 5;
float aa;
int bb;
aa = a ; // aa jest równe 1.234
aa = b; // aa jest równe 5.0
bb = a; // błąd kompilatora, poprawnie powinno być
bb = (int)a;
wówczas bb jest równe
1
bb = b; // bb jest równe 5
Praca domowa:
Napisz program w C++, który wczytuje trzy liczby całkowite z klawiatury a, b, c
(zakładamy, że z odcinków o długości odpowiednio a, b, c da się zbudować trójkąt).
Następnie korzystając ze wzoru
P = sqrt(p*(p-a)*(p-b)*(p-c))
(gdzie p=(a+b+c)/2 i sqrt(x) to pierwiastek kwadratowy z liczby nieujemnej)
oblicz pole tego trójkąta zaokrąglając otrzymany wynik do części całkowitej.