Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Zanimljiv
  • Cjelobrojni i realni tipovi podataka u Pascalu. Pascal standardni aritmetički postupci i funkcije

Cjelobrojni i realni tipovi podataka u Pascalu. Pascal standardni aritmetički postupci i funkcije

Tip podataka definira skup važećih vrijednosti i skup važećih operacija.

Jednostavne vrste.

Jednostavni tipovi se dijele na REDNE i REALNE.

1. REDNE VRSTE , zauzvrat postoje:

cijelo

Pascal definira 5 tipova cjelobrojnih brojeva, koji se definiraju ovisno o predznaku i vrijednosti koju će varijabla poprimiti.

Upišite ime

Duljina (u bajtovima)

Raspon vrijednosti

32 768...+32 767

2 147 483 648...+2 147 483 647

b) logično

Naziv ove vrste je BOOLEAN. Booleove vrijednosti mogu biti jedna od Booleovih konstanti: TRUE (točno) ili FALSE (netočno).

c) simbolički

Ime ovog tipa je CHAR - zauzima 1 bajt. Vrijednost tipa znaka je skup svih PC znakova. Svakom znaku dodijeljen je cijeli broj u rasponu 0…255. Ovaj broj služi kao šifra za interni prikaz simbola.

2. REALNE VRSTE .

Za razliku od ordinalnih tipova, čije se vrijednosti uvijek preslikavaju na niz cijelih brojeva i stoga su predstavljene apsolutno precizno u PC-u, vrijednosti stvarnih tipova definiraju proizvoljan broj samo s određenom konačnom preciznošću ovisno o unutarnjem formatu realnog broja.

Duljina numeričkog tipa podataka, bajtovi

Naziv numeričkog tipa podataka

Količina značajne figure numerički tip podataka

Raspon decimalnog reda numeričkog tipa podataka

2*1063 +1..+2*1063 -1

STRUKTURIRANI TIPOVI

Strukturirani tipovi podataka definiraju uređenu kolekciju skalarnih varijabli i karakterizirani su tipom svojih komponenti.

Strukturirani tipovi podataka, za razliku od jednostavnih, definiraju skupove složena značenja s jednim zajedničkim imenom. Možemo reći da strukturni tipovi određuju određeni način formiranja novih tipova iz postojećih.

Postoji nekoliko metoda strukturiranja. Prema načinu organizacije i vrsti komponenti u složenim tipovima podataka razlikuju se sljedeći tipovi: regularni tip (nizovi); kombinirani tip (zapisi); tip datoteke(datoteke); više tipova; vrsta niza (nizovi); u Turbo Pascal jeziku verzija 6.0 i starije, uveden je tip objekta (objekti).

Za razliku od jednostavnih tipova podataka, podatke strukturiranog tipa karakterizira mnogostrukost elemenata koji čine ovaj tip, tj. varijabla ili konstanta strukturiranog tipa uvijek ima više komponenti. Svaka komponenta, pak, može pripadati strukturiranom tipu, tj. moguće je gniježđenje tipova.

1. Nizovi

Nizovi u Turbo Pascalu na mnogo su načina slični sličnim tipovima podataka u drugim programskim jezicima. Posebnost nizova je da su sve njihove komponente podaci iste vrste (po mogućnosti strukturirani). Ove se komponente mogu lako organizirati i bilo kojoj od njih može se pristupiti jednostavnim navođenjem serijskog broja.

Opis niza naveden je na sljedeći način:

<имя типа>= niz [<сп.инд.типов>] od<тип>

Ovdje<имя типа>- ispravan identifikator;

Array, of – rezervirane riječi (array, from);

<сп.инд.типов>- popis jedne ili više vrsta indeksa, odvojenih zarezima; uglate zagrade koje uokviruju popis sintaktički su zahtjev;

<тип>- bilo koja vrsta Turbo Pascala.

Bilo koji redni tipovi mogu se koristiti kao tipovi indeksa u Turbo Pascalu, osim LongInt i rasponskih tipova s ​​osnovnim tipom LongInt.

Dubina ugniježđivanja strukturiranih tipova općenito, a time i nizova, je proizvoljna, tako da broj elemenata u popisu indeksa tipa (veličina niza) nije ograničen, međutim, ukupna duljina unutarnjeg prikaza bilo kojeg niza ne može biti veći od 65520 bajtova.

2. Zapisi

Zapis je struktura podataka koja se sastoji od fiksnog broja komponenti koje se nazivaju polja zapisa. Za razliku od niza, komponente (polja) zapisa mogu biti različite vrste. Kako bi se omogućilo pozivanje na jednu ili drugu komponentu zapisa, polja su imenovana.

Struktura deklaracije vrste posta je:

< Imetip>=SNIMITE< zajednički pothvat. polja>KRAJ

Ovdje<имя типа>- ispravan identifikator;

ZAPIS, KRAJ – rezervirane riječi (zapis, kraj);

<сп.полей>- popis polja; je niz odjeljaka zapisa odvojenih točkom i zarezom.

3. Garniture

Skupovi su skup objekata iste vrste koji su međusobno logički povezani. Prirodu veza između objekata samo implicira programer i ni na koji način je ne kontrolira Turbo Pascal. broj elemenata uključenih u skup može varirati od 0 do 256 (skup koji ne sadrži elemente nazivamo praznim).Skupovi se razlikuju od nizova i zapisa upravo zbog nestalnosti broja njegovih elemenata.

Dva skupa se smatraju ekvivalentnima ako i samo ako su svi njihovi elementi isti, a redoslijed elemenata skupa je indiferentan. Ako su svi elementi jednog skupa također uključeni u drugi, kaže se da je prvi skup uključen u drugi.

Opis vrste skupa je:

< Imetip>=SKUP< baze. tip>

Ovdje<имя типа>- ispravan identifikator;

SET, OF – rezervirane riječi (set, of);

<баз.тип> - osnovni tip elementi skupa, koji mogu biti bilo kojeg rednog tipa osim WORD, INTEGER i LONGINT.

Za definiranje skupa koristi se tzv. konstruktor skupa: popis specifikacija elemenata skupa, odvojenih zarezima; popis je okružen uglatim zagradama. Specifikacije elemenata mogu biti konstante ili izrazi osnovnog tipa, kao i rasponski tip istog osnovnog tipa.

4. Turpije

Datoteka se odnosi ili na imenovano područje vanjska memorija Računalo ili logički uređaj potencijalni su izvor ili primatelj informacija.

Svaka datoteka ima tri karakteristične značajke

    ima naziv koji programu omogućuje rad s nekoliko datoteka istovremeno.

    sadrži komponente iste vrste. Tip komponente može biti bilo koji Turbo Pascal tip, osim datoteka. Drugim riječima, ne možete stvoriti "datoteku datoteka".

    opet duljina stvorena datoteka nije ni na koji način specificiran kada je najavljen i ograničen je samo kapacitetom vanjskih memorijskih uređaja.

Vrsta datoteke ili varijabla Vrsta datoteke može se postaviti na jedan od tri načina:

< Ime>= DATOTEKA OD< tip>;

< Ime>=TEKST;

<имя>= DATOTEKA;

Ovdje<имя>- naziv vrste datoteke (ispravan identifikator);

FILE, OF – rezervirane riječi (file, from);

TEXT – naziv standardne tekstualne vrste datoteke;

<тип>- bilo koja vrsta Turbo Pascala, osim datoteka.

Ovisno o načinu deklariranja, razlikuju se tri vrste datoteka:

· tipkane datoteke(postavljeno klauzulom FILE OF...);

· tekstualne datoteke(definirano tipom TEXT);

· netipizirane datoteke (definirane tipom DATOTEKE).

O pretvaranju Pascalovih numeričkih tipova podataka

U Pascalu su implicitne (automatske) konverzije tipova numeričkih podataka gotovo nemoguće. Iznimka je napravljena samo za integer tip, koji je dopušteno koristiti u izrazima tipa real. Na primjer, ako su varijable deklarirane ovako:

Var X: cijeli broj; Y: pravi;

zatim operater

bit će sintaktički ispravan, iako postoji cjelobrojni izraz s desne strane znaka dodjele i realna varijabla s lijeve strane, prevodilac će automatski pretvoriti numeričke tipove podataka. Automatska obrnuta konverzija iz realnog tipa u cjelobrojni tip nije moguća u Pascalu. Prisjetimo se koliko je bajtova alocirano za varijable tipa integer i real: 2 bajta memorije su alocirana za integer tip podataka integer, a 6 bajta za real. Postoje dvije ugrađene funkcije za pretvaranje realnog u cijeli broj: round(x) zaokružuje realni x na najbliži cijeli broj, trunc(x) skraćuje realni odbacivanjem razlomka.

Svi podaci - konstante, varijable, vrijednosti funkcija - karakterizirani su u Pascalu tipom podataka.

Definirajmo pojam tip podataka. Kao što je već poznato, svi programski objekti (varijable, konstante itd.) moraju biti opisani.

Opisi informiraju prevoditelja, prvo, o postojanju varijabli i drugih korištenih objekata, i drugo, oni ukazuju na svojstva tih objekata. Na primjer, opis varijable čija je vrijednost broj označava svojstva brojeva. Formalno, brojevi mogu biti cijeli i realni (frakcijski). U Pascalu, kao i u drugim programskim jezicima, brojevi se dijele na dvije vrste: cijeli(rezervirana riječ cijeli broj) i stvaran(rezervirana riječ pravi).

Odabir cijelih brojeva u zaseban tip objašnjava se činjenicom da u Računalo cijeli i realni brojevi različito se prikazuju: cijeli broj se može prikazati apsolutno točno, ali se realni broj neizbježno može prikazati s nekom konačnom pogreškom, koja je određena svojstvima prevoditelja.

Na primjer, neka je varijabla x tipa real i neka joj je vrijednost jednaka jedan: x=1. Odgovarajuća vrijednost u memoriji računala može biti 0,999999999, 1,000000001 ili 1,000000000. Ali ako se varijabla x deklarira kao varijabla cjelobrojnog tipa, tada će jedinica u računalu biti predstavljena apsolutno precizno i ​​varijabla x neće moći poprimiti stvarne (frakcijske) vrijednosti - uostalom, opisana je kao varijabla cjelobrojnog tipa.

Dakle, tip podataka definira:

  • interni prikaz podataka u memoriji računala;
  • skup vrijednosti koje količine ove vrste mogu poprimiti;
  • operacije koje se mogu izvesti na vrijednostima ovog tipa.

Uvođenje tipova podataka jedan je od osnovnih koncepata jezika Pascal, a to je da kada se izvodi operacija dodjele varijabli vrijednosti izraza, varijabla i izraz moraju biti istog tipa. Ovu provjeru izvodi kompilator, što uvelike pojednostavljuje traženje pogrešaka i dovodi do povećane pouzdanosti programa.

Mnogi tipovi podataka Turbo Pascal jezika mogu se podijeliti u dvije skupine:

  • standardni (unaprijed definirani) tipovi ;
  • korisnički definirane vrste (korisnički definirane vrste) .

Standardni Turbo Pascal tipovi uključuju:

  • integer type – cijeli broj;
  • pravi tip – pravi;
  • tip znaka – char;
  • boolean type – boolean;
  • vrsta niza – niz ;
  • pointer type – pokazivač;
  • vrsta teksta – tekst .

Prilagođene vrste podataka su razne kombinacije standardne vrste.

Prilagođene vrste uključuju:

Komentar. Moguća je i druga klasifikacija tipova podataka prema kojoj se tipovi dijele na jednostavne i složene.

Jednostavni tipovi uključuju: cjelobrojni tip, realni tip, znakovni tip, logički tip, nabrojani tip i intervalni tip.

Složen tip su različite kombinacije jednostavnih tipova (nizovi, zapisi, skupovi, datoteke itd.)

Standardne vrste

Standardni tip podataka definiran je samim jezikom Pascal. Kada koristite standardne tipove u programu, dovoljno je naznačiti pododjeljke potrebnih tipova (const, var), a zatim opisati konstante i varijable koje se koriste u programu. Nema potrebe za korištenjem pododjeljka Vrsta.

Na primjer, ako program koristi samo varijable:

i,j – cijeli broj (cijeli brojevi);

x,y - stvarno (stvarno);

t,s - char (karakter);

a,b – Boolean (logički),

tada je potreban samo pododjeljak varijabli - Var. Stoga se u opisnom dijelu programa deklaracije varijabli pišu na sljedeći način:

Cjelobrojni tipovi

Podaci ove vrste mogu prihvatiti samo cjelobrojne vrijednosti. U računalu su vrijednosti cjelobrojnog tipa predstavljene apsolutno precizno. Ako je varijabla negativna, ispred nje mora stajati znak “–”, ako je varijabla pozitivna, onda se znak “+” može izostaviti. Ovaj tip je neophodan u slučaju kada se neka veličina ne može prikazati približno kao realan broj. Na primjer, broj ljudi, životinja itd.

Primjeri pisanja cjelobrojnih vrijednosti: 17, 0, 44789, -4, -127.

Raspon promjene podataka cjelobrojnog tipa određen je s pet standardne vrste cijelih brojeva i prikazan je u tablici:

Tip Raspon Veličina u bajtovima
Shortint -128...+128 1
Cijeli broj -32768...32767 2
Longint -2147483648...2147483647 4
Bajt 0...255 1
Riječ 0...65535 2

Posljednje dvije vrste služe samo za predstavljanje pozitivni brojevi, a prva tri su i pozitivni i negativni brojevi.

U tekstu programa ili prilikom unosa podataka cjelobrojnog tipa, vrijednosti se pišu bez decimalne točke . Stvarne vrijednosti varijabli ne smije prekoračiti prihvatljive vrijednosti tip (Shortint, Integer, Longint, Byte, Word) koji je korišten za opis varijable. Mogući ekscesi tijekom izračuna nisu kontrolirani ni na koji način, što će dovesti do neispravan rad programa.

Primjer korištenja cjelobrojne varijable

Var a:cijeli broj; b:riječ; c:bajt; Započnite a:=300; (a je postavljeno na 300) b:=300; (b postavljen na 300) c:=200; (c je postavljen na 200) a:=b+c; (a je postavljeno na 500) c:=b; (Pogreška! Varijabla c može poprimiti samo vrijednosti od 255. Ovdje je varijabla c postavljena na 500, što će uzrokovati prekoračenje rezultata.) Kraj.

Pravi tipovi

Vrijednosti realnih tipova su približno predstavljene u računalu. Raspon promjene podataka pravi tip definirana je s pet standardnih tipova: stvarna (Real), jednostruka preciznost (Single), dvostruka preciznost (Double), proširena preciznost (Extended), složena (Comp) i prikazana je u tablici:

Tip Raspon Broj značajnih brojki Veličina u bajtovima
Stvaran 2,9E-39...1,7E+38 11-12 6
Singl 1,5E-45...3,4E+38 >7-8 4
Dvostruko 5E-324...1.7E+308 15-16 8
Prošireno 3.4E-4951...1.1E+4932 19-20 10
Comp -2E+63+1...+2E+63-1 19-20 8

Realni brojevi mogu se prikazati u dva formata: fiksni zarez i pokretni zarez.

Format za pisanje broja s fiksnom točkom isti je kao uobičajeni matematički zapis za decimalni broj s razlomački dio. Razlomak se odvaja od cijelog dijela točkom, na primjer

34.5, -4.0, 77.001, 100.56

Format zapisa s pomičnim zarezom koristi se pri pisanju vrlo velikih ili vrlo malih brojeva. U ovom formatu, broj ispred "E" se množi s brojem 10 na potenciju iza "E".

1E-4 1*10-4
3.4574E+3 3.4574*10+3
4.51E+1 4.51*10+1

Primjeri brojeva s pomičnim zarezom:

Broj Snimanje u Pascalu
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E+4
124 0,124E+3
124 1.24E+2
124 12.4E+1
124 1240E-1
124 12400E-2

U tablici od 5 do 9 redak prikazuje zapis istog broja 124. Promjenom položaja decimalne točke u mantisi (točka “lebdi”, otuda i naziv “zapisivanje broja s pomičnim zarezom”) i na istovremeno mijenjajući vrijednost narudžbe, možete odabrati najviše prikladan ulaz brojevima.

Primjer opisa varijabli realnog tipa.

Vrsta lika

Vrijednosti vrste znakova su znakovi koji se mogu upisati na tipkovnici računala. To vam omogućuje predstavljanje teksta u programu i izvođenje raznih operacija na njemu: umetanje, brisanje pojedinačnih slova i riječi, formatiranje itd.

Vrsta znaka je označena rezerviranom riječju Char i dizajnirana je za pohranu jednog znaka. Podaci o znakovima zauzimaju jedan bajt u memoriji.

Format deklaracije simboličke varijable:

<имя переменной>: Char;

Prilikom definiranja vrijednosti znakovne varijable, znak se piše u apostrofima. Osim toga, možete postaviti željeni simbol izravnim navođenjem brojčana vrijednost ASCII kod. U tom slučaju ispred broja koji označava ASCII kod potrebnog znaka morate staviti znak #.

Primjer korištenja varijabli znakovnog tipa:

Var c:char; (c je varijabla karakternog tipa) Begin c:=’A’; (varijabli c dodijeljen je znak 'A') c:=#65; (varijabli c također je dodijeljen znak A. Njen ASCII kod je 65) c:=’5’; (varijabli c dodijeljen je simbol 5, kraj. Ovdje 5 više nije broj)

Booleov tip

Logički tip podataka naziva se Boolean po engleskom matematičaru Georgeu Booleu, tvorcu područja matematike – matematičke logike.

Format za deklaraciju varijable tipa Boolean:

<имя переменной>: booleov;

Podaci ove vrste mogu imati samo dvije vrijednosti:

  • Istina istina;
  • Laž je laž.

Logički podaci naširoko se koriste u provjeri valjanosti određenih uvjeta i u usporedbi količina. Rezultat može biti istinit ili lažan.

Za usporedbu podataka predviđene su sljedeće relacijske operacije:

Primjer korištenja relacijskih operacija:

relacija 5>3, rezultat istinit;

relacija 5=3, rezultat netočan.

Primjer korištenja varijabli tipa Boolean.

Varijanta a,b:boolean; (a,b su varijable logičkog tipa) Begin a:=True; (varijabli a dodijeljena je vrijednost “true”) b:=false; (varijabla b je postavljena na false) Kraj.

Konstante

Cijeli brojevi, realni brojevi, znakovi, znakovni nizovi i logičke konstante mogu se koristiti kao konstante.

Konstanta mora biti deklarirana u svom opisnom dijelu korištenjem rezervirane riječi const.

Konstantni format deklaracije

Konst<имя константы>= <значение>;

Ako program koristi nekoliko konstanti, dopuštena je samo jedna. ključna riječ Const , opis svake konstante završava točkom i zarezom. Konstantni blok završava deklaracijom drugog odjeljka ili deklaracijom bloka izvršnih naredbi.

Konst (deklaracija o konstantnom odjeljku) godina=2003; (konstanta cjelobrojnog tipa, jer u zapisu nema decimalne točke) time=14.05; (konstanta realnog tipa) N=24; (konstanta cjelobrojnog tipa, jer u zapisu nema decimalne točke) P=3,14; (konstanta realnog tipa) A=true; (booleova konstanta) str1=’7’; (konstanta tipa znaka) str2=’A’; (konstanta tipa znaka) str3=’Turbo’; (konstantno vrsta niza) Var (deklaracija odjeljka varijable) X,y:cijeli broj; (varijable cjelobrojnog tipa)

Prilagođene vrste

Iz ukupnosti prilagođene vrste uzeti u obzir samo

  • nabrojani tip;
  • intervalni tip.

Ova dva tipa će nam trebati kada proučavamo nizove.

Tip enuma

Nabrojani tip podataka opisuje nove tipove podataka čije vrijednosti definira programer. Nabrojani tip određen je nabrajanjem vrijednosti koje može primiti. Svaka je vrijednost imenovana nekim identifikatorom i nalazi se na uokvirenoj listi zagrade. Nabrojani tip je korisnički definiran tip podataka, tako da njegova deklaracija tipa počinje rezerviranom riječi TYPE.

Format vrste enuma:

<имя типа>= (konstanta1, konstanta2,..., konstantaN);

Gdje
konstanta1 , konstanta2 ,..., konstantaN – uređen skup vrijednosti identifikatora koji se tretiraju kao konstante.

Primjer opisa nabrojane vrste:

Vrsta lopte=(jedan, dva, tri, četiri, pet); var t: lopta;

Ovdje je lopta naziv nabrojane vrste; jedan, dva, tri, četiri, pet – konstante; t je varijabla koja može uzeti bilo koju konstantnu vrijednost.

U enumeriranom tipu, konstanta je identifikator, pa se ne navodnici i ne može biti broj. Dakle, u nabrojenom tipu, konstanta je posebna vrsta konstante koja ne može biti:

  • konstante numeričkog tipa: 1, 2, 3, 4 itd.;
  • konstante znakovnog tipa: "a", "s", "1", "3" itd.;
  • konstante tipa string: "prvi", "drugi" itd.

Osim toga, vrijednosti ove vrste se ne primjenjuju aritmetičke operacije i standardne ulazne i izlazne procedure Read, Write.

Primjer korištenja numeriranih varijabli:

Tip dana = (ponedjeljak, utorak, srijeda, četvrtak, petak, subota, nedjelja); Var dan: dana; begin if day = Sunday then writeln('Danas je nedjelja!'); Kraj.

Smatra se da su elementi uključeni u definiciju nabrojanog tipa poredani redoslijedom kojim su nabrojani. Numeriranje počinje od nule. Stoga u navedenom primjeru dani u tjednu imaju sljedeće redne brojeve

Za softverska definicija Funkcija Ord() služi za određivanje rednog broja.

U našem primjeru, redni brojevi su jednaki:

Red(ponedjeljak) = 0;

Red(subota) = 5;

Red (nedjelja) = 6.

Intervalni tip

Ako varijabla ne prihvaća sve vrijednosti svog tipa, već samo vrijednosti sadržane u određenom rasponu, tada se ovaj tip podataka naziva intervalni tip. Tip intervala često se naziva ograničeni tip i tip raspona. Tip intervala definiran je granicama njegovih vrijednosti:

<минимальное значение>..<максимальное значение>

  • dva znaka ".." tretiraju se kao jedan znak, pa razmaci između njih nisu dopušteni;
  • lijeva granica raspona ne smije prelaziti desnu granicu.

Intervalni tip je korisnički definiran tip podataka, tako da njegova deklaracija tipa počinje funkcijskom riječi TYPE.

Primjer opisa tipa intervala:

Tip znamenke = 1..10; mjesec = 1..31; lat = 'A'..'Z';

Pascal tipovi podataka

Svi podaci (konstante, varijable, funkcijske vrijednosti ili izrazi) u Turbo Pascalu karakterizirani su svojim vrstama. Tip definira skup važećih vrijednosti koje objekt može imati, kao i skup važećih operacija koje se na njega mogu primijeniti. Tip također određuje format internog prikaza podataka u memoriji računala.

U Turbo Pascalu postoje sljedeći tipovi podataka.

1) Jednostavne vrste:

– pravi;

– simbolički;

– Boolean (logički);

– nabrojano;

– ograničen (raspon).

2) Kompozitni (strukturirani) tipovi:

– pravilni (nizovi);

– kombinirani (zapisi);

- datoteka;

– višestruki;

– niz;

– objekti.

3) Tipovi referenci (tipizirani i netipizirani pokazivači).

4) Postupovne vrste.

Turbo Pascal pruža mehanizam za stvaranje novih tipova podataka, zahvaljujući kojem ukupan broj tipova koji se koriste u programu može biti koliko god želite.

Cjelobrojni tip . Cjelobrojne vrijednosti su elementi podskupa cijelih brojeva. U Turbo Pascalu postoji pet tipova cijelih brojeva. Njihova imena, raspon vrijednosti, dužina prikaza u bajtovima dani su u tablici. 6.

Tablica 6

Cjelobrojni tipovi podataka

Cjelobrojne varijable opisane su korištenjem rezerviranih riječi iznad:

i, j, k: cijeli broj;

Podaci cjelobrojnog tipa pohranjuju se točno u memoriju. Na primjer, varijable tipa integer zauzimaju 2 bajta (16 bita) u memoriji, koji se dodjeljuju na sljedeći način: 1 bit se dodjeljuje za pohranjivanje predznaka broja (0 ako je broj pozitivan, a 1 ako je broj negativan) i 15 bita za spremanje broja binarni sustav Računanje. Maksimum decimalni broj, koji se može napisati kao 15-bitni binarni broj je 32767.

Kada koristite procedure i funkcije s cjelobrojnim parametrima, trebali biste se voditi "gniježđenjem" tipova, tj. gdje god se koristi riječ, bajt je dopušten (ali ne obrnuto), longint "uključuje" cijeli broj, koji zauzvrat uključuje shortint.

Za cjelobrojni tip definirano je pet osnovnih operacija čiji je rezultat također cijeli broj: +, -, *, div, mod (zbrajanje, oduzimanje, množenje, cjelobrojno dijeljenje i ostatak cjelobrojno dijeljenje). U aritmetičkim izrazima, operacije *, div, mod imaju veći prioritet od operacija +, -. Primjeri pisanja izraza:

Popis postupaka i funkcija primjenjivih na cjelobrojne tipove dan je u tablici. 7. Slova b, s, w, i, l označavaju izraze tipa byte, shortint, word, integer i longint; x je izraz bilo kojeg od ovih tipova; identifikatori vb, vs, vw, vi, vl, vx označavaju varijable odgovarajućih tipova. U uglate zagrade naveden je izborni parametar.

Tablica 7

Standardni postupci i funkcije primjenjive na cijele tipove

Apel Vrsta rezultata Akcijski
trbušnjaci (x) x Vraća modul x
Chr(b) Char Vraća znak prema njegovom kodu
Dec(vx[,i]) - Smanjuje vrijednost vx za i, a u nedostatku i – za 1
Inc(vx[,i]) - Povećava vrijednost vx za i, a u nedostatku i – za 1
Zdravo, ja) Bajt Vraća visoki bajt argumenta
Zdravo, ja) Bajt Isti
Lo(i) Bajt Vraća niži bajt argumenta
Lo(w) Bajt Isti
nepar(l) Bajt Vraća true ako je argument neparan broj
Nasumično (w) Isto kao parametar Povratak pseudoslučajni broj, ravnomjerno raspoređen u rasponu 0…(w-1)
Sqr(x) x Vraća kvadrat argumenta
Zamjena(i) Cijeli broj
Zamjena (w) Riječ Zamjena bajtova u riječi
Succ(x) Isto kao parametar Vraća sljedeću vrijednost cijelog broja, tj. x+1
Pred(x) Isto kao parametar Vraća prethodnu vrijednost cijelog broja, tj. x-1

Kod rada s cijelim brojevima, tip rezultata će odgovarati tipu operanda, a ako su operandi različitih cjelobrojnih tipova, tipu operanda koji ima najveći raspon vrijednosti. Moguće prekoračenje rezultata nije kontrolirano, što može dovesti do grešaka u programu.

Pravi tip. Vrijednosti realnih tipova definiraju proizvoljan broj s određenom konačnom preciznošću ovisno o internom formatu realnog broja. U Turbo Pascalu postoji pet pravih tipova (tablica 8).

Tablica 8

Pravi tipovi podataka

Realne varijable opisane su korištenjem rezerviranih riječi iznad:

Realni broj u memoriji računala sastoji se od 3 dijela:

Predznak broja;

Eksponencijalni dio;

Mantisa broja.

Mantisa ima duljinu od 23 (jednostruke) do 63 (proširene) binarne znamenke, što osigurava točnost od 7-8 za pojedinačne i 19-20 za proširene decimalne znamenke. Decimalna točka (zarez) podrazumijeva se ispred lijeve (najznačajnije) znamenke mantise, ali kada se radi s brojem, njezin se položaj pomiče ulijevo ili udesno u skladu s binarnim redoslijedom broja pohranjenog u eksponencijalnom dijelu. , stoga se operacije nad realnim brojevima nazivaju aritmetika pomičnog zareza (zareza).

Jednostrukom, dvostrukom i proširenom tipu može se pristupiti samo kada posebni režimi kompilacija. Da biste omogućili ove načine rada, odaberite stavku izbornika Mogućnosti, Kompajler... i omogućite opciju 8087/80287 u grupi Numerička obrada.

Posebno mjesto u Turbo Pascalu zauzima tip Comp koji se tretira kao realan broj bez eksponencijalnog i razlomka. Zapravo, Comp je veliki cijeli broj s predznakom koji pohranjuje 19...20 značajnih decimalnih znamenki. U isto vrijeme, Comp je u izrazima potpuno kompatibilan s bilo kojim drugim stvarnim tipovima: sve stvarne operacije definirane su na njemu, može se koristiti kao argument matematičke operacije itd.



Dati su realni brojevi decimalni sustav izračuni u jednom od dva oblika.

U oblik fiksne točke zapis se sastoji od cijelog i razlomka, međusobno odvojenih točkom, na primjer:

0.087 4.0 23.5 0.6

U oblik s pomičnim zarezom unos sadrži slovo E, što znači "pomnožiti s deset na potenciju", a potencija je cijeli broj, na primjer:

7E3 6,9E-8 0,98E-02 45E+04

Na objektima realnog tipa definirane su sljedeće operacije: +, -, *, /.

Operacije "*" i "/" imaju veći prioritet od operacija "+" i "-".

Ako je barem jedan operand realan, tada operacije +, -, *, / dovode do stvarnog rezultata. Operacija dijeljenja / dovodi do stvarnog rezultata čak i u slučaju dva cjelobrojna operanda, na primjer: 9/3 = 3,0.

Za rad sa stvarnim podacima mogu se koristiti standardne matematičke funkcije prikazane u tablici. 9. Rezultat ovih funkcija također je stvaran.

Tablica 9

Matematičke funkcije, rad sa stvarnim podacima

Varijable i konstante tipa REAL zabranjeno je koristiti:

– u funkcijama pred(x), succ(x), ord(x);

– kao indeksi polja;

– kao oznake u izjavama o prijenosu kontrole;

– kao kontrolne varijable (parametri ciklusa).

Za pretvaranje realnog broja u cijeli broj možete koristiti sljedeće funkcije:

trunc(x) – cijeli dio od x (x – real);

round(x) – zaokruživanje na najbliži cijeli broj (x je realan).

Vrsta lika. Varijable znakova opisuju se korištenjem rezervirane riječi char:

Vrijednosti ove vrste odabiru se iz uređenog skupa znakova (ASCII skup) koji se sastoji od 256 znakova. Svakom znaku dodijeljen je cijeli broj iz raspona 0..255. Na primjer, velika slova latinica A..Z imaju kodove 65..90, i mala slova– šifre 97..122.

Vrijednost varijable vrste znakova je jedan znak okružen apostrofima, na primjer:

'F' '8' '*'

Varijable znakova mogu se međusobno uspoređivati, a kodovi znakova se uspoređuju.

Postoje funkcije koje uspostavljaju korespondenciju između simbola i njegovog koda:

ord(c) – daje broj simbola c;

chr(i) – vraća znak broj i.

Ove su funkcije inverzne jedna drugoj.

Booleov tip. Booleove varijable opisane su korištenjem rezervirane riječi boolean:

p1, p2: booleov;

Varijable tipa Boolean imaju dvije vrijednosti: pravi(pravi), lažno(laž).

Ove vrijednosti poredane su na sljedeći način: lažno< true. false имеет serijski broj 0, istina ima indeksni broj 1.

Booleovim varijablama može se izravno dodijeliti vrijednost ili se mogu koristiti logički izraz. Na primjer,

a, d, g, b: Booleov;

Relacijske operacije (<, <=, >, >=, =, <>), primijenjen na cjelobrojne, realne i simboličke varijable, daju logičan rezultat.

Logičke operacije nad operandima logičkog tipa također daju logički rezultat (operacije su dane silaznim redoslijedom prioriteta) (za više detalja pogledajte tablice 3 i 5):

not – negacija (operacija NE);

i – logičko množenje (operacija I);

ili – logično zbrajanje (operacija OR);

xor – isključivi ILI.

Izraz (ne a) ima suprotno značenje od a.

Izraz (a i b) daje vrijednost true ako su samo a i b istiniti; u suprotnom, vrijednost ovog izraza je lažna.

Izraz (a ili b) ima vrijednost lažno ako samo a i b imaju vrijednost lažno; u suprotnom, rezultat je istinit.

Tip enuma. Nestandardni tip enumeracije specificiran je enumeracijom u obliku naziva vrijednosti koje varijabla može uzeti. Svaka vrijednost imenovana je nekim identifikatorom i nalazi se na popisu okruženom zagradama. Opći obrazac opis tipa enuma:

x = (w1, w2, …, wn);

gdje je x naziv tipa, w1, w2,…, wn su vrijednosti koje mogu poprimiti varijabla tipa X.

Ove vrijednosti su poredane w1

Sljedeće standardne funkcije primjenjuju se na argument w nabrojanog tipa:

uspjeh(w), pred(w), ord(w).

boja=(crvena, crna, žuta, zelena)

ww=(lijevo, gore, desno, dolje);

f: niz ww;

succ(d) = žuto;

Varijable a i b su tipa w. mogu uzeti jednu od tri vrijednosti, s on

Relacijske operacije primjenjive su na vrijednosti nabrojanog tipa: =,<>, <=, >=, <, >.

Dopušteno je navesti konstante nabrojanog tipa izravno u odjeljku var bez korištenja particije tip, Na primjer

c,d: (crveno, crno, žuto, zeleno);

Domet (ograničen) tip. Prilikom definiranja ograničenog tipa, navodite početne i konačne vrijednosti koje varijabla tipa raspona može uzeti. Vrijednosti su odvojene s dvije točke.

Opis ograničenog tipa je oblika

Ovdje je a naziv tipa, min, max su konstante.

Prilikom navođenja ograničenog tipa moraju se poštivati ​​sljedeća pravila:

– obje granične konstante min i max moraju biti istog tipa;

– ograničeni tip se stvara iz podataka osnovnog tipa, koji može biti cijeli broj, znak ili nabrojani tip. Na primjer:

col = crvena.. žuta;

slovo = 'a'..'f';

– Varijable ograničenog tipa mogu se deklarirati u odjeljku var bez pozivanja na odjeljak tipa:

– ograničeni tip nasljeđuje sva svojstva osnovnog tipa iz kojeg je kreiran;

– minimalno ograničenje uvijek mora biti manje od maksimalnog ograničenja.

Nizovi. Niz je složen tip koji je struktura koja se sastoji od fiksnog broja komponenti istog tipa. Tip komponente naziva se osnovni tip. Sve komponente niza mogu se jednostavno naručiti, a pristup bilo kojoj od njih može se omogućiti jednostavnim navođenjem serijskog broja. Opis niza u odjeljku var ima oblik:

a: niz od t2;

gdje je a ime niza, niz, od– službene riječi (koje znače “niz ...”), t1 – vrsta indeksa; t2 – tip komponente (osnovni tip).

Broj indeksa određuje veličinu niza. Indeksi mogu biti cjelobrojni (osim longint), znakovni, logički, enumeracijski i rasponski. Indeksi su odvojeni zarezima i u uglatim zagradama. Komponente polja mogu biti bilo koje vrste osim datoteke.

Primjer 1. Razmotrimo jednodimenzionalni niz C, čije su vrijednosti pet realnih brojeva:

4.6 6.23 12 -4.8 0.7

Opis ovog niza je sljedeći:

c: niz realnih;

Na temelju određene vrijednosti indeksa možete odabrati određenu komponentu niza (na primjer, C označava treći element niza C, tj. broj 12).

Primjer 2. Razmotrimo dvodimenzionalni niz B (matrica B), čija je vrijednost tablica cijelih brojeva:

Opis ovog niza je sljedeći:

b od cijelog broja;

Ovdje je b naziv polja, prvi indeks je broj retka i uzima vrijednosti od 1 do 2, drugi je broj stupca i uzima vrijednosti od 1 do 4. Na temelju specifičnih vrijednosti indeksa, možete odaberite određenu komponentu polja (na primjer, b označava element tablice koji se nalazi u prvom retku i trećem stupcu, tj. broj -4).

Indeksi mogu biti proizvoljni izrazi koji odgovaraju vrsti indeksa iz opisa polja:

a: niz realnih;

a[(i+1)*2] := 24;

Skup operacija nad elementima niza u potpunosti je određen tipom tih elemenata.

Vrsta niza. Vrsta niza je skup nizova znakova proizvoljne duljine (od nule do zadanog broja). Varijable string tipa opisuju se pomoću funkcijske riječi niz:

b: niz ;

Osobitosti:

– vrijednost string varijable može se unijeti pomoću tipkovnice, dodijeliti u operatoru dodjele ili pročitati iz datoteke. U ovom slučaju, duljina unesenog niza može biti bilo koja (manja od navedene veličine, jednaka veličini ili veća, u potonjem slučaju, dodatni znakovi se odbacuju); a:= 'Rezultati';

– dopušteno je koristiti operaciju ulančavanja u operatoru dodjele, budući da nizovi mogu dinamički mijenjati svoju duljinu: a:= a + ‘izračuni’;

– maksimalna duljina varijable niza je 255 znakova, ova oznaka duljine može se izostaviti:

a: niz;

a1: niz ;

Varijable a i a1 su iste (ekvivalentan opis).

– memorija za varijable tipa string je maksimalno dodijeljena, ali se koristi samo onaj dio memorije koji trenutno zauzimaju znakovi niza. Za opis varijable niza duljine n koristi se n+1 bajt memorije: n bajtova za pohranu znakova niza, n+1 bajt za pohranu trenutne duljine.

– operacije usporedbe definirane su na vrijednostima tipova nizova:< <= > >= = <>. Kratka žica uvijek je manja od duge. Ako su nizovi iste duljine, tada se uspoređuju kodovi znakova.

– pristup pojedinim elementima niza moguć je na isti način kao i pristup elementima niza: a, a. Broj elementa linije naveden je u uglatim zagradama.

Postupci i funkcije orijentirani na rad sa stringovima.

concat (s1, s2,…)– funkcija spajanja nizova, s1, s2,... - redaka, broj redaka može biti proizvoljan. Rezultat funkcije je niz. Ako je rezultirajući niz dulji od 255 znakova, niz se skraćuje na 255 znakova.

primjerak(i, indeks, broj)– funkcija izdvajanja niza iz izvornog niza s duljina računati znakova, počevši od broja znaka indeks.

izbrisati (s, indeks, broj)– postupak za uklanjanje iz niza s podniza duljine računati znakova, počevši od broja znaka indeks.

umetni (s1, s2, indeks)– postupak umetanja redaka s1 postrojiti s2, počevši od znaka s brojem indeks.

duljina(e)– funkcija za određivanje trenutne duljine niza, vraća broj jednak trenutnoj duljini niza.

pos(s1, s2)– funkcija pretraživanja u nizu s2 podnizovi s1. vraća broj pozicije prvog znaka podniza s1 u redu s2(ili 0 ako ova linija ne postoji).

val (st, x, kod)– postupak za pretvaranje niza s u cjelobrojnu ili realnu varijablu x. Parametar kodirati sadrži 0 ako je konverzija bila uspješna (i in x rezultat pretvorbe) ili broj pozicije retka gdje je otkriven pogrešan znak (u ovom slučaju vrijednost x ne mijenja).

Kompatibilnost i pretvorba tipa. Turbo Pascal je tipizirani jezik. Izgrađen je na temelju strogog pridržavanja koncepta tipa, prema kojem su sve operacije koje se koriste u jeziku definirane samo na operandima kompatibilnih tipova.

Dvije se vrste smatraju kompatibilnima ako:

– oba su istog tipa;

– oboje su stvarni;

- oba su netaknuta;

– jedan tip je tip raspona drugog tipa;

– oba su tipovi raspona istog osnovnog tipa;

– oba su skupovi sastavljeni od elemenata iste osnovne vrste;

– oba su upakirani nizovi (definirani prethodnom riječi packed) iste maksimalne duljine;

– jedan je string tipa, a drugi je string ili karakter;

– jedan tip je bilo koji pokazivač, a drugi je pokazivač na njemu povezani objekt;

– oba su proceduralni tipovi s istim tipom rezultata (za tip funkcije), brojem parametara i tipom međusobno odgovarajućih parametara.

Kompatibilnost tipa posebno je važna u operatorima dodjele. Neka je t1 tip varijable, a t2 tip izraza, odnosno vrši se dodjela t1:=t2. Ova dodjela je moguća u sljedećim slučajevima:

– t1 i t2 su isti tip, a ovaj tip se ne odnosi na datoteke, nizove datoteka, zapise koji sadrže polja datoteka ili nizove takvih zapisa;

– t1 i t2 su kompatibilni redni tipovi i vrijednost t2 je u rasponu moguće vrijednosti t1;

– t1 i t2 su realni tipovi, a vrijednost t2 leži u rasponu mogućih vrijednosti t1;

– t1 – realni tip i t2 – cjelobrojni tip;

– t1 – linija i t2 – znak;

– t1 – niz i t2 – upakirani niz;

– t1 i t2 – kompatibilni upakirani nizovi;

– t1 i t2 su kompatibilni skupovi i svi članovi t2 pripadaju skupu mogućih vrijednosti t1;

– t1 i t2 su kompatibilni pokazivači;

– t1 i t2 su kompatibilni proceduralni tipovi;

– t1 je objekt, a t2 njegov potomak.

U programu se podaci jedne vrste mogu pretvoriti u podatke druge vrste. Ova konverzija može biti eksplicitna ili implicitna.

Eksplicitna konverzija tipa poziva posebne funkcije konverzije čiji argumenti pripadaju jednoj vrsti, a čije vrijednosti pripadaju drugoj. Primjer su već razmatrane funkcije ord, trunc, round, chr.

Implicitna konverzija moguća je samo u dva slučaja:

– u izrazima sastavljenim od realnih i cjelobrojnih varijabli, potonje se automatski pretvaraju u realni tip, a cijeli izraz kao cjelina dobiva realni tip;

– isto memorijsko područje naizmjenično se tretira kao da sadrži podatke jedne ili druge vrste (kombiniranje podataka različitih vrsta u memoriji).

Federalna agencija za obrazovanje

Esej

"VRSTE PODATAKA U PASCALU"

1. Vrste podataka

Svaki podatak, tj. konstante, varijable, svojstva, funkcijske vrijednosti ili izrazi karakterizirani su svojim vrstama. Tip definira skup važećih vrijednosti koje objekt može imati, kao i skup važećih operacija koje se na njega mogu primijeniti. Osim toga, tip također određuje format internog prikaza podataka u memoriji osobnog računala.

Općenito, jezik Object Pascal karakterizira razgranata struktura tipova podataka (slika 1.1). Jezik pruža mehanizam za stvaranje novih tipova, zahvaljujući kojem ukupan broj tipova koji se koriste u programu može biti koliko god želite.

Podaci koji se obrađuju u programu dijele se na varijable, konstante i literale:

Konstante predstavljaju podatke čije su vrijednosti postavljene u odjeljku konstantne deklaracije i ne mijenjaju se tijekom izvođenja programa.

Varijable su deklarirane u odjeljku za deklaraciju varijabli, ali za razliku od konstanti, one dobivaju svoje vrijednosti tijekom izvođenja programa, a te se vrijednosti mogu mijenjati. Konstante i varijable mogu se nazivati ​​imenom.

Doslovno nema identifikator i predstavljen je izravno vrijednošću u tekstu programa.

Tip definira skup vrijednosti koje elementi podataka mogu poprimiti i skup dopuštenih operacija nad njima.

Ovo i četiri sljedeća poglavlja daju detaljne opise svake vrste.

1.1 Jednostavni tipovi

Jednostavni tipovi uključuju redne, stvarne i tipove datuma i vremena.

Redne vrste razlikuju se po tome što svaki od njih ima konačan broj mogućih vrijednosti. Ove vrijednosti se mogu poredati na određeni način (otuda i naziv tipova) i stoga se svakoj od njih može pridružiti neki cijeli broj - redni broj vrijednosti.

Pravi tipovi, strogo govoreći, također imaju konačan broj vrijednosti, što je određeno formatom interne reprezentacije realnog broja. Međutim, broj mogućih vrijednosti stvarnih tipova je toliko velik da nije moguće svakom od njih pridružiti cijeli broj (njegov broj).

Vrsta datum-vrijeme dizajniran za pohranjivanje datuma i vremena. Zapravo, za te svrhe koristi pravi format.

1.1.1 Redni tipovi

Redni tipovi uključuju (vidi sliku 1.1) cjelobrojne, logičke, znakovne, nabrojane i rasponske tipove. Na bilo koju od njih može se primijeniti funkcija Ord(x), koja vraća redni broj vrijednosti izraza X.


Riža. 1.1 - Struktura tipa podataka

Za cijeli vrste, funkcija ord(x) vraća vrijednost samog x, tj. Ord(X) = x za x koji pripada bilo kojem cijeli tip. Primjenom Ord(x) na logično , simboličan i nabrojiv vrste daje pozitivan cijeli broj u rasponu od 0 do 1 ( Booleov tip), od 0 do 255 ( simbolična), od 0 do 65535 ( nabrojiv). Tip-raspončuva sva svojstva osnovnog ordinalnog tipa, pa rezultat primjene funkcije ord(x) na njega ovisi o svojstvima ovog tipa.

Također možete primijeniti funkcije na redne tipove:

pred(x)- vraća prethodnu vrijednost ordinalnog tipa (vrijednost koja odgovara rednom broju ord(x) -1, tj. ord(pred(x)) = ord(x) - 1;

uspjeh(x)- vraća sljedeću vrijednost ordinalnog tipa, koja odgovara rednom broju ord(x) +1, tj. ord(Succ(x)) = ord(x) + 1.

Na primjer, ako program definira varijablu

tada će funkcija PRED(c) vratiti znak "4", a funkcija SUCC(c) vratiti znak "6".

Ako bilo koji redni tip zamislimo kao uređeni skup vrijednosti koji raste slijeva nadesno i zauzima određeni segment na brojčanoj osi, tada funkcija pred(x) nije definirana za lijevi kraj, a succ (x) je nije definirano za desni kraj ovog segmenta.

Cjelobrojni tipovi . Raspon mogućih vrijednosti cjelobrojnih tipova ovisi o njihovoj internoj reprezentaciji, koja može biti jedan, dva, četiri ili osam bajtova. U tablici 1.1 prikazuje nazive cjelobrojnih tipova, duljinu njihove interne reprezentacije u bajtovima i raspon mogućih vrijednosti.

Tablica 1.1 - Cjelobrojni tipovi

Ime Duljina, bajtovi Raspon vrijednosti
Kardinal 4 0. .. 2 147 483 647
Bajt 1 0...255
Shortint 1 -128...+127
Smallint 2 -32 768...+32 767
Riječ 2 0...65 535
Cijeli broj 4
Longint 4 -2 147 483 648...+2 147 483 647
Int64 8 -9*1018...+9*1018
Duga Riječ 4 0. . .4 294 967 295

Vrste Duga Riječ I Int64 su prvi put predstavljeni u verziji 4, a vrste Smallint I Kardinal nije dostupno u Delphiju 1. Vrsta cijeli broj za ovu verziju zauzima 2 bajta i ima raspon vrijednosti od -32768 do +32767, tj. isto kao Smallint .

Kada koristite procedure i funkcije s cjelobrojnim parametrima, trebali biste se voditi "gniježđenjem" tipova, tj. gdje god se može koristiti riječ, dopušteno za korištenje Bajt(ali ne obrnuto), u Longint"ulazi" Smallint, što zauzvrat uključuje Shortint .

Popis postupaka i funkcija primjenjivih na cjelobrojne tipove dan je u tablici. 1.2. Slova b, s, w, i, l označavaju izraze sljedećeg tipa: Bajt , Shortint, Word, Integer i Longint ,

x je izraz bilo kojeg od ovih tipova; slova vb, vs, vw, vi, vl, vx označavaju varijable odgovarajućeg tipa. Neobavezni parametar naveden je u uglatim zagradama.

Tablica 1.2 - Standardni postupci i funkcije primjenjive na cijele tipove

Apel Vrsta rezultata Akcijski
trbušnjaci (x) x Vraća modul x
chr(b) Char Vraća znak prema njegovom kodu
dec(vx[,i]) - Smanjuje vrijednost vx za i, a u nedostatku i - za 1
inc(vx[,i]) - Povećava vrijednost vx za i, a u nedostatku i - za 1
Bok(w) Bajt Vraća najviši luk argumenta
Zdravo, ja) Isti Vraća treći bajt
Lo(i) Vraća niži bajt argumenta
Lo(w) Isti
neparan(l) Booleov Vraća True ako je argument neparan broj
Nasumično(w) Isto kao parametar Vraća pseudoslučajni broj ravnomjerno raspoređen u rasponu 0...(w-l)
sqr(x) x Vraća kvadrat argumenta
zamijeniti (i) Cijeli broj Zamjena bajtova u riječi
zamijeniti (w) Riječ Isti

Kod rada s cijelim brojevima, tip rezultata će odgovarati tipu operanda, a ako su operandi različitih tipova cjelobrojnih brojeva, općem tipu koji uključuje oba operanda. Na primjer, kada operirate s shortint I riječ uobičajeni tip će biti cijeli broj. U zadanoj postavci, Delphi prevodilac ne proizvodi kod za provjeru je li vrijednost izvan raspona, što može dovesti do nesporazuma.

Booleovi tipovi . Logički tipovi uključuju Boolean, ByteBool, Bool, wordBool I LongBool. U standardnom Pascalu definiran je samo tip Booleov, drugi logički tipovi uvode se u Object Pascal radi kompatibilnosti s Windows: tipovima Booleov I ByteBool svaki zauzima jedan bajt, Bool I WordBool- 2 bajta svaki, LongBool- 4 bajta. Booleove vrijednosti mogu biti jedna od prethodno deklariranih konstanti False ili True.

Budući da je Boolean tip redni tip, može se koristiti u naredbi petlje prebrojivog tipa. U Delphiju 32 for Booleov značenje

Ord (True) = +1, dok za druge vrste ( Bool, WordBool itd.)

Ord(True) = -1, stoga ove vrste operatora treba koristiti s oprezom! Na primjer, za verziju Delphija 6, izvršna izjava showMessage(" --- ") u sljedećoj petlji za nikad se neće izvršiti:

za L:= False do True učiniti

Prikaži poruku("--);

Ako zamijenimo parametar petlje tipa L u prethodnom primjeru s Booleov, pokrenut će se petlja i poruka će se dvaput pojaviti na zaslonu. [Za Delphi verzije 1 i 2 ord (True) =+1 za bilo koji Booleov tip.]

Vrsta lika . Vrijednost tipa znaka je skup svih PC znakova. Svakom znaku dodijeljen je cijeli broj u rasponu od 0...255. Ovaj broj služi kao kod za interni prikaz simbola; vraća ga funkcija ord.

Za kodiranje u Windowsima koristi se ANSI kod (nazvan po American National Standard Institute, američkom standardizacijskom institutu koji je predložio ovaj kod). Prva polovica PC znakova s ​​kodovima 0... 127 odgovara tablici 1.3. Druga polovica znakova s ​​kodovima 128...255 razlikuje se za različite fontove. Standardni Windows fontovi Arial Cyr, Courier New Cyr i Times New Roman koriste zadnja 64 koda (od 192 do 256) za predstavljanje ćiriličnih znakova (bez slova “ë” i “Ë”): “A”... “Z” su kodirane vrijednosti 192..223, “a”... “i” - 224...255. Simboli "Ë" i "e" imaju kodove 168, odnosno 184.

Tablica 1.3 - Kodiranje znakova prema ANSI standardu

Kodirati Simbol Kodirati. Simbol Kodirati. Simbol Kodirati Simbol
0 NUL 32 B.L. 64 @ 96 "
1 ZON 33 ! 65 A 97 A
2 STX 34 66 U 98 b
3 ETX 35 # 67 S 99 S
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 " 71 G 103 d
8" B.S. 40 ( 72 N 104 h
9 HT 41 ) 73 ja 105 ja
10 LF 42 * 74 J 106 j
11 VT 43 + 75 DO 107 k
12 FF 44 F 76 L 108 1
13 CR 45 - 77 M 109 m
14 TAKO 46 78 N 110 n
15 SI. 47 / 79 0 111 O
16 DEL 48 0 80 R 112 P
17 DC1 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC 4 52 4 84 T 116 t
21 N.A.K. 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 W 119 W
24 LIMENKA 56 8 88 x 120 x
25 E.M. 57 9 89 Y 121 U
26 POD 58 : 90 Z .122 z
27 ESC 59 ; 91 t 123 {
28 FS 60 < 92 \ 124 1
29 G.S. 61 = 93 ] 125 }
30 R.S. 62 > 94 L 126 ~
31 NAS 63 F 95 127 r

Znakovi s kodovima 0...31 odnose se na servisne šifre. Ako se ti kodovi koriste u tekstu znakova programa, oni se smatraju razmakom.

Najčešći u matematici numeričke vrste- Ovo cijeli brojevi koji predstavljaju beskonačan broj diskretnih vrijednosti, i važeći brojevi koji predstavljaju neograničeni kontinuum vrijednosti.

Opis Pascalovih numeričkih tipova podataka (cijeli brojevi)

Unutar istog jezika mogu se implementirati različiti podskupovi skupa cijelih brojeva. Raspon mogućih vrijednosti cjelobrojnih numeričkih tipova ovisi o njihovoj internoj reprezentaciji, koja može biti jedan, dva ili četiri bajta. Stoga se u Pascalu 7.0 koriste sljedeći tipovi cjelobrojnih numeričkih podataka:

S cijelim tipovi numeričkih podataka Pascal može izvoditi sljedeće operacije:

  • Aritmetika:
    zbrajanje(+);
    oduzimanje(-);
    množenje(*);
    ostatak dijeljenja (mod);
    potenciranje;
    unarni plus (+);
    unarni minus (-).
  • Operacije odnosa:
    relacija jednakosti (=);
    odnos nejednakosti (<>);
    omjer je manji (<);
    omjer veći od (>);
    odnos ne manji od (>=);
    nema više stava (<=).

Kada djeluje sa cjelobrojni numerički tipovi podataka tip rezultata će odgovarati tipu operanda, a ako su operandi različitih cjelobrojnih tipova, tipu operanda koji ima najveću snagu (maksimalni raspon vrijednosti). Eventualno prekoračenje rezultata ni na koji način se ne kontrolira (to je važno!) , što može dovesti do pogrešaka.

Posebnu pozornost treba posvetiti operaciji dijeljenja cjelobrojnih numeričkih tipova podataka. Pascal dopušta dvije operacije dijeljenja, koje se na odgovarajući način označavaju "/" I div. Morate znati da rezultat dijeljenja "/" nije cijeli broj, već pravi broj(ovo vrijedi čak i ako 8 podijelite s 2, tj. 8/2=4,0). Divizija div je cjelobrojno dijeljenje, tj. tip rezultata je cijeli broj.

Opis Pascalovih numeričkih tipova podataka (realni)

Realni numerički tip podataka odnosi se na podskup realnih brojeva koji se mogu predstaviti u takozvanom formatu s pomičnim zarezom s fiksnim brojem znamenki. S pomičnim zarezom, svaki numerički tip podataka predstavljen je kao dvije grupe znamenki. Prva skupina brojeva naziva se mantisa, druga je eksponent. Općenito, numerički tip podataka u obliku pomičnog zareza može se predstaviti na sljedeći način: X= (+|-)MP (+ | -) r, gdje je M mantisa broja; r – brojčani red (r – cijeli broj); P – baza brojevnog sustava. Na primjer, za decimalnu bazu, prikaz 2E-1 (ovdje je E baza decimalnog brojevnog sustava) izgledat će kao: 2*10 -1 =0,2, a prikaz 1,234E5 će odgovarati: 1,234*10 5 =123400.0.

Pascal koristi sljedeće vrste realnih brojeva, koji definiraju proizvoljan broj samo s određenom konačnom preciznošću ovisno o internom formatu realnog broja:

Prilikom opisivanja realne varijable tipa real, u memoriji računala će se kreirati varijabla od 4 bajta. U ovom slučaju, 3 bajta bit će dana za mantisu, a jedan bajt za redoslijed.

Sljedeće operacije mogu se izvesti na stvarnim numeričkim tipovima podataka:

  • Aritmetika:
    zbrajanje (+);
    oduzimanje(-);
    množenje(*);
    podjela(/);
    potenciranje;
    unarni plus (+);
    unarni minus (-).
  • Operacije odnosa:
    odnos nejednakosti (<>);
    omjer je manji (<);
    omjer veći od (>);
    odnos ne manji od (>=);
    nema više stava (<=).

Kao što vidite, Pascal karakterizira bogat raspon stvarnih tipova, ali pristup numeričkim tipovima podataka singl, dvostruko I proširena moguće samo u posebnim načinima kompilacije. Ove numeričke vrste podataka dizajnirane su za hardversku podršku za aritmetiku s pomičnim zarezom, a da biste ih učinkovito koristili, vaše računalo mora uključivati ​​matematički koprocesor.

Numerički tip podataka zauzima posebno mjesto u Pascalu. komp, koji se tretira kao realan broj bez eksponencijalnog i frakcijskog dijela. Zapravo, komp je "veliki" cijeli broj s predznakom koji zadržava 19..20 značajnih decimalnih znamenki. U isto vrijeme, brojčani tip podataka komp u izrazima je potpuno kompatibilan s drugim realnim tipovima: na njemu su definirane sve realne operacije, može se koristiti kao argument matematičkim funkcijama itd.

O pretvaranju Pascalovih numeričkih tipova podataka

U Pascalu su implicitne (automatske) konverzije tipova numeričkih podataka gotovo nemoguće. Izuzetak je napravljen samo za tip cijeli broj, koji je dopušteno koristiti u izrazima poput stvaran. Na primjer, ako su varijable deklarirane ovako:

Var X: cijeli broj; Y: pravi;

To je operater

bit će sintaktički ispravan, iako postoji cjelobrojni izraz s desne strane znaka dodjele i realna varijabla s lijeve strane, prevodilac će automatski pretvoriti numeričke tipove podataka. Obrnuta pretvorba automatski se upisuje stvaran u vrsti cijeli broj nemoguće u Pascalu. Sjetimo se koliko je bajtova dodijeljeno varijablama tipa cijeli broj I stvaran: za cjelobrojni tip podataka cijeli broj Dodijeljena su 2 bajta memorije, a za stvarne - 6 bajtova. Preobratiti se stvaran V cijeli broj Postoje dvije ugrađene funkcije: krug(x) zaokružuje realni x na najbliži cijeli broj, trunc(x) skraćuje realni broj odbacivanjem razlomka.

Najbolji članci na temu