Kaj je bajt v Pascalu. Pascal

Ko opisujete spremenljivko, morate navesti njen tip. Vrsta spremenljivke opisuje nabor vrednosti, ki jih lahko sprejme, in dejanja, ki jih je mogoče izvesti na njej. Deklaracija tipa določa identifikator, ki predstavlja tip.

Preprosti tipi so razdeljeni na standardne (ordinalne) in oštevilčene (omejene).

Standardne vrste

Turbo Pascal ima štiri vgrajene standardne vrste: integer, real, boolean in char.

Vrsta celega števila (celo število)

Turbo Pascal ima pet vgrajenih tipov celih števil: shortint, integer, longint, byte in word. Vsaka vrsta označuje določeno podmnožico celih števil, kot je prikazano v naslednji tabeli.

Vgrajeni celoštevilski tipi.

Razpon

Oblika

8 bitov s predznakom

16 bitov s predznakom

2147483648 +2147483647

32-bitno podpisano

8 bitov brez predznaka

16 bitov brez predznaka

Aritmetične operacije nad operandi celega tipa se izvajajo v skladu z naslednjimi pravili:

  1. Tip celoštevilske konstante je vgrajeni tip celega števila z najmanjšim obsegom, ki vključuje vrednost te konstante celega števila.
  2. V primeru binarne operacije (operacije, ki uporablja dva operanda), se oba operanda pretvorita v svoj skupni tip, preden se na njima izvede operacija. Skupni tip je vgrajeni celoštevilski tip z najmanjšim obsegom, ki vključuje vse možne vrednosti obeh vrst. Na primer, skupni tip za celo število in celo število z dolžino bajta je celo število, skupni tip za celo število in celo število z dolžino besede pa je dolgo celo število. Dejanje se izvede v skladu z natančnostjo generičnega tipa in tip rezultata je generični tip.
  3. Izraz na desni strani operatorja dodelitve je ovrednoten ne glede na velikost spremenljivke na levi.

Operacije, izvedene na celih številih:

"+" - dodatek

“-” - odštevanje

"*" - množenje

SQR - kvadratura

DIV - zavrže ulomek po deljenju

MOD - pridobitev celega ostanka po deljenju

ABS - številski modul

RANDOM(X) - pridobitev naključnega števila od 0 do X

A:=100 ; b:=60 ; a DIV b rezultat - 1 a MOD b rezultat - 40

Celoštevilske spremenljivke so opisane na naslednji način:

var seznam spremenljivk: vrsta;

Na primer: var а,р,n:integer;

Realni tip (resnični)

Realni tip je podmnožica realnih števil, ki jih je mogoče predstaviti v obliki s plavajočo vejico s fiksnim številom števk. Pisanje vrednosti v formatu s plavajočo vejico običajno vključuje tri vrednosti - m, b in e - tako da je m*b e, kjer je b vedno 10 in sta m in e celoštevilski vrednosti v realnem obsegu. Ti vrednosti m in e nadalje določata obseg in natančnost pravega tipa.

Obstaja pet vrst realnih vrst: real, single, double, exnende, comp. Realni tipi se razlikujejo glede na obseg in natančnost z njimi povezanih vrednosti

Obseg in decimalne števke za realne vrste

Razpon

Številke

2,9x10E-39 do 1,7x10E 38

1,5x10E-45 do 3,4x10E 38

5,0x10E-324 do 1,7x10E 308

3,4x10E-493 do 1,1x10E 403

2E 63 do 2E 63

Operacije, izvedene na realnih številih:

  • Vse operacije so veljavne za cela števila.
  • SQRT(x) je kvadratni koren iz x.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X) je naravni logaritem.
  • EXP(X) je eksponent od X (e x).
  • EXP(X*LN(A)) - potenciranje (A x).
  • Funkcije pretvorbe tipov:
    • TRUNC(X) - zavrže ulomek;
    • ROUND(X) - zaokroževanje.
  • Nekaj ​​pravil aritmetičnih operacij:
    • Če aritmetična operacija vsebuje števila tipa real in integer, bo rezultat tipa real.
    • Vse sestavine izraza so zapisane v eni vrstici.
    • Uporabljajo se samo oklepaji.
    • Ne morete postaviti dveh aritmetičnih znakov zapored.

Spremenljivke realnega tipa so opisane na naslednji način:

var seznam spremenljivk: vrsta;

Na primer:

var d,g,k:real ;

Vrsta znaka (char)

Tip char je kateri koli znak, obdan z apostrofi. Če želite apostrof predstaviti kot znakovno spremenljivko, ga morate obdati v apostrof: ''''.

Vsak znak ima svojo kodo in številko. Zaporedne številke števk 0,1..9 so razvrščene v naraščajočem vrstnem redu. Zaporedne številke črk so prav tako razvrščene v naraščajočem vrstnem redu, vendar si ne sledijo nujno.

Za znakovne podatke veljajo naslednji primerjalni znaki:

> , < , >=, <=, <> .

Na primer: 'A'< ‘W’

Funkcije, ki veljajo za znakovne spremenljivke:

  1. ORD(X) - določa zaporedno številko simbola X. ord ('a') =97 ;
  2. CHR(X) - identificira znak s številko. chr(97) ='a';
  3. PRED(X) - vrne znak pred znakom X. pred ('B') ='A';
  4. SUCC(X) - vrne znak, ki sledi znaku X. succ ('A') ='B';

Enum vrsta

Oštevilčeni podatkovni tip se tako imenuje, ker je določen kot seznam konstant v strogo določenem vrstnem redu in v strogo določeni količini. Oštevilčen tip je sestavljen iz seznama konstant. Spremenljivke te vrste lahko prevzamejo vrednost katere koli od teh konstant. Opis vrste naštevanja je videti takole:

Vrsta<имя типа>=(seznam konstant) ; var<имя переменной>:<имя типа>;

Kje<список констант>- to je posebna vrsta konstant, ki so podane ločene z vejicami in imajo svojo zaporedno številko, ki se začne z 0.

Na primer:

tip smer=(sever, jug, zahod, vzhod) ; mesec=(junij, julij, avgust, januar) ; zmogljivost=(vedro, sod, kanister, rezervoar) ; var rotation:direction; odhod:mesec; prostornina: prostornina; var turn:(sever, jug, zahod, vzhod) ; odhod: (junij, julij, avgust, januar) ; prostornina: (vedro, sod, kanister, rezervoar);

Izvedete lahko naslednje operatorje dodelitve:

Vrtenje:=jug; odhod:=avgust; volumen:=tank;

vendar ne morete delati mešanih nalog:

Odhod:=jug; zvezek:=avgust;

Naslednje funkcije veljajo za spremenljivke oštevilčenega tipa:

1. ORD - serijska številka

2. PRED - prejšnji element

3. SUCC - naknadni element.

PRED (barrel) = vedro; SUCC (south) = zahod; ORD (julij) =1 ;

Spremenljivke oštevilčenega tipa je mogoče primerjati, ker so urejene in oštevilčene. Torej izrazi: sever< юг, июнь < январь имеют значения TRUE, а юг>zahod in tank<бочка значение FАLSE.

Omejen tip

Če spremenljivka ne sprejme vseh vrednosti svojega tipa, ampak samo znotraj določenega obsega, potem se lahko šteje za spremenljivko omejenega tipa. Vsak omejen tip je definiran z uvedbo omejitve na osnovne tipe.

Opisano je takole:

VRSTA<имя типа>=konstanta1 ..konstanta2

V tem primeru je treba upoštevati naslednja pravila:

  1. Obe omejeni konstanti morata biti iste vrste.
  2. Kot osnovni tip se lahko uporabi kateri koli preprost tip, razen realnega.
  3. Začetna vrednost pri definiranju omejenega tipa ne sme biti večja od končne vrednosti.
indeks tipa =0 ..63 ; črka='a'..'z'; var char1,char2:pismo; a,g:indeks;

Takoj ga lahko opišete v razdelku z opisom spremenljivke:

var a,g:0 ..63 ; char1,char2:'a'..'z'. Osnove programiranja
Vsak profesionalec je bil nekoč čajnik. Zagotovo poznate stanje, ko »ne veš, kako začeti razmišljati, da bi prišel do česa takega«. Verjetno ste že kdaj naleteli na situacijo, ko preprosto ne veste, kje začeti. Ta knjiga je namenjena prav takšnim ljudem, ki bi radi postali programer, pa nimajo prav nobene ideje, kako to pot začeti. ...

Skoraj vsi tipi celih podatkov so . Ti podatkovni tipi predstavljajo cela števila znotraj določenega obsega. Natančna imena celih vrst in obsegov vrednosti so odvisna od specifičnega programskega jezika, prevajalnika in načina prevajanja. Več o tem lahko izveste v dokumentaciji prevajalnika.

Na primer vrsta podatkov Celo število v Delphiju ima obseg -2147483648…2147483647, v Turbo Pascalu pa podatkovni tip Celo število predstavlja števila v območju -35768…32767. V Free Pascalu obseg vrednosti tipa Celo število določen z izbranim načinom.

Ker Lazarus uporablja prevajalnik Free Pascal, vse povedano o tipih podatkov v zvezi s Free Pascalom velja tudi za Lazarus.

Tako so celoštevilski podatkovni tipi Free Pascala navedeni v tabeli 13.1.

Tabela 13.1. Free Pascal Integer Data Types (Lazarus).

Vrsta Velikost, bajti Razpon vrednosti
Bajt 1 0…255
Shortint 1 -128…127
Smallint 2 -35768…32767
Beseda 2 0…65535
Celo število 2 ali 4 Odvisno od načina prevajanja
Kardinal 4 0…4294967295
Longint 4 -2147483648…2147483647
Dolga beseda 4 0...4294967295
Int64 8 -9223372036854775808...9223372036854775807
QWord 8 0...18446744073709551615

OPOMBA
Vnaša v Free Pascal Int64 in QWord niso! To pomeni, da jih ne morete uporabiti na primer za indeksne spremenljivke v zankah. Vendar sem jih tukaj predstavil, da jih v prihodnje ne bom posebej opisoval in da na enem mestu zberem vse cele tipe Free Pascal. Če nekaterih besed ne razumete, ne bodite prestrašeni. Čez čas vam bom povedal o vsem podrobneje.

In zdaj nekaj pojasnil o mizi.

V kolumni VRSTA podani so identifikatorji podatkovnih vrst (ključne besede, ki prevajalniku povedo, kateri vrsti določen podatek pripada). V naslednjih lekcijah se boste naučili uporabljati te identifikatorje.

V kolumni VELIKOST označuje velikost, ki jo tip podatkov zaseda v pomnilniku računalnika. Na primer, pozitivno celo število je lahko predstavljeno z različnimi vrstami: Bajt, Beseda, Kardinal itd. Vendar pa številka, kot je Kardinal bo zasedel 4 bajte v pomnilniku, medtem ko bo številka kot Bajt– samo 1 bajt. Če torej zagotovo veste, da število, s katerim delate, nikoli ne bo prevzelo vrednosti, večje od 255, potem je bolje, da ga definirate kot vrsto Bajt, saj boste tako prihranili prostor v pomnilniku računalnika. Čeprav tukaj ni vse tako preprosto (nianse porazdelitve pomnilnika in drugih računalniških virov presegajo obseg).

V kolumni RANGE določa obseg vrednosti, s katerimi deluje podatkovni tip. Na primer številka, kot je Bajt lahko sprejme vrednosti od 0 do 255.

Zdaj pa za prakso. Napišimo program, ki prikazuje obsege vrednosti vseh tipov celih podatkov. Izvorna koda za ta program je navedena spodaj:

Seznam 13.1. Program za prikaz obsegov celih števil. program td; ($mode objfpc)($H+) uporablja ($IFDEF UNIX)($IFDEF UseCThreads) cthreads, ($ENDIF)($ENDIF) razrede (po tem lahko dodate enote); begin Writeln("Bajt: ", nizek (bajt), "..", visok (bajt)); Writeln("Shortint: ", Nizek (Shortint), "..", Visok (Shortint)); Writeln("Smallint: ", Low(Smallint), "..", High(Smallint)); Writeln("Beseda: ", Nizka(Beseda), "..", Visoka(Beseda)); Writeln("Celo število: ", nizko (celo število), "..", visoko (celo število)); Writeln("Kardinalno: ", Nizko(Kardinalno), "..", Visoko(Kardinalno)); Writeln("Dolžina: ", Nizka(Dolžina), "..", Visoka(Dolžina)); Writeln("Longword: ", Low(Longword), "..", High(Longword)); Writeln("Int64: ", Low(Int64), "..", High(Int64)); Writeln("QWord: ", Low(QWord), "..", High(QWord)); Readln; konec.

Standardna funkcija Nizka definira najmanjšo vrednost podatkovnega tipa. Funtskia visoko določa največjo vrednost. S funkcijami WriteLn in ReadLn se že malo poznaš. O podprogramih (postopkih in funkcijah) bomo podrobneje govorili v ustreznem razdelku.

Na koncu vam bom povedal, kako so celoštevilski podatki zapisani v programu. Ja, tako kot povsod - samo napišite številko, brez narekovajev ali kakršnih koli dodatnih znakov. Na primer takole

10
178
35278

Res je, to velja za števila v decimalnem številskem sistemu. Zagotovo že veste, da obstajajo tudi drugi sistemi. Najbolj razširjeni številski sistemi so binarni, decimalni in šestnajstiški.

Free Pascal podpira štiri formate celih števil:

  1. Decimalni zapis. Samo številka, na primer 10.
  2. Šestnajstiški zapis. Številka s predpono $. Na primer, šestnajstiško število $10 je enako decimalnemu številu 16.
  3. Osmiški zapis. Številka s predpono &. Na primer, osmiško &10 je enako decimalnemu 8.
  4. Binarni zapis. Število s predpono %. Na primer, binarno število %10 je enako decimalnemu številu 2.

Domača naloga:

Ustvarite program, ki prikazuje obsege celoštevilskih vrednosti (izpis 13.1). Prevedite program in ga zaženite. Prepričajte se, da te vrednosti ustrezajo tistim, prikazanim v tabeli 13.1.

V izvorni kodi programa poiščite vrstico, ki nastavi način prevajanja:

($mode objfpc)($H+)

V tej vrstici namesto slov objfpc napiši besedo tp. To pomeni, da bi končna vrstica morala izgledati takole:

($mode tp)($H+)

Zaženite program. Oglejte si obseg vrednosti tipa Celo število. Potegnite zaključke.

Naučite se razmišljati kot programer, torej logično. Nihče ti ne bo vsega žvečil do penzije, kot jaz zdaj. Moraš se navaditi razmišljati s svojo glavo. V nasprotnem primeru boste zdrsnili v »opičji princip učenja« in takrat bodo vaše možnosti, da postanete odličen programer, blizu ničle. Da vam pomagam, da ne zdrsnete na raven »nabijanja«, bom občasno puščal vrzeli v vašem učenju, tako da boste poskušali nekatere stvari ugotoviti sami.

Veliko bolje je, če to ugotovite sami napačna odločitev, boste sami našli napako in jo sami popravili, namesto da vedno uporabljate pravilne rešitve drugih in jih neumno kopirate.

3.2. Enostavni podatkovni tipi v Turbo Pascalu 7

Preprost tip definira urejen niz vrednosti parametrov. Turbo Pascal ima naslednje skupine preprostih tipov:

  • celoštevilske vrste;
  • logični tip;
  • tip znaka;
  • našteti tip;
  • vrsta-razpon;
  • prave vrste.

Vsi enostavni tipi, razen realnih tipov, se imenujejo ordinalni tipi. Za količine ordinalnih vrst so definirani standardni postopki in funkcije: Dec, Inc, Ord, Pred, Succ (glej razdelek 13.1).

3.2.1. Celoštevilske vrste

Za razliko od Pascala, ki definira en sam celoštevilski tip, Integer, ima Turbo Pascal pet standardnih celih vrst: Shortint, Integer, Longint, Byte, Word. Značilnosti teh vrst so podane v tabeli. 2.

Tabela 2. Celoštevilski tipi podatkov

Vrsta Razpon Oblika Velikost v bajtih
Shortint -128 .. 127 Ikonično 1
Celo število -32768 .. 32767 Ikonično 2
Longint -2147483648 .. 2147483647 Ikonično 4
Bajt 0 .. 255 Nepodpisano 1
Beseda 0 .. 65535 Nepodpisano 2

3.2.2. Boolov tip

Standardni logični tip (velikost - 1 bajt) je podatkovni tip, katerega vsak element lahko sprejme samo dve vrednosti: True in False. V tem primeru veljajo naslednji pogoji:
False Ord (False) = 0
Ord (True) = 1
Succ (False) = True
Pred (True) = False

Turbo Pascal 7.0 je dodal še tri logične vrste ByteBool (velikost - 1 bajt), WordBool (velikost - 2 bajta) in LongBool (velikost - 4 bajti). Uvedeni so bili za poenotenje z drugimi programskimi jeziki in z okoljem Windows. Njihova razlika od standardnega logičnega tipa je dejanska vrednost parametra tega tipa, ki ustreza vrednosti True. Za vse logične tipe vrednost False ustreza številu 0, zapisanemu v ustreznem številu bajtov. Vrednost True za tip Boolean ustreza številu 1, zapisanemu v njegovem bajtu, za druge tipe pa vrednost True ustreza kateremu koli številu, ki ni nič (čeprav funkcija Ord v tem primeru poda vrednost 1).

3.2.3. Vrsta znaka

Standardni tip znakov Char definira celoten niz znakov ASCII. Funkcija Ord iz vrednosti tipa Char poda kodo ustreznega znaka. Vrednosti vrste znakov se primerjajo glede na njihove kode.

3.2.4. Enum vrsta

Oštevilčeni tip ni standarden in je definiran z nizom identifikatorjev, s katerimi se lahko ujemajo vrednosti parametrov. Seznam identifikatorjev je naveden v oklepajih, identifikatorji so ločeni z vejicami:

vrsta
= ();)

Pomembno je, v kakšnem vrstnem redu so identifikatorji navedeni pri definiranju tipa, saj je prvemu identifikatorju dodeljena zaporedna številka 0, drugemu 1 itd. Isti identifikator je lahko uporabljen pri definiciji samo enega oštevilčenega tipa. Funkcija Ord iz vrednosti oštevilčenega tipa poda zaporedno številko njene vrednosti.

Primer. Našteti tip.

vrsta Operat = (Plus, Minus, Mult, Divide);

Logični tip je poseben primer oštevilčenega tipa:

tip Boolean = (False, True);

3.2.5. Tipsko območje

V katerem koli ordinalnem tipu lahko izberete podmnožico vrednosti, določeno z najmanjšo in največjo vrednostjo, ki vključuje vse vrednosti izvirnega tipa, ki so znotraj teh meja, vključno s samimi mejami. Ta podmnožica definira vrsto obsega. Vrsta obsega je določena z navedbo najmanjše in največje vrednosti, ločene z dvema pikama:

tip =. . ;

Najmanjša vrednost pri definiranju te vrste ne sme biti večja od največje.

Primer. Opredelitev vrst obsegov.

vrsta
Ducat = 1..12; (številke od 1 do 12)
AddSub = Plus..Minus; (operacije seštevanja in odštevanja)

3.2.6. Pravi tipi

Za razliko od jezikovnega standarda Pascal, kjer je definiran samo en pravi tip Real, ima Turbo Pascal pet standardnih realnih tipov: Real, Single, Double, Extended, Comp. Za značilnosti teh tipov glejte tabelo. 3. Tabela 3. Pravi podatkovni tipi

Vrsta Razpon Število pomembnih številk Velikost v bajtih
Resnično 2.9*10-39..1.7*1038 11-12 6
Samski 1.5*10-45..3.4*1038 7-8 4
Dvojno 5.0*10-324.-1.7*10308 15-16 8
Razširjeno 3.4*10-4932..1.1*104932 19-20 10
Comp -263+1..263-1 19-20 8

Tip Comp je pravzaprav celoštevilski tip z razširjenim obsegom, vendar se ne šteje za ordinalni tip.

Tipe Single, Double, Extended in Comp je mogoče uporabiti v programih samo, če obstaja aritmetični koprocesor ali če je omogočen emulator koprocesorja (glejte odstavka 17.5.8 in 17.7.1).

Lekcija pokriva glavne standardne podatkovne tipe v Pascalu, koncept spremenljivke in konstante; pojasnjuje, kako delati z aritmetičnimi operacijami

Pascal je tipiziran programski jezik. To pomeni, da so spremenljivke, ki shranjujejo podatke, določene vrste podatkov. Tisti. Program mora neposredno navesti, kateri podatki so lahko shranjeni v določeni spremenljivki: besedilni podatki, številski podatki, če so številski, potem celo število ali ulomek itd. To je potrebno predvsem zato, da računalnik "ve", katere operacije je mogoče izvajati s temi spremenljivkami in kako jih pravilno izvesti.

Na primer, seštevanje besedilnih podatkov ali kot se temu pravilno reče v programiranju - veriženje - je običajno združevanje nizov, seštevanje številskih podatkov pa poteka bitno, poleg tega se različno seštevajo tudi ulomka in cela števila. Enako velja za druge operacije.

Oglejmo si najpogostejše vrste podatkov v Pascalu.

Celoštevilski podatkovni tipi v Pascalu

Vrsta Razpon Potreben pomnilnik (bajti)
bajt 0..255 1
shortint -128..127 1
celo število -32768.. 32767 2
beseda 0..65535 2
longint -2147483648..2147483647 4

Upoštevati morate, da pri pisanju programov v Pascalu celo število(prevedeno iz angleščine kot celote) je najpogosteje uporabljen, saj je obseg vrednosti najbolj iskan. Če potrebujete širši razpon, uporabite longint(dolgo celo število, prevedeno iz angleščine kot dolgo celo število). Vrsta bajt v Pascalu se uporablja, ko ni treba delati z negativnimi vrednostmi, enako velja za tip beseda(samo obseg vrednosti je tukaj veliko večji).

Primeri opisa (deklaracije) spremenljivk v Pascalu:

program a1; var x,y:celo število; (celoštevilski tip) myname:string; (vrsta niza) begin x:=1; y:=x+16; moje ime:="Peter"; writeln("ime: ",moje ime, ", starost: ", y) konec.

rezultat:
ime: Peter, starost: 17

Komentarji v Pascalu

Opazite, kako komentarji se uporabljajo v Pascalu. V komentarjih primerov, tj. storitveno besedilo, ki prevajalniku »ni vidno«, je v zavitih oklepajih. Običajno komentirajo programerji, da razložijo dele kode.

Naloga 3. Prebivalstvo Moskve je a = 9.000.000 prebivalcev. Prebivalstvo New Vasyukija je b=1000 prebivalcev. Napiši program, ki ugotovi razliko v številu prebivalcev med dvema mestoma. Uporabite spremenljivke

Pravi podatkovni tipi v Pascalu

Realna števila v Pascalu in v programiranju nasploh so ime za ulomka.

Vrsta Razpon Potreben pomnilnik (bajti)
resnično 2,9 * 10E-39 .. 1,7 * 10E38 6
samski 1,5 * 10 E-45 .. 3,4 * 10E38 4
dvojno 5 * 10E-324 .. 1,7 * 10E308 8
podaljšan 1,9 * 10E-4951 .. 1,1 * 10E4932 10

Pravi tip v Pascalu je najpogosteje uporabljen realni tip.

Predstavljeno je bilo zgoraj preprosti podatkovni tipi v Pascalu, ki vključujejo:

  • Vrstni red
  • cela
  • uganka
  • Znak
  • Listable
  • Interval
  • Resnično

Za prikaz vrednosti spremenljivk realnega tipa se običajno uporablja formatiran izhod:

  • oblika uporablja bodisi eno številko, ki označuje število položajev, dodeljenih tej številki v eksponentni obliki;
  • p:=1234,6789; Writeln(p:6:2); (1234,68)

    Poleg preprostih tipov jezik uporablja tudi strukturirani podatkovni tipi in kazalci, ki bo predmet naslednjih lekcij o Pascalu.

    Konstante v Pascalu

    Pogosto je v programu vnaprej znano, da bo spremenljivka prevzela točno določeno vrednost in je ne bo spreminjala med izvajanjem celotnega programa. V tem primeru morate uporabiti konstanto.

    Deklaracija konstante v Pascalu se pojavi pred deklaracijo spremenljivk (pred servisno besedo var) in je videti takole:

    Primer konstantnega opisa v Pascalu:

    1 2 3 4 5 6 const x= 17 ; var moje ime: niz; begin myname: = "Peter" ; writeln("ime: ", moje ime, ", starost: ", x) konec.

    const x=17; var moje ime: niz; begin myname:="Peter"; writeln("ime: ",moje ime, ", starost: ", x) konec.

    “Čudovit” izpis celih in realnih števil

    Da bi zagotovili, da po prikazu vrednosti spremenljivk obstajajo zamiki, tako da se vrednosti ne "združijo" med seboj, je običajno z dvopičjem navesti, koliko znakov je treba zagotoviti za prikaz vrednost:


    Aritmetične operacije v Pascalu

    Vrstni red operacij

    1. vrednotenje izrazov v oklepaju;
    2. množenje, deljenje, div, mod od leve proti desni;
    3. seštevanje in odštevanje od leve proti desni.

    Standardni aritmetični postopki in funkcije Pascal

    Tukaj se je vredno podrobneje posvetiti nekaterim aritmetičnim operacijam.

    • Operacija inc v Pascalu, izrazita inkrement, je standardni Pascalov postopek, ki pomeni povečanje za ena.
    • Primer delovanja inc:

      x:=1; inc(x); (Poveča x za 1, tj. x=2) writeln(x)

      Bolj zapletena uporaba postopka inc:
      Inc(x,n), kjer je x ordinalni tip, n je celoštevilski tip; postopek inc poveča x za n.

    • Postopek Dec v Pascalu deluje podobno: Dec(x) - zmanjša x za 1 (dekrement) ali Dec(x,n) - zmanjša x za n.
    • Operator abs predstavlja modul števila. Deluje takole:
    • a: =- 9; b:=abs(a) ; (b=9)

      a:=-9; b:=abs(a); (b=9)

    • Operator div v Pascalu se pogosto uporablja, saj številne naloge vključujejo operacijo celotnega deljenja.
    • Tudi preostanek deljenja ali mod operator v Pascalu je nepogrešljiv za reševanje številnih problemov.
    • Omembe vredna je Pascalova standardna liha funkcija, ki določa, ali je celo število liho. To pomeni, da vrne true za liha števila, false za soda števila.
    • Primer uporabe lihe funkcije:

      var x:celo število; začetek x:=3; writeln(sqr(x)); (odgovor 9) konec.

    • Operacija potenciranja v Pascalu manjka kot taka. Toda če želite dvigniti število na potenco, lahko uporabite funkcijo exp.
    • Formula je: exp(ln(a)*n), kjer je a število, n stopnja (a>0).

      Vendar pa je v prevajalniku Pascal abc potenciranje veliko preprostejše:

      var x:celo število; začetek x:=9; writeln(sqrt(x)); (odgovor 3) konec.

    Naloga 4. Mere škatle za vžigalice so znane: višina - 12,41 cm, širina - 8 cm, debelina - 5 cm Izračunajte površino dna škatle in njeno prostornino
    (S=širina*debelina, V=površina*višina)

    Naloga 5.Živalski vrt ima tri slone in kar nekaj zajcev, pri čemer se število zajcev pogosto spreminja. Slon naj bi pojedel sto korenčkov na dan, zajec pa dva. Vsako jutro oskrbnik živalskega vrta računalniku sporoči število zajcev. Računalnik mora kot odgovor na to spremljevalcu povedati skupno število korenčkov, s katerimi je treba danes nahraniti zajce in slone.

    Naloga 6. Znano je, da x kg sladkarij stane a rubljev Ugotovite, koliko stane l kg teh sladkarij in tudi, koliko kilogramov sladkarij je mogoče kupiti k rubljev Vse vrednosti vnese uporabnik.

    Najenostavnejši numerični podatkovni tip v Pascalu so celoštevilski tipi, namenjeni shranjevanju celih števil. Cela števila v Pascalu so običajno razdeljena na dve vrsti: predznačena in nepredznačena. Številke s predznakom so vrste celih števil, ki vključujejo pozitivna in negativna števila, števila brez predznaka so samo pozitivna števila.

    Spodaj sta dve tabeli s celimi vrstami. Najprej se izpišemo celoštevilski tipi s predznakom:


    VrstaBajtRazpon vrednosti
    shortint1 -128 ... 127
    smallint2 -32768 ... 32767
    integer, longint4 -2147483648 ... 2147483647
    int648 -9223372036854775808 ... 9223372036854775807

    In to vrste celih števil brez predznaka:


    VrstaBajtRazpon vrednosti
    bajt1 0 ... 255
    beseda2 0 ... 65535
    longword, kardinal4 0 ... 4294967295
    uint648 0 ... 18446744073709551615

    Kot lahko vidite, prvi stolpec vsebuje ime vrste, drugi - število bajtov, ki jih v pomnilniku zasedajo številke te vrste, in tretji - obseg možnih vrednosti. Obstajata dve vrsti predznačenih števil - integer in longint (dobesedno "celo število" in "dolgo celo število"), ki sta sinonima. To pomeni, da lahko v razdelku z opisom uporabite eno ali drugo ime.

    Podobno sta v drugi tabeli (nenegativna cela števila v Pascalu) tudi dve vrsti 4-bajtnih sinonimnih celih števil - dolga beseda in kardinalna, zato uporabite enega ali drugega.

    Opazite lahko tudi, da če pogojno premaknemo številke prve tabele na desno stran glede na nič (premaknemo interval v desno, tako da je najmanjše število 0), potem bomo dobili intervale celih števil v drugi tabeli, ki ležijo v ustreznih vrsticah. Torej, če v 1-bajtnem tipu shortint dodamo 128 na levo in desno mejo, dobimo bajtni tip (0..255); če v 2-bajtnem tipu smallint mejam dodamo 32768, dobimo ustrezno 2-bajtno nepredznačeno besedo tipa (0..65535) itd.

    Vse to se zgodi zato, ker lahko v nepredznačenih celih vrstah števila razdelimo natančno na dvoje: polovico števil na negativni del, polovico na pozitivni del. Zakaj je potem pri predpisanih številih levi rob v absolutni vrednosti za 1 večji od desnega roba? - vprašate. Na primer, v vrsti shortint je minimum -128, medtem ko je maksimum samo 127 (modulo 1 manj). In to zato, ker desna stran vključuje tudi 0, in to morate vedeti in si zapomniti.

    Zakaj je torej treba cela števila v Pascalu razdeliti na toliko vrst? Zakaj se na primer ne bi sprijaznili z največjim celoštevilskim tipom v PascalABC.Net in Free Pascal – int64 – ki je skoraj 9 in pol kvintiljonov (!) z minusom in plusom? Da, iz preprostega banalnega (?) razloga - varčevanje s pomnilnikom. Če morate dodati dve majhni enobajtni pozitivni števili (0..255) in ste ti števili opisali kot int64 (8 bajtov), ​​potem je to vzelo 8-krat več pomnilnika. In če je program velik in je veliko spremenljivk, se prihranki pomnilnika zelo povečajo. Poleg tega ni smisla uporabljati celoštevilskih tipov s predznakom, če se problem ukvarja s količinami, kot so dolžina, masa, razdalja, čas itd.

    V razdelku spletnega mesta Abrahamyan Problem Book (pododdelek Integer) opazujte uporabo različnih tipov celih števil v Pascalu.