Sekcje witryny
Wybór redaktorów:
- Po co laptopowi mały dysk SSD i czy warto instalować na nim Windowsa?
- Wstawianie ramki. Tworzenie ramek. Zapewnienie rezerwy noframes
- Przywracanie systemu Windows Niekończące się automatyczne przygotowanie do odzyskiwania
- Naprawa dysku flash za pomocą programów Jak naprawić port USB w laptopie
- Struktura dysku jest uszkodzona, odczyt jest niemożliwy, co mam zrobić?
- Co to jest pamięć podręczna dysku twardego i do czego jest potrzebna?Za co odpowiada rozmiar pamięci podręcznej?
- Z czego składa się komputer?
- Budowa jednostki systemowej - jakie elementy odpowiadają za działanie komputera. Cechy urządzeń wewnętrznych jednostki systemowej
- Jak zmienić dysk twardy na SSD
- Urządzenia wejściowe obejmują
Reklama
2 główne podstawowe i strukturalne typy danych. Podstawowe projekty algorytmów |
3.2.1 Proste i strukturalne typy danych. Struktury danych - rekordy, tablice, listy. Zmienne Podczas programowania zwykle konieczne jest zapamiętanie określonej ilości danych (wyniki pośrednie, zdarzenia, które miały miejsce, dane wejściowe, dane wyjściowe itp.). Wartości te należy przechowywać w pamięci. W tym celu deklarowana jest lokalizacja w pamięci, która służy do przechowywania danych, a ta zadeklarowana lokalizacja nazywana jest zmienną. Ponieważ przechowywane dane mogą być bardzo różne, przy deklarowaniu zmiennej deklarowany jest również typ danych, które będą przechowywane w tej zmiennej (typ zmiennej). Proste typy W przypadku zmiennej prostego typu pojedyncza wartość (często odczytywana jako liczba) jest ukryta pod słowem kluczowym i można uzyskać do niej bezpośredni dostęp. Najbardziej znane typy proste to: liczba całkowita ze znakiem, liczba całkowita bez znaku, liczba ułamkowa (z przecinkiem), symbol, wartość logiczna. Mogą się nieznacznie różnić w różnych językach. Typy strukturalne W przypadku typów strukturalnych pod jednym słowem kluczowym grupowanych jest kilka wspólnych wartości, jak np. współrzędne punktu czy imię i nazwisko osoby. W tej formie zbiór danych łatwiej jest przenieść jednorazowo. Jednocześnie musisz wykorzystywać lub zmieniać dane w obrębie struktury pojedynczo. Tablice Tablica to zbiór danych tego samego typu, które mają tę samą nazwę i są oddzielone od siebie indeksem. Tablice znacznie ułatwiają przetwarzanie danych tego samego typu. Łatwość przetwarzania wynika z faktu, że w trakcie wykonywania programu można po prostu zmienić indeks i dzięki temu łatwiej uzyskać dostęp do żądanej zmiennej. Pobranie wartości zmiennej z tablicy przy użyciu liczby porządkowej jest dość szybkim zadaniem dla komputera. Tablice mogą być jednowymiarowe (wiersz, wiersz), dwuwymiarowe (tabela, macierz), trójwymiarowe (sześcian) itp. Przykład (C#, Java) wew masa = nowyint ; //utwórz tablicę do przechowywania dziesięciu liczb całkowitych masa=1; //wartość 1 jest zapisywana pod indeksem 0 Dodatkowa lektura: http://enos.itcollege.ee/~jpoial/java/i200loeng4.html Posty Rekordy służą do przechowywania różnych typów danych, które razem tworzą powiązany zestaw. Na przykład rekord osoby tworzony jest z następujących danych: imię (tekst), nazwisko (tekst), płeć (wartość logiczna, 0 - kobieta, 1 - mężczyzna), waga (liczba ułamkowa). Dane te tworzą jedną całość, opisując jedną osobę, same jednak są bardzo różnych typów. Przykład (C#) strukturynimene { ciąg publiczny eesnimi; ciąg publiczny perenimi; publiczny seks; pływak publiczny waga; Za pomocą tego wpisu możemy utworzyć zmienną kasutaja(user) i przypisać użytkownikowi wartości imienia, nazwiska, płci i wagi: inimene kasutaja; kasutaya.eesnimi =„Jaan” ; kasutaya.perenimi =„Mety” ; kasutaya.sex = 1; kasutaya.waga = 80,0; Listy i drzewa Obecnie listy są często używane do przechowywania danych. Jeśli każdy element listy wskazuje na element następujący po niej, to jest to lista połączona, a koniec takiej listy jest oznaczony pustym elementem (null). Lista połączona, w której każdy element wskazuje tylko na następny, nazywana jest listą jednokierunkową. Lista połączona, w której każdy element wskazuje na następny i poprzedni element, nazywa się listą dwukierunkową. Lista połączona, w której nie ma pierwszego i ostatniego elementu, a każdy element wskazuje na następny, nazywana jest listą cykliczną. Długość połączonej listy jest określona przez liczbę jej elementów. Pierwszym elementem listy jest głowa, a pozostałe elementy to ogon. Stos to lista połączona, w której jako pierwszy czytany jest ostatni dodany element (LIFO – Last In First Out). Kolejka to połączona lista, w której najpierw czytany jest element dodany jako pierwszy (FIFO – First In First Out). Dodatkowa lektura: http://www.cs.tlu.ee/~inga/alg_andm/linked_list_C_2011.pdf Drzewo to struktura danych, w której dane są umieszczone w postaci drzewa, składa się z wierzchołków (angielski węzeł) i łuków (angielski krawędzie), które łączą wierzchołki (wskaźniki). Wierzchołki połączone łukami z wierzchołkiem znajdującym się powyżej nazywane są dziećmi, a wierzchołek znajdujący się powyżej w tym przypadku jest rodzicem. Najwyższym wierzchołkiem jest korzeń. Wierzchołek, który nie ma dzieci, nazywany jest liściem. Przejście od góry do rodzica, a stamtąd do następnego rodzica itd. docieramy do korzenia. Przodkami są wszystkie wierzchołki znajdujące się na ścieżce od danego wierzchołka do korzenia. Wysokość drzewa określa najdłuższa droga od liścia do korzenia. W przypadku drzewa uporządkowanego korzeń i wierzchołki bezpośrednio z nim połączone są definiowane jako węzły pierwszego poziomu (dzieci korzenia), a wierzchołki połączone bezpośrednio z wierzchołkami pierwszego poziomu są wierzchołkami drugiego poziomu (dzieci wierzchołków pierwszego poziomu) itd. .; Ważna jest także kolejność dzieci od lewej do prawej. Dodatkowa lektura: http://www.cs.tlu.ee/~inga/alg_andm/tree_gen_2011.pdf Drzewo binarne to drzewo, w którym każdy z rodziców może mieć jedno dziecko, dwoje dzieci lub nie mieć żadnych dzieci, a kolejność dzieci jest ważna. Drzewo wyszukiwania binarnego to drzewo binarne, które jest uporządkowane. Na lewo od wierzchołka zawsze znajduje się mniejsza liczba, a na prawo zawsze większa. Podczas przeszukiwania takiego drzewa poszukiwana wartość jest porównywana z pierwiastkiem i jeśli szukana wartość jest równa pierwiastkowi, to istnieje i zostaje znaleziona. Jeśli pożądana wartość nie jest równa pierwiastkowi, operacja porównania jest kontynuowana odpowiednio dalej, porównując żądaną wartość z zestawem wierzchołków znajdujących się po prawej lub lewej stronie, aż dotrą do liści. Jeśli szukana wartość jest równa wartości jednego z wierzchołków, to szukany element zostaje znaleziony i istnieje, natomiast jeśli taki wierzchołek nie zostanie znaleziony, to szukanego elementu nie ma w tym drzewie. Ta metoda wyszukiwania jest wielokrotnie szybsza niż pełne przechodzenie przez tablicę lub połączoną listę. Drzewo B jest drzewem poszukiwań, w którym liczba dzieci w każdym węźle mieści się w przedziale od (t-1) do (2t-1), gdzie t jest dowolną stałą. Drzewo B* to drzewo B, w którym wierzchołki są wypełniane do 2/3 poprzez wypełnienie najpierw dwóch wierzchołków potomnych poprzez redystrybucję kluczy, a następnie podzielenie ich na 3 wierzchołki. Z tego powodu drzewo B pozwala zachować głębokość drzewa mniejszą niż drzewo binarne. Ograniczając dopełnienie, możliwe jest również na poziomach pośrednich utrzymanie ilości wykorzystywanej pamięci w ściśle określonych granicach i jednocześnie możliwość natychmiastowego dodawania danych w odpowiednie miejsce. Złożony, Lub strukturalny, typy danych w przeciwieństwie do prostych, definiują zbiory wartości złożonych za pomocą jednej wspólnej nazwy. Można powiedzieć, że typy strukturalne definiują pewien sposób tworzenia nowych typów danych na podstawie istniejących. Dzięki temu możliwe jest tworzenie struktur danych o dowolnej złożoności, co pozwala na uzyskanie odpowiedniej reprezentacji w programie danych, z którymi operuje. Istnieje kilka metod strukturyzacji, z których każda różni się sposobem odnoszenia się do poszczególnych komponentów, a co za tym idzie, sposobem odnoszenia się do komponentów zawartych w danych konstrukcji. Ze względu na sposób organizacji i rodzaj komponentów w złożonych typach danych wyróżnia się następujące odmiany:
W odróżnieniu od prostych typów danych, dane typu strukturalnego charakteryzują się mnogością elementów tworzących ten typ, tj. zmienna lub stała typu strukturalnego zawsze ma wiele komponentów. Każdy komponent z kolei może należeć do typu strukturalnego, tj. możliwe jest zagnieżdżanie typów. Literatura
Rozdział 6. STRUKTURALNY Typ danych definiuje zbiór prawidłowych wartości i zbiór prawidłowych operacji. Proste typy. Typy proste dzielą się na ORDINAL i REAL. 1. RODZAJE ZAMÓWIEŃ , z kolei są: cały Pascal definiuje 5 typów liczb całkowitych, które są definiowane w zależności od znaku i wartości, jaką przyjmie zmienna.
b) logiczne Nazwa tego typu to BOOLEAN. Wartości logiczne mogą być jedną ze stałych boolowskich: PRAWDA (prawda) lub FAŁSZ (fałsz). c) symboliczne Nazwa tego typu to CHAR - zajmuje 1 bajt. Wartość typu znaku to zbiór wszystkich znaków PC. Każdemu znakowi przypisana jest liczba całkowita z zakresu 0…255. Liczba ta służy jako kod wewnętrznej reprezentacji symbolu. 2. PRAWDZIWE TYPY . W przeciwieństwie do typów porządkowych, których wartości są zawsze odwzorowywane na szereg liczb całkowitych i dlatego są reprezentowane absolutnie precyzyjnie na PC, wartości typów rzeczywistych definiują dowolną liczbę tylko z pewną skończoną precyzją w zależności od wewnętrznego formatu liczby rzeczywistej .
TYPY STRUKTURALNE Ustrukturyzowane typy danych definiują uporządkowany zbiór zmiennych skalarnych i charakteryzują się rodzajem ich składników. Ustrukturyzowane typy danych, w odróżnieniu od prostych, definiują wiele wartości złożonych pod jedną wspólną nazwą. Można powiedzieć, że typy strukturalne wyznaczają pewien sposób tworzenia nowych typów z istniejących. Istnieje kilka metod strukturyzacji. Ze względu na sposób organizacji i typ komponentów w złożonych typach danych wyróżnia się następujące odmiany: typ regularny (tablice); typ łączony (rekord); typ pliku(pliki); wiele typów; typ ciągu(stringi); w języku Turbo Pascal w wersji 6.0 i starszych wprowadzono typ obiektowy (obiekty). W odróżnieniu od prostych typów danych, dane typu strukturalnego charakteryzują się mnogością elementów tworzących ten typ, tj. zmienna lub stała typu strukturalnego zawsze ma wiele komponentów. Każdy komponent z kolei może należeć do typu strukturalnego, tj. możliwe jest zagnieżdżanie typów. 1. Tablice Tablice w Turbo Pascalu są pod wieloma względami podobne do podobnych typów danych w innych językach programowania. Charakterystyczną cechą tablic jest to, że wszystkie ich elementy są danymi tego samego typu (prawdopodobnie ustrukturyzowanymi). Elementy te można łatwo uporządkować, a dostęp do każdego z nich można uzyskać po prostu podając numer seryjny. Opis tablicy jest określony w następujący sposób: <имя типа>= tablica [<сп.инд.типов>] z<тип> Tutaj<имя типа>- poprawny identyfikator; Array, of – słowa zastrzeżone (tablica, from); <сп.инд.типов>- lista jednego lub więcej typów indeksów oddzielonych przecinkami; nawiasy kwadratowe otaczające listę są wymogiem składniowym; <тип>- dowolny rodzaj Turbo Pascala. Jako typy indeksowe w Turbo Pascalu można używać dowolnych typów porządkowych, z wyjątkiem typów LongInt i typów zakresowych z typem podstawowym LongInt. Głębokość zagnieżdżenia typów strukturalnych w ogóle, a co za tym idzie tablic, jest dowolna, więc liczba elementów na liście indeksów typów (rozmiar tablicy) nie jest ograniczona, jednak całkowita długość wewnętrznej reprezentacji dowolnej tablicy nie może być większy niż 65520 bajtów. 2. Zapisy Rekord to struktura danych składająca się ze stałej liczby elementów zwanych polami rekordów. W przeciwieństwie do tablicy, komponenty (pola) rekordu mogą być różnych typów. Aby umożliwić odwoływanie się do tego lub innego elementu rekordu, pola są nazywane. Struktura deklaracji typu post jest następująca: < Nazwatyp>=NAGRAJ< wspólne przedsięwzięcie. pola>KONIEC Tutaj<имя типа>- poprawny identyfikator; RECORD, END – słowa zastrzeżone (rekord, koniec); <сп.полей>- lista pól; jest sekwencją sekcji rekordu oddzielonych średnikiem. 3 zestawy Zbiory to zbiór obiektów tego samego typu, które są ze sobą logicznie połączone. Charakter połączeń między obiektami jest jedynie sugerowany przez programistę i nie jest w żaden sposób kontrolowany przez Turbo Pascal. liczba elementów wchodzących w skład zbioru może wahać się od 0 do 256 (zbiór niezawierający elementów nazywany jest pustym) To właśnie niestałość liczby jego elementów odróżnia zbiory od tablic i rekordów. Dwa zbiory uważa się za równoważne wtedy i tylko wtedy, gdy wszystkie ich elementy są takie same, a kolejność elementów zbioru jest obojętna. Jeśli wszystkie elementy jednego zbioru znajdują się także w drugim, mówimy, że pierwszy zbiór należy do drugiego. Opis typu zestawu to: < Nazwatyp>=ZESTAW< podstawy. typ> Tutaj<имя типа>- poprawny identyfikator; SET, OF – słowa zastrzeżone (set, from); <баз.тип>- podstawowy typ elementów zestawu, który może być dowolnym typem porządkowym z wyjątkiem WORD, INTEGER i LONGINT. Do zdefiniowania zbioru stosuje się tzw. konstruktora zbiorów: listę specyfikacji elementów zbioru 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 Przez plik rozumie się nazwany obszar pamięci zewnętrznej komputera PC lub urządzenie logiczne - potencjalne źródło lub odbiorca informacji. Każdy plik ma trzy charakterystyczne cechy ma nazwę, która pozwala programowi pracować z kilkoma plikami jednocześnie. zawiera komponenty tego samego typu. Typ komponentu może być dowolnym typem Turbo Pascala, z wyjątkiem plików. Innymi słowy, nie można utworzyć „pliku plików”. długość nowo utworzonego pliku nie jest w żaden sposób określona podczas jego deklarowania i jest ograniczona jedynie pojemnością zewnętrznych urządzeń pamięci. Typ pliku lub zmienną typu pliku można określić na jeden z trzech sposobów: < Nazwa>= PLIK< typ>; < Nazwa>=TEKST; <имя>= PLIK; Tutaj<имя>- nazwa typu pliku (poprawny identyfikator); FILE, OF – słowa zastrzeżone (plik, z); TEKST – nazwa standardowego typu pliku tekstowego; <тип>- dowolny typ Turbo Pascala, z wyjątkiem plików. W zależności od sposobu deklaracji można wyróżnić trzy typy plików: · pliki wpisane (ustawione przez klauzulę FILE OF...); · pliki tekstowe (zdefiniowane jako typ TEKST); · pliki bez typu (zdefiniowane przez typ PLIK). Informacje o konwersji numerycznych typów danych Pascala W Pascalu niejawne (automatyczne) konwersje numerycznych typów danych są prawie niemożliwe. Wyjątek stanowi tylko typ całkowity, którego można używać w wyrażeniach typu real. Na przykład, jeśli zmienne są zadeklarowane w ten sposób: Var X: liczba całkowita; T: prawdziwy; potem operator będzie składniowo poprawne, chociaż po prawej stronie znaku przypisania znajduje się wyrażenie całkowite, a po lewej zmienna rzeczywista, kompilator automatycznie przekonwertuje numeryczne typy danych. Odwrotna konwersja automatycznie z typu rzeczywistego na typ całkowity jest niemożliwa w Pascalu. Przypomnijmy, ile bajtów jest przydzielonych na zmienne typu integer i real: 2 bajty pamięci są przydzielane na dane integer typu integer, a 6 bajtów na dane realne. Istnieją dwie wbudowane funkcje umożliwiające konwersję liczby rzeczywistej na liczbę całkowitą: round(x) zaokrągla liczbę rzeczywistą x do najbliższej liczby całkowitej, trunc(x) obcina liczbę rzeczywistą, odrzucając część ułamkową. Typy proste obejmują typy porządkowe, rzeczywiste i datetime. Typy porządkowe różnią się tym, że każdy z nich ma skończoną liczbę możliwych wartości. Wartości te można w określony sposób uporządkować (stąd nazwa typów) i dlatego każdą z nich można powiązać z jakąś liczbą całkowitą – liczbą porządkową wartości. Typy rzeczywiste, ściśle rzecz biorąc, również mają skończoną liczbę wartości, która jest określona przez format wewnętrznej reprezentacji liczby rzeczywistej. Jednak liczba możliwych wartości typów rzeczywistych jest tak duża, że nie jest możliwe powiązanie z każdym z nich liczby całkowitej (jej liczby). Typ datetime przeznaczony jest do przechowywania daty i godziny. W rzeczywistości używa do tych celów prawdziwego formatu. Typy porządkoweTypy porządkowe obejmują (patrz rysunek 1.1) typy całkowite, logiczne, znakowe, wyliczeniowe i zakresowe. Do każdego z nich można zastosować funkcję Ord(x), która zwraca liczbę porządkową wartości wyrażenia X. Ryż. 1.1 W przypadku typów całkowitych funkcja ord(x) zwraca samą wartość x, tj. Ord(X) = x dla x należącego do dowolnego typu całkowitego. Zastosowanie Ord(x) do typów boolowskich, znakowych i wyliczeniowych daje dodatnią liczbę całkowitą z zakresu od 0 do 1 (boolean), od 0 do 255 (znak) i od 0 do 65535 (wyliczenie). Typ zakresowy zachowuje wszystkie właściwości bazowego typu porządkowego, więc wynik zastosowania do niego funkcji ord(x) zależy od właściwości tego typu. Możesz także zastosować funkcje do typów porządkowych: pred(x) - zwraca poprzednią wartość typu porządkowego (wartość, która odpowiada liczbie porządkowej ord(x) -1, czyli ord(pred(x)) = ord(x) - 1; succ(x) - zwraca kolejną wartość typu porządkowego, która odpowiada liczbie porządkowej ord(x) +1, czyli ord(Succ(x)) = ord(x) + 1. Na przykład, jeśli program definiuje zmienną wówczas funkcja PRED(c) zwróci znak „4”, a funkcja SUCC(c) zwróci znak „6”. Jeśli wyobrazimy sobie dowolny typ porządkowy jako uporządkowany zbiór wartości rosnących od lewej do prawej i zajmujący pewien odcinek na osi liczbowej, to funkcja pred(x) nie jest zdefiniowana dla lewego końca, a succ (x) jest niezdefiniowany dla prawego końca tego segmentu. Całe typy. Zakres możliwych wartości typów całkowitych zależy od ich wewnętrznej reprezentacji, która może wynosić jeden, dwa, cztery lub osiem bajtów. W tabeli 1.1 pokazuje nazwy typów całkowitych, długość ich wewnętrznej reprezentacji w bajtach oraz zakres możliwych wartości. Tabela 1.1 – Typy całkowite
Typy LongWord i Int64 zostały po raz pierwszy wprowadzone w wersji 4, ale typy Smallint i Cardinal były nieobecne w Delphi 1. Typ całkowity w tej wersji zajmuje 2 bajty i ma zakres wartości od -32768 do +32767, tj. taki sam jak Smallint. Stosując procedury i funkcje o parametrach całkowitych należy kierować się „zagnieżdżeniem” typów, tj. wszędzie tam, gdzie można użyć słowa, dozwolony jest Byte (ale nie odwrotnie), Longint „zawiera” Smallint, który z kolei zawiera Shortint. Listę procedur i funkcji mających zastosowanie do typów całkowitych podano w tabeli. 1.2. Litery b, s, w, i, l oznaczają odpowiednio wyrażenia typu Byte, Shortint, Word, Integer i Longint, x jest wyrażeniem dowolnego z tych typów; litery vb, vs, vw, vi, vl, vx oznaczają zmienne odpowiednich typów. Parametr opcjonalny jest wskazany w nawiasach kwadratowych. Tabela 1.2 - Standardowe procedury i funkcje mające zastosowanie do całych typów
Podczas pracy z liczbami całkowitymi typ wyniku będzie odpowiadał typowi operandów, a jeśli operandy są różnych typów całkowitych, typowi ogólnemu, który obejmuje oba operandy. Na przykład podczas pracy ze skrótem i słowem powszechnym typem będzie liczba całkowita. W ustawieniu domyślnym kompilator Delphi nie generuje kodu sprawdzającego, czy wartość nie wykracza poza zakres, co może prowadzić do nieporozumień. Typy logiczne. Typy logiczne obejmują Boolean, ByteBool, Bool, wordBool i LongBool. W standardowym Pascalu zdefiniowany jest tylko typ Boolean, pozostałe typy logiczne zostały wprowadzone w Object Pascal w celu zapewnienia zgodności z Windows: typy Boolean i ByteBool zajmują po jednym bajcie, Bool i WordBool - 2 bajty, LongBool - 4 bajty. Wartości logiczne mogą być jedną z wcześniej zadeklarowanych stałych Fałsz lub Prawda. Ponieważ typ Boolean jest typem porządkowym, można go użyć w instrukcji pętli typu policzalnego. W Delphi 32 dla wartości logicznej Ord(True) = +1, natomiast dla innych typów (Bool, WordBool itp.) Ord(True) = -1, więc tego rodzaju operatorów należy używać ostrożnie! Na przykład w Delphi 6 wykonywalna instrukcja showMessage („ --- ”) w poniższej pętli for nie zostanie wykonana ani razu: dla L:= Fałsz do Prawdy Pokaż wiadomość("--); Jeżeli w poprzednim przykładzie zmienisz typ parametru pętli L na Boolean, pętla zostanie uruchomiona, a na ekranie pojawi się dwukrotnie komunikat. [Dla wersji Delphi 1 i 2 ord (True) =+1 dla dowolnego typu logicznego.] Typ postaci. Wartość typu znaku to zbiór wszystkich znaków PC. Każdemu znakowi przypisana jest liczba całkowita z zakresu 0...255. Liczba ta służy jako kod wewnętrznej reprezentacji symbolu, jest zwracana przez funkcję or. Do kodowania w systemie Windows używany jest kod ANSI (nazwany na cześć American National Standard Institute, amerykańskiego instytutu normalizacyjnego, który zaproponował ten kod). Pierwsza połowa znaków PC o kodach 0...127 odpowiada tabeli 1.3. Druga połowa znaków o kodach 128...255 jest różna dla różnych czcionek. Standardowe czcionki systemu Windows Arial Cyr, Courier New Cyr i Times New Roman używają 64 ostatnich kodów (od 192 do 256) do reprezentowania znaków cyrylicy (bez liter „ё” i „Ё”): „A”... „Z” są zakodowane wartości 192..223, „a”… „i” - 224...255. Symbole „Ё” i „е” mają odpowiednio kody 168 i 184. Tabela 1.3 – Kodowanie znaków zgodnie ze standardem ANSI Znaki z kodami 0...31 odnoszą się do kodów serwisowych. Jeśli te kody są użyte w tekście znakowym programu, są uważane za białe znaki. Typ char stosuje operacje relacyjne, a także funkcje wbudowane: Сhar (в) - funkcja typu char; konwertuje wyrażenie typu Byte na znak i zwraca je wraz z wartością; UpCase(CH) - funkcja typu char; zwraca wielką literę, jeśli сн jest małą literą łacińską, w przeciwnym razie zwraca sam symbol сн (w przypadku cyrylicy zwraca oryginalny znak). Typ wyliczony. Typ wyliczeniowy jest określony poprzez wyliczenie wartości, jakie może otrzymać. Każda wartość ma nazwę za pomocą jakiegoś identyfikatora i znajduje się na liście otoczonej nawiasami, na przykład: kolory = (czerwony, biały, niebieski); Użycie typów wyliczeniowych sprawia, że programy są bardziej wizualne. Zgodność między wartościami typu wyliczeniowego a liczbami porządkowymi tych wartości ustalana jest przez kolejność wyliczania: pierwsza wartość na liście otrzymuje liczbę porządkową 0, druga - 1 itd. Maksymalna liczność typ wyliczeniowy ma 65536 wartości, więc w rzeczywistości typ wyliczeniowy definiuje pewien podzbiór całego słowa typu i można go uznać za zwartą deklarację grupy stałych całkowitych o wartościach 0, 1 itd. Stosowanie typów wyliczeniowych zwiększa niezawodność programów, pozwalając kontrolować wartości, jakie otrzymują odpowiednie zmienne. Obiekt Pascal umożliwia konwersję odwrotną: dowolne wyrażenie typu Word można przekonwertować na wartość typu wyliczeniowego, o ile wartość wyrażenia całkowitego nie przekracza liczności tego typu. Konwersję tę osiąga się poprzez użycie automatycznie zadeklarowanej funkcji o nazwie wyliczonego typu. Zakres typu. Typ zakresu jest podzbiorem jego typu podstawowego, który może być dowolnym typem porządkowym z wyjątkiem typu zakresu. Typ zakresu definiowany jest przez granice jego wartości w obrębie typu podstawowego: <мин.знач.>..<макс.знач.> Tutaj<мин. знач. >- minimalna wartość zakresu typu;<макс. знач. >- jego maksymalna wartość. Typ zakresu nie musi być opisywany w sekcji typu, ale można go podać bezpośrednio podczas deklaracji zmiennej. Określając typ zakresu, należy przestrzegać następujących zasad: dwa znaki „..” traktowane są jako jeden znak, dlatego nie można między nimi spacji; lewa granica zakresu nie powinna przekraczać jego prawej granicy. Typ zakresowy dziedziczy wszystkie właściwości swojego typu podstawowego, ale z ograniczeniami wynikającymi z jego niższej mocy. W szczególności, jeśli zdefiniowano zmienną. Standardowa biblioteka Object Pascal zawiera dwie funkcje wspierające pracę z typami zakresowymi: High(x) - zwraca maksymalną wartość typu zakresu, do którego należy zmienna x; Low (x) - zwraca minimalną wartość typu zakresu. Prawdziwe typy W przeciwieństwie do typów porządkowych, których wartości są zawsze odwzorowywane na szereg liczb całkowitych i dlatego są reprezentowane absolutnie precyzyjnie na PC, wartości typów rzeczywistych definiują dowolną liczbę tylko z pewną skończoną precyzją w zależności od wewnętrznego formatu liczby rzeczywistej . Tabela 1.4 – Typy rzeczywiste W poprzednich wersjach Delphi 1...3 typ Real zajmował 6 bajtów i miał zakres wartości od 2,9*10-39 do 1,7*1038. W wersjach 4 i 5 ten typ jest odpowiednikiem typu Double. Jeśli chcesz (ze względu na kompatybilność) używać 6-bajtowych liczb rzeczywistych, musisz określić dyrektywę kompilatora (SREALCOMPATIBILITY ON). Jak widać z tabeli. 1.4 liczba rzeczywista w Object Pascal zajmuje od 4 do 10 kolejnych bajtów i ma następującą strukturę w pamięci komputera. Tutaj s jest cyfrą znaku liczby; e - część wykładnicza; zawiera porządek binarny; m jest mantysą liczby. Mantysa m ma długość od 23 (dla pojedynczych) do 63 (dla rozszerzonych) cyfr binarnych, co zapewnia dokładność 7...8 dla pojedynczych i 19...20 dla rozszerzonych cyfr dziesiętnych. Przecinek dziesiętny jest implikowany przed lewą (najbardziej znaczącą) cyfrą mantysy, ale podczas operacji na liczbie jego położenie jest przesuwane w lewo lub w prawo zgodnie z porządkiem binarnym liczby zapisanej w części wykładniczej dlatego też operacje na liczbach rzeczywistych nazywane są arytmetyką zmiennoprzecinkową. Należy zauważyć, że koprocesor arytmetyczny zawsze przetwarza liczby w formacie rozszerzonym, a trzy pozostałe typy rzeczywiste w tym przypadku uzyskuje się przez proste obcięcie wyników do wymaganego rozmiaru i służą głównie do oszczędzania pamięci. Szczególną pozycję w Object Pascal zajmują typy comp i Currency, które traktowane są jak liczby rzeczywiste z częściami ułamkowymi o stałej długości: w comp część ułamkowa ma długość 0 cyfr, czyli jest po prostu nieobecna w walucie długość części ułamkowej wynosi -4 miejsca po przecinku. W rzeczywistości oba typy definiują dużą liczbę całkowitą ze znakiem, która przechowuje 19...20 znaczących cyfr dziesiętnych (wewnętrznie zajmują 8 sąsiadujących bajtów). Jednocześnie wyrażenia comp i walutowe są w pełni kompatybilne z dowolnymi innymi typami rzeczywistymi: są na nich zdefiniowane wszystkie rzeczywiste operacje, można ich używać jako argumentów funkcji matematycznych itp. Najbardziej odpowiednim obszarem zastosowań dla tych typów jest obliczenia księgowe. |
Popularny:
Nowy
- Wstawianie ramki. Tworzenie ramek. Zapewnienie rezerwy noframes
- Przywracanie systemu Windows Niekończące się automatyczne przygotowanie do odzyskiwania
- Naprawa dysku flash za pomocą programów Jak naprawić port USB w laptopie
- Struktura dysku jest uszkodzona, odczyt jest niemożliwy, co mam zrobić?
- Co to jest pamięć podręczna dysku twardego i do czego jest potrzebna?Za co odpowiada rozmiar pamięci podręcznej?
- Z czego składa się komputer?
- Budowa jednostki systemowej - jakie elementy odpowiadają za działanie komputera. Cechy urządzeń wewnętrznych jednostki systemowej
- Jak zmienić dysk twardy na SSD
- Urządzenia wejściowe obejmują
- Typowany język programowania Co zrobić z tymi wszystkimi typami zmiennych