cpp4 (2)







SDMP - kurs C++







LEKCJA 1 - PODSTAWOWE INSTRUKCJE




Nadszedł czas, aby napisać pierwszy program. Na razie nie będzie on robił nic nadzwyczajnego. Stopniowo zaczniemy go rozbudowywać, a przy okazji omówię tu najistotniejsze sprawy. Oto nasz pierwszy program:


#include <stdio.h>
void main(void)
{
printf("Anna Miedzianowska");
}


Ten program możemy bez problemu skompilować. Ale efekt może wydać się marny... Czarny ekran zaraz znika i nie można się przyjrzeć efektom własnej pracy... Dlatego musimy wprowadzić małą modyfikację. Ale najpierw wyjaśnię to, co już zostało napisane.


Linijka pierwsza: instrukcja #include poleca kompilatorowi dołączyć do programu plik stdio.h (tzw. pseudonagłówkowy), w którym zawarta jest definicja funkcji printf. Jest tam też wiele innych definicji przeróżnych funkcji i jest on jednym z najczęściej używanych plików pseudonagłówkowych. Bardzo często używa się też plików: conio.h, math.h itp. Zamiast znaków nierówności (< >) można też użyć znaku cudzysłowia (""). Wszystkie pliki *.h znajdują się w podkatalogu INCLUDE. Tak więc pierwsza rzecz, od której należy zacząc pisanie programu to właśnie dyrektywa #include.


Linijka druga: Tu rozpoczyna się główna funkcja programu (main()). Musi ona wystąpić w programie dokładnie 1 raz! Wszystkie instrukcje programowe zawierają się w jej ciele, czyli między nawiasami klamrowymi. Nagłówek tej funkcji ma w naszym przypadku postać: void main(void). Słowo void oznacza brak parametrów i w zasadzie można je pominąć. Znaczy to, że funkcja główna nie daje wyniku żadnego typu i nie pobiera żadnych parametrów do poprawnego wywołania. Dla przykładu deklaracja funkcji main może wyglądać również tak:



int main() - funkcja w wyniku swojego działania zwróci wartość typu int i nie pobiera żadnych parametrów przy rozpoczęciu działania.
int main(void) - inny zapis, ale znaczenie takie samo jak wyżej
main() - jeszcze inny zapis, ale znaczenie takie samo jak wyżej
float main() - w tym przypadku wynikiem działania funkcji będzie typ float.



Przez dłuższy czas możemy się tym jednak nie przejmować i po prostu pisać: main()


Linijka czwarta: To ciało naszej funkcji głównej. Instrukcja printf która sprawia, że określony tekst zostanie wyświetlony na ekranie. Jak każda instrukcja kończy się średnikiem.

Linijka trzecia i piąta: Nawiasy klamrowe oznaczają grupę instrukcji. W tym przypadku pokazują one ciało funkcji głównej.



Podsumowując:

Na początku piszemy #include i pliki z definicjami instrukcji.
Deklarujemy funkcję main().
W ciele funkcji głównej wypisujemy wszystkie instrukcje (zakończone średnikiem), które program ma wykonać.
Wielkość liter nie jest bez znaczenia, więc x i X oznaczać mogą dwie różne zmienne.
Kompilujemy przez użycie kombinacji klawiszy: CTRL+F9.




A teraz czas na modyfikacje:


#include <stdio.h>
#include <conio.h>
main(void)
{
//to jest komentarz, który
//kończy się na końcu linii
clrscr();
printf("Anna \nMiedzianowska");
getch();
return 0;
}


Efektem skompilowania tego kodu będzie wypisanie na ekranie napisu "Anna Miedzianowska".


Modyfikacja polegała przede wszystkim na wprowadzeniu nowych funkcji: clrscr() oraz getch(). Ich definicje opisane są w pliku conio.h, dlatego należało go dopisać na samym początku po dyrektywie #include. Co robią dane funkcje? Pierwsza z nich czyści ekran (odpowiednik "cls" w Dosie). Druga zatrzymuje działanie programu i czeka na wciśnięcie dowolnego klawisza. Jest jeszcze kilka innych sposobów na zatrzymanie pracy programu, aby można było obejrzeć efekt, np. wpisanie while(!kbhit()); zamiast getch() lub np. getchar();.


To, co pojawiło się w kodzie przed moim nazwiskiem, to nie jest żadna literówka. Efekt widać po uruchomieniu programu - nazwisko zostało przeniesione do następnej linijki. \n jest to tzw. znak specjalny. Innym z częściej używanych znaków specjalnych jest np. \t - tabulacja czy \a - krótki sygnał dźwiękowy.


Po modyfikacji pojawiło się także tajemnicze return 0;. Chodzi o to, że skoro funkcja główna została zadeklarowana jakby zwracała typ int (domyślnie), więc na końcu programu należy wpisać return 0; jako pomyślny wynik jej działania. Bez tego oczywiście nic się nie stanie, więc równie dobrze można to pominąć.


Ostatnią nową sprawą jest komentarz. Można w nim napisać co się tylko chce, kompilator z założenia nie czyta komentarzy. Dla krótkich komentarzy stosuje się najczęściej formę przedstawioną w przykładzie: dwa ukośniki rozpoczynają komentarz (//), a kończy się on samoistnie na koncu linii. Jeżeli komentarz jest dłuższy niż jedna linijka należy rozpocząć go znakami /* i zakończyć w odpowiednim miejscu znakami: */ Nie jest istotne dla kompilatora, w którym miejscu napiszemy komentarz.



Podsumowując:

Mamy 2 rodzaje komentarzy i możemy w nich pisać, co nam się podoba.
Aby zatrzymać pracę programu, używamy funkcji getch();.
Do czyszczenia ekranu służy funkcja clrscr();.
Przyzwoicie by było napisać na końcu return 0;.
W tekście możemy używać tzw. znaków specjalnych, np. złamanie tekstu do następnej linii (\n).




To tyle, jeżeli chodzi o pierwszą lekcję. Dla ciekawych powiem, że kolory w edytorze dla poszczególnych wyrażeń nie są przypadkowe. Kolorem białym sa wyróżniane tzw. słowa kluczowe, niebieskim tekst cytowany i liczby, zielonym dyrektywy kompilatora, a wszystko inne na żółto. Jeśli natomiast zaczniemy wpisywać coś zupełnie bez sensu, edytor zaznaczy to kolorem czerwonym.









Autorem Kursu C++ jest Anna Miedzianowska (http://annamiedzianowska.republika.pl/).


Baner reklamowy:




Wyszukiwarka