C ++ Dla PoczTkujCych

  • Published on
    01-Dec-2014

  • View
    1.013

  • Download
    2

DESCRIPTION

 

Transcript

1. Niniejsza darmowa publikacja zawiera jedynie fragment penej wersji caej publikacji. Aby przeczyta ten tytu w penej wersji kliknij tutaj. Niniejsza publikacja moe by kopiowana, oraz dowolnie rozprowadzana tylko i wycznie w formie dostarczonej przez NetPress Digital Sp. z o.o., operatora sklepu na ktrym mona naby niniejszy tytu w penej wersji. Zabronione s jakiekolwiek zmiany w zawartoci publikacji bez pisemnej zgody NetPress oraz wydawcy niniejszej publikacji. Zabrania si jej od-sprzeday, zgodnie z regulaminem serwisu. Pena wersja niniejszej publikacji jest do nabycia w sklepie internetowym Nexto.pl. 2. C++ DLA POCZTKUJCYCH wiczenia Wojciech Szymaski Wszelkie prawa zastrzeone. Kopiowanie i rozpowszechnianie caoci lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Autor oraz Wydawnictwo Dobry eBook dooyli wszelkich stara, aby zawarte w tej ksice informacje byy kompletne i rzetelne. Nie bior jednak adnej odpowiedzialnoci ani za ich wykorzystanie, ani za zwizane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor i Wydawnictwo Dobry eBook nie ponosz rwnie adnej odpowiedzialnoci za ewentualne szkody wynike z wykorzystania informacji zawartych w niniejszej publikacji. Wszelkie prawa zastrzeone 2007 Dobry eBook ISBN: 978-83-60863-08-4 Wydanie I Dobry eBook ul. Grenadierw 5/5, 30-085 Krakw tel./fax (12) 353 04 05 e-mail: i.kielar@dobryebook.pl www.DobryeBook.pl 3. eBook Spis treci 1 Wstp 57 2 rodowisko pracy 8 I. Czym jest kompilator 89 II. Wybr programu 910 III. Instalacja programu 1015 IV. Korzystanie z programu Dev-C++ 1521 V. Omwienie najwaniejszych funkcji programu 2224 VI. Wybrane skrty klawiszowe w Dev-C++ 2425 3 Instrukcje podstawowe 26 I. Pierwszy program 2629 II. Formatowanie tekstu 2932 III. Dziaania na liczbach 3236 IV. Typy zmiennych, konwersja i zaokrglenie 3638 V. Kod ASCII 3940 VI. Zastosowanie praktyczne: przeliczanie wysokoci w stopach na 41 metry VII. Zastosowanie praktyczne: przeliczanie wieku w latach na dni 42 VIII. Zastosowanie praktyczne: przeliczanie wieku w latach na dni 4344 (dokadniejszy) 4 Ptle, wyrnienia warunkowe 45 I. Instrukcja warunkowa if, zakres wanoci zmiennych 4548 II. Instrukcja warunkowa while 4950 III. Zastosowanie praktyczne: obliczanie sumy i iloczynu 5152 wprowadzonych przez uytkownika liczb 4. IV. Zastosowanie praktyczne: ustalanie najmniejszej i najwikszej 5253 liczby spord wprowadzanych V. Instrukcja warunkowa do while 5455 VI. Instrukcja warunkowa for 5657 VII. Zastosowanie praktyczne: obliczanie silni podanej liczby 5859 VIII. Zastosowanie praktyczne: wypisanie piramidy z gwiazdek 5960 IX. Instrukcja warunkowa switch 6062 X. Instrukcja goto 6364 5 Tablice 65 I. Wczytywanie elementw do tablicy i ich wypisywanie 6568 II. Zastosowanie praktyczne: wypenianie tablicy liczbami od 0 do 6869 100, z krokiem co 10 III. Zastosowanie praktyczne: obliczanie sumy wszystkich 6971 elementw tablicy IV. Tablica znakowa. Operator sizeof 7175 V. Zastosowanie praktyczne: wyszukiwanie najmniejszej liczby 7577 w tablicy VI. Kopiowanie zawartoci pierwszej tablicy do drugiej (pustej) 7778 VII. Kopiowanie zawartoci pierwszej tablicy na koniec drugiej 7879 VIII. Zastosowanie praktyczne: sprawdzanie czy dwie tablice s takie 8082 same IX. Wyszukiwanie cigu znakw w tablicy 8284 X. Zastosowanie praktyczne: sortowanie elementw tablicy 8586 6 Funkcje 87 I. Oglne wiadomoci na temat funkcji 8791 II. Przekazywanie argumentw do funkcji przez warto 9193 III. Zastosowanie praktyczne: wypisywanie kolejnych liczb 9394 naturalnych z podanego przedziau IV. Zastosowanie praktyczne: zwracanie wartoci wikszej o 3 od 9495 wprowadzonej V. Instrukcja switch w funkcji 9698 VI. Przeadowanie nazwy funkcji 99101 VII. Funkcja z argumentami domniemanymi 101104 VIII. Funkcja inline 104106 5. IX. Rekurencja: funkcja Fibonacciego 106108 X. Rekurencja: mnoenie 108109 XI. Rekurencja: potga 109110 XII. Rekurencja: silnia 111112 7 Wskaniki 113 I. Oglne wiadomoci o wskanikach 113115 II. Zalety i wady wskanikw 115117 III. Zastosowanie praktyczne: wypenianie tablicy liczbami 118119 parzystymi z przedziau od 0 do 28 IV. Zastosowanie praktyczne: podnoszenie liczby do kwadratu 120121 V. Zastosowanie praktyczne: wypisywanie podanego znaku podan 121 ilo razy VI. Przekazywanie wyniku funkcji przez wskanik 122123 VII. Zastosowanie praktyczne: kopiowanie zawartoci pierwszej 124126 tablicy do drugiej (pustej) VIII. Zastosowanie praktyczne: kopiowanie n znakw pierwszej 126127 tablicy do drugiej (pustej) IX. Zastosowanie praktyczne: kopiowanie zawartoci pierwszej 127128 tablicy na koniec drugiej X. Zastosowanie praktyczne: kopiowanie n znakw pierwszej 129130 tablicy na koniec drugiej 8 Programowanie obiektowe 131 I. Klasy i obiekty 131135 II. Dane prywatne i publiczne klasy 135139 III. Metody klas wprowadzenie 139142 IV. Konstruktory i destruktory wprowadzenie 142144 V. Konstruktor domniemany 145146 VI. Konstruktor kopiujcy 147148 VII. Zastosowanie praktyczne: konstruktory 149151 9 Skorowidz 152153 www.DobryeBook.pl 6. C++ dla pocztkujcych 5 Wstp 1 Wstp Jzyk C++ Jzyk C++, ktremu powicony jest ten eBook, zosta stworzony przez Bjarne Stroustrupa w latach osiemdziesitych XX wieku. Wpyw na jego rozwj i dzisiejsz skadni miay, poza jzykiem C, przede wszystkim Simula, z ktrej zaczerpn waciwoci obiektowe, a take Algol, Ada, ML i Clu. Pocztkowo najwaniejsz rzecz wprowadzon w C++, w stosunku do C, byo programowanie obiektowe, pniej jednak dodawano do niego wiele innych ulepsze, czynic go wygodnym i bardzo elastycznym. Obecnie w wielu dziedzinach nauki i techniki C++ jest najpopularniejszym jzykiem programowania, a powikszajce si rzesze jego mionikw najlepiej o nim wiadcz. Do podstawowych zalet jzyka C++ nale: nowoczesno, due moliwoci, uyteczno, uniwersalno, wsplne cechy z innymi jzykami programowania, elastyczno, atwo nauki. Dla kogo jest ta ksika? Ksik t napisaem z myl o pocztkujcych programistach szukajcych zbioru praktycznych rozwiza i zastosowa jzyka C++. Dziki szczegowej analizie pojawiajcych si w umiarkowanym tempie nowych instrukcji, kady jest w stanie zrozumie, a co wicej umie zastosowa C++. W publikacji nie ma przykadw instrukcji nie stosowanych, albo bardzo rzadko uywanych i w wtpliwych potrzebach. Nie ma tu take miejsca na omwienia tych elementw jzyka, ktre s wykorzystywane przez profesjonalnych programistw. Chciaem, aby ten skrypt by przydatny i zawsze suy pomoc, a przy tym nie skada si z kilkuset stron. www.DobryeBook.pl strona 5 z 153 7. C++ dla pocztkujcych 6 Wstp Poniewa na rynku jest ogromna ilo publikacji dotyczcych gwnie teorii jezyka C++, postanowiem wyj naprzeciw tym, ktrzy ceni rozwizania praktyczne. Std wzi si pomys stworzenia zbioru przykadw. Jak czyta ten podrcznik? Od dawna wiadomo, e najlepiej i najszybciej uczymy si poprzez praktyk. Pracujc nad t ksik stosowaem si wanie do tej zasady. Omwienie kadego przykadu skada si z 3 czci: Kod (rdowy) programu, Na ekranie pojawi si, Opis. Polecam zapoznanie si z kad z nich. Oczywicie wybr sposobu korzystania z tej ksiki pozostawiam czytelnikowi i jego indywidualnym potrzebom, ale z wasnego dowiadczenia wiem, e najlepiej zrozumie dziaanie czego obserwujc wyniki pracy poszczeglnych czci, czyli w tym wypadku tego, co jest wypisywane na ekranie. Przykady zostay uoone wedug stopnia trudnoci i zalecam analizowanie ich po kolei, cho bardziej wtajemniczeni mog si zadowoli wyrywkow analiz poszczeglnych przypadkw. Kady program zosta opisany jzykiem prostym i zrozumiaym dla kadego. Celowo unikaem wszelkich trudnych sformuowa, aby nie przysparza czytelnikowi dodatkowych kopotw. Podczas analizy dalszych przykadw zachcam do prby samodzielnego stworzenia programu i porwnania go z tym, ktry zosta umieszczony na tych stronach. Pamitaj jednak, e kade zadanie mona rozwiza na wiele sposb i kady z nich moe by prawidowy. Natraficie te na cz pod nazw Wskazwka. W niej zostay przedstawione albo rzeczy ciekawe, albo bardzo wane, o ktrych zapomina nie wolno. W publikacji czsto spotkasz si z okreleniem uytkownik tak bd nazywa osob korzystajc z programu. W czci Na ekranie pojawi si to, co zostao wpisane przez uytkownika, jest podkrelone. www.DobryeBook.pl strona 6 z 153 8. C++ dla pocztkujcych 7 Wstp Do wykonania programw uyem kompilatora Bloodshed Dev-C++. Czytelniku! Dzikuj Ci za wybranie wanie mojego poradnika spord tak bogatego repertuaru ksiek dotyczcych programowania w jzyku C++. Mam nadziej, e bdziesz z tego wyboru zadowolony i z chci wraca bdziesz do omawianych na tych stronach przykadw. Wierz, e za kadym razem, kiedy po t lektur signiesz, zdasz sobie spraw, o ile Twoja wiedza si poszerzya w aspekcie praktycznym. Ten skrypt dostarczy Ci wiedzy i pomoe zrozumie prawa rzdzce C++, ale pomimo e jzyk ten nie zalicza si do najtrudniejszych, to jednak odrobina wysiku jest niezbdna do jego zrozumienia i nauczenia si. Przed rozpoczciem pracy powiniene wiedzie, e to nie ilo kodu decyduje o uytecznoci czy prawidowoci programu. Skromny i prosto napisany kod moe okaza si lepszym rozwizaniem ni skomplikowany i niejasny nawet dla samego twrcy. www.DobryeBook.pl strona 7 z 153 9. C++ dla pocztkujcych 8 rodowisko pracy 2 rodowisko pracy I. Czym jest kompilator Mwic kompilator, wikszo z nas ma na myli gotowe rodowisko, w ktrym tworzymy programy. Jest to mylna definicja, dlatego stwierdziem, e warto nieco przybliy struktur narzdzia, na ktrym bdziemy pracowa. rodowisko programowania, w ktrym bdziemy tworzyli nasze programy, skada si z trzech rnych mechanizmw, a s nimi: Linker, Kompilator, Edytor. Po uruchomieniu pewnego rodowiska programowania, ktrym w naszym przypadku bdzie Dev-C++, ujrzymy edytor kodu rdowego. Wspczesne edytory udostpniaj wiele opcji, dziki ktrym tworzenie programu staje si atwe i przyjemne. Popeniane bdy skadniowe s albo samoczynnie korygowane, bd jest zwracana uwaga programicie. Dodatkow zalet wielu edytorw kodu rdowego jest podpowiadanie uytkownikom, co naley wpisa w danym miejscu, a nawet autouzupenianie kodu. Po stworzeniu kodu rdowego programu musi on przej proces kompilacji czyli zamiany na jzyk zrozumiay dla procesora. To zadanie spoczywa na kompilatorze dziki niemu programista nie musi zna jzyka procesora, czyli kodu maszynowego. Rwnie sam proces pisania programu przebiega szybciej, gdy zamiast kilku linijek kodu maszynowego wprowadzamy jedn linijk kodu zrozumiaego dla czowieka. Istnienie narzdzia jakim jest kompilator pozwala na wiksz przenono kodu pomidzy platformami. Poniewa czsto do wasnego programu docza si rne biblioteki, zawierajce dodatkowe instrukcje, lub rozbija si program na kilka plikw, niezbdne jest ich doczenie. Tym zajmuje si linker. Krtko mwic czy on wszystkie czci programu w jedn cao dziki temu pniejsze korzystanie z programu staje si atwiejsze i przyjemniejsze. I tak oto odpowiadajc na postawione w nagwku pytanie powsta cay rozdzia. Na koniec poprawna definicja kompilatora, ktra mwi, e jest on skadow rodowiska www.DobryeBook.pl strona 8 z 153 10. C++ dla pocztkujcych 9 rodowisko pracy programowania, zajmujc si tylko zamian kodu rdowego, napisanego przez czowieka, na kod maszynowy zrozumiay dla procesora. Poniszy rysunek prezentuje podstawowe etapy tworzenia programu: Rysunek 2.1 Etapy tworzenia programu II. Wybr programu Programw, albo inaczej mwic rodowisk, w ktrych tworzy si programy, jest bardzo duo. Mamy do wyboru rozwizania komercyjne i darmowe, proste i trudne w obsudze, adne i brzydkie Preferencje kadego programisty zmieniaj si z upywem czasu i z koniecznoci korzystania z pewnych konkretnych funkcji. Pierwszym i zarazem najwaniejszym kryterium wyboru, przed jakim staje programista, jest uzalenienie od platformy systemowej. Programu pracujcego pod Windows nie da si uruchomi na Linuksie. Zaczn od krtkiego omwienia oprogramowania pracujcego na platformie linuksowej. Najbardziej popularnym kompilatorem C++ uywanym w systemie Linux jest g++ wydawany przez projekt GNU. Jest to tylko kompilator, niepoczony z adnym edytorem, co dla pocztkujcych programistw jest uciliwe. Jestemy zmuszeni tworzy kody rdowe w edytorze tekstowym, nastpnie zleca g++ przeprowadzenie kompilacji. Kompilator g++ jest standardowo doczany do dystrybucji Linuksa. www.DobryeBook.pl strona 9 z 153 11. Niniejsza darmowa publikacja zawiera jedynie fragment penej wersji caej publikacji. Aby przeczyta ten tytu w penej wersji kliknij tutaj. Niniejsza publikacja moe by kopiowana, oraz dowolnie rozprowadzana tylko i wycznie w formie dostarczonej przez NetPress Digital Sp. z o.o., operatora sklepu na ktrym mona naby niniejszy tytu w penej wersji. Zabronione s jakiekolwiek zmiany w zawartoci publikacji bez pisemnej zgody NetPress oraz wydawcy niniejszej publikacji. Zabrania si jej od-sprzeday, zgodnie z regulaminem serwisu. Pena wersja niniejszej publikacji jest do nabycia w sklepie internetowym Nexto.pl.