1.2.pdf
(
390 KB
)
Pobierz
Od zera do gier kodera
2
Z CZEGO SKŁADA SIĘ
PROGRAM?
Każdy działający program jest przestarzały.
pierwsze prawo Murphy’ego o oprogramowaniu
Gdy mamy już przyswojoną niezbędną dawkę teoretycznej i pseudopraktycznej wiedzy,
możemy przejść od słów do czynów :)
W aktualnym rozdziale zapoznamy się z podstawami języka C++, które pozwolą nam
opanować umiejętność tworzenia aplikacji w tym języku. Napiszemy więc swój pierwszy
program (drugi, trzeci i czwarty zresztą też :D), zaznajomimy się z podstawowymi
pojęciami używanymi w programowaniu i zdobędziemy garść niezbędnej wiedzy :)
C++, pierwsze starcie
Zanim w ogóle zaczniemy programować, musisz zaopatrzyć się w odpowiedni kompilator
C++ - wspominałem o tym pod koniec poprzedniego rozdziału, zalecając jednocześnie
używanie Visual C++. Dlatego też opisy poleceń IDE czy screeny będą dotyczyły właśnie
tego narzędzia. Nie uniemożliwia to oczywiście używania innego środowiska, lecz w takim
wypadku będziesz w większym stopniu zdany na siebie. Ale przecież lubisz wyzwania,
prawda? ;)
Bliskie spotkanie z kompilatorem
Pierwsze wyzwanie, jakim jest instalacja środowiska, powinieneś mieć już za sobą, więc
pozwolę sobie optymistycznie założyć, iż faktycznie tak jest :) Swoją drogą, instalowanie
programów jest częścią niezbędnego zestawu umiejętności, które trzeba posiąść, by
mienić się (średnio)zaawansowanym użytkownikiem komputera. Zaś kandydat na
przyszłego programistę powinien niewątpliwie posiadać pewien (w domyśle – raczej
większy niż mniejszy) poziom obeznania w kwestii obsługi peceta. W ostateczności
można jednak sięgnąć do odpowiednich pomocy naukowych :D
Środowisko programistyczne będzie twoim podstawowym narzędziem pracy, więc musisz
je dobrze poznać. Nie jest ono zbyt skomplikowane w obsłudze – z pewnością nie zawiera
takiego natłoku nikomu niepotrzebnych funkcji jak chociażby popularne pakiety
biurowe :) Niemniej, z pewnością przyda ci kilka słów wprowadzenia.
W użyciu jest parę wersji Visual C++. W tym tutorialu będę opierał się na pakiecie Visual
Studio 7 .NET (Visual C++ jest jego częścią), który różni się nieco od wcześniejszej, do
niedawna bardzo popularnej, wersji 6. Dlatego też w miarę możliwości będę starał się
wskazywać na najważniejsze różnice między tymi dwoma edycjami IDE.
„Goły” kompilator jest tylko maszynką zamieniającą kod C++ na kod maszynowy,
działającą na zasadzie „ty mi podajesz plik ze swoim kodem, a ja go kompiluję”. Gdy
48
uświadomimy sobie, że przeciętny program składa się z kilku(nastu) plików kodu
źródłowego, z których każdy należałoby kompilować oddzielnie i wreszcie linkować je w
jeden plik wykonywalny, docenimy zawarte w środowiskach programistycznych
mechanizmy
zarządzania projektami
.
Projekt
w środowiskach programistycznych to zbiór modułów kodu źródłowego i innych
plików, które po kompilacji i linkowaniu stają się pojedynczym plikiem EXE, czyli
programem.
Do najważniejszych zalet projektu należy bardzo łatwa kompilacja – wystarczy wydać
jedno polecenie (na przykład wybrać opcję z menu), a projekt zostanie automatycznie
skompilowany i zlinkowany. Zważywszy, iż tak nie tak dawno temu czynność ta
wymagała wpisania kilkunastu długich poleceń lub napisania oddzielnego skryptu,
widzimy tutaj duży postęp :)
Kilka projektów można pogrupować w tzw. rozwiązania
9
(ang.
solutions
). Przykładowo,
jeżeli tworzysz grę, do której dołączysz edytor etapu, to zasadnicza gra oraz edytor będą
oddzielnymi projektami, ale rozsądnie będzie zorganizować je w jedno rozwiązanie.
***
Teraz, gdy wiemy już sporo na temat sposobu działania naszego środowiska oraz
przyczyn, dlaczego ułatwia nam ono życie, przydałoby się je uruchomić – uczyń więc to
niezwłocznie. Powinieneś zobaczyć na przykład taki widok:
Screen 12. Okno początkowe środowiska Visual Studio .NET
Cóż, czas więc coś napisać - skoro mamy nauczyć się programowania, pisanie
programów jest przecież koniecznością :D
Na podstawie tego, co wcześniej napisałem o projektach, nietrudno się domyśleć, iż
rozpoczęcie pracy nad aplikacją oznacza właśnie stworzenie nowego projektu. Robi się to
bardzo prosto: najbardziej elementarna metoda to po prostu kliknięcie w przycisk
New
Project
widoczny na ekranie startowym; można również użyć polecenia
File|New|Project
z
menu.
9
W Visual C++ 6 były to obszary robocze (ang.
workspaces
)
49
Twoim oczom ukaże się wtedy okno zatytułowane, a jakże, New Project
10
:
) Możesz w
nim wybrać typ projektu – my zdecydujemy się oczywiście na Visual C++ oraz Win32
Project, czyli aplikację Windows.
Screen 13. Opcje nowego projektu
Nadaj swojemu projektowi jakąś dobrą nazwę (chociażby taką, jak na screenie), wybierz
dla niego katalog i kliknij OK.
Najlepiej jeżeli utworzysz sobie specjalny folder na programy, które napiszesz podczas
tego kursu. Pamiętaj, porządek jest bardzo ważny :)
Po krótkiej chwili ujrzysz następne okno – kreator :) Obsesja Microsoftu na ich punkcie
jest powszechnie znana, więc nie bądź zdziwiony widząc kolejny przejaw ich radosnej
twórczości ;) Tenże egzemplarz służy dokładnemu dopasowaniu parametrów projektu do
osobistych życzeń. Najbardziej interesująca jest dla nas strona zatytułowana
Application
Settings
– przełącz się zatem do niej.
Rodzaje aplikacji
Skoncentrujemy się przede wszystkim na opcji
Application Type
, a z kilku dopuszczalnych
wariantów weźmiemy pod lupę dwa:
¾
Windows application
to zgodnie z nazwą aplikacja okienkowa. Składa się z
jednego lub kilku okien, zawierających przyciski, pola tekstowe, wyboru itp. –
czyli wszystko to, z czym stykamy się w Windows nieustannie.
¾
Console application
jest programem innego typu: do komunikacji z użytkownikiem
używa tekstu wypisywanego w
konsoli
– stąd nazwa. Dzisiaj może wydawać się
to archaizmem, jednak aplikacje konsolowe są szeroko wykorzystywane przez
doświadczonych użytkowników systemów operacyjnych. Szczególnie dotyczy to
tych z rodziny Unixa, ale w Windows także mogą być bardzo przydatne.
Programy konsolowe nie są tak efektowne jak ich okienkowi bracia, posiadają za to
bardzo ważną dla początkującego programisty cechę – są proste :) Najprostsza aplikacja
tego typu to kwestia kilku linijek kodu, podczas gdy program okienkowy wymaga ich
kilkudziesięciu. Idee działania takiego programu są również trochę bardziej
skomplikowane.
10
Analogiczne okno w Visual C++ 6 wyglądało zupełnie inaczej, jednak ma podobne opcje
50
Z tych właśnie powodów zajmiemy się na razie wyłącznie aplikacjami konsolowymi –
pozwolą nam w miarę łatwo nauczyć się samego języka C++ (co jest przecież naszym
aktualnym priorytetem), bez zagłębiania się w skomplikowane meandry programowania
Windows.
Screen 14. Ustawienia aplikacji
Wybierz więc pozycję
Console application
na liście
Application type
. Dodatkowo zaznacz
też opcję
Empty project
– spowoduje to utworzenie pustego projektu, a oto nam
aktualnie chodzi.
Pierwszy program
Gdy wreszcie ustalimy i zatwierdzimy wszystkie opcje projektu, możemy przystąpić do
właściwej części tworzenia programu, czyli kodowania.
Aby dodać do naszego projektu pusty plik z kodem źródłowym, wybierz pozycję menu
Project|Add New Item
. W okienku, które się pojawi, w polu
Templates
zaznacz ikonę
C++ File (.cpp)
, a jako nazwę wpisz po prostu
main
. W ten sposób utworzysz plik
main.cpp
, który wypełnimy kodem naszego programu.
Plik ten zostanie od razu otwarty, więc możesz bez zwłoki wpisać doń taki oto kod:
// First - pierwszy program w C++
#include
<iostream>
#include
<conio.h>
void
main()
{
std::cout<<
"Hurra! Napisalem pierwszy program w C++!"
<< std::endl;
getch();
}
Tak jest, to wszystko – te kilka linijek kodu składają się na cały nasz program. Pewnie
niezbyt wielka to teraz pociecha, bo ów kod jest dla ciebie zapewne „trochę” niejasny, ale
spokojnie – powoli wszystko sobie wyjaśnimy :)
Na razie wciśnij klawisz F7 (lub wybierz z menu
Build|Build Solution
), by skompilować i
zlinkować aplikację. Jak widzisz, jest to proces całkowicie automatyczny i, jeżeli tylko kod
jest poprawny, nie wymaga żadnych działań z twojej strony.
51
W końcu, wciśnij F5 (lub wybierz
Debug|Start
) i podziwiaj konsolę z wyświetlonym
entuzjastycznym komunikatem :D (A gdy się nim nacieszysz, naciśnij dowolny klawisz,
by zakończyć program.)
Kod programu
Naturalnie, teraz przyjrzymy się bliżej naszemu elementarnemu projektowi, przy okazji
odkrywając najważniejsze aspekty programowania w C++.
Komentarze
Pierwsza linijka:
// First – pierwszy program w C++
to
komentarz
, czyli dowolny opis słowny. Jest on całkowicie ignorowany przez
kompilator, natomiast może być pomocny dla piszącego i czytającego kod.
Komentarze piszemy w celu wyjaśnienia pewnych fragmentów kodu programu,
oddzielenia jednej jego części od drugiej, oznaczania funkcji i modułów itp. Odpowiednia
ilość komentarzy ułatwia zrozumienie kodu, więc stosuj je często :)
W C++ komentarze zaczynamy od
//
(dwóch slashy):
// To jest komentarz
lub umieszczamy je między
/*
i
*/
, na przykład:
/* Ten komentarz może być bardzo długi
iskładać się z kilku linijek. */
W moim komentarzu do programu umieściłem jego tytuł
11
o
raz krótki opis; będę tę
zasadę stosował na początku każdego przykładowego kodu. Oczywiście, ty możesz
komentować swoje źródła wedle własnych upodobań, do czego cię gorąco zachęcam :D
Funkcja
main()
Kiedy uruchamiamy nasz program, zaczyna on wykonywać kod zawarty w funkcji
main()
.
Od niej więc rozpoczyna się działanie aplikacji – a nawet więcej: na niej też to działanie
się kończy. Zatem program (konsolowy) to przede wszystkim kod zawarty w funkcji
main()
– determinuje on bezpośrednio jego zachowanie.
W przypadku rozważanej aplikacji funkcja ta nie jest zbyt obszerna, niemniej zawiera
wszystkie niezbędne elementy.
Najważniejszym z nich jest
nagłówek
, który u nas prezentuje się następująco:
void
main()
Występujące na początku słowo kluczowe
void
mówi kompilatorowi, że nasz program nie
będzie informował systemu operacyjnego o wyniku swojego działania. Niektóre programy
robią to poprzez zwracanie liczby – zazwyczaj zera w przypadku braku błędów i innych
wartości, gdy wystąpiły jakieś problemy. Nam to jest jednak zupełnie niepotrzebne – w
11
Takim samym tytułem jest oznaczony gotowy program przykładowy dołączony do kursu
Plik z chomika:
morgan116
Inne pliki z tego folderu:
0.1.pdf
(283 KB)
0.2.pdf
(176 KB)
0.3.pdf
(143 KB)
0.4.pdf
(165 KB)
1.1.pdf
(371 KB)
Inne foldery tego chomika:
Zgłoś jeśli
naruszono regulamin