Programowanie C++
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;
}