Studenckie Koło Naukowe Informatyki

UMCS

# Autor: SKNI
# 📅 2025-03-08
# ⏳ 17 min

Podstawy C++ - Pierwszy tutorial programowania

Wprowadzenie do języka C++ dla początkujących programistów

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?

  • #include <iostream>
    - dołączamy bibliotekę do obsługi wejścia/wyjścia
  • int main()
    - funkcja główna, od której rozpoczyna się wykonanie programu
  • std::cout << "Hello, SKNI!" << std::endl;
    - wypisanie tekstu na konsolę
  • return 0;
    - zwrócenie wartości 0, co oznacza poprawne zakończenie programu

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
# c++
# programowanie
# tutorial
# podstawy