Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб работа языки высокого уровня java (2).docx
Скачиваний:
4
Добавлен:
25.05.2024
Размер:
182.75 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

(НИУ «БелГУ»)

ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Отчет по лабораторной работе № 2 Тема работы “Изучение основных понятий Java”

по дисциплине “Программирование на языках высокого уровня”

студента очного отделения

3 Курса 12002105 группы

Проверил:

Белгород, 2024

Ход выполнения работы

В ходе выполнения работы освоил работу с основным синтаксисом java, компиляцию и запуск программ, получил практические навыки программирования на языке Java.

Программа поддерживает как ввод с клавиатуры, так и чтение необходимых данных из файла.

Работа программы с вводом данных с клавиатуры представлена на рисунках 1–2.

Работа программы с чтением данных из файла представлена на рисунке 3.

Рисунок 1 – Работа программы со вводом с клавиатуры

Рисунок 2 – Работа программы со вводом с клавиатуры

Рисунок 3 – Работа программы при чтении данных из файла

Таким образом, были успешно выполнены все задания лабораторной работы.

Листинг программы

import java.util.ArrayList;

import java.util.Scanner;

import java.util.Collections;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

public class Main2 {

public static void main(String[] args) throws IOException {

Scanner scanner = new Scanner(System.in);

number1(scanner);

number2(scanner);

number3(scanner);

number4(scanner);

number5(scanner);

number6(scanner);

number7(scanner);

number8(scanner);

scanner.close();

String filename = "data.txt";

try (var bufReader = new BufferedReader(new FileReader(filename))){

number1_file(bufReader);

number2_file(bufReader);

number3_file(bufReader);

number4_file(bufReader);

number5_file(bufReader);

number6_file(bufReader);

number7_file(bufReader);

number8_file(bufReader);

} catch (IOException e){

System.out.println(String.format("Ошибочка. Текст - %s", e.toString()));

}

}

static void number1(Scanner scanner) {

System.out.print("Введите значение x: ");

double x = scanner.nextDouble();

System.out.print("Введите значение y: ");

double y = scanner.nextDouble();

var result = 8 * Math.pow((1 - Math.tan(x)), 1 / Math.tan(x)) + Math.cos(x - y);

System.out.println(String.format("\nНомер 1. Результат вычисления для x=%.3f, y=%.3f: %.4f\n", x, y, result));

}

static void number1_file(BufferedReader reader) throws IOException {

double x = Double.parseDouble(reader.readLine());

double y = Double.parseDouble(reader.readLine());

var result = 8 * Math.pow((1 - Math.tan(x)), 1 / Math.tan(x)) + Math.cos(x - y);

System.out.println(String.format("\nНомер 1. Результат вычисления для x=%.3f, y=%.3f: %.4f\n", x, y, result));

}

static void number2(Scanner scanner) {

System.out.print("Введите значение x: ");

while (!scanner.hasNextDouble()) {

System.out.println("Проблема со вводом");

scanner.next();

}

double x = scanner.nextDouble();

System.out.print("Введите значение y: ");

double y = scanner.nextDouble();

System.out.println(String.format("\nНомер 2.X = %.2f, Y = %.2f", x, y));

if (y == 0) {

System.out.println("Нельзя делить на ноль");

return;

}

System.out.println(String.format("Сумма равна %.3f", x + y));

System.out.println(String.format("Разность равна %.3f", x - y));

System.out.println(String.format("Произведение равно %.3f", x * y));

System.out.println(String.format("Частное равно %.3f\n", x / y));

}

static void number2_file(BufferedReader reader) throws IOException {

double x = Double.parseDouble(reader.readLine());

double y = Double.parseDouble(reader.readLine());

System.out.println(String.format("\nНомер 2. X = %.2f, Y = %.2f", x, y));

if (y == 0) {

System.out.println("Нельзя делить на ноль");

return;

}

System.out.println(String.format("Сумма равна %.3f", x + y));

System.out.println(String.format("Разность равна %.3f", x - y));

System.out.println(String.format("Произведение равно %.3f", x * y));

System.out.println(String.format("Частное равно %.3f\n", x / y));

}

static void number3(Scanner scanner) {

System.out.print("Введите трехзначное число: ");

int x = scanner.nextInt();

System.out.println(String.format("Номер 3. X = %d", x));

if (x < 100 || x > 999) {

System.out.println("The number given should be three digits");

}

var firstDigit = x % 10;

x /= 10;

var secondDigit = x % 10;

x /= 10;

if ((x + firstDigit + secondDigit) % 2 == 0) {

System.out.println("Сумма цифр числа чётная\n");

} else {

System.out.println("Сумма цифр числа нечётная\n");

}

}

static void number3_file(BufferedReader reader) throws IOException {

int x = Integer.parseInt(reader.readLine());

System.out.println(String.format("Номер 3. X = %d", x));

if (x < 100 || x > 999) {

System.out.println("В числе должно быть 3 цифры");

}

var firstDigit = x % 10;

x /= 10;

var secondDigit = x % 10;

x /= 10;

if ((x + firstDigit + secondDigit) % 2 == 0) {

System.out.println("Сумма цифр числа чётная\n");

} else {

System.out.println("Сумма цифр числа нечётная\n");

}

}

static void number4(Scanner scanner) {

System.out.print("Введите значение x: ");

double x = scanner.nextDouble();

System.out.println(String.format("\nНомер 4. X = %.2f", x));

ArrayList<Double> values = new ArrayList<>();

if (!Double.isNaN(Math.sin(x)))

values.add(Math.sin(x));

if (!Double.isNaN(Math.cos(x)))

values.add(Math.cos(x));

if (!Double.isNaN(Math.log(x)))

values.add(Math.log(x));

Collections.sort(values);

for (double value : values) {

if (Math.abs(value - Math.sin(x)) < 0.000001)

System.out.print("Sin x: ");

else if (Math.abs(value - Math.cos(x)) < 0.000001)

System.out.print("Cos x: ");

else if (Math.abs(value - Math.log(x)) < 0.000001)

System.out.print("Log x: ");

System.out.println(String.format("%.2f", value));

}

System.out.println();

}

static void number4_file(BufferedReader reader) throws IOException {

double x = Double.parseDouble(reader.readLine());

System.out.println(String.format("\nНомер 4. X = %.2f", x));

ArrayList<Double> values = new ArrayList<>();

if (!Double.isNaN(Math.sin(x)))

values.add(Math.sin(x));

if (!Double.isNaN(Math.cos(x)))

values.add(Math.cos(x));

if (!Double.isNaN(Math.log(x)))

values.add(Math.log(x));

Collections.sort(values);

for (double value : values) {

if (Math.abs(value - Math.sin(x)) < 0.000001)

System.out.print("Sin x: ");

else if (Math.abs(value - Math.cos(x)) < 0.000001)

System.out.print("Cos x: ");

else if (Math.abs(value - Math.log(x)) < 0.000001)

System.out.print("Log x: ");

System.out.println(String.format("%.2f", value));

}

System.out.println();

}

static void number5(Scanner scanner) {

System.out.println("\nНомер 5");

double radius, diameter, circumference;

double area;

System.out.print("1 - радиус, 2 - диаметр, 3 - длина окружности. Ваш выбор: ");

int choice = scanner.nextInt();

switch (choice) {

case 1:

System.out.print("Радиус круга: ");

radius = scanner.nextDouble();

area = Math.PI * radius * radius;

System.out.println(String.format("Площадь круга: %.2f", area));

break;

case 2:

System.out.print("Диаметр круга: ");

diameter = scanner.nextDouble();

radius = diameter / 2;

area = Math.PI * radius * radius;

System.out.println(String.format("Площадь круга: %.2f", area));

break;

case 3:

System.out.print("Длина окружности: ");

circumference = scanner.nextDouble();

radius = circumference / (2 * Math.PI);

area = Math.PI * radius * radius;

System.out.println(String.format("Площадь круга: %.2f", area));

break;

default:

System.out.println("Неверно.");

break;

}

System.out.println();

}

static void number5_file(BufferedReader reader) throws IOException {

int choice = Integer.parseInt(reader.readLine());

double radius, diameter, circumference;

double area;

switch (choice) {

case 1:

radius = Double.parseDouble(reader.readLine());

area = Math.PI * radius * radius;

System.out.println(String.format("Площадь круга: %.2f", area));

break;

case 2:

diameter = Double.parseDouble(reader.readLine());

radius = diameter / 2;

area = Math.PI * radius * radius;

System.out.println(String.format("Площадь круга: %.2f", area));

break;

case 3:

circumference = Double.parseDouble(reader.readLine());

radius = circumference / (2 * Math.PI);

area = Math.PI * radius * radius;

System.out.println(String.format("Площадь круга: %.2f", area));

break;

default:

System.out.println("Неверно.");

break;

}

System.out.println();

}

static void number6(Scanner scanner) {

System.out.print("Введите значение N: ");

int n = scanner.nextInt();

System.out.print("Введите значение K: ");

int k = scanner.nextInt();

System.out.print("Введите значение M: ");

int m = scanner.nextInt();

System.out.println(String.format("\nНомер 6. N = %d, K = %d, M = %d", n, k, m));

String result = "";

result += n + "" + k;

System.out.println("Совместная запись чисел: " + result);

var mChar = m + "";

for (char c : result.toCharArray()) {

if (c == mChar.charAt(0)) {

System.out.println(String.format("Цифра %d есть в итоговом числе\n", m));

return;

}

}

System.out.println(String.format("Цифры %d нет в итоговом числе\n", m));

}

static void number6_file(BufferedReader reader) throws IOException {

int n = Integer.parseInt(reader.readLine());

int k = Integer.parseInt(reader.readLine());

int m = Integer.parseInt(reader.readLine());

System.out.println(String.format("\nНомер 6. N = %d, K = %d, M = %d", n, k, m));

String result = "";

result += n + "" + k;

System.out.println("Совместная запись чисел: " + result);

var mChar = m + "";

for (char c : result.toCharArray()) {

if (c == mChar.charAt(0)) {

System.out.println(String.format("Цифра %d есть в итоговом числе\n", m));

return;

}

}

System.out.println(String.format("Цифры %d нет в итоговом числе\n", m));

}

static void number7(Scanner scanner) {

System.out.print("Введите значение N: ");

int n = scanner.nextInt();

System.out.println(String.format("\nНомер 7. N = %d", n));

double sum = 0;

for (var i = 1; i <= n; i++) {

double denominator = 0;

for (var j = 1; j <= i; j++) {

denominator += Math.sin(j);

}

sum += 1 / denominator;

}

System.out.println(String.format("Результат вычислений: %.5f\n", sum));

}

static void number7_file(BufferedReader reader) throws IOException {

int n = Integer.parseInt(reader.readLine());

System.out.println(String.format("\nНомер 7. N = %d", n));

double sum = 0;

for (var i = 1; i <= n; i++) {

double denominator = 0;

for (var j = 1; j <= i; j++) {

denominator += Math.sin(j);

}

sum += 1 / denominator;

}

System.out.println(String.format("Результат вычислений: %.5f\n", sum));

}

static void number8(Scanner scanner) {

System.out.print("Введите значение N: ");

int n = scanner.nextInt();

System.out.println(String.format("\nНомер 8. N = %d", n));

int sum = 0, count = 0, currentValue = 5;

while (sum < n) {

sum += currentValue;

currentValue += 4;

count++;

}

System.out.println(String.format("Нужно %d членов последовательности\n", count));

}

static void number8_file(BufferedReader reader) throws IOException {

int n = Integer.parseInt(reader.readLine());

System.out.println(String.format("\nНомер 8. N = %d", n));

int sum = 0, count = 0, currentValue = 5;

while (sum < n) {

sum += currentValue;

currentValue += 4;

count++;

}

System.out.println(String.format("Нужно %d членов последовательности\n", count));

}

}