ITMO-Study-Note

MainPage/Program/lab1

Лабораторная работа #1

Написать программу на языке Java, выполняющую соответствующие варианту действия. Программа должна соответствовать следующим требованиям:

  1. Она должна быть упакована в исполняемый jar-архив.
  2. Выражение должно вычисляться в соответствии с правилами вычисления математических выражений (должен соблюдаться порядок выполнения действий и т.д.).
  3. Программа должна использовать математические функции из стандартной библиотеки Java.
  4. Результат вычисления выражения должен быть выведен в стандартный поток вывода в заданном формате.

Выполнение программы необходимо продемонстрировать на сервере helios.

Отчёт по лабораторной работе должен содержать:

  1. Текст задания.
  2. Исходный код программы.
  3. Результат работы программы.
  4. Выводы по работе.

Вопросы к защите лабораторной работы:

  1. Язык Java. Особенности языка. Java 语言。 语言的特点。
  2. Средства разработки. JDK и JRE.Компиляция и выполнение программы. JAR-архивы. 开发工具 JDK 和 JRE.编译和执行程序。 JAR 存档
  3. Примитивные типы данных в Java.Приведение типов. Java 中的原始数据类型。类型转换。
  4. Работа с переменными. Декларация. Инициализация. Присваивание. 使用变量 声明 初始化 赋值
  5. Одномерные и двумерные массивы. Декларация и создание массивов. Доступ к элементам массива. 一维和二维数组。 数组的声明和创建 访问数组元素
  6. Инструкции ветвления (if-else, switch) и циклов (do, while, for). 分支(if-else、switch)和循环(do、while、for)指令。
  7. Операторы и выражения в Java. Особенности вычисления, приоритеты операций. Java 中的运算符和表达式 计算的特殊性、操作的优先级。
  8. Математические функции в составе стандартной библиотеки Java. Класс java.lang.Math. 作为 Java 标准库一部分的数学函数。 类 java.lang.Math.
  9. Подпрограммы, методы, параметры и возвращаемые значения. 子程序、方法、参数和返回值。
  10. Форматированный вывод числовых данных. 数字数据的格式化输出。

Ответы

  1. Java — это кросс-платформенный объектно-ориентированный язык программирования, обладающий безопасностью и масштабируемостью
  2. JDK — это комплект инструментов для разработки на Java, включающий компилятор(Программа с исходным кодом, написанная на компьютерном языке высокого уровня, который прост в написании, чтении и обслуживании) и JRE (Java Runtime Environment) для выполнения программ. JAR-файлы используются для упаковки и распространения Java-приложений.
  3. Примитивные типы данных в Java включают int, double, char и boolean, а также поддерживают приведение типов.(тип символа, Тип с плавающей точкой, целочисленный тип, логический тип).
  4. Переменные необходимо объявлять перед использованием, инициализация — это присвоение начального значения, а присваивание — обновление значения существующей переменной.
  5. Одномерный массив объявляется как int[] arr = new int[5];, а двумерный — как int[][] matrix = new int[3][4];Ключевое слово new необходимо для выделения памяти массива.
  6. Ветвление (if-else) и циклы (do-while, while, for) используются для управления потоком выполнения программы.
  7. В Java есть арифметические(+,-,*,/), сравнительные(<,>,<=,>=,==,!=) и логические операторы(&&,   ,!), приоритеты которых влияют на порядок вычисления.
  8. Класс java.lang.Math предоставляет математические функции, такие как квадратный корень, абсолютное значение.
  9. Методы — это блоки кода, выполняющие определенные задачи, принимающие параметры и возвращающие результаты.Подпрограмма (англ. subroutine) — поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий.Возвращение значений - это запись в специальную область памяти при завершении функции.Параметры — это переменные, определенные в объявлении метода после имени метода, внутри скобок .
  10. Для форматированного вывода чисел используется System.out.printf(), например, System.out.printf(“Value: %.2f”, 123.456);.(формат, объект) Примереые варианты:

Вариант 76041

  1. Создать одномерный массив z типа short. Заполнить его числами от 1 до 18 включительно в порядке убывания.
  2. Создать одномерный массив x типа float. Заполнить его 16-ю случайными числами в диапазоне от -14.0 до 4.0.
  3. Создать двумерный массив z размером 18x16. Вычислить его элементы по следующей формуле (где x = x[j]):

  4. Напечатать полученный в результате массив в формате с четырьмя знаками после запятой.

Решение варианта 7:

import java.util.Random;

public class lab1 {
    public static void main(String[] args) {
        int d[] = new int[7];
        int b = 16;
        for (int i = 0; i < 7; i++) {
            d[i] = b;
            b -= 2;
        }
        System.out.println("一维数组为:");
        for (int i = 0; i < 7; i++) {
            System.out.println(d[i] + "");
        }
        Random arr = new Random();
        float max = 5.0f;
        float min = -10.0f;
        float x[] = new float[10];
        for (int i = 0; i < 10; i++) {
            x[i] = min + arr.nextFloat(max - min + 1);
        }
        System.out.println("十个随机数为:");
        for (int i = 0; i < 10; i++) {
            System.out.println(x[i] + "");
        }
        double[][] n = new double[7][10]; // 定义数组空间
        for (int i = 0; i < 7; i++) {
            for (int j = 0; j < 10; j++) {
                if (d[i] == 10) {
                    n[i][j] = Math.asin(0.2 * Math.cos(x[j]));
                } else if (d[i] == 8 || d[i] == 12 || d[i] == 14) {
                    double e = Math.E;
                    n[i][j] = Math.cos(Math.atan(1 / Math.pow(e, Math.abs(x[j]))));
                } else {
                    n[i][j] = Math.sin(Math.pow(Math.pow((Math.asin(x[j]-2.5/15))*(1-Math.log(Math.abs(x[j]))),x[j]),x[j]/2));
                }
            }
        }
        System.out.println("二维数组为:");
        for (int i = 0; i < 7; i++) {
            for (int j = 0; j < 10; j++) {
                System.out.print(n[i][j] + "");
            }
            System.out.println();
        }
    }
}