Kurs C++ częśd I – IDE + „Hello World”. Autor: Dawid Chróścielski
Transkrypt
Kurs C++ częśd I – IDE + „Hello World”. Autor: Dawid Chróścielski
Kurs C++ częśd I – IDE + „Hello World”. Autor: Dawid Chróścielski. Witam. Mam zaszczyt przedstawid kurs programowania C++ dla laików. Dla ludzi, na których widok system popuszcza w błędy i rzuca niebieskimi ekranami. Przychodząc do klasy o profilu matematyczno-informatycznym pewnie większośd z Was nie spodziewała się, że informatyka nie kooczy się na Wordzie i Paint’cie. Gdy po przebiciu się przez algorytmy Wasze emocje opadły, a szczęki wróciły na swoje miejsca, czas na wykorzystanie tego w praktyce. Czas zacząd naukę programowania. Na szczęście dla Was w moim ukochanym języku C++. Na czym polega Wasze szczęście? Język ten jest bardzo „elastyczny”. Potrafi dostosowad swój stopieo zaawansowania do programisty. Nie znasz w pełni obiektowości? Nie musisz jej używad! To dobrodziejstwo pozwala rozpoczynad od prostych aplikacji, a na zaawansowanych rozwiązaniach inżynierii oprogramowania koocząc. Następna jego zaleta to zdecydowanie szybkośd i kontrola nad kodem źródłowym. Język ten wg. mnie wyrabia również nawyk tworzenia czytelnego, optymalnego i schludnego kodu. Czego zatem potrzebujemy? Chęci, chęci i jeszcze raz… komputera z dostępem do internetu oraz systemem operacyjnym Microsoft Windows (w moim przypadku Microsoft Windows 7). Zamiast chęci przewidziana również motywacja w postaci zagrożenia z informatyki. Przyda się również znajomośd języka angielskiego oraz porządna przeglądarka internetowa (polecam Google Chrome). Jak powstają programy? Zasada powstawania aplikacji jest dośd prosta. Ktoś bardzo mądry wymyślił kiedyś, że pisanie aplikacji w kodzie binarnym (zerojedynkowym) to bardzo żmudna, nieefektywna i bezsensowna na dłuższą metę praca. Stworzono więc narzędzie zwane kompilatorem, którego zadaniem jest tłumaczenie języka programowania na kod maszynowy, który rozumie nasz komputer. W ten sposób programista posiada wiele funkcji, bibliotek, czy rozwiązao, gotowych do wykorzystania. Programiści najczęściej pracują w środowisku programistycznym (zintegrowanym z systemem zbiorem narzędzi przeznaczonym do tworzenia oprogramowania w postaci kompilatora, edytora kodu źródłowego, itd.). Osobiście podczas tworzenia oprogramowania wykorzystując system operacyjny Microsoft Windows 7, używam programu Microsoft Visual Studio 2010. Jest to wg. mnie bezkonkurencyjny produkt na tej platformie. W następnym paragrafie postaram się przybliżyd jego instalację oraz konfigurację. Instalacja i konfiguracja środowiska programistycznego Microsoft Visual Studio. Plik instalacyjny Visual Studio możemy pobrad stąd: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express Aby to uczynid należy kliknąd na przycisk zaznaczony strzałką na obrazku (jest to kurs dla laików także przepraszam, jeżeli poczujecie się urażeni tłumaczeniem elementarnych czynności). Program dostępny jest w angielskiej wersji językowej. Po kliknięciu w ten przycisk wyświetlid się powinno okienko dialogowe pośrodku strony. Klikamy w opcję po prawej (Visual C++ 2010 Express (English)). Wybieramy miejsce, w którym znajdował się będzie nasz plik i klikamy zapisz. Dwukrotnie klikamy na nasz plik, następnie przycisk „Uruchom” lub „Tak” i…. czekamy. Tego w świecie informatyki również będzie dużo. Potrzebujemy niezmierzonych pokładów cierpliwości. Najlepiej znaleźd sobie jakiegoś „mini zabijacza czasu”, którego trzymad będziemy w okolicach biurka i używad w momencie, w którym nasz komputer nie chce byd dotykany pod groźbą autodestrukcji. Gdy instalator rozpakuje pliki i przygotuje się do przeprowadzenia przez konfigurację instalacji ukaże się nam okienko z „ptaszkiem”, który zalecam odznaczyd (wysyła Twoje preferencje do bazy Microsoftu, niby to tylko zbędne informacje, ale kto wie jaka jest prawda). Następnie klikamy „Next” aż do momentu, w którym zapoznajemy się z licencją programu, zaznaczamy „I have read and accept license terms”. Klikamy ponownie „Next” aż do zakładki, w której będzie przycisk „Browse”. Już prawie jesteśmy u celu, klikając w „Browse” mamy jednak jeszcze szansę na podjęcie decyzji, w którym katalogu chcemy zainstalowad nasze środowisko. Po dokonaniu wyboru klikamy na „Install”. Odpalamy nowo zainstalowane IDE. Pierwsze uruchomienie zajmuje trochę więcej czasu niż zazwyczaj. Aby utworzyd nasz pierwszy projekt klikamy File -> New -> Project. Zaznaczamy „Create directory for solution”, w polu „Name” wpisujemy nazwę naszego projektu (np. hello), wybieramy poprzez naciśnięcie na przycisk „Browse”, w którym miejscu zapisad nasz projekt, zatwierdzamy przyciskiem „Wybierz folder”. Z lewej strony mamy menu, przez które przedzieramy się w ten sposób: Installed Templates -> Other languages -> Visual C++ -> Win32 Console Application. Klikamy „OK”. W nowym okienku dialogowym od razu przechodzimy do następnej zakładki poprzez „Next”. W następnej zakładce wybieramy „Console application” oraz „Empty project” i zakaoczamy „Finish”. Utworzyliśmy „czysty projekt”. Utwórzmy zatem nowy plik źródłowy. W miejscu zwanym „Solution Explorer” klikamy prawym przyciskiem myszy w „Source files”. Wybieramy Add -> New Item. Zaznaczamy „C++ File (.cpp)”, nadajemy nazwę (w tym przypadku „main”) i zatwierdzamy przez „Add”. Przechodzimy do edycji naszego nowoutworzonego pliku „main” (tak zazwyczaj nazywamy główny plik programu). Jeżeli nasz edytor nie jest jeszcze otwarty klikamy dwukrotnie na „main.cpp” w Solution Explorerze. Oto kod naszego pierwszego programu: // Mój pierwszy program "Hello World" #include <iostream> using namespace std; int main() { cout << "Hello World" << endl; system("PAUSE"); return 0; } /* Hello World! :) */ Aby go skompilowad i uruchomid, wybieramy z menu: Debug -> Start Debugging (lub wciskamy F5). Program wyświetla w konsoli środowiska Windows napis o treści „Hello World”. Kod źródłowy wklejony w wasz edytor będzie miał prawdopodobnie inne kolorowanie składni (kolory odpowiednich słów kluczowych lub bloków kodu są charakterystyczne). Jest to bardzo użyteczne i zdecydowanie poprawia czytelnośd kodu. Wyjaśnijmy jego kod źródłowy linijka po linijce. #include <iostream> Ten wiersz umieszcza w naszym pliku bibliotekę standardową „iostream”. Umożliwia ona wprowadzanie informacji ze standardowych wejśd (np. klawiatura) i kierowanie ich do urządzeo wyjścia (np. ekran). using namespace std; Jest to określenie, mówiące kompilatorowi, że w przypadku nie odnalezienia jakiegoś polecenia w lokalnej przestrzeni nazw, będzie on szukał ich w „std”. Dzięki temu nie zapisujemy wiersza: cout << "Hello World" << endl; w ten sposób: std::cout << "Hello World" << endl; gdyż kompilator sam odnajdzie przestrzeo nazw „std”, w której znajduje się funkcja „cout”. Teraz jest to niepotrzebne dodanie jednej całej linijki zamiast paru znaków, jednak w przyszłości znacznie wygodniej będzie pisad „cout”, niż „std::cout” za każdym razem, gdy będziemy chcieli użyd tego polecenia. Dalej w kodzie napotykamy instrukcję int main() { } Jest to definicja funkcji (inaczej metody) o nazwie „main”. Funkcja ta jest głównym blokiem całego programu. Podczas uruchomienia program rozpoczyna od razu wykonywanie poleceo, które znajdują się w metodzie „main”. Funkcja ta jest zwraca obiekt typu integer i nie przyjmuje żadnych argumentów (tym zajmiemy się później). Między „{” oraz „}” znajduje się ciało funkcji. Są to polecenia, które zawierają się w danej metodzie. cout << „Hello World” << endl; Jest to… (uwaga!) funkcja. Metody możemy wywoływad. Tu właśnie następuje wywołanie funkcji „cout” z przestrzeni nazw „std”. Po „cout” (skrót od console output) następuje „<<”, które określa, że jest to strumieo wyjścia. Wypisuje on w konsoli (czarne okienko, które jest naszym programem) ciąg znaków „Hello World”, który ujęty jest w cudzysłów. Następnie znów używamy „<<”. Zamiast tego moglibyśmy również napisad: cout << „Hello World”; cout << endl; Ale w tym przypadku czytelniej było zrobid to w jednej linii. Polecenie „endl” (skrót od end line) koniec linii. Skutek to przejście do następnego wiersza w konsoli. Większośd wierszy/poleceo w C++ kooczy się średnikiem „;”. Z początku łatwo o nim zapomnied. Następne polecenie to: system(„PAUSE”); Jest to polecenie charakterystyczne dla platformy Microsoft Windows i powoduje zatrzymanie pracy programu aż do naciśnięcia klawisza. Użyto po to, aby można było zobaczyd efekt działania naszego programu, a nie „mignięcie” czarnego okienka. W kolejnym wierszu znajduje się: return 0; Jak wspomniałem nasza funkcja zwraca obiekt typu integer (integer to liczba całkowita), więc nasza metoda musi coś zwrócid. W tym przypadku zwraca ona liczbę 0, która oznacza poprawne zakooczenie działania programu. Celowo pominąłem kody, których czcionka jest koloru zielonego. Proszę jednak jako programista ich nie lekceważyd. Można zauważyd, że nie mają one struktury podobnej do pozostałej części. Są one informacją dla osoby, która czyta nasz kod, jak i nas samych. Może w tak prostym przykładzie nie jest to konieczne, ale przy dużych projektach im tego więcej, tym kod jest czytelniejszy i łatwiejszy do zrozumienia, gdy przysiądziemy nad nim po jakimś czasie. To co teraz jest dla nas oczywiste, za parę tygodni może okazad się zupełnie niezrozumiałe. Więc czym jest owo „zielone zbawienie”? Są to komentarze. Zapisujemy się w ten sposób: // tutaj dowolna treśd lub /* tutaj albo i tu albo nawet tutaj ewentualnie tu */ Pierwszy zapis pozwala na komentarz w jedynie w jednym wierszu. Taki zapis jest niedopuszczalny: // tutaj dowolna treśd i tutaj Kompilator wyrzuci błąd kompilacji. Drugi zapis natomiast pozwala zapisywad komentarz od „/*” do „*/”, co może trwad przez wiele linii. Komentarze są pomijane przez kompilator, dzięki czemu wewnątrz nich może znajdowad się dowolna treśd. Mogą znajdowad się wszędzie (wewnątrz funkcji, poza funkcją, itd., itp.). Co w przypadku błędów kompilacji? Kompilator wyświetli błędy kompilacji, gdy one nastąpią. Rozumienia ich nauczymy się w trakcie programowania, z racji tego, że często się powtarzają, jednak z początku mogą wydawad się niezrozumiałe. W razie jakichkolwiek problemów najlepszym sposobem jest wpisanie najważniejszej części błędu do wyszukiwarki internetowej (np. Google). Tą drogą i ja rozwiązuję swoje problemy programistyczne, i jest to najskuteczniejsza broo w walce z kompilatorem oraz tym, czego on od nas oczekuje.