Pascal-Datentypen. Einfache Datentypen

Beliebige Daten – Konstanten, Variablen, Funktionswerte werden in Pascal durch einen Datentyp gekennzeichnet.

Lassen Sie uns das Konzept definieren Datentyp. Wie bereits bekannt, müssen alle Programmobjekte (Variablen, Konstanten etc.) deklariert werden.

Beschreibungen informieren den Übersetzer erstens über die Existenz der Variablen und anderer verwendeter Objekte und zeigen zweitens die Eigenschaften dieser Objekte an. Beispielsweise gibt die Beschreibung einer Variablen, deren Wert eine Zahl ist, die Eigenschaften von Zahlen an. Formal können Zahlen ganzzahlig und reell (gebrochen) sein. In Pascal werden wie in anderen Programmiersprachen Zahlen in zwei Arten unterteilt: ganz(reserviertes Wort Integer) und real(reserviertes Wort real).

Die Auswahl von ganzen Zahlen als separatem Typ erklärt sich aus der Tatsache, dass in Computer Ganzzahlen und reelle Zahlen werden unterschiedlich dargestellt: Eine ganze Zahl kann absolut exakt dargestellt werden, während eine reelle Zahl zwangsläufig mit einem endlichen Fehler dargestellt wird, der durch die Eigenschaften des Übersetzers bestimmt wird.

Nehmen wir zum Beispiel an, die Variable x sei vom Typ reell und ihr Wert sei gleich eins: x=1 . Der entsprechende Wert im Computerspeicher kann 0,999999999, 1,000000001 oder 1,000000000 sein. Aber wenn die Variable x als Variable vom Typ Integer deklariert wird, dann wird die Einheit absolut exakt im Computer dargestellt und die Variable x kann keine reellen (Bruch-)Werte annehmen - schließlich wurde sie deklariert als Variable eines Integer-Typs.

Der Datentyp definiert also:

  • interne Darstellung von Daten im Computerspeicher;
  • die Menge von Werten, die Werte dieses Typs annehmen können;
  • Operationen, die mit Werten dieses Typs ausgeführt werden können.

Die Einführung von Datentypen ist eines der Grundkonzepte der Pascal-Sprache, die darin besteht, dass beim Ausführen der Operation zum Zuweisen des Werts eines Ausdrucks zu einer Variablen die Variable und der Ausdruck vom gleichen Typ sein müssen. Diese Prüfung übernimmt der Compiler, was die Fehlersuche stark vereinfacht und die Zuverlässigkeit des Programms erhöht.

Die Menge der Turbo Pascal-Datentypen kann in zwei Gruppen unterteilt werden:

  • Standard (vordefinierte) Typen ;
  • benutzerdefinierte Typen (benutzerdefinierte Typen) .

Zu den Standardtypen von Turbo Pascal gehören:

  • Ganzzahltyp - Ganzzahl ;
  • echter Typ - real ;
  • Zeichentyp - char ;
  • boolescher Typ - boolean ;
  • Zeichenfolgentyp - Zeichenfolge ;
  • Zeigertyp - Zeiger ;
  • Der Texttyp ist text .

Benutzerdefinierte Datentypen sind verschiedene Kombinationen von Standardtypen.

Zu den benutzerdefinierten Typen gehören:

  • Aufzählungstyp;
  • Intervalltyp;
  • Zeigertyp;
  • strukturierte Typen;
  • prozeduraler Typ.

Kommentar. Es ist auch eine andere Klassifizierung von Datentypen möglich, nach der Typen in einfache und komplexe unterteilt werden.

Zu den einfachen Typen gehören: Ganzzahltyp, Realtyp, Zeichentyp, Boolescher Typ, Aufzählungstyp und Intervalltyp.

Ein komplexer Typ sind verschiedene Kombinationen einfacher Typen (Arrays, Datensätze, Sätze, Dateien usw.)

Standardtypen

Der Standarddatentyp wird von der Pascal-Sprache selbst definiert. Bei der Verwendung von Standardtypen in einem Programm genügt es, die Unterabschnitte der benötigten Typen (const, var) anzugeben und dann die im Programm verwendeten Konstanten und Variablen zu beschreiben. Es besteht keine Notwendigkeit, den Unterabschnitt Typ zu verwenden.

Wenn das Programm beispielsweise nur Variablen verwendet:

i,j - Ganzzahl (Ganzzahlen);

x,y - real (real);

t,s - char (Zeichen);

a,b - boolesch (logisch),

dann wird nur der Variablen-Unterabschnitt benötigt - Var . Daher werden im beschreibenden Teil des Programms Variablendeklarationen wie folgt geschrieben:

Ganzzahlige Typen

Daten dieses Typs können nur ganzzahlige Werte annehmen. In einem Computer werden Werte eines ganzzahligen Typs exakt dargestellt. Ist die Variable negativ, muss ihr das „-“-Zeichen vorangestellt werden, ist die Variable positiv, kann das „+“-Zeichen weggelassen werden. Dieser Typ ist notwendig, wenn ein Wert nicht näherungsweise dargestellt werden kann - eine reelle Zahl. Zum Beispiel die Anzahl der Personen, Tiere usw.

Beispiele für das Schreiben ganzzahliger Werte: 17, 0, 44789, -4, -127.

Der Bereich der Integer-Daten wird durch die fünf Standard-Integer-Typen bestimmt und ist in der Tabelle dargestellt:

Typ Bereich Größe in Bytes
Shortint -128...+128 1
Ganze Zahl -32768...32767 2
Longint -2147483648...2147483647 4
Byte 0...255 1
Wort 0...65535 2

Die letzten beiden Typen dienen dazu, nur positive Zahlen darzustellen, und die ersten drei sowohl positive als auch negative Zahlen.

Im Text des Programms oder bei der Eingabe von Daten eines ganzzahligen Typs werden Werte geschrieben ohne Dezimalpunkt . Tatsächliche Variablenwerte dürfen die zulässigen Werte nicht überschreiten des Typs (Shortint , Integer , Longint , Byte , Word), der zur Beschreibung der Variablen verwendet wurde. Mögliche Überschreitungen bei Berechnungen werden in keiner Weise kontrolliert, was zu einer fehlerhaften Bedienung des Programms führen wird.

Ein Beispiel für die Verwendung einer Variablen vom Typ Integer

var a: ganze Zahl; b:Wort; c:Byte; Beginne a:=300; (a wird auf 300 gesetzt) ​​b:=300; (b auf 300 gesetzt) ​​c:=200; (c wird auf 200 gesetzt) ​​a:=b+c; (a wird auf 500 gesetzt) ​​c:=b; (Fehler! Variable c kann Werte nicht größer als 255 annehmen. Hier wird Variable c der Wert 500 zugewiesen, wodurch das Ergebnis überläuft.) Ende.

Echte Typen

Werte realer Typen in einem Computer werden ungefähr dargestellt. Der Bereich der reellen Datentypen wird durch fünf Standardtypen bestimmt: real (Real), mit einfacher Genauigkeit (Single), doppelter Genauigkeit (Double), mit erhöhter Genauigkeit (Extended), komplex (Comp) und wird in der Tabelle dargestellt:

Typ Bereich Anzahl signifikanter Stellen Größe in Bytes
Real 2.9E-39...1.7E+38 11-12 6
Einzel 1.5E-45...3.4E+38 >7-8 4
Doppelt 5E-324...1.7E+308 15-16 8
Erweitert 3.4E-4951...1.1E+4932 19-20 10
Komp -2E+63+1...+2E+63-1 19-20 8

Reelle Zahlen können in zwei Formaten dargestellt werden: Festkomma und Fließkomma.

Das Format einer Festkommazahl entspricht der üblichen mathematischen Schreibweise einer Dezimalzahl mit Nachkommastelle. Der Bruchteil wird zum Beispiel durch einen Punkt vom ganzzahligen Teil getrennt

34.5, -4.0, 77.001, 100.56

Das Fließkommaformat wird verwendet, wenn sehr große oder sehr kleine Zahlen geschrieben werden. In diesem Format wird die Zahl vor dem „E“ mit der Zahl 10 mit der hinter dem „E“ angegebenen Potenz multipliziert.

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

Beispiele für Fließkommazahlen:

Nummer Pascal schreiben
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

Die Tabelle von 5 bis 9 zeigt die Eingabe der gleichen Zahl 124. Durch Verändern der Position des Dezimalpunktes in der Mantisse (der Punkt „schwimmt“, daher der Name „Erfassen einer Gleitkommazahl“) und gleichzeitiges Verändern dem Exponenten, können Sie die am besten geeigneten Eintragsnummern auswählen.

Beispiel für die Deklaration von Variablen vom Typ Real.

Zeichentyp

Zeichentypwerte sind Zeichen, die auf einer Computertastatur eingegeben werden können. Auf diese Weise können Sie Text im Programm präsentieren und verschiedene Operationen daran ausführen: einzelne Buchstaben und Wörter einfügen, löschen, formatieren usw.

Der Zeichentyp wird durch das reservierte Wort Char bezeichnet und dient zum Speichern eines einzelnen Zeichens. Zeichentypdaten im Speicher belegen ein Byte.

Format der symbolischen Variablendeklaration:

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

Bei der Definition des Wertes einer Zeichenvariablen wird das Zeichen in Apostrophe geschrieben. Außerdem können Sie das gewünschte Zeichen angeben, indem Sie direkt seinen numerischen Wert des ASCII-Codes angeben. In diesem Fall muss der Zahl, die den ASCII-Code des gewünschten Zeichens angibt, ein #-Zeichen vorangestellt werden.

Ein Beispiel für die Verwendung von Zeichentypvariablen:

varc:char; (c ist eine Zeichentypvariable) Begin c:='A'; (Zeichen 'A' wird Variable c zugewiesen) c:=#65; (Variable c wird auch das Symbol A zugewiesen. Ihr ASCII-Code ist 65) c:='5'; (Variable c wird das Zeichen 5, Ende zugewiesen. hier ist 5 keine Zahl mehr)

boolescher Typ

Der logische Datentyp heißt Boolean nach dem englischen Mathematiker George Boole, dem Begründer des Fachgebiets Mathematik – mathematische Logik.

Boolesches Variablendeklarationsformat:

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

Daten dieses Typs können nur zwei Werte annehmen:

  • Wahr, wahr;
  • Falsch - falsch.

Boolesche Daten werden häufig verwendet, um die Gültigkeit bestimmter Bedingungen zu überprüfen und Werte zu vergleichen. Das Ergebnis kann wahr oder falsch sein.

Um Daten zu vergleichen, werden die folgenden relationalen Operationen bereitgestellt:

Ein Beispiel für die Verwendung von relationalen Operationen:

Beziehung 5>3 , Ergebnis wahr (true);

Relation 5=3 , das Ergebnis ist falsch (false).

Ein Beispiel für die Verwendung von booleschen Variablen.

var a,b:boolesch; (a,b sind boolesche Variablen) Begin a:=True; (Variable a wird auf true gesetzt) ​​b:=false; (Variable b wird auf falsch gesetzt) ​​Ende.

Konstanten

Als Konstanten können ganze Zahlen, reelle Zahlen, Symbole, Zeichenketten, logische Konstanten verwendet werden.

Die Konstante muss im beschreibenden Teil mit dem reservierten Wort const deklariert werden.

Konstantes Deklarationsformat

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

Wenn in einem Programm mehrere Konstanten verwendet werden, ist nur eine erlaubt. Stichwort Const , die Beschreibung jeder Konstante endet mit einem Semikolon. Der konstante Block endet mit der Deklaration eines weiteren Abschnitts oder der Deklaration eines Blocks ausführbarer Anweisungen.

Const (konstante Abschnittsdeklaration) year=2003; (Konstante vom Typ Integer, da im Datensatz kein Dezimalpunkt vorhanden ist) time=14.05; (Realtypkonstante) N=24; (Konstante vom Typ Integer, da im Datensatz kein Dezimalpunkt vorhanden ist) P=3.14; (Real-Typ-Konstante) A=true; (boolesche Konstante) str1='7'; (Zeichentypkonstante) str2='A'; (Zeichentypkonstante) str3='Turbo'; (String-Typ-Konstante) Var (Variablen-Abschnittsdeklaration) X,y:Integer; (Variablen vom Typ Integer)

Benutzerdefinierte Typen

Aus der Menge der benutzerdefinierten Typen werden wir nur betrachten

  • Aufzählungstyp;
  • Intervalltyp.

Wir werden diese beiden Typen benötigen, wenn wir Arrays untersuchen.

Aufgezählter Typ

Ein Aufzählungsdatentyp beschreibt neue Datentypen, deren Werte vom Programmierer definiert werden. Ein Aufzählungstyp wird definiert, indem die Werte aufgezählt werden, die er empfangen kann. Jeder Wert wird durch einen Bezeichner benannt und befindet sich in einer in Klammern eingeschlossenen Liste. Ein Aufzählungstyp ist ein benutzerdefinierter Datentyp, daher beginnt seine Typdeklaration mit dem reservierten Wort TYPE .

Aufzählungstypformat:

<имя типа>= (Konstante1, Konstante2,..., KonstanteN);

Wo
konstant1 , konstant2 ,..., konstantN ist eine geordnete Menge von Bezeichnerwerten, die als Konstanten behandelt werden.

Ein Beispiel für eine Aufzählungstypdeklaration:

Geben Sie ball=(eins, zwei, drei, vier, fünf) ein; vart:ball;

Ball ist hier der Name des Aufzählungstyps; eins, zwei, drei, vier, fünf sind Konstanten; t ist eine Variable, die jeden Wert von Konstanten annehmen kann.

In einem Aufzählungstyp ist eine Konstante ein Bezeichner, wird also nicht in Anführungszeichen gesetzt und kann keine Zahl sein. Daher ist eine Konstante in einem Aufzählungstyp eine spezielle Art von Konstanten, die nicht sein kann:

  • Konstanten vom numerischen Typ: 1, 2, 3, 4 usw.;
  • Zeichentypkonstanten: "a", "s", "1", "3" usw.;
  • Stringtyp-Konstanten: "first", "second" usw.

Außerdem sind Rechenoperationen und Standard-Ein- und Ausgabeverfahren Lesen, Schreiben auf Werte dieser Art nicht anwendbar.

Ein Beispiel für die Verwendung von Variablen eines Aufzählungstyps:

Tage eingeben = (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag); Var-Tag: Tage; begin if day = Sunday then writeln('Heute ist Sonntag!'); Ende.

Die Elemente in einer Aufzählungstypdefinition werden in der Reihenfolge geordnet betrachtet, in der sie aufgelistet sind. Die Nummerierung beginnt bei Null. Daher haben im obigen Beispiel die Wochentage die folgenden fortlaufenden Nummern

Verwenden Sie die Funktion Ord(), um die Sequenznummer programmgesteuert zu bestimmen.

In unserem Beispiel sind die Seriennummern gleich:

Ordnung(Montag) = 0;

Ordnung (Samstag) = 5;

Ordnung (Sonntag) = 6.

Intervalltyp

Wenn eine Variable nicht alle Werte ihres Typs annimmt, sondern nur die in einem bestimmten Bereich enthaltenen Werte, dann wird ein solcher Datentyp als Intervalltyp bezeichnet. Häufig wird ein Intervalltyp als begrenzter Typ und als Bereichstyp bezeichnet. Ein Intervalltyp wird durch die Grenzen seiner Werte definiert:

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

  • zwei ".."-Zeichen werden als ein Zeichen behandelt, daher sind keine Leerzeichen zwischen ihnen zulässig;
  • das linke Ende des Bereichs darf sein rechtes Ende nicht überschreiten.

Ein Intervalltyp ist ein benutzerdefinierter Datentyp, daher beginnt die Deklaration dieses Typs mit dem Schlüsselwort TYPE .

Ein Beispiel für eine Intervalltypbeschreibung:

geben Sie Ziffer = 1..10 ein; Monat = 1..31; lat = 'A'..'Z';

am häufigsten in der Mathematik numerische Typen- Das ganz Zahlen, die eine unendliche Anzahl diskreter Werte darstellen, und gültig Zahlen, die ein unbegrenztes Kontinuum von Werten darstellen.

Beschreibung numerischer Datentypen (Ganzzahlen) Pascal

Innerhalb derselben Sprache können verschiedene Teilmengen der Menge von ganzen Zahlen implementiert werden. Der Bereich der möglichen Werte von ganzzahligen numerischen Typen hängt von ihrer internen Darstellung ab, die ein, zwei oder vier Bytes sein kann. Pascal 7.0 verwendet also die folgenden ganzzahligen numerischen Datentypen:

Mit ganzem numerische Datentypen Pascal kann die folgenden Operationen ausführen:

  • Arithmetik:
    Zusatz (+);
    Subtraktion(-);
    Multiplikation(*);
    Rest der Division (mod);
    Potenzierung;
    unäres Plus (+);
    unäres Minus (-).
  • Beziehungsoperationen:
    Gleichheitsbeziehung (=);
    Ungleichheitsbeziehung (<>);
    Verhältnis weniger (<);
    Verhältnis größer als (>);
    Verhältnis nicht kleiner als (>=);
    Verhältnis nicht mehr (<=).

Beim Handeln mit ganzzahlige numerische Datentypen der Typ des Ergebnisses entspricht dem Typ der Operanden, und wenn die Operanden von unterschiedlichen ganzzahligen Typen sind, dem Typ des Operanden, der die maximale Kardinalität (maximaler Wertebereich) hat. Ein möglicher Ergebnisüberlauf wird in keiner Weise kontrolliert (es ist wichtig!) , was zu Fehlern führen kann.

Besondere Aufmerksamkeit sollte der Divisionsoperation von ganzzahligen numerischen Datentypen geschenkt werden. In Pascal sind zwei Divisionsoperationen erlaubt, die jeweils bezeichnet sind "/" Und div. Sie müssen wissen, dass das Ergebnis der Division von „/“ keine ganze Zahl ist, sondern reelle Zahl(Dies gilt auch dann, wenn Sie 8 durch 2 teilen, also 8/2=4,0). Die div-Division ist ganzzahlige Division, d.h. ganzzahliger Ergebnistyp.

Beschreibung numerischer Datentypen (real) Pascal

Der reelle numerische Datentyp bezieht sich auf eine Teilmenge reeller Zahlen, die in einem sogenannten Fließkommaformat mit einer festen Anzahl von Ziffern dargestellt werden können. Bei Gleitkommazahlen wird jeder numerische Datentyp als zwei Zifferngruppen dargestellt. Die erste Zifferngruppe heißt Mantisse, die zweite - Ordnung. Im Allgemeinen kann ein numerischer Datentyp in Fließkommaform wie folgt dargestellt werden: X = (+|-)MP (+ | -) r , wobei M die Mantisse der Zahl ist; r ist die Ordnung der Zahl (r ist eine ganze Zahl); P ist die Basis des Zahlensystems. Für eine Dezimalbasis sieht die Darstellung von 2E-1 (hier ist E die Basis des Dezimalzahlensystems) beispielsweise so aus: 2*10 -1 =0,2, und die Darstellung von 1,234E5 entspricht: 1,234* 10 5 = 123400,0.

Pascal verwendet die folgenden Arten von reellen Zahlen, die eine beliebige Zahl nur mit endlicher Genauigkeit definieren, abhängig vom internen Format der reellen Zahl:

Beim Beschreiben einer Real-Variablen vom Typ Real wird eine 4-Byte-Variable im Speicher des Computers angelegt. In diesem Fall werden 3 Bytes unter der Mantisse und eins unter der Bestellung angegeben.

Sie können die folgenden Operationen mit reellen numerischen Datentypen ausführen:

  • Arithmetik:
    Zusatz (+);
    Subtraktion(-);
    Multiplikation(*);
    Aufteilung(/);
    Potenzierung;
    unäres Plus (+);
    unäres Minus (-).
  • Beziehungsoperationen:
    Ungleichheitsbeziehung (<>);
    Verhältnis weniger (<);
    Verhältnis größer als (>);
    Verhältnis nicht kleiner als (>=);
    Verhältnis nicht mehr (<=).

Wie Sie sehen, zeichnet sich Pascal durch eine reiche Auswahl an reellen Typen aus, aber durch den Zugriff auf numerische Datentypen einzel, doppelt Und erweitert nur unter speziellen Kompilierungsmodi möglich. Diese numerischen Datentypen sind für die Hardwareunterstützung von Fließkommaarithmetik ausgelegt und für ihre effektive Verwendung muss der PC einen mathematischen Coprozessor beinhalten.

Eine Sonderstellung in Pascal nimmt ein numerischer Datentyp ein. Komp, die als reelle Zahl ohne Exponential- und Bruchteile behandelt wird. Eigentlich, Komp ist eine vorzeichenbehaftete "große" Ganzzahl, die 19..20 signifikante Dezimalstellen speichert. Gleichzeitig der numerische Datentyp Komp in Ausdrücken ist es vollständig kompatibel mit anderen reellen Typen: alle reellen Operationen sind darauf definiert, es kann als Argument mathematischer Funktionen verwendet werden usw.

Über das Konvertieren numerischer Datentypen in Pascal

Implizite (automatische) Konvertierungen von numerischen Datentypen sind in Pascal fast unmöglich. Eine Ausnahme wird nur für den Typ gemacht ganze Zahl, die in Ausdrücken wie verwendet werden darf real. Wenn die Variablen beispielsweise wie folgt deklariert sind:

VarX: ganze Zahl; J: echt

Dann der Betreiber

syntaktisch korrekt ist, obwohl rechts vom Zuweisungszeichen ein ganzzahliger Ausdruck und links eine reelle Variable steht, führt der Compiler die Konvertierung numerischer Datentypen automatisch durch. Die Rückwärtskonvertierung wird automatisch eingegeben real pro Typ ganze Zahl ist in Pascal nicht möglich. Erinnern wir uns, wie viele Bytes für Variablen wie zugewiesen sind ganze Zahl Und real: unter ganzzahliger Typ Daten ganze Zahl 2 Bytes Speicher werden zugewiesen und unter Real - 6 Bytes. Zur Konvertierung real v ganze Zahl Es gibt zwei eingebaute Funktionen: runden(x) rundet ein reelles x auf die nächste ganze Zahl, abschneiden(x) schneidet eine reelle Zahl ab, indem der Bruchteil verworfen wird.

Das Konzept des Typs ist eines der grundlegenden Konzepte jeder Programmiersprache. Objekte (Konstanten, Variablen, Funktionen, Ausdrücke), mit denen das Programm arbeitet, sind von einem bestimmten Typ.

Typ ist der Satz von Werten, die Programmobjekte annehmen können, und der Satz von Operationen, die für diese Werte zulässig sind.

Zum Beispiel, die Werte 1 und 2 sind ganzzahlig, sie können addiert, multipliziert und andere arithmetische Operationen durchgeführt werden. Die Bedeutungen "Monitor" und "Pascal" sind linguistischer Natur, sie haben ihre eigenen gültigen Operationen. In den am häufigsten verwendeten Sprachen können nur wohldefinierte, bekannte Typen verwendet werden. Pascal ermöglicht es dem Programmierer zusammen mit den Standardtypen, die in anderen Hochsprachen zu finden sind, seine eigenen Typen zu erstellen.

Alle in der Pascal-Sprache erlaubten Typen sind in zwei große Gruppen unterteilt: einfach und komplex (strukturiert).

Typ Bereich Mantisse, Zeichen Benötigter Speicher (Byte)
REAL 2,9*10E-39..1,7*10E38 11-12
EINZEL 1,5*10E-45..3,4*10E38 7-8
DOPPELT 5,0*10E-324..1,7*10E308 15-16
ERWEITERT 1,9*10E-4951..1,1*10E4932 19-20
KOMP -2Å+63+1..2Å+63-1 10-20

Eine effektive Verwendung der Typen SINGLE, DOUBLE, EXTEND, COMP ist nur möglich, wenn die Direktive ($N+) enthalten ist. Standardmäßig befindet es sich im ausgeschalteten Zustand. Um technische und wirtschaftliche Probleme zu lösen, sind Werte vom Typ REAL ausreichend.

Beispiel

Var Res, Summa, Itog: reell;

Bulewski der Datentyp wird durch den Bezeichner BOOLEAN beschrieben. Variablen und Konstanten dieses Typs können nur einen von zwei Werten annehmen: TRUE (wahr) oder FALSE (falsch).

Beispiel

Var Sel1, Sel2: boolesch;

A,B,C,D: boolesch;

Boolesche Ausdrücke belegen 1 Byte Speicher und werden in logischen und relationalen Ausdrücken sowie zur Steuerung der Ausführungsreihenfolge von Programmanweisungen verwendet.

Literal (Zeichen) der Typ wird durch die Standardkennung CHAR beschrieben. Konstanten und Variablen dieses Typs können einen der Werte der ASCII-Codetabelle annehmen. Der Wert einer Konstanten oder Variablen dieses Typs wird in Apostrophe eingeschlossen.

Zum Beispiel, Var Bukwa, Znak, Symbol: Saibling;

Buchstabe:='A'; Zeichen:='+'; Zeichen:='!'

Variablen vom Typ Character belegen 1 Byte im Speicher. Die Verwendung von Daten vom Typ char in arithmetischen Ausdrücken ist verboten. Auf Literalwerte können Vergleichsoperationen angewendet werden, deren Ergebnis von der Nummer der Literalvariablen oder -konstanten in der Codetabelle abhängt.

Zusätzlich zu Standarddatentypen unterstützt Pascal skalare Typen, benutzerdefinierte. Diese beinhalten aufzählbar Und Intervall Typen . Diese Datentypen belegen 1 Byte Speicher, sodass benutzerdefinierte Typen nicht mehr als 255 Elemente enthalten können. Ihre Verwendung verbessert die Sichtbarkeit des Programms erheblich, erleichtert das Auffinden von Fehlern und spart Speicherplatz.

Aufgezählter Typ wird direkt angegeben, indem alle Werte aufgelistet werden, die eine Variable eines bestimmten Typs annehmen kann. Einzelne Werte werden durch Kommas getrennt, und die gesamte Liste wird in Klammern eingeschlossen.

Format

Typ<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Beispiel

Typ Saison = (Frühling, Sommer, Herbst, Winter);

Var S1, S2: Saison;

Herbst: (September, Oktober, November);

In diesem Beispiel wird der explizit deklarierte Datentyp des Season-Benutzers angezeigt. Ihre Bedeutungen sind bestimmt - die Bezeichnungen der Jahreszeiten. Die Variablen S1 und S2 können nur einen der aufgelisteten Werte annehmen. Der Versuch, ihnen einen anderen Wert zuzuweisen, führt zu einem Software-Interrupt. Die dritte Art der Aufzählung ist anonym (hat keinen Namen) und wird durch die Aufzählung von Werten im Var-Abschnitt angegeben. Der Herbst ist eine Variable dieses Typs und kann die Werte September, Oktober, Nowember annehmen. Somit kann jeder Typ angegeben werden, aber dies ist nicht immer akzeptabel. Der erste Weg ist sicherlich verständlicher und entspricht eher der Natur der Pascal-Sprache.

Intervalltyp können Sie zwei Konstanten festlegen, die die Grenzen des Wertebereichs für diese Variable definieren. Der Compiler generiert Prüfroutinen für jede Operation auf einer Variablen vom Typ Intervall, die feststellt, ob der Wert der Variablen innerhalb des dafür angegebenen Bereichs bleibt. Beide Konstanten müssen zu einem der Standardtypen gehören, außer real. Der Wert der ersten Konstante muss notwendigerweise kleiner sein als der Wert der zweiten.

Format

Typ<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Beispiel

Typ Tage = 1.. 31;

Var Work_d, Free_d: Tage;

In diesem Beispiel die Variablen Work_d, Free_d sind vom Typ Tage und kann jeden Wert aus dem Bereich 1 annehmen. . 31.

Bereichsüberschreitung löst einen Software-Interrupt aus.

Sie können einen Intervalltyp definieren, indem Sie die Bereichsgrenzen nicht durch konstante Werte, sondern durch ihre Namen angeben:

Konstante Min = 1; max=31;

Typ Tage = Min .. Max;

Var Work_d, Free_d: Tage;

Strukturierte Typen Daten basieren auf Skalartypen und können verschiedene Kombinationen davon enthalten. Sie definieren eine geordnete Menge von Skalarelementen und sind durch die Art ihrer Komponenten gekennzeichnet. Pascal bietet die folgenden strukturierten Datentypen:

Linie - eine in Apostrophe eingeschlossene Zeichenfolge;

Array - strukturierter Datentyp, der aus einer festen Anzahl von Elementen des gleichen Typs besteht, auf die per Index zugegriffen wird ;

ein Haufen - eine Menge von Objekten, die gemäß einem Attribut oder einer Gruppe von Attributen ausgewählt werden, die als Ganzes betrachtet werden können;

aufzeichnen - ein Satz aus einer festen Anzahl von Komponenten unterschiedlichen Typs;

Datei- eine Folge von Bauteilen gleichen Typs und gleicher Länge.

Zwei weitere strukturierte Typen - prozedural und Objekttyp(objektiv) - es ist schwierig, die Daten in der üblichen Darstellung zuzuordnen.

Bild 1- Eine Reihe grundlegender Typen der Pascal-Sprache

Bei Paskal Variablen sind durch ihre gekennzeichnet Typ. Ein Typ ist eine Eigenschaft einer Variablen, wonach eine Variable eine Reihe von Werten annehmen kann, die von diesem Typ zugelassen sind, und an einer Reihe von Operationen teilnehmen kann, die für diesen Typ zulässig sind.

Ein Typ definiert die Menge gültiger Werte, die eine Variable eines bestimmten Typs annehmen kann. Es definiert auch den Satz zulässiger Operationen für eine Variable eines bestimmten Typs und definiert Datendarstellungen in Arbeitsspeicher Computer.

Zum Beispiel:

n: ganze Zahl;

Pascal ist eine statische Sprache, was bedeutet, dass der Typ einer Variablen bei der Deklaration festgelegt wird und nicht geändert werden kann. Die Sprache Pascal hat ein entwickeltes System von Typen – alle Daten müssen zu einem zuvor bekannten Datentyp gehören (entweder ein Standardtyp, der während der Entwicklung der Sprache erstellt wurde, oder ein benutzerdefinierter Typ, den der Programmierer definiert). Der Programmierer kann seine Typen mit beliebiger Komplexitätsstruktur basierend auf Standardtypen oder bereits erstellen benutzerdefinierte Typen. Die Anzahl der erstellten Typen ist unbegrenzt. Benutzerdefinierte Typen im Programm werden im Abschnitt TYPE nach folgendem Format deklariert:

[Name] = [Typ]

Das Standardtypsystem hat eine verzweigte, hierarchische Struktur.

Primär in der Hierarchie sind einfache Typen. Solche Typen sind in den meisten Programmiersprachen vorhanden und werden einfach genannt, aber in Pascal haben sie eine komplexere Struktur.

Strukturierte Typen werden nach bestimmten Regeln aus einfachen Typen aufgebaut.

Zeiger werden aus einfachen Views gebildet und dienen in Programmen zum Setzen von Adressen.

Verfahrensarten sind eine Neuerung der Sprache TurboPascal, und sie ermöglichen Ihnen den Zugriff auf Unterroutinen, als wären sie Variablen.

Objekte sind ebenfalls neu und sollen als objektorientierte Sprache verwendet werden.

Es gibt 5 Arten von Integer-Typen in Pascal. Jeder von ihnen charakterisiert den Bereich der akzeptierten Werte und ihren Platz im Gedächtnis.

Bei der Verwendung von Integerzahlen sollte man sich an der Verschachtelung von Typen orientieren, d.h. kleinere Bereichstypen können in größeren Bereichstypen verschachtelt werden. Der Typ Byte kann in alle Typen geschachtelt werden, die 2 und 4 Bytes belegen. Gleichzeitig kann der Typ Short Int, der 1 Byte belegt, nicht in den Typ Word geschachtelt werden, da er keine negativen Werte hat.

Es gibt 5 reale Typen:

Ganzzahlige Typen werden in einem Computer exakt dargestellt. Im Gegensatz zu Integer-Typen definiert der Wert von Real-Typen eine beliebige Zahl nur mit endlicher Genauigkeit, abhängig vom Format der Zahl. Reelle Zahlen werden in einem Computer mit Fest- oder Gleitkomma dargestellt.

2358.8395

0.23588395*10 4

0,23588395*E 4

Eine Sonderstellung in Pascal nimmt der Comp-Typ ein, tatsächlich handelt es sich um eine vorzeichenbehaftete große Ganzzahl. Dieser Typ ist mit allen reellen Typen kompatibel und kann für große ganze Zahlen verwendet werden. Bei der Darstellung von reellen Gleitkommazahlen ist der Dezimalpunkt immer vor der linken oder höchsten Mantisse impliziert, aber wenn mit einer Zahl gearbeitet wird, wird er nach links oder rechts verschoben.

Ordinale Typen

Ordnungstypen kombinieren mehrere einfache Typen. Diese beinhalten:

  • alle Integer-Typen;
  • Zeichentyp;
  • boolescher Typ;
  • Typenbereich;
  • aufgezählter Typ.

Gemeinsame Merkmale ordinaler Typen sind: Jeder Typ hat eine endliche Anzahl möglicher Werte; der Wert dieser Typen kann auf eine bestimmte Weise geordnet werden und mit jeder Nummer kann eine bestimmte Nummer, die eine fortlaufende Nummer ist, verglichen werden; benachbarte Werte von Ordinaltypen unterscheiden sich um eins.

Für Werte vom Typ Ordinal kann die Funktion ODD(x) angewendet werden, die die Ordnungszahl des x-Arguments zurückgibt.

Funktion PRED(x) - gibt den vorherigen Wert des ordinalen Typs zurück. PRED(A) = 5.

SUCC(x)-Funktion – Gibt den nächsten Wert eines ordinalen Typs zurück. SUCC(A) = 5.

Zeichentyp

Zeichentypwerte sind 256 Zeichen aus dem Satz, der von der Codetabelle des verwendeten Computers zugelassen wird. Der Anfangsbereich dieses Satzes, also der Bereich von 0 bis 127, entspricht dem Satz von ASCII-Codes, in den die Zeichen des Alphabets, arabische Zahlen und Sonderzeichen geladen werden. Symbole Anfangsbereich sind immer auf der PC-Tastatur vorhanden. Der ältere Bereich heißt alternativ, er enthält Zeichen nationaler Alphabete und diverse Sonderzeichen sowie pseudografische Zeichen, die nicht dem ASCII-Code entsprechen.

Ein zeichenartiger Wert belegt ein Byte im RAM. Im Programm werden Werte in Apostrophe eingeschlossen. Außerdem können Werte in Form ihres ASCII-Codes angegeben werden. In diesem Fall muss der Nummer mit dem Zeichencode ein #-Zeichen vorangestellt werden.

C:= 'A'

Boolescher (boolescher) Typ

Es gibt zwei Werte vom booleschen Typ: True (True) und False (False). Variablen dieses Typs werden durch das Dienstwort BOOLEAN spezifiziert. Ein boolescher Wert belegt ein Byte im RAM. Die Werte True und False entsprechen den Zahlenwerten 1 und 0.

Typenbereich

Es gibt eine Teilmenge seines Basistyps, der ein beliebiger Ordinaltyp sein kann. Der Bereichstyp wird durch die Grenzen innerhalb des Basistyps definiert.

[Min-Wert]…[Max-Wert]

Der Bereichstyp kann im Abschnitt Typ als spezifischer Typ oder direkt im Abschnitt Var angegeben werden.

Bei der Definition eines Bereichstyps sollte man sich leiten lassen von:

  • der linke Rand sollte den rechten Rand nicht überschreiten;
  • Ein Bereichstyp erbt alle Eigenschaften des Basistyps, jedoch mit Einschränkungen in Bezug auf seine niedrigere Kardinalität.

Aufgezählter Typ

Dieser Typ bezieht sich auf Ordinaltypen und wird durch Auflisten der Werte angegeben, die er aufzählen kann. Jeder Wert wird durch einen Bezeichner benannt und befindet sich in der in Klammern eingerahmten Liste. Der Aufzählungstyp wird in Typ angegeben:

Völker = (Männer, Frauen);

Der erste Wert ist 0, der zweite Wert ist 1 und so weiter.

Maximale Leistung 65535 Werte.

String-Typ

Der String-Typ gehört zur Gruppe der strukturierten Typen und besteht aus dem Basistyp Char. Der Stringtyp ist kein Ordinaltyp. Es definiert eine Reihe von Zeichenketten beliebiger Länge bis zu 255 Zeichen.

Im Programm wird der String-Typ durch das Wort String deklariert. Da String ein Basistyp ist, wird er in der Sprache deklariert und die Deklaration einer Variablen vom Typ String erfolgt in Var. Bei der Deklaration einer Variablen vom Typ String hinter String empfiehlt es sich, die Länge des Strings in eckigen Klammern anzugeben. Gibt eine Ganzzahl zwischen 0 und 255 an.

Familie: Saite;

Durch die Angabe der Zeichenfolgenlänge kann der Compiler die angegebene Anzahl von Bytes im RAM für die angegebene Variable zuweisen. Wenn die Zeichenfolgenlänge nicht angegeben ist, weist der Compiler die maximal mögliche Anzahl von Bytes (255) für den Wert dieser Variablen zu.

Die Lektion behandelt die wichtigsten Standarddatentypen in Pascal, das Konzept einer Variablen und einer Konstante; erklärt, wie man mit arithmetischen Operationen arbeitet

Pascal ist eine typisierte Programmiersprache. Das bedeutet, dass die Variablen, die Daten speichern, einen bestimmten Datentyp haben. Diese. Das Programm muss direkt angeben, welche Daten in einer bestimmten Variablen gespeichert werden können: Textdaten, numerische Daten, wenn numerisch, dann ganzzahlig oder gebrochen usw. Dies ist in erster Linie notwendig, damit der Computer "weiß", welche Operationen mit diesen Variablen durchgeführt werden können und wie er sie richtig ausführt.

Beispielsweise ist die Addition von textuellen Daten, oder wie es in der Programmierung richtig heißt - Verkettung - das übliche Zusammenführen von Zeichenketten, während die Addition von numerischen Daten bitweise erfolgt, außerdem werden auch Bruch- und Ganzzahlen in unterschiedlicher Weise addiert Wege. Gleiches gilt für andere Operationen.

Werfen wir einen Blick auf die häufigsten Pascal-Typen Daten.

Integer-Datentypen in Pascal

Typ Bereich Benötigter Speicher (Byte)
Byte 0..255 1
kurz -128..127 1
ganze Zahl -32768.. 32767 2
Wort 0..65535 2
lange -2147483648..2147483647 4

Es muss beachtet werden, dass beim Schreiben von Programmen in Pascal ganze Zahl(übersetzt aus dem Englischen als ganze Zahl) wird am häufigsten verwendet, da der Wertebereich am gefragtesten ist. Wenn ein größerer Bereich benötigt wird, verwenden Sie lange(Long Integer, übersetzt aus dem Englischen Long Integer). Typ Byte in Pascal wird es verwendet, wenn nicht mit negativen Werten gearbeitet werden muss, dasselbe gilt für den Typ Wort(nur der Wertebereich ist hier viel größer).

Beispiele, wie Variablen in Pascal beschrieben (deklariert) werden:

Programm a1; varx,y:Ganzzahl; (Ganzzahltyp) myname:string; (Stringtyp) begin x:=1; y:=x+16; meinname:="Peter"; writeln ("name: ",meinname, ", alter: ", y) end.

Ergebnis:
Name: Peter, Alter: 17

Kommentare in Pascal

Achten Sie darauf, wie Es werden Pascal-Kommentare verwendet. Im Beispiel sind Kommentare, d.h. Diensttext, der für den Compiler „nicht sichtbar“ ist, wird in geschweiften Klammern eingeschlossen. Typischerweise werden Kommentare von Programmierern gemacht, um Codeschnipsel zu verdeutlichen.

Aufgabe 3. Die Bevölkerung von Moskau beträgt a = 9.000.000 Einwohner. Die Bevölkerung von New Vasyukov beträgt b=1000 Einwohner. Schreiben Sie ein Programm, das den Unterschied in der Einwohnerzahl zwischen zwei Städten ermittelt. Verwenden Sie Variablen

Reale Datentypen in Pascal

Reelle Zahlen in Pascal und allgemein in der Programmierung sind die Bezeichnung für Bruchzahlen.

Typ Bereich Benötigter Speicher (Byte)
real 2,9*10E-39..1,7*10E38 6
einzel 1,5 * 10 E-45 .. 3,4 * 10E38 4
doppelt 5*10E-324..1.7*10E308 8
erweitert 1,9 * 10E-4951 .. 1,1 * 10E4932 10

Der reelle Typ in Pascal ist der am häufigsten verwendete reelle Typ.

Oben wurden vorgestellt einfache Datentypen in Pascal, darunter:

  • Ordinal
  • ganz
  • Rätsel
  • Symbolisch
  • aufgezählt
  • Intervall
  • Real

Um die Werte von Variablen eines realen Typs auszugeben, wird normalerweise eine formatierte Ausgabe verwendet:

  • das Format verwendet entweder eine Zahl, d. h. die Anzahl der Positionen, die dieser Zahl in exponentieller Form zugeordnet sind;
  • p:=1234,6789; WriteIn(p:6:2); (1234.68)

    Neben einfachen Typen verwendet die Sprache auch strukturierte Datentypen und Zeiger, die Gegenstand nachfolgender Pascal-Lektionen sein wird.

    Konstanten in Pascal

    Oft weiß das Programm im Voraus, dass die Variable einen bestimmten Wert annehmen wird, und ändert ihn während der Ausführung des gesamten Programms nicht. In diesem Fall müssen Sie eine Konstante verwenden.

    Die Deklaration einer Konstante in Pascal erfolgt vor der Deklaration von Variablen (vor dem Dienstwort var) und sieht so aus:

    Ein Beispiel für eine Konstantenbeschreibung in Pascal:

    1 2 3 4 5 6 const x= 17 ; var meinname: string ; begin myname: = "Peter" ; writeln ("name: " , meinname, ", alter: " , x) end .

    konstant x=17; varmyname:string; begin meinname:="Peter"; writeln ("name: ", meinname, ", alter: ", x) end.

    "Schöne" Ausgabe von Ganzzahlen und reellen Zahlen

    Um nach der Ausgabe der Werte der Variablen Einzüge zu lassen, damit die Werte nicht miteinander „verschmelzen“, ist es üblich, durch einen Doppelpunkt anzugeben, wie viele Zeichen für die Ausgabe bereitgestellt werden müssen des Wertes:


    Arithmetische Operationen in Pascal

    Reihenfolge der Operationen

    1. Auswertung von Klammerausdrücken;
    2. Multiplikation, Division, div, mod von links nach rechts;
    3. Addition und Subtraktion von links nach rechts.

    Pascal Standardarithmetische Prozeduren und Funktionen

    Hier lohnt es sich, auf einige Rechenoperationen näher einzugehen.

    • Der inc-Operator in Pascal, ausgesprochen als Inkrement, ist das Pascal-Standardverfahren, was eine Erhöhung um eins bedeutet.
    • Inc-Betriebsbeispiel:

      x:=1; inc(x); (erhöht x um 1, also x=2) writeln (x)

      Eine komplexere Verwendung des inc-Verfahrens:
      Inc(x,n) wobei x ein ordinaler Typ ist, n ein ganzzahliger Typ ist; die Prozedur inc erhöht x um n.

    • Die Dec-Prozedur in Pascal funktioniert ähnlich: Dec(x) - verringert x um 1 (Dekrement) oder Dec(x,n) - verringert x um n.
    • Der abs-Operator repräsentiert den Modul einer Zahl. Funktioniert so:
    • a: =- 9 ; b:=abs(a); (b=9)

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

    • Der div-Operator in Pascal wird häufig verwendet, da eine Reihe von Aufgaben mit der Division-Integer-Aktion verknüpft sind.
    • Auch der Rest der Division oder der mod-Operator in Pascal ist für die Lösung mancher Probleme unverzichtbar.
    • Bemerkenswert ist Standardfunktion odd Pascal, das bestimmt, ob eine ganze Zahl ungerade ist. Das heißt, es gibt true (true) für ungerade Zahlen zurück, false (false) für gerade Zahlen.
    • Ein Beispiel für die Verwendung der ungeraden Funktion:

      varx: ganze Zahl; Anfangx:=3; writeln(sqr(x)); (Antwort 9) Ende.

    • Operation Potenzierung in Pascal als solches fehlt. Aber um eine Zahl zu potenzieren, können Sie die exp-Funktion verwenden.
    • Die Formel lautet: exp(ln(a)*n) , wobei a eine Zahl und n eine Potenz ist (a>0).

      Allerdings im Compiler pascal abc Potenzierung ist viel einfacher:

      varx: ganze Zahl; Anfangx:=9; writeln(sqrt(x)); (Antwort 3) Ende.

    Aufgabe 4. Die Abmessungen einer Streichholzschachtel sind bekannt: Höhe - 12,41 cm, Breite - 8 cm, Dicke - 5 cm Berechnen Sie die Grundfläche der Schachtel und ihr Volumen
    (S=Breite * Dicke, V=Fläche*Höhe)

    Aufgabe 5. Es gibt drei Elefanten und ziemlich viele Kaninchen im Zoo, und die Anzahl der Kaninchen ändert sich häufig. Ein Elefant soll 100 Karotten am Tag fressen, ein Hase 2. Jeden Morgen meldet der Tierpfleger die Anzahl der Kaninchen an den Computer. Als Antwort sollte der Computer dem Pfleger die Gesamtzahl der Karotten mitteilen, die heute an Kaninchen und Elefanten verfüttert werden müssen.

    Aufgabe 6. Es ist bekannt, dass X kg Süßigkeiten A Rubel. Bestimmen Sie, wie viel j kg dieser Süßigkeiten sowie wie viel Kilogramm Süßigkeiten zugekauft werden können k Rubel. Alle Werte werden vom Benutzer eingegeben.



    Wird geladen...
    Spitze