Introducere în Pascal. Turbo Pascal. Tipuri de date tip de date întreg programului Pascal

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 întreg, dar numar real(acest lucru este adevărat chiar dacă împărțiți 8 la 2, adică 8/2=4,0). Diviziunea 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 în 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, în memoria computerului va fi creată o variabilă de 4 octeți. Î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

Conversiile implicite (automate) ale tipurilor de date numerice sunt aproape imposibile în Pascal. 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.

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); start Writeln("Oct: ", Scăzut(octet), "..", Înalt(octet)); Writeln("Scurt: ", Low(Scurtint), "..", High(Scurtint)); Writeln("Smallint: ", Low(Smallint), "..", High(Smallint)); Writeln("Cuvânt: ", Scăzut(Cuvânt), "..", Ridicat(Cuvânt)); Writeln("Integer: ", Low(Integer), "..", High(Integer)); Writeln("Cardinal: ", Scăzut(Cardinal), "..", Ridicat(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 zecimalul 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 te va mesteca totul până la pensie, așa cum fac eu acum. Trebuie să te obișnuiești să gândești singur. În caz contrar, vei 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 altor oameni și să le copiați în mod prost.

Sunteți în secțiunea materiale de programare Pascal. Înainte de a începe programarea, trebuie să clarificăm câteva concepte de care vom avea nevoie la început. La urma urmei, nu poți doar să programezi așa. Nu putem scrie programul în cuvinte - computerul nu înțelege nimic altceva decât zerouri și unu. În acest scop, în Pascal a fost creată o simbolistică specială - limbajul Pascal, un set de cuvinte rezervate care nu pot fi folosite nicăieri în programele dumneavoastră decât în ​​scopul propus. Să enumerăm conceptele de bază de care vom avea nevoie la început:

✎ 1) program – în limba engleză „program”, scris chiar la începutul codului, urmat de numele programului în latină și punct și virgulă. De exemplu: program suma; − un program numit Summa. Dar această parte a codului, numită antetul programului, nu trebuie scrisă - este prezentă doar pentru claritate și arată ce problemă rezolvă acest program. Aici am folosit cuvântul „cod” - acesta este numele intrării de text a programului.

✎ 2) întreg – în engleză înseamnă „întreg” (sau pur și simplu „întreg”), iar în Pascal este folosit pentru a desemna numere întregi cu semn pe 32 de biți (8 octeți) din intervalul [-2147483648, 2147483647] . Vom analiza mai târziu ce înseamnă aceste numere mari.

✎ 3) real – din engleză „real”, „real”, „real”, „real”. În limbajul Pascal, acest termen denotă numere reale în intervalul [-1,8∙10 308, 1,8∙10 308]. Acestea sunt numere foarte mari, dar sunt afișate 15 - 16 cifre semnificative. Apropo, tipurile de date întregi și reale din mediul de programare PascalABC.Net sunt întotdeauna evidențiate în albastru.

✎ 4) const – analog al englezei. „constant”, adică „constant”, „constant”. În Pascal, aceasta este o cantitate care nu se poate schimba. Este scris astfel:


Această intrare trebuie luată așa cum este scrisă: numărul N este 12, S este 5, „pi” este 3,14 (ca și în matematică, în Pascal se folosește doar un punct în loc de virgulă). În ultima linie am folosit o bară oblică dublă (două bare oblice înainte), urmată de text - așa sunt scrise comentariile în Pascal, iar programul nu le percepe. Tot ceea ce începe cu o bară oblică dublă și până la sfârșitul rândului este un comentariu, care este scris pentru a explica programul și este întotdeauna evidențiat într-o culoare diferită (în PascalABC.Net este verde; Turbo Pascal nu folosește acest tip de cometariu). Există un alt tip de comentariu - acesta (text inclus între paranteze, la fel ca aici, evidențiat și în verde). Acest tip de comentariu poate fi valabil pentru mai multe rânduri la rând - de la începutul parantezei până la închiderea acestuia, iar compilatorul nu percepe tot ce se află în mijlocul unei astfel de construcții ca cod și pur și simplu îl omite.

În realitate formatul de înregistrare const putin mai complicat. Conform regulilor, trebuia să scriem:

1 2 3 4 const N: tip întreg;

Descriere:

")" onmouseout="toolTip()">întreg
= 12 ; //numărul N – tipul întreg S: tip întreg;

Descriere:
Reprezintă un număr întreg cu semn de 32 de biți.

Interval de valori: -2 147 483 648 .. 2 147 483 647")" onmouseout="toolTip()">întreg
= 5 ; //numărul S – tip întreg pi: tip real;

Descriere:
Reprezintă un număr în virgulă mobilă cu precizie dublă.

Dimensiune: 8 octeți
Număr de cifre semnificative: 15 - 16
Interval de valori: -1,8∙10 308 .. 1,8∙10 308
")" onmouseout="toolTip()">real
= 3.14 ; //numărul „pi” - real

După declararea fiecărei valori, este indicat tipul acesteia, iar apoi este atribuită o valoare. Dar și intrarea anterioară este corectă, deoarece compilatorul Pascal este configurat astfel încât să determine automat tipul unei constante. Dar acest lucru nu se poate spune despre următorul tip de numere - variabile.

✎ 5) var – vine din engleză. „variabilă” („variabilă” sau „modificabilă”), care în Pascal înseamnă o valoare care își poate schimba valoarea în timpul programului. Este scris astfel:


După cum se poate vedea din intrare, nu există nici un semn „=” aici - variabilele de același tip sunt recalculate (separate prin virgule) și numai tipul este indicat după două puncte. Variabilele N, m (întreg) și Q, r, t (real) din program pot modifica valori în limitele întregului și, respectiv, real. Încă o notă: descrierea variabilelor vine întotdeauna după descrierea constantelor (constantelor) - construcția const vine mai întâi, iar apoi var.

✎ 6) începe – tradus din engleză înseamnă „a începe” și Pascal înseamnă începutul programului principal în care sunt scrise comenzi (operatorii). După cuvânt începe Nu există punct și virgulă.

✎ 7) end – în engleză. „sfârșit”, iar în Pascal înseamnă același lucru (sfârșitul programului). După ultimul cuvânt Sfârşit există întotdeauna o perioadă. Am subliniat cuvântul „ultimul” din cauza utilizării construcției început-sfârşit poate într-un alt caz: acestea sunt așa-numitele paranteze operator, care sunt folosite pentru a combina mai multe operații sub un singur operator. Dar mai multe despre asta mai târziu. Deci programul principal va arăta astfel:

1 2 3 4 5 6 începe < оператор 1 > ; < оператор 2 > ; . . . . . . . < оператор N > ; Sfârşit.

Aici, operatorii din corpul programului sunt comenzi diferite față de compilator.

✎ 8) scrie – în engleză înseamnă „a scrie”. Acest operator afișează textul plasat în el, motiv pentru care se numește operator de ieșire. Textul plasat în interiorul acestuia este evidențiat cu albastru și scris astfel:

Scrie( „acest text este afișat pe ecran”);

Un mesaj în paranteze și ghilimele va fi afișat în fereastra consolei (nu îl puteți pune pur și simplu între paranteze fără ghilimele). După executarea acestei instrucțiuni vom vedea pe ecran:

acest text este afișat pe ecran

În această formă, operatorul de scriere este utilizat în cazul în care trebuie să afișați un indiciu, o explicație, un comentariu etc. Și dacă trebuie să afișați și o valoare numerică, să spunem, S = 50 sq. m, atunci se folosește formatul:

Scrie(, S);

Ca rezultat, obținem rezultatul pe ecran:

Aria este egală cu: S = 50

Și dacă trebuie să afișați unități de măsură, trebuie să introduceți din nou textul între ghilimele după S:

Scrie( "Dimensiunea zonei este: S = ", S, "mp");

După executarea ultimei instrucțiuni de ieșire, obținem următoarea ieșire pe ecran:

Dimensiunea suprafetei este: S = 50 mp

✎ 9) writeln – la fel ca write, dar după execuție cursorul va fi mutat pe linia următoare.

✎ 10) citit – tradus din engleză înseamnă „a citi”, deci citirea se numește operator de citire sau de introducere a datelor. Se scrie ca read(N), ceea ce înseamnă că trebuie introdusă valoarea N, unde N este orice număr, sau text sau alt tip de variabilă. De exemplu, dacă trebuie să introducem vârsta unei persoane care are 32 de ani, o putem scrie astfel:


În prima linie a acestui cod, programul afișează întrebarea „ Ce vârstă ai?" și mută cursorul pe linia următoare (se termină cu ln); în a doua linie tipărim „Anul =” (spațiu la început); În continuare vedem operatorul readln(Year), ceea ce înseamnă necesitatea introducerii vârstei An (numărul 32); în cele din urmă, afișăm mesajele „Vârsta mea”, „32” și „ani. " unul câte unul. Trebuie să urmăriți cu atenție spațiile. Ca urmare a executării acestui cod, vom primi mesajul:

Ce vârstă ai?
Anul = 32
Vârsta mea are 32 de ani

✎ 11) readln – la fel ca readln, numai cu o linie nouă. Într-adevăr, în exemplul de mai sus, după introducerea numărului An, scriem doar în rândul următor: „ Vârsta mea are 32 de ani».

Asta este tot pentru acum. Pe pagina următoare vom scrie primul program, iar în programarea Pascal acesta va fi al nostru

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 „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 în Pascal este cel mai des folosit tip real.

Mai sus au fost prezentate 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; Scris (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ție 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.

    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, astfel încât numărul total de tipuri utilizate într-un program poate fi atât de mare 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 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ătoarele tipuri: 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 predeclarate False sau True.

    Deoarece tipul boolean este un tip ordinal, acesta 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 service. Dacă aceste coduri sunt folosite în textul caracterelor programului, ele sunt considerate spații albe.