Advertisement
Guest User

Untitled

a guest
Oct 24th, 2014
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. package kfu.itis.gr3;
  2.  
  3. import java.math.BigDecimal;
  4. import java.util.ArrayList;
  5. import java.util.Scanner;
  6.  
  7. public class FrennelArea {
  8. public static double readDouble() {
  9. Scanner sc=new Scanner(System.in);
  10. while (!sc.hasNextDouble()){
  11. sc=new Scanner(System.in);
  12. }
  13. return sc.nextDouble();
  14. }
  15.  
  16. public static int readInt() {
  17. Scanner sc=new Scanner(System.in);
  18. while (!sc.hasNextInt()){
  19. sc=new Scanner(System.in);
  20. }
  21. return sc.nextInt();
  22. }
  23. public static void main(String[] args) {
  24. // TODO Auto-generated method stub
  25.  
  26.  
  27.  
  28. System.out.println("Введите изначальную высоту передатчика и приемника (в км) ");
  29. double h=readDouble();
  30. System.out.println("Введите количество помех");
  31. int n=readInt();
  32. double a[]=new double[n];
  33. for(int i=0;i<n;i++){
  34. System.out.println("Введите их высоту (в км)");
  35. a[i]=readDouble();
  36. }
  37.  
  38. double max=0;
  39.  
  40. for(int i=0;i<n;i++){
  41. if(a[i]>max){
  42. max=a[i];
  43. }
  44. }
  45.  
  46.  
  47.  
  48.  
  49.  
  50. System.out.println("Введите расстояние от передатчика до помехи с высотой (в км)"+" "+max);
  51. double d1=readDouble();
  52.  
  53. System.out.println("Введите расстояние от помехи с высотой"+" "+max+" "+"до приемника (в км)");
  54. double d2=readDouble();
  55.  
  56.  
  57. double d=d1+d2;
  58.  
  59. System.out.println("Введите частоту, на которой работают станции (в ГГЦ)");
  60. double f=readDouble();
  61.  
  62.  
  63. double r=8.657*Math.sqrt(d/f);
  64.  
  65. System.out.println("Радиус первой зоны франеля="+" "+r+"км");
  66. System.out.println("Радиус 80% зоны франеля="+" "+r*0.8+"км");
  67. System.out.println("Радиус 60% зоны франеля="+" "+r*0.6+"км");
  68.  
  69.  
  70. if(max+r*0.6<h){
  71. System.out.println("Не надо поднимать передатчик");
  72. }
  73. else{
  74.  
  75.  
  76.  
  77.  
  78. double h1=h;
  79. h1+=max-(h-r*0.6);
  80.  
  81.  
  82.  
  83. double alpha=Math.toDegrees(Math.asin((h1-h)/d));
  84.  
  85.  
  86. System.out.println("Высота, до которой стоит поднять передатчик="+h1+"км");
  87.  
  88. System.out.println("Угол="+alpha);
  89. }
  90. }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement