gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
StekIFajlovi, dodatne provere za fajl i stek
[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 if (Svetovid.testIn(imef)) {
22 while (!Svetovid.in(imef).isEmpty() && !rez.jePun()) {
23 int broj = Svetovid.in(imef).readInt();
24 rez.stavi(broj);
25 }
26 Svetovid.in(imef).close();
27 }
28 return rez;
29 }
31 public static void ukloniJednocifrene(Stek<Integer> s) {
32 if (!s.jePrazan()) {
33 int broj = s.vrh();
34 while (broj < 10 && broj > -10 && !s.jePrazan()) {
35 s.skiniVrh();
36 broj = s.vrh();
37 }
38 }
39 }
41 public static void ukloniNeparne(Stek<Integer> s) {
42 if (!s.jePrazan()) {
43 int broj = s.vrh();
44 while (broj % 2 != 0 && !s.jePrazan()) {
45 s.skiniVrh();
46 broj = s.vrh();
47 }
48 }
49 }
51 public static Stek<Integer> spoji(Stek<Integer> s1, Stek<Integer> s2) {
52 Stek<Integer> rez = new Stek<Integer>();
54 while (!s1.jePrazan() && !s2.jePrazan()) {
55 int broj = s1.skiniVrh();
56 rez.stavi(broj);
57 broj = s2.skiniVrh();
58 rez.stavi(broj);
59 }
61 // ako su razlitite duzine stekovi, na jednom je nesto ostalo
62 while (!s1.jePrazan()) {
63 int broj = s1.skiniVrh();
64 rez.stavi(broj);
65 }
66 while (!s2.jePrazan()) {
67 int broj = s2.skiniVrh();
68 rez.stavi(broj);
69 }
70 return rez;
71 }
73 public static void snimiUFajl(Stek<Integer> s, String imef) {
74 while (!s.jePrazan()) {
75 int koef = s.skiniVrh();
76 Svetovid.out(imef).println(koef);
77 }
78 Svetovid.out(imef).close();
79 }
81 public static void main(String[] args) {
82 Stek<Integer> s1 = ucitajStek("p1.txt");
83 Stek<Integer> s2 = ucitajStek("p2.txt");
85 ukloniJednocifrene(s1);
86 ukloniNeparne(s2);
88 Stek<Integer> s3 = spoji(s1,s2);
90 snimiUFajl(s3, "pp.txt");
92 }
94 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner