Перейти к содержимому

Как подключить библиотеку math в java

  • автор:

Подключение пользовательских библиотек

Здравствуйте! Проблема такая! Есть 2 класса Triangle90 и MyClass. Оба реализованы в разных файлах. Метод main в MyClass. Нужно чтоб в main`е метода MyClass вызывался Triangle90. Однако прога выводит ошибки. Папка с классом Triangle90 находится в одной папке с MyClass. Ниже скрин проблемы и коды классов. Помогите пожалуйста с подключением класса! Заранее спасибо!!

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
package MyLib; import java.math.*; import java.io.*; public class Triangle90 { double kat1, kat2; double A,B; Triangle90() { kat1=1; kat2=2; } Triangle90(double kat1, double kat2) { this.kat1=kat1; this.kat2=kat2; } double getA(double kat1, double _grip) { double A= Math.asin(kat1/_grip); return (180*A)/Math.PI; } double getB(double kat2, double _grip) { double B=Math.acos(kat2/_grip); return (180*B)/Math.PI; } double Grip(double kat1, double kat2) { double _grip=(Math.sqrt((Math.pow(kat1,2))+(Math.pow(kat2,2)))); return _grip; } double getSquare(double kat1, double kat2) { double _square=0.5*kat1*kat2; return _square; } double getPer(double kat1, double kat2, double grip) { double _per= kat1+kat2+grip; return _per; } boolean equals(Triangle90 f) { return this.kat1==f.kat1 && this.kat2== f.kat2; } } //Math.PI
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import MyLib.*; public class MyClass { public static void main(String a[]) { Triangle90 t = new Triangle90(); t.Grip(2,3); t.getPer(1,2,3); System.out.println("Perimetr of triangle: "+t.getPer(1,2,3)); System.out.println("Square of triangle: "+t.getSquare(5,2)); System.out.println("A: "+t.getA(2,3)); System.out.println("B: "+t.getB(1,3)); } }

Дополнительные классы

Для выполнения различных математических операций в Java в пакете java.lang определен класс Math . Рассмотрим его основные методы:

    abs(double value) : возвращает абсолютное значение для аргумента value

double result = Math.abs(-13.5); // 13.5
double result = Math.acos(1); // 0.0
double result = Math.cbrt(27); // 3
double result = Math.ceil(2.34); // 3
double result = Math.floor(2.56); // 2
System.out.println(Math.floorDiv(1, 2)); // 0 System.out.println(Math.floorDiv(7, 2)); // 3 System.out.println(Math.floorDiv(9, 2)); // 4
System.out.println(Math.rint(2)); // 2.0 System.out.println(Math.rint(2.3)); // 2.0 System.out.println(Math.rint(2.5)); // 2.0 System.out.println(Math.rint(2.5001)); // 3.0 System.out.println(Math.rint(2.8)); // 3.0
System.out.println(Math.round(2.3)); // 2 System.out.println(Math.round(2.5)); // 3 System.out.println(Math.round(2.5001)); // 3 System.out.println(Math.round(2.8)); // 3
System.out.println(Math.scalb(5, 3)); // 5*2*2*2 = 40 System.out.println(Math.scalb(3, 4)); // 3*2*2*2*2 = 48
System.out.println(Math.signum(2.3)); // 1 System.out.println(Math.signum(-2.3)); // -1
double result1 = Math.sqrt(16); // 4
System.out.println(Math.toDegrees(3.14159)); // 180 System.out.println(Math.toRadians(90)); // 1,57079.

Также класс Math определяет две константы: Math.E и Math.PI . Например, вычислим площадь круга:

import java.util.Scanner; public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Введите радиус круга: "); int radius = in.nextInt(); long area = Math.round(Math.PI * Math.pow(radius, 2)); System.out.printf("Площадь круга с радиусом %d равна %d \n", radius, area); >>
Введите радиус круга: 10 Площадь круга с радиусом 10 равна 314

Библиотека в Java, MathGL

Я только начал учить java после c#, но вот разобраться пока — увы. Мне нужно в моей проге решать различные уравнения (линейные, квадратные, диф. уравнения), хочу использовать библиотеку MathGL (ее используют в С++). Я использую компилятор Eclipse. Вопрос: подходит эта библиотека MathGL (может есть что-то лучше)? Как подключить библиотеку в Java?

Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
задан 27 окт 2011 в 14:02
219 7 7 серебряных знаков 23 23 бронзовых знака
удивительно, начал учить яву, после шарпа, а сравниваешь с либами их плюсов =)
27 окт 2011 в 14:38

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Библиотека на С/C++ подключается к приложению Java через JNI. В описании MathGL указано, что она уже включает интерфейс для Java:

Библиотека MathGL имеет интерфейсы к целому ряду языков программирования. Большинство из них базируется на С интерфейсе и построены с помощью инструментария SWIG. Сюда входят Python, Java, Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R, Ruby, Tcl.

Но проще, наверное, написать приложение на C/C++ и вызывать его из Java.

Математические библиотеки на Java:

  • Mathematics Library
  • High Performance Scientific and Technical Computing
  • A computer algebra system
  • high-performance, mathematical, Boolean and functional expression parsing and evaluation

Ну, и можно еще найти, если поискать.

Как подключить библиотеку math в java

Насколько я знаю, при подключении библиотеки в Java (той же Math, к примеру), отпадает необходимость писать библиотека.метод, таким образом сокращается строка и удобнее. В шарпах такой фишки нет?

Регистрация: 12.01.2011
Сообщений: 19,500

Math это класс. Если вы о static import, то есть в новом C# (VS 2015+)

using static System.Math; public class Program < public static void Main() < Console.WriteLine(Abs(-42)); >>
System.Math.Abs(-42)
Math.Abs(-42)
using System;

using System это не подключение библиотеки, а просто указание namespace для использования/импорта, чтоб не писать его при обращении к классам оттуда. namespace это аналог package в Java.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://kapelnicza.vyvod-iz-zapoya-v-stacionare-samara12.ru/