Podstawy C++
Programowanie w języku C++ od zera: pierwszy program, zmienne i typy, operatory, warunki, pętle, funkcje i tablice. Kod uruchamia się i sprawdza w przeglądarce (porównanie wypisanego tekstu). Na koniec praktyczny projekt: wieczny kalendarz liczony samym algorytmem, bez żadnych bibliotek.
Dla kogo: Liceum i technikum: podstawy C++ pod INF.04 i maturę. Więcej o kursie
Pierwszy program i wypisywanie
Każdy program w C++ ma nagłówek #include <iostream> i funkcję main. cout << wypisuje tekst (w cudzysłowie) i liczby. endl albo "\n" przechodzi do nowej linii. Instrukcje kończymy średnikiem.
- Pierwszy program: Witaj, świecie
- Wypisz napis Cześć
- Wypisz powitanie Dzień dobry
- cout z liczbą: wypisz rok 2026
- Wypisz liczbę 100
- Wypisz liczbę 7 na ekranie
- Kilka instrukcji cout w osobnych liniach
- Trzy linie: Raz, Dwa, Trzy
- Dwie linie: imię i nazwisko
- Łączenie tekstu i liczby operatorem <<
- Tekst z liczbą: Mam 10 lat
- Tekst z liczbą: cena 25 zł
- Znak nowej linii zamiast endl
- Znak nowej linii: Kot i Pies w dwóch liniach
- Znak nowej linii: liczby 1, 2, 3 w jednym cout
- Wypisywanie działań z wynikiem
- Wypisz działanie 4 * 5 = 20
- Dwa działania: 1 + 1 i 2 + 2
- ASCII-art: piramidka z gwiazdek
- ASCII-art: litera T z gwiazdek
- ASCII-art: prostokąt z dwóch linii gwiazdek
- ASCII-art: domek z ukośników i kresek
Zmienne i typy
Zmienna przechowuje wartość i ma nazwę. Typ mówi, co to za dane: int (liczby całkowite), double (liczby z przecinkiem), char (pojedynczy znak), bool (prawda/fałsz). Tworzymy ją tak: typ nazwa = wartość; Wartość zmiennej można później zmienić.
- Zmienna int: wiek ucznia
- Zmienna int liczba równa 7
- Zmienna int: rok 2026
- Typ double: cena z częścią ułamkową
- Zmienna double: waga 60.5
- Zmienna double: temperatura 21.5
- Typ char: jeden znak w apostrofach
- Zmienna char: znak Z
- Zmienna char: moja ocena 6
- Typ bool: prawda i fałsz jako 1 i 0
- Zmienna bool z wartością false
- Zmienna bool z wynikiem porównania 5 > 3
- Zmiana wartości zmiennej przypisaniem
- Przypisanie: punkty z 0 na 50
- Przypisanie: licznik 1, 2, 3
- Suma dwóch zmiennych int
- Pole prostokąta ze zmiennych
- Różnica dwóch zmiennych
- Stała const PI: obwód koła
- Stała DNI_TYGODNIA: dni w 4 tygodniach
- Stała PI: pole koła o promieniu 10
Operatory i arytmetyka
C++ liczy: + dodaje, - odejmuje, * mnoży, / dzieli. Uwaga: dzielenie dwóch liczb całkowitych daje wynik całkowity (7 / 2 to 3). Operator % daje resztę z dzielenia. Mnożenie i dzielenie mają pierwszeństwo przed dodawaniem - kolejność zmieniamy nawiasami.
- Cztery działania i dzielenie całkowite
- Działania na liczbach 8 i 2
- Mnożenie 12 * 12
- Dzielenie całkowite a dzielenie z ułamkiem
- Porównaj 9 / 2 i 9.0 / 2
- Dzielenie z ułamkiem: 10.0 / 4
- Operator %: reszta z dzielenia 17 przez 5
- Reszta z dzielenia 23 przez 4
- Parzystość liczby operatorem %
- Kolejność działań i nawiasy
- Nawiasy: 10 - 2 * 3 kontra (10 - 2) * 3
- Średnia trzech liczb 4, 6, 8
- Średnia dwóch ocen ze zmiennych
- Suma, różnica, iloczyn i iloraz zmiennych
- Pole i obwód kwadratu o boku 6
- Skróty x++ i x += 10
- Zmniejszanie: wynik-- i wynik -= 50
- Skróty += i *= na monetach
- Biblioteka cmath: sqrt i pow
- Pierwiastek kwadratowy z 81
- Potęga: 3 do czwartej przez pow
Warunki: if, else, switch
Program może podejmować decyzje. if (warunek) wykonuje kod, gdy warunek jest prawdziwy; else - gdy fałszywy. Warunki budujemy operatorami porównania (== równe, != różne, < > <= >=) i logicznymi (&& oraz, || lub, ! nie). Operator ? : to skrócony wybór, a switch wybiera jedną z wielu opcji.
- Instrukcja if: czy liczba jest duża
- if: czy osoba jest pełnoletnia
- if: czy jest gorąco
- if i else: liczba parzysta czy nieparzysta
- if i else: parzystość liczby 9
- if i else: zaliczone czy niezaliczone
- else if: ocena super, ok lub słabo
- Liczba dodatnia, ujemna czy zero
- Pora dnia: rano, popołudnie, wieczór
- Operator &&: czy wiek nastolatka
- Warunek &&: czy liczba to cyfra dodatnia
- Warunek ||: weekend czy dzień roboczy
- Operator ? : skrócony if-else
- Operator ? : duża czy mała liczba
- Operator ? : większa z dwóch liczb
- switch: nazwa dnia tygodnia
- switch: słowna nazwa oceny
- switch: nazwa miesiąca
- Samogłoska czy spółgłoska: znak e
- Rozpoznaj samogłoskę o
- Rozpoznaj spółgłoskę k
Pętla for
Pętla for powtarza kod ustaloną liczbę razy. Zapis for (int i = 1; i <= 5; i++) znaczy: zacznij od i = 1, powtarzaj dopóki i <= 5, po każdym obrocie zwiększ i o 1. Zmienną i (licznik) można użyć w środku pętli.
- Pętla for: liczby od 1 do 5
- Pętla for: liczby od 1 do 10 w linii
- Pętla for: liczby od 1 do 7 w kolumnie
- Suma liczb od 1 do 100 w pętli
- Suma liczb od 1 do 10
- Suma liczb od 1 do 50
- Krok pętli 2: liczby parzyste do 20
- Liczby nieparzyste od 1 do 19
- Wielokrotności 5 od 5 do 50
- Pętla malejąca: odliczanie od 10 do 1
- Odliczanie od 5 do startu
- Liczby od 20 do 10 malejąco
- Silnia 5 w pętli for
- Silnia liczby 6 w pętli
- Potęga dwójki: 2 do ósmej w pętli
- Pętle zagnieżdżone: prostokąt z gwiazdek
- Prostokąt 4 na 6 z gwiazdek
- Kwadrat 5 na 5 z gwiazdek
- Pętla z if: liczby podzielne przez 3
- Liczby od 1 do 50 podzielne przez 5
- Ile liczb do 100 dzieli się przez 4
Pętle while i do-while
while (warunek) powtarza kod, dopóki warunek jest prawdziwy - sami dbamy o zmianę licznika w środku, inaczej pętla nie skończy się. do-while wykonuje kod najpierw raz, a warunek sprawdza na końcu. break przerywa pętlę, continue przeskakuje do następnego obrotu.
- Pętla while: liczby od 1 do 5
- while: liczby od 1 do 8
- while: suma liczb od 1 do 20
- while: ile razy podzielić 100 przez 2
- Ile dzieleń przez 2 od 64 do 1
- Ile wypłat po 7 zł z salda 50
- Pętla do-while: liczby od 1 do 5
- do-while: liczby od 1 do 6
- do-while: odliczanie od 3 do 1
- Instrukcja break: przerwanie przy 5
- break: liczby do 7 przed przerwaniem
- break: sumowanie aż suma przekroczy 20
- Instrukcja continue: pomijanie parzystych
- continue: pomiń wielokrotności 3
- continue: nieparzyste od 1 do 15
- Największa potęga 2 mniejsza od 1000
- Największa potęga 3 mniejsza od 1000
- Ile kolejnych liczb daje sumę 100
- Algorytm sumy cyfr liczby 1234
- Suma cyfr liczby 567
- Ile cyfr ma liczba 90000
Funkcje
Funkcja to nazwany kawałek kodu, który możemy wywołać wiele razy. Zapis int kwadrat(int x) znaczy: funkcja kwadrat bierze liczbę x i zwraca (return) liczbę. Funkcja typu void nic nie zwraca - tylko coś robi (np. wypisuje). Funkcje piszemy NAD main i wywołujemy w main.
- Funkcja kwadrat zwracająca x * x
- Funkcja sześcian liczby
- Funkcja podwajająca liczbę
- Funkcja z dwoma parametrami: suma
- Funkcja pole prostokąta
- Funkcja różnica dwóch liczb
- Funkcja void: powitanie na ekranie
- Funkcja void rysująca linię myślników
- Funkcja void z parametrem: wypisz liczbę
- Funkcja max: większa z dwóch liczb
- Funkcja mniejsza z dwóch liczb
- Funkcja wartość bezwzględna
- Funkcja z pętlą: silnia
- Funkcja z pętlą: suma od 1 do n
- Funkcja potęga liczona w pętli
- Rekurencja: silnia rekurencyjnie
- Rekurencyjna suma od 1 do n
- Rekurencyjna potęga dwójki
- Funkcja bool: czy liczba parzysta
- Funkcja bool: czy większa od 100
- Funkcja bool: czy podzielna przez 5
Tablice
Tablica przechowuje wiele wartości pod jedną nazwą. int t[5] to pięć komórek o numerach (indeksach) od 0 do 4. Do komórki sięgamy przez t[indeks]. Tablice zwykle przeglądamy pętlą for. Można też mieć tablicę dwuwymiarową (siatkę).
- Tablica: indeksy od 0 i odczyt komórek
- Tablica: drugi i ostatni element
- Tablica: zmiana środkowej oceny
- Przeglądanie tablicy pętlą for
- Wypisz tablicę liczb nieparzystych
- Wypełnij tablicę kwadratami liczb
- Suma elementów tablicy
- Suma elementów tablicy 7, 3, 8, 2
- Średnia elementów tablicy
- Szukanie największego elementu tablicy
- Największy element tablicy sześciu liczb
- Najmniejszy element tablicy
- Tablica jako parametr funkcji: suma
- Funkcja zliczająca parzyste w tablicy
- Funkcja zwracająca maksimum tablicy
- Tablica dwuwymiarowa 2 na 3
- Suma liczb w siatce 2 na 2
- Siatka 3 na 3 z samych jedynek
- Tablica od końca: odwrócona kolejność
- Wypisz tablicę od końca: 40 30 20 10
- Ile elementów tablicy jest większych od 5
Wzory i ASCII-art
Pętle (zwłaszcza zagnieżdżone) świetnie rysują wzory ze znaków. Zewnętrzna pętla liczy wiersze, wewnętrzna - co wypisać w wierszu. Zmieniając, ile znaków ma każdy wiersz, tworzymy trójkąty, choinki i tabliczkę mnożenia.
- Linia z 10 gwiazdek
- Linia z 15 gwiazdek
- Linia z 20 znaków plus
- Trójkąt rosnący z gwiazdek
- Trójkąt rosnący z 7 wierszy
- Trójkąt rosnący z jedynek
- Trójkąt malejący z gwiazdek
- Trójkąt malejący z 6 wierszy
- Trójkąt malejący ze znaków #
- Schodki: ukośna linia z gwiazdek
- Ukośna linia z 6 wierszy
- Odwrócone schodki: ukośna w drugą stronę
- Choinka: trójkąt wyśrodkowany
- Mała choinka z 4 wierszy
- Większa choinka z 6 wierszy
- Tabliczka mnożenia 3 na 3
- Tabliczka mnożenia 5 na 5
- Trójkąt liczbowy od 1 do w
- Ramka kwadratowa z gwiazdek
- Ramka z gwiazdek 5 na 5
- Ramka prostokątna 4 na 6
Projekt: wieczny kalendarz
Połączymy poznane narzędzia w prawdziwy projekt: kalendarz BEZ żadnych bibliotek - tylko algorytm. Krok po kroku zbudujemy go z przykładów: rozpoznanie roku przestępnego, liczba dni w miesiącu, wyliczenie dnia tygodnia przez policzenie wszystkich dni od początku, aż po wypisanie kalendarza miesiąca. Na końcu zadania: odtwórz po kolei te algorytmy. Założenie: 1 stycznia roku 1 to poniedziałek (numer 0), a numery dni: 0 = poniedziałek, ..., 6 = niedziela.
- Czy rok jest przestępny
- Liczba dni w miesiącu z tablicy
- Liczba dni w roku: 365 czy 366
- Dzień tygodnia: liczenie dni od roku 1
- Nazwa dnia tygodnia z tablicy znaków
- Kalendarz miesiąca jako siatka dni
- Kalendarz na wrzesień 2026
- Odtwórz funkcję roku przestępnego
- Odtwórz funkcję dni w miesiącu
- Odtwórz algorytm dnia tygodnia
- Jaki dzień tygodnia był 1 stycznia 2026
- Wypisz kalendarz na styczeń 2026