Kifejezések és Delphi operátorok

Delphi kifejezései

A Delphi programokban a
  • matematikai kifejezések
  • logikai kifejezések
  • string kifejezések
Hát és mások.

Matematikai kifejezések

Matematikai kifejezésekben a hozzárendelési műveleteket használjuk: =. kiegészítés +. kivonás -. szorzás *. választóvonal /. egész osztás div. a többi mod. E műveletek használata során elsőbbséget élveznek azok végrehajtása, hiszen a Delphi programozásban, mint a normál matematikában, a kifejezéseket a sorrendben hajtják végre, és a prioritást figyelembe veszik. A szorzás és a megosztás műveletei nagyobb prioritást élveznek, mint a műveletek hozzáadása és kivonása.
Vagyis az expresszió eredménye

nem lesz egyenlő 1-vel, mint a szekvenciális végrehajtás esetén, hanem 6.2.

Ha szekvenciális végrehajtást akarunk szerezni, akkor zárójelek () szükségesek, amelyek elkülönítik az először végrehajtandó műveleteket. A konzolokat egymásba ágyazhatjuk korlátlan számú alkalommal:

Most X lesz 1.

A Delphi négy matematikai műveletén kívül számos matematikai függvény létezik, például tigometrikus, logaritmikus stb. A program a Math modul Interfész szekciók részének hozzáadása után válik elérhetővé. A leírása megtalálható a Math.pas modulban (megtalálható a Windows keresés használatával). Sokuk megvalósítható önállóan, de a beépített funkciók valószínűleg gyorsabban és jobban dolgoznak. az assembly nyelvén.

Logikai kifejezések

A logikai kifejezéseket logikai típusú operandusokon hajtják végre, azaz Boolean Delphi típusúak. Főként feltételes szolgáltatóknál használják őket.

A Delphi üzemeltetői

Az összetett algoritmikus logikát végrehajtó alkalmazások létrehozásához olyan eszközökre van szükség, amelyek segítségével kezelheti a program előrehaladását: megváltoztathatja az üzemeltetők végrehajtásának sorrendjét a különböző feltételek függvényében és a gyakran ismételt töredékek munkájának hatékony szervezését. Matematikailag bizonyított, hogy bármilyen algoritmust kódolhatunk
  • egy megbízás üzemeltetője
  • feltételes nyilatkozat
  • a ciklus üzemeltetője
A ": =" hozzárendelési operátorral már találkoztunk a Delphi 2 leckében. A következőképpen működik. A kezelő bal oldalán lévő változó egyenlő a jobb oldalon lévő értékkel. Ezeknek a mennyiségeknek egybe kell esnie. A jobb oldalon található kifejezésben egy bal oldali változó is használható. Matematikai szempontból ez nem megfelelő, de a programozásban ez azt jelenti, hogy az eredeti értéket a memóriakártyából vettük, a számítások végrehajtásra kerülnek, és az eredmény ugyanabba a memóriahelyre van írva, törölve az előző értéket. például:

A töredék elején az A változó 3, a végén pedig -25.

A feltételes üzemeltető lehetővé teszi, hogy az üzemeltetők végrehajtásának sorrendjét bizonyos feltételek teljesülésétől függően megváltoztassuk. Íme, hogyan írták:

ha feltétel, akkor cselekvés más alternatív;

A (if), majd (majd), egyéb (egyébként) szavak le vannak foglalva. Az akció és az alternatíva bármelyik Delphi kijelentés vagy több, a kezdet / végén logikai zárójelben található állítás. vagy alprogramhívást. Ha a feltétel igaz, akkor a művelet végrehajtásra kerül. ha hamis, akkor egy alternatíva teljesül.
A feltétel logikus kifejezés. Összehasonlítja a kifejezések (beleértve a logikai értékeket is) értékeit, hívja azokat a függvényeket, amelyek visszaküldik a Boolean típusú értékeket. és ezeket az értékeket logikai műveletekkel ötvözve:

A logikai műveletek kombinálhatók kötegek segítségével:
és (logikai AND)
vagy (logikai OR)
xor (exkluzív OR)
Bizonyos típusú adatok esetében további műveletek vannak. Például készlet esetén az operátor a. amely ellenőrzi, hogy egy érték szerepel-e a készletben. Például:
X: = [2, 4, 5, 7, 8, 10];
Az X-ben szereplő 2 kifejezés igaz (igaz);
Az X-ben szereplő 6 kifejezés hamis (hamis);

Logikai nem-negáció


A logikai AND művelet eredménye igaz. ha mindkét operandus igaz.
A logikai VAGY művelet eredménye igaz. ha legalább az egyik operandus igaz.
Az exkluzív VAGY művelet eredménye igaz. Ha az operandusok nem egyenlőek egymással.


A hurok operátorok lehetővé teszik, hogy ugyanazt a műveletsorrendet ismételje meg. A Delphi-ben három operátor teszi lehetővé ezt:
  • "egyszerű" hurok operátor
  • feltételes hurok nyilatkozat
  • feltételes ismétlő operátor

Egy egyszerű hurokkifejezést használunk, ha ismeri a ciklus ismétléseinek számát. Így van így:
a számlálóhoz: = expression-1toexpression-2
hajtsa végre a cselekvést;
A számláló olyan változó, amelyet be kell mutatni a logikai blokk előtt, amelyikben a hurok utasítás található, és annak típusának az egyik felsorolt ​​típushoz tartozik, általában az egész szám.
Az Expression-1 és a expression-2 lehet egy állandó vagy egy azonosító vagy egy függvényhívás.
Művelet - egy vagy több Delphi állítás. Ha ez az operátorok egy csoportja, akkor azokat be kell zárni a kezdet / végén logikai zárójelekbe.
A kezelő munkájának elején a számlálóváltozó az 1. kifejezés értékét kapja. Ha a számláló értéke kisebb vagy egyenlő a 2. kifejezés értékével. akkor a műveletbe lépő operátorok végrehajtásra kerülnek. Ez egy ciklus. Ezután a számlálóváltozó az aktuális értéket követően értéket vesz, és új ciklus kezdődik, vagyis a számláló és a 2-es kifejezés összehasonlítása. végrehajtása. és így tovább, amíg a számlálóérték értéke nem haladja meg a 2. kifejezés értékét.
A hurokkezelő munkája lehetséges, ahol a számlálóváltozó nem növekszik, de csökken. Ebben az esetben a kulcsszó helyett a downto:
a számlálóhoz: = expression-1 downto expression-2 action;
Ennek megfelelően az 1. kifejezésnek nagyobbnak kell lennie vagy egyenlőnek kell lennie a 2. kifejezéssel.

A feltételes hurokkibocsátás megfelelő akkor, ha az ismétlések száma nem ismert előre:
míg a feltétel nem
a ciklus teste;
Ez a hurok végrehajtódik, amíg a feltétel igaz (egy logikai érték, amely egy logikai értéket ad vissza). Ha ez a kifejezés egyszerre hamis. a hurok teste nem kerül végrehajtásra egyszer.
Szükség van szoros figyelemmel kísérni az állapot írását és a ciklus végének vezérlését, mert a hiba eredményeként a ciklus hossza végtelen számú alkalommal megismétlődik, ami a "lógó" és a "lógó" programhoz vezet.

A feltételes ismétlő operátor először végrehajtja a hurok testét. és ellenőrzi a feltételt:
ismétlés
a ciklus teste
amíg az állapot;
Így ez a hurok opció biztosítja, hogy a hurok test legalább egyszer végrehajtódjon. És végrehajtásra kerül, amíg az állapot igaz (vagyis igaz). Érdemes megjegyezni, hogy ez az egyetlen Delphi nyilatkozat. amelyben a hurok testének nincs szükség a kezdet / végén logikai fogasokba zárni. A ciklus testének kezdetét és végét a kulcsszavak határozzák meg, és a.

A ciklus üzemeltetőivel együtt speciális parancsokat használnak:
  • ciklus megszakítás parancs
  • ciklus folytatási utasítás
A hurok megszakítás parancsot akkor használják, ha a hurok karosszériarendszer végrehajtásakor le kell zárni. Itt van a parancs:
break;
Végrehajtásakor a vezérlés átkerül az első operátornak a hurokszolgáltató után.
A hurok folytatás parancs lehetővé teszi a hurok folytatását, azonnal elhagyva az összes fennmaradó operátort a hurok testében, azaz a következő iteráció megkezdésével. Itt van a parancs:
Folytatás

A tisztességességben érdemes beszélni egy másik operátorról, amely lehetővé teszi a program sorrendjének megváltoztatását. Ez az ugró operátor:
goto címke;
Címkénként 0 és 9999 közötti érvényes azonosítót vagy számot lehet használni, a címkét először a változó leírása szakaszban kell megadni, de a nem varianciális var paraméter segítségével. és a kulcsszócímke:
a címke címkéje;
vagy
címkék címkék listája;

A program lefelé és felfelé mozoghat. A kettőspont elválasztja a címkét az üzemeltetőtől, amelyre az átmenet történik. Példa az ugrás utasítás használatára:

Ebből a példából egyértelmű, hogy az üzemeltető véget ér; a végleges program soha nem lesz végrehajtva, vagyis a program elakad. Ezért általában egy ugró operátor használata rossz programozási stílus. és használatuk nélkül teljesen lehetséges a feltételes utasítások és a hurokszolgáltatók használata. Az egyetlen olyan eset, amikor a goto utasítás indokolható, több egymásba ágyazott hurkos kimenet, amely egyébként több Break utasítás használatát igényli.

A tömbök rendezése tipikus feladat, ahol hurkot használnak. Számos módszer létezik a tömbök rendezésére. A vizsgált példában a tömb sorrendje a "buborék" módszerrel történik. A program manuális módjában láthatja, hogy a számok hogyan ugorják fel a tömböt, például egy felbukkanó buborék, és ez a módszer neve érthetővé válik.

Type Point = Record // Declare type: Write
n, digit: Integer; // szám és érték: egész számok
végén;
var
Form1: TForm1;
fül: tömb [1..20] pont; // Hozzon létre egy Pont típusú rekordok tömbjét

eljárás TForm1.FormCreate (Feladó: TObject);
kezdődik
StringGrid1.Cells [0, 0]: = 'Number'; // Inicializálja a táblázat oszlopait
StringGrid1.Cells [1, 0]: = 'Érték';
végén;

eljárás TForm1.Button1Kattintson (Feladó: TObject);
var i: Integer;
kezdődik
Véletlenszerű; // Inicializálja a "véletlen" eljárást
I: = 1-től a StringGrid1.RowCount-1-hez
kezdődik
fül [i] .n: = i; // A sorozatszámokat hozzárendeljük a tömb celláihoz
fül [i] .digit: = Véletlen (100); Véletlen értékek hozzárendelése a tömb cellákhoz 0 és 100 között
StringGrid1.Cells [0, i]: = IntToStr (i) + '.'; // Adja meg a táblázatot
StringGrid1.Cells [1, i]: = IntToStr (fül [i] .digit); // Felülírja az értékeket a táblázatban
végén;
végén;

eljárás TForm1.Button3Click (Sender: TObject);
kezdődik
Application.Terminate; // A program befejezése
végén;

Kifejezések és Delphi operátorok

Lehetőség van arra, hogy enyhén javítsuk a válogatási eljárást, amely mintegy negyedével fel fogja gyorsítani. Az az ügy, hogy minden befejezett ciklus után a legnagyobb, még mindig nem rendezett elem a helyére kerül az asztal alján. Vagyis a következő k-es ciklusban már az utolsó k elemeket nem lehet megtekinteni. Ennek megvalósításához meg kell adnia egy változót - a ciklusszámlálót, és el kell távolítani a ciklus változótól. Ugyanakkor 100 000 elem kerül sor 24 másodpercre! Ennek az opciónak a megvalósítását az olvasó biztosítja, tekintettel annak rendkívüli egyszerűségére.

Kapcsolódó cikkek