Инфоурок Информатика КонспектыPascal abc degishli birnache mysallar ýygyndysy

Pascal abc degishli birnache mysallar ýygyndysy

Скачать материал

TURBO-PASCAL SREDASY

Gepleşik sredasynyň elementleri

            TURBO-PASCAL – sredasynda işlemek üçin, ol ýa-da beýleki hereketleri ýerine ýetiirmek üçin kompýuteriň ekranynda göniburçlyk çekilinde birnäçe bölümçeler ýüze çykýar. Bu bölümçelere ýörite at dakylyp olara – menýu, penjire ýa-da meýdança diýilýär.

Menýu.


Ekranyň göniburçlyk şekilindäki içine kodly sözler ýazylan bölümçelerine menýu diýip atlandyrylýar. Menýuda  görkezilen sözleriň her biri saýlanyp alynmaga degili bolup ol gepleşik sreda belli bir ýagdaýy saklamaga ýa-da alternatiw başga birnäçe ýagdaýda geçirilmäge ukyplydyr. Menýuda görkezilen kodly  sözler saýlanyp alynmaga degişli dürli alternatiw ýagdaýlary aňladýarlar. Saýlanyp alnan ýagdaýlar opsialar diýilip atlandyrylýar.

 

Penjireler

TURBO-PASCAL-ň sredasy bilen programmistiň arasynda informasiýa alyş-çalyşyny üpjün edýärler. Mysal üçin redaktoryň penjiresinde programmalaryň tekstleri, programma penjiresinde işe goýberilen programmanyň netijesi, kömekçi penjirede kömekçi informasiýalar, sazlaýjy penjirede bolsa programma işe goýberilende üýtgeýän ululyklaryň üýtgeýşine seredip bolýar. Bir wagtyň özünde ekranda birnäçe penjire bolup bilýär, emma şol bir wagtda olaryň diňe biri işjeň ýagdaýda bolup biler. Işjeň ýagdaýdaky penjiräniň daşky ramkasy iki çyzykly, galan işjeň däl penjireler bolsa diňe bir çyzyklydyr.

Işjeň penjire – ekrany doly tutup ýa-da onuň belli bir bölegini tutup biler. Onuň kömegi bilen ulanyjy saýlap alan hereketini takyklaýar. Işjeň penjiräniň içinde birnäçe uçastoklar bolup bilýär. Giriş uçastogynda programmist tekst ýazgyly setiri girizip biler (mysal üçin faýlyň adyny).

            Saýlaw uçastogynda birnäçe faýllaryň atlaryny seçip almaga mümkinçilik berilýär.

            Geçiriji operasiýalar uçastogynda gepleşik sredasynda zerur bolan düzediş we gurnaýyş işlerini ýerine ýetirmek mümkin.

            Komanda uçastogynda gepleşik sredasyna ol ýa-da beýleki buýruklar berilýär.

            Eger-de menýular we penjireler bilen işlenende syçanjygyň kömeginden peýdalanylsa, onda ekranda syçanjygyň görkezijisi boýunça zerur bolan islendik elementi saýlap alyp bolýar. Saýlanyp alnan elementi işe goýbermek üçin syçanjygyň görkezijisini onuň üstüne eltip çep düwmejigini (nokadyny) basmaly.

 

Penjireler bilen işlemek.

TURBO-PASCAL sredasynda birnäçe penjireleriň ulanylmagy sebäpli ekranda olar biri-biriniň öňünde ýerleşmegi mümkin. Penjireleri gezekli gezegine (açmak) çalyşmak üçin F6 düwmejigi ulanylýar. Bu klawişa basylanda, ol indiki penjiräni işjeň ýagdaýa geçirýär, ýagny ol penjire iň öňde durýar. Penjireleri işjeň ýagdaýa syçanjygyň kömegi bilen hem geçirmek mümkin. Onuň üçin görkezijini saýlanyp alnan penjiräniň üstüne eltip çep düwmäni basmaly.

Işjeň ýagdaýdaky penjiräniň daşyny gaplap alýan ramkanyň ýokarky böleginde syçanjygyň görkezijisi üçin niýetlenen iki sany uly bolmadyk uçastok bardyr. Olardan birinjisi- [-]-penjiräni ekrandan aýyrmak üçin, ikinjisi-[­]- bolsa penjiräni giňeldip ekrana doldurmak üçin niýetlenendir. Eger-de, ikinjiniň ornuna [↕] belgi bolan halatynda, ol ekrana doldurylan penjiräni öňki ýagdaýyna getirýär. Bu  hereketleri klawiaturanyň kömegi bilen hem ýerine ýetirmek mümkin: F5- penjiräni ekrana doldurýar ýa-da  ekrana dolan penjiräni öňki ýagdaýyna getirýär, Alt-F3- bolsa penjiräni ýapýar (ekrandan aýyrýar). Ýapylan penjire TURBO-PASCAL sistemasynyň penjireler toplumyndan aýrylýar we indi ony F6-ň kömegi bilen çagyrmak mümkin däldir. Redaktorda ýerleşýän penjire ýapylmazdan öň TURBO-PASCAL sredasy tekst ýazgylaryny diskde saklamalymy ýa-da ýok diýen soragy berýär.

Işjeň penjiräniň ölçegini we ekranda ýerleşişini üýtgetmek mümkin. Olary üýtgetmek Ctrl-F5 düwmeleriniň kömegi bilen amal edilýär. Bular basylandan soň penjiräniň daşky ramkasynyň reňki üýtgär, ýagny agzalan ölçegleri üýtgetmek mümkinçiligi açylýar. Soňra kursory süýsürýäň dümejikleriň kömegi bilen penjiräni ekranyň islendik ýerine süýşürmek mümkin. Kursory süýşürýän düwmejiller Shift düwmejigi bilen bilelikde ulanylsa, penjiräniň ölçegini üýtgetmek mümkin. Ekranda penjiräniň ýeri we ölçegi gutarnykly kesgitlenenden soň “Enter “ düwmejigini basmaly.

Syçanjyk bilen işlenilende, onuň ekrandaky görkezijisi ramkanyň çep ýokarky çüňküne eltilip çep düwmejik basylan halatynda ramkanyň reňki we durky üýtgär. Çep düwmejigi basmagy dowam edip görkezijini ekranda süýşürsek, onda penjire hem şol ugra süýşer. Penjire gerekli ornuna gelensoň syçanjygyň çep düwmejigini goýbermeli.

Penjiräniň ölçegini üýtgetmek üçin onuň sag, aşaky çüňkine syçanjygyň görkezijisini eltip ýokardaky hereketleri gaýtalamak ýeterlik.

Kömekçi gullugynyň ýa-da redaktoryň penjirelerinde bar bolan ýazgylar bütewiligine penjirä ýerleşmän halatynda, penjiräni süýşürmek mümkinçiligi döredilýär. Onuň üçin penjiräniň sag we aşaky ramkalarynda ölçeg görkezijileri bolup, olar penjiredäki ýazgylaryň tutuş tekstiň göwrümine görä haýsy ýerde ýerleşýändigini mälim edýär. Syçanjygyň kömegi bilen bu ölçeg görkezijilerini süýşürmek arkaly ýazgylara görä penjiräni çepe-saga ýa-da aşak-ýokaryk süýşürmek mümkin. Penjiräni bir setir aşak süýşürmek üçin sag tarapdaky wertikal ramkanyň iň aşaky bölegine ýagny, belgä syçanjygyň görkezijisini eltip, onuň çep düwmejigini basmaly. Degişlilikde ▲, ►, ◄ belgileriň üstine syçanjygyň görkezijisini eltip penjiräni bir setir ýokary, bir sütün saga ýä-da çepe süýşirmek mümkin. Penjiräniň bir sahypa aşak süýşirmek üçin, syçanjygyň görkezijisi wertikal ramkadaky ölçeg görkezijisiniň aşaky ýarpy böleginiň

islendik ýerinde goýup çep düwmejigi basmaly. Penjiräni bir sahypa ýokary, çepe ýa-da saga süýşürmek üçin hem degişlilikde wertikal ramkanyň ölçeg görkezijisiniň ýokarky ýarpy bölegini, gorizontal ramkanyň ölçeg görkezijisiniň cep ýa-da sag ýarpy bölegini ulanmak gerek.

 

Menýu bilen işlemek.

TURBO-PASCALyň redaktoryndan çykyp, esasy menýudaky gönüburçly bölümçelere geçmek üçin F10 düwmäni basmaly. Gaýtadan redaktora dolanmak üçin  Esc düwmäni basmaly.

Gepleşige taýýar bolan bölümçäniň reňki ýa-da görnüşi üýtgeýär. Kursory süýşürýän düwmejikleriň kömegi bilen dürli bölümçeleriň üstüne geçmek bilen gerek halatynda zerur bölümçäni işe goýbermek üçin kursory onuň üstüne eltip “Enter” düwmäni basmaly.

Ýokardaky agzalan işleri başgaça hem ýerine ýetirmek mümkin. Onuň üçin esasy menýudan bölümçe saýlap almak üçin “Alt-<harp>” düwmeleri, goşmaça menýudan almak üçin bolsa gerekli harply düwmejigi basmak ýeterlik. Syçanjygyň kömegi bilen işlenen halatynda görkezijini gerekli bölümçä eltip çep düwmejigi basmaly. Saýlanyp alnan bölümçeler öz gezeginde täze menýu hökmünde açylyp ýa-da gepleşik penjiresine öwrülýär. Eger bölümçäniň adynyň sagynda köp nokat bar bolsa onda bu bölümçe gepleşik penjiresine geçmäge ukyply, egerde “è” belgi bolsa onda goşmaça menýu çagyrylyp biliner.

Göşmaça menýuda bolan, has köp ulanylýan bölümçeleri göni redaktordan çagyrmak hem mümkin. Bu bölümçeleriň atlarynyň sagynda haýsy düwmejigiň üsti bilen ony çagyryp bolýandygy ýazylýar.

 

 


 

Gepleşik penjiresii bilen işlemek

Gepleşik penjiresiniň kömegi bilen saýlanyp alnan ol ýa beýleki hereketler anyklanylýar. Bu penjiräniň belli bir bölümlerinde sredanyň mümkinçilikleri we özgerdilşi baradaky informasiýalar toplumy ýerleşýär.

            Gepleşik penjiresi açylan halatynda ondaky bölümleriň haýsydyr biri öz reňkini üýtgedip işjeň ýagdaýa geçýär.

            Penjirede kursor diýip atlandyrylýan bir bölümden beýlkä ýa-da gerekli faýly saýlap almaga mümkinçilik berýän yşyk hem bardyr.

            Aşakdaky düzgünleri ýatda saklalyň:

-        bir bölümçeden beýlekä geçmeklik Tab düwmesiniň basylmagy bilen ýerine ýetirilýär.

-        bölümiň öz içinde geçmeklik kursory süýşirýän düwmeleriň basylmagy bilen ýerine ýetirilýär.

-   gepleşip penjiresini iki hili ýapmaklyk mümkin. Esc düwmäniň basylmagy bilen ýapylan halatynda penjirede hiç- hili üýtgeme bolmaz, Enter düwme basylan halatynda bolsa penjirede göz öňünde tutulan görkezmeler ýerine ýetirilýär, ýa-da görkezilen faýl saýlanyp alynýar.

Syçanjygyň kömegi bilen işlenen halatynda görkeźijini gerekli bölümçä eltip onyň ýerine ýetirilen hereketleri we özgertmeleri saklap penjiräni ýapmak üçin görkezijini OK atly bölümçä eltip syçanjygyň çep düwmesini basmaly. CANCEL düwmesi basylyp ýapylan penjirede hiç- hili hereket we özgertme ýerine ýetmez.

            Gepleşik penjiresi açylan badyna üýtgeýän yşykly bölümçe peýda bolup bu bu bölümçede ýazgy setirini (meselem faýlyň adyn) girizmek mümkin. Ekranda ýazgy ýazylandan soňra “Enter” düwmesi basylmaly.

            Geçirilýän ýazgylary şol bir wagtda redaktirlemek hem mümkindir. Nädogry ýazylan simwoly “Del” ýa-da “ç düwmeleriň kömegi bilen öçürmek bolar. Nädogry ýazylan simwol setiriň islendik ýerinde bolanda hem, kursory süýşürip oňa barmak we düzetmek bolýar.

            “Enter” düwmesi basylandan soňra, ýazgylar girizilýär we gepleşik penjiresi ýapylýar. Eger-de ýazgylary girizmek pikirinden el üzüp penjiräni ýapmakçy bolsaňyz onda “Esc” düwmäni basmak ýeterlik.

            Öň girizilen ýazgylary, meselem öň girizilen faýlyň adyny gaýtadan girizmekçe bolsaňyz, onda ony täzeden ýazmagyň zerurlygy ýok. Onuň üçin kursory aşak süýşürýän düwmäni basmaly ýa-da syçanjygyň görkezijisini belgä getirip onuň çep düwmesini basmaly. Ekranda kiçeňräk penjire peýda bolup onda öň girizilen ýazgylary görmek we olardan gerekli setiri saýlap almak bolýar. Göniburçlyk şekilindäki reňkli görkeziçini kursory süýşürän düwmäniň kömegi arkaly gerekli ýazgylary saýlap “Enter” düwmesini ýa-da syçanjygyň çep düwmesine iki gezek yzygider basmak zerur.

            Gepleşik sredasynyň düzümini sazlamak üçin niýetlenen bölümçeler bolup, olarda iki ýa-da birnäçe wariantlardan durýan çözgütler hödürlenýär. Bu çözgütler sredanyň haýsydyr bir parametrini açmak ýa-da  ýapmak bilen baglanyşykly bolup biler. Meselem kompilýatordan arifmetiki kömekçi prosessory (soprossesory) ulanmagy ýa-da ulanmazlygy talap etmek mümkin .

            Gepleşik penjiresinde, agzalan bölümçeleriň çepinde kwadrat skobkalar bilen çäklenen kiçeňräk meýdança bolup, eger-de parametr işjeň ýagdaýda bolsa onda [x] belgi bilen belgilenen, eger-de parametr işçeň däl ýagdaýda bolsa onda ol boş [ ] kwadrat skobka bilen belgilenen bolar.

            Birnäce wariantly çözgitleri bolan bölümçelerde her bir wariantyň çepinde tegelek skobkalar bilen çäklenen meýdança bolup saýlanyp alnan wariant nokat bilen (.) belgilenýär. Saýlanyp alnan parametriň ýagdaýyny üýtgetmek ýa-da başga bir warianty saýlap almak üçin, kursory süýşürmek arkaly gerekli warianta geçip “Probel” düwmesini basmaly ýa-da syçanjygyň görkezijisini saýlanyp alnan wariantyň çepine  eltip onyň çep düwmesini basmaly.

 

Menýular sistemasy.

TURBI-PASCAL sredasyny dolandyrmak üçin açylyp, ýapylýan menular sistemasy ulanylýr. Olaryň içinde esasy menýu ekranda elmidama saklanýar. Esasy menýu diňe goşmaça menýularyň mazmunyny aňladýan sözlerden ybaratdyr. Goşmaça menýu özünde häsiýetleri we ýerine ýetirýän hereketleri birmeňzeş mazmunly şertli sözleri saklaýar:

º - kömekçi hereketler (TURBO-PASCAL-ň wersiýasy baradaky informasiýa, ekrany arassalamak ýa-da gaýtadan dikeltmek), käbir halatlarda ol belgi E harpy bilen belgilenýär.

File – faýllar bilen işlemek we sistemadan çykmak.

Edit – (redaktirlemek) – düzedilmeli setiri gaýtadan dikeltmek we wagtlaýyn bufer bilen işlemek;

Search – (gözlemek) – tekst ýazgylaryny, funksiýalary, proseduralary we ýalňyşlyklary gözlemek;

Run – programmany işe goýbermek,

Compile – programmanyň işleýşini barlamak;

Debug – programmanyň işleýşini sazlamak;

Options – sredanyň parametrlerini goýmak;

Window – penjireler bilen işlemek.

Help – kömek gullugyna ýüzlenmek;


º - belgili menýu.

 

Bölümçeler menýusi.

ABOUT. TURBO PASCAL-yň wersiýasy hakynda informasiýa berilýär.

REFRESH DISPLAY - Egerde programma işe goýberilen halatynda

OPTIONS/DEBUGGER/DISPLAY SWAPPING/NONE bölümçäniň işi sebäpli harap bolan ekranyň durkuny gaýtadan dikeldýär.

CLEAR DESKTOPE – Ekrandaky ähli penjireleri ýapyp ony arassalaýar. Egerde penjireleriň birinde gutarylmadyk (diske ýazylmadyk )ýazgylar bolan halatynda, onda ekrana bu barada gepleşik penjiresi çykyp ýazgylary diske ýazmaklyk teklip ediler.

FILE bölümçesiniň menüýsy.

OPEN. Redaktorda täze penjire açyp, oňa görkezilen faýla ýerleşdirýär. Bu bölümça ýüzlenilende NC suratda görkezilen gepleşik penjiresi açylyp Name ýazgynyň aşagynda faýlyň adyny ýazmak mümükin. Egerde faýlyň ady doly ýazylmadyk bolsa (tipi görkezilmedik bolsa )onda oňa standart tip ýagny PAS giňeltme dakylýar. Gerekli faýly saýlap almak üçin Tab düwmesi, soňra bolsa kursory süýşürýän düwme ulanylýar. Syçanjygyň kömegi bilen gerekli faýly saýlap iki gezek yzygider çep düwmäni basmaly. Öňki girizilen atlary we ýazgylary gaýtadan çagyrmak üçin giriş meýdançasy işjeň ýagdaýynda kursory aşak süýşürýän düwmäni basmaly ýa-da syçanjygyň görkezijisini giriş meýdançasynyň sagyndaky belgisine eltip onuň çep düwmesini basmaly. Açylan ýazgylaryň içinde gerekli setiri saýlap “Enter” düwmesini basmaly.

OPEN (açmak) – redaktoryň täze penjiresinde faýly okamak.

REPLACE (çalyşmak)- redaktoryň işjeň penjiresindäki ýazgylary, faýldan okalan ýazgylar bilen çalyşmak. Redaktordan gös-göni FILE bölümçesini F3 düwmäni basmak arkaly çagyrmak mümkindir.

NEW. Redaktorda täze penjire açylyp oňa NONAMEOO.PAS at dakylýar.

SAVE. Redaktoryň işjeň penjiresindäki ýazgylary gaty diske faýl görnüşde ýazýar. Egerde bu penjire NONAMEOO.PAS at bilen baglanyşykly bolsa onda, indi dakyljak täze at soralýar. Redaktordan bu bölümçäni gös-göni çagyrmak üçin F2 düwmäni basmaly.

SAVE AS. Redaktoryň işjeň penjiresindäki ýazgylary başga bir at bilen gaty diske faýlgörnüşde ýazýär.

N-suratda bu bölümçä degişli gepleşik penjiresi görkezilendir.

      Giriş meýdançasynda täze at girizilip redaktoryň işjeň penjiresindäki ähli ýazgylar bu at bilen faýl görnüşinde saklanar. Bu bölümçäni diňe işjeň penjire üçin däl-de başga islendik faýl üçin hem ulanyp bolar. Onda bu ýagdaý iki hili tamamlanmagy mümkin. Faýlyň öňki durkynyň ätiýaçlyk göçürmegi BAK giňeltme bilen saklanar, ya-da ol ýok ediler. (Bu hakda sredany sazlamak OPTIPNS/ENVI RONMENT bölümçede garalar).

SAVE ALL.  Redaktoryň ähli penjirelerinde bar bolan ýazgylary gaty diske degişli faýllar görnüşinde ýazylýar.

CHANGE DIR. Ulanyja, üstünde işläp oturan katalogyny çalyşmaga (üýtgetmäge) mümkinçilik berýär. Bü bölümçäniň gepleşik penjiresinde gaty diskiň kataloglarynyň daragyt şekilindäki ýerleşişi(suray NOraz) görkezilen. Kataloglaryň daragty boýunça hereket edip gerekli katalogy saýlap, soňra CHDIR buýrugynyň kömegi bilen şol pursatda ulanylýan katalogy saýlanyp alnan kataloga çalyşyp bolar.

DRIVES. (diskleri göýbermek) görkezijisi ulanylan halatynda diski hem çalyşmak mümkindir.

Eger-de siz käbir sebäplere görä çalyşmak pikirinden el çekseňiz onda REVERT (dolanmak) buýrugynyň kömegi bilen öňki ýagdaýy dikeldip bilersiňiz (Bu buýrugy penjire ýapylmanka ulanyp bolýar).

PRINT.  Redaktoryň işjeň penjiresindäki durnukly çap ediji gurala çykarýar.

GET INFO. Ýerine ýetirilýän programma we huşuň ulanylyşy barada maglumat berýär.

DOS SHELL. Wagtlaýynça DOS sistemasyna çykmak. Şunlukda TURBO PASCAL peratiw huşda esasy (rezident) programma bolmagynda galyp onuň agramly bölegini tutýar. DOS sistemada şol mahal diňe göwrümi uly bolmadyk programmalary ýerine ýetirip bolar. Bölümçä ýüzlenmezden öň, Ctrl+F2 duzmeler bilen sazlaýyş rejimini aradan aýyrmak arkaly huşdaky DOS üçin niýetlenen bölegini artdyryp hem bolar.

Gaýtadan TURBO PASCAL dolanyp gelmek üçin DOS-yň talabyna jogap hökmünde EXIT sözüni ýazyp “enter,, düwmesini basmaly.

EXIT. TURBO PASCAL-da işi tamamlamak. Başgaça, redaktordan gös-göni işi tamamlamak üçin Alt+X düwmeleri basmaly.

 

EDIT bölümçesiniň menýusy

RESTORE LINE. Redaktoryň işjeň penjiresinde öň ýanynda üýtgedilen ýa-da Ctrl+Y buýrugy bilen aýrylan setiri gaýtadan dikeldýär.

CUT.  Redaktoryň penjiresinde bölünip alnan blogy ekrandan aýyryp ony wagtlaýyn bukja ýerleşdirýär.

Redaktordan gös-göni bölümçäni çagyrmak üçin shift+Del düwmeleri basmaly.

COPY. Redaktoryň penjiresinde bölünip alnan blogyň göçürmesini wagtlaýyn bukja ýerleşdirýär. Bölümçe redaktordan gös-göni Ctrl+Ins düwmeleri basmak arkaly çagyrylýar.

PASTE. Wagtlaýyn bukjanyň içindäkileri redaktoryň penjiresine göçürýär.

Şunlukda bukjanyň içindäkiler üýtgewsiz galyp, olary gaýtadan ýene ulanmak mümkindir. Bölümçe shift+Ins düwmeleriň kömegi bilen redaktordan çagyrylýar.

COPY EXAMPLES. Kömekçi gullugynyň penjiresinden nusgalyk programmany wagtlaýyn bukja göçürýär.

CLEAR. Redaktoryň penjiresinden bölünip alnan blogy wagtlaýyn bukja salmazdan ýok etmek. Ýoklanan blogy gaýtadan dikeldip bolmaýar. Redaktordan bölümçäni çagyrmak üçin Ctrl+Del düwmeleri basmaly.

 

 

TURBO PASCAL ALGORITMIK DILI

 

            PASCAL algoritmik dili häzirki döwürde personal kompýuterlerde iň bir ýörgünli dilleriň biridir. Bu dil 1971-nji ýylda şweýsar professory Niklaus Wirt tarapyndan işlenip düzülýär we onda esasan strukturalaýyn programmirlemeklige uly üns berilýär. Diliň ady XVII-nji asyrda ýaşap geçen beýik fransuz filosofy, matematigi Blez Paskalyň hatyrasyna dakylýar(B.Paskal 1623-1662).

            1980-nji ýylda personal (kiçi) kompýuterler üçin MS-PASCAL, TURBO-PASCAL, PASCAL-80 translýatorlarynyň döredilmegi bilen PASCAL, TURBO-PASCAL ýokary derejeli ylmy algoritmik dil hökmünde öz ornuny hasda berkitdi. Häzirki döwürde TURBO-PASCAL dili islendik personal kompýuterlerde ulanylýan iň kämil programmirleýiş dilleriniň biri hasaplanylýar.

 

1.      TURBO-PASCAL diliniň esasy simwollary. Kömekçi sözler.

TURBO-PASCAL diliniň elipbiýi aşakdaky simwollardan, kömekçi sözlerden we belgilerden durýar:

1) Latyn elipbiýiniň uly we kiçi harplary:

A,B,C,…, X,Y,Z;

a,b,c,… x,y,z;

2) Onluk hasaplaýyş sistemasynyň sanlary: 0,1,2,… ,9

3) Arifmetiki amallaryň belgileri:

      +(goşmak), -(aýyrmak), *(köpeltmek), /(bölmek), Div(bitin sanlary bölmek bilen taşlamak), mod(bitin sanlarda bölmek bilen galyndyny kesgitlemek). Görkezilen amallar bitin san köplüginde ýerine ýetirilmek bilen degişlilikde paýy we galyndyny kesgitleýär.

Meselem:

20 div 3 = 3;          16 div 3 = 5;                25 div 4 = 6;

13 mod 5 = 3;        24 mod 5 =4;               12 mod 3 =0;

 

4) Gatnaşyk belgileri:

>(uly), >=(uly we deň), <(kiçi), <=(kiçi we deň), =(deň), <>(deň däl).

5) Logiki amallaryň belgileri:

not(inkär etmek), or(dizýunksiýa-logiki goşmak), and(konýunksiýa-logiki köpeltmek)

6) Eýe bolmak operatorynyň belgisi :=

7) Bir-biriniň yzyndan gelýän iki gurluşyň arasyny aýyrmak üçin ulanylýan                     belgiler:  .(nokat); ,(otur); :(goşa nokat); ;(nokatly otur);

8) Beýleki ýörite belgiler: ‘(apostrof), ()(açylýan we ýapylýan ýay), [ ](kwadrat ýaý), !(ýüzlenme belgisi), ?(sorag belgisi), %(prosent),  (boş öýjük we ş.m.

TURBO-PASCAL algoritmik dilinde programmany ýazmak üçin aşakdaky kömekçi sözlerden peýdalanýarlar:

 

KÖMEKÇI SÖZLER

MANYSY

ARRAY

MASSIW

BEGIN

BAŞLANGYÇ

CASE

WARIANT,SAÝLAW

CONST

HEMIŞELIK

DO

ÝERINE ÝETIRMEK

DOWNTO

KEMELTMEK

ELSE

ÝOGSAM

END

SOŇY

FILE

FAÝL

FOR

ÜÇIN

FUNCTION

FUNKSIÝA

GOTO

GEÇMEK

IF

EGER

IN

DEGIŞLI

LABEL

BELGI

NUL

HIÇ ZAT

OF

-DAN, -DEN GOŞULMASY

PACKED

GAPLANAN

PROCEDURE

PROSEDURA

PROGRAM

PROGRAMMA

RECORD

ÝAZGY

REPEAT

GAÝTALAMAK

SET

KÖPLÜK

THEN

ONDA

WHILE

ENTEK

WITH

BILEN

 

2.      TURBO-PASCAL ALGORITMIK DILINIŇ ÝÖNEKEÝ GURLUŞLARY

 

2.1  Hemişelikler

Ulanyjy tarapyndan ýazylan programma ýerine ýetirilýän wagtynda öz bahasyny üýtgetmeýän ululyklara hemişelikler diýilýär. TURBO-PASCAL algoritmik dilinde hemişelikleri aşakdakytoparlara bölmek mümkin:

1)      san hemişelikleri

2)      liter hemişelikleri

3)      setir hemişelikleri

4)      logiki hemişelikler

San hemişelikleri iki görnüşde bolup bilýär:

a)      bitin san hemişelikleri

b)      hakyky san hemişelikleri

Bitin san hemişelikleriniň tipi INTEGER, hakyky san hemişelikleri bolsa REAL görnüşinde bellenilýär. Meselem, TURBO PASCAL dilinde bitin san hemişelikleri 23, 2001, -97, -465 we ş. m. ýaly ýazmak bolýar. Bitin san hemişelikleri (-32768, 32767) san aralykda çäklendirilýär.

Hakyky sanlar kompýuteriň ýadynda ýakynlaşan, ýagny käbir takyklyk bilen ýazylýar. Meselem: 21.0, 21.000001, 20.999999 sanlaryň ählisi hakyky tipde berlen 21-i aňladýar. Hakyky sanlary iki görnüşde ýazyp bolýar:

1) fiksirlenen nokat arkaly;                 2) Üýtgeýän nokat arkaly

Meselem 0.161, -19.74, -4.0 we 141.69 sanlar fiksirlenen nokat arkaly ýazylandyr. Programmada ulanylýan absolýut ululygy boýunça has kiçi we has uly sanlar üýtgeýän nokat arkaly aňladylýar. Meselem 0.00075 hakyky sany üýtgeýäň nokat arkaly 75E-05, 7.5E-04, 0.75E03 we ş.m. görnüşinde ýazmak mümkündir. Hakyky san hemişelikleri absolýut ululygy boýunça (10-38, 1038) aralykda çaklendirilendir. Diliň elipbiýine girýän diňe bir sany simwoldan ybarat bolan ululyga liter hemişeligi diýilýär. Liter hemişeliklerini “ ′ “ apostrof belgisiniň arasynda ýazylýar. Meselem ‘L’ , ’*’ , ‘C’ , ‘8’ , ‘ ‘ we .ş.m. liter hemişelikleridir. Liter hemişelikleriň tipi CHAR görnüşde ýazylýar. TURBO-PASCAL dilinde iki sany logiki hemişelik ulanylýar:

1) TRUE (çyn);           2) FALSE (ýalan).

Logiki hemişelikleriň tipi BOOLEAN görnüşde bellenilýär. Setir hemişeligi diýip diliň elipbiýine girýän harplaryň, sanlaryň we beýleki simwollaryň toplumyna aýdylýar. Setir hemişeligi hem apostrof belgisiniň içinde ýazylýar. Meselem: ‘Y=’, ‘NETIJE’, ‘JEM’ we ş.m. setir hemişeliklerine mysaldyr. TURBO-PASCAL dilinde setir hemişeliginiň tipi STRING görnüşde ýazylýar. Setirdäki ähli simwollaryň sanyna setir hemişeliginiň uzynlygy diýilýär. Uzynlygy diňe 1-e deň bolan setir hemişeligine liter hemişeligi hökmünde seretmek mümkindir.

 

  

2.2  ÜÝTGEÝÄN ULULYKLAR.

 

Kompýuterde programma ýerine ýetirilýän mahalynda öz bahasyny üýtgedip bilýän ululyklara  üýtgeýän ululyk diýilýär. Üýtgeýän ululyklary  atlandyrmak üçin ulanylýan belgilere bolsa identifikatorlar diýilýär. Identifikator üýtgeýän ululyga berilýän bahanyň kompýuteriň ýadynyň haýsy öýjüginde ýerleşýändigini görkezmek üçin hyzmat edýär. Identifikator üýtgeýän ululyga berilýän bahanyň kompýuteriň ýadynyň haýsy öýjüginde ýerleşýändigini görkezmek üçin hyzmat edýär.

Identifikatoryň birinji simwoly hökman latyn harpy bolmaly we TURBO-PASCAL-da identifikatoryň uzynlygy çäklendirilmeýär. Meselem: TURBO-PASCALI, FTK, FIZIK, TALYP we ş.m. identifikatorlara mysal bolup biler.

            Üýtgeýän ululyklaryň atlary kömekçi sözleriň hiç birine hem gabat gelmez ýaly edip saýlap almaly. TURBO-PASCAL dilinde programmada ulanylýan hemişelikleriň, funksiýalaryň, proseduralaryň we faýllaryň atlaryna hem identifikatorlar diýilip düşünilýär. Identifikatory standart we standart däl identifikatorlara bölmek bolýar. Standart identifikatorlar diýip diliň özünde öňden kabul edilen identifikatorlara aýdylýar. Meselem:

standart identifikator

manysy

1

FALSE, TRUE

standart logiki hemişelikler

2

MAXINT,PI

standart san hemişelikleri

3

ABS, SQR, COS, SIN, LN, EXP, SQRT, ARCTAN, TRUNC, ROUND, PRED, SUCC, ORD, CHR, ODD, EOF, EOLN we ş.m.

 

 

standart funksiýalar

4

GET, PUT, NEW, REWRITE, READ, PACK, UNPACK, READLN, RESET, WRITE, WRITELN, PAGE we ş.m.

 

 

standart proseduralar

           

            Standart däl identifikator diýip programmany düzýän ulanyjynyň girizýäň identifikatoryna aýdylýar. Olar programma ýazylanda, başda tipleri boýunça kesgitlenilýär. Meselem:

            VAR A100, OMEGA, K : INTEGER; Y5, X10, Z : REAL;

                        C,T : BOOLEAN;  D10 : CHAR;

Gurluşy boýunça üýtgeýän ululyklary iki topara bölmek bolýar:

1)      Ýönekeý üýtgeýän ululyklar;

2)      Indeksli üýtgeýän ululyklar

Ýönekeý üýtgeýän ululyklara mysallar:

X2, Y5, Z1, Q3 we ş.m.

Olar INTEGER,REAL,BOOLEAN,CHAR,…tipleriň islendigine degişli bolup bilýärler.

TURBO PASCAL dilinde bir tipe degişli bolan birnäçe üýtgeýän ululyklary identifikatorlar arkaly hem atlandyrmak mümkin . Bu ýagdaýda üýtgeýän ululyklaryň her birine indeksli üýtgeýän ululyklar diýilýär. Indeksli üýtgeýän ululyklar bir indeksli, iki indeksli we köp indeksli bolup bilerler: Meselem:

A[6], C5[15], XY[I], B[10]-bir indeksli üýtgeýän ululyklar;

A[3,4], B[2,3], C5[I,J], D[4,4]-iki indeksli üýtgeýän ululyklar.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.3  STANDART FUNKSIÝALAR

Köp ulanylýan elementar funksiýalaryň bahalaryny hasaplamak üçin standart funksiýalardan peýdalanylýar. Hasaplamalarda köp duş gelýän standart funksiýalar:

sinx, cosx, ex, lnx, , , x2 we ş.m.

Standart funksiýalaryň bahalaryny hasaplamak üçin nietlenen programmalar kompýuteriň ýadynda saklanylýar. Olara ýüzlenmek üçin funksiýalaryň adyny ýazyp, ýaýyň içinde argumentiň bahasy görkezilýär. Standart funksiýalara pragrammanyň islendik ýerinde eýe bolmak operatorlarynyň sag tarapyndaky aňlatmadan ýüzlenip bolýar. Meselem:

Y:=a3*SIN2(X)

TURBO-PASCAL algoritmik dilinde şu aşakdaky  standart funksiýa ulanylýar:

(sah 6-7)

Funksiýanyň ady

Argumentiň tipi

Netijäniň tipi

Funksiýanyň manysy

ABS(X)

bitin/hakyky

argumentin-

äki ýaly

X-iň absolýut bahasy

Pi

-

hakyky

Pi sanyň bahasy

SIN(X)

hakyky

hakyky

X radian-dan alnan sinus

COS(X)

hakyky

hakyky

X radian-dan alnan cosinus

ARCTAN(X)

hakyky

hakyky

Xradiandan alnan arktangens

SQRT(X)

bitin/hakyky

argumentin-

äki ýaly

X-dan alnan kwadrat kök

SQR(X)

bitin/hakyky

argumentin-

äki ýaly

X-iň kwadraty

EXP(X)

hakyky

hakyky

e-niň derejesindäki X

LN(X)

hakyky

hakyky

X-iň natural logarifmi

TRUNC(X)

hakyky

Longint

X-iň bitin bölegi

FRAC(X)

hakyky

hakyky

X-iň drob bölegi

INT(X)

hakyky

hakyky

X-iň bitin bölegi

ROUND(X)

-

Longint

X-i iň ýakyn bitin sana çenli tegeleklemek

RANDOM

-

hakyky

(0…1) aralykdan tötänleýin sanlar

RANDOM(X)

Word

Word

(0…X) aralykdan tötänleýin sanlar

ODD(X)

Bitin

Logiki

Eger X-iň bahasy täk bolsa nrtije TRUE

 

Trigonometrik funksiýalaryň bahalary radianlarda hasaplanylýar. Eger burç gradiuslarda berlen bolsa, onda ony aşakdaky formula boýunça radianlara öwürmeli:

radian=gradius*PI/180

Ters triganometrik funksiýalaryny hasaplamak üçin aşakdaky formulalardan peýdalanmak bolýar:

arcsin x=arctg(x/sqrt(1-x2);

arccos x=arctg(sqrt(1-x2)/x);

arcctg x=arctg(1/x).

Islendik esaslar logarifmik hasaplamakda bir esasdan beýleki esasa geçmek üçin

logab=lnb/lna.

formulalardan peýdalanylýar.

Standart funksiýalaryň bahasy hasaplanylanda onuň argumentini ýaýyň içide ýazmaly we açylýan-ýapylýan ýaýlaryň sany deň bolmalydyr. Meselem:  cos2x2

funksiýanyň bahasy hasaplanylanda aňlatmany

sqr(cos(sqr(x)))

görnüşde ýazyp bolýar.

Tablisada beýan edilişi ýaly , TRUNC standart funksiýasy hakyky sanyň galyndy bölegini kesip taşlaýar.

Meselem:

TRUNC(-12.75)=-12 ýa-da TRUNC (46.69)=46

ROUND standart funksiýasy bolsa argumenti iň ýakyn sana çenli tegelekleyär. Meselem:

ROUND(-9.5)=-10.0 ýa-da ROUND(35.49)=35.0 PRED we SUCC standart funksiýalary INTEGER, CHAR we BOOLEAN tipli argumentler üçin degişlilikde berlen elementiň öň ýanyndaky we yz ýanyndaky elementini kesgitleýär, Meselem:

PRED(6)=5; SUCC(9)=10 (Argument INTEGER tipe degişli bolmalydyr.);

PRED(Y)=X; SUCC(Y)=Z (argument CHAR tipe degişli bolmalydyr).

ORD we CHR standart funksiýalar bir-birine ters funksiýalar bolup, olara başgaça özgerdiji funksiýalar hem diýärler. ORD(X) standard funksiýa X simwola degişli bolan tertip nomeri kesgitleýär. Meselem:

ORD(‘0’)=48; ORD(‘A’)=65;

ORD(‘ ‘)=32;  ORD(‘B’)=66; we ş.m.

CHR(I) standart funksiýa nomer boýunça oňa degişli bolan simwoly kesgitleýär. Meselem: CHR(48)=0; CHR(65)=A we ş.m.

ODD(X) standart funksiýa X bitin sanyň jübit-täkligini kesgitleýär:

Eger x san täk bolsa, onda ODD(x) standart funksiýa ,,TRUE’’ baha eýe bolýar. Meselem: ODD(11)=TRUE; ODD(19)=TRUE

Eger x san jübit bolsa, onda ODD x standart funksiýa ,,FALSE’’ baha eýe bolýar. Mselem ODD(8)=FALSE; ODD(36)=FALSE.

ODD(x) standart logiki funksiýalara degişlidir.EOLN(x)-logiki funksiýa x-faýlda setiriň soňuny kesgitlemek üçin ulanylýar.

EOF (x)-x-faýlyň soňuny kesgitlemek üçin ulanylýar.

 

2.4 AŇLATMALAR.

TURBO-PASCAL algaritmik dilinde aňlatmalar hemişeliklerden, ýönekeý we indeksli üýtkeýän ululyklardan, standart funksiýalrdan, amallaryň belgilerinden we ýaýlardan ybarat bolup bilerler.

Aňlatmanyň bahasy INTEGER ýa-da REAL tipe degişli bolsa, onda onuň ýaly aňlatmalar arifmetiki aňlatmalar diýilýär. Meselem: (1*25 *sin(x)+PI)/SQR(A+B)/x.

Arifmetiki aňlatmalarda amallar aşakdaky tiplerde ýerine ýetirilýär:

1)      ilki ýaýyň içi ýerine ýetirilýär.

2)      eger ýaý özünde ýenede bir näçe faýlary saklaýan bolsa onda hasaplama iň kiçi ýaýyň içinden başlanýar;

3)      ýaýyň içinde ilki standart funksiýalaryň bahalary hasaplanylýar;

4)      soňra amallar: *, /, DIW, MOD, +, -, tirtipde ýerine ýetirilýär.

TURBO-PASCAL dilinde derejä götermek amaly LN(x) we EXP(x) standart funksiýalar arkaly aňladylýar. Meselem:

1,6+2,75*x50 aňlatmany TURBO-PASCAL-da 1.6+2.75*EXP(100*LN(x))

görnüşde ýazmak bolar.

Aňlatmanyň bahasy hökmünde ,,TRUE’’ ýa-da ,,FALSE’’ logiki hemişelikler ulanylan bolsa onda onuň ýaly aňlatmalara logiki aňlatmalar diýilýär. Iki sany arifmetiki aňlatmanyň arasynda <, >, <=, >=, =, gatnaşyk belgileriniň birden birini ulanmak bilen ýönekeý logiki aňlatmany ýazmak bolýar. Meselem:

Y1+3.95<=X2+SQR(A);

6.25+4.75<>17.75

Has çylşyrymly logiki aňlatmalar ýönekeý logiki aňlatmalardan NOT, AND, OR, XOR logiki amalar bilen tapawutlanýar. Meselem:

(B>0.85) AND (I<4.5)

Logiki amallar aşakdaky hkykatlyk tablisasy bilen kesgitlenilýär.

 

A

B

A AND B

A OR B

A XOR B

 

A

NOT A

T

F

F

T

T

 

T

F

F

T

F

T

T

 

F

T

F

F

F

F

F

 

 

 

T

T

T

T

F

 

 

 

Bu ýerde  A we B islendik logiki aňlatmalar; T we F degişlilikde amallar NOT, AND, OR, XOR terTURBO-PASCALde ýerine ýetirilýär. Logiki aňlatmalar programmada köplenç şertli geçiş operatorynda şert hökmünde ulanylýar. 

3.TURBO-PASCAL DILINDE. PROGRAMMANYŇ GURLUŞY.

TURBO-PASCAL algoritmik dilinde programa söz başyndan we blokdan ybarat bolýar. Blogyň soňunda ‘’ . ‘’- nokat belgisi goýulýar. Programmanyň söz başysy umumy görnüşde aşakdaky ýaly ýazylýar:

PROGRAM M<programanyň ady>;

Bu ýerde <programmanyň ady>-ulanyjy tarapyndan girizilýän islendik at.   

Blok umumy ýagdaýda 6 sany bölümden ybarat bolýar:

1)      Belgiler bölümi;

2)      Hemişelikler bölümi;

3)      Tipler bölümi;

4)      Üýdegeýän ululyklar bölümi;

5)      Funksiýalar we proseduralar bölümi;

6)      Operatorlar bölümi.

Belgiler bölümi umumy ýagdaýda

                                    LABEL n1,n2,…,nk ;

gornüşde ýazylýar. Bu ýerde LABEL-bölümiň ady bolup ,,belgi’’ diýen manyny aňladýar; n1,n2,…,nk-programmada ulanylýan belgileriň sanawy. TURBO-PASCAL algoritmik dilinde belgi hökmünde atlary we 0-dan 9999-a çenli islendik bütin polojitel sany ulanmak mümkin. Belgileriň uzynlygy 4-sandan geçmeli däl we onuň öňünde alamat goýulmaýar. Belgileriň sanawy tertip boýunça ýazmak hökman däl, ol isilendik tertipde ýazylyp biliner. Programma ýazylanda belgi bilen islendik operatoryň arasynda ,, : “-goşa nokat belgisi goýulýar. Meselem:

LABEL 10;

………

10:X:=X+1 ;

……….

Eger programmada belgi ulanylmaýan bolsa, onda bu bölüm ýazylmaýar. Hemişelikler bölümi umumy ýagdaýda

CONST a1=c1; a2=c2, ..., an=cn;

görnüşde ýazylýar. Bu ýerde CONST – bölümiň ady a1, a2, ..., an – programmada ulanylýan hemişelikleriň atlary; c1, c2, ..., cn – degişlilikde a1, a2, ..., an hemişelikleriň eýe bolýan bahalary.

Her bir hemişelik öz bahasyna eýe bolandan soň hökman “ ; “ – nokatly otur belgisi goýulmagy zerurdyr. Hemişelik bilen onuň bahasynyň arasynda “ = “ – deňdir belgisi goýulýar.

Meselem:

                CONST NMIN = 1; NMAX = 100; PI = 3.141592;

Hemişelikleriň tipi  olaryň eýe bolýan bahalarynyň tipleri boýunça kesgitlenilýär.

Meselem:

NMIN  we NMAX -  INTEGER tipe, PI bolsa REAL tipe degişlidir. Eger programmada hiç hili hemişelik girizilmedik bolsa, onda bu bölüm ýazylmaýar.

Tipler bölümi umumy ýagdayda aşakdaky ýaly ýazylýar :

 TYPE T1=<tipiň mazmuny >; T2=<tipiň mazmuny>; ..., Tn=<tipiň mazmuny>;

Bu ýerde TYPE – bölümiň ady bolup “tip” diýen manymy aňladýar; T1, T2,...,

Tn – kesgitlenýän tipleriň atlary.

 Meselem:

                 TYPE  

                            TOMUS=(IÝUN, IÝUL, AWGUST);     

                             MAŞGALA=(KAKA, EJE, DOGAN, JIGI);

                  VAR

                              A: TOMUS; B=MAŞGALA;

Üýtgeýän ululyklar umumy ýagdaýda:

VAR X11, X12,..., X1n: T1; X21, X22,..., X2n: T2;..., Xm1, Xm2,...,Xmn: Tm

  görnüşde ýazylýar. Bu ýerde VAR - bölümiň ady bolup “üýtgeýän ululyk” diýen                           manyny  aňladýar.  X1i (i=1, n) T1  tipe degişli  bolan  üýtgeýän  ululyklaryň  atlary;

 X2i (i=1, n) T2 tipe degişli bolan üýtgeýän ululyklaryň atlary; Xmi (i=1,n) Tm tipe degişli bolan üýtgeýän ululyklaryň atlary.

Meselem:

         VAR

I, J, K: INTEGER; S, T: REAL; H: CHAR; B1, B2 : BOOLEAN;

Ýazgy I, J, K – üýtgeýän ululyklaryň diňe bitin tipe degişli bolan bahalary; S, T- üýt-

geýän ululyklaryň diňe hakyky tipe degişli bahalary; H- üýtgeýän ululygyň diňe liter tipe degişli bolan bahalary we B1, B2 – üýtgeýän ululyklaryn bolsa diňe logiki tipe degişli bolan bahalary kabul edip bilýändigini aňladýar.

Funksiýalar we proseduralar bölüminde programmada ulanylýan standart däl proseduralar beýan edilýar.Funksiyanyň sözbaşysy aşakdaky ýaly ýazylyar:

FUNCTION<funksiýanyň ady>(q1:T1; q2:T2; ...; qn:Tn): T;

Bu ýerde qi(i=1,n) formal parametler; Ti(i=1,n) degişlilikde qi(i=1,n) parametrleriň tipleri; T- funksiýanyň ýerine ýetirilmeginde alynyan netijäniň tipi .               Meselem:

FACTORIAL n!-i hasaplamak üçin düzülen funksiýa bolsa, onda ony funk-

siýalar we proseduralar bölüminde

FUNCTION FACTORIAL (K:INTEGER): INTEGER;

sözbaşy görnüşde ýazylýar. Eger-de programmada prosedura ulanylýan bolsa, onda ol

PROCEDURE <proseduranyň ady> (formal parametrleriň sanawy); görnüşdäki sözba

şy bilen ýazylýar. Formal parametrleriň sanawynda giriş-çykyş parametrleri we olaryň

tipleri görkezilýär.

Meselem:

KWU- kwadrat deňlemäniň  hakyky köklerini tapmagyň prosedurasy bol-

sa, onda ol funksiýalar we proseduralar bölüminde aşakdaky ýaly ýazylýar:

PROCEDURE KWU(a, b, c: REAL; VAR X1, X2: REAL); parametrleri. Çykyş pa-

rametrleri üýtgeýän ululyk hökmünde yglan edilýär. Şonuň üçin olaryň  öňünden VAR sözi goýulýar. Proseduranyň adynyň tipi kesgitlenilmeýär, sebäbi ol bu ýerde hiç hili baha eýe bolmaýar.

Operatorlar bölümi BEGIN sözi bilen başlanýar we END sözi bilen gutarýar.Bloguň ahyryny görkerzýän END sözünden soň hökman “.”- nokat belgisi goýulmaly. Bu bölüm programmanyň ýerine ýetirilýän bölümi bolup, ol arasynda “ ; “ –nokatly otur belgisi goýulýan operatorlaryň yzygiderliginden durýar. Operatorlar özleriniň gurluşy boýunça ýönekeý we strukturaly operatorlara bölünýär.

Özünde diňe bir sany operator saklaýan operatorlara ýönekeý operatorlar diýilýär. Meselem: şertsiz geçiş operatory ; eýe bolmak operatory we ş.m.

Özünde birden köp – birnäçe operatory saklaýan operatorlara strukturaly operatorlar diýilýär. Meselem: şertli geçiş operatory ; saýlaw operatory ; sikl operatory we ş.m. TURBO-PASCAL algoritmik dilinde birnäçe operatorlary birikdirip bir operator hökmünde hem ýazmak bolýar we olara düzümli operatorlar diýilýär. Düzümli opera-tor umumy ýagdaýda

BEGIN P1; P2; ...;Pn END.

görnüşde ýazylýar. Bu ýerde P1; P2; ...;Pn – TURBO-PASCAL diliniň islendik ope-ratory; hususy ýagdaýda

BEGIN P END ýa-da P;

        Başgaça BEGIN we END sözleriň jübütine operatorlar ýaýy hem diýilýär, BEGIN – açylýan ýaýy, END – ýapylýan ýaýy aňladýar. Meselem:

                              BEGIN Y: =SQR(x)/2; x:=x+1 END

                              BEGIN K: =5; BEGIN J:=0; AK: =0 END; END

        Operatorlar bölüminiň özüni hem düzümli operator hökmünde seretmek mümkindir.

 

3.      TURBO-PASCAL DILINDE TIPLER.

 

4.1. Skalýar tipler.

Tip düşünjesi ähli programmirleýiş dillerinde hem esasy düşünjeleriň biri hasaplanylýar.Tip – dilinde obýektleriň kabul edip biýän bahalarynyň köplügine we şol koplükde kesgitlenen amallaryň toplumyna düşünilýär. TURBO-PASCAL algoritmik dilinde tipleri iki uly topara bölmek mümkin: 1) skalýar tipler; 2) strukturaly tipler. Eger obýekt diňe bir sany komponentden ybarat bolsa, onda oňa skalýar tipe degişli diýilýär. Birden köp-birnäçe komponentden ybarat bolan obýektler strukturaly tipe degişlidir.

Şkalýar tipleri hem standart we standart däl skalýar tiplere bölmek bolýar. Standart skalýar tipe INTEGER, BYTE, REAL, CHAR we BOOLEAN tipler degişlidir. Bitin tip  (-32768, 32767) aralyga degişli bolan ähli bitin sanlaryň köplügi bilen kesgitlenilýär. Bitin tip

                                < at, ... > : INTEGER;

görnüşde yglan edilýär. Meselem:

                                                        VAR

                                                                 BAHA, SANAW_N : INTEGER;

                                                                  X_KOORD, Y_KOORD,                                                                                                                                                     Z_KOORD: INTEGER;

Bu ýazgy BAHA, SANAW_N, X_KOORD, Y_KOORD, Z_KOORD – 5 sany  üýtgeýän ululyga diňe (-32768,32767) aralykda bolan bitin bahalara eýe bolup bilýän- digini aňladýar. Mysal üçin: BAHA:=4.45 eýe bolmak operatorynyň ýazylyşy nädogry. SANAW_N:=295 operator dogry ýazylan. Bitin ululyklar köplenç parametrli sikl operatorlarynda gaytalanmady gurnamak üçin we massiwiň element-  lerini indekslemek üçin ulanylýar. Bitin tipdäki bahalar bilen işlenilende amallaryň  netijeleri (-32768,32767) diapozonda çykmaly däl. Meselem: 3000  *  6000/3000    görnüşli aňlatmanyň bahasyny hasaplamak üçin, ony

3000*(6000/3000) görnüşinde ýazmalydyr .

BYTE(byte)-tip edil bitin tip ýaly kesgitlenilýär we oňa (0;255) aralykdaky bitin sanlar degişlidir. Bu tipdäki ululyklar üýtgeýän ululyklar bölüminde aşakdaky yaly yglan edilýär:

VAR <ady,…>:BYTE;

Meselem:

VAR JEM : BYTE;

MIN,MAX,INDEKS : BYTE;

Bu ýazgylarda JEM,MIN,MAX weINDEKS atly ululyklara diňe (0;255) aralykdaky bitin bahalary berip bolyandygyny aňladýar. Arifmetiki aňlatmalarda BYTE we INTEGER tipli ululyklaryň utgaşyp gelmegine-de rugsat edilýär.

Ähli (10-38; 1038) aralykdaky položitel sanlar, olara gapma-garşylyky bolan otrisatel sanlar we 0 san hakyky tipe degişli hasap edilýär. Hakyky tipe degişli bolan üýtgeýän ululyklar aşakdaky görnüşde yglan edilýär:

VAR <ady>: REAL ;

Meselem:

VAR JEM, NETIJE : REAL ;

Ýazgy JEM we NETIJE ütgeýän ululyklaryň diňe hakyky tipe degişli bolan bahalara eye bolup bilýändigini aňladýar. Arifmetiki aňlatmalarda, BYTE , INTEGER we REAL tipli ululyklaryň gelmegine hem rugsat edilýär. REAL tipli ütgeýän ululyklary massiwiň indeksi we köplügiň elementi hökmünde ulanmak bolmayar. Logiki tipe degişli bolan üýtgeýän ululyklar aşakdaky ýaly yglan edilýär:

VAR <ady> : BOOLEAN ;

Meselem:

VAR S, T : BOOLEAN ;

Ýazgy S we T üýtgeýän ululyklaryň logiki tipe degişlidigini aňladyar. Logiki tipe degişli bolan üýtgeýän ululyklar diňe “TRUE” (çyn) ýa-da “FALSE” (ýalan) bahalaryň birden-birini kabul edip bilýär. Meselem:

Eger S: = 12 < 17;   we   T: = 10 > 14;

Bolsa, onda   S- “TRUE”, T- “FALSE” baha eýe bolyar. TURBO-PASCAL algoritmik dilinde TRUE we FALSE standart logiki hemişelik hökmünde hem ulanylýar.

Liter tipe degişli bolan üýtgeýän ululyklar aşakdaky ýaly yglan edilýär:

VAR <ady> : CHAR ;

Meselem:

                 VAR   HARP,  SIMWOL : CHAR ;

Ýazgy HARP we SIMWOL üýtgeýän ululyklaryň diňe liter bahany kabul edip bilýändigini aňladýar.

TURBO-PASCAL- da liter baha diýlende diliň elipbiýine girýän islendik simwola - latyn harplaryna, onluk sanlara, amallaryň belgilerine, ýörite belgilere we ş.m. düşünilýär. Meselem:

                                     HARP: = ‘ M ‘ ;

                                     SIMWOL : = ‘ * ‘ ;

Ýa-da

                                     SIMWOL : = ‘ ‘ – boş öýjük we ş.m.

CHAR tipe degişli bolan üýtgeýän ululyklary arifmetiki aňlatmalarda ulanmak rugsat edilmeýär. TURBO-PASCAL algaritmik dilinde CHAR tipe degişli bolan üýtgeýän ululyklary aşakdaky ýaly deňeşdirmek bolýar:

‘k‘ > ‘b’ – “TRUE” baha eýe, sebäbi maşyn elipbiýinde ‘k’ harpy ‘b’ – deň soň gelýär. Şoňa göräde liter ululyklaryň üstinde CHR, ORD, PRED we SUCC fuksiýany ýerine ýetirip bolýar.

TURBO-PASCAL algoritmik dilinde ulanyjynyň özüne hem tip kesgitlemäge rugsat edilýär. Onuň ýaly tiplere standart däl tipler ýa-da ulanyjynyň tipi diýilýär. Standart däl tipleriň elementi sanalyp geçilýän we çäklendirilen tipleri bolup olarda elementleriň sany 256- dan geçmeli däl.

Standart däl skalýar tipleri girizmeklik ýazylýan programmany sadalaşdyrýar we maşynyň ýadyny tygşytlamaga mümkinçilik berýär.

Elementleri sanalyp geçilýän tipi aşakdaky ýaly yglan edilýär:

TYPE < tipiň ady > = (< 1- nji element, 2- nji element, … , n- nji element >) ;

VAR < ady > : < tipiň ady > ;

Meselem :

      TYPE

                HEPDE = ( 61, 62, 63, 64, 65, 66, BAZAR);

                FAKULTET = ( FIZ, MAT, HIM, TAR, BIOL, GEOGR ) ;

                TOPAR = ( G101, G102, G103, G104 ) ;

Beýle ýagdaýda onuň tipi girizilýär, emma ady kesgitlenilmeýär. Bu ýerde ýaýyň içinde ýazylan bahalara görkezilen tipe degişli bolan hemişelikler hökmünde hem seretmek bolýar. Şonuň üçin hem bu bahalar ulanylanda hemişelikler bilen işlemegiň düzgüninden ugur almaly. Elementleri sanalyp geçilýän tip tertipleşdirilen tiplere degişlidir, ýagny onyň elementlerini deňeşdirip bolýar. Meselem:

G102 < G104 – “TRUE” baha eýe, G103 < G101 bolsa “FALSE” baha eýedir. Diýmek, bu tipe degişli bolan bahalary SUCC, PRED, ORD standart funksiýalarda hem ulanyp bolýar.

Bellik: Elementleri sanalyp geçilýän tipe degişli bolan bahalary giriş – çykyş operatorlarynda ulanmak bolmaýar.

Çäklendirilen tipli üýtgeýän ululyklar aşakdaky ýaly yglan edilýär :

TYPE < tipiň ady > = m1 … m2 ;

VAR < üýt. ulul. ady > : < tipiň ady > ;

Bu ýerde m1 we m2 hemişelikler, degişlilikde berlen tipe degişli bolan ütgeýän ululyklaryň kabul edip biljek iň kiçi we uly bahalaryny görkezýärler. M1 we M2 hemişelikler REAL tipe degişli bolmaly däl, CHAR, BOOLEAN, INTEGER tipleriň isledigine degişli bolup biler. Meselem:

TYPE     DAY = 1.. 31 ;

Harp = ‘ a ‘ .. ‘ e ‘ ;

VAR

WORKING-DAYS, FREE- DAYS ;

X1, X2 : harp ;

Ýazgy WORKING-DAYS, FREE-DAYS- atly üýtgeýän ululyklaryň diňe 1-den 31-e çenli aralykdaky bitin bahalara eýe bolýandygyny, X1 we X2 üýtgeýän ululyklaryň bolsa, diňe ‘ a ‘, ‘ b ‘, ‘ c ‘, ‘ d ‘ we ‘ e ‘ simwollaryň birden-birine eýe bolýandygyny aňladýar. Köpleç çäklendirilen tip aşakdaky görnüşde yglan edilýär:

CONST MIN = 1; MAX = 31;

TYPE

DAY : = MIN .. MAX ;

VAR

WORKING- DAYS, FREE- DAYS : DAY ;

Beýan edilen ýagdaýda interwalyň çäklerini çalyşmak üçin diňe hemişelikler bölümini üýtgetmek ýeterlik bolýar.

4.2 STRUKTURALY TIPLER BARADA DÜŞÜNJE.

 

Strukturaly tipler skalýar tipe degişli bolan üýtgeýän ululyklaryň toplumy hökmünde kesgitlenilýär. Strukturaly tip özüniň komponentleriniň tipleri bilen häsiýetledirilýär. TURBO-PASCAL algoritmik dilinde ulanylýan strukturaly tiplere: setir tipi; köplükleri kombinirlenen tipi; massiwleri; faýllary degişli etmek mümkin.

Diliň elipbiýine girýän simwollaryň tükenikli yzygiderligine setir hemişeligi diýilýär. Setir hemişelikleri hem edil liter hemişlikleri ýaly “ ‘ “- anastrof belgisiniň içinde ýazylýar. Meselem:          

‘TURBO-PASCALI’,  ‘Y=’,  ‘TURBO-PASCAL’ we ş.m.       

Baha hökmünde diňe setir hemişelikleri kabul edip bilýän üýtgeýän ululyklara setir üýtgeýän ululyklary diýilýär.

Setir tipi TYPE bölüminde STRING kömekçi sözüniň kömegi bilen yglan edilýär.

Massiw diýlende şol bir tipden bolan birnäçe üýtgeýän ululyklyklaryň top-

lumyna  düşünilýär. Massiwi düzýän üýtgeýän ululyklaryň yzygiderligi tükenikli hem-de tertipleşdirilen bolmaly. Massiwiň her bir elementine ayratyn indeks degişli edilýär we oňa şol indeks boýunça ýüzlendip bolýar.

            Massiw ARRAY kömekçi sözi arkaly yglan edilýär. Her bir setir üýtgeýän ululyga elementleri  CHAR tipden bolan massiw hökmünde seretmek mümkin.

                Köplük diýlende bir bitewi zat hökmünde seredip bolýan şol bir häsiýet, nyşanlar boýunça ýygnalan obýektleriň toplumyna düşünilýär. TURBO-PASCAL algoritmik dilinde köplüge matematikada ulanylýan köplüge seredeňde has dar manyda düşünilýär. Mysal üçin, TURBO-PASCAL-da köplügiň elementi hökmünde REAL tipe degişli bolan bahalary ulanyp bolmaýar; köplügiň elementleriniň sany 256-dan geçmeli däl; we ş.m. Köplükler TYPE bölüminde SET kömekçi sözi arkaly yglan edilýär.

            Kombinirlenen tip - bu dürli tiplerden bolan üýtgeýän ululyklaryň toplumydyr.

Bu tipi yglan etmek RECORD(ýazgy) kömekçi sözi bilen başlanýar we END sözi bilen hem gutarýar. Kombinirlenen tip yglan edilende onuň her bir komponentiniň

ady we tipi görkezilýär.

            Faýl - bu şol bir tipden bolan komponentleriň toplumydyr. Faýl massiwden tapawutlanyp, onuň komponentleriniň sany öňünden görkezilmeýär. TURBO-PASCAL-da köplenç faýlyň komponenti hökmünde kombinirlenen tipli bahalar ulanylýar. Faýl FILE kömekçi sözüň kömegi bilen yglan edilýär. Adatça faýlyň  komponentleri magnit disklerinde saklanylýar we gerek wagty ondan operatiw ýada çagyrylýar.

 

5. TURBA-PASCAL ALGORITMIK DILINIŇ ESASY OPERATORLARY

5.1 Eýe bolmak operatory.

            Eýe bolmak operatory aňlatmanyň bahasyny üýtgeýän ululyga eýe etmek ücin hyzmat edýär. Öl umumy ýagdaýda aşakdaky görnüşde ýazylýar:

A:=B;

Bu ýerde “:=”-eýe bolmak operatorynyň belgisi;

A-üytgeýän ululygyň ady; B-aňlatma, hususy ýagdaýda üýtgeýän ululyk ýa-da hemişelik hem bolup biler. Eýe bolmak operatory ýerine ýetirmek iki etapdan durýar: birinji etapda B aňlatmanyň bahasy hasaplanylýar; ikinji etapda – alnan netije A-üytgeyän ululyga eýe edilýär.

            Eýe bolmak operatorynyň sag tarapyndaky aňlatma - B aňlatma we çepindäki  A-üýtgeýäň ululyk şol bir tipden bolmaly. Eger B-aňlatma INTEGER ýa-da  REAL tipe degişli bolsa, onda eýe bolmak operatoryna arifmetik eýe bolmak operatory diýilýär.

            Arifmetiki aňlatmada eger A-üýtgeýän ululyk REAL tipe degişli bolsa, onda B-aňlatma REAL we INTEGER tipleriň islendigine degeşli bolup bilýär. Eger A-üýtgeýän ululyk INTEGER tipe degişli bolsa, onda B-aňlatma-da hökman şol tipe dagişli bolmaly. Arifmetiki eýe bolmak operatoryna mysallar:

            Var

                   K:ITEGER;

                   A,B,Y,V, R:REAL;

                        …………

                        K:=K+1;

                        Y:=SQRT(SQR(A)+SQR(B)*B);

                        V:=2*PI*R;

                        ………..

            Eger B-ligiki aňlatma bolsa, onda eýe bolmak operatoryna logiki eýe bolmak operatory diýilýär. Meselem :

            VAR

                        S, T :BOOLEAN;

                        ………

                        S:=(3.6+4.3)< > (4.9+0.2);

                        T:=(6>2) AND (7<0.9);

operatorlar ýerine ýetirilende A-logiki üýtgeýän ululyga “TRUE” baha, B-logiki üýtgeýän ululyk bolsa, “FALSE” baha eýe bolar. Görnüşi ýaly, logiki aňlatmalar şol bir wagtda özünde arifmetiki amallary saklap bilýärler .

            Logiki aňlatmarlada amallar aşakdaky tertipde ýerine ýetirilýär:

1)      NOT (inkär etme);

2)      *, /, DIV , MOD, AND – multiplikatiw amallar;

3)      +, -, OR, XOR –additiw amallar;

4)      < ,< = , > , >= , < > -  gatnaşyk amallary.

Bu ýerde gatnaşyk amallaryna iň pes dereje berilýär. Deň derejeli amallar çepden saga tertip boýunça ýerine ýetirilýär. Amallaryň ýerine ýetiriliş tertibini üýtgetmek üçin ýaýlardan peýdalanylýar.

A:= Beýe bolmak operatorynda B-aňlatmanyň CHAR ýa-da STRING tipe degişli bolmagy hem mümkin .

Meselem:

                  ……….

                  VAR

                              M, N : CHAR; C1 , C2 :STRING [10];

                  BEGIN

                              N:=’E’ ;  C1:=’TOPAR’;

                              C2:=C1+L ; M:=SUCC(L);

 

5.2  GIRIŞ-ÇYKYŞ OPERATORLARY

Kompýuter-de giriş gurluşy hökmünde esasan klawiaturalardan peýdalanylýar. Üýtgeýän ululyklara klawiaturadan baha girizmek üçin aşakdaky operatorlar ulanylýar: 

            READ(X1,X2,…,Xn);

            READLN(X1,X2,…,Xn);

Bu yerde Xi(i=1,n)-giriş sanawynyň elementleri, ýa-da baha eýe bolmaly üýtgeýän ululuklaryň atlary; READ-operatoryň ady bolup “OKAMAK” diýen manyny aňladýar; X1,X2,…,Xn-üytgeýän ululyklar INTEGER ýa-da CHAR tipleriň islendigine degişli bolup bilerler. READ sözüniň yzyndaky “LN”- täze setire geçmekligi aňladýar. Ỳagny, READLN operatorynyň sanawyndaky üýtgeýän ululyklara baha girizilenden soň, şol setirden başga baha girizip bolmaýar.

            READ weREADLN operatoryndaky üýtgeýän ululyklaryň tipi degişlilikde olaryň eýe bolýan bahalarynyň tipi bilen gabat gelmeli. Bir setirden birnäçe baha girizilende olaryň arasynda “  “-boş öýjük goýulýar. Mysal hökmünde A, B, C, D hakyky üýtgeýän ululyklara degişlilikde 3.8, -9.6, 12.52 we 495.0 bahalara eýe bolmagyna seredeliň:

a)      VAR A, B, C, D: REAL;

BEGIN

      READ(A, B, C, D);…

            Bu ýerde ýokardaky bahalar klawiaturada aşakdaky ýaly girizilýär:

                        3.8 –9.6 12.52 495.0 “ENTER” –klawiaturanyň düwmejigini basmaly.

            b)…………

                        READ(A,B,C); READ(D)

            Bu ýagdaýda bahalar aşakdaky ýaly girizilýär:

                        3.8 –9.6 12.52 “ENTER”

                        495.0 “ENTER”

            ç)………….

                        READLN; READLN(A,B); READ(C,D);

            Bu ýagdaýda bahalar aşakdaky görnüýär:

                                    “ENTER”

                        3.8 –9.6 “ENTER”

                        12.52 495.0 “ENTER”

Çykyş operatary aşakdaky ýaly ýazylýar:

            WRITE(a1[:b1[:c1]], a2[:b2[:c2]],…an[:bn[:cn]]);

            Writeln(a1[:b1[:c1]], a2[:b2[:c2]],…,an[:bn[:cn]]);

            WRITELN;

bu ýerde a1, a2, …,an – bahalary çap edilýän üýtgeýän ululuklaryň atlary;  b1, b2,…, bn – degişlilikde a1, a2,…, an üýtgeýän ululuklaryň bahalaryny çap etmäge niýetlenen öýjükleriň sany; c1,c2,…,cn – bolsa, degişlilikde a1,a2,…, an üýtgeýän ululyklaryň bahalarynyň drob (galyndy) bölegi üçin niýetlenen öýjikleriň sanyny görkezýär. a1,a2,…, an  INTEGER, REAL, CHAR, BOOLEAN, STARING tipleriň işlendigine degişli bolup biler. bi, ci (i=1,n) parametrler hususy ýagdaýda INTEGER tipe degişli hemişelikler, umuman alaňda bolsa bitin tipli üýtgeýän ululuklar, aňlatmalar görnüşde berlip bilner. bi we ci (i=1,n) parametrleriň üýtgeýän ululuklary özünde saklap bilmegi netijäni tablisalar, çyzgydlar görnüşde çap etmäge mümkinçilik berýär. Meselem, goý [1, 20] kesimde y = x funksiýanyň çyzgydyny şekillendirmeli bolsun. Onda programmany aşakdaky görnüşde ýazmak mümkin:

 

                                    PROGRAM  A1;

                                    VAR X: INTEGER;

                                    BEGIN

                                    FOR X: =1 TO 20 DO  WRITELN (‘X’: X ) ;

                                    END.

 

Bellik:   c1,c2,…,cn – parametrler diňe REAL tipe degişli bolan bahalary çap etmekde ulanylýar; Operatoryň umumy ýazgysynda  “ [“ , “ ] ” – kwdrat skopkalaryň goýulmagy şol parametrleriň hökmany däldigini aňladýar.

            Hususy ýagdaýda çykyş operatoryny aşakdaky görňüşde ýazmak mümkin:

                        WRITE ( a1,a2,… an ) ;

                        WRITELN ( a1,a2,…, an ) ;

            Mysallar.

1) Goý  A,B,C,  bitin üýtgeýän ululuklar degişlilikde 27, 18 we – 12 bahalara eýe bolsun. Aşakdaky ýagdaýlara seredeliň:

            a)….WRITE (A,B ); WRITE  ( C ) ; ….

Bu ýagdaýda bahalar bir setirden yzygider çap edilýär, ýagny olaryň arasynda boş öýjük goýulmaýar:

                        2718–12

b) … WRITE (A,B,C ); …

            Bu ýagdaýda bahalar edil ýokarda görkezilşi ýaly çap edilýär, hiç – hili üýtgeşiklik bolmaýar.

ç) …WRITELN (A,B ) ; WRITE (C ); …

         Bu ýagdaýda aşakdaky görnüşde çap edilýär:

                        2718

                      -12

d) …  WRITE (A:2, B:5 , C:4 ) ; …

          Bu ýagdaýda bahalar aşakdaky görnüşde çap edilýär :

27            18 -12  

e) … WRITE (‘A =’ , A :2, ‘B =’, B:2 , ‘C =’, C:3 ) ; …

          Bu ýagdaýda bahalar aşakdaky görnüşde çap edilýär:

                        A = 27 B = 18 C = -12

2) Goý A,B,C  hakyky üýtgeýän ululuklar degişlilikde 370.555 ,  34365.40 we  -4.2375  bahalara eýe bolsun .

            Aşakdaky ýagdaýlara seredeliň :

a)…..WRITELN (A:6:2,B:9:2, C:8:4);….

Bu ýagdaýda netije aşakdaky görnüşde çap edilýar:

370,56  34365.40-4.2375

b)….WRITELN(A,B,C);….

beýle ýagdaýda netije aşakdaky ýaly çap edilýär:

3.7055500000E+2 3.4365400000E+04 –7.2375000000E00

3) Goý A<B logiki aňlatmanyň bahasyny çap etmeli bolsun:

a)      Eger A:=8; B:=12 bolsa, onda WRITELN (A<B:8); operator netijäni TRUE görnüşde çap edilýär .

b)      A:=5; B:=2 bolsa onda netije FALSE bolar. Bir setirde birnäçe baha çap edilende olaryň arasyny açmak üçin “  “ - boş öý belgiden peýdalanylýar.

Meselem:

…  WRITE (A,B ); operatyryň ornuna          

…  WRITE (A,’  ‘: 4, B ); operatory ýazmak  mümkin.

Soňky ýagdaýda A   we  B üýtgeýän ululuklaryň bahalarynyň arasynda  4 sany boş  öýjük galdyrylýar . Mysallardan görnüşi ýaly WRITELN operatory WRITE operatoryndan tapawutlanyp,  onyň sanawundaky üýtgeýän ululuklaryň bahalary çap edilenden soň, täze setire geçilýär,ýagny şol setirden başga hiç hili baha çap edip bolmaýar.

            Çyzykly algoritmleri programmirlemek üçin diňe eýe bolmak we giriş – çykyş operatorlaryny bilmek ýeterlikdir . Mysal. Geronyň formulasyndan peýdalanyp, taraplary  A, B, C,  bolan üçburçlugyň meýdanyny hasaplamak üçin programma ýazmaly.  Programmasy:

                                    PROGRAM  GERON;

                                    USES CRT;

                                    VAR A,B,C,P,S: REAL;

                                    BEGIN

                                    CLRSCR;

                                                WRITELN (‘ A,B,C,  bahasyny giriz’ );

                                                READ  (A,B,C ) ;

                                                P:= ( A+B+C ) / 2;

                                                S:=SQRT ( P* (P-A )* (P-B)*(P-C));

                                                WRITELN (‘P=’,P:5:2,  ‘  S=’, S:7:3);

                                                            END.

                       

5.3 GEÇIŞ  OPERATORLARY.

Eger-de algoritmde käbir şertiň ýerine ýetýändigine ýa-da ýetmeýändigine baglylykda hasaplaýyş prosesi iki ýa-da  birnäçe şaha bölünýän bolsa, onda onyň ýaly algoritmlere şahalanýan gurluşly aigoritmler diýilýär.

Programmanyň içinde geçiş operatorlary esasan şahalanýan gurluşy algoritmleri programmirlemek üçin hyzmat edýärler. Başgaça aýdylanda, geçiş operatorlary  programmadaky operatorlaryň ýerine ýetiriliş tertibini dolandyrmak üçin hyzmat edýärler.

TURBO-PASCAL algoritmik dilinde geçiş operatorlarynyň iki görnüşi ulanylýar :

1)      şertsiz geçiş operatory;

2)      şertli geçiş operatory;

Şertsiz geçiş operatory programmanyň bir böleginden beýleki bölegine birnäçe operatordan sowulyp geçmäge mümkinçilik berýär. Ol umumy ýagdaýda aşakdaky görnüşde ýazylýar:

                                      GOTO <belgi>

Bu ýerde GOTO-operatoryň ady bolup , “geçmek’’ diýen manyny aňladýar; <belgi>-salgylanylýan operatoryň belgisi, ol LABEL bölüminde yglan edilýän bolmaly. Meselem:

……….

LABEL 20;

…...GOTO 20;

……….

20:  X:=X+1;

……….

Sertli geçiş operatory özünde käbir logiki aňlatmany saklap, onuň “TRUE”  ýa-da  “FALSE”  bahalaryň haýsysyny kabul edýändigine baglylykda iki şahadan birini saýlap almaga mümkinçilik berýär.

            TURBO – PASCAL  algoritmik dilinde şertli geçiş operatory  aşakdaky görnüşde ýazylýar:

a)      IF < şert  > THEN S1 ELSE S2;

b)      IF < şert > THEN S;

Bu ýer-de  IF – operatoryň ady bolup “eger” diýen manyny aňladýar; < şert > - käbir logiki aňlatma; S1, S2, S – TURBO-PASCAL algoritmik diliniň islendik operatorlary.

Bu operatorlar ýerine ýetirilende ilki bilen <şert>-logiki aňlatmanyň bahasy hasaplanylýar. Eger logiki aňlatma “TRUE” baha eýe bolsa, onda a)-ýagdaýda S1-operator; b)-ýagdaýda bolsa S1-operator ýerine ýetirilýär. Onda sňra IF operatoryň yz ýanyndaky ilkinji operatora geçilýär. Eger-de logiki aňlatma “FALSE” baha eýe bolsa, onda a)-ýagdaýda S2-operator ýerine ýetirilýär we ondan soňra If operatorynyň yzyndaky ilkinji operatora geçilýär; b)-ýagdaýda bolsa, hiç-hili operator ýerine ýetirilmezden, gönüden-göni IF operatorynyň yzyndaky ilkinji operatora geçilýär. TURBO-PASCAL algoritmik dilinde bir If operatorynyň düzüminde başga-da IF operatorynyň ulanylmagyna rugsat edilýär. Bu şahalanmanyň içinde ýene-de şahalanma ulanylyan ýagdaýynda ýüze çykýar. Meselem

                      . . .

                    IF   X<15   THEN  IF  X>10  THEN  WRITELN (‘ 10<X<15’)

                                               ELSE  WRITELN (‘X<=10’)

IF operatoryny biri-biriniň içinde ulanmaklyk programma düşünmekligi kynlaşdyrýar. Şoňa görä-de IF operatoryny bir-biriniň içinde iki-üç gezekden köp ulanmak maslahat berilmeýär.

Mysallar.

1.      Funksiýanyň bahasyny hasaplamak üçin programma düzmelili:

 

a)     

 

 

Programmasy:

Program funksiya;

Uses crt;

Var x,y:real;

Begin

Clrscr;

Write(‘x=’);

Readln(x);

If x>=0 then y:=sqrt(x)

Else y:=sqr(x)*x;

Writeln(‘y=’,y:8:3);

End.

 

             at+b, eger at<1;

b)      S=  cos(at), eger at=1;

 cos(at), eger at>1;

 

Programmasy:

Program funk1;

Uses crt;

Var a,b,t,s:real;

BEGIN

Clrscr;

Write(‘a,b,t bahasyny giriz’);

Readln(a,b,t);

IF A*T<1 then S:=A*T+B

Elseif  A*T=1 then S:=cos(A*T)

Else S:=exp(-A*T)*cos(A*T);

Writeln(‘S=’,S:8:3);

End.

Bellik:

Birnaçe IF operatory biri-biriniň içinde ulanylanda her bir ELSE  kömekçi  sözi özüniň öň yanyndaky THEN kömekçi sözüne degişli edilyär.

2) Kwadrat deňlemäniň hakyky köklerini tapmak üçin programma düzmelili:

AX2+BX+C=0;  A=0.

 

Programmasy  ;

PROGRAM  KWADRATD;

Uses CRT;

Var  A,B,C,D,X1,X2 : real;

BEGIN

CLRSCR;

Write(‘A,B,C bahasyny  giriz’);

Readln(A,B,C);

D:=SQR(B)-4*A*C;

IF D<0 then begin Writeln(‘hakyky köki yok’); END

ELSE begin

X1:=(-B+SQRT(D))/(2*A);

X2:=(-B-SQRT(D))/(2*A);

Writeln(‘X1=’,X1,’X2=’,X2);

end;

END.

 

5.4   SAYLAW    OPERATORY.

Belli bolşy yaly, IF operatory iki şahadan birini saylap almaga mümkinçilik beryär. CASE saylaw operatory bolsa ikiden köp, birnäçe şahadan birini saylap almaga mümkinçilik beryär. Saylaw operatory umumy görnüşde aşakdaky yaly yazylyar:

CASE  C  OF

N1:p1;

N2:p2;

….

Nm:pm;

Else p

End;

Bu  yerde  C-saylayjy  parametr, başgaça selektor hem diyilyär. C selektor  INTEGER, CHAR, BOOLEAN standart skalyar tiplere we standart däl skalyar tipler bolan, elementleri sanalyp geçilyän ya-da çäklendirilen  tipe degişli bolup biler. Islendik  yagdayda  C-selektor   bilen N1,N2,…,NM  hemişelikleriň tipi Gawat  gelmeli.N1,N2,…,NM  hemişelikleri  degişlilikde operatorlaryň  belgileri  Hökmünde goz öňünde getirmek mümkin; P1,P2,..,PM-TURBO –PASKAL  algaritmik diliniň islendik operatory .

Saylaw operatory yerine yetirilende ilki C-selektoryň bahasy hasaplanylýar :ony CB arkaly belläliň. Soňra CB bahanyň  N1,N2,..,Nm-belgileriň haysysy bilen gawat  gelyänligine baglylykda P1,P2,…,Pm operatorlaryň  birden –biri yerine yetirilyär: eger CB N1,N2,…Nm  belgileriň hiç biri bilen gabat gelmese, onda P operator yerine yetirilyär.

Islendik yagdayda saylanyp alnan usul yerine yetirlenden soň, beyleki usullardan sowlup CASE operatorynyň yzyndaky ilkinji operatora geçilyär.

Bellik: CASE operatoryndaky belgileri LABEL bölüminde yglan etmeli däl we olara programmanyň başgada böleginden GOTO operatory arkaly  salgylanmak bolmayar.

Mysallar.

Çärýek nomeri boyunça nokadyň koordinatalarynyň alamatyny kesgitlemeli.

X

 

Y

 
 Programmasy:

PROGRAM   NOMER;

USES CRT;

I
 
II
 
I
 
I
 
VAR  N:INTEGER;

BEGIN

CLRSCR;                                                                  

IV
 
III
 
              WRITE(‘N=’);

               READLN(N);

               CASE   N  OF

1:WRITELN(‘X>0 we Y>0’);

2: WRITELN(‘X<0 we  Y>0’);

3: WRITELN(‘X<0 we  Y<0’);

4: WRITELN(‘X>0 weY<0);

ELSE  WRITELN (‘N-e  1,2,3,4  bahalaryň  birini ber’);

END;

END.

 

2. Hepdäniň günleriniň atlaryny çap etmrk üçin programma düzmelili.

            Programmasy:

                        PROGRAM  HEPDE;

                        USES CRT;

VAR N : INTEGER;

BEGIN

CLRSCR;

            READ (N);

            CASE N  OF

            1: WRITELN (‘Duşenbe’);

            2: WRITELN (‘Sişenbe’);                              

                                    3: WRITELN (‘Çarşenbe’);

                                    4: WRITELN (‘Penşenbe’);

                                    5: WRITELN (‘Anna’);

                                    6: WRITELN (‘Şenbe’);

                                    7: WRITELN (‘Ỳekşenbe’);

                                    ELSE WRITELN (‘N-e 1,2,3,4,5,6,7, bahalaryň birini giriz’);

                                    END;

                             END.

Saýlaw operatorynda n1, n2,…,nm hemişelikleriň her biri bir belgiden däl-de, eýsem arasynda “,” –otur belgisi goýlan birnäçe belgiden, ýagny belgileriň sanawyndan ybarat bolmagy-da mümkin.

            Mysala ýüzleneliň:

                        PROGRAM MYSAL;

                        USES CRT;

                        VAR N :INTEGER;

                        BEGIN

                        CLRSCR;

                                    READ (N);

                                    CASE N OF

                        1: WRITE (‘N=1’);

                        2: WRITE (‘N=2’);

                        3,4: WRITE (‘N=3 ýa-da  N=4’);

                        ELSE WRITE (‘N-e 1,2,3,4 bahalaryň birini bir’);

                        End;

                   END.

            Bu ýerde WRITE (‘n=3 ýa-da n=4’); operatoryň ýerine ýetirilmegi üçin N-e 3 ýa-da 4 bahalaryň birine eýe bolmagy ýeterlikdir.          

 

5.5 SIKL OPERATORLARY

Eger programmanyň haýsyda bolsa bir bölegi käbir üýtgeýän ululygyň dürli bahalarynda birnäçe gezek gaýtalanyp ýerine ýetirilyän bolsa, onda onuň ýaly programmalara siklli programmalar diýilýär. Programmanyň gaýtalanyp ýerine ýetirilýän bölegine, ýagny operatorlaryň toplumyna sikliň göwresi diýilýär. Gaýtalanma mahalynda her gezek öz bahasyny üýtgedip durýan ululyga sikliň parametri diýilýär.Ỳörite gaýtalanmany gurnamak üçin niýetlenen operatarlara sikl operatorlary diýilýär.

            TURBO-PASCAL algoritmik dilinde sikl operatoryny iki topara bölmek mümkin:

1)      Parametrli sikl operatory.

2)      Şertli sikl operatory.

Parametrli sikl operatory umumy görnüşde aşakdaky ýaly ýazylýar :

a)      FOR i:= m1 TO m2 DO  s ;

b)      FOR i:=m1 DOWNTO m2 DO S;

Bu ýerde FOR – operatoryň ady, “üçin“ diýen manyny aňladýär; i – sikl parametri , m1 we m2 bolsa degişlilikde onuň başlangyç we ahyrky bahalary. Bu parametirleriň üçüsi hem şol bir tipden bolmaly: INTEGER, CHAR, BOOLEAN ýa-da standart däl skalýar tipler – elementleri sanalyp geçilýän tip, çäklendirilen tip; i-görkezilen tipe dagişli bolan üýtgeýän ululyk bolmaly; m1 we m2 bolsa şol tipe degişli bolan hemişelik, üýtgeýän ululyk ýa-da aňlatma hem bolup biler. Eger FOR operatorynda “TO”- kömekçi sözi ulanylýan bolsa (a)- ýagdaýda, onda sikliň parametri bir – birden artýar. Hususy ýagdaýda, eger i INTEGER ýa-da BYTE tipleriň birine degişli bolsa, onda h=1 hasap edilýär; Eger-de FOR operatorynda “DOWNTO”- kömekçi sözi ulanylýan bolsa, onda sikliň parametri bir – birden kemelýär. Eger i INTEGER ýa-da BYTE tipleriň birine degişli bolsa , h= -1 hasap edilýär.

Kesgitlilik üçin goý i-sikliň parametri bütin tipe degişli bolsun. Parametri sikl operatoryň aşakdaky shemalaryň üsti bilen şekillendirmek mümkin:

 

    i=m1,m2,1

 

 

 

 

 


     Parametirli sikl operator ýerine ýetirilende ilki m1 we m2-aňlatmalaryň bahalary hasaplanylýar. Olary degişlelikde m1b we m2b bilen belläliň. Soňra sikliň parameri m1b baha eýe bolýar i:=m1b we i<=m2b şert barlanylýar. (b)-ýagdaý üçin i>m2b şert barlanylýar). Eger şert ýerine ýetse, onda S-sikliň göwresi ýerine ýetirilýär we sikliň parmetriniň i:=i+1, ýagny i:=m1b+1, baha eýe bolýar; (b) ýagdaý üçin i:=i-1); soňra ýenede sikliň başlangyjyna dolanyp gelinýär-de proses dowam etdirilýär. Haçanda i<=m2b şert ýerine ýetmese, ýagny i>m2b bolsa, onda siklden çykylýar we FOR operatoryň yzyndaky ilkini operatory geçilýär. (b)-ýagdaýda i>=m2b şert ýerine ýetmese, ýagny i<m2b bolsa, siklden çykylýar).

Mysallar:

1). . . . FOR k:=1 to 10 DO WRITE (‘ * ‘ ); . . .

   Netije :

     *  *  *  *  *  *  *  *  *  (10 sany ýyldyzjyk)

2) . . . .  FOR i:=1to 5 DO WRITELN (sqr(I)); . . . . .

    Netije:

1

4

9

16

25

3) . . . FOR i:=3 to 10 DO WRITE (I:3); . . .

Netije : 3 4 5 6 7 8 9 10

4) . . . FOR i:=10 DOWNTO 3 DO WRITE (I:3); . . .

Netije: 10 9 8 7 6 5 4 3

5) . . . FOR k:=’B’ TO ‘F’ DO WRITE (K:2); . . .

Netije: B C D E F

6) . . . FOR k:=’F’ DOWNTO ‘B’ DO WRITE (k:2); . . .

Netije: F E D C B

Kä ýagdaýlarda gaýtalanmanyň sany öňünden berilmeýär, ýagny haçan siklde çykmalydygy programa ýerine ýetirilip duran mahaly belli bolýar. Beýle ýagdaýlarda siklli algoritmleri programirlemek üçin şertli sikl operatorlaryndan peýdalanylýar. Şertli sikl operatory gurlyşy boýunça iki hilli bolýar:

1)      Şertli öňünde goýulýan sikl operatory;

2)      Şerti soňundan goýulýan sikl operatory.

Şerti öňüde goýulýan sikl operatory umumy görnüşde aşakdaky ýaly ýazylýar:

WHILE<şert> DO Serdar;

Bu ýerde WHILE- operatoryň ady bolup, ,,entek’’ diýen manyny aňladýar; <şert>-käbir logiki aňlatma; S-ýönekeý ýa-da düzmeli operator.

WHILE operatorynda ilki şert barlanylýar, eger şert ýerine ýetse, ýagny logiki aňlatma ,,TRUE’’ baha eýe bolsa, onda S-sikliň göwresi gaýtalanýar we ýenede sikle dolanyp gelinýär. Haçan-da logiki aňlatma ,,FALSE’’ baha eýe bolsa, onda siklden çykylýar we WHILE operatorynyň yzyndan ilkinji operatory geçilýär. Bu ýerde sikliň göwresine degişli bolan operatorlaryň iň bolmanda biri logiki aňlatmanyň bahasyna täsir edip bilýän bolmaly. Eger şeýle bolmasa, onda siklde çykyp bolmaýar.

Şerti öňünden goýulýan sikl operatorynyň aşakdaky shema arkaly şekillendirmek mümkin:

 Blok – shema(35)

 

 

 

Mysal:

WHILE operatoryny ulanyp jemi hasaplamak üçin we programma düzmelili:                                                                                                                                       

                                                                                         Programmasy:                                      

PROGRAM JEM1;

USES CRT;

VAR

JEM : REAL;

K: INTEGER;

BEGIN

CLRSCR;

JEM:=0; K:=1;

WHILE K<=30 DO

BEGIN

JEM:=JEM+1/(SQR(K)*K);

K:=K+1;

END;

WRITELN(‘JEM=’,JEM:8:3);

END.

Şertiň soňundan goýulýan sikl operatory umumy görnüşde aşakdaky ýaly ýazylýar:                   

REPEAT S UNTIL <şert >;

Bu ýerde REPEAT operatoryň ady bolup “gaýtalanmak “ diýen manyny aňladýar; UNTIL – kömekçi söz “ çenli “ diýen manyny aňladýar; S – ýönekeý ýa-da düzmeli operator; < şert > - käbir logiki aňlatma.

REPEAT operatory WHILE operatoryndan tapawutlanyp, onda ilki bilen sikliň göwresi ýerine ýetirilýär, soňra şert barlanylýar. Eger şert ýerine ýetmese, sikl gaýtalanýar, ýagny S-sikliň gowresine dolanyp gelinýär. Eger şert ýerine ýetse, onda siklden çykylýar we REPEAT operatorynyň yzyndaky ilkinji operatoa geçiýär. Bu gurluşy aşakdaky shema arkaly şekillendirmek mümkin.

 

 

blok-shema(36)

 

 

 

Bu ýerde hem edil WHILE operatoryndaky ýaly, sikliň göwresine degişli operatoryň iň bolmanda biri barlanylýan şerte täsir edýän bolmaly. Mysal hökmünde ýokarda hasaplanan jeme seredeliň:

Programmasy:

Program Jem2;

VAR K : INTEGER;

            JEM : REAL;

BEGIN

CLRSCR;

            K:=1; JEM:=0;

            REPEAT

            JEM:=JEM1+1/(SQR(K)*K);

            K:=K+1 UNTIL K>30;

            WRITELN(‘JEM=’,JEM:9:4);

END.

REPEAT operatory WHILE operatory bilen deňeşdirilende aşakdaky üç sany artykmaçlyga eýe:

1)      REPEAT operatorynda sikliň göwresi iň bolmanda bir gezek ýerine ýetirilýär;

2)      REPEAT operatorynda şert ýerine ýetmese, ýagny logiki aňlatma “FALSE” bahany alanda sikliň göwresi gaýtalanýar;

3)      REPEAT operatorynda sikliň göwresinde düzmelili operator ýazylanda hem BEGIN, END operatorlary goýmak hökman däl.

Kä ýagdaýlarda sikliň göwresiniň bir gezek hem ýerine ýetirilmeýän ýagdaýyny hasaba almaly bolýar. Beýle ýagdaýda diňe WHILE operatoryny ulanyp bolýar. Meselem:  tükeniksiz san hataryň berlen E položitel sandan

uly bolan  çlenleriniň  jemini hasaplamaly.

Programmasy:

PROGRAM   JEM3;

USES CRT;
VAR   K:INTEGER;
                E,JEM:REAL;
    BEGIN
   KLRSCR;

   K:=1; JEM:=0;

    READ(E);

    WHILE(1/(SQR(K)*K))>E DO

BEGIN

JEM :=JEM+1/(SQR(K)*K);

K:=K+1;  END;

WRITELN(‘JEM=’, JEM);

END.

 

6. DÜŞÜNDIRIŞLER(kommentariýeler).

Düşündirişler programmanyň ýerine ýetiriliş tertibine hiç-hili täsir edip bilmeýär we ol diňe ulanylýan ýazgylara düşündiriş berýär. TURBO-PASCAL algaritmik  dilinde düşündirişler { ,} ýa-da (* , *) belgileriň  kömegi bilen ýazylýar. Düşündirişler özlerinde latyn, rus harplaryny, onluk sanlary we diliň elipbiýine degişli bolan beýleki simwollary saklap biler. Düşündirişleri programmada boş öýjük goýmaga rugsat edilýän  islendik ýerde goýup bolýar.

Meselem:

(* Funksiýanyň bahasyny hasaplamaly*)

ýa-da

{Aşgabat-10.01.2001ýyl}we ş.m.

Düşündirişleriň soňundan “;”-nokatly otur belgisi goýulmaýar. Islendik tekstde düşündirişleriň başlangyjyny ýa-da ahyryny aňladýan belgileri ulanmaly däldir. Mysal üçin {{ kwadrat deňlemäniň köki ýok}} ýazgy nädogrydyr. Emma (*,*) belgileriň arasynda{,}belgileri ulanmak we tersine rugsat edilýär.

(*{1-nji mysal}*)ýazgy dogrydyr.

       Mysal:

            PROGRAM SYNAG;

            USES CRT;

            {Şaryň göwrümini hasaplamagyň programmasy}

            {PI – standart hemişelik)

            VAR R : INTEGER; {R – radius}

                        V : REAL; {V - göwrüm}

            BEGIN

            CLRSCR;

                        R:=5;

                        V:=PI*R*SQR(R)*(4/3); {şaryň göwrümi}

                        WRITELN(‘V=’,V:7:3);

            END.

7.MASSIWLER

            TURBO-PASCAL algoritmik dilinde diňe aýratyn alnan bir sany üýtgeýän ululyk bilen işlemek mümkin bolman, eýsem olaryň toplumy bilen hem işlemek mümkindir. Şeýle toplumlaryň bir görnüşi hem massiwlerdir.

            Massiw diýmek şol bir tipe degişli bolan üýtgeýän ululyklaryň toplumyna düşünilýär. Massiwi düzýän üýtgeýän ululyklar yzygiderli, tükenikli we tertipleşdirilen bolmalydyr. Massiwiň elementleriniň sany, ol yglan edilen wagtynda fiksirlenýär we programma ýerine ýetirilen döwründe üýtgemeýär. Massiwiň her bir elementine aýratynlykda ýüzlenip bolar ýaly, onuň elementlerine indeks degişli edilýär.

TURBO–PASCAL algoritmik dilinde indeks INTEGER,BYTE, BOOLEAN we CHAR tipleriň islendigine degişli bolup bilýär.

            Massiw programmada aşakdaky ýaly yglan edilýär:

TYPE <tipiň ady > =ARRAÝ [indeksiň tipi ] OF <kompanentleriň tipi >; VAR < massiwiň ady >: <tipiň ady >;

Massiwi başgaça gönüden – göni  üýtgeýän ululuklar bölüminde hem yglan etmek mümkindir:

VAR < massiwiň ady > : ARRAÝ [indeksiň tipi ] OF < kompanentiň tipi >;

            Meselem:

                  TYPE 

                          VEKTOR = ARRAÝ [1..15] OF REAL;

                               VAR

                                    X,Y:VEKTOR;

                                    A,B: ARRAÝ [1..20] OF INTEGER;

                                    …

Eger-de massiwiň kompanenti hökminde ýene-de massiw ulanylýan bolsa, onda onuň ýaly massiwlere iki ölçegli massiw diýilýär. Meselem:

            TYPE

                        MATR : MASSIW ; {2- ölçegli massiw } 

Iki ölçegli massiw başgaça aşakdaky görnüşde hem yglan etmek mümkin:

            VAR

                   MATR : ARRAÝ [1..4] OF INTEGER;

Adatça, bir ölçegli massiwler wektoriar bilen işlemek üçin ulanylýar. Meselem:

    VAR

            WEKTOR : ARRAÝ [1..20 ] OF REAL;

            MATR: ARRAÝ [1..4, 1..6 ] OF INTEGER;

Bu ýer-de WEKTOR massiwi 20 sany hakyky kompanentden ybarat bolan wektor hökmünde göž öňüne getirmek mümkin; MATR massiwe 4 setirde, 6 sütünden ybarat bolan bitin elementli göniburçly matrisa hökmünde seretmek mümkin.

            Köplenç massiwiň indeksiniň çäklerini hemişelikler bölüminde görkezmek amatly bolýar:

            CONST

                        NMIN=1; NMAX=30;

            VAR

                        X : ARRAY[IMIN..IMAX] OF REAL;

Bir ölçegli massiwiň elementleri kompýuteriň ýadynda indeksleri artýan tertipde yzygider, matrisanyň elementleri bolsa setirleri boýunça ýerleşdirilýär.

Meselem, eger

VAR

            B : ARRAY[1..4,1..4] OF INTEGER;

bolsa, onda B massiwiň elementleri kompýuteriň ýadynda aşakdaky tertipde ýerleşdirilýär:

A[1,1],A[1,2],…,A[1,4], A[2,1],A[2,2],…,A[2,4],…,A[4,1],A[4,2],…AS[4,4].

TURBO-PASCAL algoritmik dilinde şol bir tipden bolan massiwleri “=” we “<,>” gatnaşyk operasiýalarynyň kömegi bilen deňeşdirip bolýar. Meselem, goý:

VAR

            X,Y : ARRAY[1..30] OF REAL;

bolsun. Onda X=Y logiki aňlatma “TRUE” bahany alýar, haçanda X we Y massiwleriň degişli elementleri özara deň bolsa, beýleki ýagdaýlarda aňlatma “FALSE” baha eýe bolýar. Başgaça aýdylanda X:=Y operator

            FOR I:= 1 to 30 do x[i]:=y[i];

sikl operatoryna deňgüýçlidir.

            Massiwiň ady yglan edilenden soň onuň her bir elementini aýratyn üýtgeýän ululyk hökmünde ulanmak mümkin. Onuň üçin massiwiň adyny we kwadrat skobkanyň içinde elementiň indeksini görkezmek ýeterlikdir. Meselem MASS[4] ýazgy MASS-bir ölçegli massiwiň 4-nji elementine ýüzlenmäge mümkünçilik berýär; VEKTORA[20] ýazgy bolsa VEKTORA atly bir ölçegli massiwiň 20-nji elementine ýüzlenmäge mümkünçilik berýär; MATRX[4,6] ýazgy MATRX iki ölçegli massiwiň, ýagny gönüburçly matrisanyň 4-nji setiri bilen 6-njy sütüniniň kesişmesinde ýerleşen elementine ýüzlenmäge mümkünçilik berýär we ş.m.

            Massiwiň elementlerine başgaça indeksli üýtgeýän ululyklar hem diýilýär. Indeksli  üýtgeýän ululyklary hem edil ýönekeý üýtgeýän ýaly ulanmak mümkün. Meselem, olary operand hökmünde aňlatmanyň düzümine girizip bolýar; FOR, WHILE , REPEAT operatorlarynda sanawyň elementi hökmünde ulanyp bolýar, we ş.m.

            Massiwiň elementleri bilen işlenilende köplenç ýüze çykaýmaly mümkün bolan ýazgylara seredeliň. Onuň üçin ilki 2 sany massiw we 3 sany kömekçi üýtgeýän ululyk girizeliň:

            VAR X : ARRAY[1..5] OF REAL;

            Y : ARRAY[1..15,1..20] OF INTEGER;

            I,J,K : INTEGER;

1)      X birölçegli massiwi nullamak(ähli elementlerine 0 baha berilýär);

FOR I:=1 TO 5 DO X[I]:=0;

bu operator A[1]:=0; A[2]:=0; A[3]:=0; A[4]:=0; A[5]:=0;  bäş sany operatoryň yzygider ýerine ýetirilmegi bilen deňgüýçlidir.

2)      Y iki ölçegli massiwi nullamak:

FOR I:=1 TO 15 DO

FOR J:=1 TO 20 DO Y[I,J]:=0;

3)      Massiwiň elementlerini girizmek:

TURBO-PASCAL algoritmik dilinde massiwiň ähli elementlerini birbada girizip ýa-da çapa çykarmaly bolýar. Kompýuter-de köplenç massiwiň elementlerini klawiaturadan girizilýär. Meselem:

FOR I:=1 TO 15 DO

FOR J:=1 TO 20 DO READLN(Y[I,J)];

Bu ýerde Y iki ölçegli massiwiň elementlerine baha girizilýär; READLN operatorynyň ulanylýanlygy sebäpli her setirden bir baha girizilýär.

4)      Massiwiň elementlerini çapa çykarmak:

Massiwiň elementleriniň bahalaryny çapa çykarmak hem edil ýokardaka meňzeşlikde amala aşrylýar: diňe READ, READLN operatorlarynyň ornuna WRITE, WRITELN operatorlary ulanylýar. Meselem:

FOR I:=1 TO 5 DO WRITELN(X[I]);

ýa-da

FOR I:=1 TO 15 DO

FOR J:=1 TO 20 DO WRITELN(Y[I,J)];

Bu ýagdaýda her setirde bir baha çap edilýär. Matrisany setirme-setir çap etmek üçin, programmany aşakdaky ýaly özgertmeli:

FOR I:=1 TO 15 DO

BEGIN

FOR J:=1 TO 20 DO READLN(Y[I,J)];

END;

5)      Kä ýagdaýlarda massiwiň elementleriniň arasyndan haýsy hem bolsa bir şerti kanagatlandyrýanlaryny gözlemeli bolýar. Mysal üçin, goý X[N] massiwiň elementleriniň arasynda näçe sany otrisatel elementiň bardygyny kesgitlemek gerek bolsun. Onda programmany aşakdaky ýaly ýazmak mümkin:

. . .

K:=0;

FOR I:=1 TO N DO

IF X[I]<0 THEN K:=K+1;

sikl ýerine ýetirilenden soň, K-üýtgeýän ululyk massiwiň ähli otrisatel elementleriniň sanyna eýe bolýär. Bu ýerde K-parametre hasapçy diýilýär.

Mysal. A(4X5) gönüburçly matrisa berlen bolsun. Bu matrisanyň položitel elementleriniň jemini hasaplamagyň programmasyny düzmelili:

 

PROGRAM JEM1;

USES CRT;

CONST

IMAX=4; JMAX=5;

TYPE

MATR=ARRAY[1..IMAX,1..JMAX] OF REAL;

VAR

            A : MATR; JEM : REAL;

            I,J : INTEGER;

BEGIN

CLRSCR;

            JEM:=0;

            FOR I:=1 TO IMAX DO

            FOR J:=1 TO JMAX DO

BEGIN

READLN(A[I,J]);

IF A[I,J]>0 THEN JEM:=JEM+A[I,J];

END;

WRITE(‘JEM=’,JEM:8:3);

END.

 

8.FUNKSIÝALAR WE PROSEDURALAR

            Käbir meseleler çözülende parametrleriň dürli bahalarynda şol bir algoritmi birnäçe gezek gaýtalap ýerine ýetirmeli bolýar. Beýle ýagdaýda programmanyň şol algoritme degişli bölegini aýratyn bölüp alyp, oňa gerek wagty programmanyň islendik böleginden ýüzlenmek mümkindir.

            Programmanyň özbaşdak programma birligi hökmünde ulanyp bolýan bölegine bölek programma diýilýär. TURBO-PASCAL algoritmik dilinde bölek programmanyň iki görnüşi ulanylýar:

1. Funksiýalar;                         2). Proseduralar

            Eger hasaplama ýerine ýetirilenden soň alnan netije diňe bir sany baha bolsa, onda onuň ýaly hasaplamany funksiýa görnüşinde ýazyp bolýär. Funksiýa hem üç bölekden durýar:

1. Sözbaşy       2. Yglan ediş bölümi               3. Funksiýanyň göwresi

Funksiýa umumy görnüşde aşakdaky ýaly ýazylýar:

FUNCTION F(q1:T1;q2:T2;…,qn:Tn):T; {Funksiýanyň sözbaşy)

<Yglan ediş bölümi>

BEGIN

            P1;

P2;

…{Funksiýanyň göwresi}

F:=…

END;

Bu ýerde F-funksiýanyň ady; - formal parametrleriň atlary; -degişlilikde olaryň tipleri; T- ol F funksiýanyň adynyň tipi ýa-da başgaça netijäniň tipi; P1, P2,…-funksiýanyň göwresini emele getirýän operatorlar. Yglan ediş bölüminde diňe funksiýanyň çäginde ulanylýan parametrler we olaryň tipleri görkezilýär. Funksiýa özünde hemişelikler bölümini, belgiler bölümini, tipler bölümini, üýtgeýän ululyklar bölümini, kömekçi funksiýalary we proseduralary saklap biler. Eger formal parametrleriň birnäçesi şol bir tipe degişli bolsa, onda olary toparlar, tipi diňe bir gezek ýazmaklyga rugsat edilýär. Meselem:

 

FUNCTION FAKT(K1,K2,K3 : INTEGER) : REAL;

 

            Funksiýa programmanyň islendik ýerinden ýüzlenmek üçin eýe bolmak operatorynyň sag tarapyndaky aňlatmada onuň adyny we ýaýyň içinde formal parametrleriň iş ýüzündäki bahalaryny görkezmek ýeterlikdir.

F(b1,b2,…,bn);

bu ýerde F-funksiýanyň ady; b1,b2,…,bn – degişlilikde q1,q2,…,qn – formal parametrleriniň iş ýüzündäki bahalary. Formal parametrleri bilen onuň iş ýüzündäki bahalarynyň sany deň bolmaly we olar degişlilikde tipleri boýunça gabat gelmeli.

Mysal:

             formula  boýunça utgaşmalaryň sanyny hasaplamak üçin programma düzmelili. Faktorial hasaplamagy bölek programma – funksiýa görnüşinde ýazmaly.

            PROGRAM UTGSANY;

            USES CRT;

VAR CNM : REAL;

                        N,M,L : INTEGER;

                        FUNCTION FACT(K : INTEGER;) : INTEGER;

VAR P,I : INTEGER;

BEGIN

P:=1;

FOR I:=1 TO K DO P:=P*I;

FACT:=P

END;

BEGIN

CNM:=FACT(N)/(FACT(M)*(FACT(N-M));

WRITE(‘Utgaşmanyň sany=’,CNM:8:2);

END.

            Eger-de algoritm ýerine ýetirilenden soň alynýan netije birden köp – birnäçe baha bolsa, onda bölek programmanyň prosedura görnüşinden peýdalanylýar. Proseduralar umumy görnüşde aşakdaky ýaly ýazylýar:

            PROCEDURA F(formal parametrleriň sany);

            {Proseduranyň sözbaşy}

            <Yglan ediş bölümi>

            {bu bölümde lokal parametrler yglan edilýär}

BEGIN

            P1;

P2;

            …{Operatorlar bölümi}

            Pn;

END;

Bu ýerde F-proseduranyň ady, funksiýanyň adyndan tapawutlanyp, ol bu ýerde hiç-hili baha eýe bolmaýar. Şoňa görä-de onuň üçin tip kesgitlenmeýär; Formal parametrleriň sanawynda prosedura ýüzlenmek üçin gerek bolan parametrler we olaryň tipleri görkezilýär; P1,P2,…,Pn – proseduranyň göwresini emele getirýän operatorlar. Prosedura aşakdaky ýaly ýüzlenilýär.

F(b1,b2,…,bn);

Bu ýerde b1,b2,…,bn –formal paametrleriň iş ýüzündäki bahalary; edil funksiýadaky ýaly, bu ýerde hem formal parametrler bilen onuň iş ýüzündäki bahalarynyň sany gabat we olar degişlilikde şol bir tipe degişli bolmalydyr.

Mysallara seredeliň:

1)      Sh x=ex-e-x/2  prosedurany ulanyp z= Sh2a+ Sh(a-b)/Sha+SQR(a2-b2)

hasaplamak üçin programma düzmelili.

                  Programmasy:

      PROGRAM PROSEDUR;

      USES CRT;

      VAR  A,B, Z,T1, T2, T3:REAL;

                   PROSEDURE  SH (X: REAL; VAR R: REAL );

      BEGIN

                  R:= (EXP(X) – EXP(-X))/2.0

      END;

      BEGIN CLRSCR;

                              WRITE(‘A we B bahasyny giriz ‘);

                              READ (A, B);

                              SH (A, T1);

                              SH ( A-B,T2);

                              SH(A*A-B*B,T3);

                              Z:=(T1*T1+T2)/(T1+SQRT(T3));

                              WRITE(‘Z=’,Z:12:4);

                  END.

      Eger prosedurada we baş programmada şol bir atly parametrler ulanylỳan bolsalar, onda prosedura yglan edilende formal parametrleri görkezmek hökman däl.

2)      Goỳ tekizlikde N-sany nokat özleriniň gönüburçly koordinatalary bilen berlen bollsun:

(Xi,Yi),Xi>0, i=1, N

Bu nokatlaryň polỳar koordinatalaryny kesgitlemegi parametrsiz görnüşde ỳazmaly:

 


R=(x2+y2);

Tg(f) =y/x;

F=arctg(y/x).

 

                                    Programmasy:

PROGRAM POLKORD;

USES CRT;

VAR X,Y,R,F:REAL;

PROCEDURE POLAR;

BEGIN

R:=SQRT(SQR(x)+SQR(y));

F:=ARCTAN(Y/X);

END;

BEGIN

CLRSCR;

WRITELN(‘N=’);

READ(N);

FOR I:=1 TO N DO

BEGIN

WRITELN(‘X,Y bahasyny giriz’);

READ(x,y);

POLYAR;

WRITELN(‘R=’,R:8:3,’  F=’, F:8:3);

END;

END.

            Funksiỳada we prosedurada formal parametrleri islendik tertipde ỳerleşdirmek mümkin.Bölek programma ỳüzlenilen mahalynda formal parametrler nähili tertipde ỳerleşdirilen bolsa, olaryň iç ỳüzündäki bahalary hem şol tertipde ỳerleşdirilen bolmaly.

            Prosedurada formal parametrleriň iki görnüşini bir-birinden tapawutlandyrmak gerek:

1)      Baxa hökmünde ulanylỳan parametrler;

2)      Üỳtgeỳän ululyk hökmünde ulanylỳan parametrler;

Baha hökmünde ulanylỳan parametrler proseduranyň ỳerine ỳetirilmegi üçin zerur bolan başlsngyç maglumatlary-berlenleri kesgitlemek üçin hyzmat edỳärler.Olar formal parametrleriň sanawynda:

(q1:t1;q2:t2;…) ỳa-da (q1,q2:t;…)

görnüỳazulỳar. Bu yerde q1,q2,…-parametrleriňbahalary, hemişelik, üytgeỳän ỳa-da aňlatma görnüşde berlip bilner.

Üýtgeýän ululyk hökmünde ulanylýan parametrler adatça prosedura ýerine ýetirilenden soň, alnan netijelere eýe bolmak üçin hyzmat edýärler. Proseduradan alynýan maglumatlar şol ütgeýän ululyklar arkaly esasy programma berilýär.Ütgeýän ululyk hökmünde ulanylýan parametrler formal parametrleriň sanawynda asakdaky görnüşde ýazylýar:

               ( …; VAR  q1 : T1, q2 : T2, …, qn : Tn ) ; 

Bu ýerde   q1, q2,…,qn­­- üýtgeýän ululyk hökmünde ulanylýan parametrleriň atlary; T1, T2,…,Tn- degişlilikde olaryň tipleri: TURBO-PASCAL algoritmik dilinde bir bölek programmanyň içinde ýene-de şol bölek programmanyň özüne ýüzlenmäge rugsat edilýär. Bölek programma ýüzlenmekligiň bu görnüşine rekursiw ýüzlenme diýilýär. Köplenç metematiki formulalary rekursiýa görnüşde ýazyp bolýar. Meselem :

                                       1, eger n=0 bolsa

                                    Xn =                                                      sah(49-50)

   X2 , eger n>0 bolsa.                         

     Ýa-da

                                                     1, eger  n=0 bolsa,

                                    N! =         

     N ( N-1 ) !, eger n>0 bolsa we ş. m.

Mysal :

            Rekursiw ýüzlenmäni ulanyp k!-y hasplamak üçin bölek programma düzmelili. FUNCTION FAKTOR ( K: INTEGER ): INTEGER;

BEGIN.

                          IF K=1 THEN FAKTOR:=1 ELSE FAKTOR:=FAKTOR ( K-1 ) *K END;

Programmanyň islendik ýerinde n! hasaplamak üçin

nfaktor:= fakt (n);

operatory ýazmak ýeterlikdir.

Kä ýagdaýlarda bir programmada beýleki bir entek yglan edilmedik bölek programmany çalyşmaly bolýar. Onuň üçin  şol çagyryljak bölek programmanyň söz başyçynyň yzyndan FORMARD-kömekçi sözüni ýazmaly. Bu ýagdaýy aşakdaky mysalyň üsti bilen düşündürmek mümkin:

 

PROGRAM  A5;

VAR  X,Y: real;

PROCEDURE P1(A:REAL); FORWARD;

PROCEDURE P2(B:REAL);

BEGIN

P1(X)

END;

            PROCEDURE P1;

            …

            BEGIN

            P2(Y)

            END;

BEGIN

P2(X);

P1(Y);

END.

            Prosedura  bölek programma – funksiýadan tapawutlanyp, ol birden köp-birnäçe netijäni dolandyryp, kä ýagdaýlarda bolsa, hiç-hili netijäni dolandyrman hem biler. Meselem:

                        PROGRAM  A6;

                        ESES CRT;

                        VAR I: BYTE;

                                    PROCEDURE LINIA (N: INTEGER);

                                    VAR

                                                I: INTEGER;

                                    BEGIN

                                    CLRSCR;

                                                FOR J=1 TO N DO

                                                WRITE( ‘-‘) END;

                                    BEGIN

                                    FOR  I:=1 TO 6 DO

                                    BEGIN  LINIA (I);  WRITELN; END

                                    END.

Görnüşi ýaly, bu ýerde her gezek bölek programma ýüzlenilende yzyna netijä dolanylmaýarda, diňe käbir operatorlaryň toplumy ýerine ýetirilýär. Programmada WRITELN operatory her gezek täze setire geçmek üçin hyzmat edýär. Prosedura siklde 6-gezek ýüzlenilende aşakdaky netije alynýär:

                               __

                               __ __

                               __ __ __

                               __ __ __ __

                               __ __ __ __ __

                               __ __ __ __ __ __              

            

 

9. KÖPLÜKLER.

Köplük diýlende bir bitewi zat hökmünde seredip bolýan şol bir häsiýet, şol bir nyşan ýa-da nyşänlar boýunça ýygnalan obýektleriň toplumuna düşünilýär. Meselem 1-den 99-a çenli yzygider gelýän ähli jübüt sanlaryň .köplügi; türkmen diliniň elipbiýine girýän ähli çekimli harplaryň köplügi; we ş.m

TURBO-PASCAL dilinde köplügiň elementlerine bir näçe çäklendirmeler goýulýar. Meselem, köplügiň elementleri REAL tipe degişli bolmaly däl; köplügiň elementleriniň sany 256-dan geçmeli däl; we ş.m.

Köplügiň elementleri kwadrat skobkanyň içinde ýazylýar.

Meselem:

 [‘A’, ’B’, ‘C’]

elementleri CHAR tipe degişli bolan köplük.

 [-3, 1, 3, 5]

elementleri INTEGER tipe degişli bolan köplük.

 [FALSE, TRUE]

elementleri BOOLEAN tipe degişli bolan köplük.

 [1..100]

elementleri çäklendirilen tipe degişli bolan köplük; we ş.m. Hiç bir elementi bolmadyk köplüge boş köplük diýilýar we ol TURBO-PASCAL-da [ ] görnüşde bellenilýär.

Boş köplük islendik köplügiň bölek köplügidir. Baha hökmünde diňe köplükleri kabul edip bilýän üýtgeýän ululyklar aşakdaky ýaly yglan edilýär:

 TYPE

          <tipiň ady>=SET OF <elementleriň tipi>;

 VAR

            <üýtgeýän ululygyň ady>: < tipiň ady>;

ýa-da başgaça, göniden-göni üýtgeýän ululyklar bölüminde hem yglan etmek mümkin:

VAR

<üýtgeýän ululygyň ady>: SET OF <elementleriň tipi>;

Meselem

VAR X:SET OF 1..3;

yazgy X üýtgeýän ululygyň diňe elementleri 1..3 interwaldan bolan köplüklere eýe bolup bilýändigini aňladýar. Bu ýerde X üýtgeýän ululyga {1,2,3} köplügiň islendik bölek köplügine eýe bolup bilýär. Ýagny X üýtgeýän ululyk aşakdaky köplükde kesgitlenen:

{{1,2,3}, {1,2}, {1,3}, {2,3}, {1}, {2}, {3}, { }}

Köplük yglan edilende elementleriň tipi hökmünde INTEGER, BYTE, BOOLEAN,        

CHAR tipleri we standart däl skalýar tipleri ulanyp bolýar. Meselem:

[35..-1] ýa-da [‘m’..’s’] boş köplüklerdir.

VAR

A,B:SET  OF   0..49;

HARP:SET  OF CHAR;

X:SET  OF(MART,APREL,MAY);

[ ] baş köplük bu tipleriň islendigine degişli edip bolýan ýeke-täk köplükdir.

Eger köplük[e1..e2] görnüşde berlip, e1>e2 bolsa, onda ol köplük boş köplük hasap edilýär. Meselem[35..-1] ýa-da [‘m’..’s’] boş köplüklerdir.

            Edil matematikadaky ýaly, TURBO-PASCAL algoritmik dilinde hem köplükleriň üstünde kesişme, birleşme, tapawut alamatlaryny ýerine ýetirip bolýar. Bu amallar degişlilikde ‘*’, ‘+’, we ‘-‘ simwollar bilen bellenýär.Ýagny,

VAR

            A,B,X,Y,Z : SET OF INTEGER;

BEGIN

X:=A*B; Y:=A+B; Z:=A-B;

operatorlary ýerine ýetenlerinde X üýtgeýän ululyga şol bir wagtda A we B köplükleriň ikisinde hem bar bolan elementlerden düzülen köplüge eýe bolýar. Y-üýtgeýän ululyga A we B köplükleriň iň bolmanda birine degişli bolan elementlerden durýan köplüge eýe bolýar; Z-üýtgeýän ululyga bolsa, A köplügiň B köplükde bar bolmadyk elementlerinden durýan köplüge eýe bolýar. Bu ýerde A we B şol bir tipe degişli bolan köplükler bolmaly.

            Köplügiň üstünden bu amallardan başga-da bäş sany logiki amaly hem ýerine ýetirmek mümkin:

1)      ‘=’; 2) ‘<>’; 3) ‘<=’; 4) ‘>=’; 5) ‘IN’;

Bu belgiler degişlilikde  belgileri aňladýarlar.

            Goý A we B – şol bir tipe degişli bolan köplükler bolsun.

Onda

A=B logiki aňlatma “TRUE” baha eýe bolýar, haçanda bu köplükler şol bir elementlerden duran bolsa, beýleki ýagdaýlarda “FALSE” baha eýedir;

            A<>B -  logiki aňlatma “TRUE” baha eýe bolýär, haçanda  A we B köplükler gelmese, beýleki ýagdaýlarda “FALSE” baha eýe bolýar.

            A<=B – logiki aňlatma “TRUE” baha eýe, haçanda B köplük özünde A köplügi saklaýan bolsa, beýleki ýagdaýlarda “FALSE” baha eýe;

            A>=B  - logiki aňlatma, “TRUE” baha eýe, haçanda A köplük özünde B köplügi saklaýan bolsa, beýleki ýagdaýlarda “FALSE” baha eýe;

            X IN Y – logiki aňlatma “TRUE” bahany kabul edýär, haçanda X element S köplüge degişli bolsa, eger-de X element S köplükde ýök bolsa onda “FALSE” bahany kabul edýär.

            Mysal üçin, goý

            VAR A,B,C : SET OF CHAR;

            BEGIN

                        A:=[‘a’, ’b’, ‘c’, ‘d’];

                        B:=[‘b’]; C:=[‘c’,’e’]; …

bolsun. Onda A+C, A-C we A*B aňlatmalar degişlilikde [‘a’..’e’], [‘a’,’c’, ‘d’] we [‘b’] bahalara eýe bolýar; B<=A, A>=B, C<=A logiki aňlatmalar degişlilikde  “TRUE” we “FALSE” bahalara eýe bolýarlar;

‘a’ IN A we ‘a’IN C logiki aňlatmalar degişlilikde “TRUE” we “FALSE” bahalary kabul ederler.

            IN operasiýasy haýsy bolsada bir bahanyň berlen köplüge degişliligini ýada degişli däldigini barlamak üçin hyzmat edýär we köplenç şertli geçiş operatorynda ulanylýär. Meselem:

            IF 2 IN [1,2,3] THEN …,

            IF ‘V’ IN[‘a’,…,’e’] THEN …,

            IF X1 IN [X0,X1,X2,X3] THEN …

köplenç IN operasiýasy NOT inkär etme operasiýasy bilen bilelikde ulanylýar. Meselem:

            IF NOT(X IN M) THEN …

bu ýerde logiki aňlatma haçanda X element M köplükde bolmasa “TRUE” bahany alýar.

Mysal:

            PROGRAM MYSAL_1;

            USES CRT;

            VAR

                        K,I : BYTE; TEKST : STRING[255];

                        LATHARPY : SET OF CHAR; SIMWOL : CHAR;

            BEGIN

            CLRSCR;

                        LATHARPY:=[‘a’..’z’]; k:=0;

                        READ(TEKST);

                        FOR I:=1 TO LENGTH(TEKST) DO

                        BEGIN

                                    SIMWOL:=TEKST[I];

                                    IF SIMWOL IN LATHARPY THEN K:=K+1;

                        END;

                        WRITE(‘K=’,K);

            END.

            Bu  programma klawiaturadan girizilen TEKST atly setir üýtgeýän ululygyň bahalarynda näçe sany kiçi latyn harpynyň bardygyny kesgitleýär.

Mysal:

            PROGRAM MYSAL_2;

            USES CRT;

            VAR

                        ELEMENT : 1...25; I,K : INTEGER;

                        KOPLUK : SET OF 1..25;

            BEGIN

            CLRSCR;

                        KOPLUK:=[ ]; RANDOMIZE;

                        FOR I:=1 TO 8 DO BEGIN ELEMENT:=RANDOM(24)+1;

                        KOPLUK:=KOPLUK+[ELEMENT]

                        END;

                        K:=0;

                        FOR I:=1 TO 25 DO

                                    IF I IN KOPLUK THEN

                                    BEGIN WRITE(I,’ ‘:5); K:=K+1; END;

                        WRITE(‘K=’,K);

            END.

Netijeler:

a) 1      4          13        14        18        19        20        22

            k=8

b) 7      8          9          10        11        14        23

            k=7

ç) 10    11        17        20        23        24

            k=6

we ş. m.

Bu programmada 1..25 aralykdan bolan tötänleýin sanlardan köplük düzülýär; Köplügiň elementleri we olaryň sany çapa çykarylýär; Bu ýerde tötänleýin sanlaryň arasynda gabat gelýänleri-de bolmagy mümkin; ol ýagdaýda K<8 bolýar.

Bellik:

1)      RANDOM(N) – sdtandart funksiýanyň [0,N] aralykdan alnan tötänleýin bitin sany kesgitleýär; Bu ýerde eger N parametr goýulmadyk bolsa, onda [0,1] aralykdaky tötänleýinhakyky sanlar alynýar;

2)      TURBO-PASCAL sistemasynda köplügiň elementi hökmünde otrisatel bitin sanlary ulanmak bolmaýar.

 

10. TURBO-PASCAL ALGORITMIK ILINDE ÝAZGYLAR

(kompleksleýin tip)

            Belli boluşy ýaly, biz massiw diýlende şol bir tipden bolan üýtgeýän ululyklaryň toplumyna düşünilýär. Ýazgy  - bu massiwden tapawutlanyp, dürli tipden bolan üýtgeýän ululyklaryň toplumydyr. Şoňa göräde oňa başgaça kombinirlenen  - garyşyk tip hem diýilýär. Ýazgylar tipler hökmünde aşakdaky ýaly yglan edilýär:

            TYPE

                        P=RECORD A1:T1; A2:T2;…; An:Tn END;

Bu ýerde P-ýazgynyň ady; A1,A2,…,An-ýazgyny düzýän meýdançalaryň atlary; T1,T2,…,Tn bolsa degişlilikde A1,A2,…,An meýdançalaryň tipleri.

Meselem, berlen topardaky talyplaryň doglan günlerini kombinirlenen tipiň üsti bilen şeýle kesgitlemek mümkin:

TYPE

            DATE=RECORD

                        DOGLAY : 1..12;

                        DOGLGUN : 1..31;

                        DOGLGYL : INTEGER;

                        END;

            VAR

                        X : DATE;

Görnüşi ýaly, bu ýerde DATE atly ýazgy DOGLAY, DOGLGN, DOGLYL diýip atlandyrylýan üç sany meýdançadan ybarat bolup, olar degişlilikde 1..12, 1..31 çäklendirilen tipleri we INTEGER tipe degişlidirler.

            X : DATE;

diýen ýazgy X – üýtgeýän ululyga topardaky islendik talybyň doglan güni baradaky maglumatlary(doglan güni, aýy we ýyly) eýe edip bolýandygyny aňladýar. Mysal üçin, X üýtgeýän ululygy 1991-nji ýylyň 27-nji oktýabry diýen maglumata eýe etmek üçin:

            X.DOGLAY:=10;

            X.DOGLGN:=27;

            X.DOGLYL:=1991;

eýe bolmak operatoryny ýerine ýetirmeli. Ýene-de mysala ýüzleneliň:

                        TYPE AWTOMOBIL = RECORD

                        NOMER : INTEGER;

                        MARKA : STRING[25];

                        FAAULAN : STRING[50]; {Ulanýanyň F.A.A.}

                        OYADRESULAN : STRING[50]; {Ulanýanyň ýaşaýan öý adresi}

                        END;

VAR

            X,Y : AWTOMOBIL;

bu ýerde X we Y üýtgeýän ululyklara diňe AWTOMOBIL atly tipe degişli bolan bahalary eýe edip bolýandygyny aňladýar. Bu tipe degişli bolan her baha 4 sany komponentden ybarat bolup, olaryň birinlisi INTEGER tipe degişli, beýleki üçisi bolsa STRING tipe degişli bolmaly.Ýazga girýän komponentler degişlilikde NOMER, MARKA, FAAULAN we OYADRESULANAN DIýILIP ATLANDYRYLýAR.

            Z : AWTOMOBIL üýtgeýän ululyga baha bermek üçin Z.NOMER, Z.MARKA, Z.FAAULAN we Z.OYADRESULAN atly üýtgeýän ululyklary baha eýe etmeli. Meselem:

Z.NOMER: =7462;

Z.MARKA: =‘WAZ-2107’;

Z.FAAULAN:=’MEREDOW’;

Z.OYADRESULAN:=’Daýhan köçesi, 6 jaýy’;

Bu üýtgeýän ululyklaryň toplumyna 4 elementli bir ölçegli massiw bilen deňeşdirmek mümkin. Eger Z massiw bolsady, onda onuň komponentlerine kwadrat skobkanyň içinde ýazylan indeks boýunça ýüzlenilerdi. Bu ýerde bolsa, komponentine ýüzlenmek üçin Z-iň yzyndan “.”-nokat belgisi goýulýar we meýdançanyň ady görkezilýär.

            Z.NOMER, Z.MARKA, we ş. m. görnüşli atlara düzmelili atlar diýilýär. Olara baha bermek üçin giriş-çykyş operatorlaryndan peýdalanyp bolýar. Meselem:

            READ(Z.NOMER,Z.MARKA,Z.FAAULAN,Z.OYADRESULAN);

ýa-da

            WRITE(Z.NOMER,Z.MARKA,Z.FAAULAN,Z.OYADRESULAN);

Şol bir tipden bolan X we Y ýazgylar üçin

            X:=Y;

eýe bolmak operatoryny ulanyp bolýar. Beýle ýagdaýda Y ýazgynyň komponentleriniň bahalary degişlilikde X ýazgynyň kopmonentlerine eýe bolýar.

            Kä ýagdaýlardan ýazgylardan massiw emele detirmek amatly bolýar, ýagny, massiwiň her elementine kombinirlenen tipe degişli baha berilýär. Meselem:

            TYPE

                        MAGLUMAT = RECORD

                                                FAA:=STRING[25];

                                                DOGLYL:=INTEGER;

                                                OYADRES:=STRING[60];

                                                END;

                                    VEKTOR_MAGLUMAT=ARRAY[1..25] OF MAGLUMAT;

                        VAR

                                    KT1A : VEKTOR_MAGLUMAT;

Bu ýerde KT1A – üýtgeýän ululygyň 25 elementli bir ölçegli massiwdigini we onuň her bir komponentine talybyň familiýasy, ady, atasynyň ady, doglan ýyly we onuň öýüniň adresi baradaky maglumatlary berip bolýandygyny aňladýär. Mysal üçin:

                        KT1A[1].FAA:=’Aşyrow D.M.’;

            KT1A[1].DOGLYL:=1984;

            KT1A[1].OYADRES:=’Aşgabat ş. Magtymguly şaýoly 15/2’;

                        KT1A[2].FAA:=’Rejepowa M.O.’;

            KT1A[2].DOGLYL:=1984;

            KT1A[2].OYADRES:=’Aşgabat ş. B.Annanow köç. 5-jaýy’;

            Görnüşi ýaly, düzmelili atlardan peýdalanmaklyk programmanyň ýazgysynyň ulalmagyna getirýär. Şeýle ýagdaýlarda programmanyň göwrümini kiçeltmek üçin WITH operatory ulanylýar. WITH operatory aşakdaky ýaly ýazylýar:

            WITH <kombinirlenen tipli üýtgeýän ululyk> DO <operator>;

WITH  - operatory düzmelili atlarda üýtgeýän ululygyň adynyň “.”-nokat belgisinden öňdäki bölegini taşlap ýazmaga mümkünçilik berýär. Meselem, ýokardaky eýe bolmak operatorynyň oplumyny şeýle ýazmak mümkin:

                        WITH KT1A[1] DO

                        BEGIN

                                    FAA:=’Aşyrow D.M.’;

                                    DOGLYL:=1984;

                                    OYADRES:=’ Aşgabat ş. Magtymguly şaýoly 15/2’;

                        END;

ýa-da:

            WITH KT1A[2] DO

                        BEGIN

                                    FAA:=’Rejepowa M.O.’;

                                    DOGLYL:=1984;

                                    OYADRES:=’ Aşgabat ş. B.Annanow köç. 5-jaýy’;

                        END;

 

TURBO-PASCAL algoritmik dilinde özünde birnäçe warianty saklaýan ýazgylary girizmek hem göz öňünde tutulandyr. Beýle ýazgylara wariantly ýazgylar diýilýär we ol umumy görnüşde aşakdaky ýaly ýazylýär:

            TYPE

                        YAZGY=RECORD

                        [r1:t1;r2:t2;…;rn:tn;]

                        CASE C:Tc OF

                                    C1 : (R1 : T1);

C2 : (R2 : T2);

CM : (RM : TM);

END;

Bu ýerde YAZGY –tipiň ady; r1,r2,…,rn, R1,R2,…,Rm meýdançalaryň atlary; t1,t2,…,tn, T1,T2,…,Tm – degişlilikde olaryň tipleri; C-saýkaýjy parametr, Tc-onuň tipi; C1,C2,…,Cm-belgiler, olar Tc-tipe degişli bolan hemişelikler bolmaly. Ýazgylaryň kwadrat skobka alnan bölegine onuň fiksirlenen bölegi diýilýär. Fiksirlenen bölegiň daşyndaky kwadrat skobkalar, onuň hökmany däldigini aňladýar. Ýazgynyň CASE sözünden başlanýan bölegine onuň warianly bölegi diýilýär.

            Ýazgynyň fiksirlenen böleginiň ulanylyşy edil adatdaky ýalydyr. Wariantly bölek ulanylanda ilki C-saýlaýjy parametriň bahasy hasaplanylýar. Soňra onuň kabul eden bahasyna baglylykda C1,C2,…,Cm-wariantlaryň biri saýlanyp alynýar. Eger C=C1 bolsa, onda R1:T1, C=C2 bolsa, onda R2:T2, we ş. m. Eger C=Cm bolsa, onda Rm:Tm; Diýmek YAZGY diýen ýazgy r1:t1, r2:t2,…,rn:tn-n sany komponentden we C-parametriň kömegi bilen saýlanyp alynýan ýene-de bir sany komponentden ybarat eken.

            Bellik: Bu ýerde CASE bölümi üçin aýratyn end sözi ulanylmaýar.

            Ýazgy doly kesgitlenenden soň, diňe bir sany END sözi goýulýar. Eger haýsy-da bolsa bir Ck () hemişelige degişli bolan meýdança boş bolsa, ýagny şol ýagday üçin hiç-hili meýdança kesgitlenmedik bolsa, onda Cn : ( ); görnüşde ýazylýar. wariantly ýazgylar birnäçe meňzeş ýazgylary bir ýazga birleşdrmäge mümkinçilik berýär. Mysal:

            TYPE

                        HAT=RECORD

                        NOMER : BYTE;

                        RAZMER : INTEGER;

                        CASE P : BOOLEAN OF

                                    TRUE : (BAHA1 : INTEGER);

                                    FALSE : (BAHA2 : REAL)

                        END;

                                    VAR

                                                X : HAT;

Bu ýerde X –üýtgeýän ululyk özüne baha hökmünde HAT tipli ýazgylary kabul edip bilýär. HAT – tope degişli bolan ýazgylaryň her biri 3 sany komponentden ybarat bolup, olaryň ikisi fiksirlelen – NOMER : BYTE; RAZMER : INTEGER.Üçünji komponentiň haýsy boljakdygy Politehniki-logiki aňlatmanyň alýan bahasyna bagly: Eger Politehniki - “TRUE” baha eýe bols, onda üçünji komponenet hökmünde BAHA1 : INTEGER; alynýar; eger Politehniki “FALSE” baha eýe bolsa, onda BAHA2 : real; alynýar.

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Pascal abc degishli birnache mysallar ýygyndysy"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Директор дома творчества

Получите профессию

Няня

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 651 906 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 07.01.2016 4963
    • DOCX 684 кбайт
    • 57 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Kurbanowa Maral Amanmuhammedowna. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Kurbanowa Maral Amanmuhammedowna
    Kurbanowa Maral Amanmuhammedowna
    • На сайте: 8 лет и 5 месяцев
    • Подписчики: 1
    • Всего просмотров: 79481
    • Всего материалов: 15

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Секретарь-администратор

Секретарь-администратор (делопроизводитель)

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Организация преподавания информационных систем и технологий в профессиональном образовании

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 20 человек из 15 регионов
  • Этот курс уже прошли 71 человек

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Учитель математики и информатики

500/1000 ч.

от 8900 руб. от 4450 руб.
Подать заявку О курсе
  • Сейчас обучается 681 человек из 79 регионов
  • Этот курс уже прошли 1 797 человек

Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации

Преподаватель информационных технологий

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 192 человека из 53 регионов
  • Этот курс уже прошли 968 человек

Мини-курс

Классики и современники: литературные портреты и психология творчества

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 24 человека из 17 регионов
  • Этот курс уже прошли 13 человек

Мини-курс

Подростковые проблемы: индивидуальный подход

3 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 388 человек из 70 регионов
  • Этот курс уже прошли 252 человека

Мини-курс

Личность в психологии

5 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 24 человека из 14 регионов