Advertisement
apad464

TemperatureGridRunner (2014 FRQ 3)

Mar 6th, 2023 (edited)
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.02 KB | Source Code | 0 0
  1. import java.util.Arrays;
  2.  
  3. class TemperatureGrid {
  4.     private double[][] temps;
  5.  
  6.     public TemperatureGrid(double[][] temps) {
  7.         this.temps = new double[temps.length][temps[0].length];
  8.         for (int i = 0; i < temps.length; i++) {
  9.             System.arraycopy(temps[i], 0, this.temps[i], 0, temps[0].length);
  10.         }
  11.     }
  12.  
  13.     private double computeTemp(int row, int col) {
  14.         if (row == 0 || col == 0 || row == temps.length - 1 || col == temps[0].length - 1)
  15.             return temps[row][col];
  16.         return ((temps[row - 1][col] + temps[row + 1][col] + temps[row][col - 1] + temps[row][col + 1]) / 4);
  17.     }
  18.  
  19.     public boolean updateAllTemps(double tolerance) {
  20.         boolean flag = true;
  21.         double[][] updated = new double[temps.length][temps[0].length];
  22.  
  23.         for (int row = 0; row < temps.length; row++)
  24.             for (int col = 0; col < temps[0].length; col++) {
  25.                 updated[row][col] = computeTemp(row, col);
  26.                 if ((Math.abs(temps[row][col] - updated[row][col])) > tolerance)
  27.                     flag = false;
  28.             }
  29.  
  30.         for (int r = 0; r < temps.length; r++)
  31.             for (int c = 0; c < temps[0].length; c++)
  32.                 temps[r][c] = updated[r][c];
  33.  
  34.         return flag;
  35.     }
  36.  
  37.     public String toString() {
  38.         String output = "";
  39.         for (double[] temp : temps)
  40.             output += Arrays.toString(temp) + "\n";
  41.         return output;
  42.     }
  43. }
  44.  
  45. public class TemperatureGridRunner {
  46.     public static void main(String[] args) {
  47.         double[][] arr = new double[][]{
  48.                 {95.5, 100, 100, 100, 100, 110.3},
  49.                 {0, 50, 50, 50, 50, 0},
  50.                 {0, 40, 40, 40, 40, 0},
  51.                 {0, 20, 20, 20, 20, 0},
  52.                 {0, 0, 0, 0, 0, 0},
  53.         };
  54.         TemperatureGrid runner = new TemperatureGrid(arr);
  55.         System.out.println(runner);
  56.         boolean test = runner.updateAllTemps(15);
  57.         System.out.println(runner);
  58.         System.out.println(test);
  59.     }
  60. }
Tags: Java
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement