Программа для рассчета значения Y
Всем привет! Столкнулся с такой проблемой, что нужно посчитать значение Y, но довольно замудренным способом. Суть заключается в том, что у нас есть количество шагов, которое если больше 100, то рассчитывается по формуле x2-x1/шаг, а если меньше то x2-x1. Шаг рассчитывается как x2-x1/100.
В цикле рассчет значения Y нужно реализовать так, чтобы начальным значением было x1, конечным - x2. А также нужно указать шаг, с которым нужно проходить одну итерацию, при этом шаг должен быть таков, чтобы суммарное количество итераций не превышало 100.
Вот полное описание задания:
- Запросите у пользователя начальное и конечное значение переменной х, а также задайте значение случайно используя коэффициент а (от 1 до 10). Обязательно добавьте подсказку при вводе данных.
- Если начальное значение х больше конечного – поменяйте их местами.
- Количество шагов определить, как разность между конечным x и начальным: если эта разница больше 100, и установите шаг больше 1, для того чтобы количество шагов не было больше 100 (по формуле ниже), иначе шаг равен 1. Формула для расчета шага (если разница больше 100):
Шаг = (х_конечный – х_начальный) / 100.
К примеру, если х_начальный = 0, а х_конечный = 200, то шаг= 2, а количество шагов = 100. 4. Для расчета "у" используйте таблицу ниже в соответствии с вашим вариантом. Выведите все значения "х" и соответствующие им значения "у". Используйте форматированный вывод (3 знака после запятой).
import kotlin.math.cos
import kotlin.math.pow
import kotlin.math.sqrt
fun main(args: Array<String>) {
println("Enter start X value: ")
var x1 = readln().toInt()
println("Enter end X value: ")
var x2 = readln().toInt()
val a = (1..10).random()
println("A value: $a")
if (x1 > x2) {
x2 = x1.also {x1 = x2}
}
var stepValue = x2.toDouble() - x1.toDouble()
if (stepValue.toInt() > 100) {
stepValue = (x2.toDouble() - x1.toDouble()) / 100
}
println("Step size: $stepValue")
var stepFor = x2.toDouble() - x1.toDouble()
if (stepFor.toInt() > 100) {
stepFor = (x2.toDouble() - x1.toDouble()) / stepValue
}
println("Steps: " + stepFor.toInt())
for (currentX in x1..x2) {
println("Current X value: $currentX")
val y: Double = 1.0e5 * (currentX / 3.0).pow(2.0 / 7.0) + 9.0 / (3.0 * currentX / a) + sqrt(cos(currentX.toDouble()))
println("у = " + String.format("%.3f", y));
}
}