Как сделать квадрат в джава
Обновлено: 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 комментария
Не несите бред, все нормально извлекается:
Дело в том, что квадратный корень с минусового числа найти нельзя.
Если например мы вознесем -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) - градусы в радианы
Читайте также: