Yeni layihələr üçün açığam

Alqor sənədləşmə

Rəsmi sənədləşmə — sıfırdan ilk veb və desktop proqramınıza qədər.

1Alqor nədir?

Alqor — tamamilə Azərbaycan dilində yazılan proqramlaşdırma dilidir. Açar sözlər, xəta mesajları və sənədlər ana dilimizdədir.

Aşağıdakı kodda bir dənə də ingilis sözü yoxdur — if yox, əgər; print yox, yaz. Və ə, ı, ş hərfləri tam işləyir.

salam.alq alqor
yaz("Adınızı daxil edin:")
dəyişən ad = oxu()

yaz("Yaşınızı daxil edin:")
dəyişən yaş = oxuTam()

əgər yaş >= 18 onda
    yaz("{ad}, siz yetkinsiniz.")
yoxsa
    yaz("{ad}, siz hələ yetkin deyilsiniz.")
son

Alqor ilə konsol proqramları, veb saytlar və API-lər, desktop tətbiqlər və kitabxanalar yaza bilərsiniz — hamısı eyni dildə, eyni sintaksislə.

Alqor-u vuqar.pro/hub ünvanından yükləyin (Windows, Linux, macOS) və ya bu bələdçi ilə dili öyrənməyə başlayın.

2İlk proqram

salam.alq adlı fayl yaradın və içinə yazın:

salam.alq alqor
yaz("Salam, dünya!")

Sonra işə salın:

terminal bash
alqor işlət salam.alq
nəticə output
Salam, dünya!

Fayl yaratmadan sınamaq üçün interaktiv rejim (REPL) var:

terminal bash
alqor söhbət
Azərbaycan hərfləri: Alqor Studio-da sadəcə ASCII yazın — eger yazırsınız, əgər olur. Və ya ;e → ə, ;s → ş kompozisiyasından istifadə edin.

3Dəyişənlər və tiplər

tiplər.alq alqor
dəyişən ad = "Aysel"          // mətn
dəyişən yaş = 24              // tam ədəd
dəyişən boy = 1.68            // onluq ədəd
dəyişən tələbədir = doğru     // məntiqi
dəyişən heçnə = boş           // dəyər yoxdur

sabit Pİ = 3.14159            // dəyişməz

Tipi açıq göstərmək istəsəniz:

tiplər.alq alqor
dəyişən say: tam = 0
dəyişən qiymət: onluq = 9.99
dəyişən adlar: siyahı[mətn] = []
TipNümunə
tam42, -7, 1000000
onluq3.14, -0.5
mətn"Salam"
məntiqdoğru, yanlış
siyahı[T][1, 2, 3]
lüğət[A,D]{"ad": "Aysel"}

4Şərtlər və seçim

sert.alq alqor
əgər yaş >= 18 onda
    yaz("Yetkin")
yoxsa əgər yaş >= 13 onda
    yaz("Yeniyetmə")
yoxsa
    yaz("Uşaq")
son

Çox variant üçün seç:

sec.alq alqor
seç gün
    hal "B.e", "Ç.a" → yaz("İş günü")
    hal "Ş", "B" → yaz("İstirahət")
    hal 1..5 → yaz("Rəqəm")
    digər hallarda → yaz("Naməlum")
son

5Dövrlər

dovr.alq alqor
// 1-dən 5-ə qədər
hər i üçün 1..5 içində
    yaz("Rəqəm: {i}")
son

// Siyahı üzərində
dəyişən meyvələr = ["alma", "armud", "üzüm"]
hər m üçün meyvələr içində
    yaz(m)
son

// Şərtli dövr
dəyişən i = 0
nə qədər ki i < 5
    yaz(i)
    i += 1
son

// Sayla təkrar
təkrarla 3 dəfə
    yaz("Salam")
son

6Funksiyalar

funksiya.alq alqor
funksiya salamla(ad: mətn)
    yaz("Salam, {ad}!")
son

funksiya topla(a: tam, b: tam) -> tam
    qaytar a + b
son

salamla("Aysel")
yaz(topla(3, 4))              // 7

// Qısa (lambda) funksiya
dəyişən ikiqat = (x) => x * 2
yaz(ikiqat(21))              // 42

7Siyahı və lüğət

siyahı.alq alqor
dəyişən s = [3, 1, 4, 1, 5]

s.əlavə(9)                    // sona əlavə
yaz(s[0])                     // 3
yaz(uzunluq(s))               // 6
yaz(s.sıralanmış())           // [1, 1, 3, 4, 5, 9]
yaz(s.cəm())                  // 23
yaz(s.filtr((x) => x > 3))    // [4, 5, 9]
yaz(s.çevir((x) => x * 10))   // [30, 10, 40, 10, 50]

Açar–dəyər cütləri üçün lüğət:

lüğət.alq alqor
dəyişən yaşlar = {"Aysel": 24, "Rəşad": 31}

yaz(yaşlar["Aysel"])          // 24
yaşlar["Nigar"] = 28

hər ad, yaş üçün yaşlar içində
    yaz("{ad}: {yaş}")
son

8Siniflər

sinif.alq alqor
sinif İnsan
    xassə ad: mətn
    xassə yaş: tam

    qurucu(ad: mətn, yaş: tam)
        özü.ad = ad
        özü.yaş = yaş
    son

    metod təqdim()
        yaz("Mən {özü.ad}, {özü.yaş} yaşım var.")
    son
son

dəyişən a = yeni İnsan("Aysel", 24)
a.təqdim()

Miras (irsiyyət) və metodun əvəz edilməsi:

teleb.alq alqor
sinif Tələbə miras İnsan
    xassə universitet: mətn

    qurucu(ad: mətn, yaş: tam, universitet: mətn)
        üst(ad, yaş)
        özü.universitet = universitet
    son

    əvəz et metod təqdim()
        yaz("Mən {özü.ad}, {özü.universitet} tələbəsiyəm.")
    son
son

9Xətaların idarə edilməsi

xeta.alq alqor
cəhd et
    dəyişən n = tamƏt(oxu("Ədəd: "))
    yaz("İki qatı: {n * 2}")
tut (x: ÇevrilməXətası)
    yaz("Bu ədəd deyil!")
son

Öz xətanızı yaratmaq və şərti yoxlamaq:

bol.alq alqor
funksiya böl(a: onluq, b: onluq) -> onluq
    təmin b != 0 yoxsa
        at BölməXətası("Sıfıra bölmək olmaz")
    son
    qaytar a / b
son

10Veb server

Cəmi beş sətirdə işləyən veb server:

server.alq alqor
gətir veb

dəyişən s = yeni veb.Server()
s.al("/", (sorğu) => veb.mətn("Salam, dünya!"))
s.dinlə(8080)

Marşrut parametrləri və JSON cavabı:

server.alq alqor
s.al("/salam/:ad", (q) =>
    veb.html(<h1>Salam, {q.parametr("ad")}!</h1>))

s.al("/api/vaxt", (q) => veb.json({
    "saat": vaxt.indi().saat,
    "dəqiqə": vaxt.indi().dəqiqə
}))

11Desktop tətbiq

pencere.alq alqor
gətir pəncərə

dəyişən p = yeni pəncərə.Pəncərə("Mənim Proqramım", 800, 600)
p.məzmun(<h1>Salam, dünya!</h1>)
p.göstər()
pəncərə.işlət()

Vəziyyəti olan komponent — eyni kod vebdə də işləyir:

saygac.alq alqor
gətir vidjet

komponent Sayğac
    vəziyyət say: tam = 0
    göstər()
        qaytar <button klik={() => özü.say += 1}>
            Basıldı: {özü.say}</button>
    son
son

12Alətlər və əmrlər

ƏmrNə edir
alqor işlət [fayl]Proqramı işə salır
alqor söhbətİnteraktiv rejim (REPL)
alqor yeni <ad>Yeni layihə yaradır
alqor sınaSınaqları işlədir
alqor yoxlaXətaları tapır (işə salmadan)
alqor format .Kodu səliqəyə salır
alqor studioAlqor Studio IDE
alqor köməkBütün əmrlər

Yeni layihə şablonları:

terminal bash
alqor yeni mənim-saytım --şablon veb
alqor yeni mənim-tətbiqim --şablon desktop
alqor yeni mənim-kitabxanam --şablon kitabxana