background image

Typy liczbowe, zmienne, operatory

Zajęcia 4

background image

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;

background image

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

background image

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.

background image

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 = ?

background image

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.

background image

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

background image

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.


Document Outline