Первая программа на Go lang

В качестве упражнения интерактивная документация по языку программирования Go, о которой я говорил вчера, предлагает посчитать квадратный корень по формуле Ньютона.

А после подсчета в лоб, используя фиксированное количество итераций, нужно было оптимизировать приложение так, чтобы использовалось только нужно количество попыток с определенным допуском.

Красивая задачка, чтобы разобраться с синтаксисом и наступить на пару классических грабель Go.

Вот какой красивый код получился:

package main

import (
	"fmt"
)

func Sqrt(x float64) float64 {
	z := 1.0
	check := 0.0
	for i:=0; i <= 100; i++	{
		z = z - (z*z - x)/(2*z)
		fmt.Println("Попытка", i, "Квадратный корень =", z)
		if i != 0 {
			if check - z < 0.00000001 {
			fmt.Println("Это значение довольно точное!")
				break
			}
		}
		check = z
	}
	return z
}

func main() {
	fmt.Println("Квадратный корень по Ньютону:", Sqrt(5645))
}

А вот результат выполнения:

Попытка 0 Квадратный корень = 2823
Попытка 1 Квадратный корень = 1412.4998228834572
Попытка 2 Квадратный корень = 708.2481417807868
Попытка 3 Квадратный корень = 358.1092560726704
Попытка 4 Квадратный корень = 186.9363008837615
Попытка 5 Квадратный корень = 108.56687651411139
Попытка 6 Квадратный корень = 80.28123878909122
Попытка 7 Квадратный корень = 75.29827319476982
Попытка 8 Квадратный корень = 75.13339593357443
Попытка 9 Квадратный корень = 75.13321502526514
Попытка 10 Квадратный корень = 75.13321502504735
Это значение довольно точное!
Квадратный корень по Ньютону: 75.13321502504735

Серьезный шаг вперед, первая программа написана и работает.

А что особенно мне нравится в Go, так это его поддержка кириллицы. Никаких тебе кракозябр в выводе. Все языки должны быть такими.