Как сделать квадрат в джава

Обновлено: 04.07.2024

Порой необходимо сделать более серьезные вычисления, чем сложить или помножить два числа. На практике постоянно нужно или посчитать квадратный корень, или возвести в степень, или взять модуль. Также часто нужно генерировать случайные числа, чтобы программа каждый раз вела себя по-новому, задавала уникальные вопросы, располагала персонажей на экране в других положениях и так далее. Для всего этого в Java есть встроенный класс Math.

Пусть, к примеру, есть объявление, что площадь квадратного участка земли составляет 9 соток, и вы хотите посчитать длину стороны такого участка. Сотка - это 100 квадратных метров, а значит 9 соток - это 900 кв. метров. Длина стороны будет квадратным корнем из площади квадрата. Для расчета стороны нам поможет класс Math, и вот как он работает:

В этом примере мы запускаем функцию, которая возвращает значение. Так устроены все вычислительные функции – они берут параметры, делают вычисления и выдают результат там же, где были вызваны. Так и здесь вместо

потому что sqrt вернет число 10, и десятка подставится на место вызова sqrt. Мы вскоре сами будем писать функции, которые возвращают значение. Пока что воспользуемся библиотечными.

Класс Math содержит много функций для самых разных вычислений. Доступ к ним идет через слово Math и точку вот так:

Теперь давайте попробуем сделать более сложные выражения. Математические функции получают на вход число и в результате дают другое число. Поэтому можно результат одной функции сразу передавать другой. Посмотрим на примере:

Очень часто бывает нужно получить случайные числа. Например, в следующих темах мы с вами сделаем игру в лотерею, и нужно будет генерировать случайное счастливое число, а пользователь будет его угадывать - каждый раз разное. На помощь приходит простая функция Math.random, которая при запуске возвращает очередное случайное число в диапазоне от 0 до 1. Хотите диапазон от 0 до 100? Умножьте полученное число на 100. Подробнее посмотрим в коде:

Самое главное мы уже освоили. Теперь время решать задачи. Ответьте на несколько вопросов, чтобы лучше усвоился новый материал. Имейте в виду, некоторые ответы были освещены в темах раньше или не были освещены вообще, так что если приходится думать слишком много, то просто открывайте ответ по плюсику и читайте. Другое дело задачи из нашего задачника - только для некоторых типов задач дано решение. остальное вы должны написать сами.

Когда мы пишем название функции и указываем затем круглые скобки, они запускается. Есть функции, не возвращающие никаких значений - например, распечатка. А есть функции, возвращающие значения, например - вычисление квадратного корня. Фраза "функция возвращает значение" означает, что при вызове такой функции в коде прямо вместо ее имени будет подставлено число (или набор чисел, как мы узнаем позже), которое она рассчитала.

Большинство математических функций возвращают ответ как дробное число. А в нашем коде написано:
int x = некоторое дробное;
Получается мы сохраняем дробное число в переменную, где могут храниться только целые, т.к. мы дали ей тип int. Компилятор переживает, что мы отбрасываем дробную часть, ведь возможно в ее вычислении и состояла вся задача.

Чтобы убрать ошибку нужно написать:
double x = Math.sqrt (100);
И другой вариант:
int x = (double) Math.sqrt (100);

Когда мы слева от имени функции в скобках указываем тип, мы говорим компилятору - привести то, что справа в указанному типу несмотря ни на что. В данном случае - отбросить дробную часть, потеряв точность. Это называется приведение типов - у нас еще будет об этом целая тема.

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

(размер зависит от пользовательского ввода) Пользователь должен ввести ширину и длину. На данный момент я смог создать полый квадрат и полную площадь и все такое. Теперь я просто сильно зациклен на то, как я могу создать квадрат с разными персонажами.

Это то, как далеко я пришел.. Мне 3 недели в курс для начинающих для программирования, и я просто потерялся, когда дело доходит до этой задачи.

Привет умники и умницы! Спасибо что заглянули в тему, а ответившим вдвойне спасибо!

Мне нужно вычислить квадратный корень посредством Java и вроде бы решение есть но вот не пойму что тут неправильно?

Такой вариант выдаёт 4.0

Но ведь в первом и втором варианте должно быть -4 не так ли? Что я неправильно делаю? Объясните пожалуйста.

Простой 2 комментария

samodum

NeiroNx

5d4f7e8096c9d339803926.jpg

Не несите бред, все нормально извлекается:

Дело в том, что квадратный корень с минусового числа найти нельзя.
Если например мы вознесем -2 в квадрат, то выйдет (-2)*(-2) = 4. Минус на минус дает плюс. В соответствии корень из 4 найти можно: это будет либо 2 либо -2. В математике часто пишут √4=±2. Так как -2 в квадрате и +2 в квадрате = 4.
А из минусового числа найти квадратный корень нельзя.

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

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

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

acos(double value) : возвращает арккосинус value. Параметр value должен иметь значение от -1 до 1

asin(double value) : возвращает арксинус value. Параметр value должен иметь значение от -1 до 1

atan(double value) : возвращает арктангенс value

cbrt(double value) : возвращает кубический корень числа value

ceil(double value) : возвращает наименьшее целое число с плавающей точкой, которое не меньше value

cos(double d) : возвращает косинус угла d

cosh(double d) : возвращает гиперболический косинус угла d

exp(double d) : возвращает основание натурального логарифма, возведенное в степень d

floor(double d) : возвращает наибольшее целое число, которое не больше d

floorDiv(int a, int b) : возвращает целочисленный результат деления a на b

log(double a) : возвращает натуральный логарифм числа a

log1p(double d) : возвращает натуральный логарифм числа (d + 1)

log10(double d) : возвращает десятичный логарифм числа d

max(double a, double b) : возвращает максимальное число из a и b

min(double a, double b) : возвращает минимальное число из a и b

pow(double a, double b) : возвращает число a, возведенное в степень b

random() : возвращает случайное число от 0.0 до 1.0

rint(double value) : возвращает число double, которое представляет ближайшее к числу value целое число

round(double d) : возвращает число d, округленное до ближайшего целого числа

scalb(double value, int factor) : возвращает произведение числа value на 2 в степени factor

signum(double value) : возвращает число 1, если число value положительное, и -1, если значение value отрицательное. Если value равно 0, то возвращает 0

sin(double value) : возвращает синус угла value

sinh(double value) : возвращает гиперболический синус угла value

sqrt(double value) : возвращает квадратный корень числа value

tan(double value) : возвращает тангенс угла value

tanh(double value) : возвращает гиперболический тангенс угла value

toDegrees(double value) переводит радианы в градусы и toRadians(double value) - градусы в радианы

Читайте также: