Advertisement
metalni

APS Labs 2 Sredna vrednost

Oct 27th, 2020
671
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.37 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class Array<E> {
  6.     private E data[];
  7.     private int size;
  8.  
  9.     Array(int size){
  10.         this.data = (E[]) new Object[size];
  11.         this.size = size;
  12.     }
  13.  
  14.     public void set (int position, E set){
  15.         if(position>=0 && position<this.size)
  16.             this.data[position] = set;
  17.         else
  18.             System.out.println("Cannot set data, invalid position");
  19.     }
  20.  
  21.     public E get(int position){
  22.         if(position>=0 && position<this.size)
  23.             return this.data[position];
  24.         else
  25.             System.out.println("Cannot get data, invalid position");
  26.         return null;
  27.     }
  28.  
  29.     public int getSize(){
  30.         return this.size;
  31.     }
  32.  
  33.     public int findIndex(E find){
  34.         for(int i=0; i<this.size; i++) {
  35.             if (this.data[i].equals(find))
  36.                 return i;
  37.         }
  38.         return -1;
  39.     }
  40.  
  41.     public void insert(int position, E ins){
  42.         if(position>=0 && position<this.size){
  43.             E[] newData = (E[]) new Object[size+1];
  44.             for(int i=0; i<position; i++)
  45.                 newData[i] = this.data[i];
  46.             newData[position] = ins;
  47.             for(int i=position; i<this.size; i++)
  48.                 newData[i+1] = this.data[i];
  49.             data = newData;
  50.             this.size += 1;
  51.         }
  52.     }
  53.  
  54.     public void delete(int position){
  55.         if(position>=0 && position<this.size){
  56.             E[] newData = (E[]) new Object[size-1];
  57.             for(int i=0; i<position; i++)
  58.                 newData[i] = this.data[i];
  59.             for(int i=position+1; i<this.size; i++)
  60.                 newData[i-1] = data[i];
  61.             this.data = newData;
  62.             this.size -= 1;
  63.         }
  64.     }
  65.  
  66.     public void resize(int newSize){
  67.         E[] newData = (E[]) new Object[newSize];
  68.         int copySize = this.size;
  69.         if(newSize < size)
  70.             copySize = newSize;
  71.         for(int i=0; i<copySize; i++)
  72.             newData[i] = this.data[i];
  73.         this.data = newData;
  74.         this.size = newSize;
  75.     }
  76.  
  77.     public int getSum(Array<Integer> array){
  78.         int sum = 0;
  79.         for(int i=0; i<array.getSize(); i++)
  80.             sum += array.get(i);
  81.         return sum;
  82.     }
  83.  
  84.     public static double getAvgDiff(double avg, int diff){
  85.         return Math.abs(avg - (double)diff);
  86.     }
  87.  
  88.     public static int brojDoProsek(Array<Integer> niza){
  89.         double avg = (double)niza.getSum(niza) / niza.getSize();
  90.         int min;
  91.         min = niza.get(0);
  92.         for(int i=1; i<niza.getSize();i++){
  93.             if(getAvgDiff(avg, niza.get(i)) < getAvgDiff(avg, min))
  94.                 min = niza.get(i);
  95.             if(getAvgDiff(avg, niza.get(i)) == getAvgDiff(avg, min))
  96.                 if(min > niza.get(i))
  97.                     min = niza.get(i);
  98.         }
  99.         return min;
  100.     }
  101.  
  102.     public static void main(String[] args) throws IOException{
  103.         BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));
  104.         String s = stdin.readLine();
  105.         int N = Integer.parseInt(s);
  106.  
  107.         //Vashiot kod tuka...
  108.         Array<Integer> niza = new Array<>(N);
  109.         for(int i=0; i<niza.getSize(); i++)
  110.             niza.set(i, Integer.parseInt(stdin.readLine()));
  111.         System.out.println(brojDoProsek(niza));
  112.     }
  113.  
  114.  
  115.  
  116. }
  117.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement