Podstawy C++ - Pierwszy tutorial programowania
Witajcie w pierwszym tutorialu programowania na blogu SKNI! Dzisiaj poznamy podstawy języka C++, który jest jednym z najpopularniejszych języków programowania, szczególnie w obszarach, gdzie liczy się wydajność i kontrola nad zasobami.
Co to jest C++?
C++ to język programowania ogólnego przeznaczenia, stworzony przez Bjarne Stroustrupa jako rozszerzenie języka C. Jest to język o paradygmacie obiektowym, który pozwala na programowanie zarówno na wysokim, jak i niskim poziomie abstrakcji.
Przygotowanie środowiska
Przed rozpoczęciem programowania, potrzebujesz kompilatora C++. Oto kilka popularnych opcji:
- Windows: Visual Studio, Code::Blocks, Dev-C++
- macOS: Xcode, CLion
- Linux: GCC, CLion, Code::Blocks
Pierwszy program
Zaczynamy od klasycznego "Hello World":
#include <iostream>
int main() {
std::cout << "Hello, SKNI!" << std::endl;
return 0;
}
Co się tutaj dzieje?
- dołączamy bibliotekę do obsługi wejścia/wyjścia#include <iostream>
- funkcja główna, od której rozpoczyna się wykonanie programuint main()
- wypisanie tekstu na konsolęstd::cout << "Hello, SKNI!" << std::endl;
- zwrócenie wartości 0, co oznacza poprawne zakończenie programureturn 0;
Zmienne i typy danych
C++ jest językiem silnie typowanym. Oto podstawowe typy danych:
int liczba_calkowita = 10; // liczba całkowita
double liczba_zmiennoprzecinkowa = 3.14; // liczba zmiennoprzecinkowa
char znak = 'A'; // pojedynczy znak
bool warunek = true; // wartość logiczna
std::string tekst = "SKNI"; // tekst (wymaga #include <string>)
Instrukcje warunkowe
Instrukcje warunkowe pozwalają na wykonanie różnych fragmentów kodu w zależności od spełnienia określonego warunku:
int a = 10;
int b = 5;
if (a > b) {
std::cout << "a jest większe od b" << std::endl;
} else if (a < b) {
std::cout << "a jest mniejsze od b" << std::endl;
} else {
std::cout << "a jest równe b" << std::endl;
}
Pętle
Pętle umożliwiają wielokrotne wykonanie tego samego fragmentu kodu:
Pętla for
// Wypisanie liczb od 1 do 5
for (int i = 1; i <= 5; i++) {
std::cout << i << " ";
}
// Wynik: 1 2 3 4 5
Pętla while
// Wypisanie liczb od 1 do 5 za pomocą pętli while
int i = 1;
while (i <= 5) {
std::cout << i << " ";
i++;
}
// Wynik: 1 2 3 4 5
Tablice i wektory
Tablice pozwalają na przechowywanie wielu wartości tego samego typu:
// Tablica statyczna
int tablica[5] = {1, 2, 3, 4, 5};
// Wektor (dynamiczna tablica)
#include <vector>
std::vector<int> wektor = {1, 2, 3, 4, 5};
// Dodanie elementu do wektora
wektor.push_back(6);
// Dostęp do elementów
std::cout << tablica[0] << std::endl; // 1
std::cout << wektor[0] << std::endl; // 1
Funkcje
Funkcje pozwalają na wydzielenie powtarzalnego kodu:
// Deklaracja i definicja funkcji
int dodaj(int a, int b) {
return a + b;
}
// Użycie funkcji
int wynik = dodaj(5, 3); // wynik = 8
Klasy i obiekty
C++ jest językiem obiektowym, co oznacza, że możemy definiować własne typy danych za pomocą klas:
#include <iostream>
#include <string>
class Student {
private:
std::string imie;
std::string nazwisko;
int rok;
public:
// Konstruktor
Student(std::string i, std::string n, int r)
: imie(i), nazwisko(n), rok(r) {}
// Metoda
void przedstawSie() {
std::cout << "Cześć, jestem " << imie << " " << nazwisko
<< ", studiuję na roku " << rok << "." << std::endl;
}
};
int main() {
// Tworzenie obiektu
Student jan("Jan", "Kowalski", 2);
// Wywołanie metody
jan.przedstawSie();
return 0;
}
Bardziej zaawansowany przykład
Na koniec, przedstawiamy bardziej rozbudowany przykład, który łączy wiele z poznanych elementów:
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
// Definiujemy prostą klasę Student
class Student {
private:
std::string imie;
std::string nazwisko;
int rok;
double srednia;
public:
// Konstruktor
Student(std::string imie, std::string nazwisko, int rok, double srednia)
: imie(imie), nazwisko(nazwisko), rok(rok), srednia(srednia) {}
// Gettery
std::string getImie() const { return imie; }
std::string getNazwisko() const { return nazwisko; }
int getRok() const { return rok; }
double getSrednia() const { return srednia; }
// Metoda do wyświetlania informacji
void wyswietlInfo() const {
std::cout << "Student: " << imie << " " << nazwisko
<< ", Rok: " << rok
<< ", Średnia: " << srednia << std::endl;
}
// Operator porównania do sortowania studentów wg. średniej
bool operator<(const Student& inny) const {
return this->srednia > inny.srednia; // Sortowanie malejąco
}
};
int main() {
// Tworzenie wektora studentów
std::vector<Student> studenci;
studenci.push_back(Student("Jan", "Kowalski", 2, 4.5));
studenci.push_back(Student("Anna", "Nowak", 3, 4.8));
studenci.push_back(Student("Piotr", "Wiśniewski", 1, 4.2));
// Wyświetlenie wszystkich studentów
std::cout << "Lista studentów:" << std::endl;
for (const auto& student : studenci) {
student.wyswietlInfo();
}
// Sortowanie studentów według średniej
std::sort(studenci.begin(), studenci.end());
std::cout << "\nStudenci posortowani według średniej (malejąco):" << std::endl;
for (const auto& student : studenci) {
student.wyswietlInfo();
}
return 0;
}
Podsumowanie
W tym tutorialu poznaliśmy podstawy programowania w C++:
- Składnię języka i pierwszy program
- Zmienne i typy danych
- Instrukcje warunkowe i pętle
- Tablice i wektory
- Funkcje
- Klasy i obiekty