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:

  1. Na początku piszemy #include i pliki z definicjami instrukcji.
  2. Deklarujemy funkcję main().
  3. W ciele funkcji głównej wypisujemy wszystkie instrukcje (zakończone średnikiem), które program ma wykonać.
  4. Wielkość liter nie jest bez znaczenia, więc x i X oznaczać mogą dwie różne zmienne.
  5. 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:

  1. Mamy 2 rodzaje komentarzy i możemy w nich pisać, co nam się podoba.
  2. Aby zatrzymać pracę programu, używamy funkcji getch();.
  3. Do czyszczenia ekranu służy funkcja clrscr();.
  4. Przyzwoicie by było napisać na końcu return 0;.
  5. 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: