Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package kfu.itis.gr3;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class FrennelArea {
- public static double readDouble() {
- Scanner sc=new Scanner(System.in);
- while (!sc.hasNextDouble()){
- sc=new Scanner(System.in);
- }
- return sc.nextDouble();
- }
- public static int readInt() {
- Scanner sc=new Scanner(System.in);
- while (!sc.hasNextInt()){
- sc=new Scanner(System.in);
- }
- return sc.nextInt();
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println("Введите изначальную высоту передатчика и приемника (в км) ");
- double h=readDouble();
- System.out.println("Введите количество помех");
- int n=readInt();
- double a[]=new double[n];
- for(int i=0;i<n;i++){
- System.out.println("Введите их высоту (в км)");
- a[i]=readDouble();
- }
- double max=0;
- for(int i=0;i<n;i++){
- if(a[i]>max){
- max=a[i];
- }
- }
- System.out.println("Введите расстояние от передатчика до помехи с высотой (в км)"+" "+max);
- double d1=readDouble();
- System.out.println("Введите расстояние от помехи с высотой"+" "+max+" "+"до приемника (в км)");
- double d2=readDouble();
- double d=d1+d2;
- System.out.println("Введите частоту, на которой работают станции (в ГГЦ)");
- double f=readDouble();
- double r=8.657*Math.sqrt(d/f);
- System.out.println("Радиус первой зоны франеля="+" "+r+"км");
- System.out.println("Радиус 80% зоны франеля="+" "+r*0.8+"км");
- System.out.println("Радиус 60% зоны франеля="+" "+r*0.6+"км");
- if(max+r*0.6<h){
- System.out.println("Не надо поднимать передатчик");
- }
- else{
- double h1=h;
- h1+=max-(h-r*0.6);
- double alpha=Math.toDegrees(Math.asin((h1-h)/d));
- System.out.println("Высота, до которой стоит поднять передатчик="+h1+"км");
- System.out.println("Угол="+alpha);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement