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

ЛАБА2

.docx
Скачиваний:
3
Добавлен:
06.04.2022
Размер:
172.11 Кб
Скачать

Министерство цифрового развития и массовых коммуникаций

Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное

бюджетное образовательное учреждение

высшего образования

«Московский технический университет связи и информатики»

(МТУСИ)

Кафедра Математическая кибернетика и информационные технологии

Отчет по лабораторной работе № 2

по дисциплине «Кроссплатформенные технологии программирования»

на тему: «Основы объектно-ориентированного программирования»

Выполнила: студентка группы БСТ20

Проверила: Мосева Марина Сергеевна

Москва 2022

1 Цель работы

Изучить основы объектно-ориентированного программирования, посредством написания программы и классов на java.

2 Задание

  1. Создать новый класс Point3d для представления точек в трехмерном Евклидовом пространстве, в котором будут реализоны:

  • создание нового объекта Point3d с тремя значениями с плавающей точкой (double);

  • создание нового объекта Point3d со значениями (0.0, 0.0, 0.0) по умолчанию;

  • возможность получения и изменения всех трех значений по отдельности;

  • метод для сравнения значений двух объектов Point3d.

  1. Добавить новый метод distanceТо, который в качестве параметра принимает другой объект Point3d, вычисляет расстояние между двумя точками с точность двух знаков после запятой и возвращает полученное значение.

  1. Создать другой класс под названием Labl, который будет содержать статический метод main. В этом классе реализовать следующую функциональность:

  • ввод координат трех точек, находящихся в трехмерном пространстве;

  • создание трех объектов типа Point3d на основании полученных данных.

  1. Создать второй статический метод computeArea, который принимает три объекта типа Point3d и вычисляет площадь треугольника, образованного этими точками.

  2. На основе полученных данных и с использованием реализованного алгоритма посчитать площадь и выведите полученное значение пользователю.

3 Ход работы

3.1 Код программы

Код файла Point3D.java:

public class Point3d { private double xCoord; private double yCoord; private double zCoord; public Point3d ( double x, double y, double z) { xCoord = x; yCoord = y; zCoord = z; } public Point3d () { this(0, 0, 0); } public double getX () { return xCoord; } public double getY () { return yCoord; } public double getZ () { return zCoord; } public void setX (double val) { xCoord = val; } public void setY (double val) { yCoord = val; } public void setZ (double val) { zCoord = val; } public boolean pointCompar ( Point3d P) { if (xCoord == P.getX() && yCoord == P.getY() && zCoord == P.getZ()) return true; else return false; } public double distanceTo ( Point3d P ) { double S = Math.sqrt( Math.pow( (xCoord - P.getX()), 2 ) + Math.pow( (yCoord - P.getY()), 2 ) + Math.pow( (zCoord - P.getZ()), 2 ) ); return (Math.round(S * 100.0) / 100.0); } }

Код файла Lab1.java:

import java.util.Scanner; public class Lab1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double[] coord = new double[3]; Point3d[] p = new Point3d[3]; for (int i = 0; i < 3; i++){ for (int j = 0; j < 3; j++){ coord[j] = sc.nextDouble(); } p[i] = new Point3d(coord[0], coord[1], coord[2]); } if( p[0].pointCompar(p[1]) || p[0].pointCompar(p[2]) || p[2].pointCompar(p[1])) System.out.println("В треугольнике не может быть две одинаковые точки"); else System.out.println( computeArea(p[0], p[1], p[2]) ); } public static double computeArea(Point3d A, Point3d B, Point3d C){ double a, b, c; a = A.distanceTo(B); b = B.distanceTo(C); c = A.distanceTo(C); double p = (a + b + c) / 2; return (Math.sqrt(p * (p - a) * (p - b) * (p - c))); } }

3.2 Результат работы программы

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

Рисунок 2 – Проверка правильности результата

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

4 Вывод

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

Список используемой литературы

  1. Камаев В.А., Костерин В.В. Технологии программирования. М.: Высшая школа,

2006.

  1. Жоголев Е.А.Технология программирования. – М.: Научный мир, 2004.

Соседние файлы в предмете Кросс-платформенное программирование