gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
5685b7af1dfad450e022a03b58b1523eaa8f13e8
[spa1-materijali.git] / kodovi / stek-i-red-opsluzivanja / StekIFajlovi.java
1 /**
2 * Napisati program koji
4 (a) učitava cele brojeve iz fajlova “p1.txt” i “p2.txt” na dva različita steka celih brojeva
6 (b) sa vrha prvog steka uklanja jednocifrene brojeve
8 (c) sa vrha drugog steka uklanja neparne brojeve
10 (d) spaja podatke sa dva steka u jedan novi, naizmeničnim ubacivanjem
11 podataka (uzeti u obzir da stekovi ne moraju biti iste dužine)
13 (e) ispisuje sadržaj tako dobijenog steka u fajl “pp.txt"
14 *
15 */
16 public class StekIFajlovi {
18 public static Stek<Integer> ucitajStek(String imef) {
19 Stek<Integer> rez = new Stek<Integer>();
21 while (!Svetovid.in(imef).isEmpty()) {
22 int broj = Svetovid.in(imef).readInt();
23 rez.stavi(broj);
24 }
25 Svetovid.in(imef).close();
27 return rez;
28 }
30 public static void ukloniJednocifrene(Stek<Integer> s) {
31 if (!s.jePrazan()) {
32 int broj = s.vrh();
33 while (broj < 10 && broj > -10 && !s.jePrazan()) {
34 s.skiniVrh();
35 broj = s.vrh();
36 }
37 }
38 }
40 public static void ukloniNeparne(Stek<Integer> s) {
41 if (!s.jePrazan()) {
42 int broj = s.vrh();
43 while (broj % 2 != 0 && !s.jePrazan()) {
44 s.skiniVrh();
45 broj = s.vrh();
46 }
47 }
48 }
50 public static Stek<Integer> spoji(Stek<Integer> s1, Stek<Integer> s2) {
51 Stek<Integer> rez = new Stek<Integer>();
53 while (!s1.jePrazan() && !s2.jePrazan()) {
54 int broj = s1.skiniVrh();
55 rez.stavi(broj);
56 broj = s2.skiniVrh();
57 rez.stavi(broj);
58 }
60 // ako su razlitite duzine stekovi, na jednom je nesto ostalo
61 while (!s1.jePrazan()) {
62 int broj = s1.skiniVrh();
63 rez.stavi(broj);
64 }
65 while (!s2.jePrazan()) {
66 int broj = s2.skiniVrh();
67 rez.stavi(broj);
68 }
69 return rez;
70 }
72 public static void snimiUFajl(Stek<Integer> s, String imef) {
73 while (!s.jePrazan()) {
74 int koef = s.skiniVrh();
75 Svetovid.out(imef).println(koef);
76 }
77 Svetovid.out(imef).close();
78 }
80 public static void main(String[] args) {
81 Stek<Integer> s1 = ucitajStek("p1.txt");
82 Stek<Integer> s2 = ucitajStek("p2.txt");
84 ukloniJednocifrene(s1);
85 ukloniNeparne(s2);
87 Stek<Integer> s3 = spoji(s1,s2);
89 snimiUFajl(s3, "pp.txt");
91 }
93 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner