From 8a4cbcd69cbddbb0d226eb458b24791101a80da6 Mon Sep 17 00:00:00 2001 From: Hadllee <iliagorbunov71@gmail.com> Date: Sun, 30 Mar 2025 22:38:28 +0700 Subject: [PATCH 1/4] Lab2 done --- src/Main.java | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/src/Main.java b/src/Main.java index 9c3df03..26d6e60 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,5 +1,74 @@ +import java.util.Arrays; + public class Main { + public static double calcIntegral(double start, double end, int split, int a, int b, int c){ + if (end == start){ + return 0.0000; + } + double interval = (Math.abs(end- start))/ split; + double currentIntegral = 0; + for (double i = start; i <= end; i += interval){ + double nextI = i + interval; + double square1 = a*i*i + b*i +c; + double square2 = a*nextI*nextI + b*nextI +c; + double sum = (square1 + square2)/2; + double area = sum * interval; + currentIntegral+= area; + } + return currentIntegral; + } + + public static double[][] makeTableData(int start, double end, int split, int a, int b, int c, int size){ + double[][] integralArray = new double[size+1][size+1]; + double length = (end - start)/(size - 1); + + for (int i = 0; i <= size; i++) { + for (int j = 0; j <= size; j++) { + if (i == 0 && j == 0){ + integralArray[i][j] = 0.0000; + } + else if (i == 0){ + integralArray[i][j] = j == 1 ? start : start + (j-1)*length; + } + else if (j == 0){ + integralArray[i][j] = i == 1 ? start : start + (i-1)*length; + } + else{ + if (start + (j-1)*length < start + (i-1)*length){ + integralArray[i][j] = calcIntegral(start + (j-1)*length, start + (i-1)*length, split, a, b, c); + + } + else { + integralArray[i][j] = calcIntegral(start + (i-1)*length, start + (j-1)*length, split, a, b, c); + } + } + } + } + return integralArray; + } + + public static void consoleTable(double[][] arr){ + for (int i = 0; i < arr.length; i++) { + int n = 0; + for (int j = 0; j < arr[i].length; j++) { + n += String.format("%10.4f", arr[i][j]).length(); + System.out.print(String.format("%9.4f", arr[i][j]) + " "); + if (j == 0){ + System.out.print("|"); + } + } + System.out.println(); + System.out.print("_".repeat(n)); + System.out.println(); + } + + } public static void main(String[] args) { + consoleTable(makeTableData(-5, 5, 100000, 1, 0, -3, 11)); + + + } + } \ No newline at end of file -- GitLab From 2c0b2304c3c4ebcabbae586f47831232cfd0d22d Mon Sep 17 00:00:00 2001 From: Hadllee <iliagorbunov71@gmail.com> Date: Sun, 30 Mar 2025 22:39:00 +0700 Subject: [PATCH 2/4] Lab2 done --- src/Main.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Main.java b/src/Main.java index 26d6e60..726786a 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,5 +1,3 @@ -import java.util.Arrays; - public class Main { public static double calcIntegral(double start, double end, int split, int a, int b, int c){ if (end == start){ -- GitLab From 32c616ab4746f7036c8417fa1458b742fd6bc12a Mon Sep 17 00:00:00 2001 From: Hadllee <iliagorbunov71@gmail.com> Date: Sun, 30 Mar 2025 22:50:29 +0700 Subject: [PATCH 3/4] Lab2 done --- src/Main.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Main.java b/src/Main.java index 726786a..287ad23 100644 --- a/src/Main.java +++ b/src/Main.java @@ -49,11 +49,17 @@ public class Main { for (int i = 0; i < arr.length; i++) { int n = 0; for (int j = 0; j < arr[i].length; j++) { - n += String.format("%10.4f", arr[i][j]).length(); - System.out.print(String.format("%9.4f", arr[i][j]) + " "); - if (j == 0){ + if (i == 0 && j == 0){ + System.out.print(" ".repeat(10)); System.out.print("|"); } + else { + System.out.print(String.format("%9.4f", arr[i][j]) + " "); + if (j == 0){ + System.out.print("|"); + } + } + n += String.format("%10.4f", arr[i][j]).length(); } System.out.println(); System.out.print("_".repeat(n)); -- GitLab From 0d7b7a9651068af8347d0f5e4469577633975e5e Mon Sep 17 00:00:00 2001 From: Hadllee <iliagorbunov71@gmail.com> Date: Mon, 31 Mar 2025 15:28:46 +0700 Subject: [PATCH 4/4] Lab2 done --- src/Main.java | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/Main.java b/src/Main.java index 287ad23..8fe0887 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,3 +1,4 @@ +import java.util.Scanner; public class Main { public static double calcIntegral(double start, double end, int split, int a, int b, int c){ if (end == start){ @@ -16,7 +17,7 @@ public class Main { return currentIntegral; } - public static double[][] makeTableData(int start, double end, int split, int a, int b, int c, int size){ + public static double[][] makeTableData(double start, double end, int split, int a, int b, int c, int size){ double[][] integralArray = new double[size+1][size+1]; double length = (end - start)/(size - 1); @@ -68,10 +69,24 @@ public class Main { } public static void main(String[] args) { - consoleTable(makeTableData(-5, 5, 100000, 1, 0, -3, 11)); - - - + Scanner in = new Scanner(System.in); + System.out.println("Введите коэффициенты уравнения a, b, c:"); + System.out.print("a = "); + int a = in.nextInt(); + System.out.print("b = "); + int b = in.nextInt(); + System.out.print("c = "); + int c = in.nextInt(); + System.out.println("Введите интервал интегрирования:"); + System.out.print("От "); + double start = in.nextDouble(); + System.out.print("До "); + double end = in.nextDouble(); + System.out.println("Размер таблицы"); + int size = in.nextInt(); + System.out.println("Число разбиений"); + int split = in.nextInt(); + consoleTable(makeTableData(start, end, split, a, b, c, size)); } -- GitLab