Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Interesant
  • Tipuri de date întregi și reale în Pascal. Proceduri și funcții aritmetice standard Pascal

Tipuri de date întregi și reale în Pascal. Proceduri și funcții aritmetice standard Pascal

Un tip de date definește un set de valori valide și un set de operații valide.

Tipuri simple.

Tipurile simple sunt împărțite în ORDINALE și REALE.

1. TIPURI DE COMANDĂ , la randul lor sunt:

un întreg

Pascal definește 5 tipuri de numere întregi, care sunt definite în funcție de semnul și valoarea pe care le va lua variabila.

Tastați numele

Lungime (în octeți)

Gama de valori

32 768...+32 767

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

b) logic

Numele acestui tip este BOOLEAN. Valorile booleene pot fi una dintre constantele booleene: TRUE (adevărat) sau FALSE (fals).

c) simbolic

Numele acestui tip este CHAR - ocupă 1 octet. Valoarea unui tip de caracter este setul tuturor caracterelor PC. Fiecărui caracter i se atribuie un număr întreg în intervalul 0...255. Acest număr servește ca cod pentru reprezentarea internă a simbolului.

2. TIPURI REALE .

Spre deosebire de tipurile ordinale, ale căror valori sunt întotdeauna mapate la o serie de numere întregi și, prin urmare, sunt reprezentate absolut precis în computer, valorile tipurilor reale definesc număr arbitrar numai cu o oarecare precizie finită în funcție de formatul intern al numărului real.

Lungimea tipului de date numerice, octeți

Nume tip de date numerice

Cantitate cifre semnificative tip de date numerice

Interval de ordine zecimală a unui tip de date numerice

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

TIPURI STRUCTURATE

Tipurile de date structurate definesc o colecție ordonată de variabile scalare și sunt caracterizate de tipul componentelor lor.

Tipurile de date structurate, spre deosebire de cele simple, definesc seturi sensuri complexe cu un singur nume comun. Putem spune că tipurile structurale determină un anumit mod de a forma noi tipuri din cele existente.

Există mai multe metode de structurare. După metoda de organizare și tipul componentelor în tipurile de date complexe, se disting următoarele soiuri: tip obișnuit (matrice); tip combinat (înregistrări); tip de fișier(fișiere); mai multe tipuri; tipul de șir (șiruri de caractere); în limbajul Turbo Pascal versiunea 6.0 și mai veche, a fost introdus un tip de obiect (obiecte).

Spre deosebire de tipurile de date simple, datele de tip structurat se caracterizează prin multiplicitatea elementelor care formează acest tip, adică. o variabilă sau constantă de tip structurat are întotdeauna mai multe componente. Fiecare componentă, la rândul său, poate aparține unui tip structurat, adică. este posibilă cuibărirea tipurilor.

1. Matrice

Matricele din Turbo Pascal sunt în multe privințe similare cu tipurile de date similare din alte limbaje de programare. O caracteristică distinctivă a tablourilor este că toate componentele lor sunt date de același tip (eventual structurate). Aceste componente pot fi ușor organizate și oricare dintre ele poate fi accesată pur și simplu prin specificarea unui număr de serie.

Descrierea matricei este specificată după cum urmează:

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

Aici<имя типа>- identificator corect;

Array, of – cuvinte rezervate (array, from);

<сп.инд.типов>- o listă cu unul sau mai multe tipuri de index, separate prin virgule; parantezele pătrate care încadrează lista sunt o cerință de sintaxă;

<тип>- orice tip de Turbo Pascal.

Orice tipuri ordinale pot fi utilizate ca tipuri de index în Turbo Pascal, cu excepția tipurilor LongInt și interval cu tipul de bază LongInt.

Adâncimea de imbricare a tipurilor structurate în general, și, prin urmare, a tablourilor, este arbitrară, astfel încât numărul de elemente din lista de indici de tip (dimensiunea matricei) nu este limitat, cu toate acestea, lungimea totală a reprezentării interne a oricărei matrice nu poate fi limitată. să fie mai mare de 65520 de octeți.

2. Înregistrări

O înregistrare este o structură de date constând dintr-un număr fix de componente numite câmpuri de înregistrare. Spre deosebire de o matrice, componentele (câmpurile) unei înregistrări pot fi tipuri variate. Pentru a face posibilă referirea la una sau la alta componentă a unei înregistrări, câmpurile sunt denumite.

Structura unei declarații de tip post este:

< Numetip>=ÎNREGISTRARE< societate mixtă. câmpuri> Sfârșit

Aici<имя типа>- identificator corect;

RECORD, END – cuvinte rezervate (record, end);

<сп.полей>- lista câmpurilor; este o succesiune de secțiuni ale unei înregistrări separate prin punct și virgulă.

3. Seturi

Seturile sunt un set de obiecte de același tip care sunt conectate logic între ele. Natura conexiunilor dintre obiecte este doar implicată de programator și nu este controlată în niciun fel de Turbo Pascal. numărul de elemente incluse într-o mulțime poate varia de la 0 la 256 (o mulțime care nu conține elemente se numește goală).Este inconstanța numărului de elemente ale sale care se deosebesc de tablouri și înregistrări.

Două mulțimi sunt considerate echivalente dacă și numai dacă toate elementele lor sunt aceleași, iar ordinea elementelor mulțimii este indiferentă. Dacă toate elementele unui set sunt incluse și în altul, se spune că primul set este inclus în al doilea.

Descrierea tipului de set este:

< Numetip>=SET DE< bazele. tip>

Aici<имя типа>- identificator corect;

SET, OF – cuvinte rezervate (set, from);

<баз.тип> - tip de bază elemente ale unei mulțimi, care pot fi orice tip ordinal, cu excepția CUVÂNT, INTEGER și LONGINT.

Pentru a defini o mulțime se folosește așa-numitul constructor de mulțimi: o listă de specificații ale elementelor mulțimii, separate prin virgule; lista este înconjurată de paranteze drepte. Specificațiile elementului pot fi constante sau expresii ale unui tip de bază, precum și un tip de interval de același tip de bază.

4. Fișiere

Un fișier se referă fie la o zonă numită memorie externa Un PC sau un dispozitiv logic este o sursă potențială sau un receptor de informații.

Orice fișier are trei caracteristici

    are un nume, care permite programului să lucreze cu mai multe fișiere simultan.

    conţine componente de acelaşi tip. Tipul de componentă poate fi orice tip Turbo Pascal, cu excepția fișierelor. Cu alte cuvinte, nu puteți crea un „fișier de fișiere”.

    lungime din nou fișier creat nu este specificat în niciun fel când este anunțat și este limitat doar de capacitatea dispozitivelor de memorie externe.

Tip de fișier sau variabilă tip fișier poate fi setat într-unul din trei moduri:

< Nume>= DOSARUL DE< tip>;

< Nume>=TEXT;

<имя>= FIȘIER;

Aici<имя>- numele tipului de fișier (identificatorul corect);

FILE, OF – cuvinte rezervate (file, from);

TEXT – numele tipului de fișier text standard;

<тип>- orice tip de Turbo Pascal, cu excepția fișierelor.

În funcție de metoda de declarare, se pot distinge trei tipuri de fișiere:

· fișiere tastate(stabilit de clauza FILE OF...);

· fișiere text(definit de tipul TEXT);

· fișiere netipizate (definite de tipul FILE).

Despre conversia tipurilor de date numerice ale lui Pascal

În Pascal, conversiile implicite (automate) ale tipurilor de date numerice sunt aproape imposibile. Se face o excepție numai pentru tipul întreg, care poate fi folosit în expresii de tip real. De exemplu, dacă variabilele sunt declarate astfel:

Var X: întreg; Y: real;

apoi operatorul

va fi corectă din punct de vedere sintactic, deși există o expresie întreagă în dreapta semnului de atribuire și o variabilă reală în stânga, compilatorul va converti automat tipurile de date numerice. Conversia inversă automată de la tipul real la tipul întreg este imposibilă în Pascal. Să ne amintim câți octeți sunt alocați pentru variabilele de tip întreg și real: 2 octeți de memorie sunt alocați pentru tipul de date întreg și 6 octeți pentru real. Există două funcții încorporate pentru conversia realului în întreg: round(x) rotunjește un x real la cel mai apropiat număr întreg, trunc(x) trunchiază un real prin eliminarea părții fracționale.

Orice date - constante, variabile, valori ale funcției - sunt caracterizate în Pascal printr-un tip de date.

Să definim conceptul tip de date. După cum se știe deja, toate obiectele programului (variabile, constante etc.) trebuie descrise.

Descrierile informează traducătorul, în primul rând, despre existența variabilelor și a altor obiecte utilizate, iar în al doilea rând, indică proprietățile acestor obiecte. De exemplu, o descriere a unei variabile a cărei valoare este un număr indică proprietățile numerelor. În mod formal, numerele pot fi întregi și reale (fracționale). În Pascal, ca și în alte limbaje de programare, numerele sunt împărțite în două tipuri: întreg(cuvânt întreg rezervat) și real(cuvânt rezervat real).

Selectarea numerelor întregi în tip separat se explică prin faptul că în calculator numerele întregi și reale sunt reprezentate diferit: un număr întreg poate fi reprezentat cu absolut exactitate, dar un număr real poate fi reprezentat inevitabil cu o eroare finită, care este determinată de proprietățile traducătorului.

De exemplu, să fie variabila x de tip real și valoarea ei egală cu unu: x=1 . Valoarea corespunzătoare din memoria computerului poate fi 0,999999999, 1,000000001 sau 1,000000000. Dar dacă variabila x este declarată ca o variabilă de tip întreg, atunci unitatea din computer va fi reprezentată cu absolut precizie, iar variabila x nu va putea lua valori reale (fracționale) - la urma urmei, a fost descrisă ca o variabilă de tip întreg.

Deci tipul de date definește:

  • Reprezentare internă a datelor în memoria computerului;
  • setul de valori pe care cantitățile de acest tip le pot lua;
  • operațiuni care pot fi efectuate pe valori de acest tip.

Introducerea tipurilor de date este unul dintre conceptele de bază ale limbajului Pascal, și anume că atunci când se efectuează o operație de atribuire a unei variabile la valoarea unei expresii, variabila și expresia trebuie să fie de același tip. Această verificare este efectuată de compilator, ceea ce simplifică foarte mult căutarea erorilor și duce la creșterea fiabilității programului.

Multe tipuri de date ale limbajului Turbo Pascal pot fi împărțite în două grupuri:

  • tipuri standard (predefinite). ;
  • tipuri definite de utilizator (tipuri definite de utilizator) .

Tipurile standard Turbo Pascal includ:

  • tipul întreg – număr întreg;
  • tip real – real;
  • tip de caracter – char;
  • tip boolean – boolean;
  • tip șir – șir ;
  • tip pointer – pointer;
  • tip text – text .

Tipurile de date personalizate sunt diverse combinatii tipuri standard.

Tipurile personalizate includ:

cometariu. Este posibilă o altă clasificare a tipurilor de date, în funcție de care tipurile sunt împărțite în simple și complexe.

Tipurile simple includ: tipul întreg, tipul real, tipul caracterului, tipul logic, tipul enumerat și tipul intervalului.

Un tip complex reprezintă diverse combinații de tipuri simple (matrice, înregistrări, seturi, fișiere etc.)

Tipuri standard

Tipul de date standard este definit chiar de limbajul Pascal. Când folosiți tipuri standard într-un program, este suficient să indicați subsecțiunile tipurilor necesare (const, var) și apoi să descrieți constantele și variabilele utilizate în program. Nu este nevoie să folosiți subsecțiunea Tip.

De exemplu, dacă programul folosește numai variabile:

i,j – întreg (întregi);

x,y - real (real);

t,s - caracter (caracter);

a,b – boolean (logic),

atunci este nevoie doar de o subsecțiune de variabile - Var. Prin urmare, în partea descriptivă a programului, declarațiile de variabile sunt scrise după cum urmează:

Tipuri întregi

Datele de acest tip pot accepta doar valori întregi. Într-un computer, valorile de tip întreg sunt reprezentate cu absolut exactitate. Dacă variabila este negativă, atunci trebuie să fie precedată de semnul „–”; dacă variabila este pozitivă, atunci semnul „+” poate fi omis. Acest tip este necesar în cazul în care o anumită cantitate nu poate fi reprezentată aproximativ ca număr real. De exemplu, numărul de oameni, animale etc.

Exemple de scriere a valorilor întregi: 17, 0, 44789, -4, -127.

Intervalul de modificare a datelor de tip întreg este determinat de cinci tipuri standard numere întregi și este prezentată în tabel:

Tip Gamă Dimensiunea în octeți
Shortint -128...+128 1
Întreg -32768...32767 2
Longint -2147483648...2147483647 4
octet 0...255 1
Cuvânt 0...65535 2

Ultimele două tipuri servesc doar pentru a reprezenta numere pozitive, iar primele trei sunt numere pozitive și negative.

În textul programului sau la introducerea datelor de tip întreg, valorile sunt scrise fără virgulă zecimală . Valorile reale ale variabilelor nu trebuie să depășească valori acceptabile tipul (Shortint, Integer, Longint, Byte, Word) care a fost folosit pentru a descrie variabila. Posibilele excese în timpul calculelor nu sunt controlate în niciun fel, ceea ce va duce la munca greșită programe.

Un exemplu de utilizare a unei variabile întregi

Var a:intger; b:cuvânt; c:octet; Începe a:=300; (a este setat la 300) b:=300; (b stabilit la 300) c:=200; (c este setat la 200) a:=b+c; (a este setat la 500) c:=b; (Eroare! Variabila c poate lua doar valori de 255. Aici variabila c este setată la 500, ceea ce va cauza depășirea rezultatului.) Sfârșit.

Tipuri reale

Valorile tipurilor reale sunt reprezentate aproximativ într-un computer. Interval de modificare a datelor tip real este definit de cinci tipuri standard: real (Real), precizie simplă (Single), precizie dublă (Dublu), precizie extinsă (Extended), complex (Comp) și este prezentat în tabel:

Tip Gamă Numărul de cifre semnificative Dimensiunea în octeți
Real 2.9E-39...1.7E+38 11-12 6
Singur 1.5E-45...3.4E+38 >7-8 4
Dubla 5E-324...1.7E+308 15-16 8
Extins 3.4E-4951...1.1E+4932 19-20 10
Comp -2E+63+1...+2E+63-1 19-20 8

Numerele reale pot fi reprezentate în două formate: virgulă fixă ​​și virgulă mobilă.

Formatul pentru scrierea unui număr cu virgulă fixă ​​este același cu notația matematică obișnuită pentru un număr zecimal cu parte fracționată. Partea fracțională este separată de întreaga parte folosind un punct, de exemplu

34.5, -4.0, 77.001, 100.56

Formatul de notație în virgulă mobilă este utilizat atunci când scrieți numere foarte mari sau foarte mici. În acest format, numărul dinaintea „E” este înmulțit cu numărul 10 la puterea de după „E”.

1E-4 1*10-4
3,4574E+3 3.4574*10+3
4,51E+1 4.51*10+1

Exemple de numere în virgulă mobilă:

Număr Înregistrare în Pascal
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

În tabelul de la 5 la 9, rândul arată înregistrarea aceluiași număr 124. Prin schimbarea poziției punctului zecimal în mantise (punctul „plutește”, de unde și numele „scrierea unui număr în virgulă mobilă”) și la în același timp, schimbând valoarea comenzii, puteți alege cel mai mult intrare potrivită numere.

Un exemplu de descriere a variabilelor de tip real.

Tip de caracter

Valorile tipului de caractere sunt caractere care pot fi tastate pe tastatura computerului. Acest lucru vă permite să prezentați text în program și să efectuați diferite operații asupra acestuia: inserați, ștergeți litere și cuvinte individuale, formatare etc.

Un tip de caracter este desemnat de cuvântul rezervat Char și este conceput pentru a stoca un singur caracter. Datele de caractere ocupă un octet în memorie.

Formatul declarației variabilelor simbolice:

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

La definirea valorii unei variabile caracter, caracterul este scris cu apostrofe. În plus, puteți seta simbolul necesar specificându-l direct valoare numerică cod ASCII. În acest caz, trebuie să precedați numărul care indică codul ASCII al caracterului solicitat cu semnul #.

Un exemplu de utilizare a variabilelor tip caracter:

Var c:char; (c este o variabilă de tip caracter) Begin c:=’A’; (variabilei c i se atribuie caracterul 'A') c:=#65; (variabilei c i se atribuie și caracterul A. Codul său ASCII este 65) c:=’5’; (variabilei c i se atribuie simbolul 5, End. Aici 5 nu mai este un număr)

tip boolean

Tipul de date logic se numește Boolean după matematicianul englez George Boole, creatorul domeniului matematicii - logica matematică.

Format pentru declararea unei variabile de tip boolean:

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

Datele de acest tip pot lua doar două valori:

  • Adevarat adevarat;
  • Falsul este o minciună.

Datele logice sunt utilizate pe scară largă în verificarea validității anumitor condiții și în compararea cantităților. Rezultatul poate fi adevărat sau fals.

Pentru a compara datele, sunt furnizate următoarele operații relaționale:

Un exemplu de utilizare a operațiilor relaționale:

relația 5>3, rezultat adevărat;

relația 5=3, rezultat fals.

Un exemplu de utilizare a variabilelor de tip boolean.

Var a,b:boolean; (a,b sunt variabile de tip logic) Begin a:=True; (variabilei a i se atribuie valoarea „adevărat”) b:=fals; (variabila b este setată la fals) End.

constante

Numerele întregi, numerele reale, caracterele, șirurile de caractere și constantele logice pot fi folosite ca constante.

O constantă trebuie declarată în partea sa descriptivă folosind cuvântul rezervat const.

Format de declarație constantă

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

Dacă un program folosește mai multe constante, este permisă doar una. cuvânt cheie Const , descrierea fiecărei constante se termină cu punct și virgulă. Un bloc constant se termină cu declararea unei alte secțiuni sau declararea unui bloc de instrucțiuni executabile.

Const (declarație secțiune constantă) an=2003; (constanta de tip intreg, deoarece nu exista virgula zecimala in inregistrare) time=14,05; (constantă de tip real) N=24; (constanta de tip intreg, deoarece nu exista virgula zecimala in notatie) P=3,14; (constantă de tip real) A=adevărat; (constantă booleană) str1=’7’; (constantă tip caracter) str2=’A’; (constantă tip caracter) str3=’Turbo’; (constant tip șir) Var (declarație de secțiune variabilă) X,y:întreger; (variabile de tip întreg)

Tipuri personalizate

Din totalitate tipuri personalizate luați în considerare numai

  • tip enumerat;
  • tip de interval.

Vom avea nevoie de aceste două tipuri atunci când studiem tablourile.

Tip enumerare

Un tip de date enumerate descrie noi tipuri de date ale căror valori sunt definite de programator. Un tip enumerat este specificat printr-o enumerare a valorilor pe care le poate primi. Fiecare valoare este denumită printr-un identificator și se află într-o listă încadrată parantezele. Un tip enumerat este un tip de date definit de utilizator, astfel încât declarația sa de tip începe cu cuvântul rezervat TYPE.

Format de tip enumerare:

<имя типа>= (constant1, constant2,..., constantN);

Unde
constant1 , constant2 ,..., constantN – un set ordonat de valori identificatoare tratate ca constante.

Un exemplu de descriere a tipului enumerat:

Tip minge=(unu, doi, trei, patru, cinci); var t:ball;

Aici bila este numele tipului enumerat; unu, doi, trei, patru, cinci – constante; t este o variabilă care poate lua orice valoare constantă.

Într-un tip enumerat, o constantă este un identificator, deci nu este citată și nu poate fi un număr. Astfel, într-un tip enumerat, o constantă este un tip special de constantă care nu poate fi:

  • constante de tip numeric: 1, 2, 3, 4 etc.;
  • constante de tip de caracter: „a”, „s”, „1”, „3”, etc.;
  • constante de tip șir: „primul”, „al doilea”, etc.

În plus, valorile de acest tip nu se aplică operatii aritmeticeși proceduri standard de intrare și ieșire Citire, Scriere.

Un exemplu de utilizare a variabilelor enumerate:

Tip zile = (luni, marți, miercuri, joi, vineri, sâmbătă, duminică); Var zi: zile; begin if day = Sunday then writeln(‘Astăzi este duminică!’); Sfârşit.

Elementele incluse în definiția unui tip enumerat sunt considerate a fi ordonate în ordinea în care sunt enumerate. Numerotarea începe de la zero. Prin urmare, în exemplul dat, zilele săptămânii au următoarele numere de serie

Pentru definiție software Funcția Ord() este utilizată pentru a determina numărul ordinal.

În exemplul nostru, numerele de ordine sunt egale:

Ord(luni) = 0;

Ord(sâmbătă) = 5;

Ord (duminică) = 6.

Tip de interval

Dacă o variabilă nu acceptă toate valorile tipului său, ci doar valorile conținute într-un anumit interval, atunci acest tip de date se numește tip de interval. Tipul interval este adesea numit tip limitat și tip interval. Un tip de interval este definit de limitele valorilor sale:

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

  • două caractere „..” sunt tratate ca un singur caracter, deci nu sunt permise spații între ele;
  • marginea din stânga a intervalului nu trebuie să depășească marginea din dreapta.

Tipul de interval este un tip de date definit de utilizator, astfel încât declarația sa de tip începe cu cuvântul funcție TYPE.

Un exemplu de descriere a tipului de interval:

Tip cifră = 1..10; luna = 1..31; lat = 'A'..'Z';

Tipuri de date Pascal

Orice date (constante, variabile, valori ale funcției sau expresii) din Turbo Pascal sunt caracterizate prin tipurile lor. Un tip definește setul de valori valide pe care le poate avea un obiect, precum și setul de operații valide care i se pot aplica. Tipul determină și formatul reprezentării interne a datelor din memoria computerului.

Există următoarele tipuri de date în Turbo Pascal.

1) Tipuri simple:

– real;

– simbolic;

– Boolean (logic);

– enumerate;

– limitat (gamă).

2) Tipuri compozite (structurate):

– regulat (matrice);

– combinate (înregistrări);

– dosar;

– multiplu;

– sfoară;

- obiecte.

3) Tipuri de referință (indicatori tip și netipizat).

4) Tipuri procedurale.

Turbo Pascal oferă un mecanism pentru crearea de noi tipuri de date, datorită căruia numărul total de tipuri utilizate în program poate fi atât de mare pe cât se dorește.

Tipul întreg . Valorile întregi sunt elementele unui subset de numere întregi. Există cinci tipuri de numere întregi în Turbo Pascal. Numele lor, intervalul de valori, lungimea reprezentării în octeți sunt date în tabel. 6.

Tabelul 6

Tipuri de date întregi

Variabilele întregi sunt descrise folosind cuvintele rezervate de mai sus:

i, j, k: întreg;

Datele de tip întreg sunt stocate exact în memorie. De exemplu, variabilele de tip întreg ocupă 2 octeți (16 biți) în memorie, care sunt alocați după cum urmează: 1 bit este alocat pentru a stoca semnul numărului (0 dacă numărul este pozitiv și 1 dacă numărul este negativ) și 15 biți pentru a stoca numărul sistem binar Socoteala. Maxim numar decimal, care poate fi scris ca binar pe 15 biți este 32767.

Atunci când utilizați proceduri și funcții cu parametri întregi, ar trebui să vă ghidați după „imbricarea” tipurilor, de exemplu. oriunde este folosit cuvântul, byte este permis (dar nu invers), longint „include” un număr întreg, care, la rândul său, include shortint.

Pentru tipul întreg sunt definite cinci operații de bază, al căror rezultat este și un număr întreg: +, -, *, div, mod (adunare, scădere, înmulțire, împărțire întreg și rest diviziune intregi). În expresiile aritmetice, operațiile *, div, mod au prioritate mai mare decât operațiile +, -. Exemple de expresii de scriere:

Lista procedurilor și funcțiilor aplicabile tipurilor întregi este dată în tabel. 7. Literele b, s, w, i, l denotă expresii de tip byte, shortint, word, întreg și, respectiv, longint; x este o expresie a oricăruia dintre aceste tipuri; identificatorii vb, vs, vw, vi, vl, vx denotă variabile ale tipurilor corespunzătoare. ÎN paranteza patrata este specificat un parametru opțional.

Tabelul 7

Proceduri standardși funcții aplicabile pentru tipuri întregi

Recurs Tip de rezultat Acțiune
Abs(x) X Returnează modulul x
Chr(b) Char Returnează un caracter după codul său
Dec(vx[,i]) - Descrește valoarea lui vx cu i, iar în absența lui i – cu 1
Inc(vx[,i]) - Crește valoarea lui vx cu i, iar în absența lui i – cu 1
Buna eu) octet Returnează octetul înalt al argumentului
Buna eu) octet La fel
Lo(i) octet Returnează octetul scăzut al argumentului
Scăzut) octet La fel
Impar(l) octet Returnează adevărat dacă argumentul este un număr impar
Aleatoriu (w) La fel ca parametrul Se intoarce număr pseudoaleator, distribuit uniform în intervalul 0…(w-1)
Sqr(x) X Returnează pătratul argumentului
Schimbați(i) Întreg
Schimbați (w) Cuvânt Schimbă octeți într-un cuvânt
Succ(x) La fel ca parametrul Returnează următoarea valoare întreagă, adică x+1
Pred(x) La fel ca parametrul Returnează valoarea întregului precedent, adică x-1

Când se operează cu numere întregi, tipul rezultatului va corespunde tipului de operand, iar dacă operanzii sunt de diferite tipuri întregi, tipului de operand care are intervalul maxim de valori. Posibila depășire a rezultatului nu este controlată, ceea ce poate duce la erori în program.

Tip real. Valorile tipurilor reale definesc un număr arbitrar cu o anumită precizie finită, în funcție de formatul intern al numărului real. Există cinci tipuri reale în Turbo Pascal (Tabelul 8).

Tabelul 8

Tipuri de date reale

Variabilele reale sunt descrise folosind cuvintele rezervate de mai sus:

Un număr real din memoria computerului este format din 3 părți:

Cifra semnului unui număr;

Parte exponențială;

Mantisa numărului.

Mantisa are o lungime de la 23 (Single) la 63 (Extended) cifre binare, ceea ce oferă o precizie de 7-8 pentru Single și 19-20 pentru Extended zecimal digits. Punctul zecimal (virgula) este implicat înaintea cifrei din stânga (cea mai semnificativă) a mantisei, dar atunci când se operează pe un număr, poziția acestuia este deplasată la stânga sau la dreapta, în conformitate cu ordinea binară a numărului stocat în partea exponențială. , prin urmare operațiile pe numere reale se numesc aritmetică în virgulă mobilă (virgulă).

Tipurile Single, Double și Extended pot fi accesate numai atunci când regimuri speciale compilare. Pentru a activa aceste moduri, selectați elementul de meniu Opțiuni, Compilator…și activați opțiunea 8087/80287 in grup Prelucrare numerică.

O poziție specială în Turbo Pascal este ocupată de tipul Comp, care este tratat ca un număr real fără părți exponențiale și fracționale. De fapt, Comp este un întreg mare cu semn care stochează 19...20 de cifre zecimale semnificative. În același timp, în expresiile Comp este pe deplin compatibil cu orice alte tipuri reale: toate operațiile reale sunt definite pe el, poate fi folosit ca argument operatii matematice etc.



Numerele reale sunt date în sistem zecimal calcule într-unul din doua forme.

ÎN formă de punct fixînregistrarea constă dintr-un număr întreg și o parte fracțională, separate între ele printr-un punct, de exemplu:

0.087 4.0 23.5 0.6

ÎN formă în virgulă mobilă intrarea conține litera E, care înseamnă „înmulțiți cu zece la putere”, iar puterea este un număr întreg, de exemplu:

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

Următoarele operații sunt definite pe obiecte de tip real: +, -, *, /.

Operațiunile „*” și „/” au prioritate mai mare decât operațiunile „+” și „-”.

Dacă cel puțin un operand este real, atunci operațiile +, -, *, / conduc la un rezultat real. Operația de împărțire / conduce la un rezultat real chiar și în cazul a doi operanzi întregi, de exemplu: 9/3 = 3,0.

Pentru a lucra cu date reale, pot fi utilizate funcții matematice standard prezentate în tabel. 9. Rezultatul acestor funcții este și el real.

Tabelul 9

Funcții matematice, lucrând cu date reale

Este interzisă utilizarea variabilelor și constantelor de tip REAL:

– în funcțiile pred(x), succ(x), ord(x);

– ca indici de matrice;

– ca etichete în declarațiile de transfer de control;

– ca variabile de control (parametri de ciclu).

Pentru a converti un număr real într-un număr întreg, puteți utiliza următoarele funcții:

trunc(x) – parte întreagă a lui x (x – real);

round(x) – rotunjirea la cel mai apropiat număr întreg (x este real).

Tip de caracter. Variabilele de caractere sunt descrise folosind cuvântul rezervat char:

Valorile de acest tip sunt selectate dintr-un set de caractere ordonat (set ASCII) format din 256 de caractere. Fiecărui caracter i se atribuie un număr întreg din intervalul 0..255. De exemplu, litere mari alfabet latin A..Z au codurile 65..90, și literă mică– coduri 97..122.

Valoarea unei variabile de tip de caracter este un singur caracter înconjurat de apostrofe, de exemplu:

„F” „8” „*”

Variabilele de caractere pot fi comparate între ele, iar codurile de caractere sunt comparate.

Există funcții care stabilesc o corespondență între un simbol și codul său:

ord(c) – dă numărul simbolului c;

chr(i) – returnează numărul caracterului i.

Aceste funcții sunt inverse între ele.

tip boolean. Variabilele booleene sunt descrise folosind cuvântul rezervat boolean:

p1, p2: boolean;

Variabilele de tip boolean iau două valori: Adevărat(Adevărat), fals(minciună).

Aceste valori sunt ordonate după cum urmează: false< true. false имеет număr de serie 0, adevărat are numărul de index 1.

Variabilelor booleene li se poate atribui o valoare direct sau pot fi utilizate expresie logică. De exemplu,

a, d, g, b: boolean;

Operațiuni de relație (<, <=, >, >=, =, <>), aplicate variabilelor întregi, reale și simbolice, produc un rezultat logic.

Operații logice peste operanzi de tip logic dau și un rezultat logic (operațiile sunt date în ordinea descrescătoare a priorității) (pentru mai multe detalii, vezi tabelele 3 și 5):

nu – negație (operație NU);

și – înmulțirea logică (operație AND);

sau – adăugare logică (operație OR);

xor – OR exclusiv.

Expresia (nu a) are sensul opus a lui a.

Expresia (a și b) se evaluează drept adevărată dacă doar a și b sunt adevărate; în caz contrar, valoarea acestei expresii este falsă.

Expresia (a sau b) este evaluată ca falsă dacă doar a și b sunt evaluate ca false; în caz contrar, rezultatul este adevărat.

Tip enumerare. Un tip de enumerare non-standard este specificat printr-o enumerare sub formă de nume de valori pe care o variabilă le poate lua. Fiecare valoare este denumită printr-un identificator și este situată într-o listă înconjurată de paranteze. Forma generală descrieri de tip enumerare:

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

unde x este numele tipului, w1, w2,..., wn sunt valorile care pot lua variabilă de tip X.

Aceste valori sunt ordonate w1

Următoarele funcții standard se aplică argumentului w de tip enumerat:

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

culoare=(rosu, negru, galben, verde)

ww=(stânga, sus, dreapta, jos);

f: matrice de ww;

succ(d) = galben;

Variabilele a și b sunt de tip w. pot lua una dintre cele trei valori, cu on

Operațiile relaționale sunt aplicabile valorilor de tip enumerat: =,<>, <=, >=, <, >.

Este permisă specificarea constantelor de tip enumerate direct în secțiune var fără a folosi partiția tip, De exemplu

c,d: (rosu, negru, galben, verde);

Tip de gamă (limitat).. Când definiți un tip limitat, specificați valorile inițiale și finale pe care le poate lua o variabilă de tip interval. Valorile sunt separate prin două puncte.

Descrierea tipului restricționat este de formă

Aici a este numele tipului, min, max sunt constante.

Atunci când specificați un tip restricționat, trebuie respectate următoarele reguli:

– ambele constante de limită min și max trebuie să fie de același tip;

– se creează un tip limitat din datele unui tip de bază, care poate fi un întreg, caracter sau tip enumerat. De exemplu:

col = roșu.. galben;

litera = 'a'..'f';

– Variabilele de tip restricționat pot fi declarate în secțiunea var fără a se face referire la secțiunea de tip:

– un tip restricționat moștenește toate proprietățile tipului de bază din care este creat;

– limita minimă trebuie să fie întotdeauna mai mică decât limita maximă.

Matrice. Un tablou este un tip complex care este o structură constând dintr-un număr fix de componente de același tip. Tipul de componentă se numește tip de bază. Toate componentele matricei pot fi comandate cu ușurință și accesul la oricare dintre ele poate fi asigurat prin simpla indicare a numărului său de serie. Descrierea matricei în secțiune var are forma:

A: matrice de t2;

unde a este numele matricei, matrice, de– cuvinte de serviciu (însemnând „matrice de...”), t1 – tip index; t2 – tip componentă (tip bază).

Numărul de indici determină dimensiunea matricei. Indecii pot fi tipuri întregi (cu excepția longint), caractere, logice, enumerare și intervale. Indicele sunt separate prin virgule și cuprinse între paranteze drepte. Componentele matricei pot fi de orice tip, cu excepția fișierului.

Exemplul 1. Luați în considerare o matrice unidimensională C, ale cărei valori sunt cinci numere reale:

4.6 6.23 12 -4.8 0.7

Descrierea acestei matrice este următoarea:

c: matrice de real;

Pe baza unei anumite valori de index, puteți selecta o anumită componentă a matricei (de exemplu, C înseamnă al treilea element al matricei C, adică numărul 12).

Exemplul 2. Luați în considerare o matrice bidimensională B (matricea B), a cărei valoare este un tabel de numere întregi:

Descrierea acestei matrice este următoarea:

b de număr întreg;

Aici b este numele matricei, primul index este numărul rândului și ia valori de la 1 la 2, al doilea este numărul coloanei și ia valori de la 1 la 4. Pe baza unor valori specifice de index, puteți selectați o componentă de matrice specifică (de exemplu, b înseamnă un element de tabel situat în primul rând și a treia coloană, adică numărul -4).

Indecșii pot fi expresii arbitrare corespunzătoare tipului de index din descrierea matricei:

a: matrice de real;

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

Setul de operații asupra elementelor matrice este complet determinat de tipul acestor elemente.

Tip șir. Tipul de șir este un set de șiruri de caractere de lungime arbitrară (de la zero la un număr dat). Variabilele de tip șir sunt descrise folosind un cuvânt funcție şir:

b: şir ;

Particularitati:

– valoarea unei variabile șir poate fi introdusă folosind tastatura, atribuită într-un operator de atribuire sau citită dintr-un fișier. În acest caz, lungimea șirului introdus poate fi orice (mai mică decât dimensiunea specificată, egală cu dimensiunea sau mai mare, în acest din urmă caz, caracterele suplimentare sunt eliminate); a:= „Rezultate”;

– este permisă utilizarea operației de concatenare în operatorul de atribuire, deoarece șirurile își pot modifica dinamic lungimea: a:= a + ‘calculări’;

– lungimea maximă a unei variabile șir este de 255 de caractere, această indicație de lungime poate fi omisă:

A: şir;

a1: şir ;

Variabilele a și a1 sunt aceleași (descriere echivalentă).

– memoria pentru variabilele de tip șir este alocată la maximum, dar este utilizată doar partea din memorie ocupată efectiv de caractere șir în momentul de față. Pentru a descrie o variabilă șir de lungime n, se folosesc n+1 octeți de memorie: n octeți pentru a stoca caractere șir, n+1 octeți pentru a stoca lungimea curentă.

– operațiunile de comparare sunt definite pe valorile tipurilor de șir:< <= > >= = <>. Un șir scurt este întotdeauna mai mic decât unul lung. Dacă șirurile au aceeași lungime, atunci codurile de caractere sunt comparate.

– accesul la elementele individuale ale unui șir este posibil în același mod ca și accesul la elementele matricei: a, a. Numărul elementului de linie este indicat între paranteze drepte.

Proceduri și funcții orientate spre lucrul cu șiruri.

concat (s1, s2,…)– funcția de îmbinare a șirurilor, s1, s2,... - linii, numărul de linii poate fi arbitrar. Rezultatul funcției este un șir. Dacă șirul rezultat este mai lung de 255 de caractere, șirul este trunchiat la 255 de caractere.

copie(e, index, numărare)– funcția de extragere a unui șir dintr-un șir sursă s lungime numara caractere, începând cu numărul caracterului index.

șterge (s, index, număr)– procedură pentru îndepărtarea din șirul s a unui subșir de lungime numara caractere, începând cu numărul caracterului index.

insert (s1, s2, index)– procedura de inserare a rândurilor s1 a alinia s2, începând cu caracterul cu numărul index.

lungime(i)– funcție pentru determinarea lungimii curente a șirului, returnează un număr egal cu lungimea curentă a șirului.

poziție (s1, s2)– funcția de căutare într-un șir s2 subșiruri s1. returnează numărul de poziție al primului caracter al unui subșir s1în linie s2(sau 0 dacă această linie nu există).

val (st, x, cod)– procedura de conversie a șirului s într-un număr întreg sau variabilă reală X. Parametru cod conține 0 dacă conversia a avut succes (și în X este plasat rezultatul conversiei), sau numărul de poziție al liniei în care este detectat caracterul eronat (în acest caz, valoarea X nu se schimba).

Compatibilitate și conversie de tip. Turbo Pascal este un limbaj tipizat. Este construit pe baza respectării stricte a conceptului de tip, conform căruia toate operațiile utilizate în limbaj sunt definite numai pe operanzi de tipuri compatibile.

Două tipuri sunt considerate compatibile dacă:

– ambele sunt de același tip;

– ambele sunt reale;

- ambele sunt intacte;

– un tip este un tip de interval de al doilea tip;

– ambele sunt tipuri de gamă de același tip de bază;

– ambele sunt mulţimi compuse din elemente de acelaşi tip de bază;

– ambele sunt șiruri de caractere împachetate (definite cu cuvântul precedent packed) de aceeași lungime maximă;

– unul este de tip șir, iar celălalt este de tip șir sau caracter;

– un tip este orice pointer, iar celălalt este un pointer către obiectul său asociat;

– ambele sunt tipuri procedurale cu același tip de rezultat (pentru un tip de funcție), număr de parametri și tip de parametri corespunzători reciproc.

Compatibilitatea tipurilor este deosebit de importantă în operatorii de atribuire. Fie t1 tipul variabilei și t2 tipul expresiei, adică se realizează atribuirea t1:=t2. Această atribuire este posibilă în următoarele cazuri:

– t1 și t2 sunt de același tip, iar acest tip nu se referă la fișiere, rețele de fișiere, înregistrări care conțin câmpuri de fișiere sau rețele de astfel de înregistrări;

– t1 și t2 sunt tipuri ordinale compatibile, iar valoarea lui t2 este în interval valori posibile t1;

– t1 și t2 sunt tipuri reale, iar valoarea lui t2 se află în intervalul de valori posibile ale lui t1;

– t1 – tip real și t2 – tip întreg;

– t1 – linie și t2 – caracter;

– t1 – sfoară și t2 – sfoară ambalată;

– t1 și t2 – șiruri ambalate compatibile;

– t1 și t2 sunt mulțimi compatibile și toți membrii lui t2 aparțin mulțimii de valori posibile ale lui t1;

– t1 și t2 sunt pointeri compatibili;

– t1 și t2 sunt tipuri procedurale compatibile;

– t1 este un obiect și t2 este descendentul acestuia.

Într-un program, datele de un tip pot fi convertite în date de alt tip. Această conversie poate fi explicită sau implicită.

Conversia explicită de tip apelează funcții speciale de conversie ale căror argumente aparțin unui tip și ale căror valori aparțin altuia. Un exemplu sunt funcțiile deja discutate ord, trunc, round, chr.

Conversia implicită este posibilă numai în două cazuri:

– în expresiile compuse din variabile reale și întregi, acestea din urmă sunt convertite automat într-un tip real, iar întreaga expresie în ansamblu capătă tip real;

– aceeași zonă de memorie este tratată alternativ ca conținând date de unul sau altul tip (combinând date de diferite tipuri în memorie).

Agenția Federală pentru Educație

Eseu

„TIPURI DE DATE ÎN PASCAL”

1. Tipuri de date

Orice date, de ex. constantele, variabilele, proprietățile, valorile funcției sau expresiile sunt caracterizate prin tipurile lor. Un tip definește setul de valori valide pe care le poate avea un obiect, precum și setul de operații valide care i se pot aplica. În plus, tipul determină și formatul reprezentării interne a datelor în memoria PC-ului.

În general, limbajul Object Pascal este caracterizat de o structură ramificată de tipuri de date (Fig. 1.1). Limbajul oferă un mecanism pentru crearea de noi tipuri, datorită căruia numărul total de tipuri utilizate într-un program poate fi atât de mare pe cât se dorește.

Datele procesate în program sunt împărțite în variabile, constante și literale:

constante reprezintă date ale căror valori sunt setate în secțiunea declarație constantă și nu se modifică în timpul execuției programului.

Variabile sunt declarate în secțiunea de declarare a variabilelor, dar spre deosebire de constante, ele își primesc valorile în timpul execuției programului, iar aceste valori pot fi modificate. Constantele și variabilele pot fi denumite după nume.

Literal nu are identificator și este reprezentat direct de valoarea din textul programului.

Tip definește setul de valori pe care le pot lua elementele de date și setul de operațiuni permise asupra acestora.

Acesta și cele patru capitole ulterioare oferă descrieri detaliate ale fiecărui tip.

1.1 Tipuri simple

Tipurile simple includ tipurile ordinale, reale și datetime.

Tipuri ordinale diferă prin faptul că fiecare dintre ele are un număr finit de valori posibile. Aceste valori pot fi ordonate într-un anumit mod (de unde și numele tipurilor) și, prin urmare, fiecare dintre ele poate fi asociată cu un număr întreg - numărul ordinal al valorii.

Tipuri reale, strict vorbind, au și un număr finit de valori, care este determinat de formatul reprezentării interne a unui număr real. Cu toate acestea, numărul de valori posibile ale tipurilor reale este atât de mare încât nu este posibil să se asocieze un număr întreg (numărul său) cu fiecare dintre ele.

Tip dată-oră conceput pentru a stoca data și ora. De fapt, folosește formatul real în aceste scopuri.

1.1.1 Tipuri ordinale

Tipurile ordinale includ (vezi Figura 1.1) tipuri întregi, logice, cu caractere, enumerate și intervale. Funcția Ord(x) poate fi aplicată la oricare dintre ele, care returnează numărul ordinal al valorii expresiei X.


Orez. 1.1 - Structura tipului de date

Pentru întreg tipuri, funcția ord(x) returnează însăși valoarea lui x, adică Ord(X) = x pentru x aparținând oricărui întreg tip. Aplicarea Ord(x) la logic , simbolic şi enumerabil tipuri oferă un număr întreg pozitiv în intervalul de la 0 la 1 ( tip boolean), de la 0 la 255 ( simbolic), de la 0 la 65535 ( enumerabil). Tip-gamă păstrează toate proprietățile tipului ordinal de bază, deci rezultatul aplicării funcției ord(x) la acesta depinde de proprietățile acestui tip.

De asemenea, puteți aplica funcții la tipurile ordinale:

pred(x)- returnează valoarea anterioară a tipului ordinal (valoarea care corespunde numărului ordinal ord(x) -1, adică ord(pred(x)) = ord(x) - 1;

succ(x)- returnează următoarea valoare a tipului ordinal, care corespunde numărului ordinal ord(x) +1, adică ord(Succ(x)) = ord(x) + 1.

De exemplu, dacă un program definește o variabilă

atunci funcția PRED(c) va returna caracterul „4”, iar funcția SUCC(c) va returna caracterul „6”.

Dacă ne imaginăm orice tip ordinal ca un set ordonat de valori care cresc de la stânga la dreapta și ocupă un anumit segment pe axa numerelor, atunci funcția pred(x) nu este definită pentru capătul din stânga, iar succ (x) este nedefinit pentru capătul drept al acestui segment.

Tipuri întregi . Gama de valori posibile ale tipurilor întregi depinde de reprezentarea lor internă, care poate fi unul, doi, patru sau opt octeți. În tabel 1.1 arată numele tipurilor întregi, lungimea reprezentării lor interne în octeți și intervalul de valori posibile.

Tabelul 1.1 - Tipuri întregi

Nume Lungime, octeți Gama de valori
Cardinal 4 0. .. 2 147 483 647
octet 1 0...255
Shortint 1 -128...+127
Smallint 2 -32 768...+32 767
Cuvânt 2 0...65 535
Întreg 4
Longint 4 -2 147 483 648...+2 147 483 647
Int64 8 -9*1018...+9*1018
Cuvânt lung 4 0. . .4 294 967 295

Tipuri Cuvânt lungȘi Int64 au fost introduse pentru prima dată în versiunea 4 și tipurile SmallintȘi Cardinal nu este disponibil în Delphi 1. Tastați întreg pentru această versiune este nevoie de 2 octeți și are un interval de valori de la -32768 la +32767, adică la fel ca Smallint .

Atunci când utilizați proceduri și funcții cu parametri întregi, ar trebui să vă ghidați după „imbricarea” tipurilor, de exemplu. oriunde poate fi folosit cuvânt, permis de utilizare octet(dar nu invers), în Longint„intră” Smallint, care la rândul său include Shortint .

Lista procedurilor și funcțiilor aplicabile tipurilor întregi este dată în tabel. 1.2. Literele b, s, w, i, l denotă expresii de următorul tip: octet , Shortint, Word, Integer și Longint ,

x este o expresie a oricăruia dintre aceste tipuri; literele vb, vs, vw, vi, vl, vx denotă variabile ale tipurilor corespunzătoare. Un parametru opțional este indicat între paranteze drepte.

Tabelul 1.2 - Proceduri standard și funcții aplicabile pentru tipuri întregi

Recurs Tip de rezultat Acțiune
abs(x) X Returnează modulul x
chr(b) Char Returnează un caracter după codul său
dec(vx[,i]) - Descrește valoarea lui vx cu i, iar în absența lui i - cu 1
inc(vx[,i]) - Crește valoarea lui vx cu i, iar în absența lui i - cu 1
salut(w) octet Returnează cel mai înalt arc al argumentului
Buna eu) La fel Returnează al treilea octet
Lo(i) Returnează octetul scăzut al argumentului
Scăzut) La fel
impar (l) boolean Returnează True dacă argumentul este un număr impar
Aleatoriu (w) La fel ca parametrul Returnează un număr pseudoaleator distribuit uniform în intervalul 0...(w-l)
sqr(x) X Returnează pătratul argumentului
schimb(i) Întreg Schimbă octeți într-un cuvânt
schimb(w) Cuvânt La fel

Când se operează cu numere întregi, tipul rezultat va corespunde tipului operanzilor, iar dacă operanzii sunt de diferite tipuri întregi, tipul general care include ambii operanzi. De exemplu, când operezi cu scurtăturăȘi cuvânt tipul comun va fi întreg. În setarea implicită, compilatorul Delphi nu produce cod pentru a verifica dacă o valoare este în afara intervalului, ceea ce poate duce la neînțelegeri.

Tipuri booleene . Tipurile logice includ Boolean, ByteBool, Bool, wordBoolȘi LongBool. În Pascal standard, este definit doar tipul boolean, alte tipuri logice sunt introduse în Object Pascal pentru compatibilitate cu Windows: tipuri booleanȘi ByteBool fiecare ocupă un octet, BoolȘi WordBool- 2 octeți fiecare, LongBool- 4 octeți. Valorile booleene pot fi una dintre constantele pre-declarate False sau True.

Deoarece tipul boolean este un tip ordinal, poate fi folosit într-o instrucțiune buclă de tip numărabil. În Delphi 32 pentru boolean sens

Ord (Adevărat) = +1, în timp ce pentru alte tipuri ( Bool, WordBool etc.)

Ord(True) = -1, astfel încât aceste tipuri de operatori ar trebui să fie utilizați cu precauție! De exemplu, pentru versiunea Delphi 6, instrucțiunea executabilă showMessage(" --- ") în bucla următoare pentru nu va fi executat niciodată:

pentru L:= Fals la True do

ShowMessage("--);

Dacă înlocuim parametrul de buclă tip L din exemplul anterior cu boolean, bucla va rula și mesajul va apărea de două ori pe ecran. [Pentru versiunile Delphi 1 și 2 ord (True) =+1 pentru orice tip boolean.]

Tip de caracter . Valoarea unui tip de caracter este setul tuturor caracterelor PC. Fiecărui caracter i se atribuie un număr întreg în intervalul 0...255. Acest număr servește ca cod pentru reprezentarea internă a simbolului; este returnat de funcția ord.

Pentru codificare în Windows se folosește codul ANSI (numit după American National Standard Institute, institutul american de standardizare care a propus acest cod). Prima jumătate a caracterelor PC cu codurile 0... 127 corespunde Tabelului 1.3. A doua jumătate a caracterelor cu codurile 128...255 variază pentru diferite fonturi. Fonturile standard Windows Arial Cyr, Courier New Cyr și Times New Roman folosesc ultimele 64 de coduri (de la 192 la 256) pentru a reprezenta caractere chirilice (fără literele „ё” și „Ё”): „A”... „Z” sunt valori codificate 192..223, „a”... „i” - 224...255. Simbolurile „Ё” și „е” au codurile 168 și, respectiv, 184.

Tabelul 1.3 - Codificarea caracterelor în conformitate cu standardul ANSI

Cod Simbol Cod. Simbol Cod. Simbol Cod Simbol
0 NUL 32 B.L. 64 @ 96 "
1 ZON 33 ! 65 A 97 A
2 STX 34 66 ÎN 98 b
3 ETX 35 # 67 CU 99 Cu
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 eu 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 LA 107 k
12 FF 44 F 76 L 108 1
13 CR 45 - 77 M 109 m
14 ASA DE 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 POATE SA 56 8 88 X 120 X
25 E.M. 57 9 89 Y 121 U
26 SUB 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 NE 63 F 95 127 r

Caracterele cu codurile 0...31 se referă la coduri de serviciu. Dacă aceste coduri sunt folosite în textul caracterelor programului, ele sunt considerate spații albe.

Cel mai frecvent în matematică tipuri numerice- Acest întreg numere care reprezintă un număr infinit de valori discrete și valabil numere care reprezintă un continuum nelimitat de valori.

Descrierea tipurilor de date numerice ale lui Pascal (numere întregi)

În cadrul aceluiași limbaj, pot fi implementate diferite submulțimi ale mulțimii de numere întregi. Gama de valori posibile ale tipurilor numerice întregi depinde de reprezentarea lor internă, care poate fi de unul, doi sau patru octeți. Astfel, în Pascal 7.0 sunt utilizate următoarele tipuri de date numerice întregi:

Cu întreg tipuri de date numerice Pascal poate efectua următoarele operații:

  • Aritmetic:
    adăugare(+);
    scădere(-);
    multiplicare(*);
    restul diviziunii (mod);
    exponentiarea;
    plus unar (+);
    minus unar (-).
  • Operațiuni de relație:
    relație de egalitate (=);
    relație de inegalitate (<>);
    raportul este mai mic (<);
    raport mai mare decât (>);
    relație nu mai mică de (>=);
    nu mai atitudine (<=).

Când acţionează cu tipuri de date numerice întregi tipul rezultatului va corespunde tipului operanzilor, iar dacă operanzii sunt de diferite tipuri întregi, tipului operandului care are puterea maximă (gamă maximă de valori). Posibila depășire a rezultatului nu este controlată în niciun fel (este important!) , ceea ce poate duce la erori.

O atenție deosebită trebuie acordată operațiunii de divizare a tipurilor de date numerice întregi. Pascal permite două operații de împărțire, care sunt notate corespunzător "/" Și div. Trebuie să știți că rezultatul împărțirii „/” nu este un număr întreg, dar numar real(acest lucru este adevărat chiar dacă împărțiți 8 la 2, adică 8/2=4,0). Diviziunea div este diviziune intregi, adică tipul de rezultat este întreg.

Descrierea tipurilor de date numerice ale lui Pascal (reale)

Tipul de date numerice reale se referă la un subset de numere reale care pot fi reprezentate în așa-numitul format în virgulă mobilă cu un număr fix de cifre. Cu virgulă mobilă, fiecare tip de date numerice este reprezentat ca două grupuri de cifre. Primul grup de numere se numește mantisa, al doilea este exponent. În general, un tip de date numerice sub formă de virgulă mobilă poate fi reprezentat astfel: X= (+|-)MP (+ | -) r, unde M este mantisa numărului; r – ordinea numerelor (r – întreg); P – baza sistemului numeric. De exemplu, pentru baza zecimală, reprezentarea 2E-1 (aici E este baza sistemului numeric zecimal) va arăta astfel: 2*10 -1 =0.2, iar reprezentarea 1.234E5 va corespunde cu: 1.234*10 5 =123400,0.

Pascal folosește următoarele tipuri de numere reale, care definesc un număr arbitrar doar cu o precizie finită, în funcție de formatul intern al numărului real:

Când se descrie o variabilă reală de tip real, o variabilă de 4 octeți va fi creată în memoria computerului. În acest caz, 3 octeți vor fi dați pentru mantisă și un octet pentru comandă.

Următoarele operații pot fi efectuate pe tipuri de date numerice reale:

  • Aritmetic:
    adăugare (+);
    scădere(-);
    multiplicare(*);
    Divizia(/);
    exponentiarea;
    plus unar (+);
    minus unar (-).
  • Operațiuni de relație:
    relație de inegalitate (<>);
    raportul este mai mic (<);
    raport mai mare decât (>);
    relație nu mai mică de (>=);
    nu mai atitudine (<=).

După cum puteți vedea, Pascal se caracterizează printr-o gamă bogată de tipuri reale, dar acces la tipuri de date numerice singur, dublaȘi extins posibil numai în moduri speciale de compilare. Aceste tipuri de date numerice sunt concepute pentru suport hardware pentru aritmetica în virgulă mobilă și, pentru a le utiliza eficient, computerul trebuie să includă un coprocesor matematic.

Tipul de date numerice ocupă o poziție specială în Pascal. comp, care este tratat ca un număr real fără părți exponențiale și fracționale. De fapt, comp este un întreg cu semn „mare” care reține 19..20 de cifre zecimale semnificative. În același timp, tipul de date numerice compîn expresii este pe deplin compatibil cu alte tipuri reale: toate operațiile reale sunt definite pe el, poate fi folosit ca argument la funcții matematice etc.

Despre conversia tipurilor de date numerice ale lui Pascal

În Pascal, conversiile implicite (automate) ale tipurilor de date numerice sunt aproape imposibile. Se face o excepție numai pentru tip întreg, care poate fi folosit în expresii precum real. De exemplu, dacă variabilele sunt declarate astfel:

Var X: întreg; Y: real;

Acesta este operatorul

va fi corectă din punct de vedere sintactic, deși există o expresie întreagă în dreapta semnului de atribuire și o variabilă reală în stânga, compilatorul va converti automat tipurile de date numerice. Conversia inversă este tip automat realîn tip întreg imposibil în Pascal. Să ne amintim câți octeți sunt alocați pentru variabilele de tip întregȘi real: pentru tipul de date întreg întreg Sunt alocați 2 octeți de memorie, iar în realitate - 6 octeți. A converti real V întreg Există două funcții încorporate: rundă(x) rotunjește x real la cel mai apropiat număr întreg, trunchi(x) trunchiază un număr real prin eliminarea părții fracționale.

Cele mai bune articole pe această temă