Tudd Intuíció, előadás

Itt jegyezzük meg, Egész tartomány és méret egybeesik LongInt. Tulajdonképpen ez függ a FPC módot. Tervezet lehet összeállítani a különböző módok támogatására Delphi, például, vagy a TP (Turbo Pascal). Alapértelmezésben az Object Pascal tegye módban. ezt lehet ellenőrizni fut egy olyan környezetben, Lazarus menüpont Project -> Project Options. Ezután a fordító opciók a kiválasztott kezelés. A tetején van a szintaxis üzemmód. Az alapértelmezés az Object Pascal. de meg lehet változtatni, és ha szükséges.

Tehát, ha van kitéve Object Pascal vagy Delphi módban. Egész majd a mérete 32 bit vagy 4 bájt. Ha tesszük a régi rendszer Turbo Pascal és Free Pascal. Egész majd a mérete 16 bit vagy 2 bájt, és megfelelnek smallint típusú.

Miért van szükség egy ilyen sokféle integer típusú? A régi időkben a RAM elég kicsi volt. Ha most már telepítve van a számítógép RAM 4 GB, egyszer régen meg kellett foglalkozni a számítógép processzor 486 RAM, mint 16 megabájt. és lehet hinni, nem ez volt a legrosszabb számítógépet. Abban az időben, a programozók harcolt minden bájtot, felülírva és minimalizálja kódot választotta a lehető legkisebb adattípusok. Ez az úgynevezett kód optimalizálása. Tegyük fel, hogy végre kell hajtani minden ciklusban 10-szer. Kiszámításához a ciklus lépést meg kell hozzon létre egy változó típusú egész. De miért egy változót Egész 4 byte, ha lehetőség van egy byte-os Byte. Most persze, hogy nem játszik olyan nagy szerepet, mint korábban, de még mindig, kód optimalizálása - annak a jele, egy jó programozó jó programozási hangot. Így próbálja, hogy nem költenek feleslegesen extra memóriát.

Ajánlások ide tartoznak: ha tudja, hogy ez a szám előjel nélküli, majd válassza előjel nélküli típus. Ha pontosan tudja, mi az a maximális száma változó kicsi, válasszon kisebb fajta. Ha nem tudják, mekkora a szám esik a változó, válassza Integer - egy univerzális típus, mely a legtöbb esetben. Nos, ha biztos benne, hogy a szám nagyon nagy, 4 vagy akár 8 bájtos típusok.

valós számok

Úgy hívják a valós számok egy tört része, és ha a tört része nulla, akkor is meg kell adni. Például:

Ezek a számok az úgynevezett lebegőpontos számok. mivel a számjegyek száma a tizedespont után különböző lehet. A valós számok vannak írva bizonyos szabályok szerint. Ha a matematika mi tört része vesszővel elválasztva, a Lazarus erre a célra pont. Ha megad egy nagyon nagy szám, akkor választhat egy rövidített formáját. Ha a matematika ezt a számot megszorozzuk a tizedes fok, például

A Lazarus helyett 10 pont betű (inkább az angol kitevő - a kitevő.):

Képzés negatív lehet:

Valós típusok túl sok. A jellemzés a valós számok játszott szerepét nem csak a méret elfoglalt a memóriában, hanem a több számjeggyel:

Táblázat 8.2. valós számok

Mint látható, a valós számok sokkal inkább az egész, a CPU feldolgozási ideje ezek a számok költenek túl tovább. Ezért a valós számok kell alkalmazni csak szükség, ha a egész nyilvánvalóan nem elég. Ne hallgass azokra, akik kínálnak minden alkalomra, hogy egy fajta Real - és az egész, és a valós számokat.

Ajánlások itt ugyanaz, mint egész - válaszd ki azokat az igény. Különösen kiemelik devizaneme - jött létre kifejezetten pénzügyi számításokat, így bármilyen számviteli becslések jobb választani az ilyen típusú, mint a legpontosabb. De a legtöbb költség típusú Real (vagy Double).

Manipulálása egész és valós számok

Egész számok adhatunk (+), kivonás (-), és megszorozva (*) egymással. A szétválás sokkal bonyolultabb. Tegyük fel, hogy már 10 osztva 3 Get 3,33333 ..., és ez nem egy egész szám. Ezért, a egészek Pascal által biztosított egész osztás. Működés biztosít div osztás, és visszaadja egész részét, elöntve a frakcionált. Például, 10 osztva 8 lesz egyenlő 1,25. Ha alkalmazza a osztás. 10, a div 8 = 1. Ahhoz, hogy megtalálja a többi, miután az osztály alkalmazni üzemmódra. 10 mod 8 = 2.

Aritmetika valós számok még könnyebb, a következő alapvető műveleteket itt alkalmazni. + (Addition) - (kivonás), * (szorzás) / (osztás).

Ezen kívül, mint egész, valamint a valós számok egymáshoz képest logikai operátorok használatával. = (Egyenlő), <> (Nem egyenlő),> (nagyobb, mint) <(меньше),>= (Azonos vagy annál nagyobb) <= (меньше или равно).

Sokszor van szükség, hogy egy nagy és összetett kifejezések, amelyeket együtt aritmetikai és logikai műveletek. Itt a lényeg - ne feledkezzünk meg a prioritásokat. Vegyük a kifejezést

Mi lesz a változó r. Ha a válasz 11, akkor igazad van. Ahhoz, hogy végre kell hajtani a kiegészítést. kell őket zárójelbe, amelyek a legmagasabb prioritást:

Ebben az esetben a változó számú 14 r esik.

Köszönöm a csodálatos természetesen!

Az önálló munka №2 összeállításához MyCript.pas modul (OS: Windows 7 x64, Lazarus 1.4 Win64) kiadott egy hiba assembly kódot

mycript.pas (54,5) Hiba: Asm: [tolja reg32] érvénytelen kombinációját műveleti kód és operandusok
mycript.pas (95,5) Hiba: Asm: [pop reg32] érvénytelen kombinációját műveleti kód és operandusok

Megértem, hogy a pálya kész a 32 bites operációs rendszer, de mi a helyzet abban az esetben a 64 bites rendszereket?

A rakodók FileCreate menüpontok és FileOpen, valamint a záró formájában felvezető OnClose - e három eljárások ugyanazt a kódot tartalmazza

nekik, mielőtt az új szöveg>
ha Memo1.Modified ezután kezdődik
// ha a felhasználó vállalja, hogy mentse a változásokat:
ha MessageDlg ( „Mentés másként”
„A jelenlegi fájl megváltozott. Változások mentése?
mtConfirmation, [mbYes, mbNo, mbIgnore], 0) = mrYes majd
FileSaveClick (feladó);
végén; // ha

Hadd kérdezzem meg: nem lenne jobb, ha ezt a kódot egy külön eljárás, például - formájában egy eseménykezelő OnCloseQuery? Amennyire vissza tudok emlékezni Delphi tapasztalat, hívja ezt az eljárást önmagában nem vezethet bezárása formájában. Ez azt jelenti, hogy lehet használni eljárások Memo1 tisztítás és olvasni a fájlt. Vagy Lazarus nem tudod?

Kapcsolódó cikkek