
Tyutterin_Yakov_Z1411_with_1
.pdfМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
Кафедра |
Прикладной информатики |
. |
|||||
|
|
|
|
(наименование) |
|
|
|
ОТЧЁТ ПО ПРАКТИКЕ |
|
|
|
|
|
|
|
ЗАЩИЩЁН С ОЦЕНКОЙ |
|
|
|
|
|
|
|
РУКОВОДИТЕЛЬ |
|
|
|
|
|
|
|
доц., канд. техн. наук, доц. |
|
|
|
|
О. О. Жаринов |
||
|
|
|
|
|
|
||
должность, уч. степень, звание |
|
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЁТ ПО ПРАКТИКЕ
вид практики |
Производственная |
|
|
|
|
|
|
|
|
тип практики |
Научно-исследовательская работа |
|
||
|
|
|
|
|
на тему индивидуального задания |
Основы программирования |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
выполнен |
Тюттериным Яковом Николаевичем |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
||||
|
фамилия, имя, отчество обучающегося в творительном падеже |
||||||||||||
по направлению подготовки |
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);
}
}
Результат: