DZWONEK

Są tacy, którzy czytają te wiadomości przed tobą.
Subskrybuj, aby otrzymywać świeże artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać Dzwon
Bez spamu

Typy strukturalne charakteryzują się mnogością elementów tworzących ten typ elementu, tj. mieć kilka składników. Każdy element z kolei może należeć do typu strukturalnego, tj. zagnieżdżanie typów jest dozwolone.

Tablice reprezentują formalne połączenie kilku obiektów tego samego typu (liczby, znaki, ciągi itp.), traktowane jako jedna całość. Wszystkie elementy tablicy są danymi tego samego typu.

Ogólny widok definicji tablicy:

Typ A \u003d tablica [typ indeksu tablic] z [typ elementu tablicy]

Na przykład M1 \u003d tablica rzeczywistych;

LinieJest tablicą znaków, ale liczba znaków w ciągu może się różnić. Ciąg jest traktowany jako ciąg znaków o dowolnej długości. Maksymalna liczba znaków wynosi nie więcej niż 255. Każdy znak w ciągu ma swój własny indeks (liczbę).

Rekord Jest strukturą danych składającą się ze stałej liczby składników zwanych polami rekordów. W przeciwieństwie do tablicy, komponentami rejestrującymi (polami) mogą być różne rodzaje. Rekordy pozwalają łączyć wartości różnych typów.

Miesiąc: (styczeń, luty, marzec, kwiecień, maj, czerwiec, lipiec, sierpień, wrzesień, październik, listopad, grudzień);

Rok: 2000..2050;

Wiele - Są to zestawy obiektów tego samego typu, logicznie połączone ze sobą. Liczba elementów zawartych w zestawie może wynosić od 0 do 256. To właśnie niespójność ich elementów różni się od tablic i rekordów.

Cyfry \u003d zbiór 1..5;

Plik - nazwany obszar pamięć zewnętrzna. Plik zawiera komponenty tego samego typu, z wyjątkiem plików (tzn. Nie można utworzyć „pliku plików”). Długość pliku nie jest określona i jest ograniczona tylko pojemnością zewnętrznych urządzeń pamięci.

F: Plik liczby całkowitej;

Bardziej szczegółowo poznamy typy strukturalne podczas dalszej nauki języka.

      1. Wskaźnik (typ odniesienia)

Zawiera adres bajtu pamięci, w którym znajduje się wartość danych określonego typu. Ten typ jest również nazywany referencyjnym. W opisie zastosowano znak ^ i identyfikator typu. Na przykład P \u003d ^ liczba całkowita;

Korzystanie ze wskaźników jest elastycznym sposobem zarządzania pamięcią dynamiczną i zapewnia możliwość przetwarzania dużych ilości tablic danych.

    1. Stałe

Stały wywołują wartość, której wartość nie zmienia się podczas wykonywania programu.

    Numerycznestałe są używane do zapisywania liczb. Wyróżnia się następujące typy:

Cały liczby: są zapisywane ze znakiem + lub - lub niepodpisane, zgodnie ze zwykłymi regułami arytmetycznymi: -10 +5 5

Real liczby można zapisać w jednej z dwóch form:

regularne nagrywanie : 2,5 -3,14 2. - zwróć uwagę, że część całkowita jest oddzielona od ułamkowego symbolu punktu;

wykładniczy forma: w tym rekordzie liczba rzeczywista jest reprezentowana jako m * 10 p, gdzie m jest mantysa lub podstawa liczby, 0,1 ≤ | m | ≤1, p - zamówienie liczby, jest to stała całkowita. Rzeczywiście, każda liczba rzeczywista może być reprezentowana w postaci wykładniczej:

153.5 -0.1535*10 3

99.005 0.99005*10 2

Na wszystkich komputerach kompatybilnych z IBM liczby rzeczywiste są przechowywane jako kombinacja mantysy i porządku, co umożliwia uproszczenie operacji na nich przy użyciu specjalnej arytmetyki, która przetwarza mantysę i porządek osobno. Aby programowo zapisać liczbę w postaci wykładniczej, zamiast „pomnożyć przez 10 do potęgi”, notacja mi lub mi (łacina):

153,5 -0,1535 * 10 3 -0,1535E3 lub -1,535E02

99,005 0,99005 * 10 2 0,99005E + 2 lub 9,9005e + 01

Bez specjalnych środków program w Pascal wyświetli liczby rzeczywiste w postaci na ekranie i drukarce. Ponadto ten formularz jest wygodny do pisania bardzo małych i bardzo dużych liczb:

Ponieważ rozmiar pamięci przydzielonej do mantysy i kolejność jest ograniczona, więc liczby rzeczywiste są zawsze przedstawiane w pamięci komputera z pewnym błędem. Na przykład najprostsza rzeczywista część 2/3 daje w postaci dziesiętnej 0,666666 ... i niezależnie od wielkości pamięci przydzielonej do przechowywania liczby, nie można zapisać wszystko jego znaki w części ułamkowej. Jednym z typowych problemów programistycznych jest uwzględnianie możliwych błędów podczas pracy z liczbami rzeczywistymi.

Liczby szesnastkowe to cyfry szesnastkowe poprzedzone znakiem $. Zakres liczb szesnastkowych wynosi od 00000000 $ do FFFFFFFF.

Oprócz stałych numerycznych istnieją inne ich typy:

    łamigłówka stałe.

Służy do weryfikacji prawdziwości lub fałszerstwa określonych warunków w programie i może tylko zaakceptować jedno z dwóch znaczeń: słowo serwisowe prawdziwe oznacza prawdę i fałszywe - leżenie;

    Postać stałe.

Mogą przyjmować wartość dowolnego drukowanego znaku i są zapisywane jako znak zamknięty apostrofy ("pojedyncze cytaty"):

W tym drugim przypadku wartość stałej znaku jest równa znakowi spacji. Jeśli chcesz zapisać sam symbol apostrofu jako stałą symboliczną, podwaja się on w zewnętrznych apostrofach: „” „”

Symbole zawierają również stałe postaci #X, gdzie X jest wartością liczbową od 0 do 255 włącznie, co jest liczbą dziesiętną Ascii-kod postać. Tabele kodów ASCII używanych przez systemy operacyjne DOS i Windows podano w dodatku 1. Na przykład wartość # 65 będzie odpowiadać łacińskiemu kodowi znaków „A”.

    Strunowy stałe.

Są to dowolne sekwencje znaków ujęte w apostrofy. Z reguły stałe ciągów służą do rejestrowania monitów o wprowadzenie danych wydanych przez program, wysyłanie komunikatów diagnostycznych itp .:

„Wprowadź wartość X:”

Jeśli chcesz zapisać sam symbol apostrofu jako stałą łańcuchową, dzieje się to tak samo, jak w przypadku stałych symbolicznych.

Stałe w Turbo Pascal można nazwać. Anonimowy stałe są używane na przykład podczas wyświetlania tekstu wiadomości w poprzednim przykładzie. Nazwane stałe są opisane w sekcji opisu programu przez operatora następującej postaci:

const Nazwa1 \u003d Wartość1;

Nazwa2 \u003d Wartość2;

NazwaN \u003d wartośćN;

Tutaj słowo kluczowe const pokazuje początek sekcji opisów nazwanych stałych. Oczywiste jest, że często wygodniej jest uzyskać stałą za pomocą nazwy niż za każdym razem przepisywać jej wartość liczbową lub łańcuchową. Przykładowa sekcja stałych:

const e \u003d 2,7182818285;

lang \u003d „Turbo Pascal 7.1”;

Tutaj opisujemy stałą liczbową ez wartością podstawową logarytmu naturalnego oraz stałą łańcucha o nazwie lang zawierającej łańcuch „Turbo Pascal 7.1”.

Każda nazwa nadana przez programistę musi być wyjątkowy w ramach jednego programu. Jeśli uwzględnimy tę sekcję w naszym programie, nie będziemy już mogli tworzyć w niej innych obiektów o nazwach ei lang.

dyskretny algorytm programowania

Prawdziwe dane przetwarzane przez program to liczby całkowite i liczby rzeczywiste, symbole i wielkości logiczne. Te proste typy danych są nazywane podstawowy. Wszystkie dane przetwarzane przez komputer są przechowywane w komórkach pamięci komputera, z których każda ma własny adres. Aby nie monitorować, pod jakim adresem zostaną zapisane określone dane, w językach programowania stosowana jest koncepcja zmiennej , umożliwiając odwrócenie uwagi od adresu komórki pamięci i dostęp do niej za pomocą nazwy ( identyfikator).

Zmienna - istnieje nazwany obiekt (komórka pamięci), który może zmienić swoją wartość. Imię zmienna wskazuje na wartość, a sposób przechowywania i adres pozostają ukryte przed programistą. Oprócz nazwy i wartości zmienna ma typ, określanie, jakie informacje są w pamięci. Typ zestawy zmiennych:

  • * Zastosowana metoda zapisu informacji w komórkach pamięci;
  • * Wymagana ilość pamięci do przechowywania.

Ilość pamięci dla każdego typu jest określana, aby mogła zmieścić dowolną wartość z dopuszczalnego zakresu wartości tego typu. Na przykład typ „bajtowy” może przyjmować wartości od 0 do 255, co w kodzie binarnym (255 \u003d 11111111 2) odpowiada komórce pamięci o długości 8 bitów (lub 1 bajt).

W opisanych wyżej algorytmach wszystkie dane są przechowywane jako zmienne. Na przykład instrukcja „Wprowadź dwie liczby i, b " oznacza, że \u200b\u200bużytkownik wprowadza wartości dwóch zmiennych, a instrukcja „K \u003d K + 1” oznacza wzrost wartości zmiennej K o jedną.

Jeśli zmienne są obecne w programie, przez cały czas jego działania są wywoływane statyczny. Nazywa się zmienne tworzone i niszczone na różnych etapach wykonywania programu dynamiczny.

Wywoływane są wszystkie inne dane w programie, których wartości nie zmieniają się podczas jego działania stałe lub stały. Stałe, podobnie jak zmienne, są typu. Można je jednoznacznie wskazać, na przykład w instrukcji „K \u003d K + 1” 1 istnieje stała, lub dla wygody można ją oznaczyć identyfikatorami: liczba Pi = 3,1415926536. Tylko wartość liczba Pi nie można go zmienić, ponieważ jest stałą, a nie zmienną.

Aby zwiększyć wydajność i jakość pracy, dane muszą znajdować się jak najbliżej rzeczywistych odpowiedników. Nazywa się typ danych, który pozwala przechowywać razem wiele zmiennych pod tą samą nazwą zbudowany. Każdy język programowania ma swoje własne typy strukturalne. Rozważ strukturę, która łączy elementy jednego typu danych - tablicy .

Tablica zwany uporządkowanym zbiorem tego samego rodzaju ilości o wspólnej nazwie, których elementy są adresowane (wyróżniane) za pomocą numerów seryjnych (indeksów). Jako przykład możesz sobie wyobrazić szafkę zawierającą wiele ponumerowanych pudełek (kombinacja to „Pudełko nr 1”, „Pudełko nr 2”, „Pudełko nr 3” itd.; „Pudełko” to wspólna nazwa wszystkich jego elementów). Dostęp do zawartości określonego pola (elementu tablicy) odbywa się po wybraniu pola według jego numeru (indeksu). Elementy tablicy w pamięci komputera są przechowywane w sąsiedztwie, pojedyncze elementy prostego typu nie implikują takiego układu danych w pamięci. Tablice różnią się liczbą wskaźników określających ich elementy.

Tablica jednowymiarowa (szafka skrzynek w jednym rzędzie) zakłada, że \u200b\u200bkażdy element ma tylko jeden indeks. Przykładami tablic jednowymiarowych są ciągi arytmetyczne i geometryczne określające skończone rzędy liczb. Wywoływana jest liczba elementów tablicy wymiar. Podczas definiowania tablicy jednowymiarowej jej wymiar jest zapisywany w nawiasach obok jego nazwy. Na przykład, jeśli powie: „określono tablicę A (10)”, oznacza to, że podane są elementy: i r i 2 ,…, za ig . Rozważmy algorytmy przetwarzania elementów jednowymiarowych tablic.

Wprowadzanie elementów tablicy jednowymiarowej odbywa się elementarnie, w kolejności niezbędnej do rozwiązania określonego problemu. Zwykle, gdy chcesz wprowadzić całą tablicę, kolejność wprowadzania elementów nie jest ważna, a elementy są wprowadzane w kolejności rosnącej ich indeksów.

Metoda algorytmów strukturalnych jest jedną z metod systemowych do opracowywania algorytmów. Opiera się na wizualnej reprezentacji algorytmów w postaci sekwencji kontrolnych fragmentów strukturalnych.

Każdy algorytm składa się z elementarnych kroków, które można łączyć w określone konstrukcje algorytmiczne: liniowy (sekwencyjny) rozgałęzienie , cykliczny .

Definicja 1

Liniowy projekt algorytmu nazywa się realizacją sekwencji działań (kroków), a każda akcja (krok) jest wykonywana tylko 1 raz, po każdej akcji (kroku) akcja (krok) jest zwiększana o 1, aż wartość stanie się większa niż końcowy parametr algorytmu .

Przy użyciu algorytmów liniowych reprezentowane są procesy liniowe. Algorytmy tego typu są stosowane w opisie uogólnionego rozwiązania problemów w postaci sekwencji modułów.

Definicja 2

Rozgałęzienie (rozgałęzienie) nazywają projekt algorytmiczny, który zapewnia wybór między 2 rozwiązaniami w zależności od wartości danych wejściowych.

Oddziały są dwojakiego rodzaju: niekompletny (jeśli coś) i kompletny (jeśli inaczej) Korzystając z pełnego rozgałęzienia, możesz zorganizować 2 gałęzie w algorytmie ( następnie lub inaczej), z których każdy doprowadzi do wspólnego punktu połączenia, algorytm zostanie wykonany niezależnie od tego, w którą stronę poszło rozwiązanie. W przypadku niepełnego rozgałęzienia zakłada się niektóre działania algorytmu tylko na jednym odgałęzieniu ( następnie), ponieważ nie ma drugiego, dla jednego z wyników sprawdzenia działania nie ma potrzeby wykonywania, kontrola natychmiast przejdzie do punktu scalenia. Istnieją 4 podstawowe opcje struktury gałęzi:

  1. Niekompletny typ rozgałęzienia "Jeśli następnie », W których wszystkie działania będą prawdziwymi warunkami.
  2. Rozgałęzienie typu pełnego „Jeśli - to - inaczej” przy których zostaną wykonane 2 czynności w zależności od prawdziwości warunku.
  3. Wpisz rozgałęzienie "Że" w ramach którego działanie 1 zostanie wykonane w warunkach 1, działanie 2 w warunkach 2 itd.
  4. Wpisz rozgałęzienie "Inaczej" w których pod warunkiem 1 zostanie wykonana akcja 1, pod warunkiem 2, akcja 2 itd., w przeciwnym razie zostaną wykonane wszystkie inne akcje.

Poniżej przedstawiono schematy działania algorytmów rozgałęziających.

Definicja 3

Cykliczne (lub cykliczne) Wywoływana jest konstrukcja algorytmu, w której pewna grupa kolejnych działań (kroków) jest wykonywana kilka razy, w zależności od warunków problemu i danych wejściowych.

Definicja 4

Ta grupa powtarzających się czynności na każdym etapie cyklu jest nazywana cykl ciała .

Każda struktura cykliczna zawiera elementy rozgałęzionej struktury algorytmu.

Istnieją 3 rodzaje algorytmów cyklicznych:

  • cykl z parametrem (cykl arytmetyczny);
  • cykl wstępny;
  • cykl z warunkiem dodatkowym (dwa ostatnie nazywane są iteracyjnymi).

Cykl arytmetyczny

W cyklu tego typu liczba kroków jest jednoznacznie określona przez regułę zmiany parametru, określoną za pomocą jego wartości początkowej i końcowej, a także krok zmiany. Oznacza to, że na każdym etapie cyklu wartość parametru zmienia się zgodnie z krokiem cyklu, aż osiągnie wartość równą końcowej wartości parametru.

Warunek wstępny

W tym cyklu liczba kroków nie jest ustalana z góry; zależy to od danych wejściowych. W tej strukturze cyklicznej najpierw sprawdzana jest wartość wyrażenia warunkowego (warunek) przed następnym krokiem cyklu. Przy prawdziwej wartości wyrażenia warunkowego zostanie wykonane ciało pętli. Następnie ponownie zostanie wykonana kontrola stanu. Działania te będą powtarzane, aż wartość wyrażenia warunkowego stanie się fałszywa, a następnie cykl się zakończy.

Cechą tego rodzaju cyklu jest to, że przy początkowym fałszu wartości wyrażenia warunkowego, ciało cyklu w ogóle nie zostanie wykonane.

Pętla Postcondition

W tej cyklicznej konstrukcji, podobnie jak w poprzedniej, liczba powtórzeń korpusu cyklu nie jest ustalana z góry, będzie zależeć od parametrów wejściowych. Charakterystyczną cechą cyklu z warunkiem wstępnym jest to, że bryła cyklu z warunkiem dodatkowym w każdym przypadku zostanie wykonana co najmniej 1 raz, a dopiero potem warunek zostanie sprawdzony. W tej konstrukcji ciało pętli jest wykonywane, dopóki wartość wyrażenia warunkowego nie będzie fałszywa. Gdy tylko stanie się to prawdą, wykonywanie poleceń zostanie zatrzymane.

W rzeczywistych zadaniach z reguły występuje dowolna liczba cykli.

Poniżej przedstawiono schematy algorytmów cyklicznych.

Typy danych: proste i uporządkowane

Rzeczywiste dane przetwarzane przez program obejmują liczby całkowite i liczby rzeczywiste, wielkości logiczne i symbole. Należą one do prostych typów danych i nazywane są podstawowymi. Wszystkie dane przetwarzane przez komputer są przechowywane w jego komórkach pamięci, z których każda ma własny adres. W językach programowania istnieją zmienne, które pozwalają nie zwracać uwagi na adresy komórek pamięci i uzyskiwać do nich dostęp za pomocą nazwy (identyfikatora).

Definicja 5

Zmienna reprezentuje nazwany obiekt (komórkę pamięci), który zmienia swoją wartość.

Nazwa zmiennej wskazuje wartość, a adres i metoda przechowywania pozostają ukryte przed programistą. Oprócz nazwy i wartości zmienne mają swój własny typ, który pomaga określić, jaki typ informacji znajduje się w pamięci.

Typ zmiennej jest ustawiany:

  • zastosowana metoda rejestrowania informacji w komórkach pamięci;
  • niezbędna ilość pamięci do jej przechowywania.

Dla każdego typu określa się ilość pamięci, aby mogła zmieścić dowolną wartość z dopuszczalnego zakresu wartości dla tego typu.

Definicja 6

Wywoływane są zmienne obecne w programie przez cały okres jego pracy statyczny .

Definicja 7

Wywoływane są zmienne tworzone i niszczone na różnych etapach wykonywania programu dynamiczny Definicja 10

Tablica nazywają uporządkowaną kolekcję tego samego rodzaju ilości, które mają wspólną nazwę, numery seryjne elementów (indeksów).

Elementy tablicy są przechowywane w pamięci komputera w sąsiedztwie, w przeciwieństwie do pojedynczych elementów. Tablice różnią się liczbą wskaźników elementów.

Tablica jednowymiarowa charakteryzuje się obecnością tylko jednego indeksu dla każdego elementu. Przykładami tablic jednowymiarowych są ciągi geometryczne i arytmetyczne, które definiują skończone rzędy liczb.

Definicja 11

Wywoływana jest liczba elementów tablicy wymiar .

W jednowymiarowej tablicy jej wymiar jest zapisany obok nazwy w nawiasach.

Elementy jednowymiarowej tablicy są wprowadzane elementarnie, w kolejności niezbędnej do rozwiązania określonego problemu. Jeśli musisz wprowadzić całą tablicę, elementy są wprowadzane w porządku rosnącym indeksu.

Rozdział 6. STRUKTUROWANY
RODZAJE DANYCH Ustrukturyzowane typy danych definiują zestawy podobnych lub heterogenicznych składników. Typy komponentów są tworzone z innych typów danych (proste, uporządkowane, wskaźniki itp.). W Pascal istnieją następujące typy strukturalne: - typ tablicowy; - typ rekordu; - zestaw typów; - Typ pliku. W Turbo Pascal Istnieją jeszcze dwa typy strukturalne: - ciąg znaków typu ciąg i - PChar typu ciąg znaków, które są odmianami tablicy. W przyszłości obiekty typu strukturalnego dla zwięzłości będą nazywane tymi samymi nazwami co ich typy, bez określania słowa „typ”: tablica, rekord, zestaw, plik, łańcuch. Istnieją standardowe i rozpakowane typy strukturalne w standardzie językowym. W Turbo Pascal słowo spakowane, które charakteryzuje typ spakowany, nie ma żadnego wpływu; jeśli to możliwe, dane są pakowane automatycznie. 6.1 Tablica Typ tablicy to stała liczba uporządkowanych komponentów tego samego typu z indeksami. Może być jednowymiarowy i wielowymiarowy. Aby określić typ tablicy, używana jest zarezerwowana tablica słów, po której następuje typ indeksu (indeksów) komponentu (w nawiasy kwadratowe) i dalej po słowie - typ samych elementów: typ<имя типа> \u003d tablica [<тип индекса(индексов)>] z<тип компонент>; Przykład. typ Arr \u003d tablica Real; (typ tablicy 3 liczb rzeczywistych) Matryca \u003d tablica liczb całkowitych; (typ - tablica dwuwymiarowa liczby całkowite, składające się z 3 wierszy i 2 kolumn) Wprowadzając typ tablicy, możesz następnie określić zmienne lub stałe tekstowe tego typu. Wymiar tablicy może być dowolny, komponenty tablicy mogą być dowolnego typu, w tym typu strukturalnego, indeksy mogą być dowolnego typu porządkowego, z wyjątkiem typu Longint. Podczas określania wartości stałej tablicowej komponenty są wskazane w nawiasach i oddzielone przecinkami, a jeśli tablica jest wielowymiarowa, nawiasy zewnętrzne odpowiadają lewemu indeksowi, nawiasy w nich zawarte odpowiadają następnemu indeksowi itp. Tak więc, dla typów wprowadzonych powyżej, można określić na przykład następujące zmienne i stałe: var Ml, M2: Arr; Matr: Matrix; const M3: Arr \u003d (1, 2, 3); Mat: Matrix \u003d ((1, 2), (3, 4), (5, 6)); Ostatnia stała odpowiada następującej strukturze: 1 2 3 4 5 6 Uwaga. Typ tablicy można również wprowadzić bezpośrednio podczas definiowania odpowiednich zmiennych lub stałych wpisanych. Na przykład: var Ml, M2: tablica wartości rzeczywistej; Matr: tablica liczb całkowitych; Tablice są zdefiniowane tutaj jak w poprzednim przykładzie. Przy takiej deklaracji tablic należy pamiętać, że ich typy nie będą identyczne z innymi typami, nawet jeśli mają taką samą strukturę. Dlatego nie można przekazać ich jako parametrów do podprogramu (patrz rozdział 10.3), nie można również przypisać im wartości innych tablic (i odwrotnie), nawet jeśli ich struktury się pokrywają. Dostęp do komponentów tablicy odbywa się poprzez określenie nazwy tablicy, a następnie wartości indeksu (-ów) komponentu w nawiasach kwadratowych. W ogólnym przypadku każdy indeks elementu można zdefiniować za pomocą wyrażenia odpowiedniego typu, na przykład: M1, Matrix, M2 itp. Do jednej tablicy można przypisać wartość innej tablicy, ale tylko tego samego typu. Tak więc, jeśli podano następujące tablice: var A, B: tablica liczb całkowitych; C: tablica liczb całkowitych; następnie załóżmy, że następujący operator: A: \u003d B; Z drugiej strony operator C: \u003d A; niedopuszczalne, ponieważ tablice A i C nie są identycznymi typami. Istnieją pewne różnice w pracy z jednowymiarowymi tablicami znaków (nie mylić z wartościami typu ciągu - patrz punkt 6.2). Tak więc wpisanym stałemu tego rodzaju można przypisać wartość jak zwykłe stałe ciągowe poprzez określenie ciągu znaków w apostrofach, na przykład const A: tablica Char \u003d "aaaaa"; B: tablica Char \u003d "bbb"; W przypadku takich tablic, a także ciągów znaków, można użyć operacji porównania (nawet jeśli nie są one identyczne, a nawet jeśli mają różne rozmiary) i konkatenacji (zjednoczenie) - patrz Sekcja 6.2. Można ich używać w instrukcjach wyjściowych Write i WriteLn. Na przykład, dla tablic wprowadzonych powyżej, możesz pisać, jeśli A\u003e B, a następnie WriteLn (A) else WriteLn (B); 6.2 Ciąg typu ciąg W Turbo Pascal ciąg typu (standardowy typ ciągu) jest ciągiem znaków o dowolnej długości (do 255 znaków). Ciąg może być traktowany jako tablica znaków, jednak ze względu na szerokie zastosowanie ciągów i niektóre funkcje w porównaniu do standardowych tablic, są one przypisywane do osobnego typu danych. Typ ciągu w nawiasach kwadratowych może wskazywać na jego rozmiar (od 1 do 255). Jeśli rozmiar ciągu nie jest określony, jest uważany za równy 255, na przykład: var Str: string; MaxStr: string; (ciąg 255 znaków) const styczeń: ciąg \u003d "styczeń"; Operacje konkatenacji (+) i porównania mają zastosowanie do łańcuchów. Operacja konkatenacji dodaje sekundę do pierwszego wiersza. Przykład. Połącz dwie linie. Str, Strl, Str2: string; begin Strl: \u003d "Turbo"; Str2: \u003d „Pascal”; Str: \u003d Strl + Str2; (w zmiennej Str - „Turbo Pascal”) koniec. Możesz porównać ciągi o różnych długościach. Porównanie odbywa się od lewej do prawej zgodnie z kodami ASCII odpowiednich znaków. Uważa się, że brakujące znaki w krótszej linii mają kod mniejszy niż kod dowolnego poprawnego znaku. Na przykład „XS” jest większy niż „X”. Przykład. Sprawdź, czy wprowadzony zestaw znaków to nazwa miesiąca w języku rosyjskim. program PRZYKŁAD 11; const Instancja: tablica ciągu! 10] \u003d („STYCZEŃ”, „LUTY”, „MARZEC”, „KWIECIEŃ”, „MAJ”, „CZERWIEC”, „LIPIEC”, „SIERPIEŃ”, „WRZESIEŃ”, „PAŹDZIERNIK” , "LISTOPAD GRUDZIEŃ"); Month: Boolean \u003d False; var Str: string; i: Liczba całkowita; rozpocząć Writeln („Wprowadź wielkie litery:”); ReadLn (Str); dla i: \u003d 1 do 12 zrobić, jeśli Str \u003d Instancja [i], a następnie Month: \u003d True; jeśli Miesiąc to WriteLn („Wpisano nazwę miesiąca”), w przeciwnym razie WriteLn („Nie wprowadzono nazwy miesiąca”). W rzeczywistości ciąg N znaków jest tablicą N + 1 znaków: ciąg [N] \u003d arrau Char. Znak null jest używany do wskazania liczby znaków użytych w ciągu i może różnić się od znaku o kodzie 0 do znaku o kodzie N. Możesz pracować z nim jak resztą znaków w ciągu (pisz i czytaj jego wartość itp.), Ale nie zapominaj o jego główny cel. 6.3 Ciąg ASCIIZ W wersji 7.0, w celu zapewnienia zgodności z innymi językami programowania i środowiskiem Windows, wprowadzono inny typ ciągu - ciągi kończące się bajtem zerowym - znak o kodzie 0 (tak zwane ciągi ASCIIZ). W przeciwieństwie do łańcuchów typu string, łańcuchy te nie nakładają ograniczenia na ich rozmiar (w rzeczywistości rozmiar może wynosić do 65535 bajtów). Linie te mają standardowy typ PChar. W rzeczywistości ten typ jest wskaźnikiem do znaku (wskazówki, patrz akapit 7): PChar \u003d ^ Char; Jednak użycie rozszerzonej składni (klawisz (X +) - patrz p. 17.7.1) pozwala na użycie zmiennej, takiej jak łańcuch równoważny tablicy typu pChar \u003d tablica Char, gdzie K jest liczbą znaków w ciągu, nie licząc znaku kończącego o kodzie 0 W przeciwieństwie do typu ciągu znak o indeksie 0 jest pierwszym znakiem ciągu, a ostatni znak o indeksie K jest ostatnim znakiem o kodzie 0. Podczas pracy z ciągami ASCIIZ zaleca się określenie rozszerzonej składni; w tym przypadku nie ma żadnych trudności przy użyciu różnych standardowych procedur, które działają z łańcuchami. Przykład. Używanie ciągów typu PChar z rozszerzoną składnią. program PRZYKŁAD 12; ($ X +) (niepotrzebne, ponieważ jest używane domyślnie) wpisz Т \u003d tablica Char; (tablica dla ciągu 7 znaków) var Str: PChar; const A: T \u003d "hello!" # 0; begin Str: \u003d "CZEŚĆ!"; WriteLn (Str); (wyjście liniowe: CZEŚĆ Str:= @А; {допустимо также: Str:=A} WriteLn(Str); {вывод строки: привет!} WriteLn(Str);{вывод символа "р"} ReadLn end. Если используется ключ {$Х-}, переменная типа PChar в этом случае рассматривается как указатель на один единственный символ. В этом случае ни один из операторов предыдущего примера, за исключением операторов Str:!} [chroniony e-mailem]; i ReadLn są niepoprawne, a instrukcja WriteLn (Str ^) wykonywana po instrukcji Str jest: [chroniony e-mailem];, utworzy jeden znak „p”. Do pracy z ciągami ASCIIZ w wersji 7.0 stosuje się specjalne standardowe ciągi modułów (patrz sekcja 16.2) i WinDos (patrz sekcja 16.6). 6.4 Rekord Typ rekordu zawiera wiele składników zwanych polami, które mogą być różnych typów. Podczas definiowania typu rekordu po zarezerwowanym rekordzie słowa należy wymienić wszystkie pola typu rekordu ze dwukropkiem wskazującym ich typy i uzupełnić definicję typu słowem end. Pola są oddzielone średnikiem. Liczba pól rekordów może być dowolna. Przykład. typ Complex \u003d rekord (rodzaj liczb zespolonych) Re: Real; Im: prawdziwy koniec; Dane \u003d rekord (typ - data urodzenia) Rok: liczba całkowita; Miesiąc: 1..12; Dzień: koniec 1..31; Osoba \u003d rekord (typ - informacje o pracownikach) Imię i nazwisko: ciąg; Płeć: (mężczyzna, kobieta); Wiek: Liczba całkowita; Żonaty: koniec boolowski; Uwaga. Jeśli kilka pól typu rekordu jest tego samego typu, ich nazwy można wymienić przecinkiem, a następnie podać ten typowy typ. Tak więc rodzaj liczb zespolonych rozpatrywany w tym przykładzie można wprowadzić w inny sposób: typ Complex \u003d record Re, Im: Real end; Po wprowadzeniu typu rekordu możesz następnie określić zmienne lub wpisane stałe tego typu - rekordy. Podczas ustawiania wartości stałej jej pola są zapisywane w nawiasach przez średnik. Aby ustawić wartość każdego pola, najpierw wskaż nazwę pola, a następnie przez dwukropek - jego wartość. Zatem dla typów wprowadzonych powyżej można ustawić na przykład następujące zmienne i stałe: var X, Y, Z: Complex; Dat: dane; const Urodziny: Data \u003d (Rok: 1971; Miesiąc: 12; Dzień: 9); Iwanow: Osoba \u003d (Imię: "Iwanow"; Płeć: Mężczyzna; Wiek: 40; Żonaty: Prawda); Uwaga. Typ rekordu można również wprowadzić bezpośrednio podczas definiowania zmiennych lub stałych wpisanych. Na przykład fragment var X, Y, Z: record Re, Im: Real end; definiuje te same zmienne złożone, co w poprzednim przykładzie. Dostęp do pól zapisu odbywa się poprzez określenie nazwy zmiennej (stałej) i nazwy pola zapisanego przez punkt, na przykład: Ivanov.Age, X.Re, Dat.Day itp. Przykład. Wykorzystanie pól rekordu. X.Re:\u003d 1,5; X.Im:\u003d1.7; Y.Re:\u003d -X.Re; Y.Im:\u003d -X.Im; Ivanov.Married: \u003d False; Aby nie wypisywać nazwy rekordu za każdym razem, gdy uzyskujesz dostęp do jego pól, możesz użyć operatora w opcji Z rekordami. Jego struktura jest następująca: z<имя записи> zrobić<оператор>; W takim przypadku w polu operatora można określić tylko pole rekordu. Na przykład fragment: z X zaczynamy Re: \u003d 1,5; Im: \u003d 1,7; Y.Re:\u003d -Re; Y.Im:\u003d -Im end; z Ivanov do Married: \u003d False; odpowiednik fragmentu kodu z poprzedniego przykładu. Typ rekordu może mieć część wariantową, która zmienia się w zależności od różnych implementacji, na przykład w typie rekordu parametrów figur geometrycznych określany jest bok dla kwadratu, dwa boki i kąt między nimi dla trójkąta, promień dla okręgu itp. Część wariantowa może być tylko jeden i powinien znajdować się na końcu nagrania. Przykład. Zastosowanie wariantu części. wpisz Figure \u003d (kwadrat, trójkąt, okrąg); Param \u003d rekord X, Y: Real; (współrzędne punktu kotwiczenia) przypadek Rys.: Rysunek (parametry rysunku) Kwadrat: (bok: rzeczywisty); Trójkąt: (Sidel, Side2, Angle: Real); Koło: koniec (Radius: Real); var MySquare, MyCircle: Param; Część wariantu zaczyna się od słowa „case”, po którym następuje zmienna wyboru wariantu (w przykładzie z rys.) Ze wskazaniem rodzaju. Poniżej przedstawiono stałe wartości, które może przyjąć zmienna wyboru wariantu (na przykład Kwadrat, Trójkąt, Okrąg). Po każdej stałej następuje dwukropek w nawiasach kwadratowych. ta opcja rekordy wskazujące ich typy. Nawiasy są konieczne, nawet jeśli nie ma wariantu dla tej opcji. Należy zauważyć, że wariantowa część nie kończy się końcem wspornika operatora, jak w zwykłej konstrukcji CASE, ponieważ następuje końcowy wspornik operatora całego typu. W standardzie języka Pascal przed użyciem jednej z opcji nagrywania należy przypisać odpowiednią wartość do zmiennej wyboru opcji: Ryc .: \u003d Kwadrat; MySquare.Side: \u003d 5.0; Ryc .: \u003d koło; MyCircle.Radius: \u003d 7,5; W Turbo Pascal operacja ta jest opcjonalna, chociaż jeśli zmienna wyboru jest ustawiona, można ją wyświetlić w programie, aby określić, która opcja jest określona. Co więcej, ustawienie wartości zmiennej selekcyjnej nie ma na nic wpływu, a następujący fragment jest równoważny do tego rozważanego powyżej: Ryc .: Koło; MySquare.Side: \u003d 5.0; Ryc .: \u003d Kwadrat; MyCircle.Radius: -7,5; Dopuszczalne jest, aby nie wprowadzać zmiennej wyboru wariantu w typie rekordu, ale wymieniać tylko różne opcje, na przykład: Transf \u003d wielkość liter Liczba całkowita 1: (_Word: Word); 2: (_TwoSymb: tablica Char) koniec; 6.5 Zestaw W Pascalu typem zestawu jest stopień oryginalnego zestawu obiektów typu porządkowego, to znaczy zbiór wszystkich rodzajów kombinacji obiektów zbioru oryginalnego. Liczba elementów w oryginalnym zestawie w Turbo Pascal nie może być większa niż 256, a numery seryjne elementów (to znaczy wartość funkcji Ord) muszą zawierać się w przedziale od 0 do 255. Aby określić typ zestawu, użyj zarezerwowanych słów set i of, a następnie określ elementy tego zestawu, zwykle w formie wyliczenia lub zakresu, na przykład: wpisz Alfa \u003d zestaw „A” .. „Z”; Count \u003d zbiór (Plus, Minus, Mult, Divid); Ten \u003d zbiór 0..9; Number \u003d zestaw „0” .. „9”; Wpisując typ zestawu, możesz określić zmienne lub stałe wpisane tego typu zestawu. Podczas ustawiania wartości na stały zbiór, jego elementy są wyświetlane przecinkiem (dozwolone jest określenie zakresów) i są umieszczane w nawiasach kwadratowych. Na przykład dla typów wprowadzonych powyżej można ustawić takie zmienne i stałe wpisane: var CharVal: Alfa; Operacja: Hrabia; const Indeks: Dziesięć \u003d; Cyfra: liczba \u003d [„0” .. „9”]; Uwaga. Podobnie jak w przypadku innych typów strukturalnych, typ zestawu można wprowadzić bezpośrednio podczas definiowania zmiennych lub stałych wpisanych: var CharVal: zestaw „A” .. „Z”; Operacja: zestaw (Plus, Minus, Mult, Divid); const Indeks: zestaw 0..9 \u003d; Cyfra: zestaw „0” .. „9” \u003d [„0” .. „9”]; Do wielu można przypisać określoną wartość w programie. Zazwyczaj wartość jest ustawiana za pomocą konstruktora zestawów. Konstruktor definiuje zestaw elementów, wymieniając w nawiasach kwadratowych wyrażenia, których wartości dają elementy tego zestawu. Dopuszczalne jest stosowanie zakresów elementów. Przykład. Następujące struktury są zestawami konstruktorów: Tak zwane pusty zestaw nie zawierający elementów. Konstruktor zestawu może być również używany bezpośrednio w operacjach na zestawach. Dla zestawów zdefiniowano następujące operacje: + - połączenie zestawów; - - różnica zestawów; * - przecięcie wielu; \u003d - sprawdzenie równoważności dwóch zbiorów;<> - weryfikacja niewiarygodności dwóch zbiorów;<= - проверка, является ли левое множество подмножеством правого множества; > \u003d - sprawdź, czy prawy zestaw jest podzbiorem lewego zestawu; w - sprawdź, czy element wskazany po lewej stronie znajduje się w zestawie wskazanym po prawej stronie. Wynikiem operacji zjednoczenia, różnicy lub przecięcia jest odpowiedni zestaw, pozostałe operacje dają wynik typu logicznego. Przykład. Wprowadź ciąg znaków składający się z liter łacińskich, cyfr i spacji. Przeprowadź weryfikację wprowadzonych znaków. program PRZYKŁAD 13; var Str: string; L: bajt; Tru: Boolean; rozpocząć WriteLn („Wprowadź ciąg znaków”); ReadLn (Str); L: \u003d długość (str); (liczba wprowadzonych znaków) Tru: \u003d L\u003e 0; (prawda, jeśli nie pusty ciąg), podczas gdy Tru i (L\u003e 0) robią (sprawdź od końca łańcucha) zaczynają Tru: \u003d Str [L] w [„0” .. „9”, „A”., „Z” , „a” .. „z”, „”]; (sprawdzanie poprawności znaków) Koniec (L) (poprzedni znak); jeśli Tru to WriteLn („Prawidłowa linia”), inaczej WriteLn („Nieprawidłowa linia”) kończy się. 6.6 Plik Plik typu to sekwencja komponentów tego samego typu zlokalizowana na urządzeniu zewnętrznym (w standardzie językowym podstawą jest lokalizacja danych na taśmach magnetycznych). Komponenty mogą być dowolnego typu, z wyjątkiem typu pliku (lub zawierającego komponenty typu pliku) i typu obiektu. Liczba składników w pliku nie jest zadeklarowana. Aby określić typ pliku, użyj pliku słów zastrzeżonych i, a następnie określ typ składników pliku. Przykład. typ Number \u003d plik liczby całkowitej; (typ pliku liczb całkowitych) Symb \u003d plik „A” .. „Z”; (typ pliku wielkich liter łacińskich) Standardowy typ Tekst określa typ pliku zawierający znaki połączone w ciągi znaków. Należy pamiętać, że typ tekstu w Turbo Pascal nie jest równoważny z plikiem typu Char. Wprowadzając typ pliku, możesz zdefiniować zmienne typu pliku: var Fl, F2: Number; F3: tekst; FF4: Symb; W Turbo Pascal można używać pliku bez typu, którego definicja nie wskazuje typu komponentu. W takim przypadku praca z plikiem odbywa się na poziomie fizycznym zgodnie z wewnętrznym formatem jego danych. W takim przypadku rzeczywiste komponenty pliku mogą mieć inny typ. Przykład. wpisz UnTyp \u003d plik; Typ pliku można również określić bezpośrednio podczas deklarowania zmiennych pliku: var Fl, F2: plik Integer; Zmienne plików mają określone zastosowanie. Nie można na nich wykonywać żadnych operacji (przypisywać wartości, porównywać itp.). Można ich używać tylko do wykonywania operacji na plikach (odczytywanie, zapisywanie, usuwanie pliku itp.). Praca z plikami zostanie omówiona w paragrafie 11. Ponadto za pomocą zmiennej pliku można uzyskać informacje o określonym pliku (typ, parametry, nazwa pliku itp.). re.)

Typ danych definiuje zestaw prawidłowych wartości i zestaw prawidłowych operacji.

Proste typy.

Proste typy są podzielone na ZAMÓWIENIE i MATERIĘ.

1. RODZAJE ZAMÓWIEŃ , Z kolei są:

cały

W Pascal zdefiniowano 5 typów liczb całkowitych, które są określane w zależności od znaku i wartości, jaką przyjmie zmienna.

Wpisz imię

Długość (w bajtach)

Zakres wartości

32 768...+32 767

2 147 483 648...+2 147 483 647

b) logiczne

Nazwa tego typu to BOOLEAN. Wartości typu logicznego mogą być jedną ze stałych logicznych: PRAWDA (prawda) lub FALSE (fałsz).

c) symboliczny

Nazwa tego typu to CHAR - zajmuje 1 bajt. Wartość typu znaku to zestaw wszystkich znaków komputera. Każdy znak ma przypisaną liczbę całkowitą z zakresu 0 ... 255. Ten numer służy jako kod wewnętrznej reprezentacji znaku.

2. RZECZYWISTE TYPY .

W przeciwieństwie do typów porządkowych, których wartości są zawsze porównywane z liczbą całkowitą, a zatem są reprezentowane w komputerze absolutnie dokładnie, wartości typów rzeczywistych określają dowolną liczbę z pewną skończoną dokładnością, w zależności od wewnętrznego formatu liczby rzeczywistej.

Długość numerycznego typu danych, bajty

Nazwa numerycznego typu danych

Liczba cyfr znaczących liczbowego typu danych

Dziesiętny zakres liczbowego typu danych

2*1063 +1..+2*1063 -1

TYPY STRUKTURALNE

Strukturalne typy danych definiują uporządkowany zestaw zmiennych skalarnych i charakteryzują się rodzajem ich składników.

Strukturalne typy danych, w przeciwieństwie do prostych, określają wiele złożonych wartości pod jedną wspólną nazwą. Można powiedzieć, że typy strukturalne określają jakiś sposób formowania nowych typów z już istniejących.

Istnieje kilka metod strukturyzacji. Metodą organizacji i rodzajem komponentów w złożonych typach danych wyróżnia się następujące odmiany: typ regularny (tablice); typ kombinowany (rekordy); typ pliku (pliki); liczba mnoga (typy); typ łańcucha (łańcuchy); w Turbo Pascal w wersji 6.0 i nowszych wprowadzany jest typ obiektu (obiekty).

W przeciwieństwie do prostych typów danych, dane typu strukturalnego charakteryzują się wieloma elementami tworzącymi ten typ danych, tj. Zmienna lub stała typu strukturalnego ma zawsze kilka składników. Każdy element z kolei może należeć do typu strukturalnego, tj. możliwe jest zagnieżdżanie typów.

1. Tablice

Tablice w Turbo Pascal są pod wieloma względami podobne do podobnych typów danych w innych językach programowania. Charakterystyczną cechą tablic jest to, że wszystkie ich komponenty są danymi tego samego typu (prawdopodobnie mają strukturę). Elementy te można łatwo zamówić i uzyskać dostęp do dowolnego z nich, po prostu podając numer seryjny.

Opis tablicy jest ustawiony następująco:

<имя типа> \u003d tablica [<сп.инд.типов>] z<тип>

Tutaj<имя типа> - poprawny identyfikator;

Array of of - zastrzeżone words (array, of);

<сп.инд.типов> - lista jednego lub więcej typów indeksu, oddzielonych przecinkami; nawiasy kwadratowe otaczające listę to wymagania dotyczące składni;

<тип> - dowolny rodzaj Turbo Pascal.

Jako typy indeksów w Turbo Pascal można używać dowolnych typów porządkowych oprócz LongInt i typów zakresów z typem bazowym LongInt.

Głębokość zagnieżdżania typów strukturalnych ogólnie, a zatem tablic, jest dowolna, dlatego liczba elementów na liście indeksów typów (wymiar tablicy) jest nieograniczona, jednak całkowita długość wewnętrznej reprezentacji dowolnej tablicy nie może przekraczać 65520 bajtów.

2. Wpisy

Rekord to struktura danych składająca się ze stałej liczby składników zwanych polami rekordu. W przeciwieństwie do tablicy komponenty (pola) rejestrujące mogą być różnego typu. Aby móc odwoływać się do jednego lub drugiego elementu rekordu, pola są nazywane.

Struktura deklaracji typu post jest następująca:

< imiętypu\u003e \u003d NAGRYWAJ< cn. pola\u003e KONIEC

Tutaj<имя типа> - poprawny identyfikator;

RECORD, END - słowa zastrzeżone (zapis, koniec);

<сп.полей> - lista pól; reprezentuje sekwencję odcinków rekordu, pomiędzy którymi umieszczony jest średnik.

3. Zestawy

Zestawy są zestawem tego samego typu obiektów logicznych połączonych ze sobą. Charakter połączeń między obiektami jest sugerowany tylko przez programistę i nie jest w żaden sposób kontrolowany przez Turbo Pascal. liczba elementów w zestawie może wynosić od 0 do 256 (zbiór, który nie zawiera elementów, nazywany jest pustym). Z nietrwałością liczby jego elementów zestawy różnią się od tablic i rekordów.

Dwa zestawy są uważane za równoważne wtedy i tylko wtedy, gdy wszystkie ich elementy są takie same, a kolejność elementów zestawu jest obojętna. Jeśli wszystkie elementy jednego zestawu są również zawarte w innym, mówią, że pierwszy zestaw jest zawarty w drugim.

Opis typu zestawu ma postać:

< imiętypu\u003e \u003d ZESTAW< zasady. typ>

Tutaj<имя типа> - właściwy wskaźnik;

SET, OF - słowa zastrzeżone (set, out);

<баз.тип> - podstawowy typ elementów zestawu, który może być używany jako dowolny typ porządkowy, z wyjątkiem WORD, INTEGER i LONGINT.

Aby określić zestaw, stosuje się tak zwany konstruktor zestawu: listę specyfikacji elementów zestawu, oddzielonych przecinkami; lista jest otoczona nawiasami kwadratowymi. Specyfikacje elementów mogą być stałymi lub wyrażeniami typu podstawowego, a także typem zakresu tego samego typu podstawowego.

4. Pliki

Plik oznacza albo nazwany obszar zewnętrznej pamięci komputera, albo urządzenie logiczne - potencjalne źródło lub odbiornik informacji.

Każdy plik ma trzy unikalne funkcje.

    ma nazwę, która pozwala programowi pracować jednocześnie z kilkoma plikami.

    zawiera komponenty tego samego typu. Typem komponentów może być dowolny typ Turbo Pascal, z wyjątkiem plików. Innymi słowy, nie można utworzyć „pliku pliku”.

    znowu długość plik jest tworzony nie jest w ogóle określony w swoim ogłoszeniu i jest ograniczony jedynie pojemnością zewnętrznych urządzeń pamięci.

Typ pliku lub zmienną typu pliku można ustawić na jeden z trzech sposobów:

< imię\u003e \u003d PLIK Z< typ>;

< imię\u003e \u003d TEKST;

<имя> \u003d PLIK;

Tutaj<имя> - nazwa typu pliku (prawidłowy identyfikator);

PLIK, OF - słowa zastrzeżone (plik, z);

TEKST - nazwa typ standardowy pliki tekstowe;

<тип> - dowolny typ Turbo Pascal, z wyjątkiem plików.

Można wyróżnić trzy typy plików, w zależności od metody deklaracji:

· Wpisane pliki (określone klauzulą \u200b\u200bFILE OF ...);

· pliki tekstowe (zdefiniowane przez typ TEKST);

· Pliki bez typu (zdefiniowane przez typ PLIKU).

Konwersja liczbowych typów danych Pascala

W Pascalu niejawne (automatyczne) konwersje liczbowych typów danych są prawie niemożliwe. Wyjątek stanowią tylko liczby całkowite, które mogą być używane w wyrażeniach typu real. Na przykład, jeśli zmienne są opisane w następujący sposób:

Var X: liczba całkowita; Y: prawdziwe;

następnie operator

będzie poprawna pod względem składniowym, chociaż po prawej stronie znaku przypisania znajduje się wyrażenie całkowite, a po lewej rzeczywista zmienna, kompilator automatycznie dokona konwersji liczbowych typów danych. Automatyczne odwracanie konwersji typu rzeczywistego na typ całkowity nie jest możliwe w Pascal. Przypomnij sobie, ile bajtów jest przydzielonych dla zmiennych typu integer i real: under typ całkowity dane całkowite mają przydzielone 2 bajty pamięci, a poniżej rzeczywistych - 6 bajtów. Istnieją dwie wbudowane funkcje do konwersji wartości rzeczywistej na liczbę całkowitą: round (x) zaokrągla rzeczywistą x do najbliższej liczby całkowitej, trunc (x) obcina liczbę rzeczywistą, odrzucając część ułamkową.

DZWONEK

Są tacy, którzy czytają te wiadomości przed tobą.
Subskrybuj, aby otrzymywać świeże artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać Dzwon
Bez spamu