Pascal
- Šis raksts ir par programmēšanas valodu. Par franču rakstnieku, matemātiķi, fiziķi skatīt rakstu Blēzs Paskāls.
Pascal (angļu: Pascal) ir augsta līmeņa programmēšanas valoda. Viena no visvairāk pazīstamajām programmēšanas valodām. To ļoti bieži pielieto programmējot[nepieciešama atsauce], un tā ir bāze, pamats daudzām citām programmēšanas valodām[nepieciešama atsauce]. Valodu izdomāja Niklauss Virts 1968.—1969. gadā.
Pascal tika izveidota kā valoda, ar kuru varētu mācīties programmēt (kaut gan, pēc Virta vārdiem, valodu nevar uzskatīt tikai kā mācību valodu, jo valoda, uz kuras nav iespējams uzrakstīt nevienu derīgu programmu, nevar tikt izmantota, lai mācītos programmēt). Valodas nosaukums ir dots slavena franču matemātiķa, fiziķa, literatora un filozofa Blēza Paskāla vārdā.
Pascal kompilators bija uzrakstīts pašā Pascal valodā.
Turbo Pascal ir vairāk kā 60 rezervētu vārdu, kuri lietojami tikai tiem paredzētajā nolūkā. Tie ir: absolute, begin, constructor, do, external, function, in, label, not, packed, public, shl, to, uses, with, and, break, continue, downto, far, goto, inline, mod, object, private, record, shr, type, var, xor, array, case, destructor, else, file, if, interface, near, of, procedure, repeat, string, unit, virtual, assembler, const, div, end, for, implementation, interrupt, nil, or, program, set, then, until, while.
Pascal valodas sastāvdaļas
labot šo sadaļuProgrammēšanas valodu veido 3 pamatsastāvdaļas:
- alfabēts - kādas valodas pierakstam izmantojamu un zināmā secībā sakārtotu rakstzīmju kopums;
- sintakse - noteikumi, kas nosaka konkrētā programmēšanas valodā pieļaujamās konstrukcijas, rakstzīmju izvietojumu programmā, kā arī izveidoto konstrukciju formu, bet nenosaka to saturu;
- semantika - atbilstība starp valodas elementiem (vai to konstrukcijām) un to jēdzienisko nozīmi.
Programmām ir noteikts pieraksts. Vispārīgā gadījumā programma Pascal sastāv no divām lielām daļām - definīciju daļas jeb apraksta daļas un programmas galvenā bloka jeb operatoru daļas, un to pieraksta šādi:
PROGRAM <programmas nosaukums>;
<definīcijas daļa jeb apraksta daļa>;
BEGIN
<programmas galvenais bloks jeb operatoru daļa>;
END.
Programmas nosaukumu veido no latīņu alfabēta burtiem un cipariem, bet pirmajam simbolam noteikti jābūt burtam. Piemēram, TestuRezultats, s25a, programma1 utt.
Aprakstu daļā datoram tiek sniegta informācija par programmā izmantotajām iezīmēm, konstantēm, mainīgajiem un mainīgo tipiem, kā arī par programmas funkcijām un procedūrām (TYPE, VAR, CONST, LABEL utt.).
Sintakse un valodas konstrukcijas
labot šo sadaļuPascal būtībā ir procedūru valoda, kura ietver sevī daudzas struktūras un konstrukcijas ar rezervētiem vārdiem, piemēram, if, then, else, while, for, u.c. Tomēr Pascal satur arī daudz iespēju informācijas un abstrakciju strukturēšanai, kuru nav Algol-60 programmēšanas valodā, piemēram, tipu, ierakstu, rādītāju, sarakstu un mainīgo.
Hello world
labot šo sadaļuJebkura programma Pascal valodā sākas no rezervēta vārda Program, aiz kura seko programmas nosaukums. Aiz nosaukuma liek semikolu. Pascal valodā bloks tiek norobežots ar vārdiem begin
un end
. Operatorus atdala ar semikolu, bet programmas beigās ir punkts. Pascal ir jutīgs uz simbolu reģistru.
Tādā veidā, pati vienkāršākā programma Pascal valodā varētu izskatīties šādi:
begin
end.
Programma neizpilda nekādas darbības un satur tikai tukšu operatoru bloku.
Programmas piemērs, kura izvada uz ekrāna teksta rindu «Hello, World!»:
Program HelloWorld(output);
begin
writeLn('Hello, World!'); { rindas ievades operators }
end.
Moduļi
labot šo sadaļuModuļi ir bibliotēkas, kas satur konstantes, datu tipu aprakstus, mainīgos, procedūras un funkcijas, kuras var ielādēt atmiņā no diska tikai tad, kad programmā tās speciāli tiek pieprasītas. Katrs modulis ir translējams atsevišķi un var tikt izmantots jebkurā programmā. Ja programmā citādi nav prasīts, tad atmiņā pēc noklusējuma ir tikai Pascal valodas biežāk izmantojamā daļa.
Programmas apjoms bez moduļiem nedrīkst pārsniegt 64 kb. Katrs modulis arī var būt 64 kb liels. Programmēšanas valoda Turbo Pascal ļauj izmantot 10 iepriekš izveidotus moduļus. Katras programmas vajadzībām var veidot arī savus moduļus.
Lai izmantotu kādu moduli, nepieciešams to izziņot moduļu aprakstā sadaļā Uses.
Moduļa struktūra
labot šo sadaļuModuļa struktūra ir analoģiska programmas struktūrai, tomēr ir dažas lielas atšķirības. Piemēram, apskatīsim moduli:
unit <identifikators>;
interface
uses <moduļu saraksts>; { neobligāts }
{ globālie apraksti }
implementation
uses <moduļu saraksts>; { neobligāts }
{ lokālie apraksti }
{ procedūru un funkciju realizācija }
begin
{ inicializācijas kods }
end.
Moduļa virsraksts sākas ar rezervētu vārdu unit, aiz kura seko moduļa nosaukums (identifikators) tieši tāpat, kā gadījumā ar programmas nosaukumu. Nākamais moduļa elements ir atslēgas vārds interface. Tas apzīmē interfeisa sekcijas sākumu modulī - moduļa daļa, kura ir pieejama citiem moduļiem vai programmām, kurās tas tiek izmantots. Programmas modulis var izmantot citus moduļus, tāpēc tos uzskaita operatorā uses. Operators uses (ja tāds vispār ir) var atrasties divās vietās. Pirmkārt, tas var sekot uzreiz pēc atslēgas vārda interface. Šajā gadījumā jebkuras konstantes un datu tipi, kuri aprakstīti šo moduļu interfeisa sekcijā, var tikt izmantoti jebkurā šī moduļa interfeisa daļas aprakstā. Otrkārt, tas var atrasties aiz atslēgas vārda implementation. Šajā gadījumā visi apraksti no šiem moduļiem var tikt izmantoti tikai realizācijas sekcijā.
Izmantošana
labot šo sadaļuLai izmantotu moduli, galvenajai programmai vai citam modulim jāimportē dotais modulis, t.i., jāsatur norāde uz šo moduli. Šo norādi pieraksta aiz atslēgas vārda USES, pēc kura ar komatiem atdalīti moduļu nosaukumi, kurus programma izmanto. Moduļu sarakstam jāatrodas programmas koda sākumā, tieši pēc programmas nosaukuma vai arī pēc atslēgas vārda INTERFACE, ja šos moduļus izmanto vēl cits modulis.
System
labot šo sadaļuModulis System nodrošina zema līmeņa iebūvēto programmu izpildi, piemēram, datu ievadi un izvadi, rindu apstrādāšanu, operācijas ar peldošo komatu, dinamiskās atmiņas pārvaldi.
Visi moduļi un programmas pēc noklusējuma vienmēr izmanto moduli System, tādēļ programmas tekstā var uz to neatsaukties un to nedefinēt atsevišķi.
DOS un WINDOS
labot šo sadaļuCRT
labot šo sadaļuŠis modulis ir paredzēts efektīva darba ar ekrānu un tastatūru organizēšanai. Modulis CRT satur ekrāna režīmu, paplašinātu tastatūras kodu lasīšanas, krāsu, logu un skaņas izmantošanas pārvaldes apakšprogrammas. Tas nodrošina tādu programmu rakstīšanu, kurās paredzēta konkrēta izvade uz ekrāna, kā arī skaņa.
Moduli CRT var izmantot tikai programmās, kas ir paredzētas darbam uz IBM personālajiem datoriem vai ir savietojami ar tiem.
Printer
labot šo sadaļuModulis PRINTER nodrošina to, ka standarta izvade tiek nosūtīta uz printeri, izmantojot operatorus write un writeln.
Overlay
labot šo sadaļuModulis OVERLAY satur procedūras, funkcijas un mainīgos, kurus izmanto pārklājumu pārvaldes programma. Šo moduli izmanto programmās, kurām ir pieprasīts vairāk atmiņas, nekā tās ir reāli datorā. Tādēļ programmas darba laikā atmiņā būs atrodama tikai tās daļa. Modulis kompilē programmu pa daļām, katru no tam ierakstot atsevišķā izpildāmajā failā.
Strings
labot šo sadaļuModulis STRINGS nodrošina iespēju programmā izmantot speciālas simbolu virknes, kas beidzas ar ASCII kodu 0 (null-terminated strings). Tas kopā ar paplašinātu sintaksi noder, lai rakstītu ar Windows lietotnēm saderīgas programmas.
Graph
labot šo sadaļuŠajā modulī aprakstītas procedūras un funkcijas, kas ir paredzētas darbam ar grafiskā režīma ekrānu, kā arī dažas iebūvētās konstantes un mainīgie, kurus var izmantot grafiskās programmās. Graph ir universāla apakšprogrammu bibliotēka darbam ar grafikiem. Šajā modulī ir grafisku attēlu apstrādātāji, kuri atbalsta IBM un ar tiem saderīgos personālajos datoros īpaši izplatītos grafiskos adapterus.
Datu tipi
labot šo sadaļuPascal valoda izmantotie datu tipi tiek iedalīti 3 grupās: skalārie, strukturētie un pārsūtāmie.
Skalāro datu tips
labot šo sadaļuSkalārie dati ir:
- veselo skaitļu tips (atslēgas vārds - integer);
- reālo skaitļu tips (atslēgas vārds - real);
- loģiskais tips (atslēgas vārds - boolean);
- simbolu tips (atslēgas vārds - char)
Veselo skaitļu tips - Turbo Pascal ir 5 veselo skaitļu tipi. Veselo skaitļu vērtības ir veselie skaitļi, kas var atrasties dažādos veselo skaitļu intervālos atkarībā no veselo mainīgo tipa nosaukuma. Veselo mainīgo vērtības atrodas konkrētā skaitļu intervālā. Arī pēc operāciju izpildīšanas rezultātam jāatrodas mainīgā dotā tipa vērtību intervālā. Ja rezultāta skaitliskā vērtība būs ārpus norādītā tipa intervāla robežām, rezultāts vienmēr būs nepareizs.
Tips | Diapazons | Aizņemtās atmiņas apjoms |
---|---|---|
shortint | -128 ... 127 | 1 baits |
integer | -32 768 ... 32 767 | 2 baiti |
longint | -2 147 483 648 ... 2 147 483 647 | 4 baiti |
byte | 0 ... 255 | 1 baits |
word | 0 ... 65 535 | 2 baiti |
Reālo skaitļu tipi - Turbo Pascal ir 5 reālo skaitļu datu tipi. Šo tipu skaitļiem atbilst reālā skaitļa jēdziens matemātikā. Reālos mainīgos izmanto aprēķinos un skaitliskas izteiksmes apstrādē. Reālo mainīgo vērtību pierakstā kā decimālciparu atdalītāju no veselā skaitļa izmanto punktu, nevis komatu.
Tips | Diapazons | Ciparu skaits mantisā | Aizņemtās atmiņas apjoms |
---|---|---|---|
real | ± 2,9 x 10-39...1,7 x 1038 | 11-12 | 6 baiti |
single | ± 1,5 x 10-45...1,7 x 1038 | 7 - 8 | 4 baiti |
double | ± 5,0 x 10-324...1,7 x 10308 | 15 - 16 | 8 baiti |
extended | ± 3,4 x 10-4932...1,1 x 104932 | 19 - 20 | 10 baiti |
comp | ± 9,2 x 1018 | 19 - 20 | 8 baiti |
Loģiskā tipa lielumiem var būt tikai divas vērtības: True (patiess) vai False (aplams).
Simbolu tips. Šī tipa vērtības ir galīga skaita sakārtotas simbolu tabulas elementi. Simbolu tipa (char) lielums var būt jebkurš simbols, kas atrodas datora simbolu kodu tabulā. Visi simboli sakārtoti augošā secībā pēc to kodiem, kas mainās no 0 līdz 255, piemēram, chr(65) ir burts A, bet chr(66) ir burts B.
Ja mainīgais apzīmē alfabēta vairāku simbolu virkni (piemēram, vārdu, nosaukumu, teikumu), tad tas tiek definēts ar tekstuālā mainīgā tipu String.
Pascal vide
labot šo sadaļuFunkcionālie taustiņi un to darbība
labot šo sadaļu- F1 - īsi paskaidrojumi par Turbo Pascal vidi
- F2 - atvērtās programmas saglabāšana
- F3 - programmas teksta nolasīšana
- F4 - programmas izpildīšana kļūdu labošanas režīmā līdz rindiņai, kurā atrodas kursors
- F5 - redaktora loga izklāšana pa visu ekrānu (1x) vai redaktora un programmas skaņotāja loga izklāsana (2x)
- F6 - programmas skaņotāja loga aizvēršana (1x) vai atgriešanās izejas stāvoklī (2x)
- F7 - programmas rindiņas izpildīšana kļūdu režīmā, ar pārslēgšanos uz apakšprogrammu
- F8 - programmas rindiņas izpildīšana kļūdu režīmā, neizpildot apakšprogrammu
- F9 - programmas un visu ar to saistīto moduļu kompilēšana
- F10 - izvēlņu joslas aktivizēšana uz ekrāna
Galvenās taustiņu kombinācijas
labot šo sadaļu- ALT + F9 - teksta redaktorā esošā moduļa kompilēšana
- CTRL + F9 - teksta redaktorā esošā moduļa kompilēšana un programmas izpildīšana
- ALT + X - iziešana no Turbo Pascal vides
- ALT + BACKSPACE - pēdējās veiktās darbības atcelšana
- SHIFT + INSERT - atlasītās teksta daļas iekopēšana datora atmiņā
- CTRL + INSERT - teksta ielīmēšana vietā, kur atrodas kursors
- SHIFT + DELETE - atlasītās teksta daļas izgriešana
- CTRL + C - kursora novietošana zem uzrakstītā teksta
- CTRL + PAUSE/BREAK - bezgalīga cikla pārtraukšana
- CLEAR + DELETE - atlasītā teksta dzēšana
- ALT + ENTER - ekrāna palielināšana, samazināšana
Standarti
labot šo sadaļuPēc Pascal lietošanas sākuma 1970. gadā tika pacelts jautājums par valodas standartizāciju. Valodas standartu izstrādāja Niklauss Virts un Ketlīna Jensena 1974. gadā. [1] Turpmāk bija pieņemts starptautiskais ISO standarts un amerikāņu ANSI standarts. Šobrīd izdala trīs dažādus standartus: Unextended Pascal (izejošais), Extended Pascal (paplašinātais), Object-Oriented Extensions to Pascal (objektu-orientēts Pascal paplašinājums).
Nosaukums | Variants | Izstrādātājs | Izlaišanas gads |
---|---|---|---|
Pascal Standard | izejošais | N. Virts, Ketlīna Jensena | 1974 |
Pascal Standard | izejošais | ISO 7185:1983 ANSI/IEEE 770X3.97:1983 |
1982 |
Unextended Pascal | izejošais | ISO 7185:1990 | 1989 |
Extended Pascal | paplašinātais | ANSI/IEEE 770X3.160:1989 | 1989 |
ISO/IEC 10206 | 1991 | ||
Object-Oriented Extensions to Pascal |
objektu-orientēts paplašinājums | ANSI/X3-TR-13:1994 | 1993 |
Vienkāršas matemātiskas funkcijas
labot šo sadaļuTurbo Pascal iebūvētās standartfunkcijas ir:
- ABS(x) ( |x| ) - mainīgā x absolūtā vērtība (modulis), argumenta tips Integer, funkcijas tips Integer
- SIN(x) ( sinx ) - mainīgā x sinusa vērtība (radiānos), argumenta tips Integer, funkcijas tips Real
- COS(x) ( cosx) - mainīgā x kosinusa vērtība (radiānos),
- ARCTANG(x) ( arctgx ) - mainīgā x arktangensa vērtība (radiānos), argumenta tips Real
- SQR(x) ( x2 ) - mainīgais x kvadrātā, argumenta tips Real, funkcijas tips Real
- SQRT(x) ( <sqrt>x</sqrt> ) - kvadrātsakne no mainīgā x vērtības,
- LN(x) ( lnx ) - mainīgā x naturāllogaritma vērtība,
- EXP(x) ( ex ) - mainīgā x eksponentfunkcija,
- PI - konstante π (3,1415...),
- FRAC(x) - mainīgā x (reāls skaitlis) decimāldaļa (piemēram, ja x = 10,34, tad FRAC(x)=0,34).
Izmantojot šīs standartfunkcijas programmu tekstā, jāatceras, ka funkcijas arguments vienmēr jāieslēdz iekavās.
Rakstot programmu, kurā tiek izmantoti mainīgie, tie obligāti jādefinē. To dara sadaļā, kas sākas ar rezervēto vārdu VAR, pēc kura tiek pierakstīti visi programmā izmantotie mainīgie. Aiz katra mainīgā jānorāda tā datu tips.
Tā kā valoda Pascal izšķir reālos (Real) un veselos (Integer) skaitļus, tad noderīgi zināt šādas funkcijas.
Reāliem mainīgajiem
- TRUNC(x) - veselās daļas iegūšana no reālā mainīgā x, atmetot decimālciparus. Piemēram, ja x = 2,87, tad TRUNC(2,87) = 2. Funkcijas argumenta tips ir Real, bet funkcijas tips - Integer.
- ROUND(x) - reālā mainīgā x veselās daļas noapaļošana līdz tuvākajam veselajam skaitlim. Piemēram, ROUND(2,87) = 3. Funkcijas argumenta tips ir Real , bet funkcijas tips - Integer
Veselo skaitļu mainīgajiem
- RANDOM(x) - nejauša skaitļa iegūšana intervālā no 0 līdz x.
- a DIV b - dalīšana veselās daļās, t.i. uzrādot dalījuma veselo rezultātu bez atlikuma.
- a MOD b - atlikuma noteikšana, dalot skaitli veselās daļās, t.i. rezultātā parādās nevis veselais daļu skaits dalījumā, bet gan neizdalīto veselo skaits.
- ODD(x) - nepārības pārbaude. Funkcijas argumenta tips ir Integer, bet funkcijas tips - Boolean.
Atsauces
labot šo sadaļu- ↑ PASCAL: User Manual and Report ISO Pascal Standard Kathleen Jensen and Niklaus Wirth, 4th edition, Springer Verlag New York, Inc. 1974, 1985, 1991
Ārējās saites
labot šo sadaļu- Informācija par Pascal, sakārtota pa daļām
- Palīga Pascal Arhivēts 2008. gada 28. februārī, Wayback Machine vietnē.
- Pascal vēsture Arhivēts 2010. gada 16. janvārī, Wayback Machine vietnē.
- Pascal teorija, programmu kodi un uzdevumi. Arhivēts 2010. gada 18. februārī, Wayback Machine vietnē.