gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Skup, primer sa brojevima i trazenjem duplikata
authorDoni Pracner <quinnuendo@gmail.com>
Sat, 9 May 2015 14:18:50 +0000 (16:18 +0200)
committerDoni Pracner <quinnuendo@gmail.com>
Sat, 9 May 2015 14:18:50 +0000 (16:18 +0200)
kodovi/skup/BrojeviSkup.java [new file with mode: 0644]
kodovi/skup/brojevi.txt [new file with mode: 0644]

diff --git a/kodovi/skup/BrojeviSkup.java b/kodovi/skup/BrojeviSkup.java
new file mode 100644 (file)
index 0000000..5d36c71
--- /dev/null
@@ -0,0 +1,64 @@
+/**
+ * Zadatak:
+ * 
+ * Iz fajla “brojevi.txt” učitati brojeve tipa int u skup sa elementima tipa
+ * Integer.
+ * 
+ * Prebrojati koliko je bilo brojeva u fajlu, a koliko ih ima u skupu.
+ * 
+ * Ispisati koliko je bilo duplikata.
+ * 
+ * Ispisati sadržaj skupa u fajl “brojevi-bez-duplikata.txt”, pri čemu redosled
+ * nije bitan.
+ * 
+ */
+public class BrojeviSkup {
+       
+       public static Skup<Integer> ucitajBrojeve(String imefajla) {
+               Skup<Integer> rez = new Skup<>();
+
+               int red;
+               int br = 0;
+               while (Svetovid.in(imefajla).hasMore()) {
+                       red = Svetovid.in(imefajla).readInt();
+                       br++;
+                       rez.ubaci(red);
+               }
+               Svetovid.in(imefajla).close();
+               
+               System.out.println("u fajlu je bilo " + br + " redova");
+               System.out.println("u skupu ima " + rez.velicina() + " elemenata");
+               System.out.println("U fajlu je bilo " + (br - rez.velicina())
+                               + " duplikata");
+               
+               return rez;
+       }
+
+       public static void ispisiUFajl(Skup<Integer> intSkup, String imefajla) {
+               if (intSkup.velicina() > 0) {
+                       
+                       // koristimo metod da dobijemo niz
+                       // element niza je tacno onog tipa kog je i element skupa
+                       // nije moguce da to bude prost tip kao "int", nego nesto kao "Integer"
+                       Integer[] niz = intSkup.napraviNiz();
+                       
+                       for (Integer s : niz) {
+                               Svetovid.out(imefajla).println(s);
+                       }
+                       Svetovid.out(imefajla).close();
+               } else {
+                       // nema sta da se pise u fajl
+                       Svetovid.out(imefajla).println();
+                       Svetovid.out(imefajla).close();
+               }
+       }
+
+       public static void main(String[] args) {
+               Skup<Integer> brojevi = ucitajBrojeve("brojevi.txt");
+
+               // u skupu su svi razliciti, znaci da je dosta samo ispisati sadrzaj
+               // skupa u fajl
+               ispisiUFajl(brojevi, "brojevi-bez-duplikata.txt");
+       }
+
+}
diff --git a/kodovi/skup/brojevi.txt b/kodovi/skup/brojevi.txt
new file mode 100644 (file)
index 0000000..954f8bf
--- /dev/null
@@ -0,0 +1,13 @@
+1
+2
+4
+4
+5
+8
+11
+4
+2
+73
+12
+11
+6
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner