
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
(НИУ «БелГУ»)
ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ
КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Отчет по лабораторной работе № 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));
}
}