Noțiunea de setare

Ministerul Agriculturii al Federației Ruse

Voronezh Universitatea de Stat agrară numit după K.D. Glinka

Departamentul de Suport și Modelare a Sistemelor Agroeconomice







Pe tema: Noțiunea de set. Tipul de caractere

Limba de programare Pascal a fost dezvoltată în 1968-1971. Niklaus Wirth din Zurich Institutul de Informatică (Elveția), și a fost numit vchest Blaise Pascal - un matematician remarcabil, fizician și filosof al secolului al 17-lea. Scopul original al dezvoltării limbajului a fost dictat de necesitatea creării unui instrument "pentru predarea programării ca disciplină sistematică". La scurt timp, cu toate acestea, ea a dezvăluit un limbaj Pascal extrem de eficient într-o varietate de aplicații, de la rezolvarea problemelor mici de caracter numeric pentru dezvoltarea de sisteme complexe de software - compilatoare, baze de date, sisteme de operare, etc. Până acum, Pascal aparține grupului celor mai populare și mai populare limbi de programare din lume:

Există numeroase implementări de limbă pentru aproape toate

zeci de dialecte și

Extensiile orientate spre probleme ale limbajului Pascal;

se bazează pe această limbă.

Avantajul lui Pascal este capacitatea de a folosi o mare varietate de tipuri diferite de date. Tipul de date definește valorile posibile ale constantelor, variabilelor, funcțiilor, expresiilor și operațiilor care pot fi efectuate pe ele.

Tipurile de date sunt împărțite în simple și complexe. Tipurile simple sunt împărțite în tipuri standard (predefinite) și tipuri definite de utilizator (tipuri definite de utilizator). Numele tipurilor standard sunt identificatori și acționează oriunde în program. Acestea sunt descrise în modulul standard al sistemului. La fel ca și alți identificatori, numele tipurilor standard pot fi redefinite în program. Cu toate acestea, este posibil să se abordeze semnificația lor originală cu ajutorul unui identificator calificat cu numele modulului Sistem.

Tipurile standard includ:

grup de tipuri întregi (Shortint, Integer, Longint, Byte, Word);

grup de tipuri reale (Single, Real, Double, Extended, Comp);

grupul de tipuri logice (booleene) (Boolean, ByteBool, WordBool, LongBool);

caracter de caractere (Char);

Tipul șirului (String, Pchar);

Tip indicativ (Pointer);

text (Text).

Tipurile de tip simbolic, întreg și tip boolean sunt denumite, așa-numitele tipuri de ordine.

Tipurile ordinale sunt caracterizate de următoarele proprietăți:

Setul de valori admisibile de orice tip ordinal este o secvență ordonată. fiecare element al căruia are propriul număr de serie. Numărul secvenței este reprezentat de un număr întreg. Prima valoare a oricărui tip ordinal are numărul 0, următorul număr 1 și așa mai departe. Excepțiile sunt tipurile de ordine Integer, Shortint, Longint, unde numărul ordinal al valorilor acestor tipuri este valoarea însăși.

La orice valoare de tip ordinal, puteți utiliza funcții care returnează un număr, o valoare anterioară sau una ulterioară de acest tip.

Tipurile personalizate sunt tipuri adiționale suplimentare ale căror caracteristici programatorul poate defini independent. Tipurile personalizate includ:

• Tipuri indicative (cu excepția tipului Pointer standard);

Tipurile enumerate și intervalele sunt ordinale.

Noțiunea de setare. Operații pe seturi

Tipul de date Pascal multiple seamănă cu un tip de date enumerat. În același timp, tipul de date multiple este un set de elemente care nu sunt organizate în ordinea pe care o urmează.

În matematică, un tip de date multiple este orice set de elemente de natură arbitrară. Operațiile care se efectuează pe seturi sunt, în esență, includerea și excluderea elementelor din set.

Conceptul de set în limba de programare este mult mai mult decât un concept matematic.

În Pascal, un tip plural înseamnă o colecție finită de elemente care aparțin unui tip de date de bază.

Se pot utiliza următoarele tipuri de bază:

pe baza celor de mai sus.

Astfel de restricții sunt legate de forma reprezentării tipului de date plural în Pascal și pot fi reduse la funcția ord () pentru tipul de bază utilizat, variind de la 0 la 255.

După ce se specifică tipul de bază, setul automat de valori ale tipului de date corespunzător este determinat automat. Acesta include toate seturile posibile, care sunt combinații arbitrare de valori ale tipului de bază. Toate aceste seturi sunt valori separate ale unui anumit tip de plural.

Descrierea tipului de date multiple:

Un exemplu de tip de date multiple:

Pentru a atribui o valoare unei variabile de tip multiplu, utilizați constructorul setului - enumerarea elementelor setului separate prin virgule în paranteze pătrate. De exemplu,

Un constructor set poate conține o gamă de valori ale tipului de bază. Apoi setul include toate elementele din interval. De exemplu,

Ambele forme de seturi de construcție pot fi combinate. De exemplu,

Un constructor al formularului [] desemnează seturi goale.

În program, puteți folosi mai multe tipuri ca constante, caz în care acestea sunt definite după cum urmează:

Puteți defini un tip multiplu ca o constantă tastată:

Atunci când descriem tipul mai multor ca constante, este permisă utilizarea semnului "+" (îmbinarea seturilor). De exemplu,

Cu mai multe tipuri de Pascal, puteți efectua acțiuni de îmbinare, excepție și intersecție.

Unirea mai multor tipuri conține elemente care aparțin cel puțin unui set, fiecare element intră în uniune o singură dată. Funcționarea seturilor de combinare este notată cu simbolul "+".

Exemplu de combinare a mai multor tipuri:

Varsmall, capitala, latină: simbol; .................. mic: = ['a'. 'Z']; capital: = ['A'. 'Z']; latină: = mic + capital; educația literelor ebraice în combinația seturilor de capital și capital.

Este posibil să combinați mai multe tipuri și elemente individuale. De exemplu,

O excepție este definită ca diferența dintre mai multe tipuri, în care elementele incluse în subtrade sunt excluse de la tipul redus. Dacă există elemente în subtrade care nu sunt prezente în subtrade, atunci ele nu afectează rezultatul în nici un fel. Executarea unei excepții este indicată de semnul "-". Exemplu de excludere a mai multor tipuri de Pascal







Suprimarea mai multor tipuri este un set care conține elemente care apar simultan în ambele seturi. Funcționarea intersecției seturilor este notată cu simbolul "*".

Un exemplu de intersecție a mai multor tipuri

Operații de relaționare cu mai multe tipuri Pe lângă operațiile discutate mai sus, sunt definite anumite operații de relaționare peste valorile tipului plural. Operațiile pentru operații pe mai multe valori în cazul general sunt mai multe expresii. Între operațiunile de relație peste valorile tipului de plural, un loc special este ocupat de o operație specială de verificare a apariției unui element în seturi, notat de cuvântul de serviciu din. Spre deosebire de alte operații, o relație în care valorile ambelor operanzilor se referă la același tip de valori multiple în operarea în primul operand trebuie să aparțină tipul de bază, iar al doilea - tipul de valori multiple, construite pe baza acestui tip de bază. Rezultatul unei operațiuni de relaționare, ca de obicei, este o valoare booleană (adevărată sau falsă).

Operație de comparare pentru egalitatea mai multor tipuri. Seturile sunt considerate egale (echivalente) dacă toate elementele dintr-un set sunt prezente în celălalt și invers. Pentru operația de comparare pentru egalitate sau inegalitate, simbolurile "=" și "<>“. A: = [2,1,3]; D: = [1,3,2];

Apoi operația A = D este adevărată, iar operația A<>D este setat la fals.

Verificarea includerii. Un set este considerat inclus într-altul (un set este un subset al celuilalt) dacă toate elementele sale sunt cuprinse în al doilea set. Declarația converse poate fi, de asemenea, nedreaptă. Operațiunile de verificare sunt indicate prin "<=’ и ‘>= '.

litera> = glasn; soglan <= letter;

Trebuie remarcat faptul că utilizarea operațiunilor <и> operanzii de tip multiplu nu sunt permise.

Tipul de caractere. CHAR - ia un octet. Valoarea tipului de caractere este setul tuturor simbolurilor PC. Fiecare caracter este alocat unui număr întreg în intervalul 0 ... 255. Acest număr este codul pentru reprezentarea internă a personajului. Codificarea utilizează codul ASCII (codul standard american pentru schimbul de informații). Acesta este un cod pe 7 biți, adică acesta poate fi utilizat pentru a codifica numai 128 de caractere în intervalul de la 0 la 127. În același timp, byte 8 biți, desemnat pentru stocarea de caractere în Turbo Pascal, pot fi codificate de două ori mai multe caractere în intervalul de la 0 la 255. Prima jumătate a simbolurilor PC-ul cu coduri 0 ... 127 corespunde standardului ASCII. A doua jumătate a caracterelor cu codurile 128 ... 255 nu este limitată de cadrele rigide ale standardului și poate fi schimbată pe diferite tipuri de PC. Caracterele cu coduri 0 ... 31 se referă la codurile de serviciu. Dacă aceste coduri sunt folosite în textul simbolic al programului, acestea sunt considerate spații.

Lucrul cu variabilele de caractere În Turbo Pascal 7.0, două tipuri de variabile sunt folosite pentru a lucra cu simboluri:

caracter de tip caracter;

tip de date de tip șir.

Funcțiile standard pentru lucrul cu valorile caracterului:

Funcționarea adăugării de cantități simbolice.

Operația de adăugare vă permite să construiți o treime din șirurile de două caractere, formate din simbolurile primului, urmate de simbolurile celui de-al doilea. Această operațiune este notată cu semnul "+". De exemplu:

Descriem variabilele de șir.

Valoarea atribuită șirului este în apostrofuri. Am atribuit primele două următoarele valori, iar a treia va fi egală cu lipirea lor:

Șirul s3 are semnificația "Apă liniștită, sub iarbă".

Lungimea unui șir este numărul de caractere introduse, dar nu poate depăși lungimea maximă posibilă (în partea descriptivă). Această valoare poate fi determinată utilizând o funcție a cărei rezultat este un număr egal cu numărul de caractere.

Ca rezultat, valorile variabilelor intregi vor fi: kl = 5, k2 = 21.

Valorile variabilei s1 = 'do'. Următoarele linii vor fi afișate pe ecran: vo și 34.

În Turbo Pascal, pentru aceasta se folosește procedura Delete (str, n, m), care taie str din string str m, începând cu caracterul n. astfel încât șirul se schimbă. De exemplu:

Fragmentul programului este dat:

După executarea acestor operatori, două caractere vor fi eliminate din șir, începând cu al treilea, adică șirul va fi: s = '1256'.

În Turbo Pascal, puteți face acest lucru aplicând procedura Insert (s1, s2, n) - inserând șirul s1 în șirul s2, începând cu caracterul n, în timp ce prima linie rămâne aceeași ca a fost, iar cea de-a doua primește o nouă valoare. De exemplu:

Ca urmare a acestei proceduri, șirul va fi

Trebuie notat că numărul 25 și rândul 25 nu sunt aceleași. Pentru a lucra cu numere și șiruri de caractere în Turbo Pascal, se folosesc două proceduri.

Str (n, s1) - traduce valoarea numerică a n la o valoare de șir și atribuie rezultatul șirului s1 și puteți traduce ambele numere întregi și numere reale. De exemplu:

n: = 12; str (n, s1); - după executarea s1 = '12 '

Există o operație inversă care ia valoarea șir la o valoare numerică.

Valoarea funcției (s, n, k) - convertește o valoare de șir la cifră dacă șirul dat este de fapt un record al unui număr (întreg sau real), atunci valoarea este k = 0 și n este un număr, altfel k va fi numărul simbolului în care se produce prima încălcare a scrisului numărului n. De exemplu:

val (1234 ', n, k) n = 1234, k = 0;

Introduceți funcții de conversie

Uneori în programe există o necesitate a codului de a defini un simbol și, dimpotrivă, de un simbol pentru a determina codul acestuia. Pentru aceasta, utilizați funcția: CHR (x).

Această funcție returnează un caracter corespunzător codului ASCII al numărului x. De exemplu:

pentru i = 0 până la 255 scrie writeln (i, '', chr (i));

Pentru a determina codul după simbol, utilizați funcția ORD. De exemplu:

O înregistrare este un tip de date constând dintr-un număr fix de componente (câmpuri numite) de unul sau mai multe tipuri.

Dăm exemple de descriere a tipului de înregistrare:

tip Point = ÎNREGISTRARE x, y: Real

Datele = ZIUA înregistrării. 1..31; mon. String [3]; an: 1..3000

Puteți defini o serie de înregistrări ale căror câmpuri sunt și ele:

tip Student = Array [1..N] din Record fam. String [15]; naștere: date; om. boolean; note: Array [1..10] de 0..5

ID-ul grupului poate fi utilizat pentru a stoca informații despre un grup de elevi (numele, data nașterii, sexul și scorurile a 10 subiecți).

Un acces la valoarea unui câmp de înregistrare are loc utilizând un nume compus care conține identificatorul variabilei și numele câmpului separat de o perioadă. De exemplu, p.x, dt.mon, grup [1] .man, grup [2] .marci [1].

Numele compus poate fi folosit ori de câte ori un identificator de tip câmp cerere acceptabil: în expresii operatorilor IO, atribuire, ca parametru real.

Accesul la câmpul de înregistrare utilizând un nume compus poate fi greoaie. Operatorul WITH care rezolvă această problemă are următoarea formă:

CU <Переменная типа запись> DO <Оператор>

Dacă specificați numele înregistrării după cuvântul cheie CU, apoi în instrucțiunea următoare DO, puteți specifica numai numele câmpului fără numele variabilei pentru a accesa câmpul.

Înregistrări variabile

Înregistrările pot avea variații. De exemplu, vom face o investigație pentru a verifica calitatea unui anumit medicament. Dacă nu se efectuează verificări, singurele date despre care ne interesează este dacă pacientul a utilizat acest medicament mai devreme. Dacă se efectuează un control, este necesar să se colecteze informații privind un număr mare de date referitoare la cefalee, febră și greață.

Utilizăm două structuri de date de tipul înregistrării:

Ce putem face cu descrierile variabilelor, astfel încât să putem lucra simultan cu cele două structuri? Pentru a face acest lucru, puteți utiliza comutatorul de caz special în descrierea înregistrării. După rezultatul posibil al Proverka, descrierea câmpurilor corespunzătoare este dată în paranteze. Acest lucru este ilustrat mai jos:

tip Efect = Record Nomer: Integer; Cazul Proverka: Boolean din

FALSE: (PrinimalRanee: Boolean);

TRUE. (GolovBol, Lihoradka, Toshnota: Boolean)

var Nekto: Efect;

Comutatorul Case este folosit aici pentru a descrie variabilele și diferă de instrucțiunea Case: comutatorul casei utilizează paranteze și nu există niciun cuvânt de serviciu obligatoriu la sfârșitul cazului "normal".

Partea care apare în ambele structuri se numește partea fixă. Partea care apare numai în una din structuri este numită parte varianta, iar câmpul, important pentru continuarea structurii ulterioare, se numește câmpul nodal comun (sau eticheta).

În cazul în care una dintre variante nu conține câmpuri (adică, lista câmpurilor este goală), nimic nu este scris în paranteze după constanta corespunzătoare, de exemplu:

Tip Pogoda = Înregistrare Temperatura: Integer; Vlagnost. integer; Cazul Veter: Boolean of TRUE. (Napravlenie: (S, N, V, O), Skorost, Integer); FALSE: ()

După varianta parțială a înregistrării, câmpurile nu pot apărea.

Numele câmpurilor utilizate în descrierea diverselor opțiuni nu trebuie repetate în această intrare; De asemenea, nu puteți folosi același nume în părțile generale și variate ale unei înregistrări.

Partea variantă poate conține alte înregistrări, inclusiv variante. Gradul de cuibare a înregistrărilor în partea variantă nu este limitat.

Lista datelor de ieșire

Elevii unei clase, sau care trăiesc în aceeași casă, sunt retrași.

Elaborarea unei diagrame pentru rezolvarea problemei

utilizează Windows, Mesaje, SysUtils, variante, Clase, Grafică, Controale, Formulare, Dialoguri, DB, ADOdb, StdCtrls, Masca, DBCtrls, ExtCtrls, Grile, DBGrids, ComCtrls;

tip TForm1 = clasă (TForm) PageControl1: TPageControl;







Articole similare

Trimiteți-le prietenilor: