wtorek, 22 marca 2016

Lekcja 1 – wstęp do programowania

autor: Faradaj

Witaj!
Kurs z programowania będzie zdecydowanie najbardziej usystematyzowanym z pośród dostępnych tu kursów. Mam nadzieję, że forma przypadnie nowym adeptom informatyki do gustu, ale w przeciwnym razie zostaną umieszczone linki do innych kursów – tych, na których ukształtowały się moje umiejętności programistyczne.

Moje doświadczenie (można pominąć – krótka historia):
Przygodę z C++ zacząłem już w szkole podstawowej. Uroiło mi się coś w głowie, że chcę pisać programy komputerowe. Nauczyłem się -wtedy- już paru pierwszych sztuczek (o ile wypisywanie i wczytywanie danych można tak nazwać), a następnie rzuciłem to. W klasie I gimnazjum zapisałem się na kółko z informatyki, gdzie właśnie odbywał się pogrzeb LOGOmocji i narodziny C++. Szybko spodobały mi się nowe możliwości, jakie wynosiłem z kółka, gdzie uczyłem się HTML-a, obsługi pakietu Office (od Worda i Excela przez Accessa do skonfigurowania Outlooka), projektowania i edycji grafiki w Corelu (później Gimpie, który zdecydowanie starczał do moich niewielkich potrzeb)  oraz właśnie wspomnianego programowania. Wkrótce zaczęliśmy przechodzić do coraz trudniejszych zadań. Choć z początku z nimi nie radziliśmy sobie, każdy z nas nauczył się myśleć i przenosić swoje plany na ekran monitora. W II klasie gimnazjum rozpocząłem kształcenie nowych członków kółka z zakresu programowania.

Dlaczego C++?
Język C++ jest najbardziej uniwersalnym i jednym z szybszych języków, na podstawie którego tworzą się nowe języki. Jego składnia jest bardzo podobna do wielu innych języków.

Środowisko i kompilator:
W języku C++ możemy programować zarówno w środowisku Linuxa jak i Windowsa. Jednakże, kurs będzie prowadzony dla użytkowników Windowsa ze względu na jego większą popularność.
Pisząc program w C++ używamy znanych nam funkcji czy poleceń. To co napiszemy nazywamy kodem źródłowym. Kompilator ma na celu przetłumaczenie kodu źródłowego na kod wynikowy, czyli najprościej mówiąc na polecenia, które komputer wykona. W przypadku wystąpienia błędu w kodzie, kompilator zatrzyma się i kod źródłowy nie zostanie zinterpretowany tzn. skompilowany.
Na rynku jest dostępnych wiele kompilatorów. Na potrzeby kursu wystarczy wam Code::Blocks, którego można pobrać za darmo z strony producenta, instalek czy innych chomików.

Pierwszy program w C++:
Zacznijmy –więc– naukę języka od podstaw.
Uruchom Code::Blocksa. Następnie stwórzmy nowy plik – najszybciej kliknąć ikonkę w kształcie kartki A4 z zawiniętym prawym górnym rogiem oraz z nałożonym plusem, a następnie wybrać Empty file (z ang. Pusty plik).

 Następnie musimy zapisać pusty plik, stosując rozszerzenie .cpp (ikonka jednej dyskietki koło kartek lub File->Save file as) , po czym możemy przystąpić do pisania programu.

Napiszmy następujący program  - pamiętajmy o zapisaniu po zmianie kodu źródłowego:

                Wstawiam w formie do skopiowania, jeśli ktoś jest leniwy, ale zachęcam do pisania ręcznego (pisząc uczysz się):
#include
#include
int main()
{   
std::cout<<"To jest moj pierwszy program!";  /*Niektórzy zafascynowani amerykańską kulturą zawsze piszą w cudzysłowie Hello Word! w swoim pierwszym programie */
getchar();
 return 0;
}
Następnie odpalmy nasz program za pomocą ikonki z zębatką i zielonym znaczkiem play opisanej po najechaniu jako: build & run (kompiluj i uruchom).
Wyświetli się nam czarne okno, na którym zobaczymy tylko napis z cudzysłowiu.

Zacznę tłumaczyć, co znaczą poszczególne linijki:

#include   jest to dyrektywa include (z ang.zawierać), czyli dyrektywa dołączania plików nagłówkowym na początku będą to biblioteki, które zawierają funkcje (dyrektywy w cpp będą oznaczane poprzedzającym tzw. hasztagiem)

W naszym programie wczytaliśmy dwie biblioteki: iostream oraz cstdio
Biblioteka iostream to biblioteka główna pozwalająca na użycie podstawowych funkcji, jak np. cout, a biblioteka cstdio pozwala na użycie getchar().

std::cout<<”tu napisz co chcesz wyswietlic”;
To funkcja –jak nie trudno się domyślić – ścieżki wyjścia. Zauważ, że każda linijka w cpp jest zakończona średnikiem. Jeśli chcemy dopisać coś więcej możemy skorzystać z dwóch opcji:

I – dopisania do cout kolejnego przypisania << :
std::cout<<”pierwszy tekst”<<”drugi tekst”<

Zauważmy, że tekst pierwszy i drugi jest w jednej linijce, a pozostałe są w osobnym, prócz tego – dlaczego nie użyliśmy cudzysłowiu przy endl. Otóż tak: endl (od ang. Endline) w cpp czytamy jako koniec linijki, jest to równoznaczne z przejściem linijkę w dół, a ”\n” to znak specjalny równoznaczny z naszym enterem tzn. To jest tak jakbyśmy napisali tekst i kliknęli enter, dlatego możemy używać go w jednym cudzysłowie z tekstem, co zobaczymy poniżej.


II – dopisanie nowego cout:
std::cout<<”Pierwszy tekst \n”;
std::cout<<”drugi tekst”;

Zauważmy, że ciągle powtarzamy std:: - jest to operator przypisania przestrzeni. Bardzo łatwo można to zrozumieć na zasadzie takiego przyrównania: Idziesz sobie do biblioteki (np. iostream) w poszukiwaniu książki (funkcji cout), std:: oznacza tyle, abyś szukał na półkach zamiast np. pod dywanem. Aby wbić do głowy programowi, że zawsze ma szukać na półkach korzystamy z następującej linijki, którą w każdym programie piszemy jeszcze przed funkcją główną int main(){}:
using namespace std;

Dzięki temu możemy później pisać : cout<<”pierwszy tekst \n drugi tekst”;
Innym odpowiednikiem cout jest funkcja printf(”Tu wpisz wyswietlany tekst, tu nie użyjemy endla a jedynie \n (czyt.nju lajn ^^)”);

Warto wiedzieć, gdy chcemy wyświetlić liczbę, możemy opuścić cudzysłowy i zrobić to tak:
cout<<5 p="">

Pewnie się zastanawiasz, dlaczego nie jest wyświetlona informacja o „niektórych 
zafascynowanych…” Nie miało to być nic obraźliwego ;), chciałem jedynie pokazać jak działa komentarz. Komentarz jest to coś, czego program nie kompiluje. Wyróżniamy dwa rodzaje komentarza: jednolinijkowy (używamy za pomocą dwóch ukośników //tu tekst, zakaz entera) lub wielolinijkowy (używamy tak:  /* otwieram komentarz, enter czy coś , zamykam komentarz */

Kolejnym elementem programu jest:

getchar(); return 0;

Być może zuważyłeś, że po napisaniu twojego tekstu program nie zamknął się automatycznie, a czekał na kliknięcie klawisza i wyświetlił 0. To właśnie robi funkcja getchar(). Najlepiej zauważysz jej działanie usuwając ją i odpalając program. Zwróć uwagę, że napisałem w jednej linijce powyżej aż dwa średniki. Dla cpp nie istnieje linijka poleceń bez średnika, a każde polecenie musi być w osobnej linijce.

Dobra, ale czemu niektóre rzeczy są w int mainie, a inne poza, i co to jest właściwie ten int main(){}
int main()
{
}

Jest to funkcja główna, często nazywana ciałem programu. Zawiera instrukcje, co ma program robić, czyli wszystko to, co jest między klamrami. Poza funkcją główną zauważ, że tylko wskazujemy miejsca, skąd powinna interpretować to, co jest między klamrami (biblioteki, przestrzeń nazw std – w por.”półki”)  itp.

Na podsumowanie jesteśmy w stanie napisać szablon, z którego będziemy mogli napisać każdy kolejny program:

Z komentarzy nie będziemy zbyt często korzystać (umieszczamy w nich tylko informacje dla nas np. //w tej linijce wypisuje coś), więc możemy to zredukować do:

Zadania do lekcji:
1. Napisz trzy różne programy, których rezultat będzie wyglądał tak:

2. Wyjaśnij znaczenie podanych elementów programu (prostymi swoimi słowami):
-#include
-using namespace std;
-int main(){ getchar();return 0;} 
-cout<<"";

Brak komentarzy:

Prześlij komentarz