Operacioni paskal i shënimeve. Historia e zhvillimit të programimit gjuhësor Pascal. Zminni. Llojet standarde

Buv i shpërbërjes në 1970. Niklaus Werth yak mov, i cili do të sigurojë shtypje strikte dhe sintaksë intuitive të ndjeshme. Ata janë emëruar pas matematikanit, fizikantit dhe filozofit francez Blaise Pascal.

Një nga qëllimet e krijimit të gjuhës nga Pascal Niklaus Wert është të theksojë njohuritë e studentëve për programimin e strukturuar. Dosi Pascal konsiderohet me meritë si një nga mjetet më të mira për programimin bazë. Këto modifikime moderne, të tilla si Object Pascal, përdoren gjerësisht në softuerët industrialë (bërthama e Delphi).


Blaise Pascal
Nisur në vitin 1995 Si vazhdim i softuerit të mesëm Turbo Pascal, sistemi i programimit Delphi është bërë një nga programet më të mira të ndërmjetësimit për krijimin e shpejtë të shtesave. Delphi ka futur zgjerime të ulëta të orientuara nga objekti në gjuhën Pascal; Gjuha u përditësua dhe u riemërua Object Pascal. Duke filluar me versionin Delphi 7.0, gjuha Delphi Object Pascal filloi të quhej thjesht Delphi, emri i vjetër shpesh vikorizohet. Versioni i mbetur i programit të mesëm është Delphi XE.
Mjedisi Delphi 7

Unë jam më i kënaqur me zbatimin falas të Pascal dhe Free Pascal. Përveç hapjes së kodit të daljes, përparësia e tij kryesore është multi-platforma, si dhe mbështetja për dialekte të ndryshme Pascal. Bazuar në FreePascal, u krijua një softuer unik multi-platformë Lazarus, i ngjashëm me softuerin e mesëm Delphi. Sidoqoftë, ndërfaqja e konsolës së kornizës së integruar Free Pascal, e cila është e varfër dhe e pandryshuar për dekada, ka pak të përbashkëta me ndërfaqet aktuale të desktopit të sistemeve operative dhe është më e ngjashme me ato që kanë formuar gabimisht erën e keqe të manifestim se Pascal është një gjuhë e vjetëruar.

Nga ana tjetër, mjedisi Delphi është bërë gjithnjë e më i rëndë dhe i papërshtatshëm për programimin bazë në të gjithë botën. Për më tepër, ekziston një version ditor falas i Delphi për kërkime akademike. Këta faktorë kanë çuar në popullaritetin pothuajse të plotë të Delphit në sferën e ndriçimit, dhe për mesin e Lazarit, pavarësisht nga integriteti i tij, episode të tilla janë të njëjta.

Ardhja e platformave Java dhe .NET, të cilat përfshijnë programim gjuhësor të rëndë dhe biblioteka të rënda standarde, ka dobësuar pozitën e gjuhës Delphi. Për programimin bazë, gjuhët si Java, C, C++, C#, Visual Basic, Python, Haskell janë përdorur më shpesh.

Një nga zhvillimet më të ndritura të lidhura me zhvillimin e Pascal ishte shfaqja e përpiluesit Oxygene nga RemObjects, të cilin krijuesit me meritë e quajtën Pascal modern i shekullit të 21-të. Oxygene mund të gjenerojë kode për një sërë platformash, duke përfshirë platformat .NET dhe Java. Disavantazhi i tij kryesor është mungesa e një përpiluesi pa kosto dhe një terren i mesëm për qëllime të lehta. Për më tepër, Oxygene mund të jetë shumë i ndryshëm nga gjuha kanonike e Pascal (metodat e klasës në vend të procedurave dhe funksioneve), gjë që pasqyron drejtpërdrejtshmërinë e saj profesionale.

Gjuha dhe sistemi i programimit faqe interneti Klikoni në butonin për të ndryshuar situatën që është krijuar dhe aktivizoni Pascal, i cili është jashtëzakonisht i dobishëm si për fillestarët ashtu edhe për programimin profesional, duke e shumëzuar me platformën .NET.

Gjuha e alfabetit Pascal përbëhet nga disa seksione:

Shkronjat latine: A a B b…

Shifrat: 0 1 2..9

Shenjat e operacioneve matematikore: + - * /

Simbolet matematikore:<> =

Shenjat e ndarjes: . , : ;

Karaktere speciale: ( ) () $ ^

Programi, i shkruar nga Pascal im, mund të ndahet në seksionet e mëposhtme.

Drejtimi

Shënoni ndarjen

Seksioni i konstanteve

Seksioni Llojet

Ndarja e të shquarve

Seksioni i procedurave dhe funksioneve

Seksioni i operatorit

Të gjitha programet funksionojnë domosdoshmërisht në seksionin e kokës dhe seksionin e operatorit. Depot e tjera mund të jenë të hapura çdo ditë. Në mungesë të pjesëve të caktuara të programit, ruhet rendi origjinal i drejtpërdrejtë i tij.

Ato ndahen me shenjën ";"
Seksioni i operatorit ndodhet në krahët e operatorit. Këto fjalë të rezervuara fillojnë, mbarojnë. Seksioni i operatorit përfundon me një pikë. Regjistrimi në mes të krahëve të operatorit zakonisht kryhet me një hyrje prej tre shenjash.

1) Qepni krahët e operatorit me të njëjtën hapje në skajin e majtë dhe operatorët pas niveleve të futjes

operatori 1;

operatori2;

operatori3;

2) Përdorni shkronja të vogla për të regjistruar operatorët, për të përcaktuar ndryshimet, procedurat, funksionet dhe komponentët e tjerë të programit. Megjithëse përkthyesi Pascal ju lejon të përdorni shkronja të mëdha dhe të vogla, në praktikë ngecja e atyre që mbeten është më e gjerë;

3) Krijoni komente zëvendësuese për operatorët dhe fragmentet e programit. Kjo do të thjeshtojë kuptimin e parimeve të punës nga programet, si nga zhvilluesit e tjerë, ashtu edhe nga vetë autori pas një periudhe të konsiderueshme kohore.

Seksioni "header" fillon me një fjalë të rezervuar, e ndjekur nga emri i programit. Si mund të kuptoj ndonjë grup karakteresh në alfabet me një numër fajtorë.

§ Fjalët e rezervuara nuk mund të vikorizohen.

§ Nuk mund të filloni një biznes duke përdorur numra.

§ Nëse emri ndryshohet, boshllëku nuk shtohet.



Aplikoni: program një; program te jesh apo te mos jesh; program x5;

Të falni llojin e të dhënave.

Nëse të dhënat e Paskalit karakterizohen nga llojet e tyre. Lloji do të thotë: formati i furnizimit të të dhënave në memorien e kompjuterit, asnjë vlerë e vlefshme që pranohet si vlerë e ndryshueshme ose konstante që duhet të aplikohet në llojin e zgjedhur dhe asnjë operacion i vlefshëm që do t'i caktohet atij lloji.

Lloji i ndryshimit tregohet në përshkrimin e tij. Një nga konceptet bazë të Pascal-it qëndron në ndryshimin e ngurtë të llojeve në operacionet e caktimit.

Llojet e të dhënave në gjuhën Pascal ndahen në pesë klasa kryesore.

1. Tipi i thjeshtë

2. Llojet e strukturuara

3. Llojet e mundshme

4. Llojet procedurale

5. Llojet e objekteve

Përpara llojeve të thjeshta janë: llojet e numrave të plotë, llojet e të folurit, lloji logjik, lloji i karakterit, lloji i kujdesit të tepërt, lloji i intervalit.

Midis këtyre specieve ka një nëngrup tipash, të dallueshëm nga lloji i të folurit, i quajtur tipi rendor.
Llojet e rendit kanë shumë karakteristika.

1. Të gjitha vlerat e mundshme të një lloji rendor të caktuar janë një shumëzim i renditur dhe çdo vlerë e mundshme shoqërohet me një numër rendor, i cili është një numër i plotë.

2. Vlera e çdo lloji rendor, në fund të fundit, fillon me numrin rendor zero (numri rendor tjetër është 1, 2, 3...).

3. Numri rendor i vlerës së një lloji të plotë është vetë vlera.

4. Për çdo lloj rendor, vlera e lëkurës, përveç të parës, është e përparme dhe vlera e lëkurës, përveç asaj që mbetet, është ajo e radhës.

Deri atëherë, në çdo mënyrë, ju mund ta bëni atë në pesë operacione.

Operacioni standard Urdhër Kthen numrin serial të vlerës së futur. Kuptimi tregohet në tempuj.

Operacioni standard Pred rrotullon vlerën që transferohet në atë të caktuar, nëse ky funksion është vendosur në vlerën e parë të këtij lloji, atëherë shfaqet një njoftim për rivendosjen.

Operacioni standard Succ Gjithashtu rrotullon vlerat pas hyrjes, nëse operacioni përfundon deri në elementin e mbetur të llojit, shfaqet një njoftim për rivendosjen.

Operacioni standard Low rrotullon vlerën më të ulët të diapazonit të tipit rendor që i është caktuar.

Operacioni standard i Lartë rrotullon vlerën më të lartë në diapazonin e tipit rendor që i është caktuar.

Pascal-i ynë ka pesë lloje me vlerë të plotë (Tabela 6). Lloji i lëkurës nënkupton një nënshumë numrash të plotë.

Tabela 6 - Llojet e numrave të plotë të filmit Pascal

Si rregull, lloji i numrit të plotë zgjidhet për të gjitha të dhënat.

Vlera kufitare e sipërme dhe vlera kufi e poshtme e të gjitha llojeve specifikohen si konstante dhe kanë emra të ndryshëm. Në tekstin e programit, të dhënat e llojeve të caktuara regjistrohen në formatin dhjetësh ose heksadecimal dhe pa asnjë detyrim për të përfshirë dhjetëra pika.

Prapa:
1 - lloji i tërë
1.0 - lloji i të folurit
Formati 100 – dhjetëshe (100)
#100 - format heksadecimal (256)

Veprimet e mbledhjes, mbledhjes dhe shumëzimit, si dhe operacioni i barazimit, janë të mundshme mbi të gjitha të dhënat. Lloji i një konstante të plotë është një tip numër i plotë me diapazonin më të vogël që përfshin vlerat e konstantës së dhënë. Vlera e dorës së djathtë në operatorin e caktuar llogaritet pavarësisht nga madhësia ose lloji i materialit të këmbyeshëm.

Lloji logjik duhet të jetë i tipit Boolean.
Vlerat e tipit Boolean mund të kenë dy vlera: e vërtetë(1) që i rremë(0). Për një lloj logjik të stagnimit, ekzistojnë vetëm dy operacione rregullimi: dhe jo-rregullimi. Lloji serioz logjike zënë një bajt.

Lloji i karakterit karakter- llojin e të dhënave, qëllimin për ruajtjen e një karakteri (shkronjë, shenjë ose kod). Përndryshe, ambientet mund të kenë çdo kod ASCII të zgjeruar me 256 karaktere. Lloji Zminna karakter merr një bajt memorie. Vlerat për llojin Char janë të specifikuara në apostrofa. Përveç kësaj, ju mund të specifikoni vlerat dhe kodet nga tabela ASCII. Operacionet e barazimit mund të kryhen në të dhënat e tipit të karaktereve.

Lloji që është mbisigurimi tregohet si renditja e grupit të identifikuesve, detyrave në mënyrën e mbisigurimit të tyre. Në këtë rast, lista e identifikuesve të ndarjeve të komës tregohet në krahët e rrumbullakët. Lloji që do të risigurohet në seksionin tip është i specifikuar.

Prapa:
tipi A=(2, 4, 1, 7);
B=("c", "L", "3", "|");

Vlerat e llojit që reagohen tepër nuk mund të futen nga tastiera ose të shfaqen në ekran.

Lloji i intervalit të të dhënave i caktohet nëngrupit shtesë të vlerës së njërit prej llojeve të përcaktuara më parë. Ju mund të vikoristuvat të gjitha llojet e thjeshta, pas fajit të fjalës. Për një diapazon të caktuar, tregohen vlerat më të vogla dhe më të mëdha, të ndara me dy pika. Në këtë rast, vepra penale është e të njëjtit lloj.

Lloji i të folurit përfshin një nëngrup numrash realë të përfaqësuar në format me një pikë lundruese dhe një numër fiks shifrash.

Pascali ka pesë lloje të llojeve të të folurit (Tabela 7).

Tabela 7 – Llojet e të folurit Pascal

Veprimet në llojet me saktësi teke, dyshe, rrëshqitëse dhe

Jo të gjitha implementimet e Pascal mund të trajtojnë llojin e palosjes. Prandaj, është e rëndësishme që lloji Real të jetë i aksesueshëm.

Programi Pascal u krijua nga Niklaus Wirth, dhe u emërua sipas filozofit dhe matematikanit francez të shekullit të 17-të. Blaise Pascal. Në atë kohë, Wert ishte profesor i shkencave kompjuterike në Universitetin Teknik Federal në Zvicër dhe kërkoi një gjuhë që mund t'i ndihmonte studentët të fillonin programimin.

Koncepti i Pascal u zgjerua nga N. Wirt rreth vitit 1970 dhe Pascal zbuloi shpejt një rritje të gjerë në lehtësinë e aplikimit, saktësinë e teksteve të programeve të shkruara në të reja. Fragmentet e Pascal shërbyen si bazë për zhvillimin e programeve të tjera, si Ada dhe Modula-2, dhe fragmentet janë të pasura me struktura të ngjashme me Pascal, njohuria e Pascal është një bazë solide për zhvillimin e programeve të tjera.

Në vitet 1970, u bë një përpjekje për të zhvilluar një standard ndërkombëtar për Pascal. Si rezultat i vitit 1982, u shfaq standardi ISO 7185.

Nëpërmjet përpjekjeve të Anders Hejlsberg, Mova Pascal u shndërrua në sistemin profesional të programimit Turbo Rascal. Pas versionit 1.0, i cili kishte kohë që ekzistonte dhe nuk ishte zgjeruar gjerësisht, versioni 2.0 u shfaq në mesin e vitit 1984. Zgjerimi ka ecur me ritme të shpejta. Deri në vjeshtën e vitit 1985, u shfaq versioni 3.0, i cili u azhurnua nga versioni 2.0 me veçori të reja: përpiluesi dhe redaktori filluan të bëhen më efikas, u bë e mundur transferimi i parametrave nga një program duke përdorur komandën shtesë RUN, duke u bërë Ne mund të klikojmë MS -DOS nga programet, është bërë robot manual me skedarë. Që nga viti 1988, versioni 4.0 është zgjeruar.

Këtu është përfaqësimi Turbo Pascal në një formë të re. Jo vetëm që është ende një përpilues i avancuar, por është një program kompjuterik krejtësisht i ri. U bë e mundur ndarja e programeve në pjesë (module) që mund të përpiloheshin së bashku. Deri në vjeshtën e vitit 1988, versioni 5.0 u shfaq me përmirësime edhe më të avancuara të softuerit. Këtu personi i parë që meriton meritën për të gjitha sukseset është mbikëqyrësi. Turbo Pascal mund të përdoret në shumicën e sistemeve operative për kompjuterë personalë.

Ardhja e mjeteve Borland Pascal me Objekte dhe Delphi për zhvillimin e programeve të Windows ka treguar edhe një herë aftësitë vërtet të pabesueshme që ka Pascal. Borland Pascal dhe vikorist në gjuhën Delphi Pascal bazohet në Turbo Pascal dhe zhvillon idetë e tij.

Delphi është një përpilues i filmit Pascal. Delphi 1 ishte mjeti i parë i zgjerimit të Windows për të kombinuar një përpilues optimizues, një softuer të mesëm vizual dhe aftësi të avancuara të bazës së të dhënave. Fati më vonë, Delphi 2 u krijua njësoj, por në nivelin e ri të sistemit aktual operativ 32-bit Windows 95 dhe Windows NT. Përveç kësaj, Delphi 2 i dha programit një përpilues 32-bit, i cili krijoi programe më efikase dhe efektive dhe biblioteka më të forta objektesh.

Puna e ekipit të zhvillimit Delphi ka çuar në shfaqjen në versionin e tretë të produktit të një grupi të zgjeruar mjetesh për krijimin e programeve, aftësinë për të përdorur teknologjitë COM për zhvillimin e programeve WWW dhe një mori teknologjish të tjera programimi aktuale.

Delphi 4 ka qenë një moment historik në evolucionin e përpiluesve të Pascal që kur Anders Hejlsberg krijoi përpiluesin e parë Turbo Pascal 16 vjet më parë.

Paskalin) – Programimi i gjuhës Vysokorivneva me rëndësi zagalike. Një nga programet më të njohura gjendet gjerësisht në programimin industrial, i cili filloi në shkollë dhe është bazë për shumë programe të tjera. Libra me vepra të Niklaus Wert në vitet 1968-69 (botuar në 1970) pas pjesëmarrjes së tij në komitetin për zhvillimin e standardit të gjuhës ALGOL-68.

Parahistoria

Pascal i krijimeve të Yakmov për të mësuar programimin procedural (edhe pse, sipas Virt, gjuha nuk mund të konsiderohet përtej asaj fillestare, fragmente të gjuhës nuk janë të përshtatshme për të shkruar programe reale, për të mësuar nuk është e nevojshme të jesh vikorist). Emri i filmit është dhënë për nder të matematikanit, fizikantit, shkrimtarit dhe filozofit të shquar francez Blaise Pascal.

Zbatimet

UCSD Pascal

Në vitin 1978, në Universitetin e San Diegos (Kaliforni, SHBA), u zhvillua UCSD p-System, i cili përfshinte një përpilues për gjuhën Pascal në kodin p portativ dhe implementoi një numër zgjerimesh të gjuhës Pascal, të tilla si module, rreshta simbolesh. Dhe në ndryshim, transmetimet e direktivave, përpunimi i përpunimit të hyrje-daljeve, shkarkimi në skedarë të emërtuar sipas njëri-tjetrit. Me kalimin e viteve, zbatimet kryesore të gjuhës Pascal janë bazuar në këtë dialekt.

Objekti Pascal nga Apple

Turbo Pascal dhe Object Pascal nga Borland, Microsoft Pascal

Kryesisht i nxitur nga zbatimi i Pascal, i cili siguroi një zgjerim të gjerë të gjuhës, Turbo Pascal nga Borland, i cili më pas u rrit në objektin Pascal për DOS (duke filluar me versionin 5.5) dhe Windows dhe më pas Delphi, çfarë zgjerimi domethënës i gjuhës ka qenë zbatuar.

Dialektet Pascal, të gjetura në Turbo Pascal për DOS dhe Delphi për Windows, janë bërë të njohura nëpërmjet pranisë së zbatimeve të tjera të suksesshme komerciale.

Standard

Pas fillimit të punës së Pascal në 1970, u shfaqën zbatime që ndryshuan jo vetëm në shtesa, por edhe në sintaksë, dhe nevoja për standardizimin e gjuhës u shkatërrua. Standardi i filmit u zhvillua nga Niklaus Wert në 1974 së bashku me Kathleen Jensen. Më vonë u miratuan standardi ndërkombëtar ISO dhe standardi amerikan ANSI. Për momentin, ekzistojnë tre standarde thelbësisht të ndryshme: Pascal i pazgjeruar, Pascal i zgjeruar, Zgjerime të orientuara nga objekti në Pascal.

Standardet e gjuhës Pascal: fundjavë, ISO ndërkombëtare dhe ANSI amerikane
EmriopsionKim/de rozroblenoLumi i krijimit
Standardi i PaskalitkalliN. Virt, Ketlin Jensen
Standardi i PaskalitkalliISO 7185:1983
ANSI/IEEE 770X3.97:1983
Pascal i pazgjeruarkalliISO 7185:1990
Pascal i zgjeruarzgjerimetANSI/IEEE 770X3.160:19891989
ISO/IEC 10206
I orientuar nga objekti
Zgjerime për Pascal
zgjerime të orientuara nga objektiANSI/X3-TR-13:1994

Një nga veçoritë kryesore shtesë të zgjerimit të orientuar drejt objektit të Extended Pascal është modulariteti dhe veçoritë e tij që lehtësojnë përpilimin e veçantë.

Standardizimi i gjuhës ishte i vonuar në raport me paraqitjen aktuale të mundësive të tilla dhe të tjera në gjuhë. Standardi i zgjeruar i shitjeve komerciale Pascal; Kështu u përpilua në UCSD Pascal, një modifikim i Object Pascal nga Apple, Turbo Pascal nga Borland (një version pak i modifikuar i Apple) dhe në të njëjtën mënyrë. Implementimet komerciale më të përhapura të Pascal nuk plotësojnë saktësinë e standardeve të gjuhës zyrtare.

Sintaksa e këtij ndërtimi

Pascal, në këndvështrimin e tij parësor, është thjesht procedural dhe përfshin struktura dhe konstruksione anonime të ngjashme me algoritmin me fjalë të rezervuara në komandën if, then, else, while, for, etj. Tim nuk është më pak, Pascal është gjithashtu furçë e madhe e mundësive për Struktura e banjës Informacioni dhe abstraksioni që janë të pranishëm në Algol-60 të parë, të tilla si llojet e përcaktuara, regjistrimet, treguesit, mbiinterpretimi dhe impersonaliteti. Këto struktura shpesh u shembën ose rishpikeshin nga Simula-67, Algol-68, e krijuar nga Niklaus Wert AlgolW dhe e ripushtuar nga Hoare.

Në dialektet aktuale (Paskal i lirë), funksione të tilla si operatorët dhe funksionet e kundërta janë të disponueshme.

Përshendetje Botë

Programet në Pascal fillojnë me programin e fjalëve kyçe të ndjekura nga emri i programit me një pikë (në shumicën e dialekteve kjo nuk kërkohet), e ndjekur nga një listë e përshkruesve të skedarëve të jashtëm si parametra; pasohet nga trupi i programit, i cili përbëhet nga një seksion që përshkruan variablat, llojet dhe konstantat, procedurat dhe funksionet, dhe blloku i deklaratave që i ndjek, i cili është pika hyrëse në program. Në filmin Pascal, blloku ndahet nga fjalët kyçe fillimi dhe mbarimi. Operatorët ndajnë pikat me një pikë, pas trupit ka një pikë, e cila shënon fundin e programit. Regjistri i simboleve në Pascal nuk ka asnjë kuptim.

Pra, programi më i thjeshtë në Pascal do të dukej kështu: fillimi. Programi nuk anulon operacionet ditore dhe vendos një bllok bosh operatorësh.

Programi Butt për të shfaqur rreshtin Përshëndetje, Botë! Programi HelloWorld(output);fillon

WriteLn ("Përshëndetje, Botë!"); (operatori i rreshtit)

fund.

Tipi homazhe

primitive Llojet e të dhënave të Pascal: numrat me koma lundruese (reale), numra të plotë (numër i plotë), simbolik (char), logjik (boolean) dhe riinterpretim (ndërtues i një lloji të ri, hyrje nga Pascal):

R: Real; (Lloji i të folurit Zminna) i: Numri i plotë; (Zmіnna e tërë tipi) c: Char; (Zminna-karakter) b: Boolean; (ndryshim logjik) e: (mollë, dardhë, banane, portokall, limon); (Zminna tipu-perehrahuvannya)

Duket qartë rendore llojet e të dhënave (rendore), para tyre qëllimi i llojeve (të nënshkruara dhe të panënshkruara), logjike (boolean), karakteri (char), llojet e tejmbushjes dhe llojet e diapazonit.

Llojet rendore përcaktohen nga një numër i plotë (kodi), i cili mund të hiqet duke përdorur funksionin shtesë ord. Të gjitha operacionet që lidhen me llojet rendore shoqërohen me kodet e tyre.

X: 1..10; y: "a".."z"; z:dardhë..portokalli;

Për llojet rendore, operacionet inc, dec, succ, pred, ord, operacionet e barazimit (=>< => <= <>), ato mund të përdoren në rastin e operatorëve , për (si operator cikli), si midis vargjeve, për specifikimin e elementeve të një shumëllojshmërie dhe llojeve të diapazonit.

Në Pascal, përveç gjuhëve të ngjashme me C-në, me tipet boolean dhe char, veprimet me numra të plotë aritmetik nuk përcaktohen.

Përveç shtesave të tij të pasura, Pascal mbështet një lloj të veçantë të dhënash jopersonale:var

Set1: set 1..10; set2: grup i "a".."z"; set3: komplet perla..portokalli;

I pasur është një koncept themelor në matematikën moderne, i cili mund të përdoret në algoritme të pasura.

Në Pascal, lloji i shumëfishimit mund të krahasohet me elementë të të njëjtit lloj të tipit rendor. Ky tipar admirohet gjerësisht dhe kërkohet ndërtimi ekuivalent në gjuhë, i cili nuk mbështet impersonalitetin. Për shembull, shumica e përpiluesve Pascal: nëse i in atëherë (duke kontrolluar identitetin e elementit jopersonal). obrobatsya shvidshe, nіzh nëse (i>4) dhe (i<11) then { проверка логическими условиями }... Për të vendosur vlerën e shumëfishimit, shfaqet një listë e elementeve të shumëfishimit, të përforcuar me koma dhe vendosje në harkun katror (siç është treguar tashmë më lart): var (seksioni i ndryshimeve mahnitëse)

D: grup char;

fillo (kalli për të bllokuar)

D:=["a","b"];

... Në Pascal Jensen dhe Virt, rreshtat përfaqësoheshin si një grup simbolesh; Tani e tutje era e keqe e dozhinit fiks u anulua dhe u plotësua deri më sot me boshllëqe.

Në Pascal-in modern, për të punuar me rreshta, përdoret vargu i tipit, i cili mbështet operacionet e lidhjes (+) dhe shtrirjes (>< = <> >= <=). Строки сравниваются в лексикографическом порядке . Например, строки считаются равными если они имеют одинаковую длину и коды всех символов с одинаковыми индексами совпадают.

Shkruani vargun [n] ose thjesht vargun në dialektet gjuhësore të viteve 1970-1990, duke u shfaqur si një grup karakteresh në një grup char (n mori vlerën 80 në UCSD Pascal dhe 255 në Turbo/Borland Pascal), kodi për një karakteri null me këtë hyrje Shërbejë si parakusht për rreshtin e fundit, veçanërisht rreshtin menjëherë, me një madhësi maksimale prej 255 karakteresh. Në Delphi dhe FreePascal, lloji AnsiString përdoret si String, memoria për të cilën shihet dhe ndahet në mënyrë dinamike nga përpiluesi, dhe madhësia maksimale e rreshtit në implementimet aktuale është vendosur në 2 gigabajt. Përveç kësaj, në Delphi dhe Free Pascal, lloji WideString mund të përdoret si një varg dhe shprehjet e karaktereve 16-bitësh në kodimin UCS-2 bllokohen, duke konvertuar kështu nga rreshtat me një bajt në ato me bajt të mëdhenj dhe përsëri në biblioteka standarde Kjo është gjuha juaj e përditshme.

Llojet e reja mund të identifikohen për shkak të:

X = Numër i plotë; y = x;

... Për më tepër, magazinat mund të ndërtohen nga llojet e mëposhtme: lloji (lloji seksion shkëputës)

A = Vargu i numrave të plotë; (Array) b = rekord (Record) x: Integer; y:Char; fundi; c = Skedari i a; (Detyrë në dosje)

Llojet e skedarëve në Pascal ndahen në skedarë të shtypur, tekst dhe skedarë pa lloje.

Siç tregohet në shembullin e mësipërm, skedarët e shtypur në Pascal janë një sekuencë elementësh të ngjashëm. Për skedarin e lëkurës ekziston një tregues i ndryshimit në buffer, i cili tregohet me f ^. Procedurat marrin (për lexim) dhe vendosin (për shkrim) zhvendosin treguesin në elementin tjetër. Leximi zbatohet në të njëjtën mënyrë si read(f, x) është i njëjtë me get(f); x:=f^. Me sa duket, regjistrimi zbatohet në atë mënyrë që shkrimi (f, x) të jetë i njëjtë me f^: = x; vendos (f). Skedarët e tekstit përcaktohen si një zgjatim i skedarit të tipit char dhe, përveç operacioneve standarde në skedarët e shtypur (lexim, shkrim në një karakter), lejojnë hyrje-dalje simbolike në skedarë të të gjitha llojeve të të dhënave, të ngjashme me hyrje-daljet e konsolës. .

Skedarët pa lloje votohen si të llojit të skedarit. Me to, ju mund të kryeni operacione hyrje/dalje të pashtypura byte-pas-byte në një numër bajt-blloqesh të një periudhe të caktuar përmes një buferi, për të cilat përdoren procedura të veçanta për leximin dhe shkrimin e bllokut (zgjatja UCSD).

Vkazivniki

Pascal mbështet një sërë treguesish (tregues të shtypur dhe të pashtypur): lloji

A = ^b; b = rekord x: Integer; y:Char; z: a; fundi;

Treguesi_te_b:a;

Këtu ndryshimi është pointer_to_b - një tregues i tipit të të dhënave b dhe rekordi. Lloji i një treguesi tipik mund t'i caktohet llojit që kërkohet. Ky nuk është një rregull, por është e qartë se sido që të jetë fjalimi, ajo shtangur para faktit se po del fitimtare. Futja e këtij përjashtimi bëri të mundur organizimin e vlerave të përsëritura të strukturave të të dhënave, duke përfshirë listat lineare, pirgjet dhe sirtarët, duke përfshirë një tregues për një rekord në inventarin e një rekord (gjithashtu: treguesi null - zero).

Për një tregues të shtypur, caktohet operacioni "rosiname" (sintaksë: tregues^).

Për të krijuar një rekord të ri dhe për të caktuar vlerën 10 dhe karakterin A në fushat a dhe b, kërkohen operatorët e mëposhtëm: i ri (tregues_te_b); (Vizioni në kujtim të showman-it)

treguesi_te_b^.x:= 10; (pointer_to_b^.y:= "A";pointer_to_b^.z:= zero;...dispose(pointer_to_b); (kujtesa nga treguesi) Për qëllimin e shkallëzimit deri në fushat e regjistrimeve dhe objekteve, mund të përdorni gjithashtu operatorin me, siç tregohet në aplikacion: i ri (tregues_te_b);

me pointer_to_b^ dofillojë

X: = 10; y: = "A"; z:= zero

fund;...dispose(pointer_to_b);

Lloji procedural

Në filmin origjinal nga Pascal Jensen dhe Virta, lloji procedural u përdor vetëm kur përshkruante një parametër formal. Tashmë TP është bërë një tip procedural i plotë. Lloji i specifikuar përmban titullin e procedurës dhe funksionit (pa emër), i cili përshkruan qartë ndërfaqen e nënprogrameve. Për këtë lloj vlere, vendosni një tregues në nënprogram me një titull që korrespondon me llojin e përshkruar më sipër. Mund të klikoni në një procedurë ose funksion specifik për ID-në shtesë të ndryshimit. shkruani myfunc=funksion:string;

funksioni func1:string;fillimi

Func1:="func N 1"

funksioni func2:string;fillimi

Func2:="func N 2"

var fun:myfunc;filloj

Fun:=@func1;writeln(fun) (funksioni func1 është klikuar)

fund.

Operatorët keruvannya programe vikonannyam

Pascal është një gjuhë programimi e strukturuar, që do të thotë se programi përbëhet nga një numër deklaratash standarde që shtohen në mënyrë sekuenciale, në mënyrë ideale pa pasur nevojë për një komandë GOTO. ndërsa a<>b bëj (cikli iz ndryshimi i mendjes)

Writeln ("Coining");

nëse a > b atëherë (operatori mendor)

Writeln ("Umova vikonala")

tjetër (seksioni tjetër - mund të jetë i ndryshëm)

Writeln("Umova nuk vikonal");

për i:= 1 deri në 10 do ( cikli i përsëritjes )

Writeln ("Iteration No", i:1);

përsëris (cikli nga pas vdekjes)

A:=a+1

rasti i (operatori i shumëfishimit mendor)

0: shkruani ("null"); 1: shkruani ("një"); 2: shkruani ("dy") tjetër shkruani ("numër i panjohur") (seksion tjetër - mund të jetë i përditshëm)

fundi; Në operatorët ndërsa , për , nëse , rasti në fushëveprimin e operatorit mund të përdorni bllokoj. Një ndërtim i tillë, i cili është operatori kryesor ose blloku, quhet operatori i palosjes.

Për të trajtuar procesin e përpilimit, Pascal kërkon direktiva të përpiluesit. Ato janë të vendosura në komente dhe ju lejojnë të ndryshoni mënyrat e funksionimit të përpiluesit, për shembull, aktivizoni dhe ndryshoni verifikimin e operacioneve hyrëse-dalëse, verifikimin e rishikimit:

Cakto (inp, "text.txt"); ($I-) (mundësimi i modalitetit të kontrollit IO - gjenerimi i kodit të përfundimit të programit në momentin e ekzekutimit të hyrje-daljes) ( (për rastin kur skedari nuk gjendet)) rivendosni (inp); ($I+) (modaliteti i kontrollit IO) nëse IOresult=0 atëherë filloni (vlerat verifikohen duke ndryshuar ioresult(<>0 në një kohë, hyrje-shikimi) ... mbyll (inp); end else writeln ("skedari nuk u gjet")

Ka direktiva të ngjashme me direktivat e paraprocesorit C/C++ ($ifdef, $define, $include ) që përpilohen nga përpiluesi gjatë procesit të përpilimit.

Procedurat dhe funksionet

Në Pascal, nënprogramet ndahen në procedura dhe funksione:

Në mënyrë sintaksore, procedurat dhe funksionet përbëhen nga kokë(që përfshin procedurën ose funksionin e fjalës kyçe, emrat që mund të pasohen nga një përshkrim i parametrave kalues ​​në krahë, lloji i vlerës që rrotullohet përmes simbolit të dyfishtë për funksionin dhe pikës me të), pas titullit ka një gjurmë trupi pas së cilës vendoset një simbol; . program minierë (output);

printim i procedurës (var j: numër i plotë);

Funksioni tjetër(k: numër i plotë): numër i plotë; filloni tjetër: = k + 1 fund;

Writeln("Usyogo: ", j); j:= tjetër(j)

I:= 1; nderkohe une<= 10 do print(i)

fund. Trupi i një procedure, si dhe një program, mund të përmbajë një përshkrim të procedurave dhe funksioneve. Në këtë mënyrë, procedurat dhe funksionet mund të futen njëra në tjetrën si gjithmonë në thellësi, në të cilin rast trupi i programit është i integruar më fort.

Për më tepër, në vend të seksioneve, ka një përshkrim të variablave, llojeve, konstanteve, trupave të jashtëm (procedurave, funksioneve, programeve), të cilat zgjerohen përpara përshkrimit të procedurës/funksionit të disponueshëm në mes të saj. Gjithashtu, në shumicën e dialekteve nga një procedurë, ju mund të ndryshoni në parametrat e një procedure të jashtme.

Fjala kyçe përpara mund të vendoset pas titullit të procedurës/funksionit në vend të trupit, në mënyrë që përshkrimi i procedurës/funksionit të jetë në program pas thirrjes, dhe për shkak të mundësisë së kompilimit të programeve me një kalim, që është mbështetur në Pascal.

Procedurat si funksione nënkuptojnë që funksionet rrotullojnë vlerat, por procedurat jo.

Modulet

Përpara ardhjes së moduleve, zbatimi i Pascal dukej se favorizonte modularitetin përmes një mekanizmi për përfshirjen e skedarëve të kokës, i ngjashëm me mekanizmin #include në C: me ndihmën e një direktive të veçantë, e cila është lëshuar në Shikoni pseudo-komentin, për shembull. , ($INCLUDE "file") , në vend të kësaj skedari i caktuar u përfshi drejtpërdrejt në tekstin e programit në pamjen e daljes, tekstin. Në këtë mënyrë u bë e mundur që kodi i programit të ndahej në fragmente të veçanta për lehtësinë e redaktimit dhe para kompilimit ato kombinoheshin automatikisht në një skedar programi, i cili, si rezultat, përpilohej nga përpiluesi. Ky zbatim i modularitetit është primitiv dhe nuk ka mangësi të dukshme, kështu që u zëvendësua shpejt.

Implementimet aktuale të moduleve mbështetëse Pascal (duke filluar me UCSD Pascal). Modulet e programit mund të jenë dy llojesh: moduli kryesor i programit, i cili fillon me fjalë kyçe program dhe trupi i të cilit përmban kodin, i cili lëshohet pasi programi të jetë ngarkuar në memorie, dhe module shtesë, të cilat përmbajnë lloje stan, ndryshim, procedura. Këto funksione janë të destinuara për përdorim në module të tjera, duke përfshirë modulin e kokës.

Struktura

Struktura bazë e modulit që lidhet me Pascal duket si kjo: njësi Emri i njësisë1;ndërfaqe

... ...

filloni (mund të përdoret si një wiki nëse është e nevojshme të vendosni deklarata të inicializimit)

...

fund. Një tjetër opsion i mundshëm: njësi Emri i njësisë2;ndërfaqja

... ... ... ...

fund. Kur i nënshtrohet programit kryesor, skedari i modulit fillon me fjalën kyçe UNIT, i ndjekur nga emri i modulit në atë pikë. Implementimet aktuale zakonisht kërkojnë që emri i modulit të përputhet me emrin e kodit të daljes në të cilin përshtatet moduli. Moduli përbëhet nga tre seksione: seksioni i ndërfaqes, seksioni i zbatimit dhe trupi i modulit.

Seksioni i ndërfaqes vjen i pari, duke filluar me fjalën kyçe INTERFACE dhe duke përfunduar atje në modul, ku fillon seksioni i zbatimit dhe trupi. Në seksionin e ndërfaqes shpallen ato objekte (lloje, konstante, variabla, procedura dhe funksione - për to vendosen kokat) që janë të disponueshme për thirrjet e modulit. Në këtë rast, lejohet një konfuzion i shpeshtë i llojeve: erërat mund të shprehen pa një strukturë të caktuar, pa kuptim. Kur zgjedh këtë lloj kontrolli, programi i jashtëm lejohet të zbulojë ndryshimet në parametrat e llojit të caktuar për vlerën, në vend që të jetë në gjendje të mohojë aksesin në detajet e zbatimit të tij. Procedurat dhe funksionet në seksionin e ndërfaqes paraqiten në formën e para-titujve me parametra, ose pa trup. Ruajtja e seksionit të ndërfaqes së modulit është e tillë që është e mjaftueshme për të gjeneruar kodin e modulit vicorist. Ndryshimet bëhen në seksionin e ndërfaqes dhe janë globale, kështu që ato shfaqen në një kopje të vetme dhe janë të disponueshme në të gjitha pjesët e programit, i cili është pjesë e këtij moduli.

Seksioni i zbatimit ndjek seksionin e ndërfaqes dhe fillon me fjalën kyçe IMPLEMENTATION. Ai përmban përshkrime të procedurave dhe funksioneve të deklaruara në seksionin e ndërfaqes, si dhe përshkrime të llojeve, konstanteve, variablave, procedurave dhe funksioneve që janë të nevojshme për zbatimin e procedurave dhe funksioneve të ndërfaqes. Përshkrimi i procedurës ose funksionit të shpallur në seksionin e ndërfaqes është për shkak të vetë titullit, i cili është përgjegjës për konfuzionin. Trupi mund të ndikohet nga procedura dhe funksione të tjera të këtij moduli, si në pjesën e ndërfaqes ashtu edhe në seksionin e zbatimit. Ndryshimet e përmendura në seksionin e zbatimit janë, në fakt, globale (d.m.th., ekziston vetëm një shembull i një ndryshimi të tillë për të gjithë programin), por nuk janë të disponueshme pa procedurat dhe funksionet e përshkruara në seksionin e zbatimit të këtij moduli. si dhe ky organ. Megjithatë, në seksionin e ndërfaqes ka një përshkrim të shkurtër të llojeve, këto lloje do të përshkruhen në seksionin e zbatimit.

Trupi i modulit fillon me fjalën kyçe BEGIN, e cila është në nivelin më të lartë të përmbajtjes. Duhet të vendosni një kod programi që kompilohet një herë kur të instalohet moduli. Trupi mund të ngrihet për inicializimin, përvetësimin e vlerave të kallirit nga një modul i ndryshueshëm, shpërndarjen e burimeve për punën e tij, etj. Trupi i modulit mund të jetë i ndryshëm. Në një numër implementimesh Pascal, për shembull, Delphi, në vend të trupit të modulit, mund të ketë dy seksione (gjithashtu të nevojshme) - INICIALIZIMI dhe FINALIZIMI. Era e keqe shfaqet në fund të modulit pas fjalës kyçe të specifikuar. E para është seksioni i inicializimit, - kodi që do të shfaqet kur të instalohet moduli, tjetri - seksioni i finalizimit, - kodi që do të shfaqet kur moduli të çinstalohet. Seksioni i finalizimit mund të dalë nga veprimet, të dalë dhe të inicializohet - të fshijë objektet nga kujtesa, të mbyllë skedarët, të fshijë burimet.

Moduli përfundon me fjalën kyçe FUND i ndjekur nga një pikë.

Vikoristannya

Për të vikorizuar një modul, programin kryesor ose një modul tjetër me gabim, importoni modulin për të shmangur konfuzionin në lidhje me vikoristin tuaj. Është e rëndësishme të kërkoni udhëzime shtesë për lidhjen e moduleve, që është fjala kyçe USES, e ndjekur nga emrat e moduleve që duhet të lidhen. Udhëzimi i lidhjes duhet të shkojë direkt pas titullit të programit, ose pas fjalës kyçe INTERFACE, pasi lidhja është aktive në modul.

Modulet e lidhura me seksionin e ndërfaqes mund të zgjidhen nga secili modul - si pjesa e zbatimit ashtu edhe trupi. Përndryshe, seksioni i zbatimit mund të përdorë udhëzimin e lidhjes (ai që ndjek fjalën kyçe IMPLEMENTATION) për të vendosur emrat e moduleve që janë të lidhura, të cilat përfshihen në seksionin e ndërfaqes dhe të gjitha kërkesat për seksionin e zbatimit. Një nga arsyet për zgjedhjen e një liste të veçantë lidhjesh për seksionin e zbatimit është një situatë ku dy ose më shumë module janë të lidhura me njëri-tjetrin. Në mënyrë që mesazhet ciklike të mos fajësojnë konfuzionin e moduleve të tilla, njëri prej tyre është përgjegjës për lidhjen e tjetrit me seksionin e zbatimit.

Çdo zhurmë në seksionet e ndërfaqes së moduleve të objektit mund të kontrollohet në programin ku është lidhur moduli. Emrat e objekteve të importuara nga modulet e lidhura hiqen nga emrat e tyre dhe ato mund të modifikohen në çdo kohë. Nëse dy ose më shumë module të lidhura përmbajnë objekte të reja dhe përpiluesi nuk mund t'i ndajë ato, atëherë kur provoni vicorin e një objekti të tillë, do të shihni një gabim përpilimi - një emër i paqartë. Në këtë rast, programuesi duhet të vendosë kualifikimin e emrit - specifikoni emrin në format "<имя_модуля>.<имя_объекта>».

Problemet mund të lindin kur bëhet e nevojshme të zëvendësohen dy module të ndryshme me të njëjtin emër. Meqenëse modulet janë të disponueshme vetëm në pamjen e përpiluar (është e pamundur të ndryshohen emrat e tyre), ato nuk mund të importohen menjëherë. Nuk ka zgjidhje standarde për një problem të tillë në nivel lokal, por përpiluesit specifikë mund të gjejnë mënyra të tjera për ta kapërcyer atë, përveç mënyrës së caktimit të pseudonimeve për modulet e importuara dhe futjes së drejtpërdrejtë të cilit modul është në ndonjë skedar?

Përpilimi dhe rregullimi

Modulet janë krijuar për të siguruar kompilim të veçantë - përpiluesi nuk përpilon module të importuara në mënyrë që të përpilojë modulin që është vikoristi i tyre. Megjithatë, për të përpiluar saktë një modul, përpiluesi duhet të ketë akses në seksionin e ndërfaqes të të gjitha moduleve që janë duke u kompiluar. Ekzistojnë dy dallime, duke përfshirë qasjet komplekse për organizimin e një aksesi të tillë.

  • Modulet përpilohen në skedarë binare të një formati të veçantë (çdo përpilues ka të vetin), i cili ruan informacionin e raportimit në lidhje me objektet, mesazhet në seksionin e ndërfaqes, si dhe krijimet e mundshme gjatë përpilimit të kodit të objektit të modulit. Kur përpiloni një modul, përpiluesi do të sigurojë që të gjitha modulet që importohen të jenë tashmë të kompiluara dhe të disponueshme. Në këtë rast, duke qenë se modulet janë përpiluar saktë, tekstet e tyre dalëse nuk kërkohen në fazën e përpilimit.
  • Modulet përpilohen në skedarë binare fillestare dhe përfshihen nga lidhësi vetëm në fazën e kompozimit të skedarit fundor të programit që kompilohet. Për të përpunuar zhvillimin e moduleve, përpiluesi përpunon tekstin e këtyre moduleve drejtpërdrejt në gjuhën e daljes dhe më pas konverton vetëm seksionin e ndërfaqes së modulit. Meqenëse moduli i bibliotekës ofrohet në një formë të përpiluar (pa tekste të reja dalëse), atëherë skedari i kodit të daljes së modulit përfshihet me skedarin binar, i cili vendos seksionin e ndërfaqes. Kjo është e mjaftueshme që përpiluesi të analizojë saktë daljen e moduleve, dhe në fazën e përpilimit të programit, lidhësi thjesht përfshin skedarin binar në program.

Për funksionimin normal të modulit, mund t'ju duhet të kryeni hapat e mëposhtëm: inicializoni ndryshimet, hapni skedarët e kërkuar, shikoni kujtesën dhe burimet e tjera. Gjithçka mund të organizohet në trupin e modulit ose në seksionin e inicializimit. Veprimet që kanë përfunduar në inicializim duhet të mblidhen nga seksioni i finalizimit.

Programi i gjuhës Pascal u shpërbë në 1968-1971. Niklaus Wirth në Institutin e Informatikës së Cyrihut (Zvicër). Pochatkova meta zhvillimet e gjuhës PASCAL - nevoja për një mjet "për fillimin e programimit si një disiplinë sistematike". Sidoqoftë, efektiviteti ekstrem i gjuhës PASCAL u zbulua shpejt në një gamë të gjerë aplikacionesh, nga detyrat e vogla të një natyre llogaritëse deri te zhvillimi i sistemeve komplekse softuerike - përpiluesit, bazat e të dhënave, sistemet operative, etj. Sot Pascal bën pjesë në grupin e programeve më të përhapura dhe më të njohura në botë. Zbatimi numerik i gjuhës është praktik për të gjitha arkitekturat e makinerive janë zhvilluar dhjetëra dialekte dhe zgjerime të orientuara drejt problemeve të gjuhës Pascal.

Veçoritë e gjuhës janë tipizimi i saj dhe qartësia e veçorive të programimit strukturor (procedural). Pascal ishte një nga gjuhët e para të tilla. Sipas mendimit të M. Wirth, ajo mund të miratojë një program të disiplinuar, prandaj, për shkak të tipizimit të rreptë, Pascal i ka reduktuar në minimum paqartësitë e mundshme sintaksore dhe vetë sintaksa është e kuptueshme intuitivisht Këtu është hera e parë që ju takova.

Jo më pak, fillimisht ka disa mangësi: pamundësia e transferimit të funksioneve të vargjeve me jetë të ndryshueshme, mungesa e funksioneve normale të punës me memorie dinamike, biblioteka e hyrje-daljeve është e kufizuar, Ka mënyra për të lidhur funksionet e shkruara. sipas gjuhëve të tjera, ka veçori për përpilim të veçantë, etj. Është e nevojshme të theksohet se shumë mangësi mbi sigurime nuk shfaqen, por mund të bëhen avantazhe me fillimin e programit. Përveç kësaj, programi im kryesor në mesin e viteve '70 ishte Fortran, Ajo që Volodyov është e pasur me mangësi luksoze, dhe Pascal është një krok i rëndësishëm përpara.

Jo më pak, përparimi i gjuhës u nxit nga shumë organizata tregtare dhe jofitimprurëse që zhvillonin sisteme programimi të bazuara në gjuhën Pascal.

Një kompani mund të shihet midis të tjerave Borland, Turbo Pascal(më vonë Borland Pascal) i cili u zgjerua ndjeshëm, u shtua shumë gjuhë e shkurtër dhe u shtuan mundësi të reja. Mova u bë e pasur, por papritmas humbi tolerancën dhe forcën e saj.

Një krokë ​​e rëndësishme në zhvillimin e gjuhës dhe shfaqjen e një gjuhe të lirë Pascal GNU Pascal, i cili ka hequr nga vetja orizin e Paskaleve te tjere, qe ka lejuar qe populli te motivohet plotesisht nga metodat "brutale" te programimit, sidomos nga ato te fuqishmet, le te themi, Turbo Pascal, Dhe sigurimin e transportueshmërisë jashtëzakonisht të gjerë të programeve të shkruara në një program të ri (mbi 20 platforma të ndryshme, nën më shumë se 10 sisteme operative të ndryshme).

Për momentin, popullariteti i versioneve të tilla të filmit është duke u eksploruar. TMT Pascal, Pascal falasі GNU Pascal. Vazhdon të vikorist dhe Borland Pascal. Filmi Rozvitkom Borland Pascalє Objekti Pascal- versioni Pascal i filmit është zgjeruar me veçori programimi të orientuara nga objekti. Versionet e mbetura Borland Pascal formojnë bazën e programimit bazë Delfi.