Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- //вашиот код
- abstract class Patuvanje{
- protected String ime;
- protected int cena;
- Patuvanje(){}
- Patuvanje(String ime, int cena){
- this.ime = ime;
- this.cena = cena;
- }
- int getCena(){return cena;}
- public abstract int vratiVremeVoDenovi();
- public static int vratiMinCena(Patuvanje [] niza, int n, Patuvanje zaSporedba){
- int i = 0;
- while(niza[i].vratiVremeVoDenovi() < zaSporedba.vratiVremeVoDenovi())
- i++;
- int min = niza[i].getCena();
- boolean bu = false;
- for(Patuvanje x: niza){
- if(x.vratiVremeVoDenovi() > zaSporedba.vratiVremeVoDenovi()){
- bu = true;
- if(x.getCena() < min)
- min = x.getCena();
- }
- }
- if(bu)
- return min;
- return 0;
- }
- }
- class PraznicnoPatuvanje extends Patuvanje{
- private int prvDen;
- private int prvMesec;
- private int vtorDen;
- private int vtorMesec;
- PraznicnoPatuvanje(){}
- //ime,cena,pocD,pocM, krajD,krajM
- PraznicnoPatuvanje(String ime,int cena, int pocD, int pocM, int krajD, int krajM){
- super(ime, cena);
- try {
- prvDen = pocD;
- prvMesec = pocM;
- vtorDen = krajD;
- vtorMesec = krajM;
- if(prvMesec > vtorMesec || (prvMesec == vtorMesec&&prvDen > vtorDen))
- throw new Exception("Iskluchok\n");
- }
- catch (Exception x){
- System.out.print(x.getMessage());
- prvDen = krajD;
- prvMesec = krajM;
- vtorMesec = pocM;
- vtorDen = pocD;
- }
- }
- String getIme(){return ime;}
- public int vratiVremeVoDenovi(){
- int denovi = (vtorMesec*30 + vtorDen) - (prvMesec * 30 + prvDen);
- return denovi;
- }
- int getPrvMesec(){return prvMesec;}
- }
- class GodishenOdmor extends Patuvanje{
- private int denovi;
- //odishenOdmor(ime,cena,vreme);
- GodishenOdmor(){}
- GodishenOdmor(String ime, int cena, int vreme){
- super(ime, cena-1000);
- denovi = vreme;
- }
- public int vratiVremeVoDenovi(){return denovi;}
- }
- public class Test {
- public static void main(String[] args) {
- int n;
- Scanner in=new Scanner(System.in);
- n=in.nextInt();
- Patuvanje nizaPatuvanje[]=new Patuvanje[n];
- for (int i=0;i<n;i++){
- int tip=in.nextInt();
- if (tip==0){
- String ime=in.next();
- int cena =in.nextInt();
- int vreme=in.nextInt();
- nizaPatuvanje[i]=new GodishenOdmor(ime,cena,vreme);
- }
- else {
- String ime=in.next();
- int cena =in.nextInt();
- int pocD=in.nextInt();
- int pocM=in.nextInt();
- int krajD=in.nextInt();
- int krajM=in.nextInt();
- nizaPatuvanje[i]=new PraznicnoPatuvanje(ime,cena,pocD,pocM, krajD,krajM);
- }
- }
- //решение на барање 1
- /*(Барање 1) На стандарден излез да ги отпечатите сите имиња на агенции кои нудат
- празнични патувања кои почнуваат во месец Јуни т.е. 6тиот месец од годината (во
- еден ред и одвоени со празно место).
- */
- for(Patuvanje x : nizaPatuvanje){
- if(x instanceof PraznicnoPatuvanje && ((PraznicnoPatuvanje)x).getPrvMesec() == 6){
- System.out.print(((PraznicnoPatuvanje) x).getIme() + " ");
- }
- }
- System.out.println();
- //решение на барање 2
- // (Барање 2) На стандарден излез да го отпечатите просечното
- // времетраење на сите патувања изразено во денови.
- int suma = 0;
- for(Patuvanje x: nizaPatuvanje)
- suma += x.vratiVremeVoDenovi();
- System.out.println((double)((double)suma/n));
- //решение на барање 3
- // (Барање 3) Од стандарден влез да ги прочитате информациите за еден
- // годишен одмор (ime, cena, vremetraenje) . Да се креира променлива
- // odmor од тип GodishenOdmor која референцира објект од тип (GodishenOdmor)
- // креиран со информациите од влезот.
- String ime;
- int cena;
- int vreme;
- ime = in.next();
- cena = in.nextInt();
- vreme = in.nextInt();
- GodishenOdmor odmor = new GodishenOdmor(ime ,cena, vreme);
- //решение на барање 4
- // (Барање 4) На стандарден излез отпечатете минимална цена на она патување меѓу оние патувања
- // кои се подолги од вчитаниот годишен одмор (odmor) . Притоа за таа цел да се искористи метода
- // со потпис int vratiMinCena(Patuvanje [] niza, int n, Patuvanje zaSporedba); Оваа метода е
- // статичка во класата Patuvanje. Таа ја враќа минималната цена на патувањето од низата niza
- // кое е подолго од патувањето zaSporedba . Ако нема такво патување функцијата треба да врати 0
- System.out.print(Patuvanje.vratiMinCena(nizaPatuvanje, n, odmor));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement