Najprostszym numerycznym typem danych w Pascal są typy całkowite do przechowywania liczb całkowitych. Liczby całkowite w Pascal są zwykle podzielone na dwa typy: podpisany i niepodpisany. Liczby podpisane są liczbami całkowitymi zawierającymi zarówno liczby dodatnie, jak i ujemne, liczby bez znaku są tylko dodatnie.
Poniżej znajdują się dwie tabele z typami liczb całkowitych. Najpierw piszemy podpisane typy liczb całkowitych:
Typ | Bajt | Zakres wartości |
skrót | 1 | -128 ... 127 |
smallint | 2 | -32768 ... 32767 |
liczba całkowita, longint | 4 | -2147483648 ... 2147483647 |
int64 | 8 | -9223372036854775808 ... 9223372036854775807 |
I to typy całkowite bez znaku:
Typ | Bajt | Zakres wartości |
bajt | 1 | 0 ... 255 |
słowo | 2 | 0 ... 65535 |
kardynał longword | 4 | 0 ... 4294967295 |
uint64 | 8 | 0 ... 18446744073709551615 |
Jak widać, w pierwszej kolumnie znajduje się nazwa typu, w drugiej - liczba bajtów zajmowanych w pamięci przez liczby tego typu, w trzeciej - odpowiednio zakres możliwych wartości. Podpisane liczby mają dwa typy - liczby całkowite i długie (dosłownie „liczba całkowita” i „długa liczba całkowita”), które są synonimami. Oznacza to, że możesz używać zarówno jednej nazwy, jak i drugiej w sekcji opisu.
Podobnie w drugiej tabeli (liczby całkowite nieujemne w Pascalu) są również dwa 4-bajtowe typy synonimów liczb całkowitych - długie i kardynalne, więc użyj jednego lub drugiego.
Możesz również zauważyć, że jeśli liczby pierwszej tabeli są warunkowo przesunięte na prawą stronę względem zera (przesuń interwał w prawo, tak aby minimalna liczba wynosiła 0), wówczas otrzymamy przedziały liczb całkowitych drugiej tabeli leżące w odpowiednich rzędach. Tak więc, jeśli w skrócie typu 1-bajtowego, aby dodać 128 do lewej i prawej krawędzi, otrzymujemy bajt typu (0..255); jeśli w 2-bajtowym typie smallint dodamy 32768 do granic, otrzymamy odpowiedni typ 2-bajtowy bez znak słowny (0..65535) itp.
Wszystko to dzieje się, ponieważ w typach całkowitych bez znaku liczby można podzielić dokładnie na dwie części: połowa liczb znajduje się w części ujemnej, a połowa w części dodatniej. I dlaczego zatem, w liczbach ze znakiem, lewa granica w wartości bezwzględnej jest o 1 większa od prawej granicy? - ty pytasz. Na przykład w typie skrótu minimum wynosi -128, a maksimum tylko 127 (modulo 1 mniej). A to dlatego, że prawa strona zawiera również 0, i musisz o tym wiedzieć i pamiętać.
Dlaczego więc podzielić liczby całkowite w Pascalu na tak wiele typów? Dlaczego nie zarządzać na przykład największymi liczbami całkowitymi w PascalABC.Net i Free Pascal - int64 - to prawie 9 i pół kwintillionu (!) Z minusem i plusem? Tak, z prostego banalnego (?) Powodu - oszczędzania pamięci. Jeśli chcesz dodać dwie małe jednobajtowe liczby dodatnie (0..255) i opisałeś je jako int64 (8 bajtów), zajęło to 8 razy więcej pamięci. A jeśli program jest duży i istnieje wiele zmiennych, wówczas oszczędność pamięci rośnie bardzo gwałtownie. I nie ma sensu używać podpisanych typów liczb całkowitych w zadaniu nadchodzi o takich wartościach jak długość, masa, odległość, czas itp.
W sekcji strony Zadachnik Abrahamyan (podrozdział Liczba całkowita) zaobserwuj użycie różnych typów liczb całkowitych w Pascal.
Każdy typ oznacza podzbiór liczb całkowitych:
Typ zakresu formatu
ShortInt -128..127 Podpisano 8 bitów
Liczba całkowita -32768 .. Podpisano 16 bitów
LongInt -2147483648 .. Podpisano 32 bity
Bajt 0..255 Bez znaku 8 bitów
Słowo 0..65535 Unsigned 16 bit
Wszystkie typy liczb całkowitych są porządkowy. Maksymalne wartości Integer i LongInt odpowiadają stałym MaxInt i MaxLongInt. Maksymalne i minimalne wartości innych typów liczb całkowitych można uzyskać za pomocą funkcji Low i High.
Ada
Pakiet interfejsów:
Ten pakiet deklaruje typy liczb całkowitych o zakresach niezależnych od kompilatora i środowiska operacyjnego.
Typ zakresu formatu
Liczba_8 -128..127 Podpisano 8 bitów
Liczba całkowita_16 -32768..32767 Podpisano 16 bitów
Liczba_32 -2147483648..2147483647 Podpisano 32 bity
Liczba całkowita_64 -2 ** 63 .. 2 ** 63 - 1 Podpisano 64 bity
Unsigned_8 0..255 Unsigned 8 bitów
Unsigned_16 0..65535 Unsigned 16 bitów
Unsigned_32 0..4294967296 Unsigned 32 bity
Unsigned_64 0 .. 2 ** 64 - 1 Unsigned 64 bity
Pakiet standardowy (łączy się automatycznie):
Ten pakiet definiuje standardowe typy liczb całkowitych. Zgodnie ze standardem zasięg każdego następnego typu nie powinien być węższy niż poprzedniego. Ponadto dwa z tych typów mają wyraźne minimalne limity bitów.
Typ Nie węższy niż ... Zwykle jest ...
Short_Short_Integer Integer_8
Short_Integer Integer_16
Integer Integer_16 Integer_32
Long_Integer Integer_32 Integer_32
Long_Long_Integer Integer_64
Pomimo faktu, że w prawej kolumnie wypisałem bitowość każdego typu, zalecam używanie tylko liczb całkowitych i długich liczb całkowitych. Dla wszystkich innych bitów preferowane są typy Integer_x. Kompilator jest jak prywatny detektyw. Im więcej nieporozumień od niego, tym mniej będzie przydatny. Kto wie, jakie bity będą miały standardowe typy na platformie Win128.
Oprócz określone typy, w standardzie często używane są:
Naturalna jest liczba całkowita 0. Liczba całkowita „Ostatnia;
Pozytywna jest liczba całkowita 1. Liczba całkowita „Ostatnia;
System typów językowych Ada jest przemyślany lepiej niż w Borland Pascal. Nie możesz skompilować takiego programu w Borland Pascal:
program Test_Word;
var
I: Słowo; (dobre intencje)
zaczynać
dla I: \u003d 0 do -1 do (stała poza zakresem)
zaczynać
koniec;
koniec.
Indeks -1 jest częstym zjawiskiem podczas pracy z tablicami, których początkowy indeks wynosi 0. Jeśli tablica jest pusta, wówczas górna granica dla pętli (długość tablicy minus jeden) po prostu okazuje się -1. Zamiast powodować błąd, ta pętla nie powinna nic robić. W języku piekła takie problemy się nie pojawią. Używaj Naturalnego i Pozytywnego dla zdrowia.
Dane są ogólna koncepcja za wszystko, z czym działa komputer.
Zmienne używane do przechowywania danych w Pascal mogą być różne rodzaje. W szczególności wiąże się to z chęcią uzyskania bardziej kompaktowych i szybszych programów, które zużywają mniej pamięci w swojej pracy.
Na przykład przechowywanie małych liczb wymaga mniej pamięci niż przechowywanie dużych liczb. Liczby całkowite z zakresu 0-255 zajmują tylko 1 bajt pamięci, podczas gdy wyższe liczby wymagają więcej bajtów. Jeśli zgodnie z logiką programu wiadomo, że wynik nie przekroczy 255, to do jego przechowywania wystarczy użyć zmiennej jednobajtowej.
Z drugiej strony współczesne procesory zwykle przetwarzają liczby całkowite i liczby rzeczywiste inaczej. Na przykład, instrukcje arytmetyczne liczb całkowitych w procesorach i80x86 są wykonywane bezpośrednio w głównej jednostce ALU i wymagają stosunkowo krótkiego czasu procesora. Podczas gdy operacje na liczbach rzeczywistych są wykonywane przez koprocesor matematyczny, który, choć ma świetne możliwości przetwarzania, ale wymaga znacznie więcej czasu, aby uzyskać wynik.
Dlatego jeśli logika algorytmu nie wymaga użycia liczb rzeczywistych, nie ma sensu używać niewygodnej arytmetyki „pływającej”. Po wskazaniu w programie, że ta zmienna jest liczbą całkowitą, programista faktycznie instruuje kompilator, aby przetwarzał ją za pomocą szybkiej ALU procesora głównego, bez konieczności używania koprocesora.
Ponadto można zdefiniować różne operacje dla różnych typów danych. Na przykład nie ma sensu wykonywać operacji dzielenia ciągów znaków ani dodawać prawdziwej zmiennej z logiczną. Jeśli typ zmiennej jest określony podczas deklaracji zmiennej, kompilator może monitorować poprawność wyrażeń, w których ta zmienna będzie używana. Pozwala to nieznacznie zmniejszyć liczbę błędów w programie.
Pascal ma typy danych proste, złożone i referencyjne. Teraz szczegółowo zapoznamy się tylko z pierwszym z nich, a resztę omówimy w kolejnych wykładach.
DO proste typy odnosić się:
- logiczne
- typy liczb całkowitych
- prawdziwe typy
- postać
1. Typ boolowski (typ boolean)
Wartość logiczna to jedna z dwóch wartości prawdy oznaczonych zastrzeżonymi nazwami. fałszywe i prawdziwe.
Typ boolowski jest zdefiniowany w ten sposób fałszywe < prawdziwe. Operacje w związku zawsze dają logiczny wynik. Na przykład stosunek
dla x \u003d 0, y \u003d 0 daje fałszywe; przy x \u003d 0, y \u003d 10 - wartość prawdziwe.
2. Typy danych całkowitych
Wartości zmiennych typu całkowitoliczbowego są elementami ograniczonego podzbioru liczb całkowitych; ten podzbiór jest określony przez konkretną implementację.
W standardowy Pascal zdefiniowany jest tylko jeden typ danych liczb całkowitych - typ liczba całkowita. Wpisz numer liczba całkowita zajmuje dwa bajty pamięci; podczas gdy bit zerowy określa znak liczby.
W realizacji Pascala, z którym będziemy współpracować, w zmienne typu liczba całkowita liczby całkowite mogą być przechowywane w zakresie od –32768 do +32767.
Ponadto Turbo Pascal ma dodatkowe typy danych liczb całkowitych:
1) typ skrót - krótka liczba całkowita, jeden bajt ze znakiem (znak zajmuje bit zerowy), granice zmiany wynoszą -128 .. 127;
2) typ bajt - krótka liczba całkowita o długości jednego bajtu bez znaku (wszystkie osiem bitów to cyfry binarne), granice zmiany wynoszą 0 .. 255;
3) typ słowo - liczba całkowita dwa bajty (słowo) bez znaku, granice zmiany wynoszą 0 .. 65535;
4) typ longint - długa liczba całkowita 4 bajty ze znakiem, granice zmiany wynoszą 2 147 483 648 .. 2 147 483 647.
W przypadku liczb całkowitych dozwolone są następujące operacje arytmetyczne:
Dodanie;
- odejmowanie;
* mnożenie;
div dzielenie całkowicie (zwróć uwagę, że tradycyjny znak podziału „/” zwraca liczbę ułamkową w Pascalu, więc wyniku takiej operacji nie można przypisać do zmiennej całkowitej).
mod pozostała część dywizji.
Pod względem arytmetycznym dwa znaki operacji nie mogą stać obok siebie. Na przykład nie możesz napisać * -b. Tutaj musisz napisać * (-b).
Starszeństwo operacji:
1) wyrażenia w nawiasach;
2) *, div, mod (operacje multiplikatywne);
3) +, - (operacje addytywne).
Operacje o tym samym stażu pracy wykonywane są od lewej do prawej.
Operacje podnoszenia mocy w Pascal nie są. W przypadku wykładników całkowitych tę operację można zastąpić mnożeniem wielokrotnym.
Następujące predefiniowane funkcje dają cały wynik:
1) abs (i) jest wartością bezwzględną argumentu liczbowego i;
2) sqr (i) - kwadrat wartości argumentu liczb całkowitych i;
3) trunc (R) - całość wynikająca z odrzucenia ułamkowej części liczby R;
4) round (R) - liczba całkowita uzyskana przez zaokrąglenie R.
trunc (3.3) \u003d 3; okrągłe (3,3) \u003d 3;
trunc (3,5) \u003d 3; okrągłe (3,5) \u003d 4;
trunc (3,8) \u003d 3; okrągły (3,8) \u003d 4;
trunc (-3,3) \u003d -3; okrągłe (-3,3) \u003d -3;
trunc (-3,8) \u003d -3; round (-3,8) \u003d -4.
3. Prawdziwe typy
Liczby rzeczywiste są liczbami zmiennoprzecinkowymi. Ich powszechne stosowanie jest charakterystyczne dla problemów inżynieryjnych.
W przypadku braku koprocesora wdrażany jest tylko jeden prawdziwy typ - typ real; w obecności koprocesora typy są również implementowane pojedynczy, podwójnie, rozszerzony, komp. Typy rzeczywiste różnią się między sobą liczbą cyfr przydzielonych do reprezentacji mantysy i porządku.
Dla typu real zdefiniowano cztery operacje arytmetyczne:
Dodawanie odejmowanie
* mnożenie / dzielenie
Wynik operacji „+”, „-”, „*” jest wartością rzeczywistą, jeśli przynajmniej jeden z operandów jest typu real. Operacja „/” podaje rzeczywistą wartość w przypadku, gdy oba operandy są typu całkowitego.
Funkcje standardowe abs (x) i sqr (x) dają prawdziwy wynik, jeśli argument x jest typu real. Niezależnie od rodzaju argumentu, następujące standardowe funkcje zawsze dają prawdziwy wynik: sin (x), cos (x), ln (x), exp (x), arctan (x), sqrt (x) (pierwiastek kwadratowy).
Rzeczywisty wynik z prawdziwym argumentem jest również podawany przez funkcje
Int (x) jest liczbą całkowitą rzeczywistej wartości x;
Frac (x) jest ułamkową częścią rzeczywistej wartości x.
4. Typ danych znakowych (typ znaków)
Wartości zmiennych znakowych są elementami skończonego i uporządkowanego zestawu znaków. Ten zestaw może nie być taki sam na różnych komputerach.
Wartość zmiennej typu znaku jest oznaczona pojedynczym znakiem zawartym w apostrofach.
„A” „a” „8” „” „” (apostrof jest zapisywany dwukrotnie)
Niezależnie od implementacji, następujące założenia są ważne dla typu znaku.
1) Cyfry dziesiętne od „0” do „9” są uporządkowane zgodnie z ich wartościami i zapisywane jedna po drugiej.
2) Wszystkie wielkie litery alfabetu łacińskiego od „A” do „Z”. Ten zestaw jest posortowany alfabetycznie, ale niekoniecznie połączony. Dlatego w każdej implementacji należy wykonać „I”.< "J".
3) Mogą występować małe litery alfabetu łacińskiego od „a” do „z”. Jeśli tak, to ten zestaw liter jest uporządkowany alfabetycznie, ale niekoniecznie połączony.
Dla typu znaku zdefiniowane są dwie wzajemnie odwrotne funkcje transformacji ord i chr:
k \u003d ord (ch) - numer seryjny znaku ch;
ch \u003d chr (k) - znak o numerze seryjnym k.
Dla typu znaku wszystkie operacje relacji są zdefiniowane.
Uważa się, że ch1< ch2, если ord(ch1) < ord(ch2).
Struktura programu Pascal
Program pascal składa się z nagłówka programu i bloku:
Tytuł programu;
Blok .
Nagłówek składa się ze słowa kluczowego programu i nazwy programu:
Przykład programu;
Blok zawiera sekcje opisów, w których zdefiniowane są wszystkie obiekty lokalne dla danego programu, oraz sekcję operatorów, w których określone są działania, które należy wykonać na tych obiektach. Blok składa się z następujących sekcji:
1. Sekcja opisu etykiety.
2. Sekcja opisu stałych
3. Sekcja opisu typu
4. Sekcja opisująca zmienne.
5. Sekcja opisująca procedury i funkcje.
6. Operatorzy sekcji.
W bloku może brakować dowolnej sekcji oprócz sekcji operatora.
1. Sekcja Opis etykiety
Każdy operator w programie może być oznaczony etykietą. Etykieta jest umieszczona przed operatorem i jest od niej oddzielona dwukropkiem. Wszystkie tagi muszą być opisane w sekcji opisu tagu.
Etykieta 10, 20, Met15;
2. Sekcja opisu stałych
W tej sekcji niektóre identyfikatory są synonimami stałych.
TextString \u003d "Naciśnij Enter";
Stała pi jest predefiniowana i równa się
pi \u003d 3,1415926536.
Zastosowanie stałych identyfikatorów poprawia czytelność programu i ułatwia jego modyfikację.
3. Sekcja opisu typu
Typy danych: real, integer, boolean, char są predefiniowane i są używane w sekcji opisu zmiennych. Jeśli programista musi wprowadzić nowy typ danych, należy go opisać w sekcji opisu typu.
Później porozmawiamy o opisie nowych typów.
4. Sekcja opisu zmiennych
Każda nazwa zmiennej, tablicy lub innego obiektu programu musi być podana w sekcji opisu zmiennej.
Var i, j, k: liczba całkowita;
5. Sekcja opisująca procedury i funkcje
Cel i struktura tego rozdziału zostaną przedstawione przy rozważaniu procedur i funkcji.
6. Sekcja operatorów
Sekcja zawiera operatorów, którzy implementują przetwarzanie informacji w programie. Sekcja instrukcji jest szczególnym przypadkiem instrukcji złożonej, która zawiera jedną lub więcej instrukcji zawartych w „nawiasach instrukcji” zaczynają się… kończą. Separator między operatorami jest średnikiem. W kolejnych wykładach zajmiemy się podstawowymi operatorami języka Pascal.
Część nr 9 (2 godziny)
Operator przypisania. Wejście wyjście
w programach Pascal
Operator przypisania. Pisanie wyrażeń arytmetycznych
Procedury wprowadzania danych z klawiatury
Procedury wyświetlania ekranu
Każdy profesjonalista był kiedyś czajnikiem. Na pewno znasz stan, w którym „nie wiesz, jak zacząć myśleć, myśleć o czymś takim”. Na pewno masz do czynienia z sytuacją, w której po prostu nie wiesz od czego zacząć. Ta książka jest skierowana specjalnie do osób, które chciałyby zostać programistą, ale absolutnie nie wiedzą, jak rozpocząć tę ścieżkę. ...
Prawie wszystkie typy danych liczb całkowitych są względne. Te typy danych reprezentują liczby całkowite w określonym zakresie. Konkretne nazwy typów liczb całkowitych i zakresów wartości zależą od konkretnego języka programowania, kompilatora i trybu kompilacji. Dowiedz się więcej na ten temat w dokumentacji kompilatora.
Na przykład typ danych Liczba całkowita w Delphi ma zakres -2147483648 ... 2147483647, podczas gdy w Turbo Pascal typ danych to Liczba całkowita reprezentuje liczby z zakresu -35768 ... 32767. Free Pascal ma szereg wartości typów Liczba całkowita zależy od wybranego trybu.
Ponieważ Lazarus korzysta z kompilatora Free Pascal, wszystko, co zostało powiedziane o typach danych w odniesieniu do Free Pascal, dotyczy również Lazarus.
Zatem całkowite typy danych Free Pascal są wymienione w tabeli 13.1.
Tabela 13.1. Typy danych całkowitych Free Pascal (Lazarus).
Typ | Rozmiar, bajty | Zakres wartości |
Bajt | 1 | 0…255 |
Skrót | 1 | -128…127 |
Smallint | 2 | -35768…32767 |
Słowo | 2 | 0…65535 |
Liczba całkowita | 2 lub 4 | Zależy od trybu kompilacji |
Kardynał | 4 | 0…4294967295 |
Longint | 4 | -2147483648…2147483647 |
Longword | 4 | 0...4294967295 |
Int64 | 8 | -9223372036854775808...9223372036854775807 |
QWord | 8 | 0...18446744073709551615 |
UWAGA
W darmowych typach pascala Int64 i QWord nie są! Oznacza to, że nie można ich używać, na przykład do zmiennych indeksowych w pętlach. Przywiozłem je tutaj, aby nie opisywać w przyszłości osobno i zebrać w jednym miejscu wszystkie liczby całkowite Free Pascal. Jeśli nie rozumiesz niektórych słów, nie bój się. W odpowiednim czasie opowiem o wszystkim bardziej szczegółowo.
A teraz kilka wyjaśnień do tabeli.
W kolumnie TYP podane są identyfikatory typu danych ( słowa kluczowe, które wskazują kompilatorowi, do jakiego typu należą te dane). Dowiesz się, jak korzystać z tych identyfikatorów podczas poniższych lekcji.
W kolumnie ROZMIAR Wskazany jest rozmiar typu danych w pamięci komputera. Na przykład dodatnia liczba całkowita może być reprezentowana przez różne typy: Bajt, Słowo, Kardynał itp. Jednak numer typu Kardynał zajmie 4 bajty w pamięci, a numer typu Bajt - tylko 1 bajt. Dlatego jeśli wiesz na pewno, że liczba, z którą pracujesz, nigdy nie przyjmie wartości większej niż 255, lepiej zdefiniuj ją jako typ Bajt, ponieważ pozwoli to zaoszczędzić miejsce w pamięci komputera. Chociaż nie wszystko jest tutaj takie proste (niuanse alokacji pamięci i innych zasobów komputerowych są poza zakresem).
W kolumnie ZASIĘG zakres wartości określonych przez typ danych jest określony. Na przykład liczba jak Bajt może przyjmować wartości od 0 do 255.
A teraz ćwicz. Napiszemy program, który wyświetla zakresy wartości wszystkich typów danych całkowitych. Kod źródłowy tego programu pokazano poniżej:
Listing 13.1. Program do wyświetlania zakresów liczb całkowitych. program td; ($ mode objfpc) ($ H +) używa ($ IFDEF UNIX) ($ IFDEF UseCThreads) cthreads, ($ ENDIF) ($ ENDIF) Klasy (potem można dodawać jednostki); rozpocznij Writeln („Byte:”, Low (Byte), „..”, High (Byte)); Writeln („Shortint:”, Low (Shortint), „..”, High (Shortint)); Writeln („Smallint:”, Low (Smallint), „..”, High (Smallint)); Writeln („Word:”, Low (Word), „..”, High (Word)); Writeln („Integer:”, Low (Integer), „..”, High (Integer)); Writeln („Cardinal:”, Low (Cardinal), „..”, High (Cardinal)); Writeln („Longint:”, Low (Longint), „..”, High (Longint)); Writeln („Longword:”, Low (Longword), „..”, High (Longword)); Writeln („Int64:”, niski (Int64), „..”, wysoki (Int64)); Writeln („QWord:”, niski (QWord), „..”, wysoki (QWord)); Readln koniec.
Standardowa funkcja Niska określa minimalną wartość dla typu danych. Funtsia Wysoki określa maksymalną wartość. Z funkcjami Writeln i Readln już trochę wiesz. Porozmawiamy więcej o podprogramach (procedurach i funkcjach) w odpowiedniej sekcji.
Na koniec powiem, jak dane całkowite są zapisywane w programie. Tak, jak i wszędzie - wystarczy wpisać liczbę, bez cudzysłowów i żadnych dodatkowych znaków. Na przykład tak
10
178
35278
To prawda, że \u200b\u200bdotyczy to liczb w systemie dziesiętnym. Na pewno już wiesz, że istnieją inne systemy. Najbardziej rozpowszechnione systemy liczb binarnych, dziesiętnych i szesnastkowych.
Free Pascal obsługuje cztery formaty nagrywania liczb całkowitych:
- Zapis dziesiętny. Tylko liczba, na przykład 10.
- Notacja szesnastkowa. Liczba z prefiksem $. Na przykład liczba szesnastkowa $ 10 jest równa liczbie dziesiętnej 16.
- Zapis ósemkowy. Liczba z prefiksem &. Na przykład liczba ósemkowa i 10 to liczba dziesiętna 8.
- Zapis binarny. Liczba z prefiksem%. Na przykład liczba binarna% 10 to liczba dziesiętna 2.
Zadanie domowe:
Utwórz program, który wyświetla zakresy wartości całkowitych (Listing 13.1). Skompiluj program i uruchom go. Upewnij się, że wartości te są zgodne z tabelą 13.1.
W kod źródłowy programy, znajdź wiersz, który ustawia tryb kompilacji:
($ mode objfpc) ($ H +)
W tym wierszu zamiast słowa objfpc Napisz słowo tp. Oznacza to, że ostatnia linia powinna wyglądać następująco:
($ mode tp) ($ H +)
Uruchom program. Zobacz zakres wartości typów Liczba całkowita. Wyciągać wnioski.
Naucz się myśleć jak programista, czyli logicznie. Nikt was nie przeżuje aż do przejścia na emeryturę, tak jak teraz. Musisz przyzwyczaić się do samodzielnego myślenia. W przeciwnym razie wpadniesz w „małpą zasadę uczenia się”, a wtedy twoje szanse zostania fajnym programistą zbliżą się do zera. Aby pomóc ci nie wpaść w poziom „wkuwania”, okresowo zostawiam luki w twoim treningu, abyś sam spróbował wymyślić jakieś rzeczy.
O wiele lepiej, jeśli pomyślisz o sobie zła decyzja, sam znajdziesz błąd i sam go poprawisz, który zawsze będzie korzystał z cudzych poprawnych decyzji i głupio je kopiował.