Datatyper for programmeringsspråket pascal. Pascal datatyper

I Pascal variabler er preget av deres type... En type er en egenskap til en variabel, som en variabel kan ta på seg en rekke verdier som er tillatt av denne typen og delta i et sett med operasjoner som er tillatt på en gitt type.

En type definerer settet med gyldige verdier som en variabel av en gitt type tar. Den definerer også settet med tillatte operasjoner fra en variabel av denne typen og bestemmer representasjonen av data i datamaskinens RAM.

For eksempel:

n: heltall;

Pascal er et statisk språk, av dette følger det at typen av en variabel bestemmes under beskrivelsen og ikke kan endres. Pascal-språket har et utviklet system av typer - all data må tilhøre en tidligere kjent datatype (enten en standardtype opprettet under utviklingen av språket eller en brukerdefinert type som er definert av programmereren). Programmereren kan lage sine egne typer med en vilkårlig kompleksitetsstruktur basert på standardtyper, eller allerede brukerdefinerte typer. Antall opprettede typer er ubegrenset. Brukerdefinerte typer i programmet er deklarert i TYPE-delen etter format:

[navn] = [type]

Systemet med standardtyper har en forgrenet, hierarkisk struktur.

Primære i hierarkiet er enkle typer... Disse typene finnes i de fleste programmeringsspråk og kalles enkle, men i Pascal har de en mer kompleks struktur.

Strukturerte typer er bygget etter visse regler fra enkle typer.

Pekere er dannet av enkle typer og brukes i programmer for å sette adresser.

Prosedyretyper er nye for Turbo Pascal, og de lar subrutiner behandles som variabler.

Objekter er også nye, og de er laget for å bruke språket som et objektorientert språk.

Det er 5 typer heltallstyper i Pascal. Hver av dem karakteriserer utvalget av aksepterte verdier og deres okkuperte minneplass.

Når du bruker heltall, bør du bli veiledet av nesting av typer, dvs. typer med et mindre område kan nestes innenfor typer med et større område. Byte-typen kan nestes i alle typer som er 2 og 4 byte lange. Samtidig kan Short Int-typen, som opptar 1 byte, ikke nestes inn i Word-typen, siden den ikke har negative verdier.

Det er 5 ekte typer:

I en datamaskin er heltallstyper representert helt nøyaktig. I motsetning til heltallstyper, definerer verdien av reelle typer et vilkårlig tall bare med en viss begrenset presisjon, avhengig av formatet til tallet. Reelle tall er representert i en datamaskin med fast eller flytende komma.

2358.8395

0.23588395*10 4

0,23588395 * E 4

En spesiell posisjon i Pascal er besatt av typen Comp, faktisk er det et stort signert heltall. Denne typen er kompatibel med alle ekte typer og kan brukes for store heltall. Når du representerer reelle tall med flyttall, er desimalpunktet alltid underforstått før venstre eller høy mantisse, men når du handler med et tall, forskyves det til venstre eller høyre.

Ordinaltyper

Ordinaltyper kombinerer flere enkle typer. Disse inkluderer:

  • alle heltallstyper;
  • tegntype;
  • boolsk type;
  • rekkevidde type;
  • oppregnet type.

Fellestrekk for ordinaltyper er: hver type har et begrenset antall mulige verdier; verdien av disse typene kan bestilles på en bestemt måte og et visst tall kan knyttes til hvert tall, som er et ordinært tall; tilstøtende verdier av ordinaltyper varierer med én.

ODD (x)-funksjonen kan brukes på verdier av ordenstype, som returnerer ordenstallet til argumentet x.

PRED (x)-funksjon - Returnerer den forrige verdien av ordenstypen. PRED (A) = 5.

SUCC (x)-funksjon - Returnerer neste verdi av ordenstypen. SUCC (A) = 5.

Karaktertype

Tegntypeverdiene er 256 tegn fra settet tillatt av kodetabellen til datamaskinen som brukes. Startområdet til dette settet, det vil si området fra 0 til 127, tilsvarer settet med ASCII-koder, der alfabettegn, arabiske tall og spesialtegn er lastet inn. Startområdets tegn er alltid til stede på PC-tastaturet. Seniorområdet kalles alternativ, det inneholder symboler av nasjonale alfabeter og ulike spesialtegn, og pseudografiske symboler som ikke samsvarer med ASCII-koden.

En tegntypeverdi opptar én byte i RAM. I programmet er verdien omsluttet av apostrof. Verdier kan også spesifiseres i form av ASCII-koden. I dette tilfellet må #-tegnet plasseres foran tallet med tegnkoden.

C: = 'A'

Boolsk type

Det er to boolske verdier: True og False. Variabler av denne typen er spesifisert med BOOLEAN-tjenesteordet. Boolske verdier opptar en byte i RAM. Verdiene True og False tilsvarer de numeriske verdiene 1 og 0.

Områdetype

Det er en undergruppe av basistypen, som kan være hvilken som helst ordinær type. Områdetype er definert av grenser innenfor basistypen.

[min-verdi] ... [maks-verdi]

Område-typen kan spesifiseres i Type-delen som en spesifikk type, eller direkte i Var-delen.

Når du definerer en områdetype, er det nødvendig å bli veiledet av:

  • venstre kant bør ikke overskride høyre kant;
  • range-type arver alle egenskaper av basistypen, men med begrensninger knyttet til dens lavere kardinalitet.

Opptalt type

Denne typen tilhører ordinaltyper og spesifiseres ved en oppregning av de verdiene som den kan telle opp. Hver verdi er navngitt av en identifikator og er plassert i listen innrammet i parentes. En opplistet type er spesifisert i Type:

Folk = (menn, kvinner);

Den første verdien er 0, den andre verdien er 1, og så videre.

Maksimal effekt 65535 verdier.

Strengetype

Strengetypen tilhører gruppen av strukturerte typer og består av basistypen Char. Strengetypen er ikke en ordinær type. Den definerer et sett med tegnstrenger med vilkårlig lengde på opptil 255 tegn.

I programmet er strengtypen deklarert av ordet String. Siden String er en basistype, er den beskrevet i språket, og en variabel av typen String er deklarert i Var. Når du deklarerer en variabel av en strengtype bak String, er det lurt å angi lengden på strengen i hakeparenteser. Et heltall fra 0 til 255 brukes for å indikere.

Fam: String;

Ved å spesifisere strenglengden kan kompilatoren tildele et spesifisert antall byte i RAM for variabelen. Hvis strenglengden ikke er spesifisert, vil kompilatoren tildele maksimalt mulig antall byte (255) for verdien av denne variabelen.

Alle data - konstanter, variabler, funksjonsverdier er karakterisert i Pascal av datatypen.

La oss definere konseptet data-type... Som du allerede vet, må alle programobjekter (variabler, konstanter osv.) beskrives.

Beskrivelser informerer oversetteren for det første om eksistensen av variablene og andre objekter som brukes, og for det andre indikerer egenskapene til disse objektene. For eksempel indikerer en beskrivelse av en variabel hvis verdi er et tall egenskapene til tall. Formelt sett kan tall være heltall og reelle (brøk). I Pascal, som i andre programmeringsspråk, er tall delt inn i to typer: hel(reservert ord heltall) og ekte(reservert ord ekte).

Tildelingen av heltall til en separat type forklares av det faktum at heltall og reelle tall er representert forskjellig i en datamaskin: et heltall kan representeres helt nøyaktig, og et reelt tall uunngåelig med en begrenset feil, som bestemmes av egenskapene av oversetteren.

Anta for eksempel at variabelen x er av typen reell og verdien er lik én: x = 1. Den tilsvarende verdien i datamaskinens minne kan være 0,999999999, eller 1,000000001, eller 1,000000000. Men hvis variabelen x er deklarert som en variabel av en heltallstype, vil enheten i datamaskinen bli representert helt nøyaktig og variabelen x vil ikke kunne ta reelle (brøk) verdier - tross alt ble det beskrevet som en variabel av en heltallstype.

Dermed definerer datatypen:

  • intern representasjon av data i datamaskinens minne;
  • et sett med verdier som kan ta verdier av denne typen;
  • operasjoner som kan utføres på verdier av denne typen.

Innføringen av datatyper er et av de grunnleggende konseptene i Pascal-språket, som er at når man utfører en operasjon med å tildele en verdi til et uttrykk, må variabelen og uttrykket være av samme type. Denne kontrollen utføres av kompilatoren, noe som i stor grad forenkler søket etter feil og fører til økt programpålitelighet.

Settet med datatyper for Turbo Pascal-språket kan deles inn i to grupper:

  • standard (forhåndsdefinerte) typer ;
  • brukerdefinerte typer (egendefinerte typer) .

Standardtypene Turbo Pascal inkluderer:

  • heltallstype - heltall;
  • ekte type - ekte;
  • tegntype - char;
  • boolsk type - boolsk;
  • strengtype - streng;
  • pekertypen er peker;
  • teksttypen er tekst.

Tilpassede datatyper er ulike kombinasjoner av standardtyper.

Tilpassede typer inkluderer:

  • oppregnet type;
  • intervalltype;
  • pekertype;
  • strukturerte typer;
  • prosedyretype.

Kommentar... En annen klassifisering av datatyper er mulig, i henhold til hvilke typer er delt inn i enkle og komplekse.

Enkle typer inkluderer: heltallstype, reell type, tegntype, boolsk type, oppregnet type og intervalltype.

En kompleks type er representert av forskjellige kombinasjoner av enkle typer (matriser, poster, sett, filer, etc.)

Standard typer

Standard datatypen er definert av selve Pascal-språket. Når du bruker standardtyper i programmet, er det nok å angi underseksjonene til de nødvendige typene (const, var) og deretter beskrive konstantene og variablene som brukes i programmet. Det er ikke nødvendig å bruke underseksjonen Type.

For eksempel, hvis programmet bare bruker variabler:

i, j - heltall (heltall);

x, y - ekte (ekte);

t, s - tegn (tegn);

a, b - boolsk (logisk),

da trengs bare en underseksjon av variabler - Var. Derfor, i den beskrivende delen av programmet, er variable erklæringer skrevet som følger:

Heltallstyper

Data av denne typen kan bare akseptere heltallsverdier. I en datamaskin er heltallsverdier representert helt nøyaktig. Hvis variabelen er negativ, må den innledes med et "-"-tegn, hvis variabelen er positiv, kan "+"-tegnet utelates. Denne typen er nødvendig i tilfelle hvor en viss mengde ikke kan representeres omtrentlig - med et reelt tall. For eksempel antall mennesker, dyr osv.

Eksempler på å skrive heltallsverdier: 17, 0, 44789, -4, -127.

Rekkevidden for endring av data for en heltallstype bestemmes av fem standardtyper av heltall og presenteres i tabellen:

Type av Område Størrelse i byte
Shortint -128...+128 1
Heltall -32768...32767 2
Longint -2147483648...2147483647 4
Byte 0...255 1
Ord 0...65535 2

De to siste typene representerer bare positive tall, og de tre første både positive og negative tall.

I teksten til programmet eller når du legger inn data av en heltallstype, er verdiene skrevet ingen desimaltegn ... Faktiske verdier av variabelen bør ikke overskride tillatte verdier av typen (Shortint, Integer, Longint, Byte, Word) som ble brukt til å beskrive variabelen. Mulige overskridelser under beregninger kontrolleres ikke på noen måte, noe som vil føre til feil drift av programmet.

Et eksempel på bruk av en heltallsvariabel

Var a: heltall; b: ord; c: byte; Begynn a: = 300; (a er tildelt verdien 300) b: = 300; (b er satt til 300) c: = 200; (c er satt til 200) a: = b + c; (a er tildelt verdien 500) c: = b; (Feil! Variabelen c kan ikke ha verdier mer enn 255. Her tildeles variabelen c verdien 500, noe som vil føre til at resultatet flyter over.) Slutt.

Ekte typer

Verdiene til virkelige typer i datamaskinen er representert omtrentlig. Rekkevidden for endring av data av en reell type bestemmes av fem standardtyper: ekte, med enkel presisjon (enkel), dobbel presisjon (dobbel), med økt presisjon (utvidet), kompleks (komp) og presenteres i tabellen:

Type av Område Betydelige sifre Størrelse i byte
Ekte 2.9E-39 ... 1.7E + 38 11-12 6
Enkelt 1.5E-45 ... 3.4E + 38 >7-8 4
Dobbelt 5E-324 ... 1.7E + 308 15-16 8
Forlenget 3.4E-4951 ... 1.1E + 4932 19-20 10
Comp -2E + 63 + 1 ... + 2E + 63-1 19-20 8

Reelle tall kan representeres i to formater: fast og flytende komma.

Formatet for å skrive et fastpunktnummer er det samme som den vanlige matematiske notasjonen for et desimaltall med en brøkdel. Brøkdelen skilles fra hele delen ved hjelp av for eksempel en prikk

34.5, -4.0, 77.001, 100.56

Flyttalsformatet brukes når du skriver veldig store eller svært små tall. I dette formatet multipliseres tallet foran "E"-tegnet med tallet 10 til potensen som er angitt etter "E"-tegnet.

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

Eksempler på flyttall:

Nummer Opptak i 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

Tabellen fra 5 til 9 linjer viser posten med det samme tallet 124. Ved å endre posisjonen til desimaltegnet i mantissen (punktet "flyter", derav navnet "registreringen av et flyttall") og samtidig tid å endre verdien av ordren, kan du velge de mest passende postnummer.

Et eksempel på å beskrive variabler av reell type.

Karaktertype

Tegnverdier er tegn som du kan skrive på et datamaskintastatur. Dette lar deg presentere tekst i programmet og utføre ulike operasjoner på det: sette inn, slette individuelle bokstaver og ord, formatere, etc.

Tegntypen er angitt med det reserverte ordet Char og er designet for å inneholde ett tegn. Tegndata opptar én byte i minnet.

Formatet for å deklarere en symbolsk variabel er:

<имя переменной>: Røye;

Når du definerer verdien av en symbolsk variabel, skrives tegnet i apostrof. I tillegg kan du spesifisere det nødvendige tegnet ved å spesifisere dets ASCII numeriske verdi direkte. I dette tilfellet er det nødvendig å sette et #-tegn foran tallet som angir ASCII-koden til det nødvendige tegnet.

Et eksempel på bruk av variabler av symbolsk type:

Var c: røye; (c - variabel av tegntype) Start c: = 'A'; (symbolet 'A' er tilordnet variabelen c) c: = # 65; (tegnet A er også tilordnet variabelen c. ASCII-koden er 65) c: = '5'; (variabelen c er tildelt tegnet 5, End. her er ikke 5 lenger et tall)

Boolsk type

Den logiske datatypen kalles boolsk etter den engelske matematikeren George Boole, skaperen av feltet matematikk – matematisk logikk.

Formatet for å deklarere en variabel av en boolsk type:

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

Data av denne typen kan bare ha to verdier:

  • Sant sant;
  • Falsk er falsk.

Boolske data er mye brukt for å validere visse forhold og sammenligne verdier. Resultatet kan være sant eller usant.

For å sammenligne data er følgende relasjonsoperasjoner gitt:

Et eksempel på bruk av relasjonsoperasjoner:

relasjon 5> 3, resultatet er sant;

forhold 5 = 3, resultat falskt.

Et eksempel på bruk av variabler av en boolsk type.

Var a, b: boolsk; (a, b - variabler av boolsk type) Begynn a: = Sant; (variabel a er tildelt verdien "true") b: = usant; (b er tildelt verdien "false") Slutt.

Konstanter

Heltall, reelle tall, symboler, tegnstrenger, logiske konstanter kan brukes som konstanter.

Konstanten må deklareres i den beskrivende delen ved å bruke det reserverte ordet const.

Konstant erklæringsformat

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

Hvis flere konstanter brukes i programmet, er kun ett Const nøkkelord tillatt, beskrivelsen av hver konstant avsluttes med semikolon. En blokk med konstanter ender med en erklæring av en annen seksjon eller en erklæring av en blokk med kjørbare setninger.

Const (konstant seksjonserklæring) år = 2003; (konstant av heltallstype, siden det ikke er noen desimaltegn i posten) tid = 14,05; (konstant av reell type) N = 24; (konstant av heltallstype, siden det ikke er noen desimaltegn i posten) P = 3,14; (konstant av reell type) A = sann; (boolsk konstant) str1 = '7'; (tegntypekonstant) str2 = 'A'; (tegntypekonstant) str3 = 'Turbo'; (strengtypekonstant) Var (deklarasjon av variabelseksjon) X, y: heltall; (variabler av heltallstype)

Egendefinerte typer

Vurder bare fra settet med brukerdefinerte typer

  • oppregnet type;
  • intervalltype.

Vi trenger disse to typene når vi studerer matriser.

Opptalt type

En oppregnet datatype beskriver nye datatyper, hvis verdier bestemmes av programmereren selv. En opplistet type spesifiseres ved en oppregning av verdiene den kan motta. Hver verdi er navngitt av en identifikator og er plassert i en liste omgitt av parenteser. En opplistet type er en brukerdefinert datatype, så deklarasjonen av denne typen begynner med det reserverte TYPE-ordet.

Oppgitt type format:

<имя типа>= (konstant1, konstant2, ..., konstantN);

hvor
konstant1, konstant2, ..., konstantN er et ordnet sett med identifikatorverdier, behandlet som konstanter.

Et eksempel på en beskrivelse av en opplistet type:

Skriv ball = (en, to, tre, fire, fem); var t: ball;

Hvor ball er navnet på den oppregnede typen; en, to, tre, fire, fem - konstanter; t er en variabel som kan ha en hvilken som helst konstant verdi.

I en opplistet type er en konstant en identifikator, så den er ikke angitt og kan ikke være et tall. Således, i en oppregnet type, forstås en konstant som en spesiell type konstanter som ikke kan være:

  • numeriske konstanter: 1, 2, 3, 4 osv.
  • konstanter av symbolsk type: "a", "s", "1", "3", etc .;
  • konstanter av strengtype: "første", "andre" osv.

I tillegg er aritmetiske operasjoner og standard inn- og utdataprosedyrer Read, Write ikke aktuelt for verdier av denne typen.

Et eksempel på bruk av oppregnede variabler:

Type dager = (mandag, tirsdag, onsdag, torsdag, fredag, lørdag, søndag); Var dag: dager; start if day = Sunday then writeln (‘I dag er søndag!’); Slutt.

Elementer som inngår i definisjonen av en oppregnet type anses som ordnet i den rekkefølgen de er oppført. Nummereringen starter på null. Derfor, i det gitte eksemplet, har ukedagene følgende serienumre

Ord ()-funksjonen brukes til å programmere bestemme ordinalen.

I vårt eksempel er sekvensnumrene:

Ord (mandag) = 0;

Ord (lørdag) = 5;

Ord (søndag) = 6.

Intervall type

Hvis en variabel ikke aksepterer alle verdiene av sin type, men bare verdiene som finnes i et visst område, kalles denne datatypen en intervalltype. En intervalltype blir ofte referert til som en begrenset type og en rekkeviddetype. En intervalltype er spesifisert av grensene for verdiene:

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

  • to ".."-tegn behandles som ett tegn, så ingen mellomrom er tillatt mellom dem;
  • venstre kant av området bør ikke overskride høyre kant.

En intervalltype er en brukerdefinert datatype, så deklarasjonen av denne typen begynner med TYPE-tjenesteordet.

Et eksempel på en intervalltypebeskrivelse:

Skriv siffer = 1..10; måned = 1..31; lat = 'A' .. 'Z';

I et hvilket som helst program må du bestemme typen og typen mengder som skal brukes til å løse problemet. Ved deres utseende er enkle størrelser (i programmering kalles de alle data) delt inn i konstanter og variabler.

Konstanter Er data hvis verdier ikke kan endres under programkjøring. Introdusert i en konstblokk.

Generelt gjøres beskrivelsen av en enkel utype konstant som følger:

Const konstant_navn = uttrykk;

Innskrevne konstanter beskrives som:

Konst konstant_navn: type = uttrykk;

Følgende kan brukes i uttrykk:

· Tall eller et sett med tegn i apostrof;

· Matematiske operasjoner;

· Relasjonsoperasjoner og logiske operasjoner;

Funksjoner abs (x), rund (x), trunc (x);

· Funksjoner chr (x), ord (x), pred (x), succ (x) og andre.

Beskrivelsesformat for konstanter:

id = verdi;

1. Heltall - definert ved hjelp av tall skrevet i desimal- eller heksadesimalt format som ikke inneholder et desimaltegn.

2. Real - definert ved hjelp av tall skrevet i desimaldataformat.

3. Symbolsk - dette er en hvilken som helst karakter på en personlig datamaskin, innelukket i apostrof.

4. String - definert av en sekvens av vilkårlige tegn omsluttet av apostrof.

5. Logisk er enten usann eller sant.

Typen av konstanten er ikke spesifisert, men den bestemmes automatisk under kompilering: verdiene til uttrykkene beregnes umiddelbart, og erstattes deretter i stedet for navn.

Variabler Er data som kan endres under programkjøring. Hver variabel har sin egen navngitte minneplassering / -plasseringer. De. en variabel er en slags beholder der du kan legge noen data og lagre dem der. Variabler har et navn, type og verdi.

Variabelnavn – må nødvendigvis begynne med en bokstav, kan ikke inneholde mellomrom og kan bare inneholde:

· Bokstaver i det latinske alfabetet;

· Understrek.

Eksempler: A, A_1, AA, i, j, x, y osv. Ugyldige navn: Min 1, 1A. Variabelnavn kan være opptil 126 tegn lange, så prøv å velge meningsfulle variabelnavn. Imidlertid skiller kompilatoren de første 63 tegnene i navnene. Men den skiller ikke mellom små og store bokstaver, både i variabelnavn og i skriving av tjenesteidentifikatorer.

Variabeltype - må defineres i variabeldeklarasjonsblokken VAR. Verdien av en variabel er en konstant av samme type.

Hvert program fungerer med data. Data er, i ordets videste forstand, objekter som et program behandler. Typen av en gitt er dens karakteristikk. Avhenger av typen:

Hvordan disse dataene vil bli lagret,

Hvor mange minneceller vil bli tildelt for lagringen,

Hva er minimums- og maksimumsverdien det kan ta,

· Hvilke operasjoner kan utføres med den.

Noen enkle Pascal-datatyper:

1. Heltallstyper (ShortInt, Integer, LongInt, Byte, Word).

2. Ekte typer (Real, Single, Double, Extended, Comp).

3. Boolsk.

4. Karakter (Char).

5. Strengtyper (streng, streng [n]).

9. Ubetingede operatører i Pascal. Beskrivelse og bruk.

Operatørtype

gå til<метка>;

Formål - overføring av kontroll i programmet til operatør merket med etikett<метка>... En etikett kan være et navn (skrevet i henhold til reglene for språknavn) eller et usignert heltall, beskrevet i etikettbeskrivelsen statementLabel, og som står foran den merkede setningen, men kun på ett sted i programmet. Etiketten er atskilt fra operatøren med symbolet ":." Et hopp til en etikett kan skje flere ganger i en blokk, men selve etiketten kan bare skje én gang. Hvis det ikke er kontrolloverføring til en etikett, vil det ikke være noen feil.

Den ubetingede hoppoperatøren er generelt ikke tillatt i strukturert programmering. Selv om det lar deg forkorte teksten til programmet, er bruken i Pascal begrenset av en rekke regler og retningslinjer. Det er forbudt å gå inn i en sammensatt setning, i eller til begynnelsen av en subrutine og gå ut av subrutinen til programmet som kalte den. Det anbefales ikke å bevege seg utover grensene til siden (skjermen) i programteksten, bortsett fra overgangen til programmets endelige uttalelser. Alt dette skyldes muligheten for å hoppe over viktige utsagn for riktig funksjon av programmet. Vanligvis brukes den ubetingede hoppoperatoren bare for å gå tilbake til begynnelsen av løkkekroppen hvis løkken er konstruert ved bruk av betingede og ubetingede utsagn.

Merk at setningen etter goto også må merkes med en annen etikett (med mindre goto er den siste i setningsgruppen). Ellers er det ingen måte å komme til neste operatør etter goto.

10. Filialoperatører i Pascal. Beskrivelse og bruk.

Operatørene som lar deg velge bare ett av flere mulige alternativer for å utføre et program (grener) inkluderer

De. disse setningene lar deg endre den naturlige rekkefølgen for utførelse av programsetninger.

hvis<условие>deretter< оператор 1 >

ellers<оператор 2> ;

hvis a> = b så Maks: = a annet Maks: = b;

I if-setningen kan bare én setning utføres på begge grenene (da og andre)!

Et eksempel på en oppgave for grenoperatører i pascal. Skriv inn to heltall og vis det største av dem.

Løsningsidé: du må vise det første tallet hvis det er større enn det andre, eller det andre hvis det er større enn det første.

Funksjon: handlingene til utøveren avhenger av noen forhold (hvis ... ellers ...).

var a, b, maks: heltall;

writeln ("Skriv inn to heltall");

hvis a> b så maks: = a annet maks: = b;

writeln ("Høyeste tall", maks);

Vanskelige forhold

En kompleks tilstand er en tilstand som består av flere enkle forhold (relasjoner) forbundet med logiske

operasjoner:

Ikke - IKKE (negasjon, inversjon)

Og - OG (logisk multiplikasjon, konjunksjon,

samtidig oppfyllelse av vilkår)

Eller - OR (logisk addisjon, disjunksjon,

oppfyllelse av minst ett av vilkårene)

Xor - eksklusiv ELLER (kun kjøring

en av to tilstander, men ikke begge)

Enkle forhold (relasjoner)

< <= > >= = <>

Rekkefølge for utførelse (prioritet = ansiennitet)

Uttrykk i parentes

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

Funksjon - hver av de enkle betingelsene må settes i parentes.

Saksvalgsuttalelse

Saksuttalelsen lar deg velge mellom flere alternativer.

Varianten operatør består

Øfra et uttrykk kalt en velger,

Ø og en liste over operatører, hver merket med en konstant av samme type som velgeren.

Velgeren skal bare være en ordinær datatype, ikke en longint-type.

Velgeren kan være en variabel eller et uttrykk.

Listen over konstanter kan spesifiseres enten som en eksplisitt oppregning eller som et intervall eller deres forening. Repetisjon av konstanter er det ikke

tillatt.

Brytertypen og typene for alle konstanter må være kompatible.

Sak< выражение {селектор}>av

<список констант 1> : < оператор 1>;

< список констант K> : < оператор K>;

Sakserklæringen utføres som følger:

1) verdien av velgeren beregnes;

2) det oppnådde resultatet kontrolleres for å tilhøre en eller annen liste over konstanter;

3) hvis en slik liste blir funnet, utføres det ikke lenger ytterligere kontroller, men operatøren tilsvarende

den valgte grenen, hvoretter kontrollen overføres til operatøren etter sluttnøkkelordet, som lukker hele

sakskonstruksjon;

4) hvis det ikke er en passende liste over konstanter, blir operatøren bak else-nøkkelordet utført; hvis det ikke er noen annen gren,

da gjøres ingenting.

I saksforgreningssetningen kan bare én setning utføres på tvers av alle grener!

Hvis du trenger å utføre flere, må du bruke start-end-operatørbrakettene.

case Index mod 4 av

1: x: = y * y - 2 * y;

11.Operator av opsjon (seleksjon) i Pascal. Beskrivelse og bruk.

Valgoperatøren (alternativ, bryter) implementerer valget av ett av de mulige alternativene, dvs. alternativer for å fortsette programmet.

Opptaksformat:

Sak - valg, alternativ;

S - velger, ordinal type uttrykk;

Ki - seleksjonskonstanter, en konstant hvis type er den samme som typen til velgeren;

OPi - enhver operatør inkludert tomme;

Den utvalgte operatøren implementerer følgende konstruksjon:

Pascal utvalgssetning: Evaluerer velgeruttrykket. Den beregnede verdien sammenlignes sekvensielt med konstantene til alternativene og kontrollen overføres til operatørvalgkonstanten, som sammenfaller med den beregnede verdien til velgeren. Uttalelsen utføres og kontrollen overføres utenfor utvalgsuttalelsen. Hvis den beregnede verdien til velgeren ikke samsvarer med noen av konstantene, overføres kontrollen til Else-grenen, hvis tilstedeværelse i dette tilfellet ikke er nødvendig, kontrollen overføres utenfor valgoperatøren.

Blokkdiagram over utvalgsoperatøren.

Strukturen til select-setningen kan implementeres ved å bruke nestede betingede setninger, men dette forringer klarheten til programmet. Anbefalt ikke mer enn 2-3 nivåer av vedlegg.

12. Typer sløyfeoperatører i Pascal, deres formål.

5. Algoritmiske konstruksjoner av sykluser. Typer av sykluser.

Det er tre typer sløyfealgoritmer: en parameterløkke (kalt en aritmetisk løkke), en forutsetningsløkke og en postbetingelsesløkke (de kalles iterative løkker).

12.13 Regneløkke. I en aritmetisk syklus bestemmes antallet trinn (repetisjoner) unikt av regelen for endring av parameteren, som settes ved å bruke de innledende (N) og siste (K) verdiene til parameteren og trinnet (h) å endre den. Det vil si at i det første trinnet i syklusen er parameterverdien lik N, ved det andre - N + h, ved det tredje - N + 2h, etc. Ved siste trinn i syklusen er verdien av parameteren ikke større enn K, men slik at dens ytterligere endring vil føre til en verdi større enn K.

Tellerløkker brukes når den sykliske delen av programmet skal gjentas et fast antall ganger. Slike løkker har en heltallsvariabel kalt løkketelleren.

Hvis det er nødvendig at et programfragment gjentas et gitt antall ganger, brukes følgende konstruksjon:

TIL<имя счетчика цикла> = <начальное значение>DERETTER<конечное значение>GJØRE<оператор>;

FOR, TO, DO - reserverte ord (engelsk: for, to, execute);

<счетчик (параметр) цикла>- en variabel av typen INTEGER, som endres på intervallet fra<начального значения>, øker med én på slutten av hvert trinn i syklusen;

<оператор>- enhver (oftere sammensatt) operatør.

Det er en annen form for denne operatøren:

TIL<имя счетчика цикла>:= <начальное значение>NED TIL<конечное значение>GJØRE<оператор> :

Å erstatte TIL med DOWNTO (engelsk: ned til) betyr at trinnet med å endre syklusparameteren er lik - 1, det vil si at det skjer en trinnvis reduksjon av telleren med én.

12.14 Sløyfe med forutsetning. Antall trinn i syklusen er ikke forhåndsbestemt og avhenger av inndataene til problemet. I denne sløyfestrukturen blir verdien av det betingede uttrykket (betingelsen) først sjekket før neste trinn i løkken utføres. Hvis verdien av det betingede uttrykket er sant, utføres løkkens brødtekst. Deretter overføres kontrollen igjen til kontroll av tilstand mv. Disse handlingene gjentas til det betingede uttrykket evalueres til FALSE. Ved første ikke-overholdelse av tilstanden, avsluttes syklusen.

Denne mest brukte repetisjonsoperatoren er:

SAMTIDIG SOM<условие>GJØRE<оператор>;

WHILE, DO - reserverte ord (engelsk: bye, to do);

<условие>- uttrykk av en logisk type;

<оператор>- en vilkårlig (muligens sammensatt) operatør.

Et trekk ved en løkke med en forutsetning er at hvis det innledende betingede uttrykket er usant, vil ikke løkkens kropp bli utført en gang.

Sløyfer med en forutsetning brukes når utførelsen av sløyfen er knyttet til en logisk betingelse. En loop-setning med en forutsetning har to deler: en loop-utførelsesbetingelse og en loop-kropp.

12.15 Loop med postcondition (iterativ loop). Som i en sløyfe med en forutsetning, i en sløyfe med en postbetingelse, er ikke antall repetisjoner av sløyfelegemet forhåndsbestemt; det avhenger av oppgavens inngangsdata. I motsetning til en sløyfe med en forutsetning, vil kroppen til en sløyfe med en postbetingelse alltid utføres minst én gang, hvoretter betingelsen kontrolleres. I denne konstruksjonen vil sløyfens kropp bli utført så lenge verdien til det betingede uttrykket er usann. Så snart det blir sant, avsluttes kommandoen.

Denne operatøren har formen:

GJENTA<тело цикла>FØR<условие>:

REPEAT, TIL - reserverte ord (engelsk: gjenta til);

<условие>- et uttrykk av en logisk type, hvis verdien er sann, avsluttes løkken.

Det skal bemerkes at i denne konstruksjonen er sekvensen av utsagn som definerer sløyfens kropp ikke innelukket i operatorparentesene BEGIN ... END, siden de er REPEAT ... UNTIL-paret.

Postkondisjoneringsløkker ligner på forhåndsbetingede løkker, men de plasserer tilstanden etter løkkens kropp.

I motsetning til en sløyfe med en forutsetning, som kan fullføre arbeidet uten noen gang å utføre sløyfens kropp (hvis kjøringsbetingelsen er falsk under den første gjennomgangen av sløyfen), må sløyfens kropp med en postbetingelse utføres minst én gang , hvoretter tilstanden kontrolleres.

En av operatørene til løkkelegemet må påvirke verdien av løkkeutførelsesbetingelsen, ellers vil løkken gjentas et uendelig antall ganger.

Hvis betingelsen er sann, avsluttes loopen, ellers gjentas loop-setningene.

16. Array er et sett med elementer av samme type, forent med et felles navn og okkuperer et visst minneområde på datamaskinen. Antall elementer i en matrise er alltid begrenset. Generelt er en matrise en strukturert datatype som består av et fast antall elementer av samme type. Matriser kalles vanlig type (eller rader) fordi de kombinerer elementer av samme type (logisk homogene), ordnet (regulert) etter indekser som bestemmer posisjonen til hvert element i matrisen. Enhver datatype kan brukes som array-elementer, derfor er det ganske legitimt for arrays av poster, arrays of pointers, arrays of strings, arrays, etc. Array-elementer kan være data av enhver type, inkludert strukturerte data. Type array-elementer kalles grunnleggende. Det særegne ved Pascal-språket er at antallet array-elementer er fast under beskrivelsen og ikke endres under programkjøringen. Elementene som utgjør matrisen er ordnet på en slik måte at hvert element tilsvarer et sett med tall (indekser) som bestemmer plasseringen i den generelle sekvensen. Hvert enkelt element er tilgjengelig ved å indeksere elementene i matrisen. Indekser er uttrykk av en hvilken som helst skalartype (oftest et heltall), bortsett fra ekte. Indekstypen definerer i hvilken grad indeksverdiene endres. Frasen array av brukes til å beskrive en array.

En matrise kalles en samling av data som utfører lignende funksjoner, og betegnes med ett navn. Hvis bare ett serienummer er tildelt hvert element i matrisen, kalles en slik matrise lineær eller endimensjonal.

17... Endimensjonal matrise Er et fast antall elementer av samme type, forent med ett navn, og hvert element har sitt eget unike nummer, og tallene til elementene går på rad.

For å beskrive slike objekter i programmering, må du først angi den aktuelle typen i typebeskrivelsesdelen.

Matrisetypen er beskrevet som følger:

Typenavn = Array [type indeks(er)] Av elementtype;

Variabelnavn: typenavn;

En matrisevariabel kan beskrives direkte i Var-variabelbeskrivelsesdelen:

Var Variabelnavn: array [type indeks(er)] Av type elementer;

Array - et tjenesteord (oversatt fra engelsk betyr "array");

Av - et tjenesteord (oversatt fra engelsk betyr "fra").

Indekstype - hvilken som helst ordinær type, bortsett fra heltall, longint-typer.

Selve typen av elementene kan være en hvilken som helst annen enn filtypen.

Antall elementer i en matrise kalles dens dimensjon. Det er lett å beregne at med den siste metoden for å beskrive settet med indekser, er dimensjonen til matrisen lik: maksimumsverdien til indeksen - minimumsverdien av indeksen + 1.

For eksempel:

mas = rekke av ekte;

Array X er endimensjonal og består av tjue elementer av ekte type. Array-elementer lagres sekvensielt i datamaskinens minne etter hverandre.

Når du bruker variabler for å angi en indeks, må verdiene deres bestemmes på brukstidspunktet, og når det gjelder aritmetiske uttrykk, må resultatet ikke gå utover grensene for minimums- og maksimumsverdiene til matriseindeksene.

Matriseelementindekser kan starte med et hvilket som helst heltall, inkludert negative, for eksempel:

Type bb = Array [-5..3] Av boolsk;

Matriser av denne typen vil inneholde 9 boolske variabler, nummerert fra -5 til 3.

18. Todimensjonal matrise i Pascal den behandles som en endimensjonal matrise, hvis elementtype også er en matrise (en matrise med matriser). Plasseringen av elementer i todimensjonale Pascal-matriser er beskrevet av to indekser. De kan representeres som en rektangulær tabell eller matrise.

Tenk på en todimensjonal Pascal-matrise med dimensjonene 3 * 3, det vil si at den vil ha tre linjer, og hver linje har tre elementer:

Hvert element har sitt eget nummer, som i endimensjonale arrays, men nå består tallet allerede av to tall - nummeret på linjen som elementet er plassert i, og nummeret på kolonnen. Dermed bestemmes varenummeret av skjæringspunktet mellom rad og kolonne. For eksempel er en 21 elementet i den andre raden og den første kolonnen.

Beskrivelse av en todimensjonal Pascal-matrise.

Det er flere måter å erklære en todimensjonal Pascal-matrise på.

Vi vet allerede hvordan vi skal beskrive endimensjonale arrays, hvis elementer kan være av hvilken som helst type, og derfor kan elementene i seg selv være arrays. Tenk på følgende beskrivelse av typer og variabler:

Grunnleggende operasjoner med todimensjonale Pascal-matriser

Alt som er sagt om de grunnleggende operasjonene med endimensjonale arrays er også sant for matriser. Den eneste handlingen som kan utføres på matriser av samme type som helhet er tildeling. Det vil si at hvis programmet vårt beskriver to matriser av samme type, for eksempel,

matrise = matrise av heltall;

så under kjøringen av programmet kan du tilordne matrisen a verdien til matrisen b (a: = b). Alle andre handlinger utføres element for element, mens på elementene kan du utføre alle tillatte operasjoner som er definert for datatypen til array-elementene. Dette betyr at hvis en matrise består av heltall, kan operasjoner definert for heltall utføres på elementene, men hvis matrisen består av symboler, er operasjoner definert for arbeid med symboler gjeldende for dem.

21. Teknologier for arbeid med tekstdokumenter. Tekstredigerere og prosessorer: formål og muligheter.

Mer avanserte tekstredigerere (for eksempel Microsoft Word og OpenOffice.org Writer), noen ganger kalt tekstbehandlere, har et bredt spekter av dokumentopprettingsmuligheter (sett inn lister og tabeller, stavekontroller, lagre rettelser osv.).

For å forberede publisering av bøker, magasiner og aviser i prosessen med å lage prototyper av publikasjonen, brukes kraftige tekstbehandlingsprogrammer - desktop publishing-systemer (for eksempel Adobe PageMaker, Microsoft Office Publisher).

Spesialiserte applikasjoner (som Microsoft FrontPage) brukes til å forberede websider og nettsteder for publisering på Internett.

Tekstredigerere er programmer for å lage, redigere, formatere, lagre og skrive ut dokumenter. Et moderne dokument kan i tillegg til tekst inneholde andre objekter (tabeller, diagrammer, bilder osv.).

Redigering er en transformasjon som legger til, sletter, flytter eller korrigerer innholdet i et dokument. Redigering av et dokument gjøres vanligvis ved å legge til, fjerne eller flytte tegn eller tekststykker.

Formatering er dekorasjon av tekst. I tillegg til teksttegn, inneholder formatert tekst spesielle usynlige koder som forteller programmet hvordan det skal vises på skjermen og skrives ut på en skriver: hvilken font som skal brukes, hvilken stil og størrelse på tegn skal være, hvordan avsnitt og overskrifter formateres .

Formaterte og uformaterte tekster er noe forskjellige i naturen. Dette skillet må forstås. I formatert tekst er alt viktig: størrelsen på bokstavene, og bildet deres, og hvor en linje slutter og en annen begynner. Det vil si at formatert tekst er uløselig knyttet til parametrene til papirarket den er skrevet ut på.

Når du designer tekstdokumenter, er det ofte nødvendig å legge til ikke-tekstelementer eller objekter i dokumentet. Avanserte tekstredigerere lar deg gjøre dette – de har rikelig mulighet til å sette inn bilder, diagrammer, formler og så videre i teksten.

Papir og elektroniske dokumenter. Dokumenter kan være papir eller elektroniske. Papirdokumenter opprettes og formateres for den beste presentasjonen når de skrives ut på en skriver. Elektroniske dokumenter opprettes og formateres for den beste presentasjonen på skjermen. Den gradvise utskiftingen av papirdokumentflyt med elektronisk er en av trendene i utviklingen av informasjonsteknologi. Å redusere papirforbruket er gunstig for å bevare naturressurser og redusere miljøforurensning.

Formateringen av papir og elektroniske dokumenter kan variere betydelig. For papirdokumenter benyttes såkalt absolutt formatering. Et trykt dokument formateres alltid for å passe til et trykt ark av kjent størrelse (format). For eksempel avhenger bredden på en linje i et dokument av bredden på papiret. Hvis dokumentet ble forberedt for utskrift på ark i stort format, kan det ikke skrives ut på små ark - deler av dokumentet vil ikke passe på dem. Kort sagt, formatering av et trykt dokument krever alltid et foreløpig valg av et ark med påfølgende binding til dette arket. For et trykt dokument kan du alltid nøyaktig navngi (i en hvilken som helst måleenhet) størrelsene på fonter, marger, avstand mellom linjer eller avsnitt osv.

For elektroniske dokumenter benyttes såkalt relativ formatering. Forfatteren av dokumentet kan ikke forutsi på forhånd på hvilken datamaskin, med hvilken skjermstørrelse dokumentet vil bli sett. Dessuten, selv om størrelsene på skjermene var kjent på forhånd, er det fortsatt umulig å forutsi størrelsen på vinduet der leseren vil se dokumentet. Derfor lages elektroniske dokumenter for å passe til gjeldende vindusstørrelse og formateres umiddelbart.

Forfatteren av et elektronisk dokument vet heller ikke hvilke fonter som er tilgjengelige på datamaskinen til den fremtidige leseren, og kan derfor ikke spesifisere strengt i hvilken font teksten og overskriftene skal vises. Men han kan spesifisere slik formatering at overskrifter på alle datamaskiner vil virke større enn teksten.

Relativ formatering brukes til å lage elektroniske dokumenter på Internett (kalt websider), og absolutt formatering brukes til å lage trykte dokumenter i tekstbehandlere.

22. De viktigste strukturelle elementene i et tekstdokument. Fonter, stiler, formater.

Formatering av fonten (tegn).

Symboler er bokstaver, tall, mellomrom, skilletegn, spesialtegn. Symboler kan formateres (endre utseende). Blant hovedegenskapene til symboler er følgende: skrifttype, størrelse, stil og farge.

En font er et komplett sett med tegn i en bestemt stil. Hver font har sitt eget navn, for eksempel Times New Roman, Arial, Comic Sans MS. Skriftenheten er et punkt (1 pt = 0,367 mm). Skriftstørrelsene kan endres innenfor et bredt område. I tillegg til den vanlige (normale) tegnstilen, brukes vanligvis fet, kursiv og fet kursiv.

Bitmap- og vektorfonter kjennetegnes ved måten de presenteres på på en datamaskin. Punktgrafikkmetoder brukes til å representere punktgrafikkfonter, skrifttegn er grupper av piksler. Punktgrafikkfonter kan bare skaleres etter spesifikke forhold.

I vektorfonter beskrives symboler med matematiske formler, og deres vilkårlige skalering er mulig. Blant vektorfonter er TrueType-fonter de mest brukte.

Du kan også angi flere parametere for formatering av tegn: understreking av tegn med forskjellige typer linjer, endring av utseendet til tegn (hevet og senket skrift, gjennomstreking), endre avstanden mellom tegn.

Hvis du planlegger å skrive ut et dokument i farger, kan du angi forskjellige farger for forskjellige grupper av tegn.

For å kontrollere stavemåte og syntaks brukes spesielle programvaremoduler, som vanligvis inngår i tekstbehandlere og publiseringssystemer. Slike systemer inneholder ordbøker og grammatikkregler for flere språk, som lar deg rette opp feil i flerspråklige dokumenter.

24... Database er en informasjonsmodell som lar deg lagre data om en gruppe objekter som har samme sett med egenskaper.

Det finnes flere forskjellige typer databaser: tabellform (relasjonell), hierarkisk og nettverksbasert.

Tabellformede databaser.

En tabelldatabase inneholder en liste over objekter av samme type, det vil si objekter med samme sett med egenskaper. Det er praktisk å representere en slik database i form av en todimensjonal tabell.

I relasjonsdatabaser presenteres alle data i form av enkle tabeller, delt inn i rader og kolonner, i skjæringspunktet for dataene. Spørringer på slike tabeller returnerer tabeller, som i seg selv kan bli gjenstand for ytterligere spørringer. Hver database kan inneholde flere tabeller.

Den største fordelen med tabeller er deres forståelighet. Vi håndterer tabellinformasjon nesten hver dag. Ta for eksempel en titt i dagboken din: timeplanen presenteres der i form av en tabell. Når vi kommer til stasjonen ser vi på togplanen. Hvilken form har den? Dette er et bord! Og så er det tabellen over fotballmesterskapet. Og lærerens journal, hvor han gir deg karakterer, er også en tabell.

Kort fortalt kan egenskapene til en relasjonsdatabase formuleres som følger:

1. Data lagres i tabeller som består av kolonner ("attributter", "felt") og rader ("poster");

2. Det er nøyaktig én verdi i skjæringspunktet mellom hver kolonne og linje;

3. Hver kolonne har sitt eget navn, som fungerer som navnet, og alle verdiene i én kolonne er av samme type.

4. Spørringer til databasen gir resultater i form av tabeller, som også kan fungere som spørringsobjekt.

5. Rader i en relasjonsdatabase er uordnet - bestilling utføres i det øyeblikket det genereres et svar på en forespørsel.

6. Som regel lagres informasjon i databaser ikke i én tabell, men i flere sammenkoblede.

I relasjonsdatabaser kalles en tabellrad innspilling og kolonnen er felt... Hvert felt i tabellen har et navn.

Enger- dette er forskjellige egenskaper (noen ganger sier de - attributter) til et objekt. Feltverdier på én linje refererer til ett objekt.

Primærnøkkel i databasen kalles et felt (eller et sett med felter), hvis verdi ikke gjentas i forskjellige poster.

Det er en annen veldig viktig egenskap knyttet til hvert felt - felttype... Felttypen definerer settet med verdier som et gitt felt kan ta i ulike poster.

Det er fire hovedfelttyper som brukes i relasjonsdatabaser:

numerisk;

Symbolsk;

Logisk.

25. Databasestyringssystemer og prinsipper for arbeid med dem. Søke, slette og sortere data i databasen. Søkebetingelser (logiske uttrykk); bestille og sortere nøkler.

Databasestyringssystemer (DBMS).

For å lage databaser, samt å utføre søke- og sorteringsoperasjoner, er spesielle programmer ment - databasestyringssystemer (DBMS).

Dermed er det nødvendig å skille mellom den faktiske databasen (DB) - bestilte datasett, og databasestyringssystemer (DBMS) - programmer som administrerer lagring og behandling av data. For eksempel er Access-applikasjonen, som er en del av Microsoft Office-pakken med programmer, et databasebehandlingssystem som lar brukeren lage og manipulere tabellbaserte databaser.

En relasjonsdatabase er i hovedsak en todimensjonal tabell. En post betyr her en rad i en todimensjonal tabell, hvis elementer danner kolonnene i tabellen. Kolonner kan være numeriske, tekst eller dato, avhengig av datatypen. Radene i tabellen er nummerert.

Arbeid med en DBMS begynner med å lage en databasestruktur, dvs. med definisjonen:

antall kolonner;

kolonnenavn;

kolonnetyper (tekst / nummer / dato);

kolonnebredder.

Hovedfunksjonene til DBMS:

Databehandling i eksternt minne (på disker);

Databehandling i minnet;

Logging av endringer og gjenoppretting av databasen etter feil;

Databasespråkstøtte (datadefinisjonsspråk, datamanipulasjonsspråk).

I DBMS-kommandoer skrives valgbetingelsen i form av et logisk uttrykk.

Et boolsk uttrykk, som et matematisk uttrykk, blir utført (evaluert), men resultatet er ikke et tall, men en boolsk verdi: sant eller usant.

Et uttrykk som består av én logisk verdi eller én relasjon vil kalles et enkelt logisk uttrykk.

Ofte er det oppgaver der det ikke brukes separate forhold, men et sett med relaterte forhold (relasjoner). Du må for eksempel velge elever hvis vekt er over 60 og høyden er mindre enn 168.

Et uttrykk som inneholder logiske operasjoner vil bli kalt et komplekst logisk uttrykk.

Foreningen av to (eller flere) utsagn til én ved å bruke unionen "og" kalles operasjonen av logisk multiplikasjon eller konjunksjon.

Som et resultat av logisk multiplikasjon (konjunksjon), oppnås sann hvis alle logiske uttrykk er sanne.

Foreningen av to (eller flere) utsagn som bruker foreningen "eller" kalles operasjonen av logisk addisjon eller disjunksjon.

Som et resultat av logisk addisjon (disjunksjon), oppnås sann hvis minst ett logisk uttrykk er sant.

Å feste en partikkel "ikke" til et utsagn kalles en operasjon med logisk negasjon eller inversjon.

27. Regneark, formål og grunnleggende funksjoner.

Regneark er et numerisk databehandlingsprogram som lagrer og behandler data i rektangulære tabeller.

Et regneark består av kolonner og rader. Kolonneoverskrifter er betegnet med bokstaver eller bokstavkombinasjoner (A, G, AB, etc.), radoverskrifter med tall (1, 16, 278, etc.). Celle er skjæringspunktet mellom en kolonne og en rad.

Hver celle i tabellen har sin egen adresse. En regnearkcelleadresse er sammensatt av en kolonneoverskrift og en radoverskrift, for eksempel: A1, F123, R1. Cellen som noen handlinger utføres med er uthevet med en ramme og kalles aktiv.

Datatyper. Regneark lar deg jobbe med tre grunnleggende typer data: tall, tekst og formel.

Tall i Excel-regneark kan skrives i det vanlige numeriske eller eksponentielle formatet, for eksempel: 195.2 eller 1.952E + 02. Som standard er tall høyrejustert i en celle. Dette skyldes det faktum at når du plasserer tall under hverandre (i en tabellkolonne), er det praktisk å ha en justering med sifre (enheter under enheter, tiere under tiere, osv.).

En formel må begynne med et likhetstegn og kan inkludere tall, cellenavn, funksjoner (matematisk, statistisk, finansiell, dato og klokkeslett, etc.) og matematiske operasjonstegn. For eksempel legger formelen "= A1 + B2" til tallene som er lagret i cellene A1 og B2, og formelen "= A1 * B" multipliserer tallet som er lagret i celle A1 med 5. Når du skriver inn en formel, vil ikke cellen vis selve formelen og resultatet av beregninger med denne formelen. Når du endrer de opprinnelige verdiene inkludert i formelen, beregnes resultatet på nytt umiddelbart.

Absolutte og relative koblinger. Formler bruker referanser til celleadresser. Det er to hovedtyper av lenker: relative og absolutte. Forskjellene mellom dem vises når du kopierer en formel fra en aktiv celle til en annen celle.

En relativ referanse i en formel brukes til å indikere en celleadresse, beregnet i forhold til cellen der formelen ligger. Når du flytter eller kopierer en formel fra den aktive cellen, oppdateres relative referanser automatisk basert på den nye posisjonen til formelen. Relative referanser er som følger: A1, B3.

Hvis dollartegnet står foran en bokstav (for eksempel: $ A1), er kolonnekoordinaten absolutt og radkoordinaten relativ. Hvis dollartegnet er foran et tall (for eksempel A $ 1), så er tvert imot kolonnekoordinaten relativ, og radene er absolutte. Slike lenker kalles blandede lenker.

Anta for eksempel at celle C1 inneholder formelen = A $ 1 + $ J31, som, når den kopieres til celle D2, blir = B $ 1 + $ B2. Relative lenker endret seg når de ble kopiert, men absolutte gjorde det ikke.

Sortering og søk etter data. Regneark lar deg sortere dataene dine. Data i regneark er sortert i stigende eller synkende rekkefølge. Sortering ordner data i en bestemt rekkefølge. Du kan utføre nestede sorteringer, det vil si sortere dataene etter flere kolonner, mens rekkefølgen for sortering av kolonnene tildeles.

I regneark kan du søke etter data i henhold til de angitte betingelsene - filtre. Filtre er definert ved hjelp av søkeord (større enn, mindre enn, lik og så videre) og verdier (100, 10 og så videre). For eksempel mer enn 100. Søket vil finne de cellene som inneholder data som samsvarer med det angitte filteret.

Konstruksjon av diagrammer og grafer. Regneark lar deg presentere numeriske data i form av diagrammer eller grafer. Det finnes ulike typer diagrammer (bar, kake, etc.); valget av diagramtype avhenger av typen av data.

28. Teknologi for informasjonsbehandling i elektroniske tabeller (ET). Strukturen til regnearket.

Et regneark er et numerisk databehandlingsprogram som lagrer og behandler data i rektangulære tabeller. Et regneark består av kolonner og rader. Kolonneoverskrifter er betegnet med bokstaver eller bokstavkombinasjoner (A, G, AB, etc.), radoverskrifter med tall (1, 16, 278, etc.). Celle er skjæringspunktet mellom en kolonne og en rad. Hver celle i tabellen har sin egen adresse. En regnearkcelleadresse er sammensatt av en kolonneoverskrift og en radoverskrift, for eksempel: Al, B5, E7. Cellen som noen handlinger utføres med er uthevet med en ramme og kalles aktiv. Regnearkene som brukeren jobber med i applikasjonen kalles regneark. Du kan legge inn og endre data på flere regneark samtidig, og utføre beregninger basert på data fra flere ark. Regnearkdokumenter kan inneholde flere regneark og kalles arbeidsbøker.

29. Datatyper i elektroniske tabeller (ET): tall, formler, tekst. Regler for å skrive formler.

Datatyper.

Regneark lar deg jobbe med tre grunnleggende typer data: tall, tekst og formel.

Tall i Excel-regneark kan skrives i det vanlige numeriske eller eksponentielle formatet, for eksempel: 195.2 eller 1.952О + 02. Som standard er tall høyrejustert i en celle. Dette skyldes det faktum at når du plasserer tall under hverandre (i en tabellkolonne), er det praktisk å ha en justering med sifre (enheter under enheter, tiere under tiere, osv.).

Tekst i Excel-regneark er en sekvens av tegn som består av bokstaver, tall og mellomrom, for eksempel er "32 MB" tekst. Som standard er tekst venstrejustert i en celle. Dette skyldes den tradisjonelle måten å skrive på (fra venstre til høyre).

En formel må starte med et likhetstegn og kan inkludere tall, cellenavn, funksjoner (matematikk, statistisk, finansiell, dato og klokkeslett osv.), og matematiske tegn: operasjoner. For eksempel legger formelen "= A1 + B2" til tallene som er lagret i cellene A1 og B2, og formelen "= A1 * 5" multipliserer tallet som er lagret i celle A1 med 5. Når du skriver inn en formel, vil ikke cellen vis selve formelen og resultatet av beregninger med denne formelen. Når du endrer de opprinnelige verdiene inkludert i formelen, beregnes resultatet på nytt umiddelbart.

Regler for å skrive formler i regneark

1. Formler inneholder tall, cellenavn, operasjonstegn, parenteser, funksjonsnavn

2. Aritmetiske operasjoner og deres tegn:

Operasjonsnavn Symbol Tastekombinasjon

addisjon + (Shift + + =) eller (+) på tilleggstastaturet

subtraksjon - (-)

multiplikasjon * (Shift + 8) eller (*) på ekstra tastatur

divisjon / (Shift + | \) eller (/) på ekstra tastatur

eksponentiering ^ (Shift + 6) på engelsk

3. Formelen er skrevet på en linje, symbolene er sekvensielt stilt opp etter hverandre, alle tegn på operasjoner er satt ned; parenteser brukes.

4. Først av alt utføres operasjoner i parentes, hvis det ikke er noen parenteser, bestemmes rekkefølgen for utførelse av forrangen til operasjonene. I synkende ansiennitetsrekkefølge er operasjonene ordnet i følgende rekkefølge:

1.eksponentiering

2.multiplikasjon, divisjon

3.addisjon, subtraksjon

Operasjoner med samme prioritet utføres i den rekkefølgen de er skrevet fra venstre mot høyre.

5. Formler kan legges inn i beregningsvisningsmodus, dvs. Brukeren begynner å skrive en formel i gjeldende celle med =-tegnet og etter å ha trykket på Enter-tasten, vises resultatet av formelberegningen i cellen.

6. Formler kan legges inn i formlervisningsmodus, dvs. brukeren skriver en usignert =-formel i gjeldende celle og formelen vises i cellen etter å ha trykket på Enter-tasten.

30. Hoved innebygde funksjoner. Absolutte og relative referanser i elektroniske tabeller (ET).

En relativ referanse i en formel brukes til å indikere en celleadresse, beregnet i forhold til cellen der formelen ligger. Når du flytter eller kopierer en formel fra den aktive cellen, oppdateres relative referanser automatisk basert på den nye posisjonen til formelen. Relative referanser er som følger: A1, OT.

En absolutt referanse i en formel brukes til å spesifisere en fast celleadresse. Absolutte referanser endres ikke når du flytter eller kopierer en formel. I absolutte referanser plasseres et dollartegn (for eksempel $ A $ 1) foran den uforanderlige verdien til celleadressen.

Hvis dollarsymbolet er foran en bokstav (for eksempel: $ A1), så er kolonnekoordinaten absolutt, og radkoordinaten er relativ. Hvis dollartegnet er foran et tall (for eksempel A $ 1), så er tvert imot kolonnekoordinaten relativ, og radene er absolutte. Slike lenker kalles blandede lenker. Anta for eksempel at formelen = A $ 1 + $ B1 er skrevet i celle C1, som, når den kopieres inn i celle D2, blir = B $ 1 + $ B2. Relative lenker endret seg når de ble kopiert, men absolutte gjorde det ikke.

Federal Agency for Education

abstrakt

"DATATYPER I PASCAL"

1. Datatyper

Eventuelle data, dvs. konstanter, variabler, egenskaper, funksjonsverdier eller uttrykk karakteriseres av typene de har. En type definerer settet med gyldige verdier som et objekt kan ha, samt settet med gyldige operasjoner som gjelder for det. I tillegg bestemmer typen også formatet på den interne representasjonen av data i PC-minnet.

Generelt er Object Pascal-språket preget av en forgrenet struktur av datatyper (fig. 1.1). Språket gir en mekanisme for å lage nye typer, på grunn av hvilken det totale antallet typer som brukes i programmet kan være så stort som ønsket.

Dataene som behandles i programmet er delt inn i variabler, konstanter og bokstaver:

Konstanter er data hvis verdier er satt i konstantdeklarasjonsdelen og ikke endres under programkjøring.

Variabler er deklarert i variabeldeklarasjonsdelen, men i motsetning til konstanter mottar de verdiene sine allerede under programkjøring, og disse verdiene kan endres. Konstanter og variabler kan nås med navn.

Bokstavelig har ingen identifikator og er representert i programteksten direkte av verdien.

Type av definerer settet med verdier som dataelementer kan ta, og settet med operasjoner som er tillatt på dem.

Alle typer er beskrevet i detalj i dette og de neste fire kapitlene.

1.1 Enkle typer

Enkle typer inkluderer ordinaltyper, reelle typer og dato- og klokkesletttyper.

Ordinaltyper skiller seg ved at hver av dem har et begrenset antall mulige verdier. Disse verdiene kan sorteres på en bestemt måte (derav navnet på typene), og derfor kan hver av dem assosieres med et heltall - ordenstallet til verdien.

Ekte typer, strengt tatt har også et begrenset antall verdier, som bestemmes av formatet til den interne representasjonen av et reelt tall. Imidlertid er antallet mulige verdier av reelle typer så stort at det ikke er mulig å assosiere et heltall (dets tall) med hver av dem.

Dato-tid-type beregnet for lagring av dato og klokkeslett. Faktisk bruker den et ekte format for disse formålene.

1.1.1 Ordinaltyper

Ordinaltyper inkluderer (se figur 1.1) heltall, boolsk, tegn, oppregnet og områdetype. Ord (x)-funksjonen kan brukes for alle, som returnerer ordensverdien til uttrykket X.


Ris. 1.1 - Datatypestruktur

Til hel av typer, returnerer funksjonen ord (x) verdien av x selv, det vil si Ord (X) = x for x som tilhører en hvilken som helst hel type. Bruk av Ord (x) til logisk , symbolsk og tallrik typer gir et positivt heltall i området 0 til 1 ( boolsk type), fra 0 til 255 ( symbolsk), fra 0 til 65535 ( tallrike). Områdetype bevarer alle egenskapene til basisordinaltypen, så resultatet av å bruke ord (x)-funksjonen på den avhenger av egenskapene til denne typen.

Du kan også bruke funksjoner på ordenstyper:

pred (x)- returnerer den forrige verdien av ordenstypen (verdien som tilsvarer ordenstallet ord (x) -1, det vil si оrd (рred (х)) = оrd (х) - 1;

succ (x)- returnerer neste verdi av ordenstype, som tilsvarer ordenstall ord (х) +1, dvs. оrd (Succ (х)) = оrd (х) + 1.

For eksempel hvis programmet definerer variabelen

så vil PRED (c)-funksjonen returnere tegnet "4", og SUCC (c)-funksjonen vil returnere tegnet "6".

Hvis vi forestiller oss en ordinaltype som et ordnet sett med verdier som øker fra venstre til høyre og okkuperer et bestemt segment på den numeriske aksen, er pred (x) funksjonen ikke definert for venstre, og succ (x) - for høyre ende av dette segmentet.

Heltallstyper ... Utvalget av mulige verdier for heltallstyper avhenger av deres interne representasjon, som kan være én, to, fire eller åtte byte. Bord 1.1 viser navnene på heltallstyper, lengden på deres interne representasjon i byte og rekkevidden av mulige verdier.

Tabell 1.1 - Heltallstyper

Navn Lengde, byte Utvalg av verdier
Kardinal 4 0. .. 2 147 483 647
Byte 1 0...255
Shortint 1 -128...+127
Smallint 2 -32 768...+32 767
Ord 2 0...65 535
Heltall 4
Longint 4 -2 147 483 648...+2 147 483 647
Int64 8 -9*1018...+9*1018
Langord 4 0. . .4 294 967 295

Typer Langord og Int64 ble først introdusert i versjon 4, og typene Smallint og Kardinal ikke tilgjengelig i Delphi 1. Type heltall for denne versjonen tar den 2 byte og har et verdiområde fra -32768 til +32767, det vil si at det er det samme som Smallint .

Ved bruk av prosedyrer og funksjoner med heltallsparametere bør man ledes av "nesting" av typer, dvs. uansett hvor den kan brukes ord, bruk er tillatt Byte(men ikke omvendt), i Longint"Inkludert" Smallint som igjen inkluderer Shortint .

Listen over prosedyrer og funksjoner som gjelder for heltallstyper er gitt i tabellen. 1.2. Bokstavene b, s, w, i, l betegner henholdsvis uttrykk av typen Byte , Shortint, Word, Integer og Longint ,

x er et uttrykk for noen av disse typene; bokstavene vb, vs, vw, vi, vl, vx angir variabler av de tilsvarende typene. En valgfri parameter er angitt i hakeparenteser.

Tabell 1.2 - Standard prosedyrer og funksjoner som gjelder heltallstyper

Anke Resultattype Handling
abs (x) x Returnerer modulen x
chr (b) Char Returnerer et tegn etter koden
dec (vx [, i]) - Reduserer verdien av vx med i, og i fravær av i - med 1
inc (vx [, i]) - Øker verdien av vx med i, og i fravær av i, med 1
hei (w) Byte Returnerer høyordensbuen til argumentet
hei (jeg) Også Returnerer den tredje byten
Lo (i) Returnerer den minst signifikante byten av argumentet
Lav (w) Også
merkelig (l) boolsk Returnerer True hvis argumentet er et oddetall
Tilfeldig (w) Samme som parameter Returnerer et pseudo-tilfeldig tall jevnt fordelt over området 0 ... (w-l)
sqr (x) X Returnerer kvadratet av argumentet
bytte (i) Heltall Bytter byte i et ord
bytte (w) Ord Også

For operasjoner med heltall vil typen av resultatet samsvare med typen av operandene, og hvis operandene er av forskjellige heltallstyper, den vanlige typen, som inkluderer begge operandene. For eksempel når man opptrer med shortint og ord vanlig vil være typen heltall... I standardinnstillingen genererer ikke Delphi-kompilatoren kode som kontrollerer muligheten for å sjekke om en verdi er utenfor området, noe som kan føre til forvirring.

boolske typer ... Boolske typer inkluderer Boolean, ByteBool, Bool, wordBool og LongBool... I standard Pascal er kun typen definert boolsk, er resten av de boolske typene introdusert i Object Pascal for kompatibilitet med Windows: typer boolsk og ByteBool okkuperer én byte hver, Bool og WordBool- 2 byte hver, LongBool- 4 byte. Boolske verdier kan være en av de tidligere erklærte konstantene False eller True.

Siden den boolske typen er en ordinær type, kan den brukes i en sløyfeoperatør av en tellbar type. I Delphi 32 for boolsk betydning

Ord (True) = +1, mens for andre typer ( Bool, WordBool etc.)

Ord (True) = -1, så denne typen operatør bør brukes med forsiktighet! For eksempel, for Delphi 6, den kjørbare setningen showMessage ("---") i følgende løkke til vil ikke bli utført en gang:

for L: = usann til sant gjør

Vis melding ("-);

Hvis vi erstatter typen av løkkeparameteren L i forrige eksempel med boolsk, vil syklusen kjøre og meldingen vises to ganger på skjermen. [For Delphi versjon 1 og 2, ord (True) = + 1 for enhver boolsk type.]

Karaktertype ... Tegntypeverdier er settet med alle PC-tegn. Hvert tegn er tildelt et heltall i området 0 ... 255. Dette nummeret fungerer som koden for den interne representasjonen av symbolet og returneres av ord-funksjonen.

Windows bruker ANSI-koden for koding (oppkalt etter American National Standard Institute - American Standards Institute som foreslo denne koden). Den første halvdelen av PC-tegnene med kodene 0 ... 127 tilsvarer tabell 1.3. Den andre halvdelen av tegn med kodene 128 ... 255 varierer for forskjellige fonter. Standard Windows-fonter Arial Cyr, Courier New Cyr og Times New Roman for å representere kyrilliske tegn (uten bokstavene "ё" og "Ё") bruker de siste 64 kodene (fra 192 til 256): "A" ... "Z" er kodede verdier 192..223, "a" ... "i" - 224 ... 255. Symbolene "Ё" og "ё" har kodene 168 og 184, henholdsvis.

Tabell 1.3 - Tegnkoding i henhold til ANSI-standarden

Kode Symbol Kode. Symbol Kode. Symbol Kode Symbol
0 NUL 32 BL 64 @ 96 "
1 ZON 33 ! 65 EN 97 en
2 STX 34 66 V 98 b
3 ETX 35 # 67 MED 99 med
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" BS 40 ( 72 N 104 h
9 Ht 41 ) 73 Jeg 105 Jeg
10 LF 42 * 74 J 106 j
11 VT 43 + 75 TIL 107 k
12 FF 44 F 76 L 108 1
13 CR 45 - 77 M 109 m
14 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 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 W 119 W
24 KAN 56 8 88 NS 120 x
25 EM 57 9 89 Y 121 Ha
26 UNDER 58 : 90 Z .122 z
27 ESC 59 ; 91 t 123 {
28 FS 60 < 92 \ 124 1
29 GS 61 = 93 ] 125 }
30 Rs 62 > 94 L 126 ~
31 OSS 63 F 95 127 r

Symboler med kodene 0 ... 31 refererer til servicekoder. Hvis disse kodene brukes i tegnteksten til programmet, regnes de som mellomrom.

Å skrive røye relasjonsoperasjoner er aktuelle, så vel som innebygde funksjoner:

Сhar (i)- fungere som røye; konverterer uttrykk til type Byte til et symbol og returnerer det med verdien;

UpCase (CH)- fungere som røye; returnerer en stor bokstav hvis ch er en liten latinsk bokstav, ellers returnerer den tegnet ch (for kyrillisk returnerer det det opprinnelige tegnet).

Opptalt type ... En opplistet type spesifiseres ved en oppregning av verdiene den kan motta. Hver verdi er navngitt av en identifikator og er plassert i en liste omgitt av parenteser, for eksempel:

farger = (rød, hvit, blå);

Bruken av oppregnede typer gjør programmer tydeligere.

Korrespondansen mellom verdiene for den oppregnede typen og ordenstallene til disse verdiene er etablert av oppregningsrekkefølgen: den første verdien i listen får ordenstallet 0, den andre - 1, og så videre. Maksimal kardinalitet for en nummerert type er 65536 verdier, derfor spesifiserer faktisk en nummerert type en delmengde av heltallstypen ord og kan betraktes som en kompakt erklæring av en gruppe heltallskonstanter med verdier 0, 1, etc.

Bruken av oppregnede typer øker påliteligheten til programmer på grunn av muligheten til å kontrollere verdiene som de tilsvarende variablene mottar. Omvendt konvertering er tillatt i Object Pascal: ethvert uttrykk av typen Ord kan konverteres til en oppregnet verdi så lenge verdien av heltallsuttrykket ikke overstiger kardinaliteten til den typen. Denne konverteringen oppnås ved å bruke en automatisk deklarert funksjon med navnet på en oppregnet type.

Områdetype ... Range-type er en undergruppe av basistypen, som kan være en hvilken som helst ordinær type bortsett fra range-type.

Områdetype er satt av grensene for verdiene innenfor basistypen:

<мин.знач.>..<макс.знач.>

Her<мин. знач. >- minimumsverdien til områdetypen;<макс. знач. >- dens maksimale verdi.

Områdetypen trenger ikke beskrives i typedelen, men kan spesifiseres direkte ved deklarering av en variabel.

Når du definerer en områdetype, må du bli veiledet av følgende regler:

to ".."-tegn behandles som ett tegn, så ingen mellomrom er tillatt mellom dem; venstre kant av området bør ikke overskride høyre kant.

En rekkeviddetype arver alle egenskapene til sin basistype, men med begrensninger på grunn av dens lavere kardinalitet. Spesielt hvis en variabel er definert.

Object Pascal-standardbiblioteket inkluderer to funksjoner som støtter arbeid med rekkeviddetyper:

Høy (x)- returnerer maksimumsverdien for områdetypen som variabelen x tilhører;

Lav (x)- returnerer minimumsverdien for områdetypen.

1.1.2 Ekte typer

I motsetning til ordinære typer, hvis verdier alltid sammenlignes med et antall heltall og derfor er representert i PC-en helt nøyaktig, definerer verdiene til reelle typer et vilkårlig tall bare med en viss begrenset presisjon, avhengig av internt format for det reelle tallet.

Tabell 1.4 - Reelle typer

I tidligere versjoner av Delphi 1 ... 3 type Ekte tok 6 byte og hadde et verdiområde fra 2,9 * 10-39 til 1,7 * 1038. I versjon 4 og 5 tilsvarer denne typen typen Dobbelt... Om nødvendig (av kompatibilitetsgrunner) bruk 6-byte Ekte, må du spesifisere kompilatordirektivet (SREALCOMPATIBILITY ON).

Som du kan se fra tabellen. 1.4, opptar et reelt tall i Object Pascal fra 4 til 10 sammenhengende byte og har følgende struktur i PC-minnet.

Her er s det signerte sifferet til nummeret; e - eksponentiell del; inneholder binær rekkefølge; m er mantissen til tallet.

Mantissa m har en lengde på 23 (for enkelt) opptil 63 (for Forlenget) av binære sifre, som sikrer en nøyaktighet på 7 ... 8 for enkelt og 19 ... 20 for Forlenget desimalsifre. Desimaltegnet (komma) er ment før den venstre (mest signifikante) biten av mantissen, men når du manipulerer et tall, forskyves posisjonen til venstre eller høyre i samsvar med den binære rekkefølgen til tallet som er lagret i den eksponentielle delen, derfor kalles operasjoner på reelle tall flytende kommaaritmetikk (komma) ...

Merk at den aritmetiske koprosessoren alltid behandler tall i formatet Forlenget, og de tre andre reelle typene i dette tilfellet oppnås ved ganske enkelt å avkorte resultatene til ønsket størrelse og brukes hovedsakelig til å spare minne.

Typer opptar en spesiell plass i Object Pascal. komp og Valuta, som behandles som reelle tall med brøkdeler med fast lengde: in komp brøkdelen har en lengde på 0 sifre, det vil si at den ganske enkelt er fraværende, i valuta lengden på brøkdelen er -4 desimaler. Faktisk definerer begge typene et stort fortegnet heltall som lagrer 19 ... 20 signifikante desimalsiffer (internt opptar de 8 sammenhengende byte). Samtidig i uttrykk komp og valuta er fullt kompatible med alle andre reelle typer: alle reelle operasjoner er definert over dem, de kan brukes som argumenter for matematiske funksjoner, etc. Det mest passende bruksområdet for disse typene er regnskapsberegninger.

1.1.3 Dato-tid-type

Dato-klokkeslett-typen bestemmes av en standard identifikator TDateTime og er beregnet for samtidig lagring av både dato og klokkeslett. I den interne representasjonen opptar den 8 byte og er lik valuta er et reelt tall med en fast brøkdel: datoen lagres i heltallsdelen av tallet, og tiden lagres i brøkdelen. Datoen er definert som antall dager som har gått siden 30. desember 1899, og tiden er definert som en brøkdel av dagen siden klokken 0, så verdien 36444.837 tilsvarer datoen 10/11/1999 og tid 20:05. Antall dager kan være negativt, men verdier mindre enn -693594 (tilsvarer datoen 00.00.0000 fra Kristi fødsel) ignoreres av dato-til-streng-konverteringsfunksjonene.

Over data som TDateTime de samme operasjonene er definert som med reelle tall, og konstanter og variabler av heltalls- og reelle typer kan delta i uttrykk av denne typen.

Siden typen TDateTime kompatibel med formatet til reelle tall, kan du enkelt bestemme datoen som er noen dager foran eller tilbake fra den gitte datoen: for dette er det nok å legge til eller trekke fra ønsket heltall fra den gitte datoen.

1.2 Strukturerte typer

Enhver av de strukturerte typene (og i Object Pascal er det fire av dem: matriser, poster, sett og filer) er preget av mangfoldet av elementene som danner denne typen. Hvert element kan på sin side tilhøre en strukturert type, som lar oss snakke om mulig hekking av typer. Objekt Pascal tillater vilkårlig hekkedybde av typer, men den totale lengden på noen av dem i den interne representasjonen må ikke overstige 2 GB.

For kompatibilitet med standard Pascal, tillates Object Pascal å gå foran en strukturert typedeklarasjon med et reservert ord pakket, instruere kompilatoren til å lagre minnet som er tildelt for objekter av strukturert type så mye som mulig; men kompilatoren ignorerer faktisk dette hintet: "pakking" av data i Object Pascal gjøres automatisk når det er mulig.

1.2.1 Matriser

Arrays i Object Pascal ligner veldig på lignende datatyper i andre programmeringsspråk. Et særtrekk ved arrays er at alle komponentene deres er data av samme type (muligens strukturert). Disse komponentene kan enkelt bestilles, og alle av dem kan nås ved ganske enkelt å spesifisere serienummeret.

En matrisetypebeskrivelse er definert som følger:

<имя типа>= array [<сп.инд.типов>] av<тип>;

Her<имя типа>- korrekt identifikator; et utvalg av- reserverte ord (array, fra);<сп.инд.типов>- en liste over en eller flere indekstyper, atskilt med komma; hakeparenteser rundt listen er et syntakskrav;<тип>- alle typer Object Pascal.

Som indekstyper i Object Pascal kan du bruke alle ordinaltyper som har en kardinalitet på ikke mer enn 2 GB (det vil si unntatt Langord og Int64)

Hekkedybden for strukturerte typer generelt, og følgelig for matriser, er vilkårlig, derfor er antallet elementer i listen over indekstyper (matrisedimensjon) ikke begrenset, men den totale lengden på den interne representasjonen av en hvilken som helst matrise kan ikke overstige 2 GB. I PC-minnet følger array-elementer hverandre slik at når du flytter fra lavere adresser til høyere adresser, endres indeksen lengst til høyre i arrayen raskest.

I Object Pascal kan du sende alle elementene i en matrise til en annen matrise av samme type med én tilordningsoperator.

1.2.2 Opptegnelser

Innspilling er en datastruktur som består av et fast antall komponenter kalt postfelt. I motsetning til en matrise kan komponentene (feltene) til en post være av forskjellige typer. For å gjøre det mulig å referere til en bestemt komponent av posten, navngis feltene.

Strukturen til posttypeerklæringen er som følger:

<имятипа>= rekord<сп.полей>slutt;

Her<имя типа>- korrekt identifikator; ta opp / avslutte- reserverte ord (opptak, slutt);<сп.полей>- liste over felt; er en sekvens av deler av en post med semikolon mellom dem.

Hver del av en post består av én eller flere feltidentifikatorer, atskilt med komma.

By på i tilfelle av, som åpner variantdelen, ser ut som den tilsvarende utvalgsoperatøren, men spiller faktisk bare rollen som et slags serviceord som angir begynnelsen av variantdelen. Det er derfor på slutten av variantdelen du ikke bør sette slutt som et par til i tilfelle av... (Siden variantdelen alltid er den siste i posten, følges den fortsatt av slutten, men bare som et par for å ta opp). Valgnøkkel i forslaget i tilfelle av blir faktisk ignorert av kompilatoren: det eneste kravet for det i Object Pascal er at nøkkelen definerer en standard eller forhåndserklært ordinær type.

Feltnavn må være unike i posten der de er deklarert, men hvis poster inneholder postfelt, det vil si at de er nestet i hverandre, kan navnene gjentas på forskjellige hekkenivåer.

1.2.3 Sett

Settene er sett av samme type objekter logisk koblet til hverandre. Naturen til forbindelsene mellom objekter antydes kun av programmereren og kontrolleres ikke av Object Pascal på noen måte. Antall elementer som inngår i settet kan variere fra 0 til 256 (et sett som ikke inneholder elementer kalles tomt). Det er inkonstansen i antall elementer som setter forskjellig fra arrays og poster.

To sett anses likeverdige hvis og bare hvis alle elementene deres er like, og rekkefølgen på elementene i settet er likegyldig. Hvis alle elementene i ett sett også er inkludert i et annet, snakker de om inkludering av det første settet i det andre. Et tomt sett er inkludert i alle andre.

Beskrivelsen av setttypen er som følger:

<имя типа>= sett med<базовый тип>;

Her<имя типа>- korrekt identifikator; sett, av- reserverte ord (sett, fra);<базовый тип>- basistypen til elementene i settet, som kan være hvilken som helst ordinær type, unntatt Word, Heltall, Longint, Int64 .

For å definere et sett, brukes den såkalte settkonstruktøren: en liste over spesifikasjoner for settelementene, atskilt fra hverandre med komma; listen er omgitt av hakeparenteser. Elementspesifikasjoner kan være konstanter eller uttrykk for en basistype, samt en områdetype av samme basistype.

Den interne strukturen til settet er slik at hvert av dets elementer er tildelt ett binært siffer (en bit); hvis elementet er inkludert i settet, har den tilsvarende biten verdien 1, ellers - 0. Samtidig er minimumsenheten for minne en byte som inneholder 8 biter, så kompilatoren allokerte en byte til settene, og som som et resultat ble kardinaliteten til hver av dem 8 elementer. Maksimal kardinalitet for et sett er 256 elementer. For slike sett tildeler kompilatoren 16 sammenhengende byte.

Og ett eksperiment til: endre rekkevidden for basistypen til 1..256. Selv om kardinaliteten til denne typen er 256 elementer, vil kompilatoren rapportere en feil når den prøver å kompilere programmet: Sett kan ha maksimalt 256 elementer siden nummereringen av elementene i settet starter fra null uavhengig av den nedre grensen som er deklarert i programmet... Kompilatoren tillater å bruke en heltallsområdetype som en basistype med en minimumsgrense på 0 og maksimalt 255, eller en hvilken som helst oppregnet type med ikke mer enn 256 elementer (maksimal kardinalitet for en opplistet type er 65536 elementer).

1.3 Strenger

Følgende typer brukes til tekstbehandling i Object Pascal:

kort linje kortstreng eller streng [n] hvor n<= 255;

lang linje streng ;

bred streng WideString ;

null-terminert streng pchar .

Det disse typene har til felles er at hver streng behandles som en endimensjonal rekke av tegn, hvor mange tegn kan endres i et program som kjører: for streng [n] varierer lengden på strengen fra 0 til n , for streng og pchar- fra 0 til 2 GB.

Standard Pascal bruker kun korte strenger streng [n]... I minnet tildeles en slik streng n + i byte, den første byten inneholder gjeldende lengde på strengen, og selve tegnene er lokalisert fra den andre byten. Siden det i dette tilfellet er tildelt én byte for lengden på strengen, kan den maksimale lengden på en kort streng ikke overstige 255 tegn. For å erklære en kort streng med maksimal lengde, er standardtypen ment Kortstreng(tilsvarende String).

Windows bruker mye nullterminerte strenger, som er tegnstrenger avgrenset med # o-tegnet. Den maksimale lengden på en slik streng begrenses kun av tilgjengelig minne og kan være veldig stor.

Delphi 32-bit introduserer en ny type streng kombinerer bekvemmelighetene til begge typer. Med denne typen tildeles minnet etter behov (dynamisk) og begrenses av tilgjengelig minne for programmet.

1.4 Pekere og haugminne

1.4.1 Dynamisk minne

Dynamisk minne- dette er PC-ens RAM som leveres til programmet når det kjører. Dynamisk allokering av data betyr bruk av dynamisk minne direkte mens programmet kjører. I kontrast gjøres statisk tildeling av Object Pascal-kompilatoren under programkompilering. Med dynamisk tildeling er verken typen eller mengden data som skal tildeles kjent på forhånd.

1.4.2 Pekere

PC RAM er en samling celler for lagring av informasjon - byte, som hver har sitt eget nummer. Disse tallene kalles adresser, de lar deg få tilgang til en hvilken som helst byte med minne. Object Pascal gir programmereren et fleksibelt verktøy for håndtering av haugminne - de såkalte pekere. En peker er en variabel som inneholder minnebyteadressen som sin verdi. Ved å bruke pekere kan du allokere hvilken som helst av de kjente datatypene i Object Pascal i haug. Bare noen få av dem ( Byte, Char, ShortInt, Boolean) opptar en byte i den interne representasjonen, resten - flere sammenhengende. Derfor adresserer pekeren faktisk bare den første byten med data.

Vanligvis er en peker knyttet til en eller annen type data. Vi vil kalle slike pekere skrevet. For å deklarere en maskinskrevet peker, bruk ^-symbolet, som er plassert foran den tilsvarende typen.

I Object Pascal kan du deklarere en peker og ikke binde den til noen bestemt datatype. Standardtypen brukes til dette. pekeren, for eksempel:

Pekere av denne typen vil bli kalt untyped. Siden utypede pekere ikke er assosiert med en bestemt type, er det praktisk å bruke dem til å dynamisk allokere data, hvis struktur og type endres i løpet av programmet.

Som allerede nevnt, er verdiene til pekere adressene til variabler i minnet, så man kan forvente at verdien til en peker kan overføres til en annen. Dette er faktisk ikke sant. I Object Pascal kan du bare sende verdier mellom pekere knyttet til samme datatype.

1.4.3 Tildeling og frigjøring av dynamisk minne

Alt haugminne i Object Pascal blir behandlet som en solid rekke byte kalt en haug.

Minne for enhver dynamisk allokert variabel tildeles av New-prosedyren. Parameteren for å kalle denne prosedyren er en maskinskrevet peker. Som et resultat av anropet får pekeren en verdi som tilsvarer adressen som dataene kan plasseres fra. Verdien som pekeren peker på, det vil si de faktiske dataene som er allokert på haugen, er merket med ^-symbolet, som plasseres rett etter pekeren. Hvis det ikke er noe ^-symbol bak pekeren, betyr det adressen der dataene er plassert. Det er fornuftig å tenke igjen på det som nettopp er blitt sagt: verdien av en peker er en adresse, og for å indikere at vi ikke snakker om en adresse, men om dataene som er plassert på denne adressen, er en ^ plassert bak pekeren (noen ganger blir dette referert til som dereferencing pointer).

Dynamisk allokerte data kan brukes hvor som helst i programmet der det er tillatt for konstanter og variabler av passende type

Dynamisk minne kan ikke bare tas fra haugen, men også returneres tilbake. Avhendingsprosedyren brukes til dette. For eksempel operatørene

Kast (pJ);

Kast (pR);

vil returnere til haugen minnet som tidligere ble tildelt pJ- og pR-pekerne (se ovenfor).

Legg merke til at Dispose (pPtr)-prosedyren ikke endrer verdien til pPtr-pekeren, men returnerer bare minnet som tidligere var knyttet til denne pekeren inn i heapen. Å bruke prosedyren på nytt på en ledig peker vil imidlertid resultere i en kjøretidsfeil. Programmereren kan merke den frigjorte pekeren med det reserverte ordet null.

1.5 Skriv aliaser

For enhver type kan du deklarere så mange aliaser du vil. For eksempel:

TMyInteger = Heltall;

I fremtiden kan aliaset brukes på samme måte som basistypen:

Mylnt: TMyInteger;

Mylnt: = 2 * Rund (pi);

Slike aliaser brukes ofte for å gjøre koden mer lesbar. Men i Object Pascal kan du deklarere sterkt innskrevne aliaser ved å legge til den reserverte ordtypen foran basetypenavnet:

TMyIntegerType = type Heltall;

MylntVar: TMyIntegerType;

Fra kompilatorens synspunkt er typealiaser kompatible med basetypen i ulike typer uttrykk, men faktisk erklærer de en ny datatype, så de kan ikke brukes som formelle parametere for å kalle subrutiner i stedet for basetypen. Hvis for eksempel en prosedyre er deklarert

funksjon MylntFunc (APar: heltall): Heltall;

så en slik appell til henne

MylntFunc (MylntVar)

vil bli sett på som feilaktig av kompilatoren.

Sterkt typede aliaser får kompilatoren til å generere informasjon om kjøretidstype (RTTI). Denne informasjonen brukes vanligvis av Delphi-miljøet for å støtte funksjonen til ulike typer redaktører.

3.2. Enkle datatyper i Turbo Pascal 7

En enkel type definerer et ordnet sett med parameterverdier. Turbo Pascal har følgende grupper av enkle typer:

  • heltall typer;
  • boolsk type;
  • tegntype;
  • oppregnet type;
  • rekkevidde type;
  • ekte typer.

Alle enkle typer, med unntak av ekte, kalles ordinaltyper. For verdier av ordinaltyper er standardprosedyrer og funksjoner definert: Dec, Inc, Ord, Pred, Succ (se klausul 13.1).

3.2.1. Heltallstyper

I motsetning til Pascal, hvor en enkelt heltallstype er definert, har Turbo Pascal fem standard heltallstyper: Shortint, Integer, Longint, Byte, Word. Egenskapene til disse typene er gitt i tabell. 2.

Tabell 2. Heltallsdatatyper

Type av Område Format Størrelse i byte
Shortint -128 .. 127 Ikonisk 1
Heltall -32768 .. 32767 Ikonisk 2
Longint -2147483648 .. 2147483647 Ikonisk 4
Byte 0 .. 255 Usignert 1
Ord 0 .. 65535 Usignert 2

3.2.2. Boolsk type

Standard boolsk type (størrelse - 1 byte) er en datatype, hvor ethvert element bare kan ha to verdier: True og False. I dette tilfellet gjelder følgende forhold:
Falsk Ord (False) = 0
Ord (True) = 1
Succ (falsk) = Sant
Pred (True) = Usant

Turbo Pascal 7.0 legger til ytterligere tre boolske ByteBool (1 byte størrelse), WordBool (2 byte størrelse) og LongBool (4 byte størrelse). De ble introdusert for forening med andre programmeringsspråk og med Windows-miljøet. De skiller seg fra standard boolsk type i den faktiske verdien av parameteren av denne typen, som tilsvarer verdien True. For alle boolske typer tilsvarer False-verdien tallet 0, skrevet i det tilsvarende antallet byte. Verdien True for den boolske typen tilsvarer tallet 1, skrevet i byten, og for andre typer tilsvarer verdien True et annet tall enn null (selv om Ord-funksjonen i dette tilfellet gir verdien 1).

3.2.3. Karaktertype

Standardtegntypen Char definerer et komplett sett med ASCII-tegn. Ord-funksjonen fra en verdi av typen Char gir koden til det tilsvarende symbolet. Verdiene til den symbolske typen sammenlignes med kodene deres.

3.2.4. Opptalt type

En opplistet type er ikke standard og er definert av et sett med identifikatorer som parameterverdier kan matche. Listen over identifikatorer er angitt i parentes, identifikatorene er atskilt med komma:

type
= ();)

Det er viktig i hvilken rekkefølge identifikatorene er oppført når man definerer en type, siden den første identifikatoren er tildelt et sekvensnummer på 0, den andre - 1 osv. Den samme identifikatoren kan brukes i definisjonen av kun én opptalt type . Ord-funksjonen gir ordenstallet til verdien fra en oppregnet verdi.

Eksempel. Opptalt type.

type Operat = (Pluss, Minus, Mult, Divide);

Boolsk type er et spesialtilfelle av oppregnet type:

type boolsk = (falsk, sant);

3.2.5. Områdetype

I enhver ordinær type kan du velge et undersett av verdier bestemt av minimums- og maksimumsverdien, som inkluderer alle verdiene av den opprinnelige typen som er innenfor disse grensene, inkludert selve grensene. Et slikt delsett definerer en områdetype. Områdetype spesifiseres ved å spesifisere minimums- og maksimumsverdier, atskilt med to perioder:

type =. ... ;

Minimumsverdien når du definerer denne typen bør ikke være større enn maksimum.

Eksempel. Definisjon av rekkeviddetyper.

type
Dusin = 1..12; (tall fra 1 til 12)
AddSub = Pluss..Minus; (addisjons- og subtraksjonsoperasjoner)

3.2.6. Ekte typer

I motsetning til Pascal-språkstandarden, hvor kun én reell type er definert, har Turbo Pascal fem standard reelle typer: Real, Single, Double, Extended, Comp. For egenskapene til disse typene, se tabell. 3. Tabell 3. Reelle datatyper

Type av Område Betydelige sifre Størrelse i byte
Ekte 2.9*10-39..1.7*1038 11-12 6
Enkelt 1.5*10-45..3.4*1038 7-8 4
Dobbelt 5.0*10-324.-1.7*10308 15-16 8
Forlenget 3.4*10-4932..1.1*104932 19-20 10
Comp -263+1..263-1 19-20 8

Comp-typen er faktisk en heltallstype med utvidet rekkevidde, men den regnes ikke som ordinær.

Single, Double, Extended og Comp-typene kan bare brukes i programmer hvis det er en aritmetisk koprosessor eller hvis koprosessoremulatoren er aktivert (se avsnitt 17.5.8 og 17.7.1).