Technologia

C++ podstawy

C++ jest wykorzystywany jako uniwersalny, wysokopoziomowy język programowania. Jego główną cechą jest to, że oferuje szeroki zakres możliwości od prostych skryptów do rozbudowanych aplikacji. Umożliwia programistom tworzenie zoptymalizowanego kodu, który bardzo szybko działa bez utraty funkcjonalności. Może być używany do tworzenia aplikacji desktopowych, stron internetowych oraz aplikacji mobilnych. Co więcej, C++ pozwala na tworzenie bibliotek wielokrotnego użytku i struktury kodu

Podstawowe pojęcia w programowaniu

Aby rozpocząć programowanie w języku C++ należy poznać podstawowe pojęcia, które są używane przez osoby zajmujące się tą dziedziną. Znajdziesz je poniżej.

Program komputerowy 

Program komputerowy to złożona struktura, składająca się z szeregu dokładnie określonych instrukcji, umożliwiających komputerowi wykonanie określonego zestawu operacji arytmetycznych i logicznych.. Programy są tworzone przy użyciu języków programowania, dzięki którym algorytmy mogą być zapisane w postaci czytelnej dla maszyny.

Może Cię zainteresować: CSS – podstawy.

Algorytm 

Algorytm to zestaw ściśle określonych procedur i metod, które pozwalają na rozwiązanie określonego zadania w ograniczonej liczbie kroków. 

Cechy charakterystyczne poprawnego algorytmu

Algorytm posiada pewne określone cechy charakterystyczne. Ich opis znajdziesz poniżej.

  • Poprawność – jest sprawdzana na podstawie skończonej liczby danych. Oznacza to, że przy odpowiednim przypisaniu zestawu danych i wykonaniu określonych czynności, algorytm wygeneruje poprawne wyniki. Ten proces można ocenić pod kątem dokładności, prawidłowości czy nawet precyzji uzyskanych rezultatów.
  • Jednoznaczność – oznacza, że gdy dane są przekazane do algorytmu, zawsze otrzymamy taką samą odpowiedź. Oznacza to, że niezależnie od tego jaki będzie sposób postępowania, kodu lub innych stosowanych w danym algorytmie metod, efektem końcowym otrzymanego wyniku będzie identyczny. 
  • Szczegółowość – wykonawca algorytmu musi posiadać pełne zrozumienie tego, co jest mu zadane oraz potrafić wykonać te czynności zgodnie ze szczegółami. Aby to osiągnąć, należy dokładnie przeanalizować opisane czynności i zrealizować je za pomocą odpowiednich narzędzi i technik. 
  • Uniwersalność – algorytm ma na celu rozwiązywanie szerokiego zakresu zadań, bez względu na współczynniki. Przykładowo algorytm do rozwiązywania równań postaci ax+b=0 potrafi sobie poradzić nie tylko z konkretnym przykładem, np. 2x+6=0, ale posiada także umiejętność rozwiązywania dowolnego równania o współczynnikach a i b.

Sprawdź też: HTML – podstawy

Podział algorytmów pod względem konstrukcyjnym

Algorytmy można podzielić na kilka rodzajów, w zależności od sposobu ich realizacji. Są to:

  • algorytmy liniowe,
  • algorytmy rozgałęzione,
  • algorytmy iteracyjne,
  • algorytmy rekurencyjne,
  • algorytmy mieszane.

Algorytm liniowy oznacza po prostu wykonanie kolejnych kroków jeden po drugim – tak jak np. obliczenie pola prostokąta. Algorytm rozgałęziony polega na ustaleniu warunku, opcje wynikowe biorąc pod uwagę następstwa tego warunku są interpretowane jako odrębne kroki – przykładem takiego algorytmu może być obliczanie pierwiastków równania kwadratowego. Iteracyjny zespół kroków jest powtarzany do momentu spełnienia określonego warunku – np. wyszukanie elementu tablicy o danym indeksie. Rekurencyjny algorytm natomiast sam się wywołuje, jeśli jakiś proces ma trwać długo i składa się z powtarzalnych czynności – stosowany choćby podczas sortowania elementów listy czy drzewa binarnego. Natomiast algorytmy mieszane łączą cechy poszczególnych algorytmów we wspomnianym już porządku – linowo-iteracyjne czy rekurencyjno-rozgałezienne.

Kompilator 

Kompilator to program, który służy do przetwarzania kodu napisanego w języku wysokiego poziomu (np. C++, Pascal) na kod bardziej zaawansowany – język maszynowy (zero-jedynkowy).

Interpreter 

Interpreter jest programem komputerowym, który wykonuje analizę kodu źródłowego programu. Jest to proces odmienny od kompilacji, w trakcie której do wykonywalnego kodu maszynowego tłumaczone są tylko fragmenty przeanalizowanego programu.

Konsolidator 

Konsolidator jest narzędziem, które umożliwia tworzenie plików wykonywalnych poprzez połączenie zadanych plików obiektowych i bibliotek. Pozwala to na skompilowanie różnych programów do jednego binarnego pliku wykonywalnego, dzięki czemu łatwiej jest je dostarczyć na maszyny docelowe.

Debugger 

Debugger to program komputerowy, który jest używany do dynamicznej analizy innych programów w celu odnajdywania i identyfikacji błędów zawartych w nich, znanych również jako robaki. Debugowanie obejmuje nadzorowanie procesu wykonania programu przez debuggera. W praktyce oznacza to, że debugger może monitorować lokalizację błędu w kodzie, a także analizować każdy element składowy programu podczas jego działania. 

IDE 

IDE to zestaw narzędzi do tworzenia programów, które są ze sobą powiązane i umożliwiają współpracującym programistom łatwiejsze zarządzanie projektem. Zintegrowane środowisko programistyczne pozwala na pracę nad programem od początkowego etapu designu aż do jego finalizacji.

RAD 

RAD (Rapid Application Development) to ideologia i technika tworzenia aplikacji, która polega na udostępnieniu programistom narzędzi do szybkiego prototypowania oraz dostarczaniu gotowych komponentów znacznie skracających czas potrzebny na przygotowanie aplikacji. 

Tworzenie nowego projektu w CodeBlocks

Aby utworzyć nowy projekt w programie, należy wybrać opcje File – New – Project. W kreatorze projektu trzeba zaznaczyć język C++ i podać nazwę projektu oraz wybrać folder roboczy. Domyślnym narzędziem kompilacyjnym będzie tu GNU GCC. Kod programu umieszczamy w pliku main.cpp.

Struktura programu Hello World w C++

W powyższym przykładzie, domyślny program „Hello World!” uruchamiany w CodeBlocks za pomocą klawisza F9 ma strukturę składającą się z kilku elementów

#include <iostream>

 using namespace std;

 int main()

 {

  cout << „Hello world!” << endl;

   return 0;

 }

Przyjrzyjmy się bliżej, co dokładnie zostało tutaj użyte:

  • <iostream> jest biblioteką strumienia wejścia/wyjścia (input/output stream), która pozwala na wykorzystanie uproszczonych zapisów w kodzie,
  • using namespace std; – zapisanie przestrzeni nazw biblioteki standardowej jako 'std::’ w programie wiąże się z możliwością korzystania z uproszczonych skrótów, dzięki którym można uniknąć pisania długich i skomplikowanych linii kodu. Przykładowo, zamiast wpisywać: std::cout << „Hello world!” << endl; można użyć znacznie bardziej zwięzłego zapisu cout << „Hello world!” << endl;
  • int main() – funkcja będąca głównym punktem programu, który rozpoczyna się otwarciem klamry: {, a kończy zamknięciem: }. Zwraca wartość typu int (liczba całkowita), co pojawia się w poleceniu return 0;. Funkcja main() jest integralną częścią struktury programu i dostarcza podstawowej informacji wejścia dla procesora systemu.
  • cout << „Hello world!” << endl; – odpowiada wyświetleniu na ekranie tekstu umieszczonego w cudzysłowach. Wyrażenie endl; oznacza wstawienie znaku końca linii, a tu operator << dzieli poszczególne instrukcje. W języku C++ komputer interpretuje polecenia napisane przez programistę i wykonuje je, co jest niezbędnym etapem przy tworzeniu aplikacji.

Czytaj też: Najpopularniejsze języki programowania.