Kapcsolatok

Felsorolás - mi ez egyszerű szavakkal: a koncepció teljes elemzése. Programlista Mi az a lista a programozásban

Időpont egyeztetés

A forráskódot vagy objektumkód előállítására használják, vagy az értelmező hajtja végre. Az objektumkódon soha nem történik változtatás, csak az eredeti kódon, majd az objektumkódra való újrakonverzió.

A forráskód másik fontos célja egy program leírása. A program szövegének használatával visszaállíthatja a program viselkedésének logikáját. A megjegyzések a forráskód könnyebb megértését szolgálják. Vannak olyan eszközök is, amelyek lehetővé teszik a dokumentáció automatikus lekérését a forráskódból – az ún. dokumentáció generátorok.

Ezen kívül a forráskódnak számos más felhasználási területe is van. Oktatási eszközként használható; A kezdő programozók hasznosnak találhatják, ha megvizsgálják a meglévő forráskódot, hogy megtanulják a programozási technikákat és módszereket. Tapasztalt programozók közötti kommunikációs eszközként is használják (ideális esetben) tömör és egyértelmű jellege miatt. A fejlesztők közötti kódmegosztást gyakran a programozási élmény javításához hozzájáruló tényezőként említik.

A programozók gyakran átviszik a forráskódot egyik projektből a másikba, amit kód újrahasználatnak neveznek ( Szoftver újrafelhasználhatóság).

A forráskód elengedhetetlen összetevője a szoftver más platformokra történő portolásának folyamatában. Bármely szoftver forráskódja nélkül a portolás vagy túl nehéz, vagy lehetetlen.

Szervezet

A szoftver egyes részének (modul, komponens) forráskódja egy vagy több fájlból állhat. A programkód nem feltétlenül csak egy programozási nyelven van megírva. Például a C nyelven írt programok optimalizálási célból gyakran tartalmaznak assembly nyelvi kód beillesztéseit. Olyan helyzetek is előfordulhatnak, amikor egy program egyes összetevőit vagy részeit különböző nyelveken írják, majd egyetlen végrehajtható modulba állítják össze a könyvtárak összekapcsolásaként ismert technológia segítségével ( könyvtár összekapcsolása).

A bonyolult szoftverek felépítéséhez több tucat vagy akár több száz forrásfájl szükséges. Ilyen esetekben a felépítés egyszerűsítése érdekében általában olyan projektfájlokat használnak, amelyek leírják a fájlok közötti függőséget a forráskóddal, és leírják a felépítési folyamatot. Ezek a fájlok a fordító és a fejlesztői környezet egyéb paramétereit is tartalmazhatják. A különböző tervezési környezetek különböző projektfájlokat használhatnak, és bizonyos környezetekben ezek a fájlok univerzális szövegszerkesztőkkel programozó általi közvetlen szerkesztésre alkalmas szöveges formátumúak, más környezetekben speciális formátumok támogatottak, a fájlok létrehozása és módosítása speciális eszközökkel történik. programokat. A projektfájlokat általában forráskódnak nevezik. A modern nyelvi környezetek túlnyomó többségében szükségszerűen projektfájlokat használnak, függetlenül a projektben szereplő többi forráskód összetettségétől. A forráskód gyakran utal különféle adatokat, például egy program felépítéséhez szükséges grafikát tartalmazó erőforrásfájlokra.

A forráskóddal való munka megkönnyítésére, a programozói csapat közös programozására verziókezelő rendszereket használnak.

Minőség

Az emberekkel ellentétben a számítógépnek nincs „jól megírt” vagy „rosszul megírt” kódja. De a kód megírásának módja nagy hatással lehet a karbantartási folyamatra. A forráskód minősége a következő paraméterek alapján ítélhető meg:

  • a kód olvashatósága (beleértve a kóddal kapcsolatos megjegyzések meglétét vagy hiányát);
  • egyszerű támogatás, tesztelés, hibakeresés és hibajavítás, módosítás és portolás;
  • alacsony komplexitás;
  • alacsony erőforrás-felhasználás - memória, processzor, lemezterület;
  • a fordító nem jelenített meg megjegyzéseket;
  • nincs "szemét" - nem használt változók, elérhetetlen kódblokkok, felesleges, elavult megjegyzések stb.

A "demol.c" program listája az ábrán látható. 6.7. A programozó kitalálja a program nevét. A ".c" kiterjesztésre van szükség. A szöveget a "Programmer's Notepad 2" (rövidítve PN2) szerkesztőbe kell beírni, amely a grafikus shell helyett a WinAVR csomagban található. Projektkészítést, hibajavítást, programfordítást és még MK programozást is végez.

Rizs. 6.7. A "demol.c" program felsorolása.

Rizs. 6.8. A PN2 program megjelenése.

A PN2 szerkesztő egy független projekt, saját weboldallal. A PN2 főmenüje az ábrán látható. 6.8.

Eljárás.

1.3 Futtassa a „WlnAVR-20100110-install.exe” (29 MB) fájlt a mellékelt CD-ROM-on. Ez a fájl, ha szükséges, szabadon letölthető az internetről. Telepítse a WlnAVR-t alapértelmezés szerint a C: \ WinAVR-20100110 \ mappába.

2. Nyissa meg a PN2 szerkesztőt: "Start - Programs - WinAVR-20100110 - Programmers Notepad". Sorszámozás engedélyezése: "Eszközök - Beállítások - Általános - Alapértelmezett -<поставить «галочку» возле «Show Line Numbers»>- RENDBEN".

3. Hozzon létre egy új C-fájlt a PN2 szerkesztőben: "Fájl - Új - C / C ++". Írja be a program szövegét a billentyűzetről az ábra szerint. 6.7 és mentse el a merevlemezre: "Fájl - Mentés másként... -<ввести путь и имя файла, например, для однозначности C:\1001\demol.c>- RENDBEN".

A továbbiakban a képernyőképek (képernyőképek) csak a legfontosabb cselekvési pontokon jelennek meg a helytakarékosság érdekében. A többi képernyőkép lépésről-lépésre módban megtekinthető a mellékelt CD-n található oktatóvideókban.

Magyarázatok a listához.

Az 1. sor megjegyzésekkel kezdődik, amelyeket balra két ferde ferde perjel határol. A „//” jelek utáni összes szöveg bármiről szólhat, bármilyen nyelven, bármilyen szabadsággal és rövidítéssel. Ez egy önkényes információ, amelyet a programozó ír magának, kedvesének, hogy egy-két hónap múlva emlékezzen arra, amiről valójában szó esett. Általában a műsor rövid nevét és szerzőjét tüntetik fel.

A 2. sor megjegyzéseket is tartalmaz, de technikai jellegűek. Itt van egy kapcsolási rajz a HL1 jelző és az SB1 gomb csatlakoztatásához az MK portok meghatározott vonalaihoz. A jelek nevei megfelelnek az MHKpocxeMyATmega48A dashit elrendezésének (6.9. ábra).

Rizs. 6.9. Jelelrendezés MKATmega48A.

Az egyszerű diagramok szöveges leírásának gyakorlata a program "fejében" széles körben elterjedt a programozók közösségében, akik lusták grafikus diagramokat rajzolni és alkalmazni, mert azt hiszik, hogy "úgyis minden világos".

A 3. sor határozza meg a "makefile" paramétereit. Referenciaként az AVR-GCC fordító normál működése lehetséges két szükséges fájllal. Az első a „.c” kiterjesztésű listafájl, a második a „makefile” rendszerirányelv fájl kiterjesztése nélkül. A "Makefile"-t a WinAVR-ben található "MFile" segédprogram (6.10. ábra, JoergWunsch, Németország) hozza létre.

Rizs. 6.10. Az MFile program megjelenése.

Eljárás.

1. Futtassa az "MFile" segédprogramot a végrehajtáshoz: "Start - Programs - WinAVR-2010010 - MFile".

2. Töltse ki a sablon mezőit az alábbiak szerint (6.11. ábra):

A "Makefile - Main file name ... - Main file" elembe írja be a fejlesztés alatt álló projekt nevét "demol", majd kattintson az OK gombra;

A "Makefile - MCU type - ATmega" elemben válassza ki az MK "atmega48a" elemet;

A "Makefile - Optimalizálási szint" elemnél állítsa be az optimalizálási szintet "2"-re. További lehetőségek: "0" - nincs optimalizálás, "s" - a kódok minimális hossza, számjegyek "1" ... "3" - ez három különböző optimalizálási módszer, és a "3" szám nem a legjobb megoldást jelenti , minden a konkrét C programtól függ...

A többi "makefile" sablon kitételt nem szükséges javítani, maradjanak az alapértelmezettek.

Rizs. 6.11. A mezők kitöltése az MFile programban.

Minden új projekthez és új típusú MK-hoz saját "makefile-t" kell készítenie, miközben a projekt neve és az MK típusa megváltozik.

A 4. sor megjegyzéseket tartalmaz, amelyek megadják a konfiguráció Low, High és Ext bájtjainak hexadecimális számát. Ezekre az értékekre később szükség lesz az MK biztosítékok programozásakor.

A С «ктг5 információs szempontból üres. Vizuálisan elválasztja a megjegyzés szövegét a program többi részétől. Egy helyett két üres sort is beszúrhat, ami nem fontos. A fő szempont a láthatóság javítása. Ez nem befolyásolja az MK firmware kódok hosszát.

A lista külső kialakítását maga a programozó találja ki, saját elképzelései alapján a kép szépségéről és az információk bemutatásának kényelméről. Gyakran a fejléc stílusa, a sorok és megjegyzések felsorolása alapján beazonosítható a program szerzője vagy megszerkeszthető pszichológiai portréja. Erről a kérdésről érdekes megjegyzések találhatók Alain Golub monográfiájában.

A 6. sort a fordító előfeldolgozója szolgálja ki. Ez nem C állítás vagy megjegyzés. A név bonyolult, de a jelentése egyszerű. Az előfeldolgozó (előfeldolgozó) megkeresi a programban a "#" karakterrel kezdődő sorokat. Továbbá, a kulcsszótól függően, egy bizonyos műveletet hajt végre, például "define" - értékeket rendel az állandókhoz, "ha definiált" - feltételt ellenőriz, "inC1ude" - függvénytárat köt össze stb.

Első ismeretségnek elegendő tudnia, hogy a függvénykönyvtár olyan fájlok halmaza, amelyek szabványos vagy gyakran ismétlődő eljárások szövegeit tartalmazzák. Ebben az esetben a "# inC1ude" direktíva (angolul fordítva. "Include") aktiválja az "avr / io.h" rendszerkönyvtárat, amely az I / O portok működéséért felelős. Ennek a könyvtárnak más a neve a különböző fordítókban, de a lényeg ugyanaz, enélkül nem lehet vezérelni egyetlen sor MK portot sem. Ezért az I / O könyvtár csatlakoztatása minden C mikrokontroller programhoz kötelező.

A 7. sort is a fordító előfeldolgozója dolgozza fel, de benne van a "define" kulcsszó. Ezért deklarál egy INI konstanst, és hozzárendeli a 255 konstans értéket. A megjegyzések a 255 hexadecimális 0xFF és bináris 0bl 1111111 konverzióját jelzik. A különbség a kötelező „0” számjegy után az „x” és „b” betűkben rejlik. A számok megfelelőségét a különböző rendszerekben a táblázat tartalmazza. 6.3.

6.3. táblázat. Számok konvertálása hexadecimálisról binárisra és fordítva

Ha a program "törzsében" valahol találkozunk az INI konstanssal, akkor a fordító habozás nélkül a 7. sorban megadott számértéket helyettesíti helyette, pl. 255. Ez nagyon kényelmes a programozók számára, amikor nagy listákat javítanak, amikor a konstansok szétszórva vannak a szövegben. Ezenkívül az állandó neve szemantikai terhelést is hordozhat, és verbális nyomként szolgálhat. Az INI az angol "inicialization" szó rövidítése, ami valamilyen kezdeti értéket jelent.

A konstansnak a program "fejlécében" való elhelyezésének jelentősége a keresés egyszerűségében és a változtatások gyorsaságában rejlik. Például, ha egyszer kijavította a "255" számot, biztos lehet benne, hogy a szövegben mindenhol automatikusan (és hibamentesen!) kerül be az lNI állandón keresztül.

A programozó a józan ész és az emberi preferenciák alapján találja ki a konstans nevét. A nagy hagyomány szerint az állandók nevét nagybetűvel írják. A névben az első betűnek kell lennie, például I2CBUS, T34. A cirill betű nem megengedett.

Az INI konstans deklarációja még két egyenértékű módon írható fel: "#define INI OxFF" vagy "#define INI Obl 1111111".

A 8. sor tartalmazza az "a" változót leíró operátort. Egy változó képletesen egy dobozként (doboz, doboz, tolltartó) ábrázolható, ahol számos tárgy (gyöngy, szem, gyufa) tárolódik. Hogy a „dobozok” eltérjenek egymástól, különböző feliratokkal vannak jelölve a tokon, jelen esetben az „a” betűvel. Ha a kezdő szám nincs megadva a változóleírásban, akkor a "doboz" üresnek tekintendő, és nullával inicializálódik (a = 0). A program során a „dobozba” tételeket lehet hozzáadni és onnan kivenni, pl. egy változó értékének növelése és csökkentése.

A „doboz” térfogata az eredeti nyilatkozattól függ. Asztal. A 6.4 mutatja az AVR-GCC fordítóban elfogadott határértékeket. Amint láthatja, az "unsigned char" deklaráció lehetővé teszi, hogy 255 elemet helyezzen a "dobozba". A nulla értékkel együtt (üres "doboz") összesen 256 állapot vagy 256 bájt lesz. Az "unsigned long" deklarációjú változó már nem olyan, mint egy koporsó, hanem egy egész vonat, amelyet 4,2 milliárd tételre terveztek.

6.4. táblázat. A változók АУК-ВСС-ben elfogadott dimenziója

Mivel az MK-nak nincsenek kifejlesztett eszközei a negatív számokkal való munkavégzéshez, eleinte, hogy ne keveredjünk össze, jobb, ha csak pozitív számokat használunk a programokban, pl. "aláírás nélküli" nyilatkozatot tartalmaz.

A nyelv "atyái-parancsnokai" Ősidők óta kimondatlan rendet alakítottak ki, amely szerint egy változó neve legfeljebb 8 karakterből állhat. Az AVR-GCC fordító ezt a szabályt figyelmen kívül hagyja, és a változó annyi karaktert tartalmazhat, amennyit csak akar, de fanatizmus nélkül. Az egyetlen dolog, hogy a név első betűjének feltétlenül a latin ábécé betűjének kell lennie, ezt követhetik betűk, számok, szimbólumok. A cirill betű nem megengedett.

A változó, ellentétben az állandóval, tartalmaz valamilyen változó (nem állandó) számot. A változók és az állandók megkülönböztetésére kis betűkkel írják őket. Általában azt próbálják elérni, hogy a név megfeleljen a jelentésnek, például számlálónál "számlálás", adatnál "adat", késleltetésnél "késés". Bár néha az iskolai algebrából jól ismert egyszerűbb, ismerősebb és kompaktabb egybetűs változók a, b, c, d, i, j, k, x, y, z.

Azt, hogy egy adott változóhoz milyen dimenziót kell megadni, a programozó határozza meg. Mivel ebben a listában az "a" változó a digitális 8 bites "C" portról információgyűjtésre szolgáló tároló, ez azt jelenti, hogy "kettőtől a nyolcadik hatványig" bájtot kell tartalmaznia, pl. 0-tól 255-ig.

Érdekes, hogy a fordító nem generál hibát, ha biztonságosan lejátszod, és a margós változót "előjel nélküli hosszú a;-ként" deklarálod. Igaz, ez a kód méretének szükségtelen növekedéséhez vezet 114-ről 126 bájtra, és ennek megfelelően a program végrehajtási sebességének enyhe csökkenéséhez vezet.

A másik véglet a dimenzió alulbecslése, amikor például az "unsigned int" deklarálása helyett az "unsigned char" kifejezést használjuk. Ha egy ilyen változóba 255-nél nagyobb számot adunk meg, akkor a 256-tal való osztásnak csak a maradéka kerül mentésre, és a vezető rész helyrehozhatatlanul elvész. Képletesen szólva a "dobozból" kiöntik a tárgyakat. A fordító nem reagál az ilyen hibákra, feltételezve, hogy a programozó megfelelő állapotban van, és érti, amit csinál. A változók dimenziójának helyes és hibamentes meghatározása általában tapasztalattal jár.

A 9. sor információként üres, hasonlóan az 5. sorhoz. Az, hogy beillesztjük-e a listába, a programozó akaratától függ.

A 10. sor tele van megjegyzésekkel, de a változatosság kedvéért ezek más formátumban vannak. A szöveget ugyanis a bal oldalon "/ *" karakterekkel, a jobb oldalon pedig "* /" karakterekkel húzzák alá. Ez a stílus a C nyelv legősibb változataiból származik. Később a megjegyzésekben a "//" jeleket használták, ami a C ++ nyelvre jellemző. A WinAVR-ben mindkét opciónak egyenlő létjogosultsága van. Az "új" írásmód egyszerűbb és áttekinthetőbb, és a "régi" helyenként az egyetlen lehetséges, ha az operátor elejéhez akarunk hozzászólni.

A 11. sor az Amerikai Nemzeti Szabványügyi Intézet (ANSI) szabályai szerint a "fő" funkció tipikus meghívását tartalmazza. A rövidített kifejezések megengedettek, de nem ajánlottak: "int main ()", "main ()", "main (void)". Néha még azt is írják, hogy "void main (void)", hangsúlyozva a fogadott és átadott paraméterek teljes hiányát. Az egyszerű MK-k esetében, amelyek nem támogatják a valós idejű operációs rendszereket, nem lesznek negatív következmények. Ha azonban a jövőre gondol, jobb, ha azonnal megjegyzi a teljes írásformát, ami megkönnyíti a jövőben a C programok átvitelét a modernebb mikrokontroller platformokra.

A 12. sor az első nyitott göndör zárójel alá megy. Nem véletlenül kapott ilyen kitüntetést. A C fordító a 12. sor végrehajtásakor elvégzi az MK regiszterek kezdeti inicializálását, a verem telepítését és a címtér kiosztását. Nem szükséges megtanulni ennek az ékszerkészítési eljárásnak a mechanikáját (ellentétben az Assembler programjaival!).

A programozó számára a legfontosabb, hogy helyesen tanuljon meg két dolgot, amelyeket a WinAVR-ben található fordító automatikusan előállít:

A program indításakor minden megszakítás le van tiltva;

Minden MK port vonal bemenetként van konfigurálva felhúzó ellenállás nélkül.

13. sor Végül megjelent az első végrehajtható programparancs hozzárendelési utasítás formájában. A szimbólumok magyarázata:

A „DDRB” a „B” port nyolc bites DDR-regiszterének hagyományos neve;

"=" - a DDRB regiszterbe írt adatok jele;

"ОЬ" - jelzi, hogy a következő 8 számjegy bináris kódban lesz;

"11111111" - a DDRB regiszterbe írt bináris szám bitjei, 7, 6, 5, 4, 3, 2, 1, 0 sorrendben (a legjelentősebb bit a bal oldalon, a legkisebb jelentőségű bit a jobb).

Ennek az operátornak a végrehajtása eredményeként a "B" port minden sora kimeneti módba kerül, mivel minden számjegy egységet tartalmaz.

A 13. sorban lévő utasítás balról két szóközzel behúzott. Ez egy olyan szövegformázási konvenció, amelyet sok programozó betart. A fordító "elhallgat", ha tetszés szerint balról kezdi az első vagy a hetedik oszlop szövegét. Csak egy javaslat van: "A C program listája legyen könnyen áttekinthető." Ezt követően a jövőben minden szöveg úgy lesz formázva, hogy a kapcsos kapcsos zárójelek páratlan oszlopokban helyezkedjenek el függőlegesen (1, 3, 5 stb.), és minden oszlopban csak egy nyíló és egy záródó göndör lesz. fogszabályozó alul.

A megadott sorrend nem dogma, hanem egy módja annak, hogy a listát szélességben és hosszban lerövidítsük az információtartalom elvesztése nélkül. Az „otthon” programozónak joga van tetszőleges számú szóközt, üres sort stb.

A / 4-es sor a 13-as sorral együtt működik, mivel az AVR-vezérlők portvonalának konkrét állapotát két DDRx és PORTx regiszter határozza meg, ahol az "x" a port sorszámú betűje, például B, C vagy D. Figyelembe véve, hogy minden regiszter 8 bitet tartalmaz 0 és 7 közötti számokkal (feltételesen "z"), akkor a portvonalak általános elrendezése a következő:

DDRx.z = 1, PORTx.z = 1 - MAGAS szintű kimenet;

DDRx.z = 1, PORTx.z = 0 - ALACSONY kimenet;

DDRx.z = 0, PORTx.z = 1 - bemenet "felhúzó" ellenállással;

DDRx.z = 0, PORTx.z = 0 - bemenet felhúzó ellenállás nélkül.

Összefoglalva a 13. és 14. sorokat: DDRB.0… DDRB.7 = 1, PORTB.O = 0, PORTB.l = 1, PORTB.2… PORTB.7 = 0, tehát a "B" port 0, 2… 7 sorai " LOW kimenetként lesz konfigurálva, az 1. vonal pedig HIGH. Mivel a HL1 jelző a PB1 vonalhoz csatlakozik (a DD1 mikroáramkör 15. érintkezője a 6.3. ábrán), kialszik. Kiderült, hogy a műszaki feladat kezdeti részét sikeresen teljesítették.

A 15., 16. sor hasonló a 13., 14. sorhoz, de a "C" portra vonatkozik. Változásképpen az lNI állandó helyettesítést használjuk. A 15. és 16. sor végrehajtása után a "C" port összes sora, még azok is, amelyek közvetlenül nem vesznek részt a munkában, "felhúzó" ellenállású bemenetként lesznek konfigurálva. Ez egy szabványos technika a portok inicializálására a belső felhúzó ellenállások aktiválására, amelyek megakadályozzák, hogy az MCU vonal CMOS bemenetei lógjanak a levegőben, és kiküszöböljenek mindenféle zajt és felvételi útvonalat.

A 17. sor hasonló a 13., 14. és 15., 16. sorhoz, de a "D" portra vonatkozik. Egyáltalán nem használják az elektromos áramkörben, de ezt szabálynak kell tekinteni - kivétel nélkül az összes portot inicializálni kell a program elején. Az üresjárati vonalakat felhúzó ellenállás bemenetként vagy HIGH / LOW kimenetként kell konfigurálni. A jövőben ez az automatizmus lehetővé teszi az ütközések és félreértések elkerülését.

Különlegesség a PORTD regiszter hozzárendelése a DDRB regiszter 13. sorában korábban megadott értékhez, azaz. az Obl 1111111 bináris szám. Ez oktatási célból történt, mert lehetett volna egyszerűbb is: "PORTD = OxFF;".

Egy másik részlet a DDRD regiszterbe való írás hiánya. Ez nem elírás, hanem a felsorolás szándékos egy sorral való lecsökkentése, hiszen áram bekapcsolásakor az adatlap szerint minden DDRx, PORTx regiszter automatikusan nullákkal töltődik fel, pl. nem szükséges a DDRD regiszter további törlése.

A 18. sor tartalmazza a "while" ciklus utasítást. Az első megismeréshez elég megjegyezni, hogy a "while (1)" kifejezés a 19 ... 21 sorban lévő utasítások végtelen ciklusban történő egymás utáni végrehajtását jelenti.

A 19. sor egy nyitott zárójelet és egy hozzárendelési utasítást tartalmaz. Ezt a kombinációt a C nyelv szabályai lehetővé teszik, ami a listát tömörebb magasságúvá teszi.

A 19. sor végrehajtása után az "a" változó tárolja a "C" port nyolc sorának állapotbájtját, amelyet a PINC regiszterből olvasott ki. Ha az SB1 gombot nem nyomják meg, akkor "a = OxFF", és ha megnyomják, akkor "a = OxFE".

A 20. sor egy bittel balra tolja az "a" változó tartalmát. Két lehetőség lehetséges: ha "a" volt korábban OxFF, akkor OxFE lesz, ha pedig OxFE, akkor OxFD lesz. Hogy miért történik ez, a program következő sora megmondja.

A 21. sor tartalmazza a hozzárendelési operátort, de a 19. sorhoz képest az "a" változó és a portregiszter felcserélődik. A C nyelvben az ilyen öntés azt eredményezi, hogy az olvasási műveletet egy portról írási művelettel helyettesítik egy portra. Összességében a 0xFE kód (ha az SB1 gomb nincs megnyomva) vagy a 0xFD kód (ha az SB1 gomb meg van nyomva) a "B" portra kerül. Az első esetben a HL1 jelzőfény kialszik, a másodikban világítani fog, amit a feladatmeghatározás szerint kellett elérni.

A 22. és 23. sorok záró göndör kapcsokat tartalmaznak. Ha gondolatban húz belőlük két függőleges vonalat "alulról felfelé", akkor azok közvetlenül a 19. és 12. sorban lévő nyitó zárójelekre mutatnak. A 22. sorban lévő zárójel a 19...21. sorban lévő hurok ismétlődését jelzi. A 23. sorban a zárójel balról az első helyen kezdődik, így a "fő" függvény, tehát a főprogram végét értük el.

A 24. sor megjegyzéseket tartalmaz a WinAVR verziószámával és a firmware kódok hosszával kapcsolatban, ami nagyon hasznos, ha más felhasználók fordítják a programot. Ismeretes, hogy a WinAVR verziók nem 100%-ban kompatibilisek egymással, erre vannak szemléltető példák. Következésképpen ugyanazon lista összeállított kódjának hossza kiadásonként eltérő lehet. A gyakorlati következtetés az, hogy először a 24. sorban feltüntetett WinAVR csomaggal kell lefordítani a programot, és csak utána egy régebbi vagy újabb verzióra, ellenőrző összegként ellenőrizve a kapott kódhosszt.

A figyelmes olvasónak joga van észrevenni, hogy a C program listájának összeállításának szakaszában lehetetlen volt előre kiszámítani, hogy a kódok mennyit foglalnak el az MK memóriában. Hogy őszinte legyek, a "114 bájt (2,8%)" felirat később, a program összeállítása után került fel. Van egy jól látható példa a visszacsatolásra, amely az ábra szerkezeti diagramján látható. A 6.1-et szaggatott vonal jelezte a „K” és „L” blokkok között.

A 25. sor teljesen üres, de az 5. és 9. sorral ellentétben ez jelzi a lista fizikai végét. E befejező sor nélkül a fordító enyhe, de mégis figyelmeztetést ad: "Figyelem: nincs új sor a fájl végén".

Mielőtt egy biztonsági vagy kriptovaluta érme elérhetővé válna a kereskedési padlókon lévő kereskedők számára, összetett kiválasztási folyamaton kell keresztülmennie, és szerepelnie kell a listán. Elemezzük egyszerű szavakkal, mi az a tőzsdei bevezetés - mind a tőzsdén, mind a kriptovalutákon, melyek azok a fő szakaszok, amelyeket át kell menni a listára kerüléshez, milyen előnyökkel jár a cég, mi a lényege listáról való törlése.

Mi a listázás

A listázás fogalma életünk különböző területein megtalálható:

  • Részvény- és kriptovaluta tőzsdék- ők lesznek ennek a cikknek a témája. Ez arról szól, hogy értékpapírokat vagy kriptoérméket adjunk hozzá a kereskedési platformok listájához.
  • Cserébe- ez azt jelenti, hogy az egyik vagy másik gyártó termékeit hozzáadják az üzlet kínálatához.
  • A programozásban- ez a program forráskódja (szövege), amelyet a fordító segítségével futtatható kóddá fordítunk.
  • Az ingatlanban- itt vannak aláírt szerződések az ingatlan tulajdonosa és az ingatlant jutalék ellenében értékesítő üzletkötő között.

Az utolsó két iparágat nem vesszük figyelembe. Érdeklődünk a kriptovaluták bevezetése iránt.

Értékpapírok tőzsdei bevezetése és kivezetése

A felsorolás a szólista szóból jelent meg lexikonunkban, amelyet angolul "lista"-nak fordítanak. Az értékpapírok tőzsdére történő bevezetése az az eljárás, amellyel a platformon jegyzett eszközök listájára adják a vállalatok részvényeit, kötvényeit. Ezt követően megvásárolhatók és eladhatók rajta.

A bevezetési eljárást követően az értékpapírok felkerülnek a tőzsde kereskedési listájára.

A piaci szereplők gyakran magát a listát listának nevezik. Sőt, minden oldalnak saját listája van.

A tőzsdei bevezetés kezdeményezője legtöbbször a kibocsátó cég, azonban ritka esetekben maga a tőzsde is kifejezheti óhaját, hogy bizonyos értékpapírokat felvegyen a listájára, ha ezekre informális csatornákon már nagy a kereslet a kereskedők körében.

A cégek számára a tőzsdei bevezetés számos előnnyel jár, ezért nem meglepő, hogy a vállalkozások sok erőfeszítést tesznek ennek az eljárásnak a végrehajtásáért.

A tőzsdei jegyzés fontos, hogy ne tévessze össze az IPO-val. Az első esetben a vállalat egy bizonyos kereskedési platform jegyzési listájára igyekszik bekerülni. Az IPO azt jelenti, hogy a vállalat nyilvános társasággá alakul, és értékpapírjai nemcsak, hanem más csatornákon, például fióktelepein keresztül is a befektetők számára elérhetővé válnak.

A listázás szakaszai

A tőzsdei bevezetési eljárás több szakaszt ír elő, amelyeken a kibocsátó társaságnak végig kell mennie, mielőtt értékpapírjai a befektetők számára elérhetővé válnak.

  1. Minden a kérelem benyújtásával kezdődik. Ezt maga a kibocsátó és a társaság érdekeit képviselő személy is megteheti.
  2. Ezután jön a vizsgálatok szakasza. A tőzsde képviselői elemzik mind az értékpapírokat, mind az összes rendelkezésre álló adatot a cégről. Vizsgálják a vállalkozás jövedelmezőségét és eszközeinek likviditását. A társaság köteles benyújtani az elmúlt évek során gyűjtött összes pénzügyi kimutatást.
  3. Egy speciális bizottság mérlegeli a vizsgálatok eredményeit, és úgy dönt, hogy értékpapírokat vesz fel a tőzsdére, vagy elutasítja a kérelmet.
  4. Ha a döntés pozitív, mindkét fél – a cég és a tőzsde – megállapodást köt.

Az eljárás átlagosan 1-2 hónapot vesz igénybe. A listán maradáshoz a kibocsátónak főszabály szerint negyedévente egyszer be kell nyújtania a tőzsdéhez a szükséges adatokat.

A kereskedési padlók által a vállalatokra alkalmazott tőzsdei bevezetési szabályok eltérőek. Vannak, akik csak olyan társaságokat vehetnek fel a tőzsdére, amelyek kapitalizációja legalább 50 millió dollár, és piaci jelenlétük ideje legalább 3 év. Mások emelhetik vagy csökkenthetik a lécet ezeknek és más követelményeknek megfelelően.

Ha nem minden feltétel teljesül, de az értékpapírok érdeklik a tőzsdét, akkor kapnak egy előzetes értékpapírlistát - ez is ún. előzetes listázás... Ezekkel a részvényekkel a befektetők is kereskedhetnek, azonban a tőzsde falain és a kereskedési padlón kívül nem vállalnak felelősséget értük.

Listázási szintek

Többnyire több tőzsdei szint is létezik a tőzsdéken. Első prémium a leglikvidebb, magas szintű megbízhatóságú értékpapírok szerepelnek.

A cégeknek második szint nem olyan magasak a követelmények. A legalacsonyabb pedig a harmadikra ​​jelentkező vállalkozásoknál az ún idézetlen lista... Azok a befektetők, akik ilyen szintű vállalatok értékpapírjait vásárolják, maguk is alaposan elemzik azok megbízhatóságát.

Például a fő és az alternatív webhelyek érvényesek. Az első két szintre oszlik: "Standard" és "Prémium". Az alternatív piac azoknak a fejlődő kis- és középvállalkozásoknak szól, amelyek egyszerűsített eljárással kerülnek ide.

A platformok időről időre emelhetik vagy fordítva csökkenthetik a kötvények, részvények jegyzési szintjét, vagy akár teljesen kivezethetik azokat.

Listázási típusok

Tegyen különbséget az elsődleges és a másodlagos listázás között.

Elsődleges lista azt jelenti, hogy a részvények a befektetők számára elérhetőek a cég bejegyzésének országában a tőzsdei padlón.

Nál nél másodlagos listázás a papírokat a nemzetközi piacokra viszik, és felkerülnek a külföldi platformok listáira. Ezt csak akkor lehet megtenni, ha a listázás kezdeti szakasza már túl van.

Még mindig van kettős felsorolás, amelyben a cég következetesen igyekszik bekerülni szülőhazája több kereskedési helyének jegyzési listájára.

És keresztlista- ebben az esetben a cég különböző országokban több tőzsdei platform listájára felveendő kérelmeket küld. Sőt, ha az egyikük jóváhagyja az értékpapírok hozzáadását, a másiknál ​​a társaság lehetőséget kap arra, hogy egyszerűsített séma szerint végezze el a bevezetési eljárást. Ez nemcsak az anyagköltségeket csökkenti, hanem a kérelem elbírálásának idejét is.

Milyen előnyei vannak a kibocsátónak

A cégek nem hiába tesznek erőfeszítéseket a tőzsdére való bejutásra, hiszen ez számos előnnyel kecsegtet számukra. Először is nő a befektetési vonzerejük, és ennek eredményeként könnyebben vonzhatnak forrásokat a további fejlesztésekhez. A pluszok közé tartozik még:

  • a társaság kapitalizációjának növekedése a kibocsátott értékpapírok iránti kereslet növekedésével;
  • láthatóság és bizalom növelése az üzleti közösségben;
  • részvények, kötvények likviditásának növelése;
  • a devizapiaci listák kiegészítésének lehetősége;
  • bizonyos esetekben adókedvezményt igényelhet.

Ne feledje azonban, hogy ezentúl a cég tevékenységei fokozott figyelmet kapnak, és minden intézkedés azonnal hatással lesz a részvények értékére. Ráadásul a listázási eljárás sem ingyenes. Minden szakértői vizsgálat pénzbe kerül.

Mit ad ez a befektetőknek

A fő dolog a bizalom. A cégrészvényekbe befektető befektetők tudják, hogy megbízhatóságát szakemberek igazolták. Jelenlétük a tőzsdén megkíméli őket a cég megbízhatóságának független ellenőrzésétől.

Mi az a törlés

Ha az értékpapírok felkerülnek a tőzsde jegyzési listájára, nincs garancia arra, hogy örökre ott maradnak. Bizonyos feltételek mellett az oldal törölheti őket onnan. Ez történik például abban az esetben, ha a kibocsátó már nem teljesíti a csere feltételeit, nem teljesíti kötelezettségeit, csődöt jelent stb.

Emellett a részvény árfolyama, amely nem nő az idő múlásával, kivezetéshez vezethet, ami alacsony keresletre utal. Előfordul, hogy a tőzsdei kivezetés kezdeményezője maga a társaság, például egy vállalkozások összeolvadásakor.

Kriptovaluta lista

A listázás gyakran szóba kerül a kriptovaluta környezetben is. Itt a digitális érmék vagy tokenek általában megjelennek a tőzsdei platformok kereskedési listáján.

A kriptovaluta projektek arra törekszenek, hogy bekerüljenek a népszerű tőzsdék listájára

A kriptotőzsdéken való jegyzésre vonatkozó követelmények eltérőek. Sokkal nehezebb eljutni a nagy, jól ismert oldalakra, mint a kicsikre. Ezért a legtöbb projekt kis kereskedési platformokkal kezdődik.

A kibocsátás ára

Az egyik fő probléma a költség . A kevéssé ismert tőzsdék ingyenesen vehetnek fel kriptovalutákat a listára. A jól ismert platformok listájára kerülés több ezer, de akár több tízezer dollárba is kerülhet – pénzt vesznek el egy érme elemzéséhez a listázás előtt. Azért vannak kivételek.

A Binance például idén ősszel bejelentette, hogy a jegyzési díjakat jótékonysági projektek finanszírozására fordítják. Ugyanakkor nincsenek rögzített árak - a fejlesztők maguk határozzák meg, mennyit akarnak fizetni a listáért. A Poloniex vezetősége azt állítja, hogy egyáltalán nem kér pénzt a listázásért.

Az év elején a Business Insider újságírói közzétettek egy cikket, amely szerint az ICO-projektek kriptotőzsdei bevezetésének minimális küszöbe 50 000 dollár, és bizonyos esetekben elérheti az 1 millió dollárt.

Előfordult olyan eset is, amikor a tőzsdék vezetése kenőpénzre bukkant azért, hogy érmék szerepeljenek a listán. Példa erre a Coinnest tőzsde – működési és technikai igazgatóinak körülbelül 890 ezer dollárt fizettek azért, hogy az S-coin kriptovalutát felvegyék a kereskedési listára.

Hogyan működik

Ahhoz, hogy egy token felkerüljön a listára, leggyakrabban a kiválasztott oldalon, kérelmet kell benyújtania és egy kérdőívet kell kitöltenie. A tőzsde népszerű érméi azonban önmagukban is felvehetők a listára, anélkül, hogy megvárnák a projektcsapat felajánlását. Például a bitcoin (BTC) kötelező minden tőzsdén, és általában az Ethereum (ETH).

Milyen kérdések merülnek fel leggyakrabban a kérdőívben:

  • az érme neve és leírása;
  • a fő hálózat elindításának dátuma, valamint maga a platform;
  • link a Githubhoz;
  • link a projekt fehér könyvéhez;
  • linkek közösségi hálózatokhoz;
  • van-e bányászat a hálózaton, és volt-e előbányászat;
  • maximális érmekibocsátás stb.

A tőzsdék gyakran versenyeket is rendeznek felhasználóik között – szavaznak a javasolt kriptovalutákra, és a nyertes érme felkerül az árajánlatok listájára.

A Huobi Global 2018 végén elindított egy automatizált kriptovaluta listázási platformot. Segítségével a tőzsde a tokenek kereskedési listára való felvételének folyamatát kívánja felgyorsítani, átláthatóvá tenni.

Fontos árnyalatok

Az első dolog, amit a cserék megvizsgálnak, az az érme értéke, a közösség számára való hasznossága. A második helyen a projekt biztonsága áll, mert ha feltörik a kriptohálózatot, akkor a csere is megsínyli. Biztosan érdekli őket a csapat profizmusa és hírneve.

Például a Bittrexnél van egy előzetes és egy alapos kérelem elbírálásának szakasza. Ha a cég szakemberei az előzetes szakaszban úgy ítélik meg, hogy az érme megérdemli a tőzsdei bevezetést, megkezdődik annak műszaki jellemzőinek, innovatív képességeinek és a platform követelményeinek való megfelelés alapos tanulmányozása.

Értékpapírként felismerhető érméket a tőzsdék megpróbálnak nem hozzáadni... Például a Poloniex azonnal felkéri a fejlesztőket, hogy ismerkedjenek meg Howie-teszttel annak megállapítására, hogy egy token megfelel-e ezeknek a kritériumoknak vagy sem.

A nagy platformok közül kivétel a Coinbase tőzsde, amely megkapta a megfelelő hatósági engedélyt, és hivatalosan is üzemeltethet olyan tokeneket, amelyek értékpapírok tulajdonságaival rendelkeznek.

Érdekes módon, ha egy eszköz ellentmond egy adott ország törvényeinek, előfordulhat, hogy bizonyos joghatóságok felhasználói számára nem érhető el.

"Csere hatása"

Miután a népszerű kriptotőzsdéket hozzáadták a listákhoz, az érmék ára általában meredeken emelkedik - átlagosan 25-30% -kal. Ezt a mintát még „tőzsdei hatásnak” is nevezték. Ez annak köszönhető, hogy több felhasználó ismeri meg az érmét, felismerhetővé válik, és megnő az iránta való kereslet. Ez a felszállás azonban leggyakrabban rövid életű, és hamarosan a költségek csökkenni kezdenek.

Vannak olyan helyzetek is, amikor a tokenek ára a tőzsdék kereskedési listájára való belépés után éppen ellenkezőleg esik. Ez leggyakrabban akkor fordul elő, ha a projektet közvetlenül utána jegyzik, és a token eladás során befektetett befektetők gyorsabban keresnek többletpénzt az érmén, aktívan egyesítve azt a tőzsdén.

A kriptocoinokat számos okból törölték:

  • alacsony érdeklődés a kereskedők részéről;
  • jogszabályi változások;
  • a kriptográfiai hálózat blokkláncának feltörése;
  • a fejlesztők megtagadása az érme további támogatásától;
  • felhasználói panaszok.

A tokeneket általában nem távolítják el azonnal – a tőzsde több hetet ad a kereskedőknek, hogy bezárják pozícióikat és pénzt vonjanak ki saját pénztárcájukból.

Listázás a kereskedelemben

A tőzsdei bevezetés fogalma a kereskedésben is jelen van. Amikor egy beszállító azt szeretné, hogy termékeit például egy nagy kereskedelmi lánc polcain értékesítsék, először meg kell állapodnia a vállalat vezetésével, hogy termékét felvegye a listára.

Ha a termék nem keresett a vásárlók körében, akkor a listáról való kivezetésen is áteshet, ilyenkor eltűnik a boltok polcairól.

A program összeállításánál beállíthatjuk az "l" (listing) paramétert:

Ezután a fájl mellett az objektumkód összegét. obj, fájllista összege. lst:

  • 1; összeg. asm - egy program, amely kiszámítja S = A + B
  • 2 0000 adatszegmens
  • 3 0000 0001 a dw 01h
  • 4 0002 0002 b dw 02h
  • 5 0004 ???? s dw?
  • 60006 adat véget ér
  • 7 0000 kódszegmens
  • 8 tételezzük fel a ds: adatot
  • 9 0000 BA 0000s kezdődik: mov dx, data
  • 10 0003 8E DA mov ds, dx
  • 11 0005 A1 0000r mov ax, a
  • 12 0008 03 06 0002r add ax, b
  • 13 000C A3 0004r mov s, ax
  • 14 000F B8 4C00 mov ax, 4C00h
  • 15 0012 CD 21 int 21h
  • 16 0014 kódvég
  • 17 vége kezdődik

A lista négy oszlopot tartalmazó táblázat:

    Sorszám.

    Egy cím egy szegmensen belül, azaz annak elejétől (eltolás).

    A memória tartalma ezeken a címeken. Az adatszegmensben ezek a változók értékei, a kódszegmensben ezek az utasítások gépi kódjai.

    Összeszerelő kód.

A listához fűzött megjegyzések is mentésre kerülnek, csak helytakarékosság miatt kimaradnak.

A listából látható, hogy csak a 9-15. sorok felelnek meg a processzorparancsoknak. A többi sor megfelel az ún. összeszerelési irányelvek.

Mindenesetre különböző szintű információk jelennek meg. Közvetlenül a feladatról van információ, és van információ az információról - metainformáció. Ilyenek például a különféle magyarázatok, utasítások stb. Az assembly nyelvű forráskódban kétféle információ található:

    parancsok - információ a processzor számára;

    direktívák - információ magának az assemblernek, a program lefordításának módja: az utasítások gépi nyelvre fordítása és az adatok elhelyezése.

Itt van egy analógia a parancstípusok kiemelésével. Az adatátviteli parancsok, vezérlésátvitelek és aritmetikai-logikai parancsok a feladatról, a gépi vezérlőparancsok pedig - végrehajtásának feltételeiről, pl. meta információkat is jelentenek.

A vizsgált program a következő irányelveket tartalmazza:

    segment - direktíva egy szegmens kezdetének deklarálására;

    dw (define word) egy 16 bites direktíva az adatok meghatározására (memóriaterület kiosztására és inicializálására);

    ends (end segment) - direktíva a szegmens végének deklarálására;

    tétel - direktíva egy szegmensregiszter szegmenshez való hozzárendelésére;

    end - direktíva, amely a program végét jelzi, argumentuma a program első parancsának címkéjének kell lennie - a programba való belépési pontnak.

A következő adatdefiníciós direktívák is léteznek:

    db (define byte) - direktíva egy memóriaterület meghatározásához 8 bitben;

    A dd (kétszó definiálása) egy direktíva egy 32 bites memóriaterület meghatározására.

Vannak irányelvek, amelyeket egy pont előz meg. Az ilyen típusú direktívák közül csak az adott processzormodellhez használt utasításkészlet meghatározásához van szükségünk, például:

    386 - az i80386 processzor rendszeren kívüli parancsait használják;

    386p - az i80386 processzor összes parancsa használatban van, beleértve a rendszer parancsait is.

A 3-5. sor tartalmazza az A, B és S változók meghatározására szolgáló direktívákat. A 3-5 és 9-15 sorok együttesen a processzor számára tartalmaznak információkat – egy olyan program, amely utasításokat és adatokat tartalmaz. Közvetlenül hozzá vannak rendelve a számítógép memóriájához.

Ezt olvashatják az emberek. Általános értelemben bármilyen bemeneti adat a fordító számára. A forráskód le van fordítva futtatható kód teljesen a program futtatása előtt a fordítóval, vagy azonnal végrehajtható az értelmező segítségével.

Időpont egyeztetés

A forráskódot vagy objektumkód előállítására használják, vagy az értelmező hajtja végre. Változások csak az eredeti változaton történnek, ezt követi az objektummá való újbóli átalakítás.

A forráskód másik fontos célja egy program leírása. A program szövegének használatával visszaállíthatja a program viselkedésének logikáját. A megjegyzések a forráskód könnyebb megértését szolgálják. Vannak olyan eszközök is, amelyek lehetővé teszik a dokumentáció automatikus lekérését a forráskódból – az ún. dokumentáció generátorok.

Ezen kívül a forráskódnak számos más felhasználási területe is van. Oktatási eszközként használható; A kezdő programozók hasznosnak találhatják, ha megvizsgálják a meglévő forráskódot, hogy megtanulják a programozási technikákat és módszereket. Tömör és egyértelmű jellege miatt kommunikációs eszközként is használják tapasztalt programozók között. A fejlesztők közötti kódmegosztást gyakran a programozási élmény javításához hozzájáruló tényezőként említik.

A programozók gyakran átviszik a forráskódot (modulként, úgy, ahogy vannak, vagy adaptálva) egyik projektről a másikra. Ezt hívják kód újrahasználatnak.

A forráskód elengedhetetlen összetevője a szoftver más platformokra történő portolásának folyamatában. A portolás vagy túl nehéz, vagy lehetetlen bármely szoftver forráskódja nélkül.

Szervezet

A szoftver egyes részének (modul, komponens) forráskódja egy vagy több fájlból állhat. A programkód nem feltétlenül csak egy programozási nyelven van megírva. Például a C programok gyakran tartalmaznak assembly nyelvi beszúrásokat optimalizálási okokból. Olyan helyzetek is előfordulhatnak, amikor egy program egyes összetevőit vagy részeit különböző nyelveken írják, majd egyetlen végrehajtható modulba állítják össze a könyvtárak összekapcsolásaként ismert technológia segítségével ( könyvtár összekapcsolása).

A bonyolult szoftverek felépítéséhez több tucat vagy akár több száz forrásfájl szükséges. Ilyen esetekben a felépítés egyszerűsítése érdekében általában projektfájlokat használnak, amelyek a forráskóddal írják le a fájlok közötti függőséget, és leírják a felépítési folyamatot. Ezek a fájlok a fordító és a tervezési környezet beállításait is tartalmazhatják. Különböző tervezési környezetekhez különböző projektfájlok használhatók, és bizonyos környezetekben ezek a fájlok olyan szöveges formátumúak lehetnek, amely alkalmas a programozó általi közvetlen szerkesztésre univerzális szövegszerkesztőkkel, más környezetekben speciális formátumok támogatottak, a fájlok létrehozása és módosítása történik. speciális hangszeres programok segítségével. A projektfájlokat általában forráskódnak nevezik. A forráskód gyakran utal különféle adatokat, például egy program felépítéséhez szükséges grafikát tartalmazó erőforrásfájlokra.

Verzióvezérlő rendszereket használnak, hogy megkönnyítsék a forráskóddal való munkát és a programozókból álló csapat együttműködését a kódon.

Minőség

Az emberekkel ellentétben a számítógépnek nincs „jól megírt” vagy „rosszul megírt” kódja. De a kód megírásának módja nagy hatással lehet a karbantartási folyamatra. A forráskód minősége a következő paraméterek alapján ítélhető meg:

  • a kód olvashatósága (beleértve a kódhoz fűzött megjegyzések jelenlétét);
  • egyszerű támogatás, tesztelés, hibakeresés és hibajavítás, módosítás és portolás;
  • az erőforrások gazdaságos felhasználása: memória, processzor, lemezterület;
  • a fordító nem jelenített meg megjegyzéseket;
  • nincs "szemét" - nem használt változók, elérhetetlen kódblokkok, felesleges, elavult megjegyzések stb .;
  • megfelelő hibakezelés;
  • az interfész nemzetközivé tételének képessége.

Nem futtatható forráskód

A szabad szoftver copyleft licenceihez forráskód terjesztése szükséges. Ezeket a licenceket gyakran használják nem szoftveres munkákhoz is, például dokumentációkhoz, képekhez, számítógépes játékok adatfájljaihoz.

Ilyen esetekben a forráskódot tekintik a mű preferált szerkesztési formájának. A szoftvertől eltérő licencekben „átlátszó” verzióként is hivatkozhatunk rá. Ez lehet például:

  • adatvesztéssel tömörített fájl esetén - veszteségmentes verzió;
  • vektoros kép vagy háromdimenziós modell rendereléséhez - a vektoros változat és a modell;
  • szöveges képekhez - ugyanaz a szöveg szöveges formátumban;
  • zenéhez - egy fájl a zeneszerkesztő belső formátumában;
  • és végül maga a fájl, ha megfelel a megadott feltételeknek, vagy ha kényelmesebb verzió egyszerűen nem létezett.

Lásd még



Tetszett a cikk? Oszd meg