Ce este byte în Pascal. Pascal

Când descrieți o variabilă, trebuie să indicați tipul acesteia. Tipul unei variabile descrie setul de valori pe care îl poate lua și acțiunile care pot fi efectuate asupra acesteia. O declarație de tip specifică un identificator care reprezintă tipul.

Tipurile simple sunt împărțite în standard (ordinal) și enumerate (restrâns).

Tipuri standard

Turbo Pascal are patru tipuri standard încorporate: întreg, real, boolean și char.

Tip întreg (întreg)

Turbo Pascal are cinci tipuri de numere întregi încorporate: shortint, integer, longint, byte și word. Fiecare tip denotă un subset specific de numere întregi, așa cum se arată în tabelul următor.

Tipuri întregi încorporate.

Gamă

Format

8 biți semnați

16 biți semnați

2147483648 +2147483647

Semnat pe 32 de biți

8 biți nesemnați

16 biți nesemnați

Operațiile aritmetice pe operanzi de tip întreg sunt efectuate în conformitate cu următoarele reguli:

  1. Un tip de constantă întreg este un tip de număr întreg încorporat cu cel mai mic interval care include valoarea acelei constante întregi.
  2. În cazul unei operații binare (o operație care utilizează doi operanzi), ambii operanzi sunt convertiți în tipul lor comun înainte ca operația să fie efectuată asupra lor. Tipul comun este tipul întreg încorporat, cu cel mai mic interval care include toate valorile posibile ale ambelor tipuri. De exemplu, tipul obișnuit pentru un număr întreg și un număr întreg cu lungimea de octeți este întreg, iar tipul comun pentru un întreg și un număr întreg cu lungimea unui cuvânt este întreg lung. Acțiunea se realizează în funcție de precizia tipului generic, iar tipul rezultatului este tipul generic.
  3. Expresia din partea dreaptă a operatorului de atribuire este evaluată indiferent de mărimea variabilei din stânga.

Operații efectuate pe numere întregi:

„+” - adaos

„-“ - scădere

"*" - înmulțire

SQR - pătrat

DIV - renunță la partea fracțională după împărțire

MOD - obținerea restului întreg după împărțire

ABS - modul de număr

RANDOM(X) - obținerea unui număr aleatoriu de la 0 la X

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

Variabilele de tip întreg sunt descrise după cum urmează:

var lista de variabile: tip;

De exemplu: var а,р,n:integer;

Tip real (real)

Tipul real este un subset de numere reale care poate fi reprezentat în format virgulă mobilă cu un număr fix de cifre. Scrierea unei valori în format virgulă mobilă implică de obicei trei valori - m, b și e - astfel încât m*b e, unde b este întotdeauna 10 și m și e sunt valori întregi în intervalul real. Aceste valori ale lui m și e determină în continuare intervalul și precizia tipului real.

Există cinci tipuri de tipuri reale: reale, simple, duble, exnende, comp. Tipurile reale variază în domeniul și precizia valorilor asociate cu acestea

Interval și cifre zecimale pentru tipuri reale

Gamă

Numerele

2,9x10E-39 până la 1,7x10E 38

1,5x10E-45 până la 3,4x10E 38

5,0x10E-324 până la 1,7x10E 308

3,4x10E-493 până la 1,1x10E 403

2E 63 până la 2E 63

Operatii efectuate pe numere reale:

  • Toate operațiunile sunt valabile pentru numere întregi.
  • SQRT(x) este rădăcina pătrată a lui x.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X) este logaritmul natural.
  • EXP(X) este exponentul lui X (e x).
  • EXP(X*LN(A)) - exponentiație (A x).
  • Funcții de conversie a tipului:
    • TRUNC(X) - aruncă partea fracționată;
    • ROUND(X) - rotunjire.
  • Câteva reguli ale operațiilor aritmetice:
    • Dacă o operație aritmetică conține numere de tip real și întreg, atunci rezultatul va fi de tip real.
    • Toate componentele expresiei sunt scrise pe o singură linie.
    • Se folosesc doar paranteze.
    • Nu poți pune două semne aritmetice la rând.

Variabilele de tip real sunt descrise după cum urmează:

var lista de variabile: tip;

De exemplu:

var d,g,k:real ;

Tip de caracter (caracter)

Tipul char este orice caracter inclus în apostrofe. Pentru a reprezenta un apostrof ca variabilă caracter, trebuie să-l încadrați într-un apostrof: ''''.

Fiecare caracter are propriul său cod și număr. Numerele de serie ale cifrelor 0,1..9 sunt ordonate crescător. Numerele de serie ale literelor sunt, de asemenea, ordonate în ordine crescătoare, dar nu se succed neapărat.

Următoarele semne de comparație se aplică datelor de caractere:

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

De exemplu: „A”< ‘W’

Funcții care se aplică variabilelor caracter:

  1. ORD(X) - determină numărul de serie al simbolului X. ord (‘a’) =97 ;
  2. CHR(X) - identifică un caracter după număr. chr(97) =’a’;
  3. PRED(X) - returnează caracterul care precede caracterul X. pred (‘B’) =’A’;
  4. SUCC(X) - returnează caracterul după caracterul X. succ (‘A’) =’B’;

Tip enumerare

Un tip de date enumerate este numit astfel deoarece este specificat ca o listă de constante într-o ordine strict definită și într-o cantitate strict definită. Un tip enumerat constă dintr-o listă de constante. Variabilele de acest tip pot lua valoarea oricăreia dintre aceste constante. Descrierea tipului de enumerare arată astfel:

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

Unde<список констант>- acesta este un tip special de constante, specificate separate prin virgule și având propriul număr de serie, începând de la 0.

De exemplu:

tip direction=(nord, sud, vest, est) ; luna=(iunie, iulie, august, ianuarie) ; capacitate=(galeata, butoi, canistra, rezervor); var rotatie:directie; plecare:luna; volum:capacitate; var turn:(nord, sud, vest, est) ; plecare: (iunie, iulie, august, ianuarie) ; volum: (galeata, butoi, canistra, rezervor);

Puteți efectua următorii operatori de atribuire:

Rotatie:=sud; plecare:=august; volum:=rezervor;

dar nu poți face sarcini mixte:

Plecare:=sud; volum:=august;

Următoarele funcții se aplică variabilelor de tip enumerat:

1. ORD - număr de serie

2. PRED - element anterior

3. SUCC - element ulterior.

PRED (butoaie) = găleată; SUCC (sud) =vest; ORD (iulie) =1 ;

Variabilele de tip enumerat pot fi comparate deoarece sunt ordonate și numerotate. Deci expresiile: nord< юг, июнь < январь имеют значения TRUE, а юг>vest și tanc<бочка значение FАLSE.

Tip limitat

Dacă o variabilă nu acceptă toate valorile tipului său, ci doar într-un anumit interval, atunci poate fi considerată o variabilă de tip limitat. Fiecare tip constrâns este definit prin impunerea unei constrângeri asupra tipurilor de bază.

Este descris după cum urmează:

TIP<имя типа>=constant1 ..constant2

În acest caz, trebuie respectate următoarele reguli:

  1. Ambele constante mărginite trebuie să fie de același tip.
  2. Orice tip simplu, cu excepția realului, poate fi folosit ca tip de bază.
  3. Valoarea inițială la definirea unui tip limitat nu trebuie să fie mai mare decât valoarea finală.
indice de tip =0 ..63 ; litera=’a’...’z’; var char1,char2:litera; a,g:index ;

O puteți descrie imediat în secțiunea descriere a variabilei:

var a,g:0 ..63; char1,char2:'a'..'z'. Bazele programării
Fiecare profesionist a fost cândva un ceainic. Cu siguranță ești familiarizat cu starea când „nu știi cum să începi să gândești pentru a veni cu așa ceva”. Probabil te-ai confruntat cu o situație în care pur și simplu nu știi de unde să începi. Această carte se adresează tocmai acestor oameni care ar dori să devină programatori, dar care nu au nicio idee cum să înceapă această cale. ...

Aproape toate tipurile de date întregi sunt . Aceste tipuri de date reprezintă numere întregi într-un anumit interval. Numele specifice ale tipurilor întregi și ale intervalelor de valori depind de limbajul de programare specific, de compilator și de modul de compilare. Puteți afla mai multe despre acest lucru în documentația compilatorului.

De exemplu, tipul de date Întregîn Delphi are un interval de -2147483648…2147483647, în timp ce în Turbo Pascal tipul de date Întreg reprezintă numere din intervalul -35768...32767. În Free Pascal, intervalul de valori de tip Întreg determinat de modul selectat.

Deoarece Lazarus folosește compilatorul Free Pascal, tot ce se spune despre tipurile de date în legătură cu Free Pascal este valabil și pentru Lazarus.

Deci, tipurile de date întregi ale lui Free Pascal sunt listate în Tabelul 13.1.

Tabelul 13.1. Tipuri gratuite de date Pascal Integer (Lazarus).

Tip Dimensiune, octeți Gama de valori
octet 1 0…255
Shortint 1 -128…127
Smallint 2 -35768…32767
Cuvânt 2 0…65535
Întreg 2 sau 4 Depinde de modul de compilare
Cardinal 4 0…4294967295
Longint 4 -2147483648…2147483647
Cuvânt lung 4 0...4294967295
Int64 8 -9223372036854775808...9223372036854775807
QWord 8 0...18446744073709551615

NOTĂ
Tastați în Free Pascal Int64Și QWord nu sunt! Aceasta înseamnă că nu le puteți utiliza, de exemplu, pentru variabilele de index în bucle. Totuși, le-am prezentat aici pentru a nu le descrie separat în viitor și pentru a colecta toate tipurile de numere întregi Free Pascal într-un singur loc. Dacă nu înțelegeți unele cuvinte, nu vă alarmați. La vremea potrivită, vă voi spune despre totul mai detaliat.

Și acum câteva explicații despre tabel.

Într-o coloană TIP sunt dați identificatori de tip de date (cuvinte cheie care indică compilatorului cărui tip aparțin anumite date). Veți învăța cum să utilizați acești identificatori în următoarele lecții.

Într-o coloană MĂRIMEA indică dimensiunea pe care tipul de date o ocupă în memoria computerului. De exemplu, un număr întreg pozitiv poate fi reprezentat prin diferite tipuri: octet, Cuvânt, Cardinal etc. Cu toate acestea, un număr ca Cardinal va ocupa 4 octeți în memorie, în timp ce un număr ca octet– doar 1 octet. Prin urmare, dacă știți sigur că numărul cu care lucrați nu va lua niciodată o valoare mai mare de 255, atunci este mai bine să-l definiți ca tip octet, deoarece aceasta va economisi spațiu în memoria computerului dvs. Deși nu totul este atât de simplu aici (nuanțele de distribuție a memoriei și a altor resurse computerizate depășesc domeniul de aplicare).

Într-o coloană GAMĂ specifică intervalul de valori pe care operează tipul de date. De exemplu, un număr ca octet poate lua valori de la 0 la 255.

Acum pentru practică. Să scriem un program care afișează intervalele de valori ale tuturor tipurilor de date întregi. Codul sursă pentru acest program este prezentat mai jos:

Lista 13.1. Un program pentru afișarea intervalelor de numere întregi. program td; ($mode objfpc)($H+) folosește ($IFDEF UNIX)($IFDEF UseCThreads) cthreads, ($ENDIF)($ENDIF) Clase (puteți adăuga unități după aceasta); începe Writeln("Oct: ", Scăzut(octet), "..", Înalt(octet)); Writeln("Scurt: ", Low(Scurtint), "..", High(Scurtint)); Writeln("Mic: ", Scăzut(Mic), "..", Ridicat(Mic)); Writeln("Cuvânt: ", Scăzut(Cuvânt), "..", Ridicat(Cuvânt)); Writeln("Integer: ", Low(Integer), "..", High(Integer)); Writeln("Cardinal: ", Scăzut(Cardinal), "..", Înalt(Cardinal)); Writeln("Longint: ", Low(Longint), "..", High(Longint)); Writeln("Cuvânt lung: ", Scăzut(Cuvânt lung), "..", Mare(Cuvânt lung)); Writeln("Int64: ", Low(Int64), "..", High(Int64)); Writeln("QWord: ", Low(QWord), "..", High(QWord)); Readln; Sfârşit.

Funcție standard Scăzut definește valoarea minimă a tipului de date. Funtskia Înalt definește valoarea maximă. Cu functii ScrieLnȘi ReadLn deja vă cunoașteți puțin. Vom vorbi mai detaliat despre subrutine (proceduri și funcții) în secțiunea corespunzătoare.

În cele din urmă, vă voi spune cum sunt scrise datele întregi în program. Da, la fel ca peste tot - doar scrieți numărul, fără ghilimele sau orice simboluri suplimentare. De exemplu, așa

10
178
35278

Adevărat, acest lucru se aplică numerelor din sistemul numeric zecimal. Cu siguranță știți deja că există și alte sisteme. Cele mai utilizate sisteme numerice sunt cele binare, zecimale și hexazecimale.

Free Pascal acceptă patru formate întregi:

  1. Notație zecimală. Doar un număr, cum ar fi 10.
  2. Notație hexazecimală. Un număr prefixat cu $. De exemplu, numărul hexazecimal $10 este egal cu numărul zecimal 16.
  3. Notație octală. Un număr prefixat cu &. De exemplu, octal &10 este egal cu zecimala 8.
  4. Notație binară. Un număr prefixat cu %. De exemplu, numărul binar %10 este egal cu numărul zecimal 2.

Teme pentru acasă:

Creați un program care afișează intervale de valori întregi (Listarea 13.1). Compilați programul și rulați-l. Asigurați-vă că aceste valori corespund cu cele prezentate în Tabelul 13.1.

În codul sursă al programului, găsiți linia care setează modul de compilare:

($mod objfpc)($H+)

În această linie, în loc de cuvânt objfpc scrie cuvântul tp. Adică, linia finală ar trebui să arate astfel:

($mod tp)($H+)

Lansa programul. Uitați-vă la intervalul de valori ale tipului Întreg. A trage concluzii.

Învață să gândești ca un programator, adică logic. Nimeni nu va mesteca totul pentru tine până la pensie, așa cum fac eu acum. Trebuie să te obișnuiești să gândești singur. În caz contrar, veți aluneca în „principiul învățării maimuțelor” și atunci șansele tale de a deveni un programator grozav vor fi aproape de zero. Pentru a vă ajuta să nu alunecați la nivelul „înghesuirii”, voi lăsa periodic lacune în învățarea dvs., astfel încât să încercați să vă dați seama de unele lucruri.

Este mult mai bine dacă îți dai seama singur decizie gresita, veți găsi singur greșeala și o veți corecta singur, în loc să folosiți întotdeauna soluțiile corecte ale altora și să le copiați prostesc.

3.2. Tipuri de date simple în Turbo Pascal 7

Un tip simplu definește un set ordonat de valori ale parametrilor. Turbo Pascal are următoarele grupuri de tipuri simple:

  • tipuri de numere întregi;
  • tip boolean;
  • tip de caracter;
  • tip enumerat;
  • tip-gamă;
  • tipuri reale.

Toate tipurile simple, cu excepția tipurilor reale, sunt numite tipuri ordinale. Pentru cantități de tipuri ordinale, sunt definite proceduri și funcții standard: Dec, Inc, Ord, Pred, Succ (vezi secțiunea 13.1).

3.2.1. Tipuri întregi

Spre deosebire de Pascal, care definește un singur tip întreg, Integer, Turbo Pascal are cinci tipuri de întregi standard: Shortint, Integer, Longint, Byte, Word. Caracteristicile acestor tipuri sunt prezentate în tabel. 2.

Tabelul 2. Tipuri de date întregi

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

3.2.2. tip boolean

Tipul boolean standard (dimensiune - 1 octet) este un tip de date, din care orice element poate lua doar două valori: True și False. În acest caz, sunt valabile următoarele condiții:
Ord fals (fals) = 0
Ord (Adevărat) = 1
Succ (Fals) = Adevărat
Pred (Adevărat) = Fals

Turbo Pascal 7.0 a adăugat încă trei tipuri logice ByteBool (dimensiune - 1 octet), WordBool (dimensiune - 2 octeți) și LongBool (dimensiune - 4 octeți). Au fost introduse pentru unificarea cu alte limbaje de programare și cu mediul Windows. Diferența lor față de tipul boolean standard este valoarea reală a parametrului de acest tip, corespunzătoare valorii True. Pentru toate tipurile logice, valoarea False corespunde numărului 0, scris în numărul corespunzător de octeți. Valoarea True pentru tipul boolean corespunde cu numărul 1 scris în octetul său, iar pentru alte tipuri valoarea True corespunde oricărui număr, altul decât zero (deși funcția Ord în acest caz dă valoarea 1).

3.2.3. Tip de caracter

Tipul de caracter standard Char definește un set complet de caractere ASCII. Funcția Ord dintr-o valoare de tip Char oferă codul caracterului corespunzător. Valorile tipului de caractere sunt comparate în funcție de codurile lor.

3.2.4. Tip enumerare

Un tip enumerat nu este standard și este definit de un set de identificatori cu care valorile parametrilor se pot potrivi. Lista de identificatori este indicată în paranteze, identificatorii sunt despărțiți prin virgule:

tip
= ();)

Este important în ce ordine sunt listați identificatorii la definirea unui tip, deoarece primului identificator i se atribuie numărul de serie 0, al doilea - 1 etc. Același identificator poate fi utilizat în definirea unui singur tip enumerat. Funcția Ord dintr-o valoare de tip enumerat oferă numărul ordinal al valorii sale.

Exemplu. Tip enumerat.

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

Un tip boolean este un caz special al unui tip enumerat:

tip boolean = (fals, adevărat);

3.2.5. Tip-gamă

În orice tip ordinal, puteți selecta un subset de valori, definit de valorile minime și maxime, care include toate valorile tipului original care se află în aceste limite, inclusiv limitele în sine. Acest subset definește un tip de interval. Tipul intervalului este specificat prin specificarea valorilor minime și maxime, separate prin două puncte:

tip = . . ;

Valoarea minimă la definirea acestui tip nu trebuie să fie mai mare decât cea maximă.

Exemplu. Definiția range types.

tip
Duzină = 1..12; (numerele de la 1 la 12)
AddSub = Plus..Minus; (operatii de adunare si scadere)

3.2.6. Tipuri reale

Spre deosebire de standardul limbajului Pascal, unde este definit un singur tip real Real, Turbo Pascal are cinci tipuri reale standard: Real, Single, Double, Extended, Comp. Pentru caracteristicile acestor tipuri, vezi tabelul. 3. Tabelul 3. Tipuri de date reale

Tip Gamă Numărul de cifre semnificative Dimensiunea în octeți
Real 2.9*10-39..1.7*1038 11-12 6
Singur 1.5*10-45..3.4*1038 7-8 4
Dubla 5.0*10-324.-1.7*10308 15-16 8
Extins 3.4*10-4932..1.1*104932 19-20 10
Comp -263+1..263-1 19-20 8

Tipul Comp este de fapt un tip întreg cu gamă extinsă, dar nu este considerat un tip ordinal.

Tipurile Single, Double, Extended și Comp pot fi utilizate în programe numai dacă există un coprocesor aritmetic sau dacă emulatorul coprocesorului este activat (vezi paragrafele 17.5.8 și 17.7.1).

Lecția acoperă principalele tipuri de date standard în Pascal, conceptul de variabilă și constantă; explică modul de lucru cu operații aritmetice

Pascal este un limbaj de programare tipizat. Aceasta înseamnă că variabilele care stochează date sunt de un anumit tip de date. Acestea. Programul trebuie să indice direct ce date pot fi stocate într-o anumită variabilă: date text, date numerice, dacă sunt numerice, apoi întregi sau fracționale etc. Acest lucru este necesar în primul rând pentru ca computerul să „știe” ce operațiuni pot fi efectuate cu aceste variabile și cum să le efectueze corect.

De exemplu, adăugarea de date text, sau așa cum este numită corect în programare - concatenare - este îmbinarea obișnuită a șirurilor de caractere, în timp ce adăugarea datelor numerice are loc pe biți, în plus, numerele fracționale și întregi sunt adăugate diferit. Același lucru este valabil și pentru alte operațiuni.

Să ne uităm la cele mai comune tipuri de date în Pascal.

Tipuri de date întregi în Pascal

Tip Gamă Memoria necesară (octeți)
octet 0..255 1
scurtătură -128..127 1
întreg -32768.. 32767 2
cuvânt 0..65535 2
longint -2147483648..2147483647 4

Trebuie să rețineți că atunci când scrieți programe în Pascal întreg(tradus din engleză în ansamblu) este cel mai frecvent utilizat, deoarece intervalul de valori este cel mai solicitat. Dacă este nevoie de o gamă mai largă, utilizați longint(întreg lung, tradus din engleză ca întreg lung). Tip octetîn Pascal este folosit atunci când nu este nevoie să lucrați cu valori negative, același lucru este valabil și pentru tip cuvânt(doar intervalul de valori aici este mult mai mare).

Exemple de modul în care variabilele sunt descrise (declarate) în Pascal:

programul a1; var x,y:intger; (tip întreg) myname:string; (tip șir) începe x:=1; y:=x+16; numele meu:="Petru"; writeln("nume: ",numele meu, ", vârsta: ", y) sfârșit.

Rezultat:
nume: Peter, vârsta: 17

Comentarii în Pascal

Observați cum comentariile sunt folosite în Pascal. În comentariile exemplu, i.e. textul serviciului care este „nu este vizibil” pentru compilator este inclus între acolade. De obicei, comentariile sunt făcute de programatori pentru a explica bucăți de cod.

Sarcina 3. Populația Moscovei este de a = 9.000.000 de locuitori. Populația din New Vasyuki este b=1000 de locuitori. Scrieți un program care să determine diferența dintre numărul de locuitori dintre două orașe. Utilizați variabile

Tipuri de date reale în Pascal

Numerele reale în Pascal și în programare în general sunt numele numerelor fracționale.

Tip Gamă Memoria necesară (octeți)
real 2,9 * 10E-39 .. 1,7 * 10E38 6
singur 1,5 * 10 E-45 .. 3,4 * 10E38 4
dubla 5 * 10E-324 .. 1,7 * 10E308 8
extins 1,9 * 10E-4951 .. 1,1 * 10E4932 10

Tipul real din Pascal este cel mai des folosit tip real.

Au fost prezentate cele de mai sus tipuri de date simple în Pascal, care includ:

  • Ordinal
  • Întreg
  • joc de inteligență
  • Caracter
  • Listabil
  • Interval
  • Real

Pentru a afișa valorile variabilelor de tip real, se utilizează de obicei ieșirea formatată:

  • formatul folosește fie un număr, indicând numărul de poziții alocate acestui număr în formă exponențială;
  • p:=1234,6789; Scrie (p:6:2); (1234,68)

    Alături de tipurile simple, limbajul mai folosește tipuri de date structurate și indicatori, care va face obiectul unor lecții ulterioare despre Pascal.

    Constante în Pascal

    Adesea într-un program se știe dinainte că o variabilă va lua o anumită valoare și nu o va modifica pe toată durata execuției întregului program. În acest caz, trebuie să utilizați o constantă.

    Declarația unei constante în Pascal are loc înainte de declararea variabilelor (înainte de cuvântul de serviciu var) și arată astfel:

    Un exemplu de descriere constantă în Pascal:

    1 2 3 4 5 6 const x= 17 ; var numele meu: șir ; începe numele meu: = "Petru" ; writeln("nume: ", numele meu, ", vârsta: ", x) final.

    const x=17; var myname:string; începe numele meu:="Petru"; writeln("nume: ",numele meu, ", vârsta: ", x) sfârșit.

    Ieșire „frumoasă” de numere întregi și numere reale

    Pentru a ne asigura că după afișarea valorilor variabilelor există indentări, astfel încât valorile să nu se „imbina” între ele, se obișnuiește să se indice prin două puncte câte caractere trebuie furnizate pentru a afișa valoare:


    Operații aritmetice în Pascal

    Ordinea operațiunilor

    1. evaluarea expresiilor din paranteze;
    2. înmulțire, împărțire, div, mod de la stânga la dreapta;
    3. adunare si scadere de la stanga la dreapta.

    Proceduri și funcții aritmetice standard Pascal

    Aici merită să ne oprim mai în detaliu asupra unor operații aritmetice.

    • Operația inc în Pascal, increment pronunțat, este o procedură Pascal standard care înseamnă creșterea cu unu.
    • Exemplu de operație inc:

      x:=1; inc(x); (Crește x cu 1, adică x=2) writeln(x)

      Utilizare mai complexă a procedurii inc:
      Inc(x,n) unde x este un tip ordinal, n este un tip întreg; procedura inc crește x cu n.

    • Procedura Dec în Pascal funcționează similar: Dec(x) - scade x cu 1 (descrește) sau Dec(x,n) - scade x cu n.
    • Operatorul abs reprezintă modulul unui număr. Funcționează așa:
    • a: =- 9; b:=abs(a); (b=9)

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

    • Operatorul div în Pascal este adesea folosit, deoarece o serie de sarcini implică operarea întregii diviziuni.
    • Restul de diviziune sau operatorul mod în Pascal este, de asemenea, indispensabil pentru rezolvarea unui număr de probleme.
    • De remarcat este funcția impar standard a lui Pascal, care determină dacă un număr întreg este impar. Adică returnează adevărat pentru numerele impare, fals pentru numerele pare.
    • Un exemplu de utilizare a funcției impar:

      var x:intger; începe x:=3; scrieln(sqr(x)); (răspunsul 9) sfârşitul.

    • Operația de exponențiere în Pascal lipsește ca atare. Dar pentru a ridica un număr la o putere, puteți folosi funcția exp.
    • Formula este: exp(ln(a)*n), unde a este un număr, n este un grad (a>0).

      Cu toate acestea, în compilatorul Pascal abc, exponențiarea este mult mai simplă:

      var x:intger; începe x:=9; scrieln(sqrt(x)); (răspunsul 3) sfârşitul.

    Sarcina 4. Dimensiunile unei cutii de chibrituri sunt cunoscute: înălțime - 12,41 cm, lățime - 8 cm, grosime - 5 cm Calculați aria bazei cutiei și volumul acesteia
    (S=latime*grosime, V=zona*inaltime)

    Sarcina 5. Grădina zoologică are trei elefanți și destul de mulți iepuri, numărul de iepuri schimbându-se frecvent. Un elefant ar trebui să mănânce o sută de morcovi pe zi, iar un iepure - doi. În fiecare dimineață, grădina zoologică spune computerului numărul de iepuri. Computerul, ca răspuns la aceasta, trebuie să spună însoțitorului numărul total de morcovi care trebuie hrăniți astăzi iepurilor și elefanților.

    Sarcina 6. Se știe că X kg de dulciuri costă A ruble Stabilește cât costă y kg din aceste dulciuri și, de asemenea, la câte kilograme de dulciuri pot fi cumpărate k ruble Toate valorile sunt introduse de utilizator.

    Cel mai simplu tip de date numerice din Pascal sunt tipurile întregi, concepute pentru a stoca numere întregi. Numerele întregi în Pascal sunt de obicei împărțite în două tipuri: semnate și nesemnate. Numerele cu semn sunt un tip întreg care include atât numere pozitive, cât și numere negative, numerele fără semn sunt doar numere pozitive.

    Mai jos sunt două tabele cu tipuri întregi. Mai întâi vom scrie tipuri de numere întregi cu semn:


    TipoctetGama de valori
    scurtătură1 -128 ... 127
    smallint2 -32768 ... 32767
    întreg, lung4 -2147483648 ... 2147483647
    int648 -9223372036854775808 ... 9223372036854775807

    Și asta tipuri de numere întregi fără semn:


    TipoctetGama de valori
    octet1 0 ... 255
    cuvânt2 0 ... 65535
    cuvânt lung, cardinal4 0 ... 4294967295
    uint648 0 ... 18446744073709551615

    După cum puteți vedea, prima coloană conține numele tipului, a doua - numărul de octeți ocupați în memorie de numere de acest tip, iar a treia - intervalul de valori posibile, respectiv. Există două tipuri de numere cu semn - întreg și longint (literal „întreg” și „întreg lung”), care sunt sinonime. Adică, puteți folosi un nume sau altul în secțiunea de descriere.

    În mod similar, în cel de-al doilea tabel (numere întregi nenegative în Pascal), există, de asemenea, două tipuri de numere întregi sinonime de 4 octeți - longword și cardinal , așa că utilizați fie unul, fie altul.

    De asemenea, puteți observa că dacă mutăm condiționat numerele primului tabel în partea dreaptă față de zero (mutăm intervalul la dreapta astfel încât numărul minim să fie 0), atunci vom obține intervale de numere întregi în al doilea tabel. în rândurile corespunzătoare. Deci, dacă într-un tip de scurtătură de 1 octet adăugăm 128 la granițele din stânga și din dreapta, obținem tipul de octet (0..255); dacă într-un tip smallint de 2 octeți adăugăm 32768 la granițe, obținem cuvântul de tip nesemnat de 2 octeți corespunzător (0..65535), etc.

    Toate acestea se întâmplă deoarece în tipurile întregi fără semn, numerele pot fi împărțite exact în două: jumătate din numere în partea negativă, jumătate în partea pozitivă. De ce atunci, în numere semnate, chenarul din stânga în valoare absolută 1 este mai mare decât chenarul din dreapta? - tu intrebi. De exemplu, în tipul shortint minimul este -128, în timp ce maximul este doar 127 (modulo 1 mai puțin). Și asta pentru că partea dreaptă include și 0 și trebuie să știți și să vă amintiți acest lucru.

    Deci, de ce numerele întregi din Pascal trebuie împărțite în atât de multe tipuri? De ce să nu te descurci, de exemplu, cu cel mai mare dintre tipurile de numere întregi din PascalABC.Net și Free Pascal – int64 – care este aproape 9 chintilioane și jumătate (!) cu atât un minus, cât și un plus? Da, dintr-un simplu motiv banal (?) - salvarea memoriei. Dacă trebuie să adăugați două numere pozitive mici de un octet (0..255) și ați descris aceste numere ca int64 (8 octeți), atunci aceasta a luat de 8 ori mai multă memorie. Și dacă programul este mare și există o mulțime de variabile, atunci economiile de memorie cresc foarte brusc. Mai mult, nu are rost să folosim tipuri de numere întregi cu semn dacă problema tratează cantități precum lungimea, masa, distanța, timpul etc.

    În secțiunea Abrahamyan Problem Book a site-ului (subsecțiunea Integer), observați utilizarea diferitelor tipuri de numere întregi în Pascal.