Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Zanimljivo
  • Cjelobrojni i realni tipovi podataka u Pascalu. Pascal standardne aritmetičke procedure i funkcije

Cjelobrojni i realni tipovi podataka u Pascalu. Pascal standardne aritmetičke procedure i funkcije

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

Jednostavni tipovi.

Jednostavni tipovi se dijele na ORDINALNE i REALNE.

1. VRSTE NARUDŽBE , zauzvrat, tu su:

a) cela

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

Unesite ime

Dužina (u bajtovima)

Raspon vrijednosti

32 768...+32 767

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

b) logično

Ime ovog tipa je BOOLEAN. Boolean vrijednosti mogu biti jedna od logičkih konstanti: TRUE (true) ili FALSE (false).

c) simbolički

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

2. REALNI TIPOVI .

Za razliku od rednih tipova, čije su vrijednosti uvijek mapirane u niz cijelih brojeva i stoga su predstavljene apsolutno precizno u PC-u, vrijednosti realnih tipova definiraju proizvoljan broj samo sa određenom konačnom preciznošću u zavisnosti od unutrašnjeg formata realnog broja.

Dužina numeričkog tipa podataka, bajtovi

Ime 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

STRUKTUIRANI TIPOVI

Strukturirani tipovi podataka definiraju uređenu kolekciju skalarnih varijabli i karakteriziraju ih tipom njihovih komponenti.

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

Postoji nekoliko metoda strukturiranja. Prema načinu organizacije i vrsti komponenti u složenim tipovima podataka razlikuju se sljedeće varijante: regularni tip (nizovi); kombinovani tip (zapisi); vrsta datoteke(fajlovi); više vrsta; string type(strings); u jeziku Turbo Pascal verzije 6.0 i starijim, uveden je tip objekta (objekti).

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

1. Nizovi

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

Opis niza je specificiran kako slijedi:

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

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

Niz, od – rezervirane riječi (niz, od);

<сп.инд.типов>- lista jednog ili više tipova indeksa, odvojenih zarezima; uglaste zagrade koje uokviruju listu su sintaksni zahtjev;

<тип>- bilo koji tip Turbo Pascala.

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

Dubina ugniježđenja strukturiranih tipova općenito, a samim tim i nizova, je proizvoljna, tako da broj elemenata na listi indeksa tipova (veličina niza) nije ograničen, međutim, ukupna dužina unutrašnjeg prikaza bilo kojeg niza ne može biti više 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 razne vrste. Da bi se omogućilo upućivanje na jednu ili drugu komponentu zapisa, polja se imenuju.

Struktura deklaracije tipa posta je:

< Imetip>=RECORD< zajedničko ulaganje. polja>END

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

RECORD, END – rezervirane riječi (zapis, kraj);

<сп.полей>- lista polja; je niz sekcija zapisa odvojenih tačkom i zarezom.

3. Setovi

Skupovi su skup objekata istog tipa koji su logički povezani jedan s drugim. Prirodu veza između objekata samo implicira programer i ni na koji način je ne kontroliše Turbo Pascal. broj elemenata uključenih u skup može varirati od 0 do 256 (skup koji ne sadrži elemente naziva se prazan) To je nestalnost broja njegovih elemenata po kojima se skupovi razlikuju od nizova i zapisa.

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 seta je:

< Imetip>=SET OF< baze. tip>

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

SET, OF – rezervirane riječi (skup, od);

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

Za definisanje skupa koristi se takozvani konstruktor skupa: lista specifikacija elemenata skupa, odvojenih zarezima; lista je okružena uglastim zagradama. Specifikacije elemenata mogu biti konstante ili izrazi osnovnog tipa, kao i tip raspona istog osnovnog tipa.

4. Fajlovi

Datoteka se odnosi na imenovano područje eksternu memoriju Računar ili logički uređaj je potencijalni izvor ili prijemnik informacija.

Svaki fajl ima tri karakteristične karakteristike

    ima ime koje omogućava programu da radi sa nekoliko datoteka istovremeno.

    sadrži komponente istog tipa. Tip komponente može biti bilo koji tip Turbo Pascal, osim datoteka. Drugim riječima, ne možete kreirati "fajl datoteka".

    opet dužina kreiran fajl nije ni na koji način specificiran kada se najavljuje i ograničen je samo kapacitetom eksternih memorijskih uređaja.

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

< Ime>= FILE OF< tip>;

< Ime>=TEXT;

<имя>= FILE;

Evo<имя>- naziv tipa datoteke (tačan identifikator);

FILE, OF – rezervirane riječi (fajl, iz);

TEXT – naziv standardnog tipa tekstualnog fajla;

<тип>- bilo koju vrstu Turbo Pascala, osim datoteka.

Ovisno o načinu deklaracije, mogu se razlikovati tri vrste datoteka:

· otkucanih fajlova(postavljeno klauzulom FILE OF...);

· tekstualne datoteke(definirano tipom TEXT);

· netipizirane datoteke (definirane tipom FILE).

O pretvaranju Pascalovih numeričkih tipova podataka

U Pascalu su implicitne (automatske) konverzije numeričkih tipova podataka gotovo nemoguće. Izuzetak je napravljen samo za celobrojni tip, koji je dozvoljen za upotrebu u izrazima tipa real. Na primjer, ako su varijable deklarirane ovako:

Var X: cijeli broj; Y: pravi;

zatim operater

će biti sintaktički ispravan, iako postoji cjelobrojni izraz desno od znaka dodjele i realna varijabla lijevo, kompajler će automatski konvertirati numeričke tipove podataka. Automatska obrnuta konverzija iz realnog tipa u integer tip je nemoguća u Pascalu. Prisjetimo se koliko je bajtova dodijeljeno za varijable tipa integer i real: 2 bajta memorije su dodijeljena za cjelobrojni tip podataka integer, a 6 bajtova 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 real odbacivanjem razlomka.

Bilo koji podatak - konstante, varijable, vrijednosti funkcija - karakteriziraju se u Pascalu tipom podataka.

Hajde da definišemo koncept tip podataka. Kao što je već poznato, svi programski objekti (varijable, konstante, itd.) moraju biti opisani.

Opisi informišu prevodioca, prvo, o postojanju varijabli i drugih korišćenih objekata, a drugo, oni ukazuju na svojstva ovih objekata. Na primjer, opis varijable čija je vrijednost broj ukazuje na svojstva brojeva. Formalno, brojevi mogu biti cijeli i realni (razlomački). U Pascalu, kao iu drugim programskim jezicima, brojevi su podijeljeni u dvije vrste: cijeli(rezervisana riječ cijeli broj) i pravi(rezervisana reč real).

Odabir cijelih brojeva u poseban tip objašnjava se činjenicom da u kompjuter cijeli i realni brojevi su različito predstavljeni: cijeli broj se može predstaviti apsolutno tačno, ali se realni broj neizbježno može predstaviti sa nekom konačnom greškom, koja je određena svojstvima prevodioca.

Na primjer, neka varijabla x bude tipa real i njena vrijednost jednaka jedan: x=1. Odgovarajuća vrijednost u memoriji računara može biti 0,999999999, 1,000000001 ili 1,000000000. Ali ako je varijabla x deklarirana kao varijabla cjelobrojnog tipa, tada će jedinica u računaru biti predstavljena apsolutno precizno i ​​varijabla x neće moći uzeti stvarne (razlomke) vrijednosti - na kraju krajeva, opisana je kao varijabla cjelobrojnog tipa.

Dakle, tip podataka definira:

  • interno predstavljanje podataka u memoriji računala;
  • skup vrijednosti koje količine ovog tipa mogu poprimiti;
  • operacije koje se mogu izvesti na vrijednostima ovog tipa.

Uvođenje tipova podataka jedan je od osnovnih koncepata Pascal jezika, a to je da prilikom izvođenja operacije dodjeljivanja varijabli vrijednosti izraza varijabla i izraz moraju biti istog tipa. Ovu provjeru izvodi kompajler, što uvelike pojednostavljuje traženje grešaka i dovodi do povećane pouzdanosti programa.

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

  • standardni (predefinisani) tipovi ;
  • korisnički definirani tipovi (korisnički definirani tipovi) .

Standardni Turbo Pascal tipovi uključuju:

  • cjelobrojni tip – cijeli broj;
  • pravi tip – pravi;
  • tip karaktera – char;
  • boolean tip – boolean;
  • vrsta stringa – string ;
  • tip pokazivača – pokazivač;
  • vrsta teksta – tekst .

Prilagođeni tipovi podataka su razne kombinacije standardni tipovi.

Prilagođene vrste uključuju:

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

Jednostavni tipovi uključuju: cijeli broj, realni tip, karakterni tip, logički tip, nabrojani tip i tip intervala.

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

Standardni tipovi

Standardni tip podataka je definiran samim jezikom Pascal. Kada koristite standardne tipove u programu, dovoljno je navesti podsekcije traženih tipova (const, var), a zatim opisati konstante i varijable koje se koriste u programu. Nema potrebe za korištenjem pododjeljka Tip.

Na primjer, ako program koristi samo varijable:

i,j – cijeli broj (cijeli brojevi);

x,y - realno (stvarno);

t,s - znak (znak);

a,b – logički (logički),

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

Cjelobrojni tipovi

Podaci ovog tipa mogu prihvatiti samo cjelobrojne vrijednosti. U računaru su vrijednosti cjelobrojnog tipa predstavljene apsolutno precizno. Ako je varijabla negativna, onda joj mora prethoditi znak “–”; ako je varijabla pozitivna, znak “+” se može izostaviti. Ovaj tip neophodna je u slučaju kada se neka veličina ne može približno predstaviti kao realan broj. Na primjer, broj ljudi, životinja itd.

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

Opseg promjene podataka cjelobrojnog tipa određen je sa pet standardni tipovi cijelih brojeva i predstavljen je u tabeli:

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

Posljednja dva tipa 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 ispisuju se vrijednosti bez decimalnog zareza . Stvarne vrijednosti varijabli ne smije prekoračiti prihvatljive vrijednosti tip (Shortint, Integer, Longint, Byte, Word) koji je korišten za opisivanje varijable. Eventualni ekscesi tokom proračuna se ni na koji način ne kontrolišu, što će dovesti do netačan rad programe.

Primjer korištenja cjelobrojne varijable

Var a:integer; b:word; c:byte; Početak 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; (Greška! Varijabla c može uzeti samo vrijednosti od 255. Ovdje je varijabla c postavljena na 500, što će uzrokovati prelijevanje rezultata.) Kraj.

Pravi tipovi

Vrijednosti realnih tipova su približno predstavljene u kompjuteru. Raspon promjene podataka pravi tip definirana je sa pet standardnih tipova: realna (Real), jednostruka preciznost (Single), dvostruka preciznost (Double), proširena preciznost (Extended), složena (Comp) i prikazana je u tabeli:

Tip Domet Broj značajnih cifara Veličina u bajtovima
Real 2.9E-39...1.7E+38 11-12 6
Single 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 biti predstavljeni u dva formata: fiksni zarez i pokretni zarez.

Format za pisanje broja sa fiksnom zarezom je isti kao i uobičajena matematička notacija za decimalni broj sa frakcijski dio. Frakcijski dio se odvaja od cijelog dijela pomoću tačke, na primjer

34.5, -4.0, 77.001, 100.56

Format zapisa s pomičnim zarezom se koristi kada se piše vrlo veliki ili vrlo mali brojevi. U ovom formatu, broj ispred "E" se množi sa brojem 10 na stepen 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 tabeli od 5 do 9, red prikazuje snimak istog broja 124. Promjenom položaja decimalne zapete u mantisi (tačka „pluta“, otuda naziv „pisanje broja s pomičnim zarezom“) i na istovremeno mijenjajući vrijednost narudžbe, možete odabrati najviše odgovarajući ulaz brojevi.

Primjer opisa varijabli realnog tipa.

Tip karaktera

Vrijednosti tipa znakova su znakovi koji se mogu kucati na tastaturi računara. To vam omogućava da predstavite tekst u programu i izvršite razne operacije na njemu: ubacite, izbrišite pojedinačna slova i riječi, formatirajte itd.

Tip karaktera označen je rezerviranom riječi Char i dizajniran je za pohranjivanje jednog znaka. Podaci o znakovima zauzimaju jedan bajt u memoriji.

Format deklaracije simboličke varijable:

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

Prilikom definiranja vrijednosti karakterne varijable, znak se piše u apostrofima. Osim toga, možete postaviti traženi simbol tako što ćete ga navesti direktno numerička vrijednost ASCII kod. U tom slučaju morate ispred broja koji označava ASCII kod potrebnog znaka staviti znak #.

Primjer korištenja varijabli tipa znakova:

Var c:char; (c je varijabla tipa karaktera) Početak c:=’A’; (promenljivi c je dodeljen znak 'A') c:=#65; (promenljivoj c je takođe dodeljen znak A. Njen ASCII kod je 65) c:=’5’; (promenljivi c je dodeljen simbol 5, Kraj. Ovde 5 više nije broj)

Boolean tip

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

Format za deklarisanje varijable Boolean tipa:

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

Podaci ovog tipa mogu imati samo dvije vrijednosti:

  • Tačno - istina;
  • Laž je laž.

Logički podaci se široko koriste u provjeri valjanosti određenih uslova i u poređenju količina. Rezultat može biti istinit ili netačan.

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

Primjer korištenja relacijskih operacija:

relacija 5>3, rezultat istinit;

relacija 5=3, rezultat netačan.

Primjer korištenja varijabli Booleovog tipa.

Var a,b:boolean; (a,b su varijable logičkog tipa) Početak a:=Tačno; (promenljivi a se dodeljuje vrednost “true”) b:=false; (varijabla b je postavljena na netačno) Kraj.

Konstante

Kao konstante mogu se koristiti cijeli brojevi, realni brojevi, znakovi, nizovi znakova i logičke konstante.

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

Format konstantne deklaracije

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

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

Const (konstantna deklaracija sekcije) 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; (boolean konstanta) str1=’7’; (konstanta tipa karaktera) str2=’A’; (konstanta tipa karaktera) str3=’Turbo’; (konstantno string type) Var (deklaracija sekcije varijable) X,y:integer; (varijable cjelobrojnog tipa)

Prilagođeni tipovi

Od totaliteta prilagođeni tipovi uzeti u obzir samo

  • nabrojani tip;
  • tip intervala.

Ove dvije vrste će nam trebati kada proučavamo nizove.

Tip enuma

Nabrojani tip podataka opisuje nove tipove podataka čije vrijednosti definira programer. Nabrojani tip je specificiran nabrajanjem vrijednosti koje može primiti. Svaka vrijednost je imenovana nekim identifikatorom i nalazi se u okviru liste zagrade. Nabrojani tip je korisnički definiran tip podataka, tako da njegova deklaracija tipa počinje rezerviranom riječju TYPE.

Format tipa enum:

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

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

Primjer opisa nabrojanog tipa:

Tip lopta=(jedan, dva, tri, četiri, pet); var t:ball;

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

U nabrojanom tipu, konstanta je identifikator, tako da se ne navodi i ne može biti broj. Dakle, u nabrojanom tipu, konstanta je posebna vrsta konstante koja ne može biti:

  • konstante numeričkog tipa: 1, 2, 3, 4, itd.;
  • konstante karakternog 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 procedure za unos i izlaz Read, Write.

Primjer korištenja nabrojanih varijabli:

Upišite dani = (ponedjeljak, utorak, srijeda, četvrtak, petak, subota, nedelja); Var dan: dani; započeti ako je dan = nedjelja onda writeln(‘Danas je nedjelja!’); Kraj.

Elementi uključeni u definiciju nabrojanog tipa smatraju se poređanim redoslijedom kojim su nabrojani. Numeracija počinje od nule. Stoga, u datom primjeru, dani u sedmici imaju sljedeće serijske brojeve

Za definicija softvera Funkcija Ord() se koristi za određivanje rednog broja.

U našem primjeru, redni brojevi su jednaki:

Red(ponedeljak) = 0;

Red(subota) = 5;

Red (nedjelja) = 6.

Interval type

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

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

  • dva znaka ".." tretiraju se kao jedan znak, tako da razmaci između njih nisu dozvoljeni;
  • lijeva granica opsega ne smije prelaziti desnu granicu.

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

Primjer opisa tipa intervala:

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

Pascal tipovi podataka

Bilo koji podatak (konstante, varijable, vrijednosti funkcija ili izrazi) u Turbo Pascalu karakteriziraju njihovi tipovi. Tip definira skup važećih vrijednosti koje objekt može imati, kao i skup važećih operacija koje se mogu primijeniti na njega. Tip takođe određuje format internog prikaza podataka u memoriji računara.

U Turbo Pascalu postoje sljedeći tipovi podataka.

1) Jednostavni tipovi:

– pravi;

– simbolički;

– Boolean (logički);

– nabrojano;

– ograničen (domet).

2) Kompozitni (strukturirani) tipovi:

– regularni (nizovi);

– kombinovano (evidencija);

– fajl;

– višestruki;

– string;

– objekti.

3) Referentni tipovi (ukucani i neupisani pokazivači).

4) Proceduralni tipovi.

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

Integer type . Cjelobrojne vrijednosti su elementi podskupa cijelih brojeva. U Turbo Pascalu postoji pet cjelobrojnih tipova. Njihovi nazivi, raspon vrijednosti, dužina prikaza u bajtovima dati su u tabeli. 6.

Tabela 6

Cjelobrojni tipovi podataka

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

i, j, k: cijeli broj;

Podaci cjelobrojnog tipa pohranjuju se točno u memoriju. Na primjer, varijable tipa cijeli broj 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, i 1 ako je broj negativan) i 15 bitova za pohranjivanje broja binarni sistem Računanje. Maksimum decimalni broj, koji se može napisati kao 15-bitni binarni zapis je 32767.

Kada koristite procedure i funkcije sa cjelobrojnim parametrima, trebali biste se voditi „ugniježđenjem“ tipova, tj. gdje god se koristi riječ, bajt je dozvoljen (ali ne i 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 (sabiranje, oduzimanje, množenje, cijelobrojno dijeljenje i ostatak cjelobrojna podjela). U aritmetičkim izrazima, operacije *, div, mod imaju veći prioritet od operacija +, -. Primjeri pisanih izraza:

Lista procedura i funkcija primjenjivih na cjelobrojne tipove data je u tabeli. 7. Slova b, s, w, i, l označavaju izraze tipa byte, shortint, word, integer, odnosno longint; x je izraz bilo kojeg od ovih tipova; identifikatori vb, vs, vw, vi, vl, vx označavaju varijable odgovarajućih tipova. IN uglaste zagrade naveden je opcioni parametar.

Tabela 7

Standardne procedure i funkcije primjenjive na čitave tipove

Žalba Vrsta rezultata Akcija
trbušnjaci(x) x Vraća modul x
Chr(b) Char Vraća znak po 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(i) Byte Vraća visoki bajt argumenta
bok(i) Byte Isto
Lo(i) Byte Vraća niži bajt argumenta
niska(w) Byte Isto
Nepar (l) Byte Vraća true ako je argument neparan broj
Nasumično (w) Isto kao parametar Povratak pseudoslučajni broj, jednoliko raspoređeno u opsegu 0...(w-1)
Sqr(x) x Vraća kvadrat argumenta
Swap(i) Integer
Zamjena (w) Riječ Zamjenjuje bajtove u jednoj riječi
succ(x) Isto kao parametar Vraća sljedeću cjelobrojnu vrijednost, tj. x+1
Pred(x) Isto kao parametar Vraća prethodnu cjelobrojnu vrijednost, tj. x-1

Kada se radi s cijelim brojevima, tip rezultata će odgovarati tipu operanda, a ako su operandi različitih cjelobrojnih tipova, tipu operanda koji ima maksimalni raspon vrijednosti. Moguće prekoračenje rezultata se ne kontrolira, što može dovesti do grešaka u programu.

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

Tabela 8

Pravi tipovi podataka

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

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

Znak znaka broja;

Eksponencijalni dio;

Mantisa broja.

Mantisa ima dužinu od 23 (pojedinačne) do 63 (proširene) binarne cifre, što obezbeđuje tačnost od 7-8 za pojedinačne i 19-20 za proširene decimalne cifre. Decimalna tačka (zarez) se podrazumeva ispred leve (najznačajnije) cifre mantise, ali kada se radi sa brojem, njena pozicija se pomera ulevo ili udesno u skladu sa binarnim redosledom broja pohranjenog u eksponencijalnom delu , stoga se operacije nad realnim brojevima nazivaju aritmetikom s pomičnim zarezom (zarezom).

Jednostruki, dvostruki i prošireni tipovi mogu se pristupiti samo kada posebne režime kompilacija. Da biste omogućili ove režime, izaberite stavku menija Opcije, Kompajler… i omogućite opciju 8087/80287 u grupi Numerička obrada.

Posebnu poziciju u Turbo Pascalu zauzima tip Comp, koji se tretira kao realan broj bez eksponencijalnih i razlomaka. Zapravo, Comp je veliki cijeli broj sa predznakom koji pohranjuje 19...20 značajnih decimalnih cifara. Istovremeno, u izrazima Comp je potpuno kompatibilan sa bilo kojim drugim realnim tipovima: sve stvarne operacije su definirane na njemu, može se koristiti kao argument matematičke operacije itd.



Realni brojevi su dati decimalni sistem kalkulacije u jednom od dva oblika.

IN oblik fiksne tačke zapis se sastoji od cijelog broja i razlomka, odvojenih jedan od drugog tačkom, na primjer:

0.087 4.0 23.5 0.6

IN oblik s pomičnim zarezom unos sadrži slovo E, što znači "pomnoži sa deset na stepen", a stepen je cijeli broj, na primjer:

7E3 6.9E-8 0.98E-02 45E+04

Sljedeće operacije su definirane na objektima realnog tipa: +, -, *, /.

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

Ako je barem jedan operand stvaran, tada operacije +, -, *, / vode do stvarnog rezultata. Operacija dijeljenja / dovodi do stvarnog rezultata čak iu 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 tabeli. 9. Rezultat ovih funkcija je također stvaran.

Tabela 9

Matematičke funkcije, rad sa stvarnim podacima

Zabranjeno je koristiti varijable i konstante tipa REAL:

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

– kao indeksi niza;

– 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 broj x (x – real);

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

Tip karaktera. Varijable znakova su opisane korištenjem rezervirane riječi char:

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

Vrijednost varijable tipa karaktera je jedan znak okružen apostrofima, na primjer:

'F' '8' '*'

Varijable znakova se mogu porediti jedna s drugom, a kodovi znakova se upoređuju.

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

ord(c) – daje broj simbola c;

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

Ove funkcije su inverzne jedna prema drugoj.

Boolean tip. Boolean varijable se opisuju korištenjem rezervirane riječi boolean:

p1, p2: boolean;

Varijable booleovog tipa uzimaju dvije vrijednosti: istinito(istinito), false(laž).

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

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

a, d, g, b: boolean;

Operacije odnosa (<, <=, >, >=, =, <>), primijenjen na cjelobrojne, realne i simboličke varijable, daju logički rezultat.

Logičke operacije over operandi logičkog tipa takođe daju logički rezultat (operacije su date u opadajućem redosledu prioriteta) (za više detalja pogledajte tabele 3 i 5):

ne – negacija (NO operacija);

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

ili – logičko sabiranje (operacija ILI);

xor – ekskluzivno OR.

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

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

Izraz (a ili b) daje vrijednost netačno ako samo a i b procjenjuju na false; u suprotnom, rezultat je istinit.

Tip enuma. Nestandardni tip nabrajanja je specificiran nabrajanjem u obliku imena vrijednosti koje varijabla može uzeti. Svaka vrijednost je imenovana nekim identifikatorom i nalazi se na listi okruženoj zagradama. Opšti oblik opisi tipa enum:

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

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

Ove vrijednosti su poređane w1

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

succ(w), pred(w), ord(w).

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

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

f: niz ww;

succ(d) = žuta;

Varijable a i b su tipa w. mogu uzeti jednu od tri vrijednosti, sa uključenim

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

Dozvoljeno je specificirati konstante nabrojanog tipa direktno u sekciji var bez korištenja particije tip, Na primjer

c,d: (crvena, crna, žuta, zelena);

Domet (ograničen) tip. Kada definirate ograničeni tip, specificirate početne i konačne vrijednosti koje varijabla tipa raspona može uzeti. Vrijednosti su odvojene sa dvije tačke.

Opis ograničenog tipa je u obliku

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

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

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

– ograničeni tip se kreira od podataka osnovnog tipa, koji može biti cijeli broj, karakterni ili nabrojani tip. Na primjer:

col = crvena.. žuta;

slovo = 'a'..'f';

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

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

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

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

a: niz of t2;

gdje je a ime niza, niz, of– službene riječi (što znači “niz ...”), t1 – tip indeksa; t2 – tip komponente (bazni tip).

Broj indeksa određuje veličinu niza. Indeksi mogu biti cjelobrojni (osim longint), znakovni, logički, nabrajajući i tipovi raspona. Podskripti su odvojeni zarezima i stavljeni u uglaste zagrade. Komponente niza 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 osnovu određene vrijednosti indeksa, možete odabrati određenu komponentu niza (na primjer, C znači treći element niza C, tj. broj 12).

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

Opis ovog niza je sljedeći:

b od cijelog broja;

Ovdje je b ime niza, prvi indeks je broj reda i uzima vrijednosti od 1 do 2, drugi je broj kolone i uzima vrijednosti od 1 do 4. Na osnovu specifičnih vrijednosti indeksa, možete odaberite određenu komponentu niza (na primjer, b označava element tabele koji se nalazi u prvom redu i trećoj koloni, tj. broj -4).

Indeksi mogu biti proizvoljni izrazi koji odgovaraju tipu indeksa iz opisa niza:

a: niz realnih;

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

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

Vrsta stringa. Tip stringa je skup nizova znakova proizvoljne dužine (od nule do datog broja). Varijable tipa string opisuju se pomoću funkcijske riječi string:

b: string ;

Posebnosti:

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

– dozvoljeno je koristiti operaciju konkatenacije u operatoru dodjeljivanja, jer nizovi mogu dinamički mijenjati svoju dužinu: a:= a + 'kalkulacije';

– maksimalna dužina varijable stringa je 255 karaktera, ova indikacija dužine se može izostaviti:

a: string;

a1: string ;

Varijable a i a1 su iste (ekvivalentan opis).

– memorija za varijable string tipa je maksimalno dodijeljena, ali se koristi samo dio memorije koji trenutno zauzimaju string karakteri. Za opisivanje string varijable dužine n koristi se n+1 bajt memorije: n bajtova za pohranjivanje string znakova, n+1 bajt za pohranu trenutne dužine.

– operacije poređenja su definirane na vrijednostima tipova nizova:< <= > >= = <>. Kratki niz je uvijek manji od dugog. Ako su nizovi iste dužine, onda se kodovi znakova upoređuju.

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

Procedure i funkcije orijentirane na rad sa stringovima.

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

kopija(e, indeks, broj)– funkcija izdvajanja stringa iz izvornog niza s dužina count znakova, počevši od broja karaktera index.

izbrisati (s, indeks, broj)– postupak za uklanjanje podniza dužine iz niza count znakova, počevši od broja karaktera index.

umetnuti (s1, s2, indeks)– postupak umetanja reda s1 to line s2, počevši od znaka sa brojem index.

dužina(e)– funkcija za određivanje trenutne dužine stringa, vraća broj jednak trenutnoj dužini stringa.

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 kod sadrži 0 ako je konverzija bila uspješna (i u x postavlja se rezultat konverzije) ili broj pozicije linije na kojoj je otkriven pogrešan znak (u ovom slučaju vrijednost x se ne mijenja).

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

Dvije vrste se smatraju kompatibilnim ako:

– oba su istog tipa;

– oba su stvarna;

- oba su netaknuta;

– jedan tip je tip opsega drugog tipa;

– oba su tipovi raspona istog osnovnog tipa;

– oba su skupovi sastavljeni od elemenata istog osnovnog tipa;

– oba su pakirani nizovi (definirani prethodnom riječi upakovane) iste maksimalne dužine;

– jedan je tip stringa, a drugi je string ili karakterni tip;

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

– oba su proceduralna tipa sa istim tipom rezultata (za tip funkcije), brojem parametara i tipom međusobno odgovarajućih parametara.

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

– t1 i t2 su istog tipa i ovaj tip se ne odnosi na datoteke, nizove datoteka, zapise koji sadrže polja datoteke 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 – zbijeni niz;

– t1 i t2 – kompatibilni pakirani 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 objekat, a t2 je njegov potomak.

U programu se podaci jednog tipa mogu pretvoriti u podatke drugog tipa. Ova konverzija može biti eksplicitna ili implicitna.

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

Implicitna konverzija je moguća 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 dobija realni tip;

– isto memorijsko područje se naizmjenično tretira kao da sadrži podatke jednog ili drugog tipa (kombiniranje podataka različitih tipova u memoriji).

Federalna agencija za obrazovanje

Esej

"VRSTE PODATAKA U PASCAL-u"

1. Tipovi podataka

Bilo koji podatak, tj. konstante, varijable, svojstva, vrijednosti funkcije ili izrazi karakteriziraju njihovi tipovi. Tip definira skup važećih vrijednosti koje objekt može imati, kao i skup važećih operacija koje se mogu primijeniti na njega. Pored toga, tip takođe određuje format internog prikaza podataka u memoriji računara.

Općenito, jezik Object Pascal karakterizira razgranata struktura tipova podataka (slika 1.1). Jezik pruža mehanizam za kreiranje 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 podijeljeni su na varijable, konstante i literale:

Konstante predstavljaju podatke čije su vrijednosti postavljene u sekciji deklaracije konstante i ne mijenjaju se tokom izvršavanja programa.

Varijable su deklarirane u sekciji deklaracije varijable, ali za razliku od konstanti, one primaju svoje vrijednosti tokom izvršavanja programa i te vrijednosti se mogu mijenjati. Konstante i varijable se mogu pozvati po imenu.

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

Tip definira skup vrijednosti koje elementi podataka mogu preuzeti i skup operacija dozvoljenih na njima.

Ovo i četiri naredna poglavlja pružaju detaljne opise svake vrste.

1.1 Jednostavni tipovi

Jednostavni tipovi uključuju ordinalne, realne i tipove datuma i vremena.

Redni tipovi 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 naziv tipova) i, stoga, svaka od njih može biti povezana s nekim cijelim brojem - rednim brojem vrijednosti.

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

Tip datum-vrijeme dizajniran za pohranjivanje datuma i vremena. U stvari, koristi pravi format za ove svrhe.

1.1.1 Redni tipovi

Redni tipovi uključuju (pogledajte sliku 1.1) cjelobrojne, logičke, karakterne, nabrojane i tipove raspona. Funkcija Ord(x) se može primijeniti na bilo koju od njih, koja vraća redni broj vrijednosti izraza X.


Rice. 1.1 - Struktura tipa podataka

Za cijeli tipa, funkcija ord(x) vraća vrijednost samog x, tj. Ord(X) = x za x koji pripada bilo kojem cijeli tip. Primjena Naredbe(x) na logicno , simbolična i nabrojiva tipovi daje pozitivan cijeli broj u rasponu od 0 do 1 ( boolean tip), od 0 do 255 ( simbolički), od 0 do 65535 ( enumerable). Tip-opsegčuva sva svojstva osnovnog ordinalnog tipa, tako da rezultat primjene funkcije ord(x) na njega ovisi o svojstvima ovog tipa.

Funkcije možete primijeniti i na redne tipove:

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

succ(x)- vraća sljedeću vrijednost rednog 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) će vratiti znak "6".

Ako zamislimo bilo koji redni tip kao uređeni skup vrijednosti koje se povećavaju s lijeva na desno i zauzimaju određeni segment na brojevnoj osi, tada funkcija pred(x) nije definirana za lijevi kraj, a succ (x) je nije definisano 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 tabeli 1.1 prikazuje nazive cjelobrojnih tipova, dužinu njihove interne reprezentacije u bajtovima i raspon mogućih vrijednosti.

Tabela 1.1 - Cjelobrojni tipovi

Ime Dužina, bajtovi Raspon vrijednosti
Kardinale 4 0. .. 2 147 483 647
Byte 1 0...255
Shortint 1 -128...+127
Smallint 2 -32 768...+32 767
Riječ 2 0...65 535
Integer 4
Longint 4 -2 147 483 648...+2 147 483 647
Int64 8 -9*1018...+9*1018
LongWord 4 0. . .4 294 967 295

Vrste LongWord I Int64 su prvi put predstavljeni u verziji 4, a tipovi Smallint I Kardinale nije dostupno u Delphi 1. Tip cijeli broj za ovu verziju potrebno je 2 bajta i ima raspon vrijednosti od -32768 do +32767, tj. isto kao Smallint .

Kada koristite procedure i funkcije sa cjelobrojnim parametrima, trebali biste se voditi „ugniježđenjem“ tipova, tj. gde god se može koristiti riječ, dozvoljeno za korištenje Byte(ali ne i obrnuto), u Longint"ulazi" Smallint, što zauzvrat uključuje Shortint .

Lista procedura i funkcija primjenjivih na cjelobrojne tipove data je u tabeli. 1.2. Slova b, s, w, i, l označavaju izraze sljedećeg tipa: Byte , Shortint, Word, Integer i Longint ,

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

Tabela 1.2 – Standardne procedure i funkcije primjenjive na cijele tipove

Žalba Vrsta rezultata Akcija
trbušnjaci(x) x Vraća modul x
chr(b) Char Vraća znak po 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) Byte Vraća najviši luk argumenta
zdravo(ja) Isto Vraća treći bajt
Lo(i) Vraća niži bajt argumenta
niska(w) Isto
neparan(l) Boolean Vraća True ako je argument neparan broj
Slučajno(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) Integer Zamjenjuje bajtove u jednoj riječi
swap(w) Riječ Isto

Kada se radi s cijelim brojevima, tip rezultata će odgovarati tipu operanda, a ako su operandi različitih cjelobrojnih tipova, opći tip koji uključuje oba operanda. Na primjer, kada radite sa shortint I riječ uobičajeni tip će biti cijeli broj. U podrazumevanoj postavci, Delphi kompajler ne proizvodi kod za proveru da li je vrednost van opsega, što može dovesti do nesporazuma.

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

Pošto je Boolean tip redni tip, može se koristiti u naredbi petlje prebrojivog tipa. U Delphiju 32 for Boolean značenje

Ord (Tačno) = +1, dok za ostale tipove ( Bool, WordBool itd.)

Ord(True) = -1, tako da ove vrste operatora treba koristiti s oprezom! Na primjer, za Delphi 6 verziju, izvršni showMessage(" --- ") izraz u sljedećoj petlji za nikada neće biti izvršeno:

za L:= Netačno do Tačno

ShowMessage("--);

Ako zamijenimo tip parametra petlje L u prethodnom primjeru sa Boolean, petlja će se pokrenuti i poruka će se pojaviti na ekranu dva puta. [Za Delphi verzije 1 i 2 ord (Tačno) =+1 za bilo koji logički tip.]

Tip karaktera . Vrijednost tipa karaktera je skup svih PC znakova. Svakom znaku je dodijeljen 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 Windowsu koristi se ANSI kod (nazvan po Američkom nacionalnom institutu za standarde, američkom institutu za standardizaciju koji je predložio ovaj kod). Prva polovina PC karaktera sa kodovima 0...127 odgovara tabeli 1.3. Druga polovina znakova sa kodovima 128...255 varira za različite fontove. Standardni Windows fontovi Arial Cyr, Courier New Cyr i Times New Roman koriste posljednja 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 šifre 168 i 184.

Tabela 1.3 – Kodiranje znakova u skladu sa ANSI standardom

Kod Simbol Kod. Simbol Kod. Simbol Kod Simbol
0 NUL 32 B.L. 64 @ 96 "
1 ZON 33 ! 65 A 97 A
2 STX 34 66 IN 98 b
3 ETX 35 # 67 WITH 99 With
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 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 TO 107 k
12 FF 44 F 76 L 108 1
13 CR 45 - 77 M 109 m
14 SO 46 78 N 110 n
15 S.I. 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 CAN 56 8 88 X 120 x
25 E.M. 57 9 89 Y 121 U
26 SUB 58 : 90 Z .122 z
27 ITD 59 ; 91 t 123 {
28 FS 60 < 92 \ 124 1
29 G.S. 61 = 93 ] 125 }
30 R.S. 62 > 94 L 126 ~
31 US 63 F 95 127 r

Znakovi sa kodovima 0...31 se odnose na servisni kodovi. Ako se ovi kodovi koriste u tekstu karaktera programa, smatraju se razmakom.

Najčešći u matematici numeričke vrste- Ovo cijeli brojevi koji predstavljaju beskonačan broj diskretnih vrijednosti, i validan 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. Dakle, u Pascalu 7.0 se koriste sljedeći cjelobrojni numerički tipovi podataka:

Sa celim numeričke vrste podataka Pascal može izvesti sljedeće operacije:

  • aritmetika:
    dodatak(+);
    oduzimanje(-);
    množenje(*);
    ostatak podjele (mod);
    eksponencijacija;
    unarni plus (+);
    unarni minus (-).
  • Operacije odnosa:
    odnos jednakosti (=);
    odnos nejednakosti (<>);
    omjer je manji (<);
    omjer veći od (>);
    odnos ne manji od (>=);
    nema vise stava (<=).

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

Posebnu pažnju treba posvetiti operaciji dijeljenja cjelobrojnih numeričkih tipova podataka. Pascal dozvoljava dvije operacije dijeljenja, koje se označavaju u skladu s tim "/" I div. Morate znati da rezultat dijeljenja "/" nije cijeli broj, već pravi broj(ovo je tačno čak i ako podijelite 8 sa 2, tj. 8/2=4,0). Division div je cjelobrojna podjela, tj. tip rezultata je cijeli broj.

Opis Pascalovih numeričkih tipova podataka (realne)

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 cifara. Sa pomičnim zarezom, svaki numerički tip podataka je predstavljen kao dvije grupe cifara. Prva grupa brojeva naziva se mantisa, druga je eksponent. Općenito, numerički tip podataka u obliku s pomičnim zarezom može se predstaviti na sljedeći način: X= (+|-)MP (+ | -) r, gdje je M mantisa broja; r – red brojeva (r – cijeli broj); P – baza brojnog sistema. Na primjer, za decimalnu bazu, reprezentacija 2E-1 (ovdje je E baza decimalnog brojevnog sistema) će izgledati ovako: 2*10 -1 =0,2, a reprezentacija 1,234E5 će odgovarati: 1,234*10 5 =123400.0.

Pascal koristi sljedeće tipove 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čunara će se kreirati varijabla od 4 bajta. U ovom slučaju, 3 bajta će biti data za mantisu, a jedan bajt za red.

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

  • aritmetika:
    dodatak (+);
    oduzimanje(-);
    množenje(*);
    podjela(/);
    eksponencijacija;
    unarni plus (+);
    unarni minus (-).
  • Operacije odnosa:
    odnos nejednakosti (<>);
    omjer je manji (<);
    omjer veći od (>);
    odnos ne manji od (>=);
    nema vise stava (<=).

Kao što vidite, Pascal karakteriše bogat raspon realnih tipova, ali pristup numeričkim tipovima podataka single, duplo I produženo moguće samo pod posebnim načinima kompilacije. Ovi numerički tipovi podataka dizajnirani su za hardversku podršku za aritmetiku s pomičnim zarezom, a da bi ih efikasno koristio, vaš računar mora uključivati ​​matematički koprocesor.

Numerički tip podataka zauzima posebnu poziciju u Pascalu. comp, koji se tretira kao realan broj bez eksponencijalnih i razlomaka. zapravo, comp je "veliki" cijeli broj sa predznakom koji zadržava 19..20 značajnih decimalnih cifara. Istovremeno, numerički tip podataka comp u izrazima je u potpunosti 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 numeričkih tipova podataka gotovo nemoguće. Izuzetak je napravljen samo za tip cijeli broj, koji je dozvoljen za upotrebu u izrazima kao što su pravi. Na primjer, ako su varijable deklarirane ovako:

Var X: cijeli broj; Y: pravi;

To je operater

će biti sintaktički ispravan, iako postoji cjelobrojni izraz desno od znaka dodjele i realna varijabla lijevo, kompajler će automatski konvertirati numeričke tipove podataka. Obrnuta konverzija je automatski tip pravi u tipu cijeli broj nemoguće u Pascalu. Prisjetimo se koliko je bajtova dodijeljeno za varijable tipa cijeli broj I pravi: za cjelobrojni tip podataka cijeli broj Dodijeljena su 2 bajta memorije, a realno - 6 bajtova. Za pretvaranje pravi V cijeli broj Postoje dvije ugrađene funkcije: round(x) zaokružuje realni x na najbliži cijeli broj, trunc(x) skraćuje realni broj odbacivanjem razlomka.

Najbolji članci na ovu temu