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.