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

Задание 2. Работа с массивами. Векторы-столбцы и векторы-строки

Задание 2.1:

Решение на языке программирования Java представлено ниже, где при переборе каждого элемента из векторов происходит их суммирование.

import java.util.Arrays; public class Main { public static void main(String[] args) { double[] a = {6.2, 9.6, 3.5}; double[] b = {5.5, 9.8, 1.3}; double[] result = new double[a.length]; for (int i = 0; i < a.length; i++) { result[i] = a[i] + b[i]; } System.out.println(Arrays.toString(result)); } }

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

Рисунок 3 – Результат вычисления суммы векторов

Задание 2.2:

Реализация на языке программирования Java представлена ниже, где при обращении к соответствующим ячейкам массива происходит получение элемента.

import java.util.Arrays; public class Main { public static void main(String[] args) { double[] v = {4.2, 7.3, 7.9, 3.6, 3.5}; System.out.println(Arrays.toString(v)); System.out.println(v[1]); //Указываем 1, так как индексы в массиве с 0 v[3] = 5.7; System.out.println(Arrays.toString(v)); double[] w = {v[0], v[4], v[2]}; System.out.println(Arrays.toString(w)); } }

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

Рисунок 4 – Результат выполнения

Задание 2.3:

Реализация на языке программирования Java представлена ниже.

import java.util.Arrays; public class Main { public static void main(String[] args) { double[] w = {9.8, 7.4, 1.3, 2.5, 2.1, 3.7, 2.9}; System.out.println(Arrays.toString(w)); for (int i = 2; i < 7; i++) { //[3; 7] w[i] = 0; } System.out.println(Arrays.toString(w)); double[] w1 = new double[4]; for (int i = 1, j = 0; i < 5; i++, j++) { //[2; 5] w1[j] = w[i]; } System.out.println(Arrays.toString(w1)); double[] w2 = new double[w.length - 1]; for (int i = 0, j = 0; i < w.length; i++) { if (i == 1) { //Исключаем второй элемент continue; } w2[j++] = w[i]; } System.out.println(Arrays.toString(w2)); } }

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

Рисунок 5 – Результат выполнения

Задание 2.4:

Реализация представлена ниже.

import java.util.Arrays; public class Main { public static void main(String[] args) { double[] z = {2.7, 4.4, 3.5, 5.2, 6.6, 8.3}; System.out.println(Arrays.toString(z)); double pow = 1; double min = Double.MAX_VALUE; double max = Double.MIN_VALUE; int maxIndex = 0; for (int i = 0; i < z.length; i++) { double curr = z[i]; pow *= curr; if (min > curr) { min = curr; } if (max < curr) { max = curr; maxIndex = i; } } System.out.println("Pow: " + pow); System.out.println("Min: " + min); System.out.println("Max: " + max); System.out.println("MsxIndex: " + maxIndex); } }

Результаты вычислений представлены на рисунках 6-7. Результат (индекс максимального равен 5, так как индексы в массиве с 0):

Рисунок 6 - Индекс максимального равен 5, так как индексы в массиве с 0

Рисунок 7 - Но можно добавить: maxIndex = i + 1; и результат станет иметь вид:

Задание 2.5:

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

import java.util.Arrays; import java.util.Collections; import java.util.Map; import java.util.TreeMap; public class Main { public static void main(String[] args) { Double[] r = {-8.2, 6.5, -9.4, 3.8, 9.4, 6.1}; System.out.println("Default: " + Arrays.toString(r)); Arrays.sort(r); System.out.println("ASC: " + Arrays.toString(r)); Arrays.sort(r, Collections.reverseOrder()); System.out.println("DESC: " + Arrays.toString(r)); //Пункт "в" дублирует пункт "а" r = new Double[]{-8.2, 6.5, -9.4, 3.8, 9.4, 6.1}; System.out.println("Default: " + Arrays.toString(r)); //Ключ - значение из массива : Значение - индекс + 1 Map<Double, Integer> map = new TreeMap<>(); for (int i = 0; i < r.length; i++) { map.put(r[i], i + 1); } System.out.println(map); System.out.println("Значения в порядке возрастания: " + map.keySet()); System.out.println("Старые позиции: " + map.values()); } }

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

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

Задание 2.6:

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

import java.util.Arrays; public class Main { public static void main(String[] args) { int[] v1 = {3, 4, -5, 3}; int[] v2 = {-2, 8, -9, 1}; System.out.println("v1: " + Arrays.toString(v1)); System.out.println("v2: " + Arrays.toString(v2)); int[] result = new int[v1.length]; for (int i = 0; i < v1.length; i++) { result[i] = v1[i] * v2[i]; } System.out.println("A(умножение векторов): " + Arrays.toString(result)); for (int i = 0; i < v1.length; i++) { v1[i] = (int)Math.pow(v1[i], 2); } System.out.println("Б(Возведение вектора v1 во вторую степень): " + Arrays.toString(v1)); double[] v1Upd = new double[]{3, 4, -5, 3}; for (int i = 0; i < v1Upd.length; i++) { v1Upd[i] = Math.pow(v1Upd[i], v2[i]); } System.out.println("В(Возведение вектора v1 в степени, равные элементам v2): " + Arrays.toString(v1Upd)); v1 = new int[]{3, 4, -5, 3}; v2 = new int[]{-2, 8, -9, 1}; double[] result1 = div(v1, v2); System.out.println("Г(Деление вектора v1 на v2): " + Arrays.toString(result1)); double[] result2 = div(v2, v1); System.out.println("Г(Деление вектора v2 на v1): " + Arrays.toString(result2)); int[] v = {4, 11, 5, 2}; System.out.println(Arrays.toString(v)); double[] resultD1 = new double[v.length]; for (int i = 0; i < v.length; i++) { resultD1[i] = v[i] + 1.8; } System.out.println("Д(Прибавление 1.8 к вектору v): " + Arrays.toString(resultD1)); double[] resultD2 = new double[v.length]; for (int i = 0; i < v.length; i++) { resultD2[i] = v[i] - 1.8; } System.out.println("Д(Вычитание 1.8 из вектора v): " + Arrays.toString(resultD2)); int[] resultD3 = new int[v.length]; for (int i = 0; i < v.length; i++) { resultD3[i] = v[i] * 2; } System.out.println("Д(Умножение вектора v на 2): " + Arrays.toString(resultD3)); double[] resultD4 = new double[v.length]; for (int i = 0; i < v.length; i++) { resultD4[i] = v[i] / 2.0; } System.out.println("Д(Деление вектора v на 2): " + Arrays.toString(resultD4)); } private static double[] div(int[] arr1, int[] arr2) { double[] result = new double[arr1.length]; for (int i = 0; i < arr1.length; i++) { result[i] = (double) arr1[i] / arr2[i]; } return result; } }

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

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

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