# Referenca e Programimit për &turtlescript;

Kjo është referenca për gjuhën &turtlescript; të &kturtle;. Në pjesën e parë të këtij kapitulli do të hedhim një vështrim në disa aspekte të gramatikës së gjuhës &turtlescript;. Pjesa e dytë merret veçanërisht me veprimet matematikore, veprimet logjike (e vërtetë / e rreme) dhe veprimet krahasuese. Pjesa e tretë është në thelb një listë gjigante e të gjitha komandave, me shpjegimet përkatëse për secilën prej tyre. Pjesa e katërt shpjegon se si u jepen vlera ndryshoreve . Së fundi, në pjesën e pestë shpjegojmë se si organizohet zbatimi i komandave me deklarimet për kontrollin e zbatimit, dhe në pjesën e gjashtë si mund të krijoni ju vetë komandat tuaja me anë të deklarimit mëso.

## Gramatika e &turtlescript;

Si çdo gjuhë, &turtlescript; ka lloje të ndryshme fjalësh dhe simbolesh. Në shqip ne bëjmë dallim midis foljeve (si 'të ecësh' apo 'të këndosh') dhe emrave (si 'motër' apo 'shtëpi'); ato përdoren për qëllime të ndryshme. &turtlescript; është një gjuhë programimi; ajo përdoret për të udhëzuar &kturtle; çfarë të bëjë.

Në këtë seksion shpjegohen shkurtimisht disa prej llojeve të ndryshme të fjalëve dhe simboleve të &turtlescript;-it. Do shpjegojmë komentet, komandat dhe tre lloje të ndryshme vlerash: numrat, vargjet dhe vlerat logjike (e vërtetë / e rreme) .

### Komentet

Një program përbëhet nga udhëzimet (apo komandat) që zbatohen kur programi niset, dhe të ashtuquajturat 'komente'. Komentet nuk zbatohen, &kturtle; thjesht i injoron ato gjatë zbatimit të programit tuaj. Komentet janë për programuesit e tjerë, për t'i bërë ata të kuptojnë më mirë programin tuaj. Çdo gjë që pason një simbol `#` konsiderohet si koment në &turtlescript;. Për shembull, ky program i vogël që nuk bën asgjë:

    # Ky program i vogël është vetëm një koment dhe nuk bën asgjë!

Ai është i padobishëm por e shpjegon çështjen mirë.

Komentet bëhen shumë të dobishëm kur programi bëhet pak më i komplikuar. Ato mund të ndihmojnë për të dhënë disa këshilla për programuesit e tjerë. Në programin e mëposhtëm ju shihni komente që përdoren bashkë me komandën shtyp.

    # Ky program është bërë nga Cies Breijs.
    shkruaj "ky tekst do të shkruhet në tabelë"
    # rreshti më sipër nuk është një koment, por rreshti pasues është:
     # shkruaj "ky tekst nuk do të shkruhet!"

Rreshti i parë përshkruan programin. Rreshti i dytë zbatohet nga &kturtle; dhe shkruan në tabelën e vizatimit: `ky tekst do të shkruhet në tabelë`. Rreshti i tretë është një koment. Dhe rreshti i katërt është një koment i cili përmban një copë &turtlescript;. Në qoftë se simboli `#` do të hiqet në rreshtin e katërt, komanda e shkrimit do të zbatohet nga &kturtle;. Programuesit thonë: komanda e shkrimit në vijën e katërt është 'komentuar'.

Rreshtat e komentuar theksohen me ngjyrë gri të hapur në shkrimore .

### Komandat

Duke përdorur komandat ju i tregoni breshkës ose &kturtle; të bëj diçka. Disa komanda nevojë të marrin parametra, disa nxjerrin rezultate.

    # ec_përpara është  një komandë që merr një parametër, në këtë rast numrin 100:
    ec_përpara 100

Rreshti i parë është një koment. Rreshti i dytë përmban komandën `ec_përpara` dhe numrin `100`. Numri nuk është pjesë e komandës, por konsiderohet si një 'input' ose 'marrje' për komandën.

Për një pasqyrë të detajuar të të gjitha komandave që pranon &kturtle; shkoni te lista e komandave . Komandat e veta (ose të brendshme) janë të theksuara në ngjyrë blu të errët.

### Numrat

Ka shumë mundësi që ju e dini mjaft mirë se ç'janë numrat. Mënyra si përdoren numrat në &kturtle; nuk ndryshon shumë nga gjuha e folur, apo nga matematika.

Kemi numrat e ashtuquajtur natyrorë: `0`, `1`, `2`, `3`, `4`, `5`, etj. Numrat negativë: `-1`, `-2`, `-3`, etj. Dhe numrat me pikë dhjetore, për shembull: `0.1`, `3.14`, `33.3333`, `-5.05`, `-1.0`.

Numrat mund të përdoren në veprimet matematikore dhe veprimet krahasuese. Po ashtu ata mund të ruhen në ndryshore. Numrat theksohen me të kuqe të errët.

### Vargjet

Së pari një shembull:

    shkruaj "Përshëndetje, unë jam një varg."

Në këtë shembull `shkruaj` është një urdhër (komandë), ku `"Përshëndetje, unë jam një varg."` është një varg. Vargjet fillojnë dhe mbarojnë me shenjën `"`, nga këto shenja &kturtle; e di se është një varg.

Vargjet mund të vihet në ndryshore, ashtu si numrat. Megjithatë, ndryshe nga numrat, vargjet nuk mund të përdoren në veprimet matematikore ose në veprimet krahasuese . Vargjet theksohen me të kuqe.

### Vlerat e vërtetësisë (e vërtetë / e rreme)

Ka vetëm dy vlera vërtetësie: `e vërtetë` dhe `e rreme`. Nganjëherë ato quhen edhe: ndezur dhe fikur, po dhe jo, një dhe zero. Por në &turtlescript; ne i quajmë ato gjithmonë, `e_vërtetë` dhe `e_rreme`. Hidhini një sy në kësaj pjese &turtlescript;:

    $a = e_vërtetë

Nëse shikoni në shqyrtues ju mund të vini re se ndryshores `$a` i është dhënë vlera`e_vërtetë`, dhe është e tipit vërtetësi.

Shpesh vlerat e vërtetësisë janë rezultat i një veprimi krahasues, si në pjesën &turtlescript; më poshtë:

    $përgjigje = 10 > 3

Ndryshorja`$përgjigje` merr vlerën `e_vërtetë` sepse numri `10` është më i madh se numri `3`.

Vlerat e vërtetësisë, `e_vërtetë` dhe `e_rreme` theksohen me të kuqe të errët.

## Veprimet matematikore dhe krahasuese

Titulli i kësaj pjese mund të tingëllojë pak si i vështirë, por në fakt nuk është aq e vështirë sa duket.

### Veprimet matematike

Këto janë simbolet themelore matematike të njohur si: mbledhje (`+`), zbritje (`-`), shumëzim ( `*`), pjesëtim (`/` ) dhe ngritje në fuqi (`^`).

Ja një shembull i vogël i veprimeve matematikore që ju mund të përdorni në &turtlescript;:

    $mbledhje = 1 + 1
    $zbritje = 20 - 5
    $shumëzim = 15 * 2
    $pjesëtim = 30 / 30
    $fuqi = 2 ^ 2

Vlerat që përftohen nga këto veprime matematikore u janëcaktuar disa ndryshoreve. Duke përdorur shqyrtuesin ju mund të shihni vlerat e këtyre ndryshoreve.

Nëse doni të bëni vetëm një llogaritje të thjeshtë, mund të bëni diçka të tillë:

    shkruaj 2010-12

Tani një shembull me kllapa:

    shkruaj ( (20 - 5) * 2 / 30) + 1

Shprehjet brenda kllapave do të llogariten të parat. Në këtë shembull, do të llogaritet fillimisht 20-5, pastaj do të shumëzohet me 2, do të pjesëtohet me 30, dhe pastaj do t'i shtohet 1 (duke dhënë 2). Kllapat mund të përdoren edhe në raste të tjera.

&kturtle; ka edhe veçori më të përparuara matematikore, në formën e komandave. Hidhuni një sy komandave të mëposhtme, por të jenë të vetëdijshëm se kanë lidhje me veprime të përparuara: rrumbullakos, rastësisht, sqrt, pi, sin, cos, tan, arcsin, arccos, arctan.

### Veprimet logjike të vërtetësisë (e vërtetë / e rreme)

Ndërsa veprimet matematikore janë kryesisht për numrat, veprimet logjike janë për vlerat e vërtetësisë (`e_vërtetë` dhe `e_rreme`). Ka vetëm tre veprime logjike, të cilat janë: `edhe`, `ose`, dhe `jo`. Fragmenti &turtlescript; i mëposhtëm tregon se si përdoren ato:

    $edhe_1_1 = e_vërtetë edhe e_vërtetë # -> e_vërtetë
    $edhe_1_0 = e_vërtetë edhe e_rreme   # -> e_rreme
    $edhe_0_1 = e_rreme edhe e_vërtetë   # -> e_rreme
    $edhe_0_0 = e_rreme edhe e_rreme     # -> e_rreme

    $ose_1_1 = e_vërtetë ose e_vërtetë # -> e_vërtetë
    $ose_1_0 = e_vërtetë ose e_rreme   # -> e_vërtetë
    $ose_0_1 = e_rreme ose e_vërtetë   # -> e_vërtetë
    $ose_0_0 = e_rreme ose e_rreme     # -> e_rreme

    $jo_1 = jo e_vërtetë   # -> e_rreme
    $jo_0 = jo e_rreme     # -> e_vërtetë

Duke përdorur shqyrtuesin ju mund të shihni vlerat e ndryshoreve, por rezultatet e veprimeve janë dhënë gjithashtu si komente të vogla në fund të rreshtave. Veprimi `edhe` jep vlerën `e_vërtetë` vetëm nëse të dyja anët kanë vlerën `e_vërtetë`. Veprimi `ose` jep vlerën `e_vërtetë` kur të paktën njëra anë është `e_vërtetë`. Kurse veprimi `jo` kthen vlerën `e_vërtetë` në `e_rreme` dhe vlerën `e_rreme` në `e_vërtetë`.

Veprimet logjike theksohen me rozë.

#### Disa shembuj më të përparuar

Shqyrtoni shembullin e mëposhtme me `edhe`:

    $a = 1
    $b = 5
    nëse (($a < 10) edhe ($b == 5)) edhe ($a < $b) {
      shkruaj "tungjatjeta"
    }

Në këto rreshta &turtlescript;, përfundimet e tre veprimeve krahasuese janë bashkuar me anë të veprimit `edhe`. Kjo do të thotë që të treja duhet të japin vlerën "e_vërtetë", me qëllim që të shkruhet "tungjatjeta".

Një shembull me `ose`:

    $n = 1
    nëse ($n < 10) ose ($n == 2) {
      shkruaj "tungjatjeta"
    }

Në këto rreshta &turtlescript;, ana e majtë e veprimit `ose` merr vlerën 'e_vërtetë', ana e djathtë vlerën 'e_rreme'. Meqë njëra nga të dy anët e veprimit `ose` është 'e_vërtetë', vlera që jep veprimi `ose` është 'e_vërtetë'. Kjo do të thotë që "tungjatjeta" do të shkruhet.

Dhe në fund një shembull me veprimin `jo`, i cili vlerën 'e_vërtetë' e bën 'e_rreme', dhe vlerën 'e_rreme' e bën 'e_vërtetë'. Hidhini një sy:

    $n = 1
    nëse jo ($n == 3) {
      shkruaj "Shëndet!"
    } përndryshe {
      shkruaj "Plaç! ;-)"
    }

### Veprimet krahasuese

Shikoni këtë krahasim të thjeshtë:

    $përgjigje = 10 > 3

Këtu numri `10` krahasohet me numrin `3` me anë të veprimit krahasues 'më i madh se'. Rezultati i këtij krahasimi, vlera logjike `e_vërtetë`, ruhet në ndryshoren `$përgjigje`.

Të gjithë numrat dhe ndryshoret (që përmbajnë numra) mund të krahasohen me njëri-tjetrin me anë të veprimeve krahasuese.

Këtu janë të gjitha veprimet krahasuese të mundshme:

#### Llojet e pyetjeve

`$A == $B` | e barabartë | përgjigja është e_vërtetë nëse `$A` është e barabartë me `$B`
`$A != $B` | e ndryshme | përgjigja është e_vërtetë nëse `$A` është e ndryshme nga `$B`
`$A > $B` | më e madhe | përgjigja është e_vërtetë nëse `$A` është më e madhe se `$B`
`$A < $B` | më e vogël | përgjigja është e_vërtetë nëse `$A` është më e vogël se `$B`
`$A >= $B` | më e madhe baraz | përgjigja është e_vertetë nëse `$A` është më e madhe ose e barabartë me `$B`
`$A <= $B` | më e vogël baraz | përgjigja është e_vërtetë nëse `$A` është më e vogël ose e barabartë më `$B`

Mos harroni se $A dhe $B duhet të jenë numra ose ndryshore që përmbajnë numra.

## Komandat

Duke përdorur komandat ju i tregoni breshkës ose &kturtle; të bëjë diçka. Disa komanda kanë nevojë për të marrë të dhëna, disa nxjerrin rezultate. Në këtë ndarje do të shpjegojmë të gjitha komandat e veta (të brendshme) të &kturtle;. Nga ana tjetër, duke përdorur mëso, ju mund të krijoni komandat tuaj. Komandat e veta për të cilat do të flasim këtu theksohen me ngjyrë blu të errët.

### Lëvizja e breshkës

Ka komanda të ndryshme për ta lëvizur breshkën mbi ekran.

ec_përpara (pp)

      ec_përpara X

  `ec_përpara X` e lëviz breshkën përpara me një sasi prej X pikësh. Kur lapsi është i ulur, breshka lë një gjurmë (bën një vijë) gjatë lëvizjes. `ec_përpara` mund të shkurtohet si `pp`

ec_mbrapsht (mb)

      ec_mbrapsht X

  `ec_mbrapsht X` e lëviz breshkën mbrapa me një sasi prej X pikësh. Kur lapsi është i ulur, breshka lë një gjurmë (bën një vijë) gjatë lëvizjes. `ec_mbrapsht` mund të shkurtohet si `mb`.

kthehu_majtas (mj)

      kthehu_majtas X

  `kthehu_majtas` i thotë breshkës që të kthehet me një madhësi prej X gradësh në të majtë. `kthehu_majtas` mund të shkurtohet si `mj`.

kthehu_djathtas (dj)

      kthehu_djathtas X

  `kthehu_djathtas` i thotë breshkës që të kthehet me një madhësi prej X gradësh në të djathtë. `kthehu_djathtas` mund të shkurtohet si `dj`.

drejtimi (drj)

      drejtimi X

  `drejtimi` cakton drejtimin e breshkës me një madhësi prej X gradësh duke filluar nga drejtimi zero, dhe kështu që nuk ka lidhje me drejtimin e mëparshëm të breshkës. Drejtimi zero është drejtimi nga poshtë lartë. `drejtimi` mund të shkurtohet si `drj`.

shko_në_qendër

      shko_në_qendër

  `shko_në_qendër` e çon breshkën në qendër të tabelës së vizatimit.

shko

      shko X,Y

  `shko` i thotë breshkës të shkojë në një vend të caktuar në tabelë. Ky vend është X pika larg nga ana e majtë e tabelës, dhe Y pika larg nga ana e sipërme e tabelës.

shko_x

      shko_x X

  Duke përdorur komandën `shko_x` breshka do të vendoset X pika larg anës së majtë të tabelës, duke qëndruar në të njëjtën lartësi.

shko_y

      shko_y Y

  Duke përdorur komandën `shko_y` breshka do të vendoset X pika poshtë anës së sipërme të tabelës, duke qëndruar në të njëjtën largësi nga ana e majtë.

Duke përdorur komandat `shko`, `shko_x`, `shko_y` dhe `shko_në_qendër` breshka nuk do të bëjë vijë, pa marrë parasysh nëse lapsi është i ngritur apo i ulur.

### Ku është breshka?

Ka dy komanda që na japin pozicionin e breshkës në ekran.

merr_x

  `merr_x` kthen numrin e pikave nga ana e majtë e tabelës deri në vendin e tanishëm të breshkës.

merr_y

  `merr_y` kthen numrin e pikave nga ana e sipërme e tabelës deri në vendin e tanishëm të breshkës.

### Breshka ka një laps

Breshka ka një laps që bën një vijë kur breshka lëviz. Ka disa komanda për të kontrolluar lapsin. Në këtë pjesë do të shpjegojmë këto komanda.

ngri_lapsin (ngri)

      ngri_lapsin

  `ngri_lapsin` e ngre lapsin nga tabela. Kur lapsi është i ngritur nuk do të bëhet vijë kur breshka lëviz. Shiko dhe `ul_lapsin`. `ngri_lapsin` mund shkurtohet si `ngri`.

ul_lapsin (ul)

      ul_lapsin

  `ul_lapsin` ngjesh lapsin poshtë në tabelë. Me lapës të ulur poshtë në tabelë, kur breshka lëviz lë pas një vijë. Shiko edhe `ngri_lapsin`. `ul_lapsin` mund të shkurtohet në `ul`.

majë_lapsi (mjl)

      majë_lapsi X

  `majë_lapsi` cakton trashësinë e majës së lapsit (gjerësinë e vijës) në një madhësi prej X pikash. `majë_lapsi` mund të shkurtohet si `mjl`.

ngjyrë_lapsi (ngjl)

      ngjyrë_lapsi R,G,B

  `ngjyrë_lapsi` cakton ngjyrën e lapsit. `ngjyrë_lapsi` merr si parametra një kombinim RGB. `ngjyrë_lapsi` mund të shkurtohet në `ngjl`.

### Komandat për të kontrolluar tabelën e vizatimit

Ka disa komanda për të kontrolluar tabelën e vizatimit.

madhësi_tabele (mt)

      madhësi_tabele X,Y

  Me komandën `madhësi_tabele` ju mund të caktoni madhësinë e tabelës së vizatimit. Ajo merr X dhe Y si parametra, ku X është gjerësia e re e tabelës në pika (pixel), dhe Y është lartësia e re e tabelës në pika (pixel). `madhësi_tabele` mund të shkurtohet si `mt`.

ngjyrë_tabele (ngjt)

      ngjyrë_tabele R,G,B

  `ngjyrë_tabele` cakton ngjyrën e tabelës së vizatimit. `ngjyrë_tabele` merr një kombinim RGB si input. `ngjyrë_tabele` mund të shkurtohet si `ngjt`.

### Komandat për të pastruar

Ka dy komanda për të fshirë tabelën pasi të keni bërë ndonjë rrëmujë.

pastro (fshi)

      pastro

  Me `pastro` ju mund të fshini të gjitha vizatimet në tabelë. Të gjitha gjërat e tjera mbesin: vendi dhe drejtimi i breshkës, ngjyra e tabelës, dukshmëria e breshkës, dhe madhësia e tabelës.

rifillo

      rifillo

  `rifillo` pastron shumë më tepër se sa komanda `pastro`. Pas një komande `rifillo` çdo gjë bëhet siç ishte kur sapo u jap &kturtle;. Breshka është e vendosur në mes të ekranit, ngjyra e tabelës është e bardhë, breshka bën një vijë të zezë në tabelë dhe madhësia e tabelës është 400 x 400 pika.

### Breshka është një figurinë

Së pari një shpjegim të shkurtër se çfarë janë figurinat. Figurinat janë fotografi të vogla që mund të lëvizen nëpër ekran, si i shohim shpesh në lojërat me kompjuter. Edhe breshka jonë është gjithashtu një figurinë. Për më tepër informacion shiko fjalorin te figurinat.

Në vazhdim do të gjeni një pasqyrë të plotë mbi të gjitha komandat për të punuar me figurinat.

[Versioni i tanishëm i &kturtle; nuk mbështet akoma përdorimin e figurinave të tjera përveç breshkës. Në versionet e ardhshme ju do të mund ta ndërroni breshkën me diçka tjetër që ju pëlqen.]

shfaq_figurinën (shf)

      shfaq_figurinën

  `shfaq_figurinën` e bën të breshkën përsëri të dukshme, pasi të ketë qenë e fshehur. `shfaq_figurinën` mund të shkurtohet si `shf`.

fshih_figurinën (fsh)

      fshih_figurinën

  `fshih_figurinën` fsheh breshkën. Kjo mund të përdoret nëse breshka nuk përshtatet me vizatim tuaj. `fshih_figurinën` mund të shkurtohet si `fsh`.

### A mund të shkruaj breshka?

Përgjigja është: po. Breshka mund të shkruaj: ajo shkruan çdo gjë që ju ti thoni.

shkruaj

      shkruaj X

  Komanda `shkruaj` përdoret për ti thënë breshkës të shkruajë diçka në tabelë. `shkruaj` merr numra dhe vargje si input. Ju mund të `shkruani` numra dhe vargje të ndryshme duke përdorur shenjën +. Shikoni një shembull të vogël:

      $viti = 2003
      $autori = "Cies"
      shkruaj $autori + " e filloi projektin KTurtle në vitin " + $viti + " dhe akoma punon me qejf në të!"

madhësi_shkrimi

      madhësi_shkrimi X

  `madhësi_shkrimi` cakton madhësinë e shkronjave që përdoren nga `shkruaj`. `madhësi_shkrimi` merr një të dhënë që duhet të jetë një numër. Madhësia caktohet në pika (pixel).

### Komandat matematikore

Në vijim janë komandat matematikore më të përparuara të &kturtle;.

rrumbullakos

      rrumbullakos(x)

  `rrumbullakos` numrin e dhënë te numri më i afërt i plotë.

      shkruaj rrumbullakos(10.8)
      ec_përpara 20
      shkruaj rrumbullakos(10.3)

  Me këtë program breshka do të shkruajë numrat 11 dhe 10.

rastësisht (kot)

      rastësisht X,Y

  `rastësisht` është një komandë që merr të dhëna dhe kthen një rezultat. Si të dhëna janë dy numra, i pari (X) cakton vlerën më të vogël (minimumin) e rezultatit, i dyti (Y) cakton vlerën më të madhe (maksimumin). Rezultati është një numër i zgjedhur rastësisht, i cili është më i madh ose i barabartë me minimumin dhe më i vogël ose i barabartë me maksimumin. Ja një shembull i vogël:

      rifillo
      përsërit 500 {
        $x = rastësisht 1,100
        ec_përpara $x
        kthehu_majtas 100 - $x
      }

  Duke përdorur komandën `rastësisht` ju mund ti shtoni pak rrëmujë (kaos) programit tuaj.

sqrt

      sqrt X

  Komanda `sqrt` përdoret për të gjetur rrënjën katrore të një numri X.

pi

      pi

  Kjo komandë kthen vlerën e konstantes Pi, `3.14159`.

sin
, cos
, tan

      sin X
      cos X
      tan X

  Këto tre komanda përfaqësojnë funksionet e famshme trigonometrike `sin`, `cos` dhe `tan`. Argumenti X që u jepet këtyre komandave është një numër.

arcsin
, arccos
, arctan

      arcsin X
      arccos X
      arctan X

  Këto komanda janë funksionet e kundërta të sin, cos dhe tan. Argumenti X që u jepet këtyre komandave është një numër.

### Bashkëbisedimi me programin

Bashkëbisedimi me programin kryhet përmes disa dritarezave të vogla që i nxjerr programi, të cilat ose japin një informacion, ose pyesin për diçka. &kturtle; ka dy komanda për bashkëbisedimin, të cilat janë `mesazh` dhe `pyet`

mesazh

      mesazh X

  Komanda `mesazh` merr një varg si plotësues. Ajo shfaq një dritare bashkëbisedimi që përmban vargun e dhënë.

      mesazh "Cies e filloi programin KTurtle në vitin 2003 dhe akoma merret me qejf në të!"

pyet

      pyet X

  Komanda `pyet` merr një varg si plotësues. Ajo e nxjerr këtë varg në një dritare bashkëbisedimi (si komanda mesazh), bashkë me një vend për përgjigjen. Pasi përdoruesi të ketë futur një numër ose një varg në të, rezultati mund të ruhet në një ndryshore ose ti kalohet si plotësuese një komande tjetër. Për shembull:

      $merr = pyet "Në cilin vit keni lindur?"
      $nxirr = 2003 - $merr
      mesazh "Në vitin 2003 keni qenë " + $nxirr + " vjeç."

  Nëse përdoruesi e ndërpret dritaren e bashkëbisedimit, ose nuk shkruan në të asgjë fare, ndryshorja është bosh.

## Vlerëdhënia e ndryshoreve

Fillimisht do tu hedhim një sy ndryshoreve, dhe më pas do të shohim si u jepen vlera këtyre ndryshoreve.

Emrat e ndryshoreve fillojnë gjithmonë me një $. Në shkrimore ato theksohen me ngjyrë vjollcë.

Ndryshoret mund të përmbajnë ndonjë numër, varg shkronjash ose vlerë vërtetësie (e_vërtetë / e_rreme). Përmbajtja e një ndryshoreje caktohet me anë të veprimit të vlerëdhënies, `=`. Ndryshorja do të vazhdojë ta ketë këtë vlerë deri në përfundim të programit, ose deri sa ti jepet një vlerë tjetër.

Pasi u është dhënë një vlerë, ndryshoret mund të përdoren njësoj si vetë vlera që ato përmbajnë. Shikoni për shembull rreshtat e mëposhtëm &turtlescript;:

    $x = 10
    $x = $x / 3
    shkruaj $x

Fillimisht ndryshores `$x` i jepet vlera `10`. Pastaj `$x` i ri-jepet vlera e vetvetes e pjesëtuar për `3` — që do të thotë se vlera e re e `$x` është `10 / 3`. Më në fund, ndryshorja `$x` shkruhet. Vini re që në rreshtin e dytë dhe të tretë `$x` është përdorur si të ishte vetë vlera që ajo përmban.

Që të përdoren ndryshoret duhet që fillimisht tu jepet një vlerë. Për shembull:

    shkruaj $n

do të japë një njoftim gabimi, sepse ndryshorja `$n` nuk ka asnjë vlerë.

Ju lutem shikoni me vëmendje rreshtat e mëposhtëm &turtlescript;:

    $a = 2004
    $b = 25

    # komanda pasuese shkruan "2029"
    shkruaj $a + $b
    ec_mbrapsht 30
    # komanda pasuese shkruan "2004 plus 25 baraz 2029"
    shkruaj $a + " plus " + $b + " baraz " + ($a + $b)

Në dy rreshtat e parë ndryshoret `$a` dhe `$b` kanë marrë vlerat 2004 dhe 25. Pastaj zbatohen dy komandat `shkruaj` me një komandë `ec_mbrapsht 30` në mes. Komentet përpara komandave `shkruaj` shpjegojnë çfarë bëjnë këto komanda. Komanda `ec_mbrapsht 30` është përdorur për tu siguruar që gjërat e shkruara janë në rreshta më vete. Siç e shihni, ndryshoret mund të përdoren si vetë përmbajtja që ato kanë, mund të përdoren me çdo lloj veprimi ose të jepen si plotësuese të komandave që thirren.

Edhe një shembull tjetër:

    $emër = pyet "Si e ke emrin?"
    print "Përshëndetje " + $emër + "! Suksese gjatë mësimit të artit të programimit..."

Mjaft i thjeshtë. Përsëri mund të shihni që ndryshorja `$emër`, është përdorur si të ishte një varg shkronjash.

Kur përdoren ndryshoret, shqyrtuesi është shumë i dobishëm. Ai tregon përmbajtjen e të gjitha ndryshoreve që janë aktualisht në përdorim.

## Kontrollimi i zbatimit

Kontrolluesit e zbatimit mundësojnë — siç e nënkupton edhe emri i tyre — që të kontrollohet rrjedha e zbatimit të komandave.

Komandat e kontrollit të zbatimit theksohen me të gjelbër të errët dhe me të trasha. Kllapat përdoren kryesisht së bashku me kontrolluesit e zbatimit dhe ato theksohen me të zezë.

### Bëjeni breshkën të presë

Nëse keni programuar ndopak në &kturtle; ju mund të keni vënë re se breshka mund të jetë shumë e shpejtë në vizatim. Kjo komandë e bën breshkën të presë për një sasi të caktuar kohe.

prit

      prit X

  `prit` e bën breshkën të presë për X sekonda.

      përsërit 36 {
        ec_përpara 5
        kthehu_djathtas 10
        prit 0.5
      }

  Ky program vizaton një rreth, por breshka do të presë gjysmë sekonde pas çdo hap. Kjo të jep përshtypjen e një breshke që lëviz ngadalë.

### Zbato "nëse"

nëse

      nëse vërtetësi { ... }

  Komandat që janë vendosur midis kllapave do të zbatohen vetëm `nëse` vlera e vërtetësisë është e_vërtetë.

      $x = 6
      nëse $x > 5 {
        shkruaj "numri $x është më i madh se pesa!"
      }

  Në rreshtin e parë `$x` merr vlerën 6. Në rreshtin e dytë një veprim krahasimi është përdorur për të vlerësuar `$x > 5`. Meqë ky jep vlerën e_vërtetë, 6 është më e madhe se 5, kontrolluesi i zbatimit `nëse` do të lejojë komandat midis kllapave që të zbatohen.

### Nëse jo, ose me fjalë të tjera: "përndryshe"

përndryshe

      nëse vërtetësi { ... } përndryshe { ... }

  `përndryshe` mund të përdoret si plotësues i kontrolluesit të zbatimit `nëse`. Komandat rrethuar nga kllapat, pas `përndryshe`, zbatohen vetëm nëse vërtetësia del e_rreme.

      rifillo
      $x = 4
      nëse $x > 5 {
        shkruaj "numri $x është më i madh se pesë!"
      } përndryshe {
        shkruaj "numri $x është më i vogël se gjashtë!"
      }

  Veprimi i krahasimit vlerëson shprehjen `$x > 5`. Me që 4 nuk është më i madh se 5, shprehja merr vlerën e_rreme. Kjo do të thotë se do të zbatohen komandat mes kllapave pas `përndryshe`.

### Cikli "përderisa"

përderisa

      përderisa vërtetësi { ... }

  Kontrolluesi i zbatimit `përderisa` është mjaft i ngjashëm me `nëse`. Ndryshimi është se `përderisa` vazhdon të përsërit (në mënyrë ciklike) komandat midis kllapave, deri sa vërtetësia të bëhet e_rreme.

      $x = 1
      përderisa $x < 5 {
        ec_përpara 10
        prit 1
        $x = $x + 1
      }

  Në rreshtin e parë `$x` merr vlerën 1. Në rreshtin e dytë vlerësohet `$x < 5`. Meqenëse përgjigja e kësaj pyetje është e_vërtetë, kontrolluesi i zbatimit `përderisa` fillon zbatimin e komandave midis kllapave. Kjo punë përsëritet disa herë, derisa `$x < 5` bëhet e_rreme. Në këtë shembull, komandat midis kllapave do të zbatohen 4 herë, sepse çdo herë që zbatohet rreshti i pestë, `$x` rritet me 1.

### Cikli "përsërit"

përsërit

      përsërit numër { ... }

  Kontrolluesi i zbatimit `përsërit` është shumë i ngjashëm me `përderisa`. Ndryshimi është se `përsërit` vazhdon të përsërisë (në mënyrë ciklike) komandat midis kllapave për aq herë sa numri i dhënë.

### Cikli "për_çdo", një cikël numërues

për_çdo

      për_çdo ndryshore = numër deri_në numër { ... }

  Cikli `për_çdo` është një cikël numërues, që do të thotë se numëron për ju. Numri i parë i cakton ndryshores vlerën e parë në cikël. Në çdo rrotullim numri rritet deri sa të arrijë numrin e dytë.

      për_çdo $x = 1 deri_në 10 {
        shkruaj $x * 7
        ec_përpara 15
      }

  Sa herë që komandat midis kllapave zbatohen, ndryshorja `$x`rritet me 1, deri sa `$x` arrin vlerën 10. Komandat midis kllapave shkruajnë `$x` shumëzuar me 7. Pasi programi përfundon zbatimin, ju do të shihni në ekran tabelën e shumëzimit me 7.

  Madhësia e hapit zakonisht është 1, por you mund të zgjidhni një vlerë tjetër.

      për_çdo ndryshore = numër deri_në numër me_hap numër { ... }

### Braktisja e një cikli

braktis

      braktis

  E përfundon menjëherë ciklin aktual dhe e kalon kontrollin te komanda që vjen menjëherë pas këtij cikli.

### Ndaloni zbatimin e programit

dil

      dil

  Përfundon zbatimin e programit tuaj.

## Krijoni komandat tuaja me mëso

`mëso` është e veçantë sepse përdoret për të krijuar komandat tuaja. Komandat që krijoni mund të marrin të dhëna plotësuese dhe të kthejnë rezultate. Le të hedhim një sy se si krijohet një komandë e re:

    mëso rreth $x {
      përsërit 36 {
        ec_përpara $x
        kthehu_majtas 10
      }
    }

Komanda e re është quajtur `rreth`. Komanda `rreth` merr një të dhëna plotësuese, për të vendosur madhësinë e rrethit. `rreth` nuk kthen rezultat. Komanda `rreth` tani mund të përdoret si një komandë e zakonshme në pjesën tjetër të programit. Shikoni këtë shembull:

    mëso rreth $x {
      përsërit 36 {
        ec_përpara $x
        kthehu_majtas 10
      }
    }

    shko 200,200
    rreth 20

    shko 300,200
    rreth 40

Në shembullin tjetër krijohet një komandë e cila kthen një vlerë.

    mëso faktorial $x {
      $r = 1
      për_çdo $i = 1 deri_në $x {
        $r = $r * $i
      }
      kthim $r
    }

    shkruaj faktorial 5

Në këtë shembull është krijuar një komandë e re e quajtur `faktorial`. Nëse kësaj komande i jepet `5` në hyrje, ajo na kthen në dalje `5*4*3*2*1`. Duke përdorur `kthim`, përcaktohet vlera e daljes dhe rrjedha e zbatimit kthehet aty ku u thirr komanda.

Komandat mund të marrin më shumë se një vlerë hyrëse. Në këtë shembull krijohet një komandë që vizaton një drejtkëndësh:

    mëso kuti $x, $y {
      ec_përpara $y
      kthehu_djathtas 90
      ec_përpara $x
      kthehu_djathtas 90
      ec_përpara $y
      kthehu_djathtas 90
      ec_përpara $x
      kthehu_djathtas 90
    }

Tani ju mund të zbatoni `kuti 50, 100` dhe breshka do të vizatojë një drejtkëndësh në tabelë.