Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Ну не говно, но попахивающие моменты есть. Цикл с постусловием, например.
С другой стороны - капитанство ОП
> Извлечение корней.
Так что всё равно минус.
> А что не так с постусловием, почему нельзя?
Ну цикл с постусловием обычно плохо читается. Хотя в данном случае он короткий, while стоит на той же строке, что и }, и после него не забыли поставить пустую строку. Так что тут все читается нормально.
В случаях подобных данному, цикл с постусловием, имхо, вполне уместен, чего не скажешь о заполнении переменных мусором, которое пришлось бы применить ради входа в цикл с предусловием...
Ну здесь нонсенс скорее float n нежели pow(x, n-1.0). Т.к. этот метод вычисления корней неэффективен для нецелых n (как раз из-за того, что в любом случае придется использовать pow или его велосипедный аналог, который и без данного метода сам бы справился с вычислением корней).
А вот если бы n был целым - тогда, возможно, имело бы смысл написать свою функцию pow, возводящую число в целую степень за O(log(n))...
Цикл - O(n). Это медленно. Целые степени за O(log(n)) можно считать, выражая их через суммы и разности степени 2ки. Разложение в ряд - О(1), но точность приемлема только в некоторой окрестности. Кто какие методы ещё знает?
Самая обычная лаба. Причем многой студентоте до такого качества кода еще учиться и учиться...
С другой стороны - капитанство ОП
> Извлечение корней.
Так что всё равно минус.
Ну цикл с постусловием обычно плохо читается. Хотя в данном случае он короткий, while стоит на той же строке, что и }, и после него не забыли поставить пустую строку. Так что тут все читается нормально.
В случаях подобных данному, цикл с постусловием, имхо, вполне уместен, чего не скажешь о заполнении переменных мусором, которое пришлось бы применить ради входа в цикл с предусловием...
Можно было бы считать приращение delta = x - x_prev и делать это так:
Можно было бы проверять, что a>=0.
Можно было бы сделать mySqrt шабло
А в остальном: парень, ты все сделал пральна, смело тащи преподу.
a<0 вполне допустимо при нечетных n.
Спасибо.
Попросу студента самого реализовать pow, чтобы работало за O(1), пользоваться стандартной экспонентой и логарифмом нельзя (пусть сам пишет если надо).
С fabs то же самое?
А вот если бы n был целым - тогда, возможно, имело бы смысл написать свою функцию pow, возводящую число в целую степень за O(log(n))...