Skip to content

Matematik misollar

Bugun o'rganishimiz kerak bo'lgan bilimlardan biri bu matematik funksiyalar. Go bizga oldindan matematik funksiylarni tayyor qilib, math moduliga joylab qo'ygan. Bugun biz shu tayyor funksiyalarni ishlatishni ko'rib chiqamiz. Qani unda boshladik.

Avval modul(module) nima degan savolga javob bersak.

  • Modul bu Go paketlari(packages) to'plami.
  • Paket(package) bu .go fayllari katalogi. Paketlardan kodimizni qismlarga ajratishimiz mumkin.

Import qilish

Matematik funksiyalardan foydalanishimiz uchun, matematik funksiyalar jamlangan math modulini import qilishimiz kerak u quyidagicha bo'ladi.

1
2
3
4
5
6
7
package main

import "math"

func main() {

}

Bu holatda dasturni ishga tushirolmaymiz chunki Go ishlatilmagan lekin e'lon qilingan yoki import qilingan modullar bo'lsa kompilatsiya qilmaydi. Umumiy import qilish yuqorida 3 chi qatorda ko'rsatilgan kabi bo'ladi.

Endi math moduli ichida joylashgan funksiyalaridan foydalanishni ko'ramiz.

Quyida matematikadan ma'lum bo'lgan PI ni qiymatini ekragna chop qilib ko'ramiz.

1
2
3
4
5
6
7
8
package main

import "math"
import "fmt"

func main() {
    fmt.Println(math.Pi)
}

Natija:

3.141592653589793

Tushunamiz

Xo'sh nimani tushundingiz? Keling tushunishga harakat qilamiz. 3-qatorda math modulini import qildik, endi unday foydalanishimiz mumkin. 7-qatorda math.Pi orqali math moduli ichida joylashgan PI o'zgarmasiga murojaat qildik. Modullar ichida joylashgan funksiya, o'zgaruvchi yoki o'zgarmaslarga .(nuqta) orqali murojaat qilinadi.

Bizni natijada sonni 15 xonali kasr qismini ham chop qildi. Agar bizga faqat ikki xonasi kerak bo'lsa qanday qilamiz? 3.14 ko'rinishida. Buni amalga oshirishimiz uchun Printf funksiyasiga murojat qilamiz.

1
2
3
4
5
6
7
8
package main

import "math"
import "fmt"

func main() {
    fmt.Printf("%.2f", math.Pi)
}

Natija:

3.14

Agar 3 xona kerak bo'lsa %.3f ko'rinishida bo'ladi.

Bir nechta paketlarni import qilishning boshqa usuli

Biz yuqorida math modulini import qilgan usul hozirgi dasturimiz uchun yaxshi holat. Lekin dastur kattalashgani sari import qilish kerak bo'lgan modullar ortib boradi. Bu holatni kodni o'qish va tushinishni qiyinlashtiradi. Go bu holatni yaxshilash uchun bizga ajoyib imkoniyatni taqdim qiladi. U quyidagicha bitta import kalit so'zi bilan import qilish imkoniyati.

package main

import (
    "fmt"
    "math"
)

func main() {
    fmt.Printf("%.3f", math.Pi)
}

Boshqa matematik funksiyalar

Funksiyalar Ta'rif
math.Abs(n) n ning moduli.
math.Sin(x) x ning sinusi (x radianda).
math.Cos(x) x ning kosinusi (x radianda).
math.Tan(x) x ning tanginisi (x radianda).
math.Asin(x) x ning arksinusi, [-π/2, π/2] oraliqda.
math.Acos(x) x ning arkkosinusi, [0, π] oraliqda.
math.Atan(x) x ning arktangens, [-π/2, π/2] oraliqda.
math.Exp(x) e ning x darajasi. e^x, bu yerda e natural logorifm asosi.
math.Log(x) x ning natural logorifimi.
math.Pow(x, y) x ning y darajasi. x^y.
math.Pow10(n) 10 ning n darajasi. 10^n.
math.Sqrt(x) x ning ildizi.
math.Floor(x) x ni kichigiga yaxlitlaydi.
math.Ceil(x) x ni katta tomonga yaxlitlaydi.
math.Round(x) x ni yaqin songa yaxlitlaydi.
math.Pi Matematik π o'zgarmasni(const) ifodalaydi (pi).
math.Min(x, y) ikki sondan kichigini aniqlaydi.
math.Max(x, y) ikki sondan kattasini aniqlaydi.
math.e Matematik e o'zgarmasni(const) ifodalaydi e.
math.Mod(x, y) x ni y ga bo'lgandagi qoldiq.

Misollar:

package main

import (
    "fmt"
    "math"
)

func main() {
    x := 2.5
    y := 3.0

    // Math funksiyalaridan foydalanish
    fmt.Printf("math.Abs(%v) = %v\n", x, math.Abs(x))
    fmt.Printf("math.Sin(%v) = %.4f\n", x, math.Sin(x))
    fmt.Printf("math.Cos(%v) = %.4f\n", x, math.Cos(x))
    fmt.Printf("math.Tan(%v) = %.4f\n", x, math.Tan(x))
    fmt.Printf("math.Asin(%v) = %.4f\n", x, math.Asin(x))
    fmt.Printf("math.Acos(%v) = %.4f\n", x, math.Acos(x))
    fmt.Printf("math.Atan(%v) = %.4f\n", x, math.Atan(x))
    fmt.Printf("math.Exp(%v) = %.4f\n", x, math.Exp(x))
    fmt.Printf("math.Log(%v) = %.4f\n", x, math.Log(x))
    fmt.Printf("math.Pow(%v, %v) = %.4f\n", x, y, math.Pow(x, y))
    fmt.Printf("math.Sqrt(%v) = %.4f\n", x, math.Sqrt(x))
    fmt.Printf("math.Floor(%v) = %.4f\n", x, math.Floor(x))
    fmt.Printf("math.Ceil(%v) = %.4f\n", x, math.Ceil(x))
    fmt.Printf("math.Round(%v) = %.4f\n", x, math.Round(x))
    fmt.Printf("math.Pi = %.4f\n", math.Pi)
    fmt.Printf("math.Min(%v, %v) = %.4f\n", x, y, math.Min(x, y))
    fmt.Printf("math.Max(%v, %v) = %.4f\n", x, y, math.Max(x, y))
    fmt.Printf("math.e = %.4f\n", math.E)
    fmt.Printf("math.Mod(%v, %v) = %.4f\n", x, y, math.Mod(x, y))
}

Vazifa

Shu kungacha o'rgangan bilimlar bilan quyidagi misollarni ishlab chiqing. Bu sizni bilimlaringizni mustahkamlashga yordam beradi. Bu misollar ustoz Qudrat Abdurahimovning C++ dasturlsh asoslari kitobidan olindi.

Mustaqil ishlash uchun:

maslalar maslalar maslalar

Info

Misollarni ishlash davomida o'zgaruvchi qiymatlarini ekarandan olsin!
Ya'ni Scan funksiyasidan foydalaning.