Żeby móc programować w C++ potrzebujemy tak zwanego środowiska IDE. Jest to akronim z angielskiego Integrated Development Environment, czyli zintegrowane środowisko deweloperskie czy programistyczne. Chodzi po prostu o to, iż jest to tak naprawdę zestaw aplikacji, czyli właśnie środowisko, który składa się z edytora, w którym piszemy kod C++ i kompilatora, czyli programu, który zamienia, tłumaczy wpisany przez nas kod C++ na kod maszynowy, czyli tak naprawdę 0 i 1, które możemy potem wysłać do procesora. Oczywiście takie środowisko składa się jeszcze z innych elementów, na przykład debugger, ale o tym powiemy sobie później. W języku polskim często nie mówi się o środowisku programistycznym, tylko wiele osób mówi po prostu, iż trzeba zainstalować kompilator. To głównie dlatego, iż jest to tak naprawdę najważniejszy element tego środowiska.
Zdobądź kompilator
https://nuwen.net/files/mingw/mingw-18.0-without-git.exe
https://www.youtube.com/embed/jla3qEnAFx0
https://www.youtube.com/embed/Kc98tH59A_U&list=PLOYHgt8dIdoxx0Y5wzs7CFpmBzb40PaDo&index=2
Artykuł zawiera wyjaśnienia użyteych elementów języka programowania C++ na podstawie przedstawionych przykładów kodu.
Elementy języka C++:
- Dyrektywy preprocesora:
#include
: Inkluduje standardową bibliotekę I/O, która pozwala na wykonywanie operacji wejścia/wyjścia, np. czytanie z konsoli i pisania do niej.#include
: Inkluduje bibliotekę matematyczną, która dostarcza funkcje matematyczne, jakstd::pow
do potęgowania czystd::sqrt
do obliczania pierwiastka kwadratowego.
- Przestrzenie nazw:
using namespace std;
: Pozwala na korzystanie z elementów przestrzeni nazwstd
bez konieczności ich poprzedzania (np.std::cout
staje sięcout
). Nie było to jednak używane w przedstawionych przykładach kodu, aby uniknąć konfliktów nazw i zwiększyć czytelność.
- Funkcje:
int main() { ... }
: Główna funkcja każdego programu w C++. Wykonanie programu zaczyna się odmain
.double degreesToRadians(double degrees) { ... }
: Funkcja zdefiniowana przez użytkownika, która przelicza stopnie na radiany.
- Zmienne i typy danych:
double
,int
: Typy danych użyte do deklarowania zmiennych.int
dla liczb całkowitych,double
dla liczb zmiennoprzecinkowych o podwójnej precyzji.
- Operatory:
=
,+
,-
,*
,/
,%
: Podstawowe operatory matematyczne i przypisania.==
,!=
,>
,<
,>=
,<=
: Operatory porównania.
- Instrukcje sterujące:
if (condition) { ... } else { ... }
: Instrukcje warunkowe, które pozwalają na wykonanie różnych bloków kodu w zależności od spełnienia warunku.
- Pętle:
- Nie zostały użyte w przedstawionych przykładach.
- Wejście/Wyjście:
std::cin
: Służy do odczytu danych wprowadzonych przez użytkownika.std::cout
: Służy do wypisywania danych na standardowe wyjście, czyli zwykle na konsolę.
- Konwersje typów:
- Rzutowanie typów, jak w
double average = sum / 3.0;
gdziesum
jestint
, a dzielenie przez3.0
(które jestdouble
) powoduje konwersję wyniku nadouble
.
- Stałe matematyczne:
M_PI
: Stała z biblioteki
, reprezentująca wartość liczby pi.
- Funkcje matematyczne:
std::pow(base, exponent)
: Funkcja podnosibase
(podstawę) do potęgiexponent
(wykładnika).std::sqrt(x)
: Funkcja oblicza pierwiastek kwadratowy zx
.
- Komentarze:
//
: Służą do dodawania komentarzy jednoliniowych.
- Return:
return 0;
: Kończy funkcjęmain
i zwraca wartość0
, co zwykle oznacza, iż program zakończył działanie pomyślnie.
Każdy z tych elementów jest fundamentalnym składnikiem języka C++ i jest powszechnie używany w programowaniu.
1.1
#include#include // for M_PI // Funkcja do przeliczenia stopni na radiany double degreesToRadians(double degrees) { return degrees * (M_PI / 180.0); } int main() { double degrees; // Wprowadzenie danych przez użytkownika std::cout << "Enter the angle in degrees: "; std::cin >> degrees; // Obliczenie i wyświetlenie wyniku double radians = degreesToRadians(degrees); std::cout << "The angle in radians is: " << radians << std::endl; return 0; }
1.2
#includeint main() { int a, b, c; // Wprowadzenie danych przez użytkownika std::cout << "Enter three integers: "; std::cin >> a >> b >> c; // Obliczenie sumy i średnich int sum = a + b + c; double average = sum / 3.0; double harmonic_mean = 3.0 / (1.0/a + 1.0/b + 1.0/c); // Wyświetlenie wyników std::cout << "Sum: " << sum << std::endl; std::cout << "Average: " << average << std::endl; std::cout << "Harmonic Mean: " << harmonic_mean << std::endl; return 0; }
1.3
#include#include // for M_PI // Funkcje do obliczenia objętości double sphereVolume(double radius) { return (4.0 / 3.0) * M_PI * std::pow(radius, 3); } double coneVolume(double radius, double height) { return M_PI * std::pow(radius, 2) * (height / 3.0); } int main() { double radius, height; // Wprowadzenie danych przez użytkownika std::cout << "Enter the radius of the sphere/cone: "; std::cin >> radius; std::cout << "Enter the height of the cone: "; std::cin >> height; // Obliczenie i wyświetlenie wyników std::cout << "The volume of the sphere is: " << sphereVolume(radius) << std::endl; std::cout << "The volume of the cone is: " << coneVolume(radius, height) << std::endl; return 0; }
1.4
#includebool isLeapYear(int year) { if (year % 400 == 0) return true; if (year % 100 == 0) return false; return year % 4 == 0; } int main() { int year; // Wprowadzenie danych przez użytkownika std::cout << "Enter a year: "; std::cin >> year; // Sprawdzenie i wyświetlenie wyników if (year > 0) { if (isLeapYear(year)) { std::cout << year << " is a leap year." << std::endl; } else { std::cout << year << " is not a leap year." << std::endl; } } else { std::cout << "Please enter a positive year." << std::endl; } return 0; }
1.5
#include#include // Funkcja rozwiązująca równanie kwadratowe void solveQuadraticEquation(double a, double b, double c) { if (a == 0) { // Równanie liniowe if (b == 0) { std::cout << "No solution." << std::endl; } else { std::cout << "Linear solution: " << -c / b << std::endl; } } else { // Równanie kwadratowe double delta = std::pow(b, 2) - 4 * a * c; if (delta > 0) { double x1 = (-b + std::sqrt(delta)) / (2 * a); double x2 = (-b - std::sqrt(delta)) / (2 * a); std::cout << "Two solutions: x1 = " << x1 << ", x2 = " << x2 << std::endl; } else if (delta == 0) { double x = -b / (2 * a); std::cout << "One solution: x = " << x << std::endl; } else { std::cout << "No real solutions." << std::endl; } } } int main() { double a, b, c; // Wprowadzenie danych przez użytkownika std::cout << "Enter coefficients a, b, and c: "; std::cin >> a >> b >> c; // Rozwiązanie równania i wyświetlenie wyników solveQuadraticEquation(a, b, c); return 0; }