Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 33

Julian Stanicki

Język programowania
C++ i jego zastosowania
Czym jest C++?

 C++ to wysokopoziomowy język programowania ogólnego przeznaczenia, który


został stworzony w latach 80. XX wieku jako rozszerzenie języka C. C++
pozwala na pisanie skomplikowanych programów, które są łatwiejsze do
zrozumienia i utrzymania dzięki użyciu obiektowej metodologii programowania.
 C++ jest językiem kompilowanym, co oznacza, że kod źródłowy jest
kompilowany na kod maszynowy przez specjalny program nazywany
kompilatorem. Język ten posiada wiele funkcji, takich jak dziedziczenie,
polimorfizm, szablony, przeciążanie operatorów, obsługa wyjątków i wiele
innych, które pozwalają na pisanie skomplikowanych aplikacji.
 C++ jest szeroko stosowany w tworzeniu oprogramowania systemowego, gier
komputerowych, programów graficznych i wielu innych aplikacji. Język ten
ma również wiele popularnych bibliotek, takich jak Standardowa Biblioteka C++,
która zawiera wiele gotowych funkcji i narzędzi do pisania programów.
Zalety języka C++ nad C.

 C++ jest rozszerzeniem języka C, co oznacza, że dziedziczy wiele zalet języka C, takich jak szybkość,
wydajność i możliwość bezpośredniego dostępu do sprzętu. Jednak C++ ma również wiele unikalnych cech,
które czynią go bardziej zaawansowanym językiem programowania w porównaniu z C. Oto kilka z nich:
1. C++ umożliwia programowanie obiektowe, co pozwala na tworzenie bardziej złożonych struktur danych i
hierarchii klas. Dzięki programowaniu obiektowemu kod jest bardziej czytelny, elastyczny i łatwiejszy do
utrzymania.
2. C++ ma zaawansowany system szablonów, który umożliwia programistom tworzenie bardziej generycznego
kodu, co prowadzi do jego ponownego wykorzystywania i uproszczenia programowania.
3. C++ umożliwia obsługę wyjątków, co pozwala na bardziej eleganckie i wydajne zarządzanie błędami w
kodzie.
4. C++ ma rozbudowany system obsługi strumieni wejścia/wyjścia, który umożliwia łatwe i wygodne
przetwarzanie danych wejściowych i wyjściowych.
5. C++ posiada wiele narzędzi i bibliotek do programowania równoległego, co umożliwia pisanie aplikacji,
które korzystają z wielu wątków i procesów uruchomionych jednocześnie.
6. C++ jest w pełni kompatybilny z językiem C, co oznacza, że istnieje możliwość używania kodu napisanego
w języku C w programach napisanych w języku C++.
Pierwszy szablonowy program.

 To jest przykład programu w C++, który nie wykonuje żadnej istotnej


czynności oprócz uruchomienia i zwrócenia wartości 0.

#include <iostream>

int main() {

return 0;
}

 Zapewne jeszcze nie wiecie, co oznaczają te instrukcje. Wyjaśnię to w


dalszej części prezentacji.
Pierwszy działający program z
komentarzami tłumaczącymi polecenia.
 Po dodaniu komendy std::cout wywołującej wyświetlenie na ekranie
informacji „Hello, World!”, program prezentuje się tak:
// Dodaje podstawową bibliotekę. Bez
#include <iostream> niej, program by nie zadziałał.
int main() { // Rozpoczęcie funkcji main(), czyli
std::cout << "Hello, World!"; samego programu.
// Używając biblioteki standardowej std i
return 0; komendy cout, napis „Witaj świecie!”
} pokazuje się na ekranie, a następnie
funkcja main() zwraca wartość 0, czyli
program zakańcza działanie.
Dlaczego każdy program kończy się na
„return 0;”?
 W języku C++ wyjście z funkcji main powinno zawsze zwrócić wartość
określającą status zakończenia programu. W przypadku gdy wartość ta wynosi
0, oznacza to, że program zakończył się bez problemów. Inną wartość
zwracaną może być np. 1, która oznacza, że program zakończył się z błędem
lub -1, jeśli wystąpił poważny błąd krytyczny.
 Pisanie return 0 na końcu funkcji main jest dobrym nawykiem
programistycznym i stanowi dobry zwyczaj, co pozwala na jednoznaczne
określenie stanu zakończenia programu. Chociaż niektóre kompilatory C++
pomijają ten kod, to jednak jego dodanie jest ważne z perspektywy
czytelności i zgodności z konwencją języka.
Czym są komentarze?

 Przedstawiony w poprzednim przykładzie kod posiadał dopiski używające


dwóch symboli ‚/’. Czym one są?
 Komentarze w języku C++ służą do dodawania opisów lub wyjaśnień w
kodzie programu, które nie są wykonywane przez kompilator. Kompilator
pomija całą treść komentarzy, a więc nie wpływają one na działanie
programu.
 W języku C++ istnieją dwa rodzaje komentarzy: komentarze jednolinijkowe,
które rozpoczynają się od dwóch ukośników (//) i kończą się na końcu linii,
oraz komentarze wielolinijkowe, które rozpoczynają się od znacznika ‚/*’ i
kończą się znacznikiem ‚*/’.
#include oraz biblioteki – najważniejsze
części programu.
 Komenda #include to preprocesorowa dyrektywa w języku C++, która informuje
kompilator, że plik źródłowy programu zawiera dodatkowe definicje, deklaracje,
biblioteki lub nagłówki, które muszą zostać wczytane przed kompilacją kodu.
 Słowo "include" oznacza "dołącz" lub "wstaw", więc w praktyce komenda #include
wskazuje kompilatorowi, aby dołączył określony plik, zazwyczaj z
rozszerzeniem .h lub .hpp, do pliku źródłowego, który jest obecnie kompilowany.
 W naszych projektach będziemy głównie używać biblioteki iostream (podstawowe
funkcje), unistd.h (dodatkowe funkcje standardowe) oraz cmath.h (matematyka).
 Podsumowując, komenda #include jest niezwykle ważna w języku C++, ponieważ
umożliwia programistom korzystanie z gotowych definicji, bibliotek i funkcji, co
ułatwia i przyspiesza proces programowania.
Typy danych w języku C++.
Typ danych Zakres wartości
 Oto posortowana według wielkości lista
bool false (0) lub true (1)
typów danych w języku C++ z
unsigned char 0 do 255
przykładowymi minimalnymi i
char -128 do 127
maksymalnymi wartościami dla unsigned short 0 do 65535
implementacji kompilatora MinGW: short -32768 do 32767
 Warto zauważyć, że w przypadku typów unsigned int 0 do 4294967295
int -2147483648 do 2147483647
całkowitoliczbowych z wartością dodatnią (np. short,
unsigned long 0 do 4294967295
int oraz long), im większy typ, tym większy zakres
long -2147483648 do 2147483647
wartości, który może przechowywać. Natomiast dla
unsigned long long 0 do 18446744073709551615
typów zmiennoprzecinkowych (np. float, double i ich
-9223372036854775808 do
warianty), wraz ze wzrostem typu rośnie dokładność long long
9223372036854775807
reprezentacji liczby, ale kosztem większego float około 1.2E-38 do 3.4E+38
rozmiaru. Słowo kluczowe unsigned oznacza wartość, double około 2.2E-308 do 1.8E+308
która nie może być mniejsza od 0. long double około 3.4E-4932 do 1.1E+4932
Komenda cout i cin – wyjście i wejście
do konsoli. (część 1/2)
 Komenda cout to obiekt strumieniowy w języku C++, które jest zdefiniowany w
bibliotece standardowej iostream. Polecenie cout służy do wyjścia danych na ekran.
 Komenda cout jest często używana do wyświetlania tekstu lub wartości zmiennych
na ekranie. Aby wyświetlić tekst lub wartość zmiennej za pomocą cout, używa się
operatora <<. Przykładowy kod wykorzystujący cout do wyświetlenia tekstu na
ekranie wyglądałby tak:
#include <iostream>

int main() {
std::cout << "Witaj świecie!";
return 0;
}
 W następnym slajdzie omówię komendę cin.
Komenda cout i cin – wyjście i wejście
do konsoli. (część 2/2)
 Komenda cin z kolei jest używana do wczytywania danych z klawiatury. Aby
wprowadzić dane z klawiatury do zmiennej za pomocą cin, używa się
operatora >>. Przykładowy kod wykorzystujący cin do wprowadzenia wartości
do zmiennej, a potem wyświetlenia jej na ekranie wyglądałby tak:
#include <iostream>

int main() {
int liczba;
std::cout << "Podaj liczbę całkowitą: ";
std::cin >> liczba;
std::cout << "Wprowadzona liczba to: " << liczba << std::endl;
return 0;
}
Wyjście/wejście oraz proste obliczenia
matematyczne w języku C++.
 Oto przykładowy program w języku C++, który oblicza pole trójkąta na podstawie boków o długości a, b i h:
#include <iostream>
int main() {
int a, b, h, pole;

std::cout << "Podaj długość boku a: ";


std::cin >> a;

std::cout << "Podaj długość boku b: ";


std::cin >> b;

std::cout << "Podaj wysokość h: ";


std::cin >> h;

pole = (a + b) * h / 2;
std::cout << "Pole trójkąta wynosi: " << pole << std::endl;

return 0;
}
Komenda if – omówienie polecenia.
(część 1/3)
 Komenda "if" w języku C++ służy do wprowadzenia instrukcji warunkowej. Instrukcja
warunkowa pozwala na wykonanie określonych instrukcji tylko wtedy, gdy spełniony
jest określony warunek. Składnia instrukcji warunkowej w języku C++ wygląda
następująco:

if (warunek) {
// instrukcje do wykonania, gdy warunek jest spełniony
} else {
// instrukcje do wykonania, gdy warunek nie jest spełniony
}
 Jeśli warunek jest spełniony, to wykonane zostaną instrukcje znajdujące się w bloku
kodu po słowie kluczowym "if". Jeśli warunek nie jest spełniony, to wykonane zostaną
instrukcje znajdujące się w bloku kodu po słowie kluczowym "else". Instrukcje po
słowie kluczowym "else" są opcjonalne, czyli nie muszą występować w instrukcji.
Komenda if – omówienie polecenia.
(część 2/3)
 Możliwe jest również zagnieżdżanie wielu instrukcji warunkowych. W tym
celu używamy słowa kluczowego "else if", które pozwala na sprawdzenie
kolejnego warunku, gdy poprzednie nie zostało spełnione. Składnia
wygląda następująco:
if (warunek1) {
// instrukcje do wykonania, gdy warunek1 jest spełniony
} else if (warunek2) {
// instrukcje do wykonania, gdy warunek2 jest spełniony
} else {
// instrukcje do wykonania, gdy żaden z warunków nie jest spełniony
}
Komenda if – omówienie polecenia.
(część 3/3)
 W przykładzie z poprzedniego slajdu, jeśli warunek1 jest spełniony, to
wykonane zostaną instrukcje po słowie kluczowym "if". Jeśli warunek1 nie
jest spełniony, to sprawdzany jest warunek2. Jeśli warunek2 jest
spełniony, to wykonane zostaną instrukcje po słowie kluczowym "else if".
Jeśli ani warunek1, ani warunek2 nie są spełnione, to wykonane zostaną
instrukcje po słowie kluczowym "else".
 W dalszej części prezentacji użyję polecenia if w praktyce.
Komenda if – przykład użycia.
(część 1/2)
 Oto przykład użycia komendy if w języku C++. Program poprosi użytkownika o podanie
liczby i sprawdzi, czy jest ona większa od zera.
#include <iostream>

int main() {
int liczba;

cout << "Podaj liczbe: ";


cin >> liczba;

if (liczba > 0) {
cout << "Liczba jest wieksza od zera." << endl;
}

return 0;
}
Komenda if – przykład użycia.
(część 2/2)
 W powyższym przykładzie, po wczytaniu wartości liczby przez użytkownika,
program sprawdza, czy liczba jest większa od zera. Jeśli tak, to wyświetla
komunikat "Liczba jest wieksza od zera." na ekranie. W przeciwnym wypadku,
program nic nie robi, ponieważ przechodzi do polecenia „return 0;”.
 Następnie w prezentacji omówię pętle for oraz while.
Pętla for – omówienie polecenia.

 Pętla for w języku C++ działa w następujący sposób:


1. Określamy zmienną, która będzie licznikiem pętli oraz jej początkową
wartością.
2. Określamy warunek, który musi być spełniony, aby pętla wykonywała się
dalej.
3. Określamy operację, która ma być wykonywana po każdej iteracji pętli.
4. W bloku pętli for umieszczamy kod, który ma być wykonywany wielokrotnie.

 Przykład użycia pętli for w języku C++ zostanie zaprezentowany w kolejnym


slajdzie.
Pętla for – przykład użycia.

 Przykład użycia pętli for w języku C++:


for (int i = 1; i <= 10; i++) {
std::cout << i << std::endl;
}

 W tym przypadku zmienna i jest licznikiem pętli, jej początkowa wartość


wynosi 1, a warunek pętli jest taki, że pętla będzie się wykonywała dopóki i
<= 10. Wyświetla ona wartość zmiennej i na ekranie co każdą iterację (od 1
do 10). Po każdej z nich zmienna i jest zwiększana o 1.
 std::endl – zakończenie linii. To taka sama czynność, jak naciśnięcie Enter
podczas pisania. Zaczynasz wtedy pisać od nowej linii.
Pętla while – omówienie polecenia.

 Pętla while w języku C++ działa w następujący sposób:


1. Określamy warunek, który musi być spełniony, aby pętla wykonywała się
dalej.
2. W bloku pętli while umieszczamy kod, który ma być wykonywany
wielokrotnie.
3. W bloku pętli while musimy zmienić wartość zmiennej, która jest użyta w
warunku pętli, aby pętla mogła kiedyś zakończyć swe działanie.

 Przykład użycia pętli while w języku C++ zostanie zaprezentowany w


kolejnym slajdzie.
Pętla while – przykład użycia.

 Przykład użycia pętli while w języku C++:


int i = 1;
while (i <= 10) {
std::cout << i << std::endl;
i++;
}

 W tym przypadku warunek pętli jest taki, że pętla będzie się wykonywała
dopóki i <= 10. Wyświetla ona samą wartość zmiennej, tak jak w poprzednim
przykładzie. Po każdej iteracji zmienna i jest zwiększana o 1.
 Praktycznie pętla ta wykonuje to samo co ta podana w przykładzie pętli for,
ale warto znać obie pętle, ponieważ mogą się przydać w różnych sytuacjach.
Komenda sleep() w teorii.

 Ucząc się języka C++ warto poznawać nowe komendy, które są wbudowane
w biblioteki standardowe, ponieważ może to rozszerzyć twoje możliwości.
Jedną z takich przydatnych komend jest sleep().
 Komenda sleep() w języku C++ z biblioteki unistd.h powoduje, że program
zawiesza swoje działanie na określony czas, wyrażony w sekundach. W
momencie, gdy wykonanie programu napotyka komendę sleep(), program
zostaje zawieszony na określoną liczbę sekund, a następnie wraca do
swojego normalnego działania.
 Dla przykładu, jeśli użyjemy funkcji sleep(5), to program „odpocznie” na 5
sekund, a następnie powróci do swojego działania. Jest to przydatne w
przypadku, gdy chcemy, aby program zaczekał na jakąś akcję, np. zanim
wykonamy kolejną operację.
Komenda sleep() w praktyce.

 W tym przykładzie, który jest zmodyfikowanym przykładem działania pętli while dodałem komendę
sleep(1) w każdej iteracji pętli, co spowoduje, że program zaczeka 1 sekundę przed wypisaniem
kolejnej liczby.
#include <iostream>
#include <unistd.h>

int main() {
int i = 1;
while (i <= 10) {
std::cout << i << std::endl;
sleep(1); // opóźnienie 1 sekundy
i++;
}
}

 Ta sama zasada działania aplikuje się z pętlą for.


Tablice w języku C++.
(część 1/2)
 Tablice w języku C++ to struktury danych, które umożliwiają przechowywanie wielu wartości tego
samego typu pod jedną zmienną. Tablice mogą być jednowymiarowe lub wielowymiarowe.
Tablice wielowymiarowe jednak są ponadprogramowe dla uczniów 8 klasy. Będziemy dlatego
używać tablic jednowymiarowych. Do odwoływania się do poszczególnych elementów tablicy
używa się indeksów.
 Przykładowo, możemy stworzyć tablicę przechowującą 5 liczb całkowitych w następujący sposób:
int tablica[5];
 Tablica ta ma 5 elementów, które numerowane są od 0 do 4, ponieważ indeksy w tablicach w C++
zaczynają się od 0. Możemy przypisać wartości poszczególnym elementom tablicy w następujący
sposób:
tablica[0] = 10;
tablica[1] = 20;
tablica[2] = 30;
tablica[3] = 40;
tablica[4] = 50;
Tablice w języku C++.
(część 2/2)
 Możemy również zadeklarować i zainicjować tablicę wartościami w jednym
kroku:
int tablica[5] = {10, 20, 30, 40, 50};
 Możemy odczytać wartości poszczególnych elementów tablicy za pomocą
indeksów, np.:
cout << tablica[0] << endl; // wyświetli 10
cout << tablica[2] << endl; // wyświetli 30
 Tablice są bardzo przydatnym narzędziem w programowaniu, ponieważ
pozwalają na przechowywanie i operowanie na wielu wartościach
jednocześnie.
Operatory w języku C++.

 Operatory, są takimi częściami języka, że są prawie niezauważalne. Jednak w


niektórych ćwiczeniach już ich użyliśmy. Operator to symbol lub zestaw
symboli, który wykonuje określone działanie na zmiennych lub
wyrażeniach. Oto operatory używane w C++, których my także będziemy
używać:
1. Arytmetyczne: + (dodawanie), - (odejmowanie), * (mnożenie), / (dzielenie), %
(reszta z dzielenia)
2. Porównania: == (równa się), != (nie równa się), < (mniejsze niż), > (większe
niż), <= (mniejsze bądź równe), >= (większe bądź równe)
3. Logiczne: && (i), || (lub), ! (nie)
 Są także operatory bitowe oraz operatory przypisania, ale są one zbyt
zaawansowane, aby je teraz zrozumieć.
Funkcje w C++.
(część 1/2)
 Funkcja w języku C++ to blok kodu, który wykonuje określone zadanie i
może być wywoływany w innych częściach programu. int main() także jest
funkcją, tzw. funkcją główną, ponieważ uruchamia cały program. Funkcje są
bardzo ważnym elementem języka C++, ponieważ pozwalają na
modularyzację kodu, czyli podział programu na mniejsze, łatwiejsze do
zrozumienia i zarządzania części. Funkcja składa się z nazwy, listy
argumentów (parametrów), typu zwracanego i ciała funkcji. Argumenty to
wartości, które są przekazywane do funkcji, a typ zwracany to wartość,
która jest zwracana przez funkcję po jej wykonaniu. Funkcja może być
wywoływana w dowolnym miejscu programu za pomocą jej nazwy i
przekazywanych argumentów.
Funkcje w C++.
(część 2/2)
 Oto przykład funkcji w C++:
#include <iostream>

// Deklaracja funkcji (została ona stworzona, lecz nie ma w niej kodu)


int dodaj(int a, int b);

int main() {
int x = 5, y = 7;

// Wywołanie funkcji i zapisanie wyniku do zmiennej (suma jest teraz równa dodaj(5, 7), czyli 5 + 7)
int suma = dodaj(x, y);

// Wyświetlanie wyniku, czyli w tym przypadku 12


std::cout << "Wynik dodawania: " << suma << std::endl;

return 0;
}

// Definicja funkcji (kod zwraca dwie wartości dodane do siebie)


int dodaj(int a, int b) {
return a + b;
}
Podsumowujący program.
(część 1/4)
 Na następnych slajdach wypiszę program oraz jego działanie, który używa
wszystkich omówionych wcześniej tematów i zagadnień. Program ten:
1. Deklaruje tablicę o rozmiarze 5 i wypełnia ją liczbami pobieranymi od
użytkownika za pomocą pętli for oraz cin z sekundowym opóźnieniem.
2. Wyświetla zawartość tablicy za pomocą pętli for oraz cout.
3. Oblicza sumę liczb w tablicy za pomocą pętli for i wywołania funkcji dodaj.
4. Sprawdza, czy liczba podana przez użytkownika znajduje się w tablicy za
pomocą pętli while, operatora logicznego NOT oraz wywołania funkcji cout.
Podsumowujący program.
(część 2/4)
#include <iostream>
#include <unistd.h>

using namespace std;

// funkcja zwracająca sumę dwóch liczb


int dodaj(int a, int b) {
return a + b;
}

int main() {
int tablica[5]; // deklaracja tablicy o rozmiarze 5
int i;

// wypełnianie tablicy wartościami


for (i = 0; i < 5; i++) {
cout << "Podaj liczbe do tablicy: ";
cin >> tablica[i];
sleep(1); // opóźnienie 1 sekundy
}

// wyświetlanie zawartości tablicy


cout << "Zawartosc tablicy: ";
for (i = 0; i < 5; i++) {
cout << tablica[i] << " ";
}
cout << endl;

sleep(1);
Podsumowujący program.
(część 3/4)
[…] // obliczanie sumy liczb w tablicy
int suma = 0;
for (i = 0; i < 5; i++) {
suma = dodaj(suma, tablica[i]);
}
cout << "Suma liczb w tablicy: " << suma << endl;

sleep(1);

// sprawdzanie, czy liczba znajduje się w tablicy


int szukana;
cout << "Podaj szukana liczbe: ";
cin >> szukana;

bool czy_znaleziona = false;


i = 0;
while (i < 5) {
if (tablica[i] == szukana) {
cout << "Szukana liczba znajduje sie w tablicy na pozycji " << i << endl;
czy_znaleziona = true;
break; // przerwanie pętli
}
i++;
}
if (!czy_znaleziona) {
cout << "Szukana liczba nie znajduje sie w tablicy" << endl;
}
return 0;
}
Podsumowujący program.
(część 4/4)
 Oto efekt działania programu:

 Jeżeli program nie znajdzie danej liczby, wyświetli się „Szukana liczba nie znajduje
się w tablicy”.
Podsumowanie - Dziękuję za uwagę! 

 C++ to popularny język programowania, który jest wykorzystywany w wielu


dziedzinach dzięki swoim unikalnym cechom, takim jak wsparcie dla
programowania obiektowego, wydajność i inne.
 Jednakże, nauka C++ nie jest łatwym zadaniem, wymaga czasu i wysiłku.
Dlatego ważne jest, aby zacząć od podstaw i stopniowo poszerzać swoją
wiedzę. Praktyka i doświadczenie są kluczowe aby stać się biegłym
programistą w C++.
 Mam nadzieję, że ta prezentacja była dla Was pomocna i zachęciła do
odkrywania dalszych tajemnic tego języka programowania. C++ oferuje
różnorodne możliwości, a jedynym ograniczeniem jest Twoja wyobraźnia!
wykonał Julian Stanicki

You might also like