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ć
coutz operatorem<<,endli znakami specjalnymi\n,\t,\"; - zadeklarować zmienną typu
inti wypisać wynik działania; - przeczytać komunikat błędu kompilatora i znaleźć wiersz z błędem.
| Czas | Praca na lekcji |
|---|---|
| 0–5 min | Problem: czym różni się język kompilowany od interpretowanego? |
| 5–15 min | Szkielet programu, kompilacja, cout |
| 15–22 min | Zmienne int, znaki specjalne |
| 22–37 min | Trzy zadania samodzielne |
| 37–42 min | Czytanie komunikatów błędów |
| 42–45 min | Pytania 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ćcoutzamiaststd::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
| Objaw | Co sprawdzić |
|---|---|
error: expected ';' before 'return' | Brakuje średnika na końcu poprzedniej instrukcji — szukaj w wierszu nad wskazanym. |
error: 'cout' was not declared in this scope | Brakuje using namespace std; (albo trzeba pisać std::cout) lub #include <iostream>. |
error: 'y' was not declared in this scope | Uż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 wyniku | Po zmianie pliku trzeba go ponownie skompilować. |
| Zamiast polskich liter są dziwne znaki | Konsola używa innego kodowania; w pierwszych programach pisz bez polskich znaków. |
Pytania kontrolne i punktacja
- Czym różni się kompilacja od uruchomienia?
- Co robi instrukcja
return 0;na końcumain? - 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++ →