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
[spa1-materijali.git] / kodovi / skup / BrojeviSkup.java
1 /**
2 * Zadatak:
3 *
4 * Iz fajla “brojevi.txt” učitati brojeve tipa int u skup sa elementima tipa
5 * Integer.
6 *
7 * Prebrojati koliko je bilo brojeva u fajlu, a koliko ih ima u skupu.
8 *
9 * Ispisati koliko je bilo duplikata.
10 *
11 * Ispisati sadržaj skupa u fajl “brojevi-bez-duplikata.txt”, pri čemu redosled
12 * nije bitan.
13 *
14 */
15 public class BrojeviSkup {
17 public static Skup<Integer> ucitajBrojeve(String imefajla) {
18 Skup<Integer> rez = new Skup<>();
20 int red;
21 int br = 0;
22 while (Svetovid.in(imefajla).hasMore()) {
23 red = Svetovid.in(imefajla).readInt();
24 br++;
25 rez.ubaci(red);
26 }
27 Svetovid.in(imefajla).close();
29 System.out.println("u fajlu je bilo " + br + " redova");
30 System.out.println("u skupu ima " + rez.velicina() + " elemenata");
31 System.out.println("U fajlu je bilo " + (br - rez.velicina())
32 + " duplikata");
34 return rez;
35 }
37 public static void ispisiUFajl(Skup<Integer> intSkup, String imefajla) {
38 if (intSkup.velicina() > 0) {
40 // koristimo metod da dobijemo niz
41 // element niza je tacno onog tipa kog je i element skupa
42 // nije moguce da to bude prost tip kao "int", nego nesto kao "Integer"
43 Integer[] niz = intSkup.napraviNiz();
45 for (Integer s : niz) {
46 Svetovid.out(imefajla).println(s);
47 }
48 Svetovid.out(imefajla).close();
49 } else {
50 // nema sta da se pise u fajl
51 Svetovid.out(imefajla).println();
52 Svetovid.out(imefajla).close();
53 }
54 }
56 public static void main(String[] args) {
57 Skup<Integer> brojevi = ucitajBrojeve("brojevi.txt");
59 // u skupu su svi razliciti, znaci da je dosta samo ispisati sadrzaj
60 // skupa u fajl
61 ispisiUFajl(brojevi, "brojevi-bez-duplikata.txt");
62 }
64 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner