Šta je bajt u Pascalu. Pascal

Kada opisujete varijablu, morate navesti njen tip. Tip varijable opisuje skup vrijednosti koje može poduzeti i radnje koje se mogu izvršiti na njoj. Deklaracija tipa specificira identifikator koji predstavlja tip.

Jednostavni tipovi se dijele na standardne (redne) i nabrojane (ograničene).

Standardni tipovi

Turbo Pascal ima četiri ugrađena standardna tipa: integer, real, boolean i char.

Cjelobrojni tip (cijeli broj)

Turbo Pascal ima pet ugrađenih tipova cijelih brojeva: shortint, integer, longint, byte i word. Svaki tip označava određeni podskup cijelih brojeva, kao što je prikazano u sljedećoj tabeli.

Ugrađeni cjelobrojni tipovi.

Domet

Format

8 bitova sa predznakom

16 potpisanih bitova

2147483648 +2147483647

32 bit potpisan

8 bita bez predznaka

16 bita bez predznaka

Aritmetičke operacije nad operandima cjelobrojnog tipa izvode se u skladu sa sljedećim pravilima:

  1. Tip cjelobrojne konstante je ugrađeni cjelobrojni tip s najmanjim rasponom koji uključuje vrijednost te cjelobrojne konstante.
  2. U slučaju binarne operacije (operacija koja koristi dva operanda), oba operanda se konvertuju u svoj zajednički tip pre nego što se operacija izvrši na njima. Uobičajeni tip je ugrađeni cjelobrojni tip, s najmanjim rasponom koji uključuje sve moguće vrijednosti oba tipa. Na primjer, zajednički tip za cijeli broj i cijeli broj dužine bajta je cijeli broj, a zajednički tip za cijeli broj i cijeli broj dužine riječi je dugi cijeli broj. Akcija se izvodi prema preciznosti generičkog tipa, a tip rezultata je generički tip.
  3. Izraz na desnoj strani operatora dodjeljivanja se evaluira bez obzira na veličinu varijable na lijevoj strani.

Operacije koje se izvode nad cijelim brojevima:

“+” - dodavanje

“-“ - oduzimanje

"*" - množenje

SQR - kvadratura

DIV - odbacuje frakcijski dio nakon dijeljenja

MOD - dobijanje celobrojnog ostatka nakon dijeljenja

ABS - broj modula

RANDOM(X) - dobijanje slučajnog broja od 0 do X

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

Varijable cjelobrojnog tipa su opisane na sljedeći način:

var lista varijabli: tip;

Na primjer: var a,r,n:integer;

Pravi tip (pravi)

Realni tip je podskup realnih brojeva koji se mogu predstaviti u formatu s pomičnim zarezom s fiksnim brojem cifara. Pisanje vrijednosti u formatu s pomičnim zarezom obično uključuje tri vrijednosti - m, b i e - tako da je m*b e, gdje je b uvijek 10, a m i e su cjelobrojne vrijednosti u stvarnom rasponu. Ove vrijednosti m i e dalje određuju raspon i preciznost stvarnog tipa.

Postoji pet tipova pravih tipova: real, single, double, exnend, comp. Pravi se tipovi razlikuju po rasponu i preciznosti vrijednosti koje su im povezane

Opseg i decimalne cifre za realne tipove

Domet

Brojevi

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 nad realnim brojevima:

  • Sve operacije su važeće za cijele brojeve.
  • SQRT(x) je kvadratni korijen od x.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X) je prirodni logaritam.
  • EXP(X) je eksponent od X (e x).
  • EXP(X*LN(A)) - eksponencijacija (A x).
  • Funkcije konverzije tipa:
    • TRUNC(X) - odbacuje frakcijski dio;
    • ROUND(X) - zaokruživanje.
  • Neka pravila aritmetičkih operacija:
    • Ako aritmetička operacija sadrži brojeve tipa real i integer, tada će rezultat biti tipa real.
    • Sve komponente izraza su napisane u jednom redu.
    • Koriste se samo zagrade.
    • Ne možete staviti dva aritmetička znaka u niz.

Varijable realnog tipa su opisane kako slijedi:

var lista varijabli: tip;

Na primjer:

var d,g,k:real ;

Vrsta karaktera (char)

Tip char je bilo koji znak zatvoren u apostrofe. Da biste apostrof predstavili kao karakternu varijablu, morate je staviti u apostrof: ''''.

Svaki znak ima svoj kod i broj. Serijski brojevi cifara 0,1..9 poredani su uzlaznim redom. Serijski brojevi slova su takođe poređani rastućim redom, ali ne moraju nužno da slede jedan za drugim.

Sljedeći znakovi poređenja primjenjuju se na podatke znakova:

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

Na primjer: 'A'< ‘W’

Funkcije koje se primjenjuju na znakovne varijable:

  1. ORD(X) - određuje serijski broj simbola X. ord (‘a’) =97 ;
  2. CHR(X) - identifikuje znak brojem. chr(97) =’a’;
  3. PRED(X) - vraća znak koji prethodi znaku X. pred (‘B’) =’A’;
  4. SUCC(X) - vraća znak nakon znaka X. succ (‘A’) =’B’;

Tip enuma

Nabrojani tip podataka je tako nazvan jer je specificiran kao lista konstanti u strogo definiranom redoslijedu iu strogo definiranoj količini. Nabrojani tip se sastoji od liste konstanti. Varijable ovog tipa mogu uzeti vrijednost bilo koje od ovih konstanti. Opis tipa nabrajanja izgleda ovako:

Tip<имя типа>=(lista konstanti) ; Var<имя переменной>:<имя типа>;

Gdje<список констант>- ovo je poseban tip konstanti, specificiranih odvojenih zarezima i imaju svoj serijski broj, počevši od 0.

Na primjer:

tip smjer=(sjever, jug, zapad, istok) ; mjesec=(jun, jul, avgust, januar) ; kapacitet=(kanta, bure, kanister, rezervoar) ; var rotacija:smjer; polazak:mjesec; zapremina:kapacitet; var turn:(sjever, jug, zapad, istok) ; polazak: (juni, jul, avgust, januar) ; zapremina: (kanta, bure, kanister, rezervoar);

Možete izvršiti sljedeće operatore dodjeljivanja:

Rotacija:=jug; odlazak:=Avgust; zapremina:=rezervoar;

ali ne možete raditi mješovite zadatke:

Polazak:=jug; volume:=Avgust;

Sljedeće funkcije se primjenjuju na varijable nabrojanog tipa:

1. ORD - serijski broj

2. PRED - prethodni element

3. SUCC - naknadni element.

PRED (bačva) = kanta; SUCC (jug) =zapad; ORD (juli) =1;

Varijable nabrojanog tipa se mogu porediti jer su poredane i numerisane. Dakle, izrazi: sjever< юг, июнь < январь имеют значения TRUE, а юг>zapad i tenk<бочка значение FАLSE.

Ograničeni tip

Ako varijabla ne prihvaća sve vrijednosti svog tipa, već samo unutar određenog raspona, onda se može smatrati varijablom ograničenog tipa. Svaki ograničeni tip je definiran nametanjem ograničenja na osnovne tipove.

Opisuje se kako slijedi:

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

U tom slučaju potrebno je poštovati sljedeća pravila:

  1. Obje ograničene konstante moraju biti istog tipa.
  2. Bilo koji jednostavan tip osim realnog može se koristiti kao osnovni tip.
  3. Početna vrijednost pri definiranju ograničenog tipa ne smije biti veća od konačne vrijednosti.
indeks tipa =0 ..63 ; slovo=’a’..’z’; var char1,char2:slovo; a,g:indeks ;

Možete ga odmah opisati u odjeljku opisa varijable:

var a,g:0 ..63 ; char1,char2:'a'..'z'. Osnove programiranja
Svaki profesionalac je nekada bio čajnik. Sigurno vam je poznato stanje kada „ne znate kako da počnete razmišljati da biste tako nešto smislili“. Verovatno ste se susreli sa situacijom u kojoj jednostavno ne znate odakle da počnete. Ova knjiga je namenjena upravo onim ljudima koji bi želeli da postanu programeri, ali nemaju pojma kako da krenu tim putem. ...

Gotovo svi cjelobrojni tipovi podataka su . Ovi tipovi podataka predstavljaju cijele brojeve unutar određenog raspona. Specifična imena cjelobrojnih tipova i raspona vrijednosti zavise od specifičnog programskog jezika, kompajlera i načina kompilacije. Više o tome možete saznati u dokumentaciji kompajlera.

Na primjer, tip podataka Integer u Delphiju ima raspon od -2147483648…2147483647, dok u Turbo Pascalu tip podataka Integer predstavlja brojeve u rasponu -35768…32767. U Free Pascal-u, raspon vrijednosti tipa Integer određuje odabrani način rada.

Pošto Lazarus koristi Free Pascal kompajler, sve što je rečeno o tipovima podataka u vezi sa Free Pascal važi i za Lazarus.

Dakle, Free Pascal-ovi cjelobrojni tipovi podataka su navedeni u Tabeli 13.1.

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

Tip Veličina, bajtovi Raspon vrijednosti
Byte 1 0…255
Shortint 1 -128…127
Smallint 2 -35768…32767
Riječ 2 0…65535
Integer 2 ili 4 Zavisi od načina kompilacije
Kardinale 4 0…4294967295
Longint 4 -2147483648…2147483647
Duga reč 4 0...4294967295
Int64 8 -9223372036854775808...9223372036854775807
QWord 8 0...18446744073709551615

BILJEŠKA
Tipovi u slobodnom Pascalu Int64 I QWord nisu! To znači da ih ne možete koristiti, na primjer, za indeksne varijable u petljama. Međutim, ovdje sam ih predstavio kako ih ubuduće ne bih posebno opisivao i sakupio sve Free Pascal integer tipove na jednom mjestu. Ako ne razumijete neke riječi, nemojte se uznemiravati. U dogledno vrijeme ću vam reći o svemu detaljnije.

A sada nekoliko objašnjenja o tabeli.

U koloni TYPE daju se identifikatori tipa podataka (ključne riječi koje indiciraju kompajleru kojem tipu određeni podatak pripada). Naučit ćete kako koristiti ove identifikatore u sljedećim lekcijama.

U koloni VELIČINA označava veličinu koju tip podataka zauzima u memoriji računara. Na primjer, pozitivan cijeli broj može biti predstavljen različitim tipovima: Byte, Riječ, Kardinale itd. Međutim, broj poput Kardinaleće zauzeti 4 bajta u memoriji, dok će broj kao Byte– samo 1 bajt. Stoga, ako sigurno znate da broj s kojim radite nikada neće uzeti vrijednost veću od 255, onda je bolje da ga definirate kao tip Byte, jer će to uštedjeti prostor u memoriji vašeg računara. Iako ovdje nije sve tako jednostavno (nijanse raspodjele memorije i drugih računarskih resursa su izvan dosega).

U koloni RANGE specificira raspon vrijednosti na kojima tip podataka radi. Na primjer, broj kao Byte može imati vrijednosti od 0 do 255.

Sada za praksu. Napišimo program koji prikazuje opsege vrijednosti svih cjelobrojnih tipova podataka. Izvorni kod za ovaj program je dat u nastavku:

Listing 13.1. Program za prikaz raspona cijelih brojeva. program td; ($mode objfpc)($H+) koristi ($IFDEF UNIX)($IFDEF UseCThreads) cthreads, ($ENDIF)($ENDIF) klase (možete dodati jedinice nakon ovoga); begin Writeln("Byte: ", Low(Byte), "..", High(Byte)); Writeln("Shortint: ", Low(Shortint), "..", High(Shortint)); Writeln("Smallint: ", Nisko(Smallint), "..", High(Smallint)); Writeln("Riječ: ", Niska(Riječ), "..", Visoka(Riječ)); Writeln("Integer: ", Low(Integer), "..", High(Integer)); Writeln("Kardinalno: ", Nisko(Kardinalno), "..", Visoko(Kardinalno)); Writeln("Duga: ", Niska(Duga), "..", Visoka(Duga)); Writeln("Duga riječ: ", Niska(Duga riječ), "..", Visoka(Duga riječ)); Writeln("Int64: ", Niska(Int64), "..", Visoka(Int64)); Writeln("QWord: ", Low(QWord), "..", High(QWord)); Readln; kraj.

Standardna funkcija Nisko definira minimalnu vrijednost tipa podataka. Funtskia Visoko definira maksimalnu vrijednost. Sa funkcijama WriteLn I ReadLn već se malo poznajete. O potprogramima (procedurama i funkcijama) ćemo detaljnije govoriti u odgovarajućem odjeljku.

Na kraju, reći ću vam kako se cijeli broj podataka zapisuje u programu. Da, kao i svugdje drugdje - samo napišite broj, bez navodnika ili ikakvih dodatnih simbola. Na primjer, ovako

10
178
35278

Istina, ovo se odnosi na brojeve u decimalnom brojevnom sistemu. Sigurno već znate da postoje i drugi sistemi. Najrašireniji sistemi brojeva su binarni, decimalni i heksadecimalni.

Free Pascal podržava četiri cjelobrojna formata:

  1. Decimalni zapis. Samo broj, kao 10.
  2. Heksadecimalni zapis. Broj sa prefiksom $. Na primjer, heksadecimalni broj $10 jednak je decimalnom broju 16.
  3. Oktalna notacija. Broj sa prefiksom &. Na primjer, oktal &10 je jednako decimalnom broju 8.
  4. Binarna notacija. Broj sa prefiksom %. Na primjer, binarni broj %10 jednak je decimalnom broju 2.

Zadaća:

Kreirajte program koji prikazuje opsege cjelobrojnih vrijednosti (listing 13.1). Sastavite program i pokrenite ga. Uvjerite se da ove vrijednosti odgovaraju onima prikazanim u tabeli 13.1.

U izvornom kodu programa pronađite liniju koja postavlja način kompilacije:

($mode objfpc)($H+)

U ovom redu, umjesto riječi objfpc napišite riječ tp. Odnosno, konačna linija bi trebala izgledati ovako:

($mode tp)($H+)

Pokrenite program. Pogledajte raspon vrijednosti tipa Integer. Izvucite zaključke.

Naučite da razmišljate kao programer, odnosno logički. Niko ti neće sve žvakati do penzije, kao ja sada. Morate se naviknuti da mislite svojom glavom. U suprotnom ćete skliznuti u „princip učenja majmuna“ i tada će vaše šanse da postanete odličan programer biti blizu nule. Da vam pomognem da ne skliznete u nivo "trpanja", povremeno ću ostavljati praznine u vašem učenju tako da pokušate sami da shvatite neke stvari.

Mnogo je bolje ako to sami shvatite pogrešna odluka, sami ćete pronaći grešku i sami je ispraviti, umjesto da uvijek koristite tuđa ispravna rješenja i glupo ih kopirate.

3.2. Jednostavni tipovi podataka u Turbo Pascalu 7

Jednostavan tip definira uređeni skup vrijednosti parametara. Turbo Pascal ima sljedeće grupe jednostavnih tipova:

  • cjelobrojni tipovi;
  • boolean tip;
  • tip karaktera;
  • nabrojani tip;
  • type-range;
  • pravi tipovi.

Svi jednostavni tipovi, sa izuzetkom realnih tipova, nazivaju se redni tipovi. Za količine rednih tipova definisane su standardne procedure i funkcije: Dec, Inc, Ord, Pred, Succ (vidi odeljak 13.1).

3.2.1. Cjelobrojni tipovi

Za razliku od Pascala, koji definira jedan cijeli broj, Integer, Turbo Pascal ima pet standardnih tipova cijelih brojeva: Shortint, Integer, Longint, Byte, Word. Karakteristike ovih tipova date su u tabeli. 2.

Tablica 2. Cjelobrojni tipovi podataka

Tip Domet Format Veličina u bajtovima
Shortint -128 .. 127 Ikona 1
Integer -32768 .. 32767 Ikona 2
Longint -2147483648 .. 2147483647 Ikona 4
Byte 0 .. 255 Unsigned 1
Riječ 0 .. 65535 Unsigned 2

3.2.2. Boolean tip

Standardni Boolean tip (veličina - 1 bajt) je tip podataka, čiji svaki element može imati samo dvije vrijednosti: Tačno i Netačno. U ovom slučaju važe sljedeći uslovi:
Lažni red (Netačan) = 0
Red (tačno) = 1
Succ (False) = Tačno
Pred (Tačno) = Netačno

Turbo Pascal 7.0 dodao je još tri logička tipa ByteBool (veličina - 1 bajt), WordBool (veličina - 2 bajta) i LongBool (veličina - 4 bajta). Uvedeni su radi ujedinjenja sa drugim programskim jezicima i sa Windows okruženjem. Njihova razlika u odnosu na standardni Boolean tip je stvarna vrijednost parametra ovog tipa, koja odgovara vrijednosti True. Za sve logičke tipove, vrijednost False odgovara broju 0, zapisanom u odgovarajućem broju bajtova. Vrijednost True za Boolean tip odgovara broju 1 zapisanom u njegovom bajtu, a za druge tipove vrijednost True odgovara bilo kojem broju osim nule (iako funkcija Ord u ovom slučaju daje vrijednost 1).

3.2.3. Tip karaktera

Standardni tip znakova Char definira cijeli skup ASCII znakova. Funkcija Ord iz vrijednosti tipa Char daje kod odgovarajućeg znaka. Vrijednosti tipa znakova se upoređuju prema njihovim kodovima.

3.2.4. Tip enuma

Nabrojani tip nije standardan i definiran je skupom identifikatora s kojima vrijednosti parametara mogu odgovarati. Lista identifikatora je navedena u zagradama, identifikatori su odvojeni zarezima:

tip
= ();)

Važno je kojim redosledom su navedeni identifikatori prilikom definisanja tipa, jer se prvom identifikatoru dodeljuje serijski broj 0, drugom - 1 itd. Isti identifikator se može koristiti u definiciji samo jednog nabrojanog tipa. Funkcija Ord iz vrijednosti nabrojanog tipa daje redni broj svoje vrijednosti.

Primjer. Nabrojani tip.

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

Boolean tip je poseban slučaj nabrojanog tipa:

tip Boolean = (False, True);

3.2.5. Tip-opseg

U bilo kojem ordinalnom tipu možete odabrati podskup vrijednosti, definiran minimalnim i maksimalnim vrijednostima, koji uključuje sve vrijednosti originalnog tipa koje se nalaze unutar ovih granica, uključujući i same granice. Ovaj podskup definira tip raspona. Tip raspona je specificiran specificiranjem minimalne i maksimalne vrijednosti, odvojenih sa dvije tačke:

tip = . . ;

Minimalna vrijednost pri definiranju ovog tipa ne bi trebala biti veća od maksimalne.

Primjer. Definicija tipova opsega.

tip
Tucet = 1..12; (brojevi od 1 do 12)
AddSub = Plus..Minus; (operacije sabiranja i oduzimanja)

3.2.6. Pravi tipovi

Za razliku od standarda jezika Pascal, gdje je definiran samo jedan realni tip Real, Turbo Pascal ima pet standardnih realnih tipova: Real, Single, Double, Extended, Comp. Za karakteristike ovih tipova pogledajte tabelu. 3. Tabela 3. Stvarni tipovi podataka

Tip Domet Broj značajnih cifara Veličina u bajtovima
Real 2.9*10-39..1.7*1038 11-12 6
Single 1.5*10-45..3.4*1038 7-8 4
Dvostruko 5.0*10-324.-1.7*10308 15-16 8
Prošireno 3.4*10-4932..1.1*104932 19-20 10
Comp -263+1..263-1 19-20 8

Comp tip je zapravo cjelobrojni tip proširenog raspona, ali se ne smatra rednim tipom.

Tipovi Single, Double, Extended i Comp mogu se koristiti u programima samo ako postoji aritmetički koprocesor ili ako je omogućen emulator koprocesora (pogledajte paragrafe 17.5.8 i 17.7.1).

Lekcija pokriva glavne standardne tipove podataka u Pascalu, koncept varijable i konstante; objašnjava kako se radi s aritmetičkim operacijama

Pascal je kucani programski jezik. To znači da su varijable koje pohranjuju podatke specifičnog tipa podataka. One. Program mora direktno naznačiti koji podaci se mogu pohraniti u određenu varijablu: tekstualni podaci, numerički podaci, ako su numerički, onda cjelobrojni ili razlomak, itd. To je prije svega potrebno kako bi računar „znao” koje operacije se mogu izvršiti sa ovim varijablama i kako ih pravilno izvesti.

Na primjer, dodavanje tekstualnih podataka, ili kako se to ispravno naziva u programiranju - konkatenacija - je uobičajeno spajanje nizova, dok se zbrajanje numeričkih podataka odvija po bitovima, osim toga, razlomci i cijeli brojevi se također različito sabiraju. Isto važi i za druge operacije.

Pogledajmo najčešće tipove podataka u Pascalu.

Cjelobrojni tipovi podataka u Pascalu

Tip Domet Potrebna memorija (bajtovi)
bajt 0..255 1
shortint -128..127 1
cijeli broj -32768.. 32767 2
riječ 0..65535 2
longint -2147483648..2147483647 4

To morate imati na umu kada pišete programe u Pascalu cijeli broj(prevedeno s engleskog u cjelini) najčešće se koristi, jer je raspon vrijednosti najtraženiji. Ako je potreban širi raspon, koristite longint(dugi cijeli broj, s engleskog prevedeno kao dug cijeli broj). Tip bajt u Pascal-u se koristi kada nema potrebe da se radi sa negativnim vrednostima, isto važi i za tip riječ(samo je raspon vrijednosti ovdje mnogo veći).

Primjeri kako su varijable opisane (deklarirane) u Pascalu:

program a1; var x,y:integer; (tip cjelobrojnog) myname:string; (tip stringa) begin x:=1; y:=x+16; myname:="Petar"; writeln("name: ",myname, ", age: ", y) end.

rezultat:
ime: Petar, godina: 17

Komentari u Pascalu

Obratite pažnju kako komentari se koriste u Pascalu. U komentarima primjera, tj. servisni tekst koji "nije vidljiv" kompajleru je zatvoren u vitičastim zagradama. Obično, komentare daju programeri kako bi objasnili dijelove koda.

Zadatak 3. Stanovništvo Moskve je a = 9.000.000 stanovnika. Stanovništvo Novog Vasjukija je b=1000 stanovnika. Napišite program koji utvrđuje razliku u broju stanovnika između dva grada. Koristite varijable

Pravi tipovi podataka u Pascalu

Realni brojevi u Pascalu i općenito u programiranju su naziv za razlomke.

Tip Domet Potrebna memorija (bajtovi)
pravi 2,9 * 10E-39 .. 1,7 * 10E38 6
single 1,5 * 10 E-45 .. 3,4 * 10E38 4
duplo 5 * 10E-324 .. 1,7 * 10E308 8
produženo 1,9 * 10E-4951 .. 1,1 * 10E4932 10

Realni tip u Pascalu je najčešće korišteni realni tip.

Gore su predstavljeni jednostavni tipovi podataka u Pascalu, koji uključuju:

  • Redni
  • Cijeli
  • mozgalica
  • karakter
  • Listable
  • Interval
  • Real

Za prikaz vrijednosti varijabli realnog tipa obično se koristi formatirani izlaz:

  • format koristi jedan broj, što ukazuje na broj pozicija dodijeljenih ovom broju u eksponencijalnom obliku;
  • p:=1234.6789; Writeln(p:6:2); (1234.68)

    Uz jednostavne tipove, jezik se također koristi strukturirani tipovi podataka i pokazivači, što će biti tema narednih lekcija o Pascalu.

    Konstante u Pascalu

    Često je u programu unaprijed poznato da će varijabla poprimiti određenu vrijednost i da je neće mijenjati tokom izvršavanja cijelog programa. U ovom slučaju morate koristiti konstantu.

    Deklaracija konstante u Pascal-u javlja se prije deklaracije varijabli (prije servisne riječi var) i izgleda ovako:

    Primjer konstantnog opisa u Pascalu:

    1 2 3 4 5 6 const x= 17 ; var moje ime: string ; begin myname: = "Petar" ; writeln("name: ", myname, ", age: ", x) end.

    const x=17; var myname:string; begin myname:="Petar"; writeln("name: ",myname, ", age: ", x) end.

    “Prekrasan” izlaz cijelih i realnih brojeva

    Kako bi se osiguralo da nakon prikaza vrijednosti varijabli postoje uvlake, tako da se vrijednosti ne "spajaju" jedna s drugom, uobičajeno je da se kroz dvotočku naznači koliko znakova je potrebno dati za prikaz vrijednost:


    Aritmetičke operacije u Pascalu

    Redoslijed operacija

    1. evaluacija izraza u zagradama;
    2. množenje, dijeljenje, div, mod s lijeva na desno;
    3. sabiranje i oduzimanje s lijeva na desno.

    Pascal standardne aritmetičke procedure i funkcije

    Ovdje se vrijedi detaljnije zadržati na nekim aritmetičkim operacijama.

    • Operacija inc u Pascalu, izgovara se inkrement, standardna je Pascal procedura koja znači povećanje za jedan.
    • Primjer inc operacije:

      x:=1; inc(x); (Povećava x za 1, tj. x=2) writeln(x)

      Složenija upotreba inc procedure:
      Inc(x,n) gdje je x redni tip, n je cjelobrojni tip; procedura povećava x za n.

    • Dec procedura u Pascalu radi slično: Dec(x) - smanjuje x za 1 (dekrement) ili Dec(x,n) - smanjuje x za n.
    • Operator abs predstavlja modul broja. Radi ovako:
    • a: =- 9; b:=abs(a) ; (b=9)

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

    • Operator div u Pascalu se često koristi, budući da brojni zadaci uključuju rad cijelog podjela.
    • Ostatak dijeljenja ili mod operator u Pascalu također je neophodan za rješavanje brojnih problema.
    • Zanimljiva je Pascalova standardna neparna funkcija, koja određuje da li je cijeli broj neparan. To jest, vraća true za neparne brojeve, false za parne brojeve.
    • Primjer korištenja neparne funkcije:

      var x:integer; početak x:=3; writeln(sqr(x)); (odgovor 9) kraj.

    • Operacija eksponencijalnosti u Pascalu nedostaje kao takav. Ali da biste podigli broj na stepen, možete koristiti funkciju exp.
    • Formula je: exp(ln(a)*n), gdje je a broj, n stepen (a>0).

      Međutim, u Pascal abc kompajleru, eksponencijacija je mnogo jednostavnija:

      var x:integer; početak x:=9; writeln(sqrt(x)); (odgovor 3) kraj.

    Zadatak 4. Poznate su dimenzije kutije šibica: visina - 12,41 cm, širina - 8 cm, debljina - 5 cm. Izračunajte površinu osnove kutije i njenu zapreminu
    (S=širina*debljina, V=površina*visina)

    Zadatak 5. Zoološki vrt ima tri slona i dosta zečeva, a broj zečeva se često mijenja. Slon treba da pojede sto šargarepa dnevno, a zec dve. Svako jutro, čuvar zoološkog vrta govori kompjuteru broj zečeva. Kompjuter, kao odgovor na ovo, mora reći dežurnom ukupan broj šargarepa koje danas treba hraniti zečevima i slonovima.

    Zadatak 6. To je poznato x kg slatkiša košta a rubalja Odredite koliko košta y kg ovih slatkiša, kao i po koliko kilograma slatkiša se može kupiti k rubalja Sve vrijednosti unosi korisnik.

    Najjednostavniji numerički tip podataka u Pascalu su cjelobrojni tipovi, dizajnirani za pohranjivanje cijelih brojeva. Cijeli brojevi u Pascalu se obično dijele na dva tipa: predznačeni i neoznačeni. Predpisani brojevi su cjelobrojni tip koji uključuje i pozitivne i negativne brojeve, brojevi bez predznaka su samo pozitivni brojevi.

    Ispod su dvije tabele sa tipovima cijelih brojeva. Prvo ćemo napisati predpisani tipovi cijelih brojeva:


    TipByteRaspon vrijednosti
    shortint1 -128 ... 127
    smallint2 -32768 ... 32767
    cijeli broj, longint4 -2147483648 ... 2147483647
    int648 -9223372036854775808 ... 9223372036854775807

    I to neoznačeni cjelobrojni tipovi:


    TipByteRaspon vrijednosti
    bajt1 0 ... 255
    riječ2 0 ... 65535
    duga reč, kardinal4 0 ... 4294967295
    uint648 0 ... 18446744073709551615

    Kao što vidite, prva kolona sadrži naziv tipa, druga - broj bajtova zauzetih u memoriji brojevima ovog tipa, a treća - raspon mogućih vrijednosti, respektivno. Postoje dvije vrste potpisanih brojeva - cijeli broj i longint (doslovno "cijeli broj" i "dugi cijeli broj"), koji su sinonimi. To jest, možete koristiti jedno ili drugo ime u odjeljku opisa.

    Slično tome, u drugoj tabeli (nenegativni celi brojevi u Pascalu), takođe postoje dva tipa celobrojnih sinonima od 4 bajta - longword i kardinal, pa koristite ili jedan ili drugi.

    Također možete primijetiti da ako brojeve prve tablice uslovno pomjerimo na desnu stranu u odnosu na nulu (premjestimo interval udesno tako da minimalni broj bude 0), onda ćemo dobiti intervale cijelih brojeva u drugoj tablici koja leži u odgovarajućim redovima. Dakle, ako u 1-bajtnom shortint tipu dodamo 128 lijevoj i desnoj granici, dobićemo tip bajta (0..255); ako u 2-bajtnom tipu smallint dodamo 32768 granicama, dobićemo odgovarajuću 2-bajtnu neoznačenu riječ tipa (0..65535), itd.

    Sve se to događa zato što se u neoznačenim tipovima cijelih brojeva brojevi mogu podijeliti tačno na dva: polovina brojeva na negativni dio, polovina na pozitivan dio. Zašto je onda u brojevima sa predznakom lijeva ivica u apsolutnoj vrijednosti 1 veća od desne granice? - pitate. Na primjer, u tipu shortint minimum je -128, dok je maksimum samo 127 (modulo 1 manje). A to je zato što desna strana takođe uključuje 0, i ovo morate znati i zapamtiti.

    Pa zašto se cijeli brojevi u Pascalu moraju podijeliti na toliko tipova? Zašto ne biste prošli, na primjer, sa najvećim od cjelobrojnih tipova u PascalABC.Net i Free Pascal – int64 – što je skoro 9 i po kvintiliona (!) i sa minusom i plusom? Da, iz jednostavnog banalnog (?) razloga - štednje memorije. Ako trebate da dodate dva mala jednobajtna pozitivna broja (0..255), a vi ste te brojeve opisali kao int64 (8 bajtova), onda je to zauzelo 8 puta više memorije. A ako je program velik i ima mnogo varijabli, onda uštede memorije naglo rastu. Štaviše, nema smisla koristiti tipove cijelih brojeva s predznakom ako se problem bavi veličinama kao što su dužina, masa, udaljenost, vrijeme itd.

    U odjeljku Abrahamyan Problem Book stranice (pododjeljak Integer), pogledajte upotrebu različitih tipova cijelih brojeva u Pascalu.