Popis programa. Popis - što je to jednostavnim riječima: potpuna analiza koncepta. Rad na kolegiju, izvješće o preddiplomskoj praksi

Popis programa "demol.c" prikazan je na Sl. 6.7. Programer će smisliti naziv programa. Proširenje ".c" je potrebno. Tekst je otkucan u uređivaču "Programerska bilježnica 2" (skraćeno PN2), koji je uključen u paket WinAVR umjesto grafičke ljuske. Također omogućuje izradu projekata, ispravljanje pogrešaka, kompajliranje programa, pa čak i programiranje MK.

Riža. 6.7. Popis programa "demol.c".

Riža. 6.8. Izgled programa PN2.

Uređivač PN2 neovisan je projekt sa svojom web stranicom. Glavni izbornik PN2 prikazan je na Sl. 6.8.

Postupak.

1.3 Pokrenite za izvršavanje datoteku "WlnAVR-20100110-install.exe" (29 MB) koja se nalazi na priloženom CD-ROM-u. Ova se datoteka može slobodno preuzeti s Interneta, ako je potrebno. Standardno instalirajte WlnAVR u mapu C: \ WinAVR-20100110 \.

2. Otvorite uređivač PN2: "Start - Programi - WinAVR -20100110 - Bilježnica za programere". Omogući numeriranje redaka: "Alati - Opcije - Općenito - Zadano -<поставить «галочку» возле «Show Line Numbers»>- U REDU".

3. Kreirajte novu C datoteku u uređivaču PN2: "Datoteka - Novo - C / C ++". Unesite tekst programa s tipkovnice prema Sl. 6.7 i spremite ga na tvrdi disk: "Datoteka - Spremi kao ... -<ввести путь и имя файла, например, для однозначности C:\1001\demol.c>- U REDU".

U nastavku će se snimke zaslona (snimke zaslona) prikazivati ​​samo na najvažnijim radnjama radi uštede prostora. Ostatak snimaka zaslona u postupnom načinu rada možete vidjeti u video vodičima na priloženom CD-u.

Objašnjenja za unos.

Redak 1 počinje komentarima koji su s lijeve strane omeđeni dvjema kosim crtama. Sav tekst iza znakova "//" može biti o bilo čemu, na bilo kojem jeziku, sa svim slobodama i skraćenicama. Ovo su proizvoljne informacije koje programer zapisuje za sebe, svoju voljenu, kako bi se kroz mjesec ili dva sjetio o čemu se, zapravo, razgovaralo. Obično se navodi kratki naziv programa i autorstvo.

Redak 2 također sadrži komentare, ali tehničke prirode. Ovdje je dijagram spoja za povezivanje indikatora HL1 i tipke SB1 na određene vodove MK priključaka. Nazivi signala odgovaraju rasporedu s dashita na MHKpocxeMyATmega48A (slika 6.9).

Riža. 6.9. Raspored signala MKATmega48A.

Praksa tekstualnog opisa jednostavnih shema u "zaglavlju" programa raširena je u zajednici programera koji su lijeni crtati i primjenjivati ​​grafičke sheme, vjerujući da je "ionako sve jasno".

Redak 3 navodi parametre za "makefile". Za referencu, normalan rad AVR-GCC prevoditelja moguć je s dvije potrebne datoteke. Prva je datoteka s popisom s nastavkom ".c", druga je datoteka sa uputama sustava "makefile" bez nastavka. "Makefile" izrađuje pomoćni program "MFile" (slika 6.10, JoergWunsch, Njemačka) uključen u WinAVR.

Riža. 6.10. Izgled programa MFile.

Postupak.

1. Pokrenite uslužni program "MFile" za izvršavanje: "Start - Programi - WinAVR -2010010 - MFile".

2. Ispunite polja predloška na sljedeći način (slika 6.11):

U stavku "Makefile - Naziv glavne datoteke ... - Glavna datoteka" upišite naziv projekta u razvoju "demol" i kliknite U redu;

U stavci "Makefile - MCU tip - ATmega" odaberite MK "atmega48a";

U stavci "Makefile - Razina optimizacije" postavite razinu optimizacije "2". Ostale mogućnosti: "0" - bez optimizacije, "s" - minimalna duljina kodova, znamenke "1" ... "3" tri su različite metode optimizacije, a broj "3" ne znači najbolju opciju, već sve ovisi o konkretnom C programu ...

Ostale klauzule "makefile" predloška nije potrebno ispraviti, neka ostanu zadane.

Riža. 6.11. Popunjavanje polja u programu MFile.

Za svaki novi projekt i novu vrstu MK -a morate sastaviti vlastiti "makefile", dok će se naziv projekta i vrsta MK promijeniti.

Redak 4 sadrži komentare koji određuju heksadecimalne brojeve bajtova niske, visoke i vanjske konfiguracije. Ove će vrijednosti biti potrebne kasnije pri programiranju MK osigurača.

S «ktg5 je informacijski prazan. Vizualno odvaja tekst komentara od ostatka programa. Umjesto jednog, možete umetnuti dva prazna retka, što nije važno. Glavna točka je poboljšati vidljivost. To ne utječe na duljinu kodova firmvera MK.

Vanjski dizajn popisa izumio je sam programer, temeljen na vlastitim idejama o ljepoti slike i pogodnosti predstavljanja informacija. Često se po stilu zaglavlja, navođenju redaka i komentara može identificirati autora programa ili sastaviti njegov psihološki portret. Zanimljive bilješke o ovoj stvari date su u monografiji Alaina Goluba.

Red 6 opslužuje kompajler pretprocesor. Ovo nije C izjava ili komentar. Naziv je složen, ali značenje je jednostavno. Predprocesor (predprocesor) traži u programu retke koji počinju znakom "#". Nadalje, ovisno o ključnoj riječi, izvršava određenu radnju, na primjer, "definiraj" - dodjeljuje vrijednosti konstantama, "ako je definirano" - provjerava stanje, "inC1ude" - povezuje knjižnicu funkcija itd.

Za prvo upoznavanje dovoljno je znati da je knjižnica funkcija skup datoteka u koje se stavljaju tekstovi standardnih ili često ponavljajućih postupaka. U ovom slučaju, direktiva "# inC1ude" (u prijevodu s engleskog. "Include") aktivira knjižnicu sustava "avr / io.h", koja je odgovorna za rad I / O portova. Ova knjižnica ima različit naziv u različitim prevoditeljima, ali suština je ista, bez nje ne možete kontrolirati niti jednu liniju MK portova. Stoga je povezivanje I / O knjižnice obavezno za sve C programe mikrokontrolera.

Red 7 također obrađuje predprocesor prevoditelja, ali ima ključnu riječ "define". Stoga deklarira INI konstantu i dodjeljuje joj konstantnu vrijednost 255. Komentari ukazuju na pretvorbu 255 u heksadecimalni 0xFF i binarni 0bl 1111111. Razlika između njih leži u slovima "x" i "b" iza obavezne znamenke "0". Podudaranje brojeva u različitim sustavima dano je u tablici. 6.3.

Tablica 6.3. Pretvaranje brojeva iz heksadecimalnog u binarni i obrnuto

Ako se INI konstanta nađe negdje u "tijelu" programa, tada prevoditelj bez oklijevanja umjesto nje zamjenjuje numeričku vrijednost navedenu u retku 7, tj. 255. Ovo je vrlo prikladno za programere pri ispravljanju velikih unosa, kada su konstante razbacane po cijelom tekstu. Osim toga, sam naziv konstante može nositi semantičko opterećenje i poslužiti kao verbalni trag. Konkretno, INI je kratica za englesku riječ "initialization", što znači neku početnu vrijednost.

Važnost stavljanja konstante u "zaglavlje" programa leži u jednostavnosti pretraživanja i brzini unosa promjena. Na primjer, nakon što ste jednom ispravili broj "255", možete biti sigurni da će se svugdje u tekstu automatski (i bez grešaka!) Unijeti kroz konstantu lNI.

Programer smisli naziv za konstantu, temeljen na zdravom razumu i ljudskim sklonostima. Prema dugoj tradiciji, nazivi konstanti pišu se velikim slovima. Prvo u imenu mora biti slovo, na primjer, I2CBUS, T34. Ćirilica nije dopuštena.

Deklaracija INI konstante mogla bi se napisati na još dva ekvivalentna načina: "#define INI OxFF" ili "#define INI Obl 1111111".

Redak 8 sadrži operator koji opisuje varijablu "a". Varijabla se može figurativno predstaviti kao kutija (kutija, kutija, pernica), gdje je pohranjen određeni broj predmeta (perle, zrna, šibice). Kako bi se "kutije" međusobno razlikovale, označene su različitim natpisima na tijelu, u ovom slučaju slovom "a". Ako početni broj nije naveden u opisu varijable, tada se smatra da je "okvir" prazan i da je inicijaliziran nulom (a = 0). Tijekom programa možete dodati stavke u "okvir" i ukloniti ih iz njega. povećati i smanjiti vrijednost varijable.

Volumen "kutije" ovisi o izvornoj deklaraciji. Stol. 6.4 prikazuje ograničenja prihvaćena u prevoditelju AVR-GCC. Kao što vidite, deklaracija "unsigned char" omogućuje vam da u "okvir" stavite 255 stavki. Zajedno s nultom vrijednošću (prazan "okvir") bit će ukupno 256 stanja ili 256 bajtova. Varijabla s deklaracijom "unsigned long" više nije poput kovčega, već čitavog vlaka, koji je predviđen za 4,2 milijarde artikala.

Tablica 6.4. Dimenzije varijabli usvojenih u AUK-VSS

Budući da MK nema razvijene alate za rad s negativnim brojevima, u početku je, kako se ne bi zbunili, bolje koristiti samo pozitivne brojeve u programima, t.j. koja sadrži "nepotpisanu" deklaraciju.

"Očevi-zapovjednici" jezika Od davnina su uspostavili neizgovoreni red prema kojem se ime varijable ne smije sastojati od više od 8 znakova. U prevoditelju AVR-GCC ovo se pravilo zanemaruje i varijabla može sadržavati onoliko znakova koliko želite, ali bez fanatizma. Jedino što prvo slovo u imenu mora nužno biti slovo latinične abecede, može biti praćeno slovima, brojkama, simbolima. Ćirilica nije dopuštena.

Varijabla, za razliku od konstante, sadrži neki promjenjivi (ne konstantan) broj. Kako bi se varijable razlikovale od konstanti, one se pišu malim slovima. Obično pokušavaju postići da ime odgovara značenju, na primjer, "count" za brojač, "data" za podatke, "delay" za kašnjenje. Iako ponekad jednostavnije, poznatije i kompaktnije jednoslovne varijable poznate iz školske algebre izgledaju jednostavnije - a, b, c, d, i, j, k, x, y, z.

Koju dimenziju odrediti za određenu varijablu određuje programer. Budući da je varijabla "a" na ovom popisu spremište za prikupljanje informacija s digitalnog 8-bitnog priključka "C", to znači da mora sadržavati "dva do osmi stepen" bajta, tj. od 0 do 255.

Zanimljivo je da prevoditelj ne generira pogrešku ako se igrate na sigurno i deklarirate varijablu s marginom kao "unsigned long a;". Istina, to dovodi do nepotrebnog povećanja veličine koda sa 114 na 126 bajtova i, prema tome, do blagog smanjenja brzine izvođenja programa.

Druga krajnost je podcjenjivanje dimenzije, kada se, na primjer, umjesto deklariranja "unsigned int" koristi "unsigned char". Ako u takvu varijablu unesete broj veći od 255, tada će se spremiti samo ostatak dijeljenja sa 256, a vodeći će dio biti nepovratno izgubljen. Slikovito rečeno, objekti se izlijevaju iz "kutije". Prevoditelj ne reagira na takve pogreške, pretpostavljajući da je programer u odgovarajućem stanju i da razumije što radi. Točno i bez pogrešaka određivanje dimenzije varijabli obično dolazi s iskustvom.

Red 9 je prazan za informacije, slično retku 5. Hoće li ga umetnuti u popis, ovisi o volji programera.

Redak 10 ispunjen je komentarima, no radi raznolikosti oni su u drugom formatu. Naime, tekst je s lijeve strane podcrtan znakovima " / *", a s desne strane - znakovima " * /". Ovaj stil potječe od najstarijih verzija C jezika. Kasnije su u komentarima korišteni simboli "//", što je tipično za jezik C ++. U WinAVR -u obje opcije imaju jednako pravo na postojanje. "Novi" pravopis jednostavniji je i jasniji, a "stari" na nekim mjestima jedini je mogući ako želite komentirati početak operatora.

Linija 11 sadrži tipičan poziv na "glavnu" funkciju prema pravilima Američkog nacionalnog instituta za standarde (ANSI). Skraćeni izrazi su dopušteni, ali se ne preporučuju: "int main ()", "main ()", "main (void)". Ponekad čak pišu "void main (void)", naglašavajući potpunu odsutnost primljenih i proslijeđenih parametara. Za jednostavne MK-ove koji ne podržavaju operativne sustave u stvarnom vremenu neće biti negativnih posljedica. Međutim, ako razmišljate o budućnosti, bolje je odmah zapamtiti cijeli oblik pisanja, što će u budućnosti olakšati prijenos C programa na modernije platforme mikrokontrolera.

Redak 12 u cijelosti je dodijeljen prvom otvorenom zavojitom zagradu. Nije joj slučajno dodijeljena takva čast. C prevoditelj, prilikom izvršavanja retka 12, vrši početnu inicijalizaciju MK registara, instalaciju steka i dodjelu adresnog prostora. Nema potrebe za učenjem mehanike ovog procesa izrade nakita (za razliku od programa u Assembleru!).

Za programera, glavna stvar je ispravno naučiti dvije stvari koje automatski proizvodi prevoditelj uključen u WinAVR:

Na početku programa svi su prekidi onemogućeni;

Sve linije priključka MK konfigurirane su kao ulazi bez pull-up otpornika.

Red 13. Konačno, prva izvršna programska naredba pojavila se u obliku izraza dodjele. Objašnjenje simbola:

"DDRB" je konvencionalni naziv osmobitnog DDR registra porta "B";

"=" - znak upisa podataka u DDRB registar;

"Oʹ" " - oznaka da će sljedećih 8 znamenki biti u binarnom kodu;

"11111111" - bitovi binarnog broja upisani u DDRB registar, poredani po redoslijedu 7, 6, 5, 4, 3, 2, 1, 0 (najznačajniji bit lijevo, najmanji bit desno) .

Kao rezultat izvršavanja ovog operatora, sve linije porta "B" postavljene su na način izlaza, budući da sve znamenke sadrže jedinice.

Izjava u retku 13 uvučena je dva razmaka s lijeve strane. Ovo je konvencija oblikovanja teksta koje se pridržavaju mnogi programeri. Prevodilac će "šutjeti" ako tekst u prvom ili sedmom stupcu započnete s lijeve strane, kako želite. Postoji samo jedna preporuka: "Popis C programa trebao bi biti lak za pregled." Nakon toga, ubuduće će se svi tekstovi oblikovati tako da se kovrčave zagrade nalaze u neparnim stupcima okomito (1, 3, 5 itd.), A svaki će stupac sadržavati samo jedan otvor na vrhu i jedan zatvarajući zagrada na dno.

Ova naredba nije dogma, već način da se skrati popis u širinu i duljinu bez gubitka sadržaja informacija. Programer "kod kuće", u svoje unose, ima pravo unijeti bilo koji broj razmaka, praznih redaka itd.

Linija / 4 djeluje zajedno s retkom 13, budući da je specifično stanje priključne linije u AVR kontrolerima određeno hrpom dva registra DDRx i PORTx, gdje je "x" redno slovo porta, na primjer B, C ili D. S obzirom da svaki registar sadrži 8 bitova numeriranih od 0 do 7 (uvjetno "z"), tada je opći raspored duž linija porta sljedeći:

DDRx.z = 1, PORTx.z = 1 - HIGH level output;

DDRx.z = 1, PORTx.z = 0 - NISKI izlaz;

DDRx.z = 0, PORTx.z = 1 - ulaz sa "pull -up" otpornikom;

DDRx.z = 0, PORTx.z = 0 - ulaz bez pull -up otpornika.

Sažimajući retke 13 i 14: DDRB.0 ... DDRB.7 = 1, PORTB.O = 0, PORTB.l = 1, PORTB.2 ... PORTB.7 = 0, dakle, retci 0, 2 ... 7 porta "B "bit će konfigurirani kao LOW izlazi, a redak 1 kao HIGH. Budući da je indikator HL1 spojen na liniju PB1 (pin 15 mikrokruga DD1 na slici 6.3), on će se ugasiti. Ispostavilo se da je početni dio tehničkog zadatka uspješno završen.

Linije 15, 16 slične su linijama 13, 14, ali za priključak "C". Za promjenu se koristi konstantna zamjena lNI. Nakon što se izvode redovi 15 i 16, sve linije priključka "C", čak i one koje nisu izravno uključene u operaciju, bit će konfigurirane kao ulazi s "pull-up" otpornicima. Ovo je standardna tehnika za početnu inicijalizaciju porta za aktiviranje unutarnjih pull-up otpornika koji sprječavaju CMOS ulaze MCU linija da vise u zraku i eliminiraju bilo kakvu buku i putove prikupljanja.

Linija 17 slična je linijama 13, 14 i 15, 16, ali za priključak "D". On uopće nije uključen u električni krug, ali trebali biste ga uzeti u pravilu - za pokretanje svih portova bez iznimke na početku programa. Njihovi vodovi u praznom hodu moraju biti konfigurirani kao ulazi za uvlačenje otpornika ili kao izlazi HIGH / LOW. U budućnosti će takav automatizam omogućiti izbjegavanje sudara i nesporazuma.

Posebnost je dodjeljivanje registra PORTD vrijednosti prethodno dodijeljenoj u retku 13 registru DDRB, tj. binarni broj Obl 1111111. To je učinjeno u obrazovne svrhe, jer je moglo biti lakše: "PORTD = OxFF;".

Još jedan detalj je nedostatak upisa u DDRD registar. Ovo nije pravopisna pogreška, već namjerno smanjenje popisa za jedan redak, budući da se pri uključivanju napajanja, prema podatkovnom listu, svi registri DDRx, PORTx automatski popunjavaju nulama, tj. nije potrebno dodatno brisati registar DDRD.

Redak 18 sadrži izraz "while" petlje. Za prvo upoznavanje, dovoljno je zapamtiti da izraz "while (1)" znači uzastopno izvršavanje naredbi u retcima 19 ... 21 u beskonačnoj petlji.

Redak 19 sadrži otvorene zagrade i izjavu o dodjeli. Ova kombinacija dopuštena je pravilima jezika C, što popis čini kompaktnijim po visini.

Nakon izvršavanja retka 19, varijabla "a" pohranit će statusni bajt od osam redaka porta "C", koji je očitan iz registra PINC. Ako gumb SB1 nije pritisnut, tada je "a = OxFF", a ako se pritisne, tada "a = OxFE".

Redak 20 pomiče sadržaj varijable "a" za jedan bit ulijevo. Moguće su dvije mogućnosti: ako je "a" bio ranije OxFF, tada će postati OxFE, a ako je bio OxFE, postat će OxFD. Zašto je to učinjeno, sljedeći redak programa će vam reći.

Redak 21 sadrži operator dodjeljivanja, no, u usporedbi s retkom 19, varijabla "a" i registar portova su obrnuti. U C -u ovo rokiranje rezultira zamjenom operacije čitanja iz porta operacijom pisanja u port. Ukupno će se kôd 0xFE (ako tipka SB1 nije pritisnuta) ili kôd 0xFD (ako je tipka SB1 pritisnuta) emitirati na priključak "B". U prvom slučaju, indikator HL1 će se ugasiti, u drugom će zasvijetliti, što je trebalo postići prema projektnom zadatku.

Linije 22, 23 sadrže zatvaranje kovrčavih zagrada. Ako mentalno povučete dvije okomite crte od njih "odozdo prema gore", onda one pokazuju izravno na početne zagrade u redovima 19 i 12. Zagrada na retku 22 označava ponavljanje petlje u redovima 19 ... 21. Zagrade na retku 23 počinju na prvom mjestu s lijeve strane, pa je postignut kraj funkcije "glavne", a time i glavnog programa.

Redak 24 sadrži komentare o broju verzije WinAVR -a i duljini kodova firmvera, što je vrlo korisno pri sastavljanju programa od strane drugih korisnika. Poznato je da WinAVR verzije nisu međusobno 100% kompatibilne, za što postoje ilustrativni primjeri. Slijedom toga, duljina sastavljenog koda istog popisa može se razlikovati od izdanja do izdanja. Praktični zaključak je da prvo morate sastaviti program s paketom WinAVR navedenim u retku 24, a tek onda na starijoj ili novijoj verziji, provjeravajući primljenu duljinu koda kao kontrolni zbroj.

Pažljivi čitatelj ima pravo primijetiti da je u fazi sastavljanja popisa C programa bilo nemoguće unaprijed izračunati koliko kodovi zauzimaju u memoriji MK. Da budem iskren, natpis "114 bajtova (2,8%)" dodan je kasnije, nakon sastavljanja programa. Postoji jasan primjer same povratne informacije, koja u strukturnom dijagramu na Sl. 6.1 označena je isprekidanom linijom između blokova "K" i "L".

Red 25 potpuno je prazan, ali za razliku od redova 5 i 9 označava fizički kraj unosa. Bez ovog zadnjeg retka, prevoditelj izdaje blago, ali ipak upozorenje: "Upozorenje: nema novog retka na kraju datoteke".

Prije nego što novčić vrijednosnog papira ili kriptovalute postane dostupan trgovcima na tržištima, mora proći kroz složen postupak odabira i biti naveden na popisu. Analizirajmo jednostavnim riječima što je unos na burzi - i na dionicama i u kriptovalutama, koje su glavne faze koje je potrebno proći da bi se našlo na popisu, glavne prednosti koje tvrtka dobiva, što je bit uklanjanje s popisa.

Što je navođenje

Koncept uvrštavanja nalazi se u različitim područjima našeg života:

  • Burze dionica i kriptovaluta- oni će biti tema ovog članka. Ovdje se radi o dodavanju vrijednosnih papira ili kriptokovanica na popise trgovačkih platformi.
  • U trgovini- to podrazumijeva dodavanje proizvoda određenog proizvođača u asortiman trgovine.
  • U programiranju- ovo je izvorni kod (tekst) programa, koji se pomoću prevoditelja prevodi u izvršni kod.
  • U nekretninama- ovdje su potpisani ugovori o uvrštavanju između vlasnika nekretnine i prodajnog agenta koji je prodaje uz proviziju.

Nećemo razmatrati posljednje dvije industrije. Zainteresirani smo za uvrštenje, kao i za kriptovalute.

Uvrštenje i brisanje vrijednosnih papira

Popis se u našem leksikonu pojavio iz popisa riječi, što je s engleskog prevedeno kao "popis". Uvrštenje vrijednosnih papira na burzu postupak je dodavanja dionica, obveznica tvrtki na popis instrumenata koji kotiraju na platformi. Nakon toga postaju dostupni za kupnju i prodaju na njemu.

Nakon prolaska postupka uvrštenja vrijednosni papiri uvrštavaju se na trgovački popis burze.

Često sudionici na tržištu sami popis nazivaju popisom. Štoviše, svako mjesto ima svoj popis.

Inicijator uvrštavanja na tržište najčešće je tvrtka izdavateljica, međutim, u rijetkim slučajevima, sama burza može izraziti želju za uvrštavanjem određenih vrijednosnih papira na svoj popis, ako su oni već jako traženi među trgovcima neformalnim kanalima.

Za tvrtke uvrštavanje na burzu ima veliki broj prednosti, pa stoga ne čudi što se poduzeća jako trude proći ovaj postupak.

Unos na burzi važno je ne miješati s IPO -om. U prvom slučaju, tvrtka nastoji ući na popis kotacija određene trgovačke platforme. IPO podrazumijeva da se poduzeće pretvara u javno poduzeće i njegovi vrijednosni papiri postaju dostupni ulagačima ne samo putem, već i drugim kanalima, na primjer, kroz njegove podružnice.

Faze uvrštavanja

Postupak uvrštenja predviđa nekoliko faza kroz koje društvo izdavatelj mora proći prije nego što njegovi vrijednosni papiri postanu dostupni ulagačima.

  1. Sve počinje podnošenjem prijave. To može učiniti i sam izdavatelj i osoba koja zastupa interese tvrtke.
  2. Zatim dolazi faza ispitivanja. Predstavnici burze analiziraju i vrijednosne papire i sve dostupne podatke o tvrtki. Istražuje se profitabilnost poduzeća i likvidnost njegove imovine. Od tvrtke se traži da dostavi sve financijske izvještaje prikupljene u posljednjih nekoliko godina.
  3. Posebno povjerenstvo razmatra rezultate ispitivanja i odlučuje dodati vrijednosne papire na svoju listu ili odbiti zahtjev.
  4. Ako je odluka pozitivna, obje strane - tvrtka i burza, zaključuju ugovor.

Postupak u prosjeku traje oko 1-2 mjeseca. Da bi ostao na popisu, izdavatelj će u pravilu jednom mjesečno morati dostaviti burzi potrebne podatke.

Pravila uvrštavanja koja trgovački prostori primjenjuju na tvrtke razlikuju se. Neki mogu priznati samo uvrštavanje tvrtki čija je kapitalizacija najmanje 50 milijuna dolara, a vrijeme njihove prisutnosti na tržištu je najmanje 3 godine. Drugi mogu podići ili spustiti ljestvicu za ove i druge zahtjeve.

Ako nisu ispunjeni svi uvjeti, ali su vrijednosni papiri od interesa za burzu, dobivaju preliminarni popis vrijednosnih papira - naziva se i unaprijed navođenje... Ulagači također mogu trgovati tim dionicama, ali izvan zidova burze i trgovačkog prostora za njih ne odgovaraju.

Razine unosa

Uglavnom, na burzama postoji nekoliko razina kotiranja. Prvi premija uključeni su najlikvidniji vrijednosni papiri s visokom razinom pouzdanosti.

Tvrtkama druga razina zahtjevi nisu tako visoki. A najniža za poduzeća koja se prijavljuju za treću, tzv popis bez citata... Ulagači koji kupuju vrijednosne papire tvrtki ove razine trebali bi sami pažljivo analizirati njihovu pouzdanost.

Na primjer, glavna i alternativna web mjesta vrijede za. Prva je podijeljena u dvije razine: "Standard" i "Premium". Alternativno tržište namijenjeno je malim i srednjim poduzećima u razvoju koja su ovdje prihvaćena po pojednostavljenom postupku.

S vremena na vrijeme web stranice mogu povisiti ili obrnuto smanjiti razinu uvrštenja obveznica, dionica ili ih čak potpuno ukloniti.

Vrste unosa

Razlikovati primarni i sekundarni popis.

Primarni popis podrazumijeva da su dionice dostupne ulagačima na burzi u zemlji u kojoj je tvrtka registrirana.

Na sekundarni popis vrijednosni papiri se donose na međunarodna tržišta i uključuju na popise stranih platformi. To se može učiniti samo ako je prošla početna faza uvrštavanja.

Još uvijek postoji dvostruki popis, u kojem tvrtka dosljedno nastoji ući na kotacijske liste nekoliko trgovačkih platformi u svojoj zemlji.

Kao i unakrsni popis- u ovom slučaju tvrtka šalje aplikacije koje će se dodati na popise nekoliko platformi za razmjenu u različitim zemljama. Štoviše, ako jedan od njih odobri dodavanje vrijednosnih papira, s druge strane tvrtka dobiva priliku dovršiti postupak uvrštenja prema pojednostavljenoj shemi. Time se smanjuju ne samo materijalni troškovi, već i vrijeme za razmatranje zahtjeva.

Koje su prednosti izdavatelja

Tvrtke ulažu napore da se s razlogom uvrste na burzu jer im to obećava brojne prednosti. Prvo, povećava se njihova investicijska atraktivnost, pa je stoga lakše privući sredstva za daljnji razvoj. Prednosti također uključuju:

  • rast kapitalizacije tvrtke s povećanjem potražnje za izdanim vrijednosnim papirima;
  • povećanje vidljivosti i povjerenja u poslovnu zajednicu;
  • povećanje likvidnosti dionica, obveznica;
  • mogućnost dodavanja na popise stranih burzi;
  • u nekim se slučajevima možete prijaviti za porezne olakšice.

Međutim, ne zaboravite da će se od sada povećana pažnja posvetiti aktivnostima tvrtke, a sve radnje odmah će utjecati na vrijednost dionica. Osim toga, postupak uvrštavanja na popis nije besplatan. Svi stručni pregledi koštaju.

Što daje investitorima

Glavna stvar je samopouzdanje. Ulagači koji ulažu u dionice tvrtke znaju da su njenu pouzdanost provjerili profesionalci. Njihovo prisustvo na burzi spašava ih od neovisnih provjera pouzdanosti tvrtke.

Što je uklanjanje s popisa

Ako su vrijednosni papiri uključeni u kotacijski popis burze, nema jamstva da će tamo ostati zauvijek. Pod određenim uvjetima, stranica ih može izbrisati s nje. To se događa u slučaju, na primjer, ako izdavatelj prestane ispunjavati uvjete zamjene, ne izvršava svoje obveze, proglasi se bankrotom itd.

Također, vrijednost dionica, koja ne raste s vremenom, može dovesti do brisanja s liste, što ukazuje na nisku potražnju. Događa se da je inicijator uklanjanja s liste sama tvrtka, na primjer, pri spajanju poduzeća.

Lista kriptovaluta

O kotaciji se često raspravlja i u okruženju kriptovaluta. Ovdje se digitalni novčići ili tokeni obično pojavljuju na trgovačkom popisu platforma za razmjenu.

Projekti kriptovaluta nastoje ući na popise popularnih burzi

Zahtjevi za uvrštavanje na kripto burze su različiti. Mnogo je teže doći do velikih dobro poznatih web stranica nego do malih. Stoga većina projekata počinje s malim trgovačkim platformama.

Cijena izdanja

Jedno od glavnih pitanja su troškovi . Malo poznate burze mogu besplatno dodati kriptovalute na popis. Ulazak na popise poznatih platformi može koštati tisuće, pa čak i desetke tisuća dolara - novac se uzima za analizu novčića prije uvrštenja. Ipak, postoje iznimke.

Binance je, na primjer, ove jeseni najavio da će naknade za kotaciju ići za financiranje dobrotvornih projekata. Istodobno, ne postoje fiksne cijene - programeri sami određuju koliko žele platiti unos. Uprava Poloniexa tvrdi da uopće ne uzima novac za uvrštenje na listu.

Novinari Business Insidera početkom godine objavili su članak prema kojem minimalni prag za uvrštavanje kripto razmjena na ICO projekte iznosi 50.000 dolara, a u nekim slučajevima može doseći i milijun dolara.

Bilo je i slučajeva kada je uprava mjenjačnica nailazila na mito za uključivanje kovanica na popis. Primjer je burza Coinnest - njeni operativni i tehnički direktori plaćeni su oko 890 tisuća dolara za dodavanje kriptovalute S -coin na popis za trgovanje.

Kako radi

Kako bi se žeton mogao navesti, najčešće je potrebno podnijeti prijavu i ispuniti upitnik na odabranoj platformi. Međutim, popularni novčići mjenjačnice mogu se sami uvrstiti na popis, bez čekanja da projektni tim to ponudi. Na primjer, bitcoin (BTC) je obavezan na svakoj burzi, a u pravilu Ethereum (ETH).

Na koja se pitanja najčešće susrećete u upitniku:

  • naziv i opis novčića;
  • datum pokretanja glavne mreže, kao i same platforme;
  • veza na Github;
  • poveznica na Bijelu knjigu projekta;
  • veze na društvene mreže;
  • postoji li rudarstvo na mreži i je li postojalo prethodno rudarstvo;
  • maksimalna emisija kovanica itd.

Burze često održavaju i natjecanja među svojim korisnicima - glasaju za predložene kriptovalute, a pobjednički novčić dodaje se na popis kotacija.

Huobi Global lansirao je automatiziranu platformu za unos kriptovaluta krajem ljeta 2018. Uz njegovu pomoć, burza namjerava ubrzati proces dodavanja žetona na popis za trgovanje i učiniti ga transparentnim.

Važne nijanse

Razmjene prvo gledaju vrijednost novčića, njegovu korisnost za zajednicu. Na drugom mjestu je sigurnost projekta, jer ako je kripto mreža hakirana, razmjena će također patiti. Sigurno će ih zanimati profesionalizam, kao i ugled tima.

Na primjer, na Bittrexu postoji preliminarna faza razmatranja aplikacije i dubinska. Ako stručnjaci tvrtke u preliminarnoj fazi smatraju da novčić zaslužuje biti uvršten na burzu, počinje temeljito proučavanje njegovih tehničkih karakteristika, inovativnih sposobnosti i usklađenosti sa zahtjevima platforme.

Kovanice koje se mogu prepoznati kao vrijednosni papiri, burze pokušavaju ne zbrajati... Na primjer, Poloniex odmah poziva programere da se upoznaju s Howiejevim testom kako bi utvrdili može li token zadovoljiti ove kriterije ili ne.

Izuzetak među glavnim platformama je burza Coinbase, koja je dobila odgovarajuće regulatorno odobrenje i može službeno upravljati tokenima koji imaju svojstva vrijednosnih papira.

Zanimljivo je da ako je imovina u suprotnosti sa zakonima određene zemlje, možda neće biti dostupna korisnicima iz određenih jurisdikcija.

"Učinak razmjene"

Nakon što su na popise dodane popularne kriptovalute, cijena kovanica obično naglo raste-u prosjeku za 25-30%. Taj se obrazac čak naziva i "efekt burze". To se događa zbog činjenice da više korisnika sazna za novčić, postaje prepoznatljiv i povećava potražnju za njim. Međutim, najčešće je ovo uzlijetanje kratkotrajno i uskoro troškovi počinju opadati.

Postoje i situacije kada cijena žetona nakon ulaska na trgovačke liste burzi, naprotiv, pada. To se najčešće događa kada se projekt kotira odmah nakon toga, a ulagači koji su uložili tijekom prodaje tokena nastoje brže zaraditi dodatni novac na novčiću, aktivno ga spajajući na burzi.

Kriptokovanice se uklanjaju iz više razloga:

  • niski interesi trgovaca;
  • izmjene zakonodavstva;
  • hakiranje blockchaina kripto mreže;
  • odbijanje programera da dodatno podrže novčić;
  • pritužbe korisnika.

Tokeni se obično ne uklanjaju odmah - burza daje trgovcima nekoliko tjedana da zatvore pozicije i povuku sredstva u svoje novčanike.

Oglas u trgovini

Koncept kotiranja prisutan je i na polju trgovanja. Kada dobavljač želi da se njegovi proizvodi prodaju, na primjer, na policama velikog trgovačkog lanca, prvo se mora dogovoriti s upravom tvrtke da svoj proizvod doda na popis.

Ako proizvod nije tražen među kupcima, može proći i postupak uklanjanja s liste, u tom slučaju nestaje s polica trgovina.

Prilikom sastavljanja programa možete postaviti parametar "l" (popis):

Zatim osim datoteke s zbrojem objektnog koda. obj, zbirka datoteka. lst:

  • 1; zbroj. asm - program koji izračunava S = A + B
  • 2 0000 segment podataka
  • 3 0000 0001 a dw 01h
  • 4 0002 0002 b dw 02h
  • 5 0004 ???? s dw?
  • 6.0006 podataka završava
  • 7 0000 segment koda
  • 8 pretpostavimo ds: podatke
  • 9 0000 BA 0000 počinju: mov dx, podaci
  • 10 0003 8E DA mov ds, dx
  • 11 0005 A1 0000r mov sjekira, a
  • 12 0008 03 06 0002r dodaj sjekiru, b
  • 13 000C A3 0004r mov s, sjekira
  • 14 000F B8 4C00 mov sjekira, 4C00h
  • 15 0012 CD 21 int 21h
  • 16 0014 kodovi
  • 17 krajpočeti

Unos je tablica koja sadrži četiri stupca:

    Broj linije.

    Adresa unutar segmenta, tj. Od njegovog početka (pomak).

    Sadržaj memorije na tim adresama. U segmentu podataka to su vrijednosti varijabli, u segmentu kodova to su strojni kodovi uputa.

    Asemblerski kod.

Komentari na popisu također se spremaju, ovdje se samo izostavljaju radi uštede prostora.

Iz popisa možete vidjeti da samo retci 9-15 odgovaraju naredbama procesora. Ostatak redaka odgovara tzv. direktive o montaži.

U svakom slučaju pojavljuju se informacije različitih razina. Postoje informacije izravno o zadatku, a postoje i informacije o informacijama - meta informacije. To su, na primjer, različita objašnjenja, upute itd. U izvornom kodu asemblerskog jezika postoje dvije vrste informacija:

    naredbe - informacije za procesor;

    direktive - informacije za sam asembler, kako sastaviti program: kako prevesti upute na strojni jezik i kako postaviti podatke.

Ovdje postoji analogija s odabirom vrsta naredbi. Naredbe za prijenos podataka, kontrolni prijenosi i aritmetičko -logičke naredbe nose informacije o zadatku, a naredbe za upravljanje strojem - o uvjetima za njegovo izvršavanje, t.j. također predstavljaju meta informacije.

Program koji se razmatra sadrži sljedeće direktive:

    segment - direktiva za proglašavanje početka segmenta;

    dw (definirati riječ) je 16-bitna direktiva za definiranje podataka (dodjela i inicijalizacija memorijskog područja);

    završava (završni segment) - direktiva za proglašavanje kraja segmenta;

    pretpostaviti - direktiva za dodjeljivanje registra segmenta segmentu;

    end - direktiva koja označava kraj programa, njezin argument mora biti oznaka prve naredbe programa - ulazne točke u program.

Postoje i sljedeće smjernice za definiranje podataka:

    db (define byte) - direktiva za definiranje memorijskog područja u 8 bita;

    dd (definirajte dvostruku riječ) je direktiva za definiranje 32-bitnog memorijskog područja.

Postoje direktive kojima prethodi točka. Od ove vrste direktiva, potrebne su nam samo direktive za specificiranje skupa naredbi koje se koriste za određeni model procesora, na primjer:

    386 - koriste se nesistemske naredbe procesora i80386;

    386p - koriste se sve naredbe procesora i80386, uključujući naredbe sustava.

Redci 3-5 sadrže upute za definiranje varijabli A, B i S. Zajedno, retci 3-5 i 9-15 sadrže informacije za procesor-program koji uključuje upute i podatke. Oni se izravno preslikavaju u memoriju računala.

Ugovoreni sastanak

Izvorni se kôd koristi za izradu objektnog koda ili ga tumač izvršava. Objektni kod se nikada ne mijenja, samo izvorni, nakon čega slijedi ponovna pretvorba u objektni kod.

Druga važna svrha izvornog koda je opis programa. Pomoću teksta programa možete vratiti logiku njegovog ponašanja. Komentari se koriste za lakše razumijevanje izvornog koda. Postoje i alati koji vam omogućuju automatsko preuzimanje dokumentacije iz izvornog koda - tzv. generatori dokumentacije.

Osim toga, izvorni kod ima mnoge druge namjene. Može se koristiti kao nastavno sredstvo; Programerima početnicima može biti korisno ispitati postojeći izvorni kod kako bi naučili tehnike i metodologije programiranja. Također se koristi kao komunikacijski alat između iskusnih programera zbog (idealno) sažete i nedvosmislene prirode. Dijeljenje koda među programerima često se navodi kao faktor koji doprinosi poboljšanju programskog iskustva.

Programeri često prenose izvorni kôd s jednog projekta na drugi, što se naziva ponovna upotreba koda ( Ponovna upotreba softvera).

Izvorni kod bitna je komponenta za prijenos softvera na druge platforme. Bez izvornog koda bilo kojeg softvera, prijenos je ili pretežak ili nemoguć.

Organizacija

Izvorni kod nekog dijela softvera (modula, komponente) može se sastojati od jedne ili više datoteka. Programski kod nije nužno napisan samo u jednom programskom jeziku. Na primjer, često programi napisani na jeziku C, radi optimizacije, sadrže umetke koda asemblerskog jezika. Moguće su i situacije kada su neke komponente ili dijelovi programa napisani na različitim jezicima, s naknadnim sastavljanjem u jedan izvršni modul pomoću tehnologije poznate kao povezivanje knjižnica ( povezivanje knjižnica).

Komplicirani softver za izradu zahtijeva desetke ili čak stotine izvornih datoteka. U takvim slučajevima, radi pojednostavljenja izrade, obično se koriste projektne datoteke koje opisuju ovisnosti između datoteka s izvornim kodom i opisuju proces izgradnje. Ove datoteke mogu sadržavati i druge parametre prevoditelja i razvojnog okruženja. Za različita dizajnerska okruženja mogu se koristiti različite projektne datoteke, a u nekim okruženjima te datoteke mogu biti u tekstualnom formatu prikladnom za izravno uređivanje od strane programera pomoću univerzalnih uređivača teksta, u drugim okruženjima podržani su posebni formati, a datoteke se stvaraju i mijenjaju pomoću posebnih alata.programi. Projektne datoteke obično se nazivaju izvornim kodom. U velikoj većini modernih jezičnih okruženja projektne datoteke nužno se koriste, bez obzira na složenost drugog izvornog koda uključenog u projekt. Često izvorni kod također znači datoteke resursa koje sadrže različite podatke, na primjer, grafiku potrebnu za izradu programa.

Kako bi se olakšao rad s izvornim kodom, za zajednički rad na kodu od strane tima programera koriste se sustavi za kontrolu verzija.

Kvaliteta

Za razliku od ljudi, ne postoji "dobro napisan" ili "loše napisan" kod za računalo. No, način na koji je kôd napisan može imati dubok utjecaj na proces održavanja. Kvaliteta izvornog koda može se procijeniti prema sljedećim parametrima:

  • čitljivost koda (uključujući prisutnost ili odsutnost komentara na kôd;
  • jednostavnost podrške, testiranje, ispravljanje pogrešaka i ispravljanje grešaka, izmjena i prijenos;
  • niska složenost;
  • niska upotreba resursa - memorija, procesor, prostor na disku;
  • prevoditelj ne prikazuje komentare;
  • nema "smeća" - neiskorištene varijable, nedostupni blokovi koda, nepotrebni zastarjeli komentari itd.

To ljudi mogu čitati. U općenitom smislu, svi ulazni podaci za prevoditelja. Izvorni kod je preveden na izvršni kod potpuno prije nego što se program pokrene pomoću prevoditelja ili se može odmah izvršiti pomoću tumača.

Ugovoreni sastanak

Izvorni se kôd koristi za izradu objektnog koda ili ga tumač izvršava. Promjene se vrše samo u izvornoj, nakon čega slijedi ponovna pretvorba u objekt.

Druga važna svrha izvornog koda je opis programa. Pomoću teksta programa možete vratiti logiku njegovog ponašanja. Komentari se koriste za lakše razumijevanje izvornog koda. Postoje i alati koji vam omogućuju automatsko preuzimanje dokumentacije iz izvornog koda - tzv. generatori dokumentacije.

Osim toga, izvorni kod ima mnoge druge namjene. Može se koristiti kao nastavno sredstvo; Programerima početnicima može biti korisno ispitati postojeći izvorni kod kako bi naučili tehnike i metodologije programiranja. Također se koristi kao komunikacijski alat između iskusnih programera zbog svoje sažete i nedvosmislene prirode. Dijeljenje koda među programerima često se navodi kao faktor koji doprinosi poboljšanju programskog iskustva.

Programeri često prenose izvorni kôd (kao module, kakav jest ili s prilagodbom) iz jednog projekta u drugi. To se naziva ponovna upotreba koda.

Izvorni kod bitna je komponenta za prijenos softvera na druge platforme. Prijenos je ili pretežak ili nemoguć bez izvornog koda bilo kojeg softvera.

Organizacija

Izvorni kod nekog dijela softvera (modula, komponente) može se sastojati od jedne ili više datoteka. Programski kod nije nužno napisan samo u jednom programskom jeziku. Na primjer, programi C često sadrže uloške na asemblerskom jeziku radi optimizacije. Također je moguće da su neke komponente ili dijelovi programa napisani na različitim jezicima, a zatim sastavljeni u jedan izvršni modul pomoću tehnologije poznate kao povezivanje knjižnica ( povezivanje knjižnica).

Za izradu složenog softvera potrebni su deseci ili čak stotine izvornih datoteka. U takvim slučajevima, radi pojednostavljenja gradnje, obično se koriste projektne datoteke koje opisuju ovisnosti između datoteka s izvornim kodom i opisuju proces izgradnje. Ove datoteke također mogu sadržavati opcije za prevoditelj i okruženje za dizajn. Za različita dizajnerska okruženja mogu se koristiti različite projektne datoteke, a u nekim okruženjima te datoteke mogu biti u tekstualnom formatu prikladnom za izravno uređivanje od strane programera pomoću univerzalnih uređivača teksta, u drugim okruženjima podržani su posebni formati, a datoteke se stvaraju i mijenjaju pomoću posebnih instrumentalnih programa. Projektne datoteke obično se nazivaju izvornim kodom. Često izvorni kod također znači datoteke resursa koje sadrže različite podatke, na primjer, grafiku potrebnu za izradu programa.

Sustavi kontrole verzija koriste se za olakšavanje rada s izvornim kodom i suradnju na kodu s timom programera.

Kvaliteta

Za razliku od ljudi, ne postoji "dobro napisan" ili "loše napisan" kod za računalo. No, način na koji je kôd napisan može imati dubok utjecaj na proces održavanja. Kvaliteta izvornog koda može se procijeniti prema sljedećim parametrima:

  • čitljivost koda (uključujući prisutnost komentara na kôd);
  • jednostavnost podrške, testiranje, ispravljanje pogrešaka i ispravljanje grešaka, izmjena i prijenos;
  • ekonomično korištenje resursa: memorija, procesor, prostor na disku;
  • prevoditelj ne prikazuje komentare;
  • nema "smeća" - neiskorištene varijable, nedostupni blokovi koda, nepotrebni zastarjeli komentari itd .;
  • odgovarajuće rješavanje pogrešaka;
  • mogućnost internacionalizacije sučelja.

Izvorni kod koji se ne može izvršiti

Licence copyleft za besplatni softver zahtijevaju distribuciju izvornog koda. Te se licence često koriste i za rad koji nije softverski, poput dokumentacije, slika, podatkovnih datoteka za računalne igre.

U takvim se slučajevima izvorni kod smatra poželjnim oblikom rada za uređivanje. U licencama za softver osim za softver može se nazivati ​​i "transparentna" verzija. To bi moglo biti, na primjer:

  • za datoteku komprimiranu s gubitkom podataka - verzija bez gubitaka;
  • za iscrtavanje vektorske slike ili trodimenzionalnog modela - vektorska verzija, odnosno model;
  • za tekstualne slike - isti tekst u tekstualnom formatu;
  • za glazbu - datoteka u internom formatu uređivača glazbe;
  • i na kraju, sama datoteka, ako zadovoljava navedene uvjete, ili ako prikladnija verzija jednostavno nije postojala.

vidi također