Wademekum C++

C++ w skrócie

Książka opisuje większość zagadnień C++ ich struktury oraz podstawowe

zastosowanie.

2010

Syriusz Franke

Hakerzy

2010-01-19

2 | S t r o n a

Spis treści

1.Typy zmiennych

2. Komentarze

3. Strumień wej/wyj

Składnia (strumień wejścia)

Składnia (strumieni wyjścia)

listing 2.1

4. Liczenie

listing 3.1

listing 3.2

listing 3.3

5. Parametry funkcji

listing 4.1

listing 4.2

6. Funkcje + Funkcje zwracające wartość

Składnia (funkcji zwracającej wartość)

Składnia (instrukcji warunkowej if)

Składnia (instrukcja switch)

7. Pętle do, while oraz for

Składnię (pętli)

A wstępie chciałbym podkreślić że ta książka nie jest ani żadnym kursem języka

C++ ani nawet próbą jego skrócenia. Ta książka jest poświęcona głównie

zasobom języka C++ które pozwolą na przyswojenie składni, metod oraz funkcji

jakie występują w tym języku w szybki i łatwy sposób. W książce postaram się przedstawić

jak najwięcej możliwych udogodnień funkcji ich możliwości stosowania, skracania,

zagnieżdżania itp.

Chciałbym również zwrócić tu waszą uwagę na różne elementy estetyki kodu które w

przyszłości mogą pomóc w zrozumieniu oraz ułatwieniu czytelności kodu.

Życzę miłej lektury ;)

1.Typy zmiennych

void - pusty

int - liczba całkowitą (dodatnia lub ujemna)

//short – polowe mniejszy long – polowe większy

float - liczba rzeczywista (z częścią ułamkową)

//double - podwójny

bool - wartość logiczna (prawda lub fałsz)

char - pojedynczy znak

wchar – pojedynczy znak //większą pojemność

std::string - łańcuch znaków (tekst)

std::wstring – łańcuch znaków //podwójna pojemność

const [zmienna]- liczba stała np. grawitacja

2. Komentarze

To będzie krótki rozdział ale bardzo pomocny i przydatny w późniejszym etapie zaawansowania

w programowaniu. Komentarze odgrywają ogromną rolę w programowaniu nie jest konieczne ich pisanie

ale jak wejdzie wam w nawyk pisanie komentarzy na początku to będzie naprawdę wielki sukces. No ale

koniec tych suchych słów. Po co mi te komentarze jak nie trzeba to po jakiego djobła ;p. A no już

pomyślmy mamy program 10tyś. wierszy patrzymy w kod a tam zaawansowany styl programowania bez

komentarzy a nam już wyleciało dawno co tam rok temu pisaliśmy a musimy go za wszelką cenę

dokończyć no i kicha bo nic z tego nie wiemy gdyby były komentarze to chociaż „może” byśmy się

domyślić co gdzie program robi a tak jedyne co nam zostaje albo napisać nowy albo ślęczeć nad tym i

próbować go rozczytać. Może to was choć odrobinę przekona.

Komentarze mają dwie postacie :

Pierwszą zaczynamy od // ( dwóch slashy) a wygląda on tak:

//Komentarz pierwsza linijka i i i ostatnia linijka ;p

będę go stosować do wyjaśnieni listingów w książce będą się one załamywać lecz ten komentarz powinien

być w jednej linii.

Drugi natomiast umieszczamy między /* i */ jest również nazywany blokowym dlaczego?:

/* Pierwsza linijka komentarza

Druga linijka komentarza

Trzecia linijka komentarza itd. */

Gorąco zachęcam do pisania komentarzy bo są naprawdę wielce pomocne ;)

3. Strumień wej/wyj

Dzięki strumieniowi wejścia użytkownik komunikuje sie z programem

Składnia (strumień wejścia)

std::cin >> x; //prosi o podanie jakiejś informacji x

Dzięki strumieniowi wyjścia program komunikuje sie z użytkownikiem

Składnia (strumieni wyjścia)

std::cout <<"Hello"<<x<<";)"; //może wyświetlać tekst lub jakąś informacje tekst musi znajdować

się w cudzysłowie natomiast informacje zapisane w np. zmiennych są „Czyste”

std::cout <<"z zakończeniem lini"<<std::endl; //std::endl służy do zakończenia linii

listing 2.1

void main() //deklaracja głównej funkcji main()

{ //początek funkcji

std::string x; //deklaracja zmiennej x

std::cout <<”Podaj imię”; //prośba o podanie imienia

std::cin >> x; //podane powyżej imię zostaje przypisane zmiennej

std::cout <<”Hello „<<x<<”;)”<<std::endl; //zostaje wyświetlony napis „Hello i [ imię podane

przez usera] ;)” poczym linia się kończy

} //koniec funkcji

4. Liczenie

Podstawy liczenia czyli działania arytmetyczne ;) podstawy to tak naprawdę te 2 linijki poniżej to

naprawdę niewiele prawda ;).

short int nWynik = nL1 + nL2; //co ta linijka robi?? Nie domyślacie się jeszcze Nie?? No to dodaje

ona współczynnik nL1 do współczynnika nL2. A wynik zostaje zapamiętany w zmiennej nWynik

Kładę tu nacisk na ostatnie zdanie bo jest w nim zawarte Ważne spostrzeżenie!!

cout << nL1 + nL2; //a tu co chyba już się domyślasz że dzieje się to samo co powyżej prawda ;).

Jedyna różnica jest w tym że wynik zostaje jedynie wyświetlony i nigdzie nie jest zapisany bo

wyświetleniu nie figuruje on już w pamięci.

Kładę tu nacisk na ostatnie zdanie bo jest w nim zawarte Ważne spostrzeżenie!!

I podstawy liczenia mamy opanowane do tego jeszcze parę operatorów i po kłopocie ;D.

No dobra to teraz operatory ich pierwszeństwo oraz możliwości ich przekształceń.

Operatory:

Operator Nazwa Przykład

+ Dodawanie x+y // 2+2=4

- Odejmowanie x-y // 2-2=0

* Mnożenie x*y // 2*2=4

/ Dzielenie x/y // 2/2=1

% Reszta z dzielenia x%y // 5%2=1 // 5/2=2 reszty 1

Priorytety operatorów:

Lp. Operator

1 / * % oraz ‘(’ ‘)’

2 + -

Przekształcenia operatorów:

nX = nX * 10;

nX *= 10;

nX = nX - 10;

nX -= 10;

nX = nX + 10;

nX += 10;

itd.

listing 3.1

void main() //deklaracja głównej funkcji main()

{ //początek funkcji

short int x; //deklaracja zmiennej x zmienna jest zmniejszona o

polowe „Nauczmy się już oszczędzać naszą pamięć ;p”

std::cout << „Podaj cyfrę x: „; // Prosimy usera o podanie cyfry

std::cin >> x; // program czeka na podanie cyfry

x = x-10; // a tu jest linijka która nas interesuje co ona robi zmniejsza naszego x o 10 w normalny

matematyczny dla nas sposób zmiennej x przypisz [=]nową wartość[x-10]

std::cout <<”Nowa wartość x po zmniejszeniu go o 10” << x <<std::endl; //wyświetlamy nasza

nowa zmienna aby pochwalić się jaki to cudowny program ;D

} //koniec funkcji

listing 3.2

void main() //deklaracja głównej funkcji main()

{ //początek funkcji

short int x; //deklaracja zmiennej x zmienna jest zmniejszona o

polowe „Nauczmy się już oszczędzać naszą pamięć ;p”

std::cout << „Podaj cyfrę x: „; // Prosimy usera o podanie cyfry

std::cin >> x; // program czeka na podanie cyfry

x -= 10; // tu się dzieje identycznie to samo co powyżej w tym miejscu lecz wygląda trochę

inaczej „dziwnie” ale nie jest to aż tak dziwne do zmiennej x przypisz pomniejszona o 10 [-= 10]

wartość x czyli dzieje się identycznie to samo co powyżej lecz w skróconej wersji to chyba się

każdemu spodoba ;)

std::cout <<”Nowa wartość x po zmniejszeniu go o 10” << x <<std::endl; //wyświetlamy nasza

nowa zmienna aby pochwalić się jaki to cudowny program ;D

} //koniec funkcji

Inkrementacja i Dekrementacja :

Inkrementacja Dekrementacja

// Zwiększenie wartości i o 1 // Zmniejszenie wartości i o 1

++i --i

Lub Lub

i++ i--

listing 3.3

void main()

{

int i=2; //Przypisanie zmiennej wartości 2

cout <<”Podstawowa wartosc zmiennej i”<< i; // zmienna i bez zmian

--i; // dekrementacja zmniejszenie o 1 zmiennej i / i = i-1 /prawda że wygoda

cout << „Wartosc i zmniejszona o 1”i; // wartość i mniejsza o 1

++i; // inkrementacja zwiększenie o 1 zmiennej i / i = i+1

cout << „Wartosc i zwiększona o 1”i; // wartość i większa o 1

}

5. Parametry funkcji

listing 4.1

void Dodaj(int nWartosc1, int nWartosc2) //funkcja dodaj z parametrami nWartosc1 i nWartosc2

{ //Początek

….. //Ciało / nie zbyt ono nas interesuje ale dla ciekawych zawiera on po prostu działania po

nazwie funkcji można wywnioskować ale jeśli nie to działania dodawania dokładnie ;)

} //Koniec

void main() //funkcja main czyli główna

{ //Początek

short int nLiczba1; //deklaracja zmiennej nLiczba1

short int nLiczba2; //deklaracja zmiennej nLiczba2

// Powyższe dwie linijki można również zapisać tak

// short int nLiczba1, nLiczba2; powyższy zapis jest taki dla celów przejrzystości lecz dalej będę już

stosować tego zapisu

…… //ciało funkcji / prośba o podanie wartości dla zmiennych nLiczba1 oraz nLiczba2

Dodaj (nLiczba1, nLiczba2); //Wywołanie funkcji która przesyła wartości nLiczba1 i nLiczba2 i

zostają one przypisane zmiennym wartosc1 i wartosc2 w funkcji Dodaj

} //Koniec

listing 4.2

…. //Kod początkowy

short int nDlugosc1, nDlugosc2; // Deklaracja zmiennych / znamy już to to się rozpisywać nie

będę

cout <<” Podaj wartości boków a i b” //Prośba o podanie wartości a i b

cin >> a >> b; //Podajemy a i b

cout << "obwód prostokąta: "<< Obwód(nDlugosc1, nDlugosc2); // A tu nagle co gdzie jest jakieś

działanie czyżby komputer sam wiedział co ma zrobić Bez przesady ;p / no więc gdzie się

podziało nasze działanie ?? a no jest linijkę niżej wszystko zapisane ;)

int Obwód(int nBok1, int nBok2) // Funkcja obliczająca obwód

{ //początek

return 2 * (nBok1 + nBok2); //Obwód

} //koniec

…. //Zakończenie

Spytacie pewnie co nam daje taki zapis a chociaż tyle że gdy mamy błąd w działaniu które oblicza nam

obwód nie musimy poprawiać go //Jeśli pojawia się więcej razy niż 1 // lecz poprawiamy tylko w tej

funkcji a w całej reszcie kodu nie wprowadzamy żadnych zmian prawda że wygodne.

6. Funkcje + Funkcje zwracające wartość

Składnia (funkcji zwracającej wartość)

typ_zwracanej_wartości/void nazwa_funkcji([typ_parametru nazwa, ....])

{

instrukcje_1

return wartość_funkcji_1;

instrukcje_2

return wartość_funkcji_2;

...

instrukcje_n

return wartość_funkcji_n;

}

Składnia (instrukcji warunkowej if)

if(warunek)

{

instrukcje dla spełnionego warunku

}

else

{

instrukcje dla niespełnionego warunku

}

skrócona postać // warunek tylko jedna instrukcja reszta wykona sie tak czy inaczej

if(warunek)

instrukcje dla spełnionego warunku

else

instrukcje dla niespełnionego warunku

....

if(warunek) instrukcja

else if(warunek) instrukcja //złożony warunek else + if(zagnieżdżone)

inna postać // ma ograniczenia

(warunek ? instrukcje dla spełnionego warunku : instrukcje dla niespełnionego warunku);

Składnia (instrukcja switch)

int jakas_Opcja;

cout << "1.koncz";

cin >> jakas_Opcja;

switch(warunek[jakas_Opcja])

{

case wartość_1:

instrukcje_1

[break;]

case wartość_2:

instrukcje_2

[break;]

....

case wartość_n:

instrukcje_n

[break;]

[default:

instrukcje_domyślne] //np. przy błędnym podaniu wartości.

}

7. Pętle do, while oraz for

Składnię (pętli)

Pętla do

do

{

Instrukcja;

}while(warunek)//zaczyna gdy warunek true kończy gdy warunek false

Pętla while

while(warunek)//zaczyna gdy warunek true kończy gdy warunek false

{

instrukcja

}

Pętla for

for(zmienna; warunek; inkrementacja)

{

instrukcja

}

np.

for(int a=0; a < 10; a++) //wykonuje gdy true kończy gdy false

{

Instrukcja;

}