C++ · pierwsza lekcja

C++ od podstaw — pierwsza lekcja z kompilacją programu

Pierwszy program w C++: szkielet, kompilacja g++, cout i zmienne int. Trzy zadania, wyniki i komunikaty błędów kompilatora.

45 minutPoziom podstawowyPliki i rozwiązania

Materiał redakcyjny TablicaPro · liceum i technikum

g++ -std=c++17 -Wall start.cpp -o program
./program
Witaj, swiecie!
Program skompilowany i uruchomiony.

W Pythonie program uruchamiamy od razu, a w C++ najpierw trzeba go skompilować: kompilator zamienia tekst programu na plik wykonywalny, a dopiero ten plik się uruchamia. Na pierwszej lekcji uczniowie piszą trzy krótkie programy, kompilują je, oglądają komunikaty błędów i poznają szkielet każdego programu w C++: #include, main i cout.

Scenariusz jest przeznaczony na 45 minut dla klasy, która zna ideę programu i zmiennej — na przykład z pierwszej lekcji Pythona. Wszystkie przykłady zostały skompilowane i uruchomione kompilatorem g++ 15.2; w kodzie używamy liter bez polskich znaków, bo okno konsoli w Windows bywa ustawione na inne kodowanie.

Przygotowanie stanowisk

Potrzebny jest kompilator C++ (na przykład g++ z MinGW-w64, Code::Blocks lub Dev-C++) i edytor tekstu. Rozpakuj pakiet z sekcji materiałów do osobnego folderu. W folderze projektu skompiluj program poleceniem g++ -std=c++17 -Wall start.cpp -o program, a potem uruchom go: ./program (Linux, macOS) albo program.exe (Windows). W środowisku z przyciskiem Build and Run (Code::Blocks) wystarczy otworzyć plik .cpp i je użyć. Rozwiązanie jest w pliku rozwiazanie.cpp, zadanie dla chętnych — w rozszerzenie.cpp.

Cele i plan lekcji

Po zajęciach uczeń potrafi:

  • opisać drogę od tekstu programu do uruchomienia (edycja, kompilacja, uruchomienie);
  • napisać i skompilować program ze szkieletem #include <iostream>, using namespace std;, main;
  • użyć cout z operatorem <<, endl i znakami specjalnymi \n, \t, \";
  • zadeklarować zmienną typu int i wypisać wynik działania;
  • przeczytać komunikat błędu kompilatora i znaleźć wiersz z błędem.
CzasPraca na lekcji
0–5 minProblem: czym różni się język kompilowany od interpretowanego?
5–15 minSzkielet programu, kompilacja, cout
15–22 minZmienne int, znaki specjalne
22–37 minTrzy zadania samodzielne
37–42 minCzytanie komunikatów błędów
42–45 minPytania kontrolne

Od tekstu do programu

Program w C++ powstaje w trzech krokach: edycja (plik .cpp), kompilacja (g++ -std=c++17 -Wall start.cpp -o program) i uruchomienie (./program albo program.exe). Jeśli kompilator znajdzie błąd, plik wykonywalny nie powstaje, a komunikat podaje numer wiersza. Opcja -Wall włącza ostrzeżenia o podejrzanych miejscach w kodzie — warto kompilować z nią zawsze.

Szkielet programu

  • #include <iostream> dołącza bibliotekę wejścia i wyjścia (cout, cin);
  • using namespace std; pozwala pisać cout zamiast std::cout;
  • int main() { ... } to funkcja, od której zaczyna się program; kończy ją return 0;;
  • każdą instrukcję kończy średnik.

Wypisywanie i zmienne

cout << wartosc; wypisuje tekst lub liczbę, a kolejne << dokładają następne elementy. endl kończy wiersz (to samo robi "\n" w tekście). Zmienną całkowitą deklarujemy jako int nazwa = wartosc;. W tekście \" oznacza cudzysłów, a \t tabulator.

Zadania

Zadanie 1. Pierwszy program. Skompiluj start.cpp, uruchom go i dopisz drugi wiersz tekstu Pierwszy program w C++.

Zadanie 2. Zmienne. Zadeklaruj int dlugosc = 8; i int szerokosc = 5;. Wypisz pole i obwód prostokąta, każdy w osobnym wierszu.

Zadanie 3. Znaki specjalne. Wypisz tekst z cudzysłowem "C++", dwa wiersze jednym cout z użyciem \n oraz wiersz z tabulatorem.

Dla chętnych: zmień program tak, aby wypisywał pole i obwód kwadratu o boku 6 (plik rozszerzenie.cpp).

Rozwiązanie i wyniki

#include <iostream>
using namespace std;

int main() {
    // Zadanie 1
    cout << "Witaj, swiecie!" << endl;
    cout << "Pierwszy program w C++" << endl;

    // Zadanie 2
    int dlugosc = 8;
    int szerokosc = 5;
    cout << "Pole: " << dlugosc * szerokosc << endl;
    cout << "Obwod: " << 2 * (dlugosc + szerokosc) << endl;

    // Zadanie 3
    cout << "Tekst w cudzyslowie: \"C++\"" << endl;
    cout << "Linia 1\nLinia 2\n";
    cout << "Tabulator:\tkolumna" << endl;
    return 0;
}

Program wypisze:

Witaj, swiecie!
Pierwszy program w C++
Pole: 40
Obwod: 26
Tekst w cudzyslowie: "C++"
Linia 1
Linia 2
Tabulator:	kolumna

Zadanie dla chętnych (rozszerzenie.cpp):

#include <iostream>
using namespace std;

int main() {
    int bok = 6;
    cout << "Kwadrat o boku " << bok << endl;
    cout << "Pole: " << bok * bok << endl;
    cout << "Obwod: " << 4 * bok << endl;
    return 0;
}

Wynik:

Kwadrat o boku 6
Pole: 36
Obwod: 24

Programy kompilowano kompilatorem g++ 15.2 z opcjami -std=c++17 -Wall -Wextra, bez ostrzeżeń.

Typowe błędy

ObjawCo sprawdzić
error: expected ';' before 'return'Brakuje średnika na końcu poprzedniej instrukcji — szukaj w wierszu nad wskazanym.
error: 'cout' was not declared in this scopeBrakuje using namespace std; (albo trzeba pisać std::cout) lub #include <iostream>.
error: 'y' was not declared in this scopeUżyto zmiennej, której nie zadeklarowano — literówka w nazwie albo brak deklaracji.
Program się skompilował, ale nic nie widaćOkno konsoli zamknęło się po zakończeniu programu; uruchom go z terminala.
Zmiany w kodzie nie widać w wynikuPo zmianie pliku trzeba go ponownie skompilować.
Zamiast polskich liter są dziwne znakiKonsola używa innego kodowania; w pierwszych programach pisz bez polskich znaków.

Pytania kontrolne i punktacja

  1. Czym różni się kompilacja od uruchomienia?
  2. Co robi instrukcja return 0; na końcu main?
  3. Dlaczego po zmianie kodu trzeba ponownie skompilować program?

Odpowiedzi: Kompilacja zamienia tekst programu na plik wykonywalny, a uruchomienie wykonuje ten plik. Kończy program i zgłasza systemowi, że zakończył się poprawnie. Bo uruchamiany jest plik wykonywalny, który nie zmienia się sam po edycji pliku .cpp.

Proponowana punktacja (razem 10 punktów): zadanie 1 — kompilacja i uruchomienie 1 pkt, drugi wiersz 1 pkt; zadanie 2 — deklaracje 1 pkt, pole 1 pkt, obwód 1 pkt; zadanie 3 — cudzysłów 1 pkt, \n 1 pkt, tabulator 1 pkt; pytania kontrolne 1 pkt. Zadanie dla chętnych nie jest wymagane do pełnej oceny.

Materiały do pobrania

Rozpakuj ZIP przed otwarciem plików. Materiały są dostępne bez logowania; publiczne rozwiązanie służy nauce i samodzielnemu sprawdzeniu, a nie poufnemu sprawdzianowi.

Co dalej?

Następny krok to wczytywanie danych z klawiatury przez cin. Ten materiał rozpoczyna dział o podstawach programowania w kursie C++ w TablicaPro, gdzie znajdziesz prezentacje, ćwiczenia i testy do prowadzenia lekcji.

Źródła techniczne: cplusplus.com: tutorial oraz cppreference.com. Zobacz też pierwszą lekcję Pythona.

Poprowadź kolejne lekcje C++

Pełny kurs: prezentacje, ćwiczenia i testy do pracy z klasą.

Kup dostęp do kursu C++ →

Zobacz program kursu