Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Tyutterin_Yakov_Z1411_with_1

.pdf
Скачиваний:
0
Добавлен:
07.01.2025
Размер:
3.55 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Кафедра

Прикладной информатики

.

 

 

 

 

(наименование)

 

 

 

ОТЧЁТ ПО ПРАКТИКЕ

 

 

 

 

 

 

ЗАЩИЩЁН С ОЦЕНКОЙ

 

 

 

 

 

 

РУКОВОДИТЕЛЬ

 

 

 

 

 

 

доц., канд. техн. наук, доц.

 

 

 

 

О. О. Жаринов

 

 

 

 

 

 

должность, уч. степень, звание

 

 

подпись, дата

 

инициалы, фамилия

ОТЧЁТ ПО ПРАКТИКЕ

вид практики

Производственная

 

 

 

 

 

 

тип практики

Научно-исследовательская работа

 

 

 

 

 

 

на тему индивидуального задания

Основы программирования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выполнен

Тюттериным Яковом Николаевичем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

фамилия, имя, отчество обучающегося в творительном падеже

по направлению подготовки

09.00.00

 

 

Информатика и вычислительная техника

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

код

 

 

 

наименование направления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

наименование направления

 

 

 

 

 

направленности

 

09.03.03

 

 

Прикладная информатика в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

код

 

 

 

наименование направленности

информационной сфере

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

наименование направленности

 

 

 

 

 

Обучающийся группы №

Z1411

 

 

 

 

Я. Н. Тюттерин

 

 

 

 

 

 

 

 

 

 

 

номер

подпись, дата

 

инициалы, фамилия

Санкт–Петербург 2024

ЛАБОРАТОРНАЯ РАБОТА 1. Простейшие вычисления в Matlab

Задание 1:

import static java.lang.Math.*;

public class Main {

public static void main(String[] args) {

double result = (cTan(3.2) + sqrt(4 + cos(1.3))) / pow((cos(1.6 * PI) - 3 * tan(2.8)), 3)

- pow(E, -5 / 9.0) * (1 + cos(3 * PI)); System.out.println(result);

}

private static double cTan(double val) { return 1 / tan(3.2);

}

}

Результат:

Задание 2:

При текущем условии задача нерешаема и в результате всегда будет NaN(результат не определен), так как результатом вычисления косинуса из 9.1 будет отрицательное число, а извлечь корень из отрицательного числа – невозможно. Следовательно, добавляем дополнительную операцию по преобразованию отрицательного числа к положительному.

public class Main {

public static void main(String[] args) { double x = sqrt(log(2.6)) / sin(5.4); double y = sqrt(abs(cos(9.1)) / log(3.4)); double z = sqrt(log(5.48) / log(3.6));

double result = (x + y) / z; System.out.println(result);

}

}

Результат вычисления:

ЛАБОРАТОРНАЯ РАБОТА 2. Работа с массивами. Векторы-столбцы и векторы-строки

Задание 1:

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));

}

}

Результат:

Задание 2:

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));

}

}

Результат:

Задание 3:

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));

}

}

Результат:

Задание 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);

}

}

Результат (индекс максимального равен 5, так как индексы в массиве с 0):

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

Задание 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());

}

}

Результат:

Задание 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;

}

}

Результат:

ЛАБОРАТОРНАЯ РАБОТА 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);

}

}

Результат:

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