Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class NUOK {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- double SCALE = in.nextDouble(); // 15 // масштаб
- double wingLength = in.nextDouble(); // длина крыла
- double speed = in.nextDouble(); // скорость
- int n = in.nextInt(); // параметры массива
- int m = in.nextInt(); // _,_
- int iA = 0; // Искомые параметры точки А
- int jA = 0;
- int iB = 0; // точки В
- int jB = 0;
- int iB1 = 0; // точки В1
- int jB1 = 0;
- int iC = 0; // точки С
- int jC = 0;
- String mA[] = new String[n]; // создаем матрицу
- for (int i = 0; i < n; i++) {
- mA[i] = in.nextLine();
- }
- for (int i = n - 1; i > -1; i--) {
- for (int j = 0; j < m; j++) {
- if (mA[i].charAt(j) == '1') {
- iC = i;
- jC = j;
- }
- } // проходимся по массиву, ищем крайнюю верхню точку
- }
- for (int j = m - 1; j > -1; j--) {
- for (int i = 0; i < n; i++) {
- if (mA[i].charAt(j) == '1') {
- iA = i;
- jA = j;
- }
- } // проходимся по массиву, ищем крайнюю левую нижнюю точку
- }
- for (int j = 0; j < m; j++) {
- for (int i = 0; i < n; i++) {
- if (mA[i].charAt(j) == '1') {
- iB1 = i;
- jB1 = j;
- }
- } // проходимся по массиву, ищем крайнюю правую нижнюю точку
- }
- for (int j = 0; j < m; j++) {
- for (int i = n - 1; i > -1; i--) {
- if (mA[i].charAt(j) == '1') {
- iB = i;
- jB = j;
- }
- } // проходимся по массиву, ищем крайнюю правую верхнюю точку
- }
- System.out.println(iA + " " + jA);
- System.out.println(iB + " " + jB);
- System.out.println(iC + " " + jC);
- System.out.println(iB1 + " " + jB1);
- double sumAC = 0;
- int katetAC = 1;
- int iSAC = iA;
- int jSAC = jA;
- for (int i = 0; i < jC - jA; i++) {
- if (mA[iSAC - 1].charAt(jSAC) == '0') {
- katetAC++;
- jSAC++;
- } else {
- sumAC += (Math.sqrt(katetAC * katetAC + 1) - katetAC);
- iSAC--;
- }
- } // идем по ступеничкам и считаем длину сверху слева
- System.out.println(sumAC + jC - jA);
- double sumBC = 0;
- int katetBC = 1;
- int iSBC = iB;
- int jSBC = jB;
- for (int i = 0; i < jB - jC; i++) {
- if (mA[iSBC - 1].charAt(jSBC) == '0') {
- katetBC++;
- jSBC--;
- } else {
- sumBC += (Math.sqrt(katetBC * katetBC + 1) - katetBC);
- iSBC--;
- }
- } // идем по ступеничкам и считаем длину сверху справа
- double BA = 100 * Math.sqrt((jA - jB1) * (jA - jB1) + (iA - iB1) * (iA - iB1)); // ищем длину крыла снизу
- System.out.println(sumBC + jB - jC);
- double SUM = 100 * (sumBC + jB - jC + sumAC + jC - jA); // и суммарную сверху
- System.out.println(Math.ceil(SUM) / 100);
- System.out.println(Math.ceil(BA) / 100);
- double upperPlane = (Math.ceil(SUM) / 100) / SCALE / 4000;
- double lowerPlane = (Math.ceil(BA) / 100) / SCALE / 4000;
- double airDensity = 1.2250;
- double dP = airDensity * speed * speed / 2 * ((upperPlane * upperPlane) / (lowerPlane * lowerPlane) - 1);
- double F = 100 * dP * lowerPlane * wingLength;
- System.out.println("Подъемная сила - " + Math.ceil(F) / 100 + " Ньютонов.");
- in.close();
- }
- }
Add Comment
Please, Sign In to add comment