Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otch (1) - для слияния.docx
Скачиваний:
6
Добавлен:
07.01.2025
Размер:
10.23 Mб
Скачать

Задание 3. Работа с массивами

Задание 3.1:

Листинг программы представлен ниже.

import static java.lang.Math.*; public class Main { public static void main(String[] args) { double[] values = {0.1, 0.3, 0.4, 0.7, 1.3, 1.5, 2.2}; for (double x : values) { System.out.println("f(" + x + ") = " + funcY(x)); } } private static double funcY(double x) { return 7 * pow(sin(x), 2) / (1 * tan(x)) - pow(E, 5 * x) * log(x); } }

Результаты вычислений для заданных значений представлены на рисунке 10.

Рисунок 10 – Результаты вычислений

Задание 3.2:

Листинг программы представлен ниже.

import java.util.Arrays; import static java.lang.Math.*; public class Main { public static void main(String[] args) { System.out.println(Arrays.toString(generate(0, 1, 0.2))); System.out.println(Arrays.toString(generate(2, 1, -0.4))); } private static double[] generate(double start, double end, double step) { int length = (int) abs((max(start, end) - min(start, end)) / step) + 1; double[] result = new double[length]; for (int i = 0; i < length; i++, start += step) { result[i] = start; } return result; } }

Результат вычислений представлен на рисунке 11.

Рисунок 11 – Результат вычислений

Задание 3.3

График построен с шагом 0.3 и представлен на рисунке 12.

Рисунок 12 – График

Задание 3.4

График построен с шагом 0.25 и представлен на рисунке 13.

Рисунок 13 – График

Задание 3.5:

Листинг программы, вычисляющей скалярное произведение, длину и векторное произведение векторов представлен ниже.

import static java.lang.Math.pow; import static java.lang.Math.sqrt; public class Main { public static void main(String[] args) { Vector vA = new Vector(8.1, -9.7, 1.6); Vector vB = new Vector(6.1, 7.5, -0.9); System.out.println(vA); System.out.println(vB); System.out.println("(A)Скалярное произведение: " + vA.scalarMult(vB)); System.out.println("(Б)Длина(модуль) вектора A: " + vA.length()); System.out.println("(В)Произведение векторов: " + vA.vectorMult(vB)); } private record Vector(double x, double y, double z) { public double scalarMult(Vector c) { return x * c.x + y * c.y + z * c.z; } public Vector vectorMult(Vector c) { double tmpX = y * c.z - z * c.y; double tmpY = -(x * c.z - z * c.x); double tmpZ = z * c.y - y * c.x; return new Vector(tmpX, tmpY, tmpZ); } public double length() { return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2)); } @Override public String toString() { return "x = " + x + ", y = " + y + ", z = " + z; } } }

Результат представлен на рисунке 14.

Рисунок 14 – Результаты вычислений

Задание 3.6:

Листинг программы, решающей поставленную задачу, описан ниже.

import static java.lang.Math.pow; import static java.lang.Math.sqrt; public class Main { public static void main(String[] args) { Vector a = new Vector(2.5, 0, 0); Vector b = new Vector(6.5, 5.9, 0); Vector c = new Vector(-1.7, -2.6, 8.5); double v = b.vectorMult(c).scalarMult(a); System.out.println(v); } private record Vector(double x, double y, double z) { public double scalarMult(Vector c) { return x * c.x + y * c.y + z * c.z; } public Vector vectorMult(Vector c) { double tmpX = y * c.z - z * c.y; double tmpY = -(x * c.z - z * c.x); double tmpZ = z * c.y - y * c.x; return new Vector(tmpX, tmpY, tmpZ); } public double length() { return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2)); } @Override public String toString() { return "x = " + x + ", y = " + y + ", z = " + z; } } }

Результат вычислений зафиксирован на рисунке 15.

Рисунок 15 – Результат вычислений

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]