Pascal tipovi podataka. Jednostavni tipovi podataka

Bilo koji podatak - konstante, varijable, vrijednosti funkcije 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 deklarisani.

Opisi informišu prevodioca, prvo, o postojanju varijabli i drugih korišćenih objekata, a drugo, 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 kao posebnog tipa objašnjava se činjenicom da u kompjuter cijeli i realni brojevi su različito predstavljeni: cijeli broj se može predstaviti apsolutno tačno, dok je realni broj neizbježno predstavljen sa nekom konačnom greškom, koja je određena svojstvima translatora.

Na primjer, neka varijabla x bude tipa real i njena vrijednost je 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 biti predstavljena u računaru apsolutno tačno i varijabla x neće moći uzeti stvarne (razlomke) vrijednosti - na kraju krajeva, ona je deklarirana kao varijabla cjelobrojnog tipa.

Dakle, tip podataka definira:

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

Uvođenje tipova podataka jedan je od osnovnih koncepata Pascal jezika, koji se sastoji u tome da prilikom izvođenja operacije dodjeljivanja vrijednosti izraza promjenljivoj varijabla i izraz moraju biti istog tipa. Ovu provjeru izvodi kompajler, što uvelike pojednostavljuje traženje grešaka i povećava pouzdanost programa.

Skup Turbo Pascal tipova podataka može se podijeliti u dvije grupe:

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

Standardni tipovi Turbo Pascala uključuju:

  • integer tip - cijeli broj;
  • pravi tip - pravi;
  • tip karaktera - char ;
  • boolean tip - boolean ;
  • vrsta stringa - string;
  • tip pokazivača - pokazivač ;
  • tip teksta je tekst.

Prilagođeni tipovi podataka su različite kombinacije standardnih tipova.

Prilagođene vrste uključuju:

  • nabrojani tip;
  • tip intervala;
  • tip pokazivača;
  • strukturirani tipovi;
  • proceduralni tip.

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

Jednostavni tipovi uključuju: cijeli broj, realni tip, tip karaktera, 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 naznačiti pododjeljke potrebnih 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 - boolean (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 imati samo cjelobrojne vrijednosti. Na računaru su vrednosti celobrojnog tipa tačno predstavljene. Ako je varijabla negativna, onda joj mora prethoditi znak “-”; ako je varijabla pozitivna, onda se znak “+” može izostaviti. Ovaj tip je neophodan u slučaju kada se neka vrijednost ne može približno prikazati - realan broj. Na primjer, broj ljudi, životinja itd.

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

Raspon podataka cjelobrojnog tipa određen je sa pet standardnih cjelobrojnih tipova i prikazan je u tabeli:

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

Posljednja dva tipa služe za predstavljanje samo pozitivnih brojeva, a prva tri i pozitivne i negativne brojeve.

U tekstu programa ili prilikom unosa podataka cjelobrojnog tipa ispisuju se vrijednosti bez decimalnog zareza . Stvarne vrijednosti varijabli ne smiju prelaziti dozvoljene vrijednosti tipa (Shortint, Integer, Longint, Byte, Word) koji je korišten za opisivanje varijable. Eventualni ekscesi u proračunima se ni na koji način ne kontroliraju, što će dovesti do nepravilnog rada programa.

Primjer korištenja varijable cjelobrojnog tipa

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 imati vrijednosti ne veće od 255. Ovdje je varijabli c dodijeljena vrijednost 500, što će uzrokovati prelijevanje rezultata.) Kraj.

Pravi tipovi

Vrijednosti realnih tipova u računaru su predstavljene približno. Opseg podataka realnog tipa određen je sa pet standardnih tipova: pravi (Real), sa jednostrukom preciznošću (Single), dvostrukom preciznošću (Double), sa povećanom preciznošću (Extended), složenim (Comp) i prikazan 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 i pokretni zarez.

Format broja sa fiksnom zarezom je isti kao i uobičajena matematička notacija za decimalni broj sa razlomkom. Na primjer, razlomak je odvojen od cijelog broja tačkom

34.5, -4.0, 77.001, 100.56

Format 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 naveden iza "E".

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

Primjeri s pomičnim zarezom:

Broj Pisanje 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 prikazan je unos istog broja 124. Promjenom položaja decimalnog zareza u mantisi (tačka „pluta“, otuda naziv „zapisivanje broja s pomičnim zarezom“) i istovremenom promjenom eksponent, možete odabrati najprikladnije brojeve unosa.

Primjer deklaracije 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 je označen rezerviranom riječju Char i dizajniran je da pohrani jedan znak. Podaci o tipu znakova u memoriji zauzimaju jedan bajt.

Format deklaracije simboličke varijable:

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

Prilikom definiranja vrijednosti karakterne varijable, znak se piše u apostrofima. Osim toga, možete specificirati traženi znak direktnim navođenjem njegove numeričke vrijednosti ASCII koda. U tom slučaju potrebno je ispred broja koji označava ASCII kod traženog znaka staviti znak #.

Primjer korištenja varijabli tipa znakova:

varc:char; (c je varijabla tipa karaktera) Početak c:='A'; (karakter 'A' je dodijeljen varijabli c) c:=#65; (promenljivoj c je takođe dodeljen simbol A. Njen ASCII kod je 65) c:='5'; (promenljivi c je dodeljen znak 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 deklaracije Boolean varijable:

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

Podaci ovog tipa mogu imati samo dvije vrijednosti:

  • Tačno - istina;
  • Netačno - lažno.

Booleov podaci se široko koriste za provjeru valjanosti određenih uslova i za poređenje vrijednosti. 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 (tačan);

relacija 5=3, rezultat je false (false).

Primjer korištenja booleovih varijabli.

var a,b:boolean; (a,b su logičke varijable) Početak a:=Tačno; (varijabla a je postavljena na true) b:=false; (varijabla b je postavljena na netačno) Kraj.

Konstante

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

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

Konstantni format deklaracije

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

Ako se u programu koristi više 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, pošto 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'; (konstanta tipa niza) Var (deklaracija sekcije varijable) X,y:integer; (varijable cjelobrojnog tipa)

Prilagođeni tipovi

Od skupa prilagođenih tipova, razmotrićemo samo

  • nabrojani tip;
  • tip intervala.

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

Nabrojani tip

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

Format nabrojanog tipa:

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

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

Primjer deklaracije nabrojanog tipa:

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

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

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 konstanti koje ne mogu biti:

  • konstante numeričkog tipa: 1, 2, 3, 4, itd.;
  • konstante karakternog tipa: "a", "s", "1", "3" itd.;
  • konstante tipa niza: "prva", "druga" itd.

Osim toga, aritmetičke operacije i standardne procedure za unos i izlaz Read , Write nisu primjenjive na vrijednosti ovog tipa.

Primjer korištenja varijabli nabrojanog tipa:

Upišite dani = (ponedjeljak, utorak, srijeda, četvrtak, petak, subota, nedelja); Var dan: dani; begin if day = Sunday then writeln('Danas je nedjelja!'); kraj.

Elementi u definiciji nabrojanog tipa smatraju se uređenim redoslijedom kojim su navedeni. Numeracija počinje od nule. Stoga, u gornjem primjeru, dani u sedmici imaju sljedeće serijske brojeve

Da programski odredite redni broj, koristite funkciju Ord().

U našem primjeru, serijski brojevi su jednaki:

Red(ponedeljak) = 0;

Red(subota) = 5;

Red (nedjelja) = 6.

tip intervala

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

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

  • dva znaka ".." tretiraju se kao jedan znak, tako da nisu dozvoljeni razmaci između njih;
  • lijevi kraj raspona ne smije prelaziti njegov desni kraj.

Intervalni tip je korisnički definiran tip podataka, tako da deklaracija ovog tipa počinje ključnom riječi TYPE.

Primjer opisa tipa intervala:

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

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 numeričkih tipova podataka (cijeli brojevi) Pascal

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, Pascal 7.0 koristi sljedeće cjelobrojne numeričke tipove 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 veza:
    odnos jednakosti (=);
    odnos nejednakosti (<>);
    omjer manje (<);
    omjer veći od (>);
    omjer ne manji od (>=);
    omjer nema više (<=).

Kada deluje sa cjelobrojni numerički tipovi podataka tip rezultata će odgovarati tipu operanada, a ako su operandi različitih cjelobrojnih tipova, tipu operanda koji ima maksimalnu kardinalnost (maksimalni raspon vrijednosti). Moguće prekoračenje 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. U Pascalu su dozvoljene dvije operacije dijeljenja, koje se označavaju "/" 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). Div divizija je cjelobrojna podjela, tj. cjelobrojni tip rezultata.

Opis numeričkih tipova podataka (realni) Pascal

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 cifara naziva se mantisa, druga - red. 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 je red broja (r je cijeli broj); P je baza brojevnog 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:

Kada se opisuje realna varijabla realnog tipa, 4-bajtna varijabla će se kreirati u memoriji računara. U ovom slučaju, 3 bajta će biti data ispod mantise, a jedan - pod redosledom.

Na stvarnim numeričkim tipovima podataka možete izvesti sljedeće operacije:

  • aritmetika:
    dodatak (+);
    oduzimanje(-);
    množenje(*);
    podjela(/);
    eksponencijacija;
    unarni plus (+);
    unarni minus (-).
  • Operacije veza:
    odnos nejednakosti (<>);
    omjer manje (<);
    omjer veći od (>);
    omjer ne manji od (>=);
    omjer nema više (<=).

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 su dizajnirani za hardversku podršku aritmetike s pomičnim zarezom i za njihovu efikasnu upotrebu, PC mora uključivati ​​matematički koprocesor.

Posebnu poziciju u Pascalu zauzima numerički tip podataka. comp, koji se tretira kao realan broj bez eksponencijalnih i razlomaka. zapravo, comp je predpisani "veliki" cijeli broj koji pohranjuje 19..20 značajnih decimalnih cifara. Istovremeno, numerički tip podataka comp u izrazima, potpuno je kompatibilan s drugim realnim tipovima: na njemu su definirane sve realne operacije, može se koristiti kao argument matematičkih funkcija itd.

O pretvaranju numeričkih tipova podataka u Pascal

Implicitne (automatske) konverzije numeričkih tipova podataka gotovo su nemoguće u Pascalu. Izuzetak je napravljen samo za tip cijeli broj, koji je dozvoljen za upotrebu u izrazima kao što je pravi. Na primjer, ako su varijable deklarirane na sljedeći način:

VarX: cijeli broj; Y: pravi

Zatim operater

će biti sintaksički ispravan, iako je cjelobrojni izraz desno od znaka dodjele, a realna varijabla lijevo, kompajler će automatski izvršiti konverziju numeričkih tipova podataka. Obrnuta konverzija je automatski tip pravi po vrsti cijeli broj nije moguće u Pascal-u. Prisjetimo se koliko je bajtova dodijeljeno za varijable poput cijeli broj I pravi: ispod cjelobrojni tip podaci cijeli broj Dodijeljena su 2 bajta memorije, a pod realnim - 6 bajtova. Za konverziju 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.

Koncept tipa je jedan od osnovnih koncepata svakog programskog jezika. Objekti (konstante, varijable, funkcije, izrazi) na kojima program radi su određenog tipa.

Tip je skup vrijednosti koje programski objekti mogu preuzeti i skup operacija dozvoljenih na tim vrijednostima.

Na primjer, vrijednosti 1 i 2 su cjelobrojnog tipa, mogu se sabirati, množiti i izvoditi druge aritmetičke operacije. Značenja "monitor" i "Pascal" su lingvističke prirode, imaju svoj skup valjanih operacija. U najčešće korišćenim jezicima mogu se koristiti samo dobro definisani, poznati tipovi. Pascal, zajedno sa standardnim tipovima koji se nalaze u drugim jezicima visokog nivoa, omogućava programeru da kreira sopstvene tipove.

Svi tipovi dozvoljeni u jeziku Pascal podijeljeni su u dvije velike grupe: jednostavno i složeno (strukturirano).

Tip Domet Mantisa, znaci Potrebna memorija (bajtovi)
REAL 2.9*10E-39..1.7*10E38 11-12
SINGLE 1.5*10E-45..3.4*10E38 7-8
DOUBLE 5.0*10E-324..1.7*10E308 15-16
EXTENDED 1.9*10E-4951..1.1*10E4932 19-20
COMP -2E+63+1..2E+63-1 10-20

Efikasna upotreba tipova SINGLE, DOUBLE, EXTEND, COMP je moguća samo kada je uključena direktiva ($N+). Podrazumevano je u isključenom stanju. Za rješavanje inženjerskih i ekonomskih problema dovoljne su vrijednosti tipa REAL.

Primjer

Var Res, Summa, Itog: real;

Bulevsky tip podataka je opisan identifikatorom BOOLEAN. Varijable i konstante ovog tipa mogu imati samo jednu od dvije vrijednosti: TRUE (true) ili FALSE (false).

Primjer

Var Sel1, Sel2: boolean;

A,B,C,D: boolean;

Izrazi booleovog tipa zauzimaju 1 bajt memorije i koriste se u logičkim i relacionim izrazima, kao i za kontrolu redosleda izvršavanja programskih izraza.

bukvalno (znak) tip je opisan standardnim identifikatorom CHAR. Konstante i varijable ovog tipa mogu uzeti jednu od vrijednosti tablice ASCII kodova. Vrijednost konstante ili varijable ovog tipa je zatvorena u apostrofima.

Na primjer, Var Bukva, Znak, Simbol: char;

Slovo:='A'; Znak:='+'; Simbol:='!'

Varijable tipa karaktera zauzimaju 1 bajt u memoriji. Upotreba podataka tipa char u aritmetičkim izrazima je zabranjena. Operacije poređenja mogu se primijeniti na literalne vrijednosti, čiji rezultat ovisi o broju literalne varijable ili konstante u tablici koda.

Pored standardnih tipova podataka, Pascal podržava skalarne tipove, definisano od strane korisnika. To uključuje enumerable I interval vrste . Ovi tipovi podataka zauzimaju 1 bajt memorije, tako da bilo koji korisnički definirani tip ne može sadržavati više od 255 elemenata. Njihova upotreba značajno poboljšava vidljivost programa, olakšava pronalaženje grešaka i štedi memoriju.

Nabrojani tip je specificirano direktno navođenjem svih vrijednosti koje varijabla određenog tipa može uzeti. Pojedinačne vrijednosti su odvojene zarezima, a cijela lista je zatvorena u zagradama.

Format

tip<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Primjer

Tip Sezona =(Proljeće, Ljeto, Jesen, Zima);

Var S1, S2: Sezona;

Jesen: (septembar, oktobar, novembar);

U ovom primjeru je prikazan eksplicitno deklarirani tip podataka korisnika sezone. Njihova značenja su određena - oznake godišnjih doba. Varijable S1 i S2 mogu imati samo jednu od navedenih vrijednosti. Pokušaj da im se dodijeli bilo koja druga vrijednost će uzrokovati softverski prekid. Treća vrsta nabrajanja je anonimna (nema imena) i specificira se nabrajanjem vrijednosti u Var sekciji. Jesen je varijabla ovog tipa i može imati vrijednosti septembar, oktobar, novembar. Dakle, može se dati bilo koji tip, ali to nije uvijek prihvatljivo. Prvi način je svakako razumljiviji i više u skladu s prirodom Pascal jezika.

tip intervala omogućava vam da postavite dvije konstante koje definiraju granice raspona vrijednosti za ovu varijablu. Kompajler generiše rutine provjere za svaku operaciju na varijablu tipa intervala koja određuje da li vrijednost varijable ostaje unutar raspona specificiranog za nju. Obje konstante moraju pripadati jednom od standardnih tipova, osim realnih. Vrijednost prve konstante mora nužno biti manja od vrijednosti druge.

Format

tip<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Primjer

Tip Dana = 1.. 31;

Var Work_d, Free_d: Dani;

U ovom primjeru, varijable Work_d, Free_d su tipa dana i može uzeti bilo koju vrijednost iz raspona 1 . . 31.

Izvan dometa pokreće softverski prekid.

Možete definirati tip intervala specificirajući granice raspona ne konstantnim vrijednostima, već njihovim imenima:

Konst Min = 1; max=31;

Tip Dani = Min .. Max;

Var Work_d, Free_d: Dani;

Strukturirani tipovi podaci se temelje na skalarnim tipovima i mogu sadržavati različite njihove kombinacije. Oni definiraju uređeni skup skalarnih elemenata i karakteriziraju ih tipom njihovih komponenti. Pascal pruža sljedeće strukturirane tipove podataka:

linija - niz znakova zatvoren u apostrofe;

niz - strukturirani tip podataka koji se sastoji od fiksnog broja elemenata istog tipa, kojima se pristupa preko indeksa ;

gomila - skup objekata odabranih prema nekom atributu ili grupi atributa, koji se mogu posmatrati kao cjelina;

rekord - skup fiksnog broja komponenti različitih tipova;

fajl- niz komponenti istog tipa i iste dužine.

Još dva strukturirana tipa - proceduralni i tip objekta(objektivno) - teško je uskladiti podatke u uobičajenom prikazu.

Slika 1- Skup osnovnih tipova Pascal jezika

U Pascalu varijable karakteriziraju njihove tip. Tip je svojstvo varijable, prema kojem varijabla može preuzeti skup vrijednosti koje dozvoljava ovaj tip i sudjelovati u skupu operacija dozvoljenih za ovaj tip.

Tip definira skup važećih vrijednosti koje varijabla datog tipa može uzeti. Takođe definiše skup dozvoljenih operacija nad varijablom datog tipa i definiše reprezentacije podataka u ram memorija kompjuter.

Na primjer:

n:integer;

Pascal je statički jezik, što znači da se tip varijable određuje kada se deklarira i ne može se mijenjati. Pascal jezik ima razvijen sistem tipova - svi podaci moraju pripadati prethodno poznatom tipu podataka (bilo standardni tip kreiran tokom razvoja jezika ili korisnički definisani tip koji definiše programer). Programer može kreirati svoje tipove sa proizvoljnom složenom strukturom zasnovanom na standardnim tipovima ili već definisano od strane korisnika vrste. Broj kreiranih tipova je neograničen. Prilagođeni tipovi u programu su deklarisani u sekciji TYPE formatom:

[ime] = [vrsta]

Standardni sistem tipova ima razgranatu, hijerarhijsku strukturu.

Primarni u hijerarhiji su jednostavni tipovi. Takvi tipovi su prisutni u većini programskih jezika i nazivaju se jednostavnim, ali u Pascalu imaju složeniju strukturu.

Strukturirani tipovi grade se prema određenim pravilima od jednostavnih tipova.

Pointers formiraju se iz jednostavnih pogleda i koriste se u programima za postavljanje adresa.

Proceduralni tipovi su inovacija jezika TurboPascal, i omogućavaju vam da pristupite potprogramima kao da su promenljive.

Objekti su također novi, a namijenjeni su da se koriste kao objektno orijentirani jezik.

U Pascalu postoji 5 tipova cjelobrojnih tipova. Svaki od njih karakterizira raspon prihvaćenih vrijednosti i njihovo mjesto u memoriji.

Pri korištenju cijelih brojeva treba se voditi ugniježđenošću tipova, tj. manji tipovi raspona mogu biti ugniježđeni unutar većih tipova raspona. Tip Byte može biti ugniježđen u sve tipove koji zauzimaju 2 i 4 bajta. Istovremeno, tip Short Int, koji zauzima 1 bajt, ne može biti ugniježđen u tip Word, jer nema negativne vrijednosti.

Postoji 5 pravih tipova:

Integer tipovi su tačno predstavljeni u računaru. Za razliku od cjelobrojnih tipova, vrijednost realnih tipova definira proizvoljan broj samo sa određenom konačnom preciznošću, ovisno o formatu broja. Realni brojevi su u kompjuteru predstavljeni fiksnim ili pokretnim zarezom.

2358.8395

0.23588395*10 4

0,23588395*E 4

Posebnu poziciju u Pascalu zauzima tip Comp, u stvari, to je veliki cijeli broj sa predznakom. Ovaj tip je kompatibilan sa svim realnim tipovima i može se koristiti za velike cijele brojeve. Kada se predstavljaju realni brojevi s pomičnim zarezom, decimalni zarez se uvijek podrazumijeva ispred lijeve ili najviše mantise, ali kada se radi s brojem, pomiče se ulijevo ili udesno.

Redni tipovi

Redni tipovi kombinuju nekoliko jednostavnih tipova. To uključuje:

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

Zajedničke karakteristike za redne tipove su: svaki tip ima konačan broj mogućih vrijednosti; vrijednost ovih tipova se može odrediti na određeni način i sa svakim brojem se može uporediti određeni broj, koji je redni broj; susjedne vrijednosti rednih tipova razlikuju se za jedan.

Za vrijednosti ordinalnog tipa može se primijeniti funkcija ODD(x), koja vraća redni broj argumenta x.

Funkcija PRED(x) - vraća prethodnu vrijednost rednog tipa. PRED(A) = 5.

SUCC(x) Funkcija - Vraća sljedeću vrijednost ordinalnog tipa. SUCC(A) = 5.

Tip karaktera

Vrijednosti tipova znakova su 256 znakova izvan skupa koje dozvoljava tablica kodova računara koji se koristi. Početna oblast ovog skupa, odnosno raspon od 0 do 127, odgovara skupu ASCII kodova u koje se učitavaju znakovi abecede, arapski brojevi i specijalni znakovi. Simboli početno područje su uvek prisutni na tastaturi računara. Starije područje se naziva alternativno, sadrži znakove nacionalnih abeceda i razne specijalne znakove, te pseudografske znakove koji ne odgovaraju ASCII kodu.

Vrijednost tipa karaktera zauzima jedan bajt u RAM-u. U programu su vrijednosti zatvorene u apostrofe. Također, vrijednosti se mogu specificirati u obliku njegovog ASCII koda. U ovom slučaju, ispred broja sa šifrom mora biti znak #.

C:= 'A'

Boolean (boolean) tip

Postoje dvije vrijednosti tipa Boolean: True (True) i False (False). Varijable ovog tipa su specificirane uslužnom riječju BOOLEAN. Booleova vrijednost zauzima jedan bajt u RAM-u. Vrijednosti True i False odgovaraju numeričkim vrijednostima 1 i 0.

Tip-opseg

Postoji podskup njegovog osnovnog tipa, koji može biti bilo koji redni tip. Tip raspona definiran je granicama unutar osnovnog tipa.

[min-vrijednost]…[maksimalna vrijednost]

Tip opsega se može navesti u odeljku Tip kao specifičan tip ili direktno u Var sekciji.

Prilikom definiranja tipa raspona, treba se voditi:

  • lijeva granica ne smije prelaziti desnu granicu;
  • tip opsega nasljeđuje sva svojstva osnovnog tipa, ali sa ograničenjima vezanim za njegovu nižu kardinalnost.

Nabrojani tip

Ovaj tip se odnosi na redne tipove i specificira se navođenjem onih vrijednosti koje može nabrojati. Svaka vrijednost je imenovana nekim identifikatorom i nalazi se na listi uokvirenoj u zagradama. Nabrojani tip je specificiran u Tip:

narodi = (muškarci, žene);

Prva vrijednost je 0, druga vrijednost je 1 i tako dalje.

Maksimalna snaga 65535 vrijednosti.

string type

Tip stringa pripada grupi strukturiranih tipova i sastoji se od osnovnog tipa Char. Tip stringa nije redni tip. Definira skup znakovnih nizova proizvoljne dužine do 255 znakova.

U programu se tip stringa deklarira riječju String. Pošto je String osnovni tip, deklarisan je u jeziku, a deklaracija varijable tipa String se vrši u Var. Kada deklarišete varijablu tipa string iza Stringa, preporučljivo je navesti dužinu niza u uglastim zagradama. Određuje cijeli broj između 0 i 255.

Fam: String;

Određivanje dužine stringa omogućava kompajleru da dodijeli određeni broj bajtova u RAM-u za datu varijablu. Ako dužina stringa nije specificirana, kompajler će dodijeliti maksimalni mogući broj bajtova (255) za vrijednost ove varijable.

Lekcija govori o glavnim standardnim tipovima podataka u Pascalu, konceptu varijable i konstante; objašnjava kako se radi s aritmetičkim operacijama

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

Na primjer, dodavanje tekstualnih podataka, ili kako se to ispravno naziva u programiranju - konkatenacija - je uobičajeno spajanje nizova, dok se dodavanje numeričkih podataka događa bit po bit, osim toga, razlomci i cijeli brojevi se takođe zbrajaju u različitim načine. Isto važi i za druge operacije.

Pogledajmo najčešće Pascal tipovi podaci.

Cjelobrojni tipovi podataka u Pascalu

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

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

Primjeri kako su varijable opisane (deklarirane) u Pascalu:

program a1; varx,y:integer; (tip cjelobrojnog) myname:string; (tip stringa) begin x:=1; y:=x+16; myname:="Petar"; writeln ("ime: ",moje ime, ", starost: ", y) kraj.

rezultat:
ime: Petar, godina: 17

Komentari u Pascalu

Obratite pažnju na to kako Koriste se Pascal komentari. U primjeru, komentari, tj. servisni tekst koji "nije vidljiv" kompajleru je zatvoren u vitičastim zagradama. Obično, komentare daju programeri kako bi razjasnili isječke koda.

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

Realni tipovi podataka u Pascalu

Realni brojevi u Pascalu i općenito u programiranju su nazivi razlomaka.

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

Realni tip u Pascalu je najčešće korišten od realnih tipova.

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

  • Redni
  • cijeli
  • mozgalica
  • Symbolic
  • nabrojano
  • Interval
  • Real

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

  • format koristi jedan broj, što znači broj pozicija dodijeljenih ovom broju u eksponencijalnom obliku;
  • p:=1234.6789; WriteIn(p:6:2); (1234.68)

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

    Konstante u Pascalu

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

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

    Primjer opisa konstante u Pascalu:

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

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

    "Prekrasan" izlaz cijelih i realnih brojeva

    Kako bi se ostavile uvlake nakon izlaza vrijednosti varijabli, tako da se vrijednosti ne bi "spajale" jedna s drugom, uobičajeno je da se kroz dvotočku naznači koliko znakova treba dati za izlaz od vrijednosti:


    Aritmetičke operacije u Pascalu

    Redosled operacija

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

    Pascal standardne aritmetičke procedure i funkcije

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

    • Operator inc u Pascalu, koji se izgovara kao inkrement, je standardna procedura Pascal, što znači povećanje za jedan.
    • Primjer rada Inc.:

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

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

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

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

    • Operator div u Pascalu je najčešće korišten, budući da su brojni zadaci povezani s akcijom cijelog broja dijeljenja.
    • Ostatak dijeljenja ili mod operator u Pascalu također je neophodan za rješavanje brojnih problema.
    • Zanimljivo je standardna funkcija odd Pascal, koji određuje da li je cijeli broj neparan. Odnosno, vraća true (true) za neparne brojeve, false (false) za parne brojeve.
    • Primjer korištenja neparne funkcije:

      varx:integer; beginx:=3; writeln(sqr(x)); (odgovor 9) kraj.

    • Eksponencijacija operacije u Pascalu nestala kao takva. Ali da biste podigli broj na stepen, možete koristiti funkciju exp.
    • Formula je: exp(ln(a)*n) , gdje je a broj, n je stepen (a>0).

      Međutim, u kompajleru pascal abc eksponencijacija je mnogo lakša:

      varx:integer; beginx:=9; writeln(sqrt(x)); (odgovor 3) kraj.

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

    Zadatak 5. U zoološkom vrtu postoje tri slona i dosta zečeva, a broj zečeva se često mijenja. Slon treba da pojede sto šargarepa dnevno, a zec dve. Svako jutro čuvar zoološkog vrta prijavljuje broj zečeva kompjuteru. Kompjuter, kao odgovor, treba da kaže pratiocu ukupan broj šargarepa koje danas treba hraniti zečevima i slonovima.

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



    Učitavanje...
    Top