[lekcja 8] Pojęcie zmiennej i podstawowe typy danych Kurs C++ » Poziom 1

background image

Strona 1

[lekcja] Pojęcie zmiennej i podstawowe typy danych | Kurs C++ » Poziom 1

2011-11-12 15:31:24

http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Pojecie-zmiennej-i-podstawowe-typy-danych/11

Darmowe kursy Online

»

Kurs C++

»

Poziom 1

Autor: Piotr Szawdyński

Pojęcie zmiennej i podstawowe typy danych

[lekcja]

Rozdział 8. Omówienie podstawowych zagadnień związanych ze zmiennymi: dostępne typy danych; tworzenie i inicjalizacja zmiennych oraz operacja

przypisania.

Po kilku rozdziałach za sobą prawdopodobnie czujesz, jak wiatr Ci wieje w plecy i posuwasz się w szybkim tempie do przodu. Od tej pory

wiatr będzie wiał Ci prosto w oczy, jeśli nie będziesz czytał tekstu uważnie. Dochodzimy bowiem do zagadnień, które nie są już takie

oczywiste i intuicyjne dla osoby, która nigdy nie zajmowała się programowaniem. Wdech... wydech... wdech... wydech... i zaczynamy :)

Pojęcie zmiennej

Programy jakie do tej pory napisaliśmy, wyświetlały jedynie tekst na ekranie. Aplikacje, które wypisują tylko i wyłącznie komunikaty są

zazwyczaj mało interesujące. Biblioteka <iostream> pozwala nam nie tylko wypisywać tekst, ale również wczytywać dane do

zmiennych. Zanim jednak zapoznamy się z instrukcją wczytywania, należy zapoznać się z pojęciem zmiennej. Zmienna, jak sama nazwa

wskazuje będzie się zmieniać w trakcie programu. Zmienna to pewien stosunkowo mały obszar w pamięci, w którym możemy

przechowywać dane różnego typu np. liczby całkowite, liczby rzeczywiste (zmiennoprzecinkowe), znak, tekst oraz kilka innych wartości,

które będą nas w przyszłości interesowały. Nie można jednak wszystkiego zapisywać do jednej zmiennej. Każda zmienna ma swoje

przeznaczenie, wielkość i właściwości . Na zmiennych liczbowych możemy wykonywać operacje matematyczne, w innych z kolei możemy

przechowywać tekst.

Typy danych

Skoro już wiemy co to jest zmienna, pora zapoznać się z podstawowymi typami danych jakie są dostępne w C++.

Nazwa typu

Ilość
Bajtów

Zakres wartości

bool

1

false lub true

char

1

od -128 do 127

unsigned char

1

od 0 do 255

wchar_t

2

od 0 do 65'535

short

2

od -32'768 do 32'767

unsigned short

2

od 0 do 65'535

int

4

od -2'147'483'648 do 2'147'483'647

unsigned int

4

od 0 do 4'294'967'295

long

4

od -2'147'483'648 do 2'147'483'647

unsigned long

4

od 0 do 4'294'967'295

long long

8

od -9'223'372'036'854'775'808 do 9'223'372'036'854'775'807

unsigned long long 8

od 0 do 18'446'744'073'709'551'615

float

4

3.4E +/- 38 (7 cyfr)

double

8

1.7E +/- 308 (15 cyfr)

long double

8

1.7E +/- 308 (15 cyfr)

Powyższe rozmiary danych są podane dla 32-bitowego kompilatora Visual C++. Jeśli chcesz sprawdzić ile w rzeczywistości zajmuje

określony typ danych dla Twojego kompilatora, wystarczy napisać prosty program i wykorzystać w nim słowo kluczowe sizeof.

Przykładowo, dla kompilatora GNU g++ rozmiar typu long double wynosi 12 bajtów, a nie 8 bajtów jak w Visual C++.

Przykład zastosowaniasizeof

C/C++

#include <iostream>

#include <cstdio>

int

main

()

{

std

::

cout

<<

"sizeof(bool) = "

<<

sizeof

(

bool

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(char) = "

<<

sizeof

(

char

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(unsigned char) = "

<<

sizeof

(

unsigned char

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(wchar_t) = "

<<

sizeof

(

wchar_t

) <<

std

::

endl

;

background image

Strona 2

[lekcja] Pojęcie zmiennej i podstawowe typy danych | Kurs C++ » Poziom 1

2011-11-12 15:31:24

http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Pojecie-zmiennej-i-podstawowe-typy-danych/11

std

::

cout

<<

"sizeof(short) = "

<<

sizeof

(

short

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(unsigned short) = "

<<

sizeof

(

unsigned short

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(int) = "

<<

sizeof

(

int

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(unsigned int) = "

<<

sizeof

(

unsigned int

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(long) = "

<<

sizeof

(

long

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(unsigned long) = "

<<

sizeof

(

unsigned long

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(long long) = "

<<

sizeof

(

long long

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(float) = "

<<

sizeof

(

float

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(double) = "

<<

sizeof

(

double

) <<

std

::

endl

;

std

::

cout

<<

"sizeof(long double) = "

<<

sizeof

(

long double

) <<

std

::

endl

;

return

0

;

}

Przykład

Zademonstruję teraz na przykładzie, jak się deklaruje zmienne i jak się z nich korzysta.

C/C++

#include <iostream>

int

main

()

{

int

to_jest_zmienna

;

unsigned int

tylkoDodatnie

;

float

zmiennoprzecinkowa

;

char

jeden_znak

;

unsigned char

rowniez_znak

;

int

abc

= -

53

;

tylkoDodatnie

=

22

;

zmiennoprzecinkowa

=

12.42

;

rowniez_znak

=

'c'

;

std

::

cout

<<

"Wypisujemy zmienne:"

<<

std

::

endl

;

std

::

cout

<<

" to_jest_zmienna = "

<<

to_jest_zmienna

<<

std

::

endl

;

std

::

cout

<<

" tylkoDodatnie = "

<<

tylkoDodatnie

<<

std

::

endl

;

std

::

cout

<<

" abc = "

<<

abc

<<

std

::

endl

;

std

::

cout

<<

" zmiennoprzecinkowa = "

<<

zmiennoprzecinkowa

<<

std

::

endl

;

std

::

cout

<<

" jeden_znak = "

<<

jeden_znak

<<

std

::

endl

;

std

::

cout

<<

" rowniez_znak = "

<<

rowniez_znak

<<

std

::

endl

;

return

0

;

}

Efekt działania powyższego programu może wyglądać np. tak:

Wypisujemy zmienne:

to_jest_zmienna = 2293728

tylkoDodatnie = 22

abc = -53

zmiennoprzecinkowa = 12.42

jeden_znak =

rowniez_znak = c

Process returned 0 (0x0) execution time : 0.062 s

Press any key to continue.

Zwróć uwagę na wypisane wartości zmiennych, którym nie została przypisana wartość początkowa. Wartości są przypadkowe. Warto

więc inicjalizować wszystkie zmienne początkową wartością.

Co to jest inicjalizacja

Inicjalizacja jest to nadawanie początkowej wartości zmiennej w chwili jej tworzenia.

Tworzeniezmiennych

Powyższy przykład pokazuje nam, jak tworzy się zmienne w programie. W ogólnym przypadku, tworzenie zmiennych zapisuje się

następująco: typ_zmiennej nazwa_zmiennej; lub typ_zmiennej nazwa_zmiennej = wartość_zmiennej;. Pierwszy zapis,

rezerwuje nam pamięć w programie. Należy pamiętać, że wartość w zmiennej będzie przypadkowa. Kompilator nie zeruje wartości

zmiennych! Jeśli chcemy od razu nadać zmiennej początkową wartość, możemy to zrobić korzystając z zapisu drugiego - dokonujemy

wówczas inicjalizacji zmiennej początkową wartością.

Instrukcjaprzypisania

background image

Strona 3

[lekcja] Pojęcie zmiennej i podstawowe typy danych | Kurs C++ » Poziom 1

2011-11-12 15:31:24

http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Pojecie-zmiennej-i-podstawowe-typy-danych/11

Architektserwisu: Piotr Szawdyński

© Wszelkieprawa zastrzeżone2005-2011

Jeśli nie chcemy nadawać od razu początkowej wartości zmiennej, możemy zawsze to zrobić później w następujący sposób: nazwa_

zmiennej = nowa_wartość_dla_zmiennej;. Operator = służy do przypisywania nowej wartości zmiennej. Wartość zmiennej można

wielokrotnie zmieniać w programie.

Nazewnictwozmiennych

Kolejną rzeczą o której należy wspomnieć jest nazewnictwo zmiennych. Nazwy zmiennych nie mogą zawierać polskich znaków.

Dozwolone znaki to: (a..z), (A...Z), podkreślenie ( _ ) i cyfry (0...9). Nazwa zmiennej nie może się również zaczynać od liczby.

Zmienne muszą posiadać unikatową nazwę w obrębie całego programu (dokładniej to w obrębie funkcji, ale o tym przypomnę gdy

dojdziemy do tematu funkcji). Warto tu również podkreślić, że zmienna int abc; nie jest tą samą zmienną co int ABC;. Są to dwie różne

zmienne, o różnych nazwach.

Zasięg zmiennych

Każda zmienna ma również swój zasięg, w którym jest widoczna. Zasięg ten determinują klamry { ... }. Zmienna, którą utworzysz będzie

widoczna tylko w obrębie danego bloku. Na razie nie będziemy wgłębiali się w szczegóły. Jak przyjdzie na to pora, przypomnę tą

informację, z szerszym wyjaśnieniem i odpowiednim przykładem.

Słowo kluczowe unsigned

Kolejną sprawą, którą należy wyjaśnić jest słowo kluczowe unsigned przed niektórymi zmiennymi. Wyraz ten możemy wpisywać przed

każdą zmienną całkowitą/znakową, jeśli chcemy, aby przechowywane w zmiennej wartości były nieujemne. Dzięki temu do zmiennej

możemy zapisać dwa razy większą liczbę dodatnią. Nie możemy natomiast zapisać już do niej liczby ujemnej.

Zadanie domowe

Mamy następujący kod:

C/C++

#include <iostream>

int

main

()

{

std

::

cout

<<

"Liczba = "

<<

nieznana

<<

std

::

endl

;

return

0

;

}

Próba kompilacji powyższego programu się nie powiedzie , a w logu kompilacji otrzymamy następujący komunikat:

error: 'nieznana' was not declared in this scope

Popraw program tak, aby się skompilował i wypisał na ekranie liczbę 123. W programie nie wolno usuwać ani zmienić żadnej istniejącej

linijki.

Wszystkieteksty są chronioneprawami autorskimi. Kopiowanielub rozpowszechnianietreści poza niniejszymserwisem jest

zabronione.

Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechnianiawłasnego tekstu wedle własnego uznania.


Wyszukiwarka

Podobne podstrony:
[lekcja 20] Funkcje, a słowo kluczowe return Kurs C++ » Poziom 2
[lekcja 13] Instrukcja warunkowa if else Kurs C++ » Poziom 1
Java 03 Podstawowe typy danych
[lekcja 20] Funkcje, a słowo kluczowe return Kurs C++ » Poziom 2
[lekcja 13] Instrukcja warunkowa if else Kurs C++ » Poziom 1
03 Zmienne i stałe Typy danych
[lekcja 2] Podstawy programowania teoria i terminologia Kurs C++ » Poziom 1
[lekcja 4] Podstawy programowania w C++ Kurs C++ » Poziom 1
[lekcja 11] Operacje porównania Kurs C++ » Poziom 1
[lekcja 12] Operacje logiczne Kurs C++ » Poziom 1
[lekcja 15] Pętla do while Kurs C++ » Poziom 2
[lekcja 17] Funkcje pierwsze starcie Kurs C++ » Poziom 2
podstawowe typy zmiennych w C
[lekcja 16] Pseudolosowe liczby całkowite Kurs C++ » Poziom 2
[lekcja 7] Przestrzeń nazw std Kurs C++ » Poziom 1
[lekcja 21] Losowanie bez powtórzeń Kurs C++ » Poziom 2
odczytywanie danych z diagramu - poziom podstawowy, Odczytywanie danych, diagramy
[lekcja 19] Przekazywanie tablic jednowymiarowych do funkcji Kurs C++ » Poziom 2

więcej podobnych podstron