gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: b962197)
raw | patch | inline | side by side (parent: b962197)
author | Doni Pracner <quinnuendo@gmail.com> | |
Sat, 16 May 2015 17:02:34 +0000 (19:02 +0200) | ||
committer | Doni Pracner <quinnuendo@gmail.com> | |
Sat, 16 May 2015 17:02:34 +0000 (19:02 +0200) |
kodovi/stek-i-red-opsluzivanja/MedjuSpremnik.java | [new file with mode: 0644] | patch | blob |
kodovi/stek-i-red-opsluzivanja/PamcenjePuta.java | [new file with mode: 0644] | patch | blob |
kodovi/stek-i-red-opsluzivanja/RezultatiTrke.java | [new file with mode: 0644] | patch | blob |
kodovi/stek-i-red-opsluzivanja/StekRed.java | [new file with mode: 0644] | patch | blob |
diff --git a/kodovi/stek-i-red-opsluzivanja/MedjuSpremnik.java b/kodovi/stek-i-red-opsluzivanja/MedjuSpremnik.java
--- /dev/null
@@ -0,0 +1,54 @@
+/**
+ * Medjuspremnik (a.k.a. buffer) sluzi sa skladistenje podataka pre nego sto se
+ * proslede dalje.
+ *
+ * U ovom primeru se pokazuje kako se podaci prvo prikupljaju pre nego sto se
+ * zapravo ispisu, cime se dobija na efikasnosti ispisa, posto je tipicno
+ * operacija rada sa nekim spoljim uredjajem relativno spora u odnosu na interne
+ * operacije, a sa druge strane su takve operacije tipicno slicne brzine i kad
+ * se salje vise podataka odjednom.
+ *
+ * Naravno ovo je samo ilustracija, operacije ispisa i na ekran i na disk su
+ * tipicno vec optimizovane medjuspremnicima.
+ *
+ */
+public class MedjuSpremnik {
+
+ public static final int VEL_SPREMNIKA = 33;
+
+ public static Red<Character> spremnik = new Red<>(VEL_SPREMNIKA);
+
+ public static String izlaznifajl = "izlaz.txt";
+
+ public static void pisiZnak(char c) {
+ if (spremnik.jePun()) {
+ isprazni();
+ }
+ spremnik.naKraj(c);
+ }
+
+ public static void isprazni() {
+ while (!spremnik.jePrazan()) {
+ char c = spremnik.izbaciPrvi();
+ Svetovid.out(izlaznifajl).print(c);
+ }
+
+ }
+
+ public static void pisi(String str) {
+ for (int i = 0; i < str.length(); i++) {
+ pisiZnak(str.charAt(i));
+ }
+ }
+
+ public static void main(String[] args) {
+ System.out.println("Unesite reci koje treba ispisati u fajl:");
+ String str = Svetovid.in.readLine("rec?");
+ while (!str.equals(".")) {
+ pisi(str);
+ str = Svetovid.in.readLine("rec?");
+ }
+ Svetovid.out(izlaznifajl).close();
+ }
+
+}
diff --git a/kodovi/stek-i-red-opsluzivanja/PamcenjePuta.java b/kodovi/stek-i-red-opsluzivanja/PamcenjePuta.java
--- /dev/null
@@ -0,0 +1,27 @@
+/**
+ * U nepoznatom gradu idemo u slobodnu šetnju počevši od hotela u kome smo
+ * smešteni. Bitno nam je da zapamtimo kojim ulicama smo išli na svakom
+ * skretanju, da bi mogli da se vratimo nazad istim putem koristeći te
+ * informacije.
+ */
+public class PamcenjePuta {
+
+ public static void main(String[] args) {
+ Stek<String> ulice = new Stek<>();
+ String str = Svetovid.in.readLine("unesite ulicu:");
+ while (!str.equals(".")) {
+ if (ulice.jePun()) {
+ System.out.println("nema vise mesta za pamcenje!");
+ } else {
+ ulice.stavi(str);
+ }
+ str = Svetovid.in.readLine("unesite ulicu:");
+ }
+
+ Svetovid.out.println("Vreme je za vracanje:");
+ while (!ulice.jePrazan()) {
+ System.out.println("Sledeca ulica: " + ulice.skiniVrh());
+ }
+ }
+
+}
diff --git a/kodovi/stek-i-red-opsluzivanja/RezultatiTrke.java b/kodovi/stek-i-red-opsluzivanja/RezultatiTrke.java
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * Treba beležiti brojeve takmičara kako stižu na cilj, a na kraju ispisati sve
+ * takmičare u redosledu kojim su došli. Na početku se unosi koliko je ukupno
+ * takmičara i nakon što svi prođu cilj se ispisuje redosled.
+ *
+ */
+public class RezultatiTrke {
+
+ public static void main(String[] args) {
+ int ukupno = Svetovid.in.readInt("Koliko ima takmicara");
+ Red<Integer> redosled = new Red<>(ukupno);
+ System.out.println("Unosite brojeve takmicara kako stizu na cilj");
+ while (!redosled.jePun()) {
+ int br = Svetovid.in.readInt("sledeci?");
+ redosled.naKraj(br);
+ }
+
+ System.out.println("Redosled takmičara:");
+ while (!redosled.jePrazan()) {
+ System.out.println(redosled.izbaciPrvi());
+ }
+ }
+
+}
diff --git a/kodovi/stek-i-red-opsluzivanja/StekRed.java b/kodovi/stek-i-red-opsluzivanja/StekRed.java
--- /dev/null
@@ -0,0 +1,43 @@
+/**\r
+ * Demonstracija upotrebe steka i reda opsluzivanja znakova.\r
+ * \r
+ */\r
+public class StekRed {\r
+ public static void main(String[] args) {\r
+\r
+ //System.out.println("Unesite string: ");\r
+ String str = "0123456789";// Svetovid.in.readLine();\r
+\r
+ System.out.println();\r
+\r
+ Stek<Character> stek = new Stek<>(str.length());\r
+\r
+ for (int i = 0; i < str.length(); i++) {\r
+ stek.stavi(str.charAt(i));\r
+ System.out.println(stek);\r
+ }\r
+\r
+ Red<Character> red = new Red<>(str.length());\r
+\r
+ for (int i = 0; i < str.length(); i++) {\r
+ red.naKraj(str.charAt(i));\r
+ System.out.println(red);\r
+ }\r
+\r
+ char c;\r
+\r
+ System.out.println("Sadrzaj steka");\r
+ while (!stek.jePrazan()) {\r
+ c = stek.skiniVrh();\r
+ System.out.print(c);\r
+ }\r
+ System.out.println();\r
+\r
+ System.out.println("Sadrzaj reda opsl.");\r
+ while (!red.jePrazan()) {\r
+ c = red.izbaciPrvi();\r
+ System.out.print(c);\r
+ }\r
+ System.out.println();\r
+ }\r
+}
\ No newline at end of file