![]() Ласло Краус |
Програмирање на језику Java - колоквијуми Први колоквијум Прва група 3. 12. 2005 |
|---|
Саставити на језику Java следећи пакет класа:
N.
S.
Грешке пријављивати изузецима. У класама за изузетке предвидети састављање текста поруке.
Саставити на језику Java класу са главним програмом који:
На располагању стоји готова класа Citaj у безименом пакету која садржи заједничке методе за читање свих стандардних типова података (датотека \\Xs200−2\Nastava\ProgJava\Citaj.java).
studentx (x је број радне станице за којим се ради). Лозинка на свакој радној станици је student.N: (Nastava on \\Xs200-2) у каталогу ObjektnoProg\RSx (x је број радне станице за којим се ради).
// GPuna.java
package zbirke;
public class GPuna extends Exception {
public String toString () { return "*** Zbirka je puna!"; }
}
// Zbirka.java
package zbirke;
public abstract class Zbirka implements Cloneable {
protected double[] niz;
protected int n;
public Zbirka (int k) { niz = new double [k]; }
public Zbirka () { this (10); }
public abstract char oznaka ();
public Object clone () {
Zbirka zb = null;
try {
zb = (Zbirka) super.clone ();
zb.niz = new double [niz.length];
for (int i=0; i<n; zb.niz[i]=niz[i++]);
} catch (CloneNotSupportedException g) {}
return zb;
}
public int prazno () { return niz.length - n; }
public int puno () { return n; }
public abstract Zbirka stavi (double b) throws GPuna;
public String toString () {
String s = oznaka () + "(";
for (int i=0; i<n; i++) {
if (i > 0) s += ",";
s += niz[i];
}
return s + ")";
}
}
// Niz.java
package zbirke;
public class Niz extends Zbirka {
public Niz (int k) { super (k); }
public Niz () { super (); }
public char oznaka () { return 'N'; }
public Zbirka stavi (double b) throws GPuna {
if (n == niz.length) throw new GPuna ();
int i = n - 1;
while (i>=0 && niz[i]>b) niz[i+1] = niz[i--];
niz[i+1] = b; n++;
return this;
}
}
// Skup.java
package zbirke;
public class Skup extends Zbirka {
public Skup (int k) { super (k); }
public Skup () { super (); }
public char oznaka () { return 'S'; }
public Zbirka stavi (double b) throws GPuna {
int i = 0;
while (i<n && niz[i]!=b) i++;
if (i == n) {
if (n == niz.length) throw new GPuna ();
niz[n++] = b;
}
return this;
}
}
// ZbirkeT.java
import zbirke.*;
public class ZbirkeT {
public static void main (String[] varg) {
while (true) {
System.out.print ("n? "); int n = Citaj.Int ();
if (n <= 0) break;
Zbirka[] niz = new Zbirka [n];
for (int i=0; i<n;) {
System.out.print ("Vrs, kap? ");
char vrs = Citaj.Char ();
int kap = Citaj.Int ();
switch (vrs) {
case 'N': case 'n':
niz[i++] = new Niz (kap); break;
case 'S': case 's':
niz[i++] = new Skup (kap); break;
}
}
try {
while (true) {
System.out.print ("Broj? ");
double b = Citaj.Double ();
for (int i=0; i<n; niz[i++].stavi(b));
}
} catch (GPuna g) {}
int min = niz[0].puno(), max = min, imin = 0, imax = 0;
for (int i=1; i<n; i++)
if (niz[i].puno() < min) { min = niz[i].puno (); imin = i; }
else if (niz[i].puno() > max) { max = niz[i].puno (); imax = i; }
System.out.println ("min= " + niz[imin]);
System.out.println ("max= " + niz[imax]);
}
}
}
n? 4
Vrs, kap? n 6
Vrs, kap? s 4
Vrs, kap? n 8
Vrs, kap? s 6
Broj? 1
Broj? 3
Broj? 2
Broj? 1
Broj? 5
Broj? 3
Broj? 4
min= S(1.0,3.0,2.0,5.0)
max= N(1.0,1.0,2.0,3.0,3.0,5.0)
n? 0
(садржај)
Copyright © 2010, Laslo Kraus
Последња ревизија: 8.9.2010.