Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu

Opis i użycie

Wymieniony typ jest zdefiniowany jako zestaw identyfikatorów, z punktu widzenia języka odtwarzania tej samej roli, co zwykły wymienione stałe, ale związane z tym typem. Klasyczny opis listy typu w języku Pascal wygląda tak:

Typ Cardsuit \u003d (kluby, diamenty, serca, pik);

Oto typ danych Contait Cardsuit (garnitur kart), który może być dowolnym z czterech stałych wymienionych. Zmienna typu Cardsuit może przyjąć jedną z wartości klubów, diamentów, serc, pik, pozostawione do porównania wartości rodzaju wyliczenia do równości lub nierówności, a także przy użyciu ich w operatorach selekcji (w Pascal - Case) jako wartości identyfikujące opcje.

Korzystanie z wyliczeń pozwala na to kody źródłowe Programy są bardziej czytelne, ponieważ pozwalają na wymianę "Magic Numbers" kodując niektóre wartości do odczytu nazw.

Na podstawie wyliczeń w niektórych językach można utworzyć zestawy zestawów. W takich przypadkach zestaw jest rozumiany (i opisany) jako niezadowolony zestaw unikalne wartości Typ aukcji.

Rodzaj typu może być stosowany w deklaracjach zmiennych i formalnych parametrów funkcji (procedury, metody). Wartości listy można przypisać do odpowiednich zmiennych i przesyłanych przez parametry odpowiednich typów w funkcji. Ponadto zawsze wspierany jest porównanie wartości wymienionych na równości i nierówności. Niektóre języki wspierają również inne operacje porównawcze dla wartości typów notowanych. Wynik porównania dwóch wymienionych wartości w takich przypadkach jest określony, z reguły, procedura następujących wartości w deklaracji typów - wartość, która w reklamie typu jest oceniana wcześniej, uważa się za " mniej "wartość występująca później. Czasami wpisany typ lub jakiś zakres wartości typów wymienionych może być również używany jako typ indeksu dla tablicy. W tym przypadku, dla każdej wartości wybranego zakresu w tablicy znajduje się jeden element, a rzeczywista kolejność elementów odpowiada kolejności wartości w reklamie typu.

Sprzedaż

Zwykle w procesie kompilowania wartości wartości transferu są prezentowane za pomocą liczb całkowitych. W zależności od konkretnego języka programowania, taka reprezentacja może być całkowicie ukryta z programatora, albo dostępna do niego przy użyciu pewnych "manewrów obejściowych" (na przykład wymuszona transformacja typu wartości transferowej do wartości typu "Integer" ), a nawet zarządzany przez programista (w takich przypadkach programista ma możliwość wyraźnego wskazania, które liczby wszystkie lub niektóre wartości typu transferu zostaną zakodowane). Wszystkie opcje mają własne pozytywne i negatywne strony. Z jednej strony, możliwość wykorzystania wartości numerycznych stałych stanowiących wyliczanie typu, zwłaszcza podczas nadużywania go, pozbawia wykorzystanie tych typów i stwarza ryzyko błędów (gdy wartości numeryczne są używane, dla których Nie ma odpowiednich stałych w rodzaju). Z drugiej strony wyraźna kontrola wartości daje trochę dodatkowe funkcje. Na przykład umożliwia korzystanie z listy typu podczas organizowania interfejsu z modułami napisanymi w innych językach, jeśli używają lub zwrócone do wartości zakodowanych przez liczby całkowite z pewnego predefiniowanego zestawu.

Kolejna możliwość, że typy wymienione są podane na poziomie implementacji językowej - oszczędności pamięci. Z małym typem listy typu, aby przechowywać wartość tego typu, wystarczające są kilka bitów (powyższy typ Carduit wymaga tylko dwóch bitów do wartości, a standardowa liczba całkowita w większości używanych architektów zajmuje 32 bitów - 16 razy więcej ), a kompilator może korzystać z tego faktu, jest przeznaczenie przechowywania danych w pamięci. Może być szczególnie ważne, jeżeli kilka wartości wykazów typu jest przechowywane w jednym rekordzie - rekordy uszczelniające podczas przetwarzania dużych ilości może zwolnić dużo pamięci. Prawda, należy zauważyć, że kompilatory zazwyczaj nie wdrażają tej możliwości przynajmniej ostatnio, kiedy pamięć komputera Znacznie spadł.

Krytyka

Rodzaj wyliczenia jest tradycyjny dla opracowanych języków programowania, jest używany dość szeroko i jest często postrzegany jako coś z pewnością. Jednak ten typ nie robi również bez krytyki ze strony teoretyków i praktyków programowania. Tak więc, gdy opracowując język programowania, Oberon, wpisane typy spadły do \u200b\u200blisty funkcji usuniętych z języka. Niklaus Wirth, deweloper języka, zwany następującymi powodów:

Z drugiej strony, na przykład, w Javie, pierwotnie zawierającym typ wymienionym, ten typ został następnie wprowadzony z powodów nie tylko wygodę, ale także niezawodność: problem zastosowania zamiast listy grup o wymienionych stałych jest to, że nie ma kontroli Od kompilatora jako wyjątkowość stałych wartości i możliwość przypadkowego przypisania wartości zmiennychnie odpowiadający żadnej z tych stałych.

Opis wyliczeń w różnych językach

Ada.

Iskierki (kluby, diamenty, serca, pik);

Dynamiczne języki słabego wpisywania składni C-podobną (np. Perl lub JavaScript), z reguły nie wymieniono.

C ++.

C #

Iskierki (kluby, diamenty, pik, serca);

Jawa.

Enum Carduit (kluby, diamenty, pik, serca)

Haskell.

W niektórych językach programowania (na przykład w Haskell), za pomocą typów algebraicznych, można naśladować wyliczenia. Na przykład, typ Boolean jest tak zakodowany zawierający dwa identyfikatory, aby reprezentować wartości prawdy:

Dane Bool \u003d False | Prawdziwe.

Notatki


Fundacja Wikimedia. 2010.

Wikipedia.

Ze względów technicznych Bool jest tutaj przekierowany. O Bool znajduje się tutaj: Stdbool.h. Logika, boolean (angielski typ logicznego lub logicznego typu danych) Typ danych typ prymitywny Dane w informatyce, które mogą wziąć dwa możliwe ... Wikipedia

W teorii programowania dowolnego typu, których wartości są wartościami niektórych innych typów, projektantów typu "Wedrogen" typu algebraicznego. Innymi słowy, typ danych algebraiczny ma zestaw projektantów typu, z których każdy ... ... Wikipedia

Integer, typ danych liczb całkowitych (ENG. Integer), w informatyce jeden z najprostszych i najczęstszych typów danych w językach programowania. Używane do reprezentowania liczb całkowitych. Wiele liczb tego typu reprezentuje ... ... Wikipedia

Prymitywny (wbudowany, podstawowy) rodzaj typu danych dostarczany przez język programowania jako podstawowy wbudowany jednostka języka. W zależności od języka i jego wdrożenia, zestaw takich typów może się znacznie różnić. Jest określony ... ... Wikipedia

Termin ten ma również inne wartości, patrz zestaw (wartości). Wiele typów i struktury danych w informatyce jest implementacją zestawu obiektu matematycznego. Dane typu Dane umożliwiają przechowywanie ograniczonej liczby wartości ... ... Wikipedia

Niektóre języki programowania zapewniają specjalny typ danych dla zintegrowanych numerów. Obecność typu wbudowanego upraszcza przechowywanie wartości zintegrowanych i obliczania nad nimi. Spis treści 1 arytmetyczne na kompleksie 2 wsparcie w językach ... Wikipedia

Aby poprawić ten artykuł technologie informacyjne Korzystnie?: Znajdź i zorganizuj w formie przypisów odniesień do autorytatywnych źródeł potwierdzających pisemne. Ślizganie się przypisów, bardziej dokładne ... Wikipedia

Zmiennezadzwoń do wartości może zmienićw trakcie wykonania programu. Każda zmienna jest ustawiona przez jego unikalną nazwę, zbudowaną zgodnie z zasadami określonymi na początku rozdziału. Maksymalna możliwa nazwa nazwy zależy od wdrażania Pascala, teoretycznie można podać nazwy zmiennych do 63 znaków, które nie ma znaczenia - zwykle nazwy nie są dłuższe niż 5-10 znaków.

Ponieważ wszelkie dane w pamięci komputera są przechowywane w formie numerycznej i systemie numeru binarnego, z wyjątkiem nazwy, zmienna musi być przypisana i typdefiniowanie zakres wartościOtrzymano zmienną i. metoda jego przetwarzaniamaszyna. Wyjaśnijmy przykład na przykładzie. Jak widać z dodatku 1, łacińska duża litera "A" ma kod dziesiętny 65 lub 01000001 w reprezentacji binarnej. Brak dodatkowych informacji rodzajdane przechowywane w niektórych komórkach pamięci, komputer byłby niemożliwy do podjęcia decyzji, jakie dokładnie te dane są reprezentowane - numer 65, kod symbolu "A" lub coś innego. W dowolnym języku programowania, w tym na Pascale, istnieje standardowy zestaw typów, do których można przypisać jeden lub inny zestaw komórek pamięci. Informacje o rodzajach danych Pascal jest wygodne do zmniejszenia do tabeli. Linie tej tabeli zostaną zamówione przez typy stażu pracy, Z najbardziej "młodszych", wymagających najmniejszej liczby bajtów do prezentacji, a odpowiednio, reprezentująca najmniejszą gamę możliwych wartości, do "Senior", reprezentująca największy zakres wartości. Tabela nie pokazuje żadnych możliwych, ale tylko główne typy danych Pascal.

Słowo kluczowe Pascal.

Tytuł tytułu i opis

Objętość pamięci, bajt

Zakres możliwych wartości

Logika: przechowuje jedną zmienną logiczną

Symbol: przechowuje kod jednego znaku z zestawu kodów ASCII

od 0 do 255 włącznie (2 8 \u003d 256)

Liczba całkowita

Przeplątany bez znaku

± 2 16 - zakres jest dwa razy więcej niż 16 bit nie jest zajęty pod znakiem

Długa liczba całkowita: do prezentacji dużych wartości całkowitych

Numer rzeczywistości z dokładnością reprezentacji do 11-12 znaku w części frakcyjnej

~ 2.9*10 -39 - 1.7*10 38

Numer rzeczywistości z dokładnością prezentacji do 15-16 znaków w części frakcyjnej

~ 5*10 -324 – 1.7*10 308

Sekwencja znaków Chargeline od 1 do 255

2-256 (Dane wiersza + 1 bajt do przechowywania jego długości)

Wszelkie linie tekstu składające się z drukowanych znaków

Teoretycznie teoretycznie jest teoretycznie, aby napisać zmienną, ale minimalna adresowana jednostka pamięci wynosi 1 bajt (patrz Dodatek 1). W tym samym zastosowaniu określ dokładnie, jak ilość pamięci w bajtach przydzielona do zmiennej wpływa na zakres wartości reprezentowanych przez niego.

Integer i rodzaje symboliczne są uogólnione porządkowyPodkreślając to, że te typy mają skończony zestaw wartości, które można zamówić lub wymienić. Przypomnijmy, że wartości rzeczywiste są przechowywane w pamięci komputera, inaczej niż - mianowicie, jako całość mantiss i porządku.

Oczywiście zadanie prawidłowego wyboru typów danych jest całkowicie na programista. Na przykład, jeśli niektóre licznik w programie mogą przyjmować wartości liczb całkowitych od 1 do 100000, byłoby nieprawidłowe, aby opisać ją jako zmienną liczby całkowitej - po wszystkich, 2 15 \u003d 32768, a gdy licznik tej wielkości jest osiągnięty , to się stanie resetowaniejego wartości będą równe -32768. Rozsądne w tym przypadku będzie opis licznika jako zmiennej Typelongint.

Zmienne są opisane w programie przez następnego operatora gatunków:

var List1: Type1;

List2: Type2;

Lishn: typen;

Tutaj lista- zestaw nazw zmiennych oddzielonych przecinkami (lub jedną zmienną) i typ- Dowolne typy danych omówione powyżej. Na przykład projektowanie

opisuje 2 zmienne materialne z nazwami TIR, a także zmienną całkowitą o nazwie. Słowo kluczowevaracan i duplikat, ale zazwyczaj nie ma takiej potrzeby. Skróty z angielskiego słowa "zmienna" (zmienna).

Klasa wyjaśni algorytm do tworzenia typów danych użytkownika na Pascal (typ). Przykłady zostaną zdemontowane.

Rodzaje danych w Pascale są podzielone na proste i złożone.

Proste typy obejmują Standard, wymieniony i ograniczony.

Do typów złożonych - tablice, zestawy, rekordy, pliki. Elementy typów złożonych mogą być proste i złożone typy. Zapoznajmy się później z złożonymi typami danych.

Jednym z najczęstszych typów jest porządkowe typ standardowy.
Typ standardowy Wskazuje ostateczny zestaw liniowy wartości. Do tego zwykle należy całe typy, bajt, symboliczny i logiczny.

Nowe (niestandardowe) typy danych Potrzebny przede wszystkim do widoczności i wygody:

Przykład: Matryca jest ustawiona na wymiar 10 x 50. Wykonaj opis matrycy za pomocą typu danych użytkownika

procedura p (A: tablica całkowitowa);

Ale powinieneś utworzyć typ danych i zapisz w ten sposób:

1 2 Typ wektor \u003d tablica [1. 10] liczby całkowitej; Var Procedura p (A: Vector);

typ wektor \u003d macierz całkowitego; Var Procedura p (A: Vector);

Przykłady opisu tablic przy użyciu nowych typów

typ wektor \u003d macierz całkowitego; Matritsa \u003d macierz wektora;

  • 1 Typ MATRITSA \u003d tablica [1. 8] tablicy [1. 10] liczby całkowitej;

    wpisz matritsa \u003d macierz tablicy całkowitej;

  • 1 Typ matritsa \u003d tablica [1 .. 8, 1 .. 10] liczby całkowitej;

    wpisz matritsa \u003d tablica całkowitego;

  • W poniższym przykładzie zmienne dO. i rE. Opisuje to samo:

    1 2 3 4 5 6 Typ wektor \u003d tablica [1. 10] liczby całkowitej; Matritsa \u003d tablica [1 .. 8] wektora; Var a, b: wektor; C: matritsa; D: Array [1 .. 8] wektora;

    typ wektor \u003d macierz całkowitego; Matritsa \u003d macierz wektora; Var a, b: wektor; C: matritsa; D: macierz wektora;

    Typ 1.: Ustaw macierze A, B i C. Znajdź średnio minimalne elementy arithmetyczne tablicy (użyj tworzenia tablicy i).
    Opisując procedury typy niestandardowe Dane

    Typ wymieniony i typ interwału w Pascal

    Typ wymieniony

    Program może użyć zmiennych tego typu, który nie pasuje do żadnego ze standardowych typów.

    Tak więc typ można ustawić przez wymienianie wartości podczas deklarowania; zmienna ten typ Może podjąć dowolną z tych wartości.

    Te wartości nie może być wierszy, nie możesz się wycofać i nie możesz wejść do komputera z pomocą odczytaj operatorzy i napisz.

    Rozważmy przykład tworzenia wpisanego typu na Pascal:

    Wpisz pt \u003d (Word1, Word2, ... WordN); Var w: pt;

    wpisz pt \u003d (Word1, Word2, ... Wordn); Var w: pt;

  • pT - Identyfikator typu (arbitralny),
  • word1, Word2 ... - Specyficzne wartości, które mogą otrzymać zmienną W należącą do typu PT
  • wartości tego typu są uważane za zamówione, tj. Opis typu w tym samym czasie wprowadza zamawianie word1.
  • Typ interwału

    Typ interwału Określa określony podzbiór wartości, które może otrzymać tę zmienną. Stworzony przez ustawienie najmniejszej i największej wartości typu porządkowego. Jako stałe (minimalne i maksymalne wartości), wartości każdego proste typy Oprócz typów rzeczywistych.

    Rozważmy przykład ogłoszenia typu interwałowego:

    O: Min .. max;
  • zA. - Zmienna interwałowa
  • min. - dolna linia
  • max. - Górna granica podzbiór
  • granice zakresu są oddzielone dwoma punktami.
  • granica min.zawsze powinien być mniej max.
  • stałych stałych min.i max.musi należeć do tego samego typu. Definiują podstawowy typ zmiennej zA..
  • Udostępnianie przeniesienia i interwałów

    Zmienna typu interwału można ustawić za pomocą podstawowego typu wymienionego. Rozważ przykład:

    Przykład: Jeśli zmienna b. może wziąć jedną z wartości czerwony, Żółty, zielony.Ta zmienna może być opisana w następujący sposób: B: Red..Green; Typ podstawowy b. jest typem kolor:

    Wpisz kolor \u003d (czerwony, żółty, zielony, niebieski); Var b: czerwony .. zielony; Rozpocznij b: \u003d czerwony; Writeln (b); B: \u003d żółty; Writeln (b); B: \u003d zielony; Writeln (b); koniec readln.

    wpisz kolor \u003d (czerwony, żółty, zielony, niebieski); Var b: czerwony ... Rozpocznij b: \u003d czerwony; Writeln (b); B: \u003d żółty; Writeln (b); B: \u003d zielony; Writeln (b); koniec readln.

    W ten przykład Wpisz kolor - jest podstawowy. Zmienna typu interwałowa jest zdefiniowana za pomocą podstawowego typu wymienionego.

    Przykład: Wiadomo, ile dni w każdym miesiącu roku. Ile dni w lecie?
    31,28,31,30,31,30,31,31,30,31,30,31

    Jednym z rozwiązań tego zadania wygląda tak:

      Pokaż rozwiązanie:

      1 2 3 4 5 6 7 8 CEST DI: Array [1 .. 12] bajtu \u003d (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); Var s, i: całkowitą; Rozpocznij s: \u003d 0; Dla I: \u003d 6 do 8 do S: \u003d S + DNI [I]; (Miesiące letnie - 6, 7, 8) Koniec Writeln (s).

      const DI: Tablica bajtów \u003d (31,28,31,31,31,31,31,31,31,31,31); Var s, i: całkowitą; Rozpocznij s: \u003d 0; Dla I: \u003d 6 do 8 do S: \u003d S + DNI [I]; (Miesiące letnie - 6, 7, 8) Writeln (s) koniec.

      Kod to rozwiązanie Poza tym nie jest najlepszą widocznością, konieczne jest obliczenie liczby miesięcy od początku i koniec lata (6 i 8).
      Wygoda i widoczność takich programów można wzmocnić w następujący sposób:

      Pokaż rozwiązanie:

      1 2 3 4 5 6 7 8 9 Typ Mes \u003d (styczeń, luty, marzec, kwiecień, maj, czerwiec, lipiec, sierpień, wrzesień, październik, listopad, grudzień, grudzień); (juniora, luty, marca, sierpień, wrzesień, październik, sierpień, wrzesień); Const DI: Array [styczeń .. grudnia] bajtu \u003d (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); Var s: całkowitą; I: MES; (Variable Cycle Counter I jest ustawiony przez typ MES, a nie całkowitą) Rozpocznij s: \u003d 0; Dla I: \u003d czerwca do sierpnia: \u003d S + DNI [I]; Koniec Writeln (s).

      Typ Mes \u003d (styczeń, luty, marzec, kwiecień, maj, czerwiec, lipiec, sierpień, wrzesień, październik, listopad, grudzień, grudzień); (juniora, luty, marca, sierpień, wrzesień, październik, sierpień, wrzesień); Const DI: Tablica bajtów \u003d (31,28,31,31,31,31,31,31,31,31,31); Var s: całkowitą; I: MES; (Variable Cycle Counter I jest ustawiony przez typ MES, a nie całkowitą) Rozpocznij s: \u003d 0; Dla I: \u003d czerwca do sierpnia: \u003d S + DNI [I]; Koniec Writeln (s).

    Typ 2: Określ według Nazwa dnia tygodnia, czy jest to lub dzień roboczy.

  • Określ niezliczony typ wartościami dni tygodnia ( mon., tue., pOŚLUBIĆ, thu., piątek, sob., słońce.).
  • W programie przypisuje na przykład wartość zmiennej (z wartości typu, na przykład mon.).
  • Sprawdź zmienną: Jeśli wartość soboty lub niedziela ma wydać wiadomość. "Wynik!"Inaczej "Pracujemy!".
  • Typ 3: W zależności od miesiąca roku wydasz wiadomość "zimno" - Jeśli miesiąc zimowy i "ciepło" - Jeśli lato.

  • Określ notowany typ z nazwami miesięcy roku.
  • Zadeklaruj zmienną odnoszącą się do tego typu.
  • W programie przypisuje wartość zmiennej (z wartości typu).
  • Sprawdź zmienną: Jeśli wartość odnosi się do miesiąca zimowego, - Wydaj wiadomość "zimno" Inaczej, - "ciepło".
  • Wdrożyć na kilka sposobów.
  • Koniec Writeln (Pribitie).

    vAR OTPRAVLENIE, PRIBITIE: bajt; Rozpocznij OTPravleneie: \u003d 22; Pribitie: \u003d Otpravleneie + 10; Koniec Writeln (Pribitie).

    program zamiast odpowiedzi "8" będzie drukowany "32".
    Wprowadzenie typu ograniczonego zakresu uniknie nieprawidłowego wyniku, ale kompilator będzie nadal podał błąd:

    1 2 3 4 5 6 VAR OTPRAVLENIE, PRIBITIE: 0. 24; Rozpocznij OTPravleneie: \u003d 22; Pribitie: \u003d Otpravleneie + 10; Writeln (Pribitiedeva); Var A: Znak; Rozpocznij: \u003d lew; JEŚLI.<= strelets then writeln ("огонь" ) ; if (a>\u003d vesi) i (a<= bliznetsi) then writeln ("воздух" ) ; if (a>\u003d Rak) i (a<= ribi) then writeln ("вода" ) ; if (a>\u003d Kozerog) i (A<= deva) then writeln ("земля" ) ; end .

    wpisz Znak \u003d (piekarnik, Lev, Strelets, Vesi, Vodoley, Bliznetsi, Rak, Skorpion, Ribi, Kozerog, Teles, Deva); Var A: Znak; Rozpocznij: \u003d lew; JEŚLI.<=strelets then writeln("огонь"); if (a>\u003d vesi) i (a<=bliznetsi) then writeln ("воздух"); if (a>\u003d Rak) i (a<=ribi) then writeln ("вода"); if (a>\u003d Kozerog) i (A<=deva) then writeln ("земля"); end.

    Typ 5: W zależności od nazwiska kwiatu, aby wydać sezon roku, który odnosi się:

  • Wiosna: Przebiśnieg, Irys, Narcyz
  • Lato: Chamomile, Dailed, Mac
  • Jesień: astra, chryzantema, flox
  • Kiedy opisujesz zmienną, musisz określić jego typ. Rodzaj zmiennej opisuje zestaw wartości, które mogą zaakceptować, a działania, które mogą zostać zakończone powyżej. Typ Opis Określa identyfikator, który oznacza typ.

    Proste typy są podzielone na standard (porządkowy) i wymienione (ograniczone).

    Typy standardowe

    Turbo-Pasal ma cztery wbudowane typy standardowe: liczbę całkowitą (całkowitą), real (real), boolean (logiczny) i znak (symbol).

    Typ całkowcowy (liczba całkowita)

    W Turbo Pascal jest pięć wbudowanych typów liczb całkowitych: Shortint (krótka liczba całkowita), liczby całkowitej (całości), Longint (długiej liczby całkowitej), bajt (bajt-długi) i słowo (długość słowa). Każdy typ oznacza konkretny podzbiór liczb całkowitych, jak pokazano w poniższej tabeli.

    Wbudowane typy całkowite.

    Zasięg

    Format

    8 bitów ze znakiem

    16 bitów ze znakiem

    2147483648 +2147483647

    32 bitów ze znakiem

    8 bitów bez znaku

    16 bitów bez znaku

    Działania arytmetyczne na operandach typu Integera są przeprowadzane zgodnie z następującymi zasadami:

    1. Rodzaj całej stałej jest wbudowany typ całkowitego z najmniejszą ofertą, która obejmuje wartość tego całej stałej.
    2. W przypadku operacji binarnej (operacja przy użyciu dwóch operandów) obie operandy są konwertowane na swój typ współdzielony przed wykonaniem ich działania powyżej. Wspólny typ jest wbudowany typ całkowitego z najmniejszą ofertą, która zawiera wszystkie możliwe wartości obu typów. Na przykład, wspólny typ dla całości i całej długości w bajtach jest liczbą całkowitą, a wspólny typ całej i całej długości w słowie jest długimi całkowitą. Akcja jest wykonywana zgodnie z dokładnością typu całkowitego i rodzaju wyniku jest typ ogólny.
    3. Wyrażenie po prawej stronie instrukcji przypisania oblicza się niezależnie od wielkości zmiennej po lewej stronie.

    Operacje wykonywane nad liczbami całkowitymi:

    "+" - dodatek

    "-" - Odejmowanie

    "*" - mnożenie

    SQR - Budowa kwadratu

    Div - po rozszczepieniu odrzuconej części ułamkowej

    Mod - uzyskanie całej równowagi po dywizji

    ABS - numer modułu

    Losowo (x) - liczba losowa od 0 do x

    A: \u003d 100; B: \u003d 60; Wynik Div \u200b\u200bB - 1 Wynik Mod B - 40

    Zmienne liczbowe są opisane w następujący sposób:

    var Lista zmiennych: Typ;

    Na przykład: var a, p, n: liczby całkowitej;

    Rodzaj prawdziwy (Real)

    Rodzaj rzeczywistego zawiera podzbiór liczb rzeczywistych, które mogą być reprezentowane w formacie pływającym średnikowym ze stałą liczbą liczb. Rejestr pływającego średnika zwykle obejmuje trzy wartości - m, b i e - w taki sposób, że m * b E, gdzie b jest zawsze 10, a M i E są wartościami całkowitymi w zakresie rzeczywistym zakresu. Te wartości M i E dalej określają zakres i dokładność typu rzeczywistego.

    Istnieją pięć rodzajów rodzajów rzeczywistych: Real, Single, Duble, Exnende, Comp. Rodzaje rzeczywiste różnią się w zakresie i dokładności powiązanych wartości

    Zakres i liczby dziesiętne dla prawdziwych typów

    Zasięg

    Liczby

    2.9x10e-39 do 1,7x10e 38

    1.5x10e-45 do 3.4x10e 38

    5.0x10e-324 do 1.7x10e 308

    3.4x10e-493 do 1.1x10e 403

    2e 63 do 2e 63

    Operacje wykonywane powyżej numerów rzeczywistych:

    • Wszystkie operacje dopuszczalne dla liczb całkowitych.
    • SQRT (X) -Korn Square spośród X.
    • SIN (X), COS (X), Arctan (X).
    • Ln (x) ztoczony logarytm.
    • Exp (x) -Exponent x (e x).
    • Exp (x * ln (a)) - rzuć (A X).
    • Funkcje konwersji typu:
      • TRUNC (X) jest częścią frakcyjną;
      • Okrągły (x) -crug.
    • Niektóre zasady działalności arytmetycznej:
      • Jeśli w akcji arytmetycznej znajdują się liczby rzeczywistych rzeczywistych i liczb całkowitych, wynik będzie miała rodzaj rzeczywistości.
      • Wszystkie elementy ekspresji są rejestrowane w jednej linii.
      • Używane są tylko okrągłe wsporniki.
      • Niemożliwe jest umieszczenie dwóch znaków arytmetycznych z rzędu.

    Opisuje zmienne typu rzeczywistego w następujący sposób:

    Var Lista zmiennych: Typ;

    Na przykład:

    Var d, g, k: real;

    Typ symbolu (Char)

    K Char należy do dowolnego symbolu zamkniętego w apostrofach. Aby reprezentować apostrof jako zmienną symboliczną, konieczne jest zakończenie go do apostrof: "'' '.

    Każdy symbol ma swój własny kod i numer. Numery sekwencji liczb 0,1..9 są uporządkowane rosnące. Numery sekwencji liter jest również zamówiony rosnąco, ale niekoniecznie podążaj za sobą.

    Dane symboliczne obowiązujące znaki porównawcze:

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

    Na przykład: "A"< ‘W’

    Funkcje, które dotyczą zmiennych symbolicznych:

    1. Ord (x) - Określa numer sekwencji symbolu X. ORD ("A") \u003d 97;
    2. CHR (X) - określa numer według numeru. chr (97) \u003d 'a';
    3. Pred (X) - daje symbolem skierowanym do symbolu X. Pred ("B ') \u003d' A '';
    4. SUKC (X) - Problemy z symbolem następnego po symbolu X. SUKC ("A ') \u003d' b ';

    Typ wymieniony

    Wymieniony typ danych jest nazwany, ponieważ jest ustawiony w postaci przenoszenia stałych w ściśle określonej kolejności iw ściśle określonej ilości. Wymieniony typ składa się z listy stałych. Zmienne tego typu mogą dokonać wartości dowolnej z tych stałych. Opis aktualnego typu ma formularz:

    Rodzaj<имя типа>\u003d (lista stałych); Var.<имя переменной>:<имя типа>;

    gdzie<список констант> - Jest to szczególny rodzaj stałych zdefiniowanych przez przecinek i posiadający własny numer seryjny, począwszy od 0.

    Na przykład:

    Kierunek typu \u003d (północ, południe, zachód, wschód); miesiąc \u003d (czerwiec, lipiec, sierpień, styczeń); Pojemność \u003d (wiadro, lufa, kanister, zbiornik); Var Turn: kierunek; Wyjazd: Mon; Objętość: pojemność; Var Turn: (SPE, South, West, East); Wyjazd: (czerwiec, lipiec, sierpień, styczeń); Objętość: (wiadro, lufa, kanister, zbiornik);

    Możesz wykonać takie operatory przypisywania:

    Obrót: \u003d południe; Wyjazd: \u003d sierpień; Objętość: \u003d zbiornik;

    ale niemożliwe jest wykonywanie mieszanych zadań:

    Wyjazd: \u003d Południe; Głośność: \u003d sierpień;

    Następujące funkcje są stosowane do zmiennych typu wymienionego:

    1. Numer sekwencji

    2. PEN - poprzedni element

    3. SUKC jest kolejnym elementem.

    Pred (baryłka) \u003d wiadro; Succ (południe) \u003d na zachód; Ord (lipiec) \u003d 1;

    Można porównać zmienne listy, ponieważ są one zamówione i ponumerowane. Więc wyrażenia: północ< юг, июнь < январь имеют значения TRUE, а юг>zachód i Buck.<бочка значение FАLSE.

    Typ ograniczony

    Jeśli zmienna nie akceptuje wszystkich wartości jego typu, ale tylko w pewnym zakresie, można go uznać za zmienną typu ograniczonego. Każdy ograniczony typ jest ustawiony przez nakładanie ograniczeń na podstawowe typy.

    Opisuje takie:

    Rodzaj<имя типа>\u003d Constant1 .. Constanta2.

    Jednocześnie należy przestrzegać następujących zasad:

    1. Oba ograniczone stałe powinny być jednym typem.
    2. Jako typ podstawowy możesz użyć dowolnego prostego typu innego niż ważne (prawdziwe).
    3. Wartość początkowa przy określaniu ograniczonego rodzaju nie powinna być większa niż końcowa wartość.
    wpisz index \u003d 0.63; Litera \u003d "a" .. "z"; Var char1, char2: litera; A, G: Indeks;

    Można opisać natychmiast w opisach zmiennych:

    Var a, g: 0.63; Char1, Char2: "A" .. 'Z'.

    Których wiele wartości jest ograniczona lista identyfikatorów.

    Encyklopedyczna YouTube.

    • 1 / 5

      Wymieniony typ jest zdefiniowany jako zestaw identyfikatorów, z punktu widzenia języka odtwarzania tej samej roli, co zwykły wymienione stałe, ale związane z tym typem. Klasyczny opis listy typu w języku Pascal wygląda tak:

      typ Cardsuit \u003d (kluby, diamenty, serca, pik);

      Oto typ danych Contait Cardsuit (garnitur kart), który może być dowolnym z czterech stałych wymienionych. Zmienna typu Carduuit może przyjmować jedną z wartości klubów, diamentów, serc, pik, może porównać wartości rodzaju wyliczenia do równości lub nierówności, a także przy użyciu ich w operatorach selekcji (w Pascal - Case ) jako wartości identyfikujące opcje.

      Korzystanie z wyliczeń umożliwia wykonanie kodów programu źródłowego bardziej czytelny, ponieważ pozwalają na wymianę "Magic Numery" kodujących pewne wartości, aby odczytać nazwy.

      Na podstawie wyliczeń w niektórych językach można utworzyć zestawy zestawów. W takich przypadkach zestaw jest rozumiany (i opisany) jako nieuporządkowany zestaw unikalnych wartości wyliczania typu.

      Rodzaj typu może być stosowany w deklaracjach zmiennych i formalnych parametrów funkcji (procedury, metody). Wartości listy można przypisać do odpowiednich zmiennych i przesyłanych przez parametry odpowiednich typów w funkcji. Ponadto zawsze wspierany jest porównanie wartości wymienionych na równości i nierówności. Niektóre języki wspierają również inne operacje porównawcze dla wartości typów notowanych. Wynik porównania dwóch wymienionych wartości w takich przypadkach jest określony, z reguły, procedura następujących wartości w deklaracji typów - wartość, która w reklamie typu jest oceniana wcześniej, uważa się za " mniej "wartość występująca później. Czasami wpisany typ lub jakiś zakres wartości typów wymienionych może być również używany jako typ indeksu dla tablicy. W tym przypadku, dla każdej wartości wybranego zakresu w tablicy znajduje się jeden element, a rzeczywista kolejność elementów odpowiada kolejności wartości w reklamie typu.

      Sprzedaż

      Zwykle w procesie kompilowania wartości wartości transferu są prezentowane za pomocą liczb całkowitych. W zależności od konkretnego języka programowania, taka reprezentacja może być całkowicie ukryta z programatora, albo dostępna do niego przy użyciu pewnych "manewrów obejściowych" (na przykład wymuszona transformacja typu wartości transferowej do wartości typu "Integer" ), a nawet zarządzany przez programista (w takich przypadkach programista ma możliwość wyraźnego wskazania, które liczby wszystkie lub niektóre wartości typu transferu zostaną zakodowane). Wszystkie opcje mają własne pozytywne i negatywne strony. Z jednej strony, możliwość wykorzystania wartości numerycznych stałych stanowiących wyliczanie typu, zwłaszcza podczas nadużywania go, pozbawia wykorzystanie tych typów i stwarza ryzyko błędów (gdy wartości numeryczne są używane, dla których Nie ma odpowiednich stałych w rodzaju). Z drugiej strony wyraźne sterowanie wartościami daje dodatkowe funkcje. Na przykład umożliwia korzystanie z listy typu podczas organizowania interfejsu z modułami napisanymi w innych językach, jeśli używają lub zwrócone do wartości zakodowanych przez liczby całkowite z pewnego predefiniowanego zestawu.

      Kolejna możliwość, że typy wymienione są podane na poziomie implementacji językowej - oszczędności pamięci. Z małym typem listy typu, aby przechowywać wartość tego typu, wystarczające są kilka bitów (powyższy typ Carduit wymaga tylko dwóch bitów do wartości, a standardowa liczba całkowita w większości używanych architektów zajmuje 32 bitów - 16 razy więcej ), a kompilator może korzystać z tego faktu, jest przeznaczenie przechowywania danych w pamięci. Może być szczególnie ważne, jeżeli kilka wartości wykazów typu jest przechowywane w jednym rekordzie - rekordy uszczelniające podczas przetwarzania dużych ilości może zwolnić dużo pamięci. To prawda, że \u200b\u200bnależy zauważyć, że kompilatory zazwyczaj nie wdrażają tej okazji, przynajmniej ostatnio, gdy pamięć komputera znacznie spadła.

      Krytyka

      Rodzaj wyliczenia jest tradycyjny dla opracowanych języków programowania, jest używany dość szeroko i jest często postrzegany jako coś z pewnością. Jednak ten typ nie robi również bez krytyki ze strony teoretyków i praktyków programowania. Tak więc, gdy opracowując język programowania, Oberon, wpisane typy spadły do \u200b\u200blisty funkcji usuniętych z języka. Niklaus Wirth, deweloper języka, zwany następującymi powodów:

      Z drugiej strony, na przykład, w Javie, pierwotnie zawierającym typ wymienionym, ten typ został następnie wprowadzony z powodów nie tylko wygodę, ale także niezawodność: problem zastosowania zamiast listy grup o wymienionych stałych jest to, że nie ma kontroli Od kompilatora jako wyjątkowość stałych wartości i możliwość przypadkowego przypisania wartości zmiennych, które nie odpowiadają żadnej z tych stałych.

      Opis wyliczeń w różnych językach

      Iskierki (kluby, diamenty, serca, pik);

      Dynamiczne języki słabego wpisywania składni C-podobną (na przykład, Perl lub JavaScript), z reguły, nie mają wyliczeń.

    Dzwon.

    Są ci, którzy przeczytali tę wiadomość przed tobą.
    Subskrybuj odbieranie artykułów świeżych.
    E-mail
    Nazwa
    Nazwisko
    Jak chcesz przeczytać dzwonek
    Bez spamu