Advertisement
Demetra4

prob35Task

Dec 1st, 2019
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.95 KB | None | 0 0
  1.  abstract class Task {
  2.      protected int timpExecutie;
  3.  
  4.     public int execute(){
  5.         return timpExecutie;       
  6.     }
  7.     public abstract String toString();
  8.  }
  9. public class SimpleTask extends Task {
  10.    
  11.     SimpleTask(int timpEx){
  12.         this.timpExecutie = timpEx;
  13.     }
  14.  
  15.     @Override
  16.     public String toString() {
  17.         // TODO Auto-generated method stub
  18.         return "Simple Task(" + this.timpExecutie + ")";
  19.     }
  20.     public void ChangeTime(int new_time){
  21.         this.timpExecutie = new_time;
  22.     }
  23. }
  24. public class ConditionalTask extends Task {
  25.     private Task unu;
  26.     private Task doi;
  27.    
  28.     ConditionalTask(Task unu, Task doi){
  29.         this.unu = unu;
  30.         this.doi = doi;
  31.         int tmp = (int)Math.round(Math.random());
  32.         this.timpExecutie = 5 + tmp*unu.execute() + (1 - tmp)*doi.execute();
  33.     }
  34. public int getTask(){
  35.     return 2;
  36. }
  37.     @Override
  38.     public String toString() {
  39.         return "Contitional Task("+ unu +"," + doi + ")";
  40.     }
  41.  
  42. }
  43. public class BlockTask extends Task {
  44.  
  45.     private Task[] task = new Task[32];
  46.     private int nrTask;
  47.    
  48.     public void insert(Task new_task){
  49.         if (nrTask == task.length){ // marim tabloul
  50.             Task[] newTask = new Task[nrTask * 2];
  51.             for(int i = 0; i < nrTask; i++){
  52.                 newTask[i] = task[i];
  53.             }
  54.             task = newTask; //setem referinta
  55.         }
  56.         task[nrTask] = new_task; //adaugam
  57.         nrTask++;
  58.        
  59.         this.timpExecutie += new_task.execute();//iserez unu ii cresc timpul de executie
  60.     }
  61.     public int getNrTask(){
  62.         return nrTask;
  63.     }
  64.     @Override
  65.     public String toString() {
  66.      String s = "BlockTask(";
  67.      for (int i = 0; i < nrTask; i++){
  68.          s += task[i] +",";
  69.      }
  70.      s = s.substring(0, s.length()-1);
  71.      return s + ")";
  72.     }
  73. }
  74. public class Main {
  75.  
  76.     public static void main(String[] args) {
  77.         SimpleTask s = new SimpleTask(165);
  78.         BlockTask b = new BlockTask();
  79.         b.insert(new SimpleTask(5));
  80.         b.insert(new SimpleTask(4));
  81.         ConditionalTask c = new ConditionalTask(s, b);
  82.         System.out.println(c);
  83.         System.out.println(c.getTask());
  84.         System.out.println(b.getNrTask());
  85.  
  86.     }
  87.  
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement