Pierwszy program
Ta lekcja nauczy Cię jak napisać pierwszy prosty program w języku C++, który będzie mógł wyświetlać tekst i wykonywać proste obliczenia.
Kod programu
Poprzednio skończyliśmy na następującym kodzie:
#include <iostream>
int main()
{
std::cout << "Witaj, świecie!";
}
Witaj, świecie!
Wyświetla on tekst podany powyżej w okienku "Wynik".
Omówienie
Funkcja główna
Zacznijmy od serca naszej aplikacji, czyli tzw. funkcji głównej (ang.: main
):
int main()
{
}
Pierwszą linię rozpoczyna definicja funkcji. Składa się ona z typu zwracanego int
, nazwy main
oraz jej parametrów wewnątrz ()
(w naszym przypadku żadnych).
O ile większość z tych określeń nie jest teraz ważna, to jedyne na co powinieneś zwrócić uwagę to nazwa main
. Zawsze będzie ona wyglądać tak,
int main()
. Twój program musi zawsze zawierać funkcję main
w tym określonym formacie.
Komputer wykonuje program linijka po linijce.
Gdy uruchamia aplikację, po kolei realizuje instrukcje z bloku kodu main
-a.
Blok kodu w C++, to zbiór instrukcji zawartych wewnątrz nawiasów klamrowych:
{
}
Funkcja główna main
ma swój blok kodu i wszystko co znajdzie się pomiędzy tymi nawiasami zostanie
wykonane po kolei, od góry do dołu.
Kod w środku funkcji main
jest zawsze pierwszym kodem, który się wykona.
Nagłówek iostream
Na samym początku, znajduje się linijka:
#include <iostream>
Pozwoli ona nam dalej korzystać z funkcjonalności wejścia (ang.: input) i wyjścia (ang.: output) (stąd iostream
- od input/output stream).
W praktyce oznacza to, że będziemy mogli wypisać coś w konsoli oraz pozwolić użytkownikowi wpisać coś do konsoli i to przechwycić.
iostream
jest plikiem nagłówkowym (ang.: header file). W przyszłości będziemy korzystać z wielu innych nagłówków.
Instrukcje #include <naglowek>
prawie zawsze dajemy na samym początku pliku z kodem.
O samym #include
powiemy sobie w przyszłości więcej.
Konsola
Konsola lub inaczej "terminal" to najbardziej podstawowe narzędzie pozwalające na komunikację z programem. Pozwala ona stworzyć prosty interfejs, między programem a jego użytkownikiem. Będziesz mieć okazję zapoznać się z tym narzedziem naprawdę dobrze, ponieważ będziesz używać go bardzo często w swojej przygodzie z programowaniem.
Poniżej znajdują się przykłady uruchomienia tego samego kodu
w kilku różnych środowiskach. Mimo, że nie każdy terminal jest taki sam, to wyglądają one podobnie - wyświetlają tekst z małą ilością lub zupełnym brakiem kolorów.🖼 Przykłady wyglądu konsol
- Windows
- Linux
Wiele edytorów kodu takich jak Visual Studio, VS Code, CLion czy Vim posiadają zintegrowane okno konsoli bezpośrednio w programie.
Wypisywanie do konsoli
Żeby wyświetlić tekst w konsoli, użyliśmy następującej instrukcji w bloku funkcji main
:
std::cout << "Witaj, świecie!";
cout
służy do wyświetlania tekstu do konsoli.
cout
jest tzw. strumieniem wyjścia znaków (ang.: character output),
jednak na ten moment nie musisz tego pamiętać.
Mogę teraz zduplikować tę linijkę kilka razy:
std::cout << "Witaj, świecie!1";
std::cout << "Witaj, świecie!2";
std::cout << "Witaj, świecie!3";
aby dostać następujący efekt:
Witaj, świecie!1Witaj, świecie!2Witaj, świecie!3
Średnik (;
) oznacza koniec pojedynczej instrukcji i tym samym oddziela
następujące po sobie instrukcje. Kompilator nie patrzy czy są one napisane w osobnych liniach.
Z tego powodu taki kod:
std::cout << "Witaj, świecie!1"; std::cout << "Witaj, świecie!2"; std::cout << "Witaj, świecie!3";
jest akceptowalny, jednak bardzo nieczytelny. Nie pisz kodu w ten sposób!
Prezentacja działania wyżej stworzonego programu:
Zwróć uwagę, że tekst wypisał się do konsoli bez żadnych odstępów, w jednej linii i zawinął się, dopiero pod koniec dostępnego miejsca.
Program robi dokładnie to, co ma napisane w kodzie - nie więcej, nie mniej.
My "powiedzieliśmy" mu tylko tyle, że ma wyświetlić podane znaki... i on to robi.
Musimy "złamać" linię w odpowiednim miejscu. Sprawi to, że następne
znaki będą wyświetlane od samego początku kolejnego wiersza.
Aby to zrobić należy wewnątrz tekstu umieścić specjalny znak
nowej linii: \n
, w ten sposób:
std::cout << "Witaj, świecie!\n";
Zwróć uwagę, że użyliśmy backslasha (\n
), a nie forward slasha (/n
).
Działanie programu po dodaniu znaków nowej linii:
Sekwencja znaków \n
reprezentuje pojedynczy znak. W kodzie musimy zapisać dwa znaki, ale dla programu jest to pojedynczy znak specjalny.
Dzieje się tak dlatego, że nie możemy po prostu wstawić "entera" bezpospośrednio wewnątrz tekstu w kodzie.
Znaku backslash (\
) używamy, aby zasygnalizować, że znak, który po nim następuje ma specjalne znaczenie
Przedrostek przestrzeni nazw
std::
to przedrostek tzw. biblioteki standardowej, z której pochodzi cout
.
Początkujący zazwyczaj nie przepadają za ciągłym powtarzaniem go. Można go pominąć, jeśli użyjemy wcześniej odpowiedniej linijki kodu:
#include <iostream>
int main()
{
using std::cout;
cout << "Witaj, świecie!";
}
Od miejsca wprowadzenia using std::cout;
do końca bloku kodu można pominąć std::
przy używaniu
cout
.
W wielu innych kursach i źródłach można spotkać się z polecaniem korzystania z using namespace std;
na samej górze pliku z kodem. O ile jest to legalne w C++, to doświadczeni programiści
zdecydowanie odradzają tej praktyki. Więcej o tym powiemy w dalszej części kursu.
Na ten moment preferuj styl pokazany wyżej.
Wykonywanie obliczeń
Programowanie służy do automatyzacji pewnych czynności. Na przykład, możemy zlecić komputerowi wykonanie obliczenia matematycznego za nas.
Użyj następującego kodu:
#include <iostream>
int main()
{
std::cout << "120 * 120 + 540";
}
120 * 120 + 540
Zwróć uwagę na wynik powyższego programu.
Wszystko zawarte w cudzysłowie jest traktowane jako tekst, a nie instrukcje.
Dlatego właśnie zamiast wyświetlić wynik obliczenia, dostaliśmy to co wpisaliśmy do cudzysłowu.
Żeby oznajmić, że chcemy wykonać pewne obliczenie musimy usunąć cudzysłów:
#include <iostream>
int main()
{
std::cout << 120 * 120 + 540;
}
14940
Po uruchomieniu programu dostaniemy prawidłowy wynik obliczenia znajdującego się w kodzie.
+
dodaje do siebie dwie liczby-
odejmuje od siebie dwie liczby*
mnoży przez siebie dwie liczby/
dzieli przez siebie dwie liczby()
kontroluje kolejność wykonywania działań
W wykonywaniu działań obowiązuje kolejność znana nam z matematyki:
- Najpierw to co w nawiasach okrągłych
- Następnie mnożenie i dzielenie, w kolejności od lewej do prawej
- Później dodawanie i odejmowanie, w kolejności od lewej do prawej
Podsumowanie
Poznałeś strukturę kodu pierwszego programu.
Żeby przejść do ćwiczeń odwiedź tę stronę.