From fd330b61d0cebd03caa0cd5013fa92f1d694085b Mon Sep 17 00:00:00 2001
From: ratatuj <ratatuj@dmz.rs>
Date: Tue, 28 Jan 2025 21:43:40 +0100
Subject: [PATCH] Dodati stari materijali

---
 lekcije/ispis_realnih.md        | 32 +++++++++++++++++++++++
 lekcije/matematicke_funkcije.md | 46 +++++++++++++++++++++++++++++++++
 lekcije/sta_su_biblioteke.md    | 26 +++++++++++++++++++
 3 files changed, 104 insertions(+)
 create mode 100644 lekcije/ispis_realnih.md
 create mode 100644 lekcije/matematicke_funkcije.md
 create mode 100644 lekcije/sta_su_biblioteke.md

diff --git a/lekcije/ispis_realnih.md b/lekcije/ispis_realnih.md
new file mode 100644
index 0000000..fd5fffc
--- /dev/null
+++ b/lekcije/ispis_realnih.md
@@ -0,0 +1,32 @@
+# Ispis realnih brojeva
+
+Kako postići zaokruživanje na 2 decimale? U jeziku C++ pravilan način da se to postigne je korišćenjem funkcije `setprecision` iz biblioteke `<iomanip>`. Kod ispod ispisuje broj **π** (pi) zaokružen na 2 decimale:
+```c++
+#include <iostream>
+#include <iomanip>
+using namespace std;
+
+int main() {
+    double pi = 3.14159265;
+    cout << fixed << setprecision(2) << pi << endl; // ispisuje 3.14!
+    return 0;
+}
+```
+
+## Lekcija o snalažljivosti
+
+Šta činiti ako smo zaboravili na `setprecision`? Najbitnija veština takmičara (ali i dobrog programera) je da ume da se *snađe ✨*.
+
+Jedan način koji znamo na koji možemo da odbacimo decimale iza zareza je konverzija (pretvaranje) realnog broja u ceo broj, a to mozemo postići čuvanjem realnog broja u celobrojnu promenljivu, na primer ovako:
+```c++
+int ceo_deo = pi; // ovo će biti 3
+```
+Ali kako da izvučemo bas `3.14`? Množenjem broja `3.14159265` sa `100` dobijamo `314.159265` gde ponovo na istu foru umemo da izbacimo deo iza zareza:
+```c++
+int pomocna_prom = pi * 100; // ovo će biti 314
+```
+Deljenjem ovog broja sa `100.0` dobijamo to što želimo 🙂
+```c++
+double rezultat = pomocna_prom / 100.0; // ... 3.14 
+```
+Pazite na to da smo ovde morali da delimo baš sa `100.0` a ne sa `100` jer na ovaj način kažemo C++-u da treba deljenje da tretira kao realno, a ne celobrojno.
diff --git a/lekcije/matematicke_funkcije.md b/lekcije/matematicke_funkcije.md
new file mode 100644
index 0000000..90370e1
--- /dev/null
+++ b/lekcije/matematicke_funkcije.md
@@ -0,0 +1,46 @@
+# Matematičke funkcije
+
+C++ pruža nekoliko baš lepih i korisnih matematičkih funkcija koje mozete da koristite u vasem kodu ako uključite odgovarajuću biblioteku:
+```c++
+#include <cmath>
+```
+
+Funkcije koje su nama najbitnije su
+- `max(a, b)` - računa maksimum dva data broja
+- `min(a, b)` - računa minimum dva data broja
+- `abs(a)` - računa apsolutnu vrednost datog broja
+- `sqrt(n)` - računa kvadratni koren (**SQ**uare **R**oo**T**) broja
+- `pow(broj, stepen)` - stepenuje dat broj
+- `floor(b)` - zaokružuje broj nadole (npr 3.4 u 3)
+- `ceil(b)` - zaokružuje broj nagore (3.4 u 4)
+---
+Kako se ove funkcije koriste pogledajte u sledećem programu:
+
+```c++
+#include <cmath>
+#include <iostream>
+
+using namespace std;
+
+int main() {
+    cout << "min(4, 2) = " << min(4, 2) << endl;
+    cout << "max(3.5, -5.0) = " << max(3.5, -5.0) << endl;
+    cout << "abs(4.66) = " << abs(4.66) << endl;
+    cout << "abs(-1) = " << abs(-1) << endl;
+    cout << "sqrt(4) = " << sqrt(4) << endl;
+    cout << "sqrt(2) = " << sqrt(2) << endl;
+    cout << "pow(5, 2) = " << pow(5, 2) << endl;
+    cout << "pow(2, 3) = " << pow(2, 3) << endl;
+}
+```
+ispisuje
+```
+min(4, 2) = 2
+max(3.5, -5.0) = 3.5
+abs(4.66) = 4.66
+abs(-1) = 1
+sqrt(4) = 2
+sqrt(2) = 1.41421
+pow(5, 2) = 25
+pow(2, 3) = 8
+```
diff --git a/lekcije/sta_su_biblioteke.md b/lekcije/sta_su_biblioteke.md
new file mode 100644
index 0000000..cbbac1e
--- /dev/null
+++ b/lekcije/sta_su_biblioteke.md
@@ -0,0 +1,26 @@
+# Šta su biblioteke u jeziku C++?
+
+Standardni C++ je napravljen tako da stvara što manje i brže programe koji mogu da rade na svemu - od najjačih računara do jeftinih veš masina. Nisu potrebe svih uređaja iste, te naprednije funkcionalnosti jezika moraju ručno da se dodaju (*include*-uju) u program. 
+
+Primeri takvih biblioteka su:
+- `iostream` - služi za unos i ispis podataka, tj. `cin` i `cout`
+- `iomanip` - za konfiguraciju ispisa, koristimo je kada želimo na primer da postavimo broj decimala pri ispisu (`setprecision(n)`). [O tome više ovde](./ispis_realnih.md).
+- `cmath` - uključuje matematičke fuknkcije kao sto su `sqrt` i `pow`. [O tome više ovde](./matematicke_funkcije.md).
+
+Ubuduće ćemo koristiti puno više biblioteka, i da ne bismo morali u svakom programu da ih dodajemo postoji kraći nacin:
+```c++
+#include <bits/stdc++.h>
+```
+
+Ova linija umesto vas uključi sve standardne biblioteke C++a (otud `stdc++`), a to je i sve što nam je za sada potrebno.
+
+```c++
+#include <bits/stdc++.h>
+
+using namespace std;
+
+int main() {
+    cout << "Radi!!!" << endl;
+    return 0;
+}
+```