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.

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

  1. 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 ;)

  2. 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

  3. 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 xy // 22=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; }