Listing – sadə sözlərlə nə deməkdir: konsepsiyanın tam təhlili. Proqram siyahısı Proqramlaşdırmada siyahı nədir

“demol.c” proqramının siyahısı Şəkildə göstərilmişdir. 6.7. Proqramçı proqram üçün bir ad tapacaq. “.c” uzantısı tələb olunur. Mətn qrafik qabığın əvəzinə WinAVR paketinə daxil olan "Programmer's Notepad 2" (qısaldılmış PN2) redaktorunda yığılır. O, həmçinin layihə yaratmağa, səhvləri düzəltməyə, proqramı tərtib etməyə və hətta MK-nı proqramlaşdırmağa imkan verir.

düyü. 6.7. "demol.c" proqramının siyahısı.

düyü. 6.8. Görünüş PN2 proqramları.

PN2 redaktoru öz veb-saytı olan müstəqil layihədir. PN2 əsas menyusunun görünüşü Şek. 6.8.

Prosedur.

1.3 Təchiz edilmiş CD-də yerləşən “WlnAVR-20100110-install.exe” (29 MB) faylını işə salın. Lazım gələrsə, bu faylı İnternetdən pulsuz yükləmək olar. C:\WinAVR-20100110\ qovluğunda standart olaraq WlnAVR-ı quraşdırın.

2. PN2 redaktorunu açın: “Start - Programs - WinAVR-20100110 - Programmers Notepad”. Sətir nömrələnməsini aktivləşdirin: “Alətlər - Seçimlər - Ümumi - Defolt -<поставить «галочку» возле «Show Line Numbers»>- TAMAM".

3. PN2 redaktorunda yeni C faylı yaradın: “Fayl - Yeni - C/C++”. Proqram mətnini şəklə uyğun olaraq klaviaturadan daxil edin. 6.7 və onu sabit diskinizdə qeyd edin: “Fayl - Fərqli Saxla... -<ввести путь и имя файла, например, для однозначности C:\1001\demol.c>- TAMAM".

Burada və aşağıda, ekran görüntüləri (skrinşotlar) yer qənaət etmək üçün yalnız ən vacib fəaliyyət nöqtələrində göstəriləcəkdir. Qalan addım-addım skrinşotlara daxil edilmiş CD-dəki video dərsliklərində baxmaq olar.

Siyahıya görə izahatlar.

1-ci sətir şərhlərlə başlayır, onlar solda iki dirsək xətti ilə ayrılır. “//” işarələrindən sonrakı bütün mətnlər istənilən dildə, istənilən azadlıq və abreviatura ilə hər şey haqqında ola bilər. Bu, proqramçının özü, sevgilisi üçün yazdığı ixtiyari məlumatdır ki, bir-iki aydan sonra əslində nə müzakirə olunduğunu xatırlasın. Adətən göstərilir qısa ad proqramlar və müəlliflik.

2-ci sətirdə şərhlər də var, lakin artıq texniki plan. Budur HL1 göstəricisini və SB1 düyməsini MK portlarının xüsusi xətlərinə qoşmaq üçün elektrik diaqramı. Siqnalların adları MHKpocxeMyATmega48A (Şəkil 6.9) üzərindəki tablosundan olan sxemə uyğundur.

düyü. 6.9. MKATmega48A siqnal düzeni.

Proqramın başlığında sadə sxemlərin mətn təsvirləri təcrübəsi çəkmək və tətbiq etmək üçün çox tənbəl olan proqramçılar cəmiyyətində geniş yayılmışdır. qrafik diaqramlar, "onsuz da hər şeyin aydın olduğuna" inanaraq.

3-cü sətir makefile parametrlərini təyin edir. İstinad üçün, normal əməliyyatİki tələb olunan fayl varsa, AVR-GCC kompilyatoru mümkündür. Bunlardan birincisi “.c” uzantılı siyahı faylı, ikincisi isə uzadılması olmayan “makefile” sistem təlimatları faylıdır. “Makefile” WinAVR-ə daxil olan “MFile” yardım proqramı (Şəkil 6.10, müəllif JoergWunsch, Almaniya) tərəfindən yaradılmışdır.

düyü. 6.10. MFile proqramının görünüşü.

Prosedur.

1. “MFile” yardım proqramını işə salın: “Başlat - Proqramlar - WinAVR-2010010 – MFile”.

2. Şablon sahələrini aşağıdakı kimi doldurun (Şəkil 6.11):

“Makefile - Əsas fayl adı… - Əsas fayl” bəndində işlənən layihənin adını “demol” daxil edin və OK düyməsini basın;

"Makefile - MCU növü - ATmega" bəndində MK "atmega48a" seçin;

"Makefile - Optimallaşdırma səviyyəsi" elementində optimallaşdırma səviyyəsini "2" olaraq təyin edin. Digər imkanlar: "0" - optimallaşdırma yoxdur, "s" - minimum kod uzunluğu, rəqəmlər "1" ... "3" - bunlar üç fərqli optimallaşdırma üsuludur və "3" rəqəmi ən yaxşı seçim demək deyil, bu hamısı xüsusi C proqramından asılıdır.

“Makefile” şablonunun qalan nöqtələrini tənzimləmək lazım deyil;

düyü. 6.11. MFile proqramında sahələrin doldurulması.

Hər yeni layihə və yeni MK növü üçün öz “makefile” yaratmalısınız və layihənin adı və MK növü dəyişəcək.

4-cü sətirdə konfiqurasiyanın Aşağı, Yüksək və Ext baytlarının onaltılıq nömrələrini göstərən şərhlər var. Bu dəyərlər daha sonra MK "qoruyucuları" proqramlaşdırarkən lazım olacaq.

S « ktg5 məlumat baxımından boşdur. O, şərh mətnini proqramın qalan hissəsindən vizual olaraq ayırır. Bir əvəzinə iki boş sətir əlavə edə bilərsiniz, bu vacib deyil. Əsas məsələ görmə qabiliyyətini yaxşılaşdırmaqdır. Bu, MK proqram təminatı kodlarının uzunluğuna təsir etmir.

Listinqin xarici dizaynı proqramçının özü tərəfindən şəkilin gözəlliyi və məlumatın təqdim edilməsinin asanlığı haqqında öz fikirləri əsasında yaradılmışdır. Çox vaxt "başlığın" dizayn tərzinə, sətirlərə və şərhlərə görə proqramın müəllifini müəyyən edə və ya onun psixoloji portretini yarada bilərsiniz. Bu mövzuda maraqlı qeydlər Alain Golubun monoqrafiyasında verilmişdir.

6-cı sətir kompilyator preprosessoru tərəfindən xidmət göstərir. Bu C dili bəyanatı və ya şərh deyil. Adı mürəkkəbdir, amma mənası sadədir. Preprosessor (preprosessor) proqramda “#” simvolu ilə başlayan sətirləri axtarır. Sonra, açar sözdən asılı olaraq, müəyyən bir hərəkəti yerinə yetirir, məsələn, "müəyyən et" - sabitlərə dəyərlər təyin edir, "müəyyən edilmişdirsə" - şərti yoxlayır, "inC1ude" - funksiya kitabxanasını birləşdirir və s.

İlk tanışlıq üçün bilmək kifayətdir ki, funksiyalar kitabxanası standart və ya tez-tez təkrarlanan prosedurların mətnlərinin yerləşdirildiyi fayllar toplusudur. Bu halda, “#inC1ude” direktivi (ingilis dilindən “enable” kimi tərcümə olunur) I/O portlarının işinə cavabdeh olan “avr/io.h” sistem kitabxanasını aktivləşdirir. Bu kitabxananın müxtəlif kompilyatorlarda fərqli adları var, lakin mahiyyət eynidir, onsuz siz heç bir MK port xəttini idarə edə bilməzsiniz. Buna görə də, I/O kitabxanasının qoşulması bütün mikrokontroller C proqramları üçün məcburidir.

7-ci sətir də kompilyator preprosessoru tərəfindən işlənir, lakin var açar söz“müəyyən etmək” (ingilis dilindən “müəyyən etmək” kimi tərcümə olunur). Nəticə etibarilə, o, INI sabitini elan edir və ona 255 sabit qiymətini təyin edir. Şərhlər 255 rəqəminin onaltılıq 0xFF və ikili 0bl 1111111 rəqəm formasına çevrilməsini müəyyən edir. Onların arasındakı fərq məcburi "0" rəqəmindən sonra "x" və "b" hərflərindədir. Müxtəlif sistemlərdə ədədlərin uyğunluğu Cədvəldə verilmişdir. 6.3.

Cədvəl 6.3. Ədədləri onaltılıq sistemdən ikiliyə və əksinə çevirmək

Proqramın "bədənində" bir yerdə INI sabiti varsa, kompilyator düşünmədən əvəz edir. ədədi dəyər, 7-ci sətirdə göstərilən, yəni. 255. Bu, böyük siyahıları korrektə edərkən, sabitlər mətn boyu səpələndikdə proqramçılar üçün çox əlverişlidir. Bundan əlavə, sabitin adı özü semantik yük daşıya bilər və şifahi işarə kimi xidmət edə bilər. Xüsusilə, INI ingiliscə “initialization” sözünün abbreviaturasıdır və hansısa ilkin dəyər deməkdir.

Proqramın “başlığında” sabitin yerləşdirilməsinin əhəmiyyəti onu tapmaq asanlığında və dəyişikliklərin edilməsi sürətindədir. Məsələn, "255" rəqəmini bir dəfə düzəldərək, mətnin hər yerində avtomatik olaraq (və səhvsiz!) lNI sabiti vasitəsilə daxil olacağına əmin ola bilərsiniz.

Proqramçı sağlam düşüncə və insan üstünlüklərinə əsaslanaraq daimi üçün bir ad tapır. Çoxdankı ənənəyə görə, sabitlərin adları böyük hərflərlə yazılır. Addakı ilk hərf, məsələn, I2CBUS, T34 olmalıdır. Kiril əlifbasından istifadəyə icazə verilmir.

INI sabitinin elanı daha iki ekvivalent şəkildə yazıla bilər: “#define INI OxFF” və ya “#define INI Obl 1111111”.

8-ci sətirdə “a” dəyişən elanı ifadəsi var. Dəyişən obrazlı şəkildə müəyyən sayda obyektin (muncuqlar, taxıllar, kibritlər) saxlandığı bir qutu (qutu, qutu, qələm qutusu) kimi təqdim edilə bilər. “Qutuları” bir-birindən fərqləndirmək üçün onların gövdəsində müxtəlif yazılarla, bu halda “a” hərfi ilə qeyd olunur. Əgər dəyişənin təsviri ilkin rəqəmi göstərmirsə, o zaman “qutu” boş hesab olunur və sıfıra (a = 0) inisiallaşdırılır. Proqram irəlilədikcə, obyektlər "qutuya" əlavə edilə bilər və obyektlər ondan çıxarıla bilər, yəni. dəyişənin dəyərini artırmaq və azaltmaq.

“Qutu”nun həcmi onun orijinal reklamından asılıdır. Cədvəldə. 6.4 AVR-GCC kompilyatorunda qəbul edilmiş məhdudiyyətləri göstərir. Gördüyünüz kimi, “imzasız simvol” bəyannaməsi “qutu”ya 255 element qoymağa imkan verir. Sıfır dəyəri ilə birlikdə (boş "qutu") cəmi 256 vəziyyət və ya 256 bayt olacaq. “Unsigned long” bəyannaməsi olan dəyişən artıq qutuya deyil, 4,2 milyard əşya tutmaq üçün nəzərdə tutulmuş bütöv bir qatara bənzəyir.

Cədvəl 6.4. AUK-vSS tərəfindən qəbul edilən dəyişənlərin ölçüləri

MK-da mənfi ədədlərlə işləmək üçün hazırlanmış alətlər olmadığından, əvvəlcə çaşqınlıq yaratmamaq üçün proqramlarda yalnız müsbət nömrələrdən istifadə etmək daha yaxşıdır, yəni. “imzasız” bəyannaməni ehtiva edir.

Qədim dövrlərdən bəri dilin "əmr ataları" danışılmamış bir nizam yaratmışlar, buna görə dəyişənin adı 8 simvoldan çox olmamalıdır. AVR-GCC kompilyatorunda bu qayda nəzərə alınmır və dəyişən istədiyiniz qədər simvol ehtiva edə bilər, lakin fanatizm olmadan. Yeganə odur ki, addakı ilk hərf latın əlifbasının hərfi olmalıdır; ondan sonra hərflər, rəqəmlər və simvollar ola bilər. Kiril əlifbasına icazə verilmir.

Dəyişən, sabitdən fərqli olaraq, bəzi dəyişən (sabit deyil) ədədi ehtiva edir. Dəyişənləri sabitlərdən ayırmaq üçün onlar kiçik hərflərlə yazılır. Adətən onlar adın mənaya uyğun olmasını təmin etməyə çalışırlar, məsələn, sayğac üçün “saymaq”, məlumat üçün “məlumat”, gecikmə üçün “gecikmə”. Baxmayaraq ki, bəzən məktəb cəbrindən tanış olan bir hərfli dəyişənlər daha sadə, daha tanış və yığcam görünür - a, b, c, d, i, j, k, x, y, z.

Proqramçı müəyyən bir dəyişən üçün hansı ölçünün göstəriləcəyini müəyyənləşdirir. Bu siyahıdakı "a" dəyişəni rəqəmsal 8 bitlik "C" portundan məlumat toplamaq üçün yaddaş olduğundan, bu, "ikidən səkkizinci gücə" baytdan ibarət olmalıdır, yəni. 0-dan 255-ə qədər.

Maraqlıdır ki, siz onu təhlükəsiz oynasanız və dəyişəni ehtiyatla “unsigned long a;” elan etsəniz, kompilyator xəta yaratmır. Doğrudur, bu, kodun həcminin 114-dən 126 bayta qədər lüzumsuz artmasına və müvafiq olaraq proqramın icra sürətinin bir qədər azalmasına səbəb olur.

Digər ekstremal, məsələn, “insigned int” elan etmək əvəzinə, “unsigned char” istifadə edildikdə ölçünün düzgün qiymətləndirilməməsidir. Əgər belə dəyişənə 255-dən böyük rəqəm daxil etsəniz, onda 256-ya bölmənin yalnız qalan hissəsi saxlanılacaq və aparıcı hissə geri qaytarılmayacaq şəkildə itiriləcəkdir. Obrazlı desək, obyektlər “qutudan” çölə tökülür. Kompilyator proqramçının adekvat vəziyyətdə olduğuna və nə etdiyini başa düşdüyünə inanaraq bu cür səhvlərə reaksiya vermir. Dəyişənlərin ölçüsünün düzgün və səhvsiz müəyyən edilməsi adətən təcrübə ilə gəlir.

9-cu sətir informasiya baxımından boşdur, 5-ci sətirə bənzəyir. Onun siyahıya daxil edilib-edilməməsi proqramçının iradəsindən asılıdır.

10-cu sətir şərhlərlə doludur, lakin onlar müxtəliflik üçün fərqli formatda təqdim olunur. Məhz, mətn sol tərəfdə “/*” işarələri ilə, sağ tərəfdə isə “*/” işarələri ilə vurğulanır. Sonralar şərhlərdə C++ dili üçün xarakterik olan “//” simvollarından istifadə olunmağa başlandı. WinAVR-də hər iki variantın mövcud olmaq hüququ bərabərdir. “Yeni” orfoqrafiya daha sadə və vizualdır, “köhnə” yazı isə bəzi yerlərdə ifadənin əvvəlinə şərh vermək lazım gələrsə, yeganə mümkün olandır.

11-ci sətir Amerika Milli Standartlar İnstitutunun (ANSI) qaydalarına uyğun olaraq "əsas" funksiyaya tipik bir çağırışı ehtiva edir. Qısaldılmış ifadələrə icazə verilir, lakin tövsiyə edilmir: “int main ()”, “main ()”, “main (boş)”. Bəzən hətta qəbul edilmiş və ötürülən parametrlərin tam olmamasını vurğulayaraq "boş əsas (boş)" yazırlar. Dəstəkləməyən sadə MK-lar üçün ƏS real vaxtda heç bir mənfi nəticələr olmayacaq. Bununla belə, əgər gələcək haqqında düşünürsünüzsə, yazının tam formasını dərhal əzbərləmək daha yaxşıdır ki, bu da gələcəkdə C proqramlarını daha müasir mikrokontroller platformalarına köçürməyi asanlaşdıracaq.

12-ci sətir tamamilə ilk açılış buruq brace həsr edilmişdir. Onun bu şərəfə layiq görülməsi təsadüfi deyil. 12-ci sətri yerinə yetirərkən C dilinin kompilyatoru MK registrlərinin ilkin inisializasiyasını, yığının qurulmasını və ünvan sahəsinin ayrılmasını həyata keçirir. Bu zərgərlik prosesinin mexanikasını öyrənməyə ehtiyac yoxdur (assembler proqramlarından fərqli olaraq!).

Bir proqramçı üçün əsas odur ki, WinAVR-ə daxil olan kompilyatorun avtomatik olaraq istehsal etdiyi iki şeyi düzgün başa düşməkdir:

Proqram başlayanda bütün fasilələr söndürülür;

Bütün MK portlarının xətləri “çəkmə” rezistorları olmayan girişlər kimi konfiqurasiya edilmişdir.

Sətir 13. Nəhayət, birincisi meydana çıxdı icra edilə bilən əmr proqram təyin operatoru kimi. Simvolların izahı:

“DDRB” “B” portunun səkkiz bitlik DDR registrinin şərti adıdır;

“=” - DDRB registrinə məlumatların yazılması işarəsi;

"Оь" - növbəti 8 rəqəmin içində olacağına işarədir ikili kod;

“11111111” - DDRB registrinə yazılmış ikili ədədin bitləri, 7, 6, 5, 4, 3, 2, 1, 0 (ən əhəmiyyətli bit solda, ən az əhəmiyyətli bit isə sağda).

Bu operatorun icrası nəticəsində “B” portunun bütün sətirləri çıxış rejiminə qoyulur, çünki bütün rəqəmlər birləri ehtiva edir.

13-cü sətirdəki ifadə sola iki boşluq içərisinə daxil edilmişdir. Bu, bir çox proqramçının riayət etdiyi mətn formatlama konvensiyasıdır. Sol tərəfdəki birinci və ya yeddinci sütundakı mətni istədiyiniz kimi başlasanız, tərtibçi səssiz qalacaq. Yalnız bir tövsiyə var: "C-proqram siyahısına baxmaq asan olmalıdır." Bundan sonra, gələcəkdə bütün mətnlər belə formatlaşdırılacaq ki, buruq mötərizələr şaquli olaraq tək sütunlarda (1, 3, 5 və s.) Yerləşsin və hər sütunda yuxarıda yalnız bir açılış və bir bağlanma olacaq. alt.

Bu sifariş dogma deyil, məlumat məzmununu itirmədən siyahının eni və uzunluğunda qısaltma üsuludur. Proqramçı "evdə" öz siyahılarında istənilən sayda boşluq, boş sətirlər və s. daxil etmək hüququna malikdir.

Sətir /4 sətir 13 ilə birlikdə işləyir, çünki AVR kontrollerlərində port xəttinin xüsusi vəziyyəti iki DDRx və PORTx registrlərinin kombinasiyası ilə müəyyən edilir, burada “x” portun seriya hərfidir, məsələn, B, C və ya D. Nəzərə alsaq ki, hər bir registrdə 0-dan 7-yə qədər rəqəmlər olan 8 bit var (şərti olaraq “z”), onda port xətləri boyunca ümumi tərtibat aşağıdakı kimidir:

DDRx.z = 1, PORTx.z = 1 - çıxışdan Yüksək səviyyə;

DDRx.z = 1, PORTx.z = 0 - LOW səviyyəsi ilə çıxış;

DDRx.z = 0, PORTx.z = 1 - “pull-up” rezistorlu giriş;

DDRx.z = 0, PORTx.z = 0 - “pull-up” rezistoru olmayan giriş.

13 və 14-cü sətirlərin ümumiləşdirilməsi: DDRB.0…DDRB.7 = 1, PORTB.O = 0, PORTB.l = 1, PORTB.2…PORTB.7 = 0, buna görə də portun 0, 2…7 sətirləri “ B” LOW çıxış kimi konfiqurasiya ediləcək və sətir 1 YÜKSƏK çıxış kimi konfiqurasiya ediləcək. HL1 göstəricisi PB1 xəttinə qoşulduğundan (Şəkil 6.3-də DD1 çipinin pin 15), söndürüləcək. Məlum olur ki, texniki tapşırığın ilkin hissəsi uğurla yerinə yetirilib.

15, 16-cı sətirlər 13, 14-cü sətirlərə bənzəyir, lakin “C” portu üçün. Çeşid üçün sabit lNI əvəz olunur. 15 və 16-cı sətirlər yerinə yetirildikdən sonra, "C" portunun bütün xətləri, hətta əməliyyatda birbaşa iştirak etməyənlər də, "çəkmə" rezistorları olan girişlər kimi konfiqurasiya ediləcəkdir. Bu, MK xətlərinin CMOS girişlərinin "havada asılmasının" qarşısını alan və hər cür müdaxilə və müdaxilənin nüfuz yollarını aradan qaldıran daxili çəkilmə rezistorlarını aktivləşdirmək üçün portların başlanğıcda işə salınması üçün standart bir texnikadır.

17-ci sətir 13, 14 və 15, 16-cı sətirlərlə eynidir, lakin “D” portu üçün. O, içəridədir elektrik diaqramıümumiyyətlə iştirak etmir, lakin proqramın əvvəlində istisnasız olaraq bütün portları işə salmağı qaydaya çevirməlisiniz. Onların boş xətləri açılan rezistor girişləri və ya YÜKSƏK/AŞAĞI çıxışlar kimi konfiqurasiya edilməlidir. Gələcəkdə belə avtomatlaşdırma toqquşmaların və anlaşılmazlıqların qarşısını almağa kömək edəcəkdir.

Xüsusi xüsusiyyət ondan ibarətdir ki, PORTD registrinə əvvəllər DDRB registrinə 13-cü sətirdə təyin edilmiş dəyər təyin edilir, yəni. binar sayı Obl 1111111. Bu təhsil məqsədləri üçün edilib, çünki bunu daha sadə etmək olardı: “PORTD = OxFF;”.

Başqa bir detal DDRD reyestrinin qeydinin olmamasıdır. Bu, hərf səhvi deyil, siyahının qəsdən bir sətirlə azaldılmasıdır, çünki güc açıldıqda məlumat cədvəlinə görə "sıfırlar" avtomatik olaraq bütün DDRx və PORTx registrlərinə daxil edilir, yəni. DDRD reyestrini əlavə olaraq sıfırlamağa ehtiyac yoxdur.

18-ci sətirdə "while" döngüsü ifadəsi var. İlk tanışlıq üçün xatırlamaq kifayətdir ki, “while (1)” ifadəsi 19...21-ci sətirlərdəki ifadələrin sonsuz döngədə ardıcıl icrasını bildirir.

19-cu sətirdə açıq mötərizə və təyinat operatoru var. Bu birləşməyə C dilinin qaydaları icazə verir ki, bu da siyahının hündürlüyünü daha yığcam edir.

19-cu sətir yerinə yetirildikdən sonra “a” dəyişəni PINC reyestrindən oxunan “C” portunun səkkiz sətirinin status baytını saxlayacaqdır. SB1 düyməsi basılmırsa, o zaman “a = OxFF”, basılırsa, “a = OxFE”.

20-ci sətir “a” dəyişəninin məzmununu bir yer sola keçirir. İki mümkün variant var: əgər “a” əvvəllər OxFF idisə, o zaman OxFE olacaq və OxFE idisə, OxFD olacaq. Proqramın növbəti sətirində bunun nə üçün edildiyi sizə xəbər verəcəkdir.

21-ci sətir tapşırıq bəyanatını ehtiva edir, lakin 19-cu sətirlə müqayisədə "a" dəyişəni və port registrinin yerləri dəyişdirilib. C dilində belə castinq oxu əməliyyatının portdan yazma əməliyyatı ilə porta əvəzlənməsi ilə nəticələnir. Ümumilikdə “B” portuna 0xFE kodu (SB1 düyməsi basılmırsa) və ya 0xFD kodu (SB1 düyməsi sıxılırsa) çıxarılacaq. Birinci halda, HL1 indikatoru sönəcək, ikincisində yanacaq, texniki xüsusiyyətlərə uyğun olaraq əldə edilməli olan budur.

22, 23-cü sətirlərdə bağlanan buruq mötərizələr var. Əgər zehni olaraq onlardan ikisini çəkirsinizsə şaquli xətlər"aşağıdan yuxarı", sonra onlar birbaşa 19 və 12-ci sətirlərdə açılan mötərizələrə işarə edəcəklər. 22-ci sətirdəki mötərizə 19...21-ci sətirlərdə döngənin təkrarlanmasını göstərir. 23-cü sətirdəki mötərizə soldan birinci mövqedən başlayır, buna görə də "əsas" funksiyanın sonuna və buna görə də əsas proqrama çatıldı.

24-cü sətirdə WinAVR versiya nömrəsi və proqram təminatı kodlarının uzunluğu haqqında şərhlər var ki, bu da proqramı digər istifadəçilər tərəfindən tərtib edərkən çox faydalıdır. Məlumdur ki, WinAVR versiyaları bir-biri ilə 100% uyğun deyil və bunun bariz nümunələri var. Nəticə etibarilə, eyni siyahı üçün tərtib edilmiş kodun uzunluğu buraxılışdan buraxılışa qədər fərqli ola bilər. Praktiki nəticə - əvvəlcə proqramı 24-cü sətirdə göstərilən WinAVR paketi ilə, yalnız bundan sonra daha köhnə və ya daha yenisi ilə tərtib etməlisiniz. yeni versiya, nəticədə kod uzunluğunun yoxlama məbləği kimi yoxlanılması.

Diqqətli oxucunun qeyd etmək hüququ var ki, C proqramının siyahısını tərtib etmək mərhələsində kodların MK yaddaşında nə qədər yer tutduğunu əvvəlcədən hesablamaq mümkün deyildi. Düzünü desəm, proqramı tərtib etdikdən sonra “114 bayt (2,8%)” yazısı sonradan əlavə edilib. Bunun bariz nümunəsi var rəy, içərisində olan struktur diaqramıŞəkildə. 6.1 "K" və "L" blokları arasında nöqtəli xətt ilə göstərilmişdir.

25-ci sətir tamamilə boşdur, lakin 5 və 9-cu sətirlərdən fərqli olaraq, siyahının fiziki sonunu qeyd edir. Bu son sətir olmadan kompilyator yumşaq, lakin yenə də xəbərdarlıq edir: "Xəbərdarlıq: faylın sonunda yeni sətir yoxdur."

Məqsəd

Mənbə kodu ya obyekt kodunu yaratmaq üçün istifadə olunur, ya da tərcüməçi tərəfindən yerinə yetirilir. Dəyişikliklər heç vaxt obyekt koduna edilmir, yalnız mənbə koduna, sonra isə yenidən obyekt koduna çevrilir.

Mənbə kodunun digər mühüm məqsədi proqramın təsviridir. Proqramın mətninə əsasən, onun davranışının məntiqini yenidən qura bilərsiniz. Şərhlər mənbə kodunun başa düşülməsini asanlaşdırmaq üçün istifadə olunur. Mənbə kodu sənədlərini avtomatik əldə etməyə imkan verən vasitələr də var - sözdə. sənəd generatorları.

Bundan əlavə, mənbə kodunun bir çox başqa istifadəsi var. Tədris vasitəsi kimi istifadə edilə bilər; Yeni başlayan proqramçılar proqramlaşdırma texnikalarını və metodologiyasını öyrənmək üçün mövcud mənbə kodunu araşdırmağı faydalı hesab edə bilərlər. O, həmçinin (ideal) qısa və birmənalı xarakter daşıdığına görə təcrübəli proqramçılar arasında ünsiyyət vasitəsi kimi istifadə olunur. Paylaşma Kod idarəçiliyi tez-tez tərtibatçılar tərəfindən proqramçı təcrübəsinin təkmilləşdirilməsinə töhfə verən amil kimi qeyd olunur.

Proqramçılar tez-tez mənbə kodunu bir layihədən digərinə köçürür, buna kodun təkrar istifadəsi deyilir ( Proqram təminatının təkrar istifadəsi).

Mənbə - əsas komponent proqram təminatının digər platformalara daşınması prosesi üçün. Hər hansı bir proqram parçasının mənbə kodu olmadan, daşıma ya çox çətindir, ya da tamamilə qeyri-mümkündür.

Təşkilat

Proqram təminatının bəzi hissəsinin (modul, komponent) mənbə kodu bir və ya bir neçə fayldan ibarət ola bilər. Proqram kodunun yalnız bir proqramlaşdırma dilində yazılması mütləq deyil. Məsələn, çox vaxt optimallaşdırma məqsədilə C dilində yazılmış proqramlar montaj dilində kod əlavələrini ehtiva edir. Proqramın bəzi komponentlərinin və ya hissələrinin müxtəlif dillərdə yazılması və sonra kitabxana əlaqələndirilməsi kimi tanınan texnologiyadan istifadə edərək vahid icra olunan modula yığılması da mümkündür kitabxana əlaqəsi).

Kompleks proqram təminatı montaj zamanı onlarla hətta yüzlərlə faylın istifadəsini tələb edir mənbə kodu. Belə hallarda quruluşu sadələşdirmək üçün adətən mənbə kodu faylları arasında asılılıqların təsvirini ehtiva edən və qurma prosesini təsvir edən layihə fayllarından istifadə olunur. Bu fayllar digər kompilyator və dizayn mühiti parametrlərini də ehtiva edə bilər. Müxtəlif dizayn mühitləri üçün istifadə edilə bilər müxtəlif fayllar layihə və bəzi mühitlərdə bu fayllar universal istifadə edərək proqramçı tərəfindən birbaşa redaktə etmək üçün uyğun mətn formatında ola bilər mətn redaktorları, digər mühitlərdə xüsusi formatlar dəstəklənir və fayllar xüsusi alət proqramlarından istifadə etməklə yaradılır və dəyişdirilir. Layihə faylları adətən "mənbə kodu" termininə daxil edilir. Müasir dil mühitlərinin böyük əksəriyyəti layihəyə daxil olan digər mənbə kodunun mürəkkəbliyindən asılı olmayaraq, layihə fayllarının istifadəsini tələb edir. Çox vaxt mənbə kodu müxtəlif məlumatları ehtiva edən resurs fayllarını da nəzərdə tutur, məsələn, qrafik şəkillər, proqramı qurmaq üçün lazım idi.

Mənbə kodu ilə işi asanlaşdırmaq, proqramçılar qrupu tərəfindən kod üzərində əməkdaşlıq etmək üçün versiyaya nəzarət sistemlərindən istifadə olunur.

Keyfiyyət

İnsanlardan fərqli olaraq, kompüter üçün “yaxşı yazılmış” və ya “pis yazılmış” kod yoxdur. Lakin kodun necə yazıldığı proqram təminatı prosesinə böyük təsir göstərə bilər. Mənbə kodunun keyfiyyəti aşağıdakı parametrlərlə qiymətləndirilə bilər:

  • kodun oxunması (kod şərhlərinin olması və ya olmaması daxil olmaqla);
  • dəstək, sınaq, sazlama və səhvlərin düzəldilməsi, dəyişdirilməsi və daşınması asanlığı;
  • aşağı mürəkkəblik;
  • aşağı resurs istifadəsi - yaddaş, prosessor, disk sahəsi;
  • kompilyator tərəfindən şərhlərin olmaması;
  • "zibilin" olmaması - istifadə olunmayan dəyişənlər, əlçatmaz kod blokları, lazımsız köhnəlmiş şərhlər və s.

Hansı ki, insan oxuya bilər. Ümumiləşdirilmiş mənada - tərcüməçi üçün hər hansı bir giriş məlumatları. Mənbə kodu tərcümə olunur icra edilə bilən kod proqramdan istifadə etməzdən əvvəl və ya dərhal tərcüməçi ilə icra edilə bilər.

Məqsəd

Mənbə kodu ya obyekt kodunu yaratmaq üçün istifadə olunur, ya da tərcüməçi tərəfindən yerinə yetirilir. Dəyişikliklər yalnız orijinala edilir, sonra yenidən obyektə çevrilir.

Mənbə kodunun digər mühüm məqsədi proqramın təsviridir. Proqramın mətninə əsasən, onun davranışının məntiqini yenidən qura bilərsiniz. Şərhlər mənbə kodunun başa düşülməsini asanlaşdırmaq üçün istifadə olunur. Mənbə kodu sənədlərini avtomatik əldə etməyə imkan verən vasitələr də var - sözdə. sənəd generatorları.

Bundan əlavə, mənbə kodunun bir çox başqa istifadəsi var. Tədris vasitəsi kimi istifadə edilə bilər; Yeni başlayan proqramçılar proqramlaşdırma texnikalarını və metodologiyasını öyrənmək üçün mövcud mənbə kodunu araşdırmağı faydalı hesab edə bilərlər. Qısa və birmənalı xarakter daşıdığı üçün təcrübəli proqramçılar arasında ünsiyyət vasitəsi kimi də istifadə olunur. Tərtibatçılar arasında kod mübadiləsi tez-tez proqramçı təcrübəsinin yaxşılaşdırılmasına töhfə verən amil kimi qeyd olunur.

Proqramçılar tez-tez mənbə kodunu (ya modul şəklində, olduğu kimi və ya uyğunlaşmalarla) bir layihədən digərinə köçürür. Buna kodun təkrar istifadəsi deyilir.

Mənbə kodu proqram təminatının digər platformalara daşınması prosesi üçün vacib komponentdir. Hər hansı bir proqram parçasının mənbə kodu olmadan, daşıma ya çox çətindir, ya da tamamilə qeyri-mümkündür.

Təşkilat

Proqram təminatının bəzi hissəsinin (modul, komponent) mənbə kodu bir və ya bir neçə fayldan ibarət ola bilər. Proqram kodunun yalnız bir proqramlaşdırma dilində yazılması mütləq deyil. Məsələn, tez-tez C dilində yazılmış proqramlar optimallaşdırma səbəbləri üçün montaj dili kodunun daxil edilməsini ehtiva edir. Proqramın bəzi komponentlərinin və ya hissələrinin müxtəlif dillərdə yazılması və sonra kitabxana əlaqələndirilməsi ( kitabxana əlaqəsi).

Mürəkkəb proqram təminatı onlarla, hətta yüzlərlə mənbə kodu faylının qurulmasını tələb edir. Belə hallarda quruluşu sadələşdirmək üçün adətən mənbə kodu faylları arasında asılılıqların təsvirini ehtiva edən və qurma prosesini təsvir edən layihə fayllarından istifadə olunur. Bu fayllar həmçinin tərtibçi və dizayn mühiti üçün seçimləri ehtiva edə bilər. Müxtəlif dizayn mühitləri üçün müxtəlif layihə faylları istifadə edilə bilər və bəzi mühitlərdə bu fayllar mətn formatında ola bilər, digər mühitlərdə universal mətn redaktorlarından istifadə edərək proqramçı tərəfindən birbaşa redaktə etmək üçün uyğundur, xüsusi formatlar dəstəklənir və yaradılması və faylların dəyişdirilməsi xüsusi alət proqramlarından istifadə etməklə həyata keçirilir. Layihə faylları adətən "mənbə kodu" termininə daxil edilir. Çox vaxt mənbə kodu müxtəlif məlumatları ehtiva edən resurs fayllarına da aiddir, məsələn, proqram qurmaq üçün lazım olan qrafik şəkillər.

Mənbə kodu ilə işləməyi asanlaşdırmaq və proqramçılar qrupuna kod üzərində əməkdaşlıq etmək imkanı vermək üçün versiyaya nəzarət sistemlərindən istifadə olunur.

Keyfiyyət

İnsanlardan fərqli olaraq, kompüter üçün “yaxşı yazılmış” və ya “pis yazılmış” kod yoxdur. Lakin kodun necə yazıldığı proqram təminatı prosesinə böyük təsir göstərə bilər. Mənbə kodunun keyfiyyəti aşağıdakı parametrlərlə qiymətləndirilə bilər:

  • kodun oxunması (koda şərhlərin olması da daxil olmaqla);
  • dəstək, sınaq, sazlama və səhvlərin düzəldilməsi, dəyişdirilməsi və daşınması asanlığı;
  • resurslardan qənaətlə istifadə: yaddaş, prosessor, disk sahəsi;
  • kompilyator tərəfindən şərhlərin olmaması;
  • "zibil" olmaması - istifadə olunmayan dəyişənlər, əlçatmaz kod blokları, lazımsız köhnəlmiş şərhlər və s.;
  • adekvat səhvlərin idarə edilməsi;
  • interfeysin beynəlmiləlləşdirilməsi imkanı.

İcra olunmayan mənbə kodu

Pulsuz proqram təminatı üçün Copyleft lisenziyaları mənbə kodunun paylanmasını tələb edir. Bu lisenziyalar tez-tez proqram təminatı olmayan işlər üçün də istifadə olunur - məsələn, kompüter oyunları üçün sənədlər, şəkillər, məlumat faylları.

Belə hallarda redaktə üçün üstünlük verilən əsərin forması mənbə kodu hesab olunur. Proqram təminatından başqa lisenziyalarda ona “şəffaf format” versiyası da aid edilə bilər. Bu, məsələn, ola bilər:

  • məlumat itkisi ilə sıxılmış fayl üçün - itkisiz versiya;
  • vektor şəklini və ya üçölçülü modeli göstərmək üçün - müvafiq olaraq vektor versiyası və model;
  • mətn şəkli üçün - mətn formatında eyni mətn;
  • musiqi üçün - musiqi redaktorunun daxili formatında fayl;
  • və nəhayət, əgər göstərilən şərtlərə cavab verirsə və ya daha əlverişli versiya sadəcə mövcud deyilsə, faylın özü.

həmçinin bax

Var n1, n2: Longint;

Funksiya Kəmiyyət(x: Longint): Bayt;

Var k: bayt;

isə x<>0 edin

Başlayın

Son;

Kəmiyyət:= k;

Başlayın

Writeln("İki ədəd daxil edin");

k1:= Kəmiyyət(n1);

(birinci nömrənin rəqəmlərinin sayı)

k2:= Kəmiyyət(n2);

(ikinci nömrənin rəqəmlərinin sayı)

Writeln("Eyni rəqəmlərin sayı")

Əgər k1 > k2 Onda

Writeln("Birinci nömrədə daha çox rəqəm var")

Writeln("İkinci nömrənin daha çox rəqəmi var");

Mühazirə № 17. İstifadəçi işlərinin qeyri-ənənəvi istifadəsi. Rekursiya

Bir sıra problemlərin həlli alqoritmləri eyni alt proqramın ifadə bölməsindən alt proqramın çağırılmasını tələb edir.

Rekursiya, prosedur və ya funksiyanın onu təşkil edən operatorların icrası zamanı özünə istinad etdiyi hesablama prosesinin təşkili üsuludur. İstifadə rekursiya xüsusi diqqət yetirilməlidir lazımi vaxtda alt proqramdan çıxmaq üçün. Tapşırığı alt tapşırıqlara bölmək lazım olduqda rekursiya faydalıdır. Rekursiv prosedur və funksiyadan istifadə edərkən, xətti başlanğıcda yerləşdirmək lazımdır

düyməni basarsanız, dayandırın; - baş verərsə, asmağı dayandırmaq. Düymə basıldı nəticəni qaytaran funksiyadır doğru, klaviaturada düymə basılıbsa və yalan- əks halda.

Misal 1. Fibonacci seriyasının elementlərini istifadə edərək hesablamaq üçün bir proqramı nəzərdən keçirək rekursiv prosedurlar.

prosedur fibon(n,fn1,fn:integer);(rekursiv prosedur)

n > 0 olarsa

writeln(fn1+fn);

fibon(n-1,fn,fn1+fn);

var n,a,b: tam ədəd;

write("Fibonaççi seriyasının elementlərinin sayını daxil edin:");

write("...aşağıdakı iki verilmiş rəqəm: ");

Fibon(n,a,b);

Misal 2. Müsbət tam ədədin rəqəmlərini tərs ardıcıllıqla göstərən proqram.

proqram rekurs2;

prosedur tərs(n:tam);(rekursiv prosedur)

Əgər düyməyə basılırsa, dayandırın;

Yaz (n mod 10);

əgər (n div 10)<>0 sonra

Əks (n div 10);

writeln("vvedi nömrəsi<= : ", maxint);

Revers(n);

18 nömrəli mühazirə. Giriş - verilənlərin çıxışı. Fayllar

Fayl kompüterin xarici yaddaşında verilmiş ad altında saxlanılan verilənlər toplusudur.

Hər hansı bir fayl üç xarakterik xüsusiyyətə malikdir:

1. Faylın adı var, bu proqrama eyni vaxtda bir neçə faylla işləməyə imkan verir.

2. Fayl eyni tipli komponentləri ehtiva edir. Fayl komponentinin növü istənilən növ ola bilər.

3. Yeni yaradılmış faylın uzunluğu elan edildikdə heç bir şəkildə göstərilmir və yalnız xarici yaddaş qurğularının tutumu ilə məhdudlaşır.

Proqramın tələb olunan faylı tapması üçün fayla gedən yolu və ya marşrutu bilməlisiniz.

Yol bir-birindən tərs kəsik işarəsi ilə ayrılmış, sonra isə faktiki fayl adı olan alt kataloq adlarının siyahısıdır.

Misal üçün:

c:\catalog1\catalog2\file1.txt.

Hər bir kataloq adı bu adla alt kataloqdakı girişə uyğun gəlir. ".." işarəsi superkataloqun girişinə uyğundur. Maksimum icazə verilən yol uzunluğu 79 simvoldur.

TP proqramında fayl adı apostroflarla əhatə olunmuş mətn sabiti kimi müəyyən edilir ki, bu da sətir dəyişəninin qiyməti ola bilər:

"\turbo\pas\table.txt".

Cihazlar. TR-də faylların istifadəsi kompüter mühiti, onun aparatları: displey, klaviatura, printer, giriş-çıxış kanalları ilə məlumat mübadiləsi ehtiyacından irəli gəlirdi. Onların hamısı TP-də adi fayllarla eyni şəkildə işlənə bilən fayllar kimi qəbul edilir. Xarici cihazlardakı fayllar tez-tez çağırılır fiziki və ya xarici fayllar . Cihazlara adi fayllar üçün istifadə edilməsi qadağan edilən xüsusi adlardan istifadə edilir - sözdə kompüterin məntiqi qurğularının adları.

­ CON - konsol . Konsoldan istifadə edərək, çıxış məlumatı displey ekranına göndərilir, giriş məlumatı isə klaviaturadan qəbul edilir;

­ PRN bu addır Printer . Əgər kompüterə bir neçə printer qoşulubsa, məntiqi adlardan istifadə etməklə onlara daxil olur: LPT1, LPT2, LPT3.

­ COM1, COM2, COM3 – bunlar qoşulmaq üçün cihazlardır serial portlar . Digər kompüterlərlə əlaqə saxlamaq və siçanı birləşdirmək üçün istifadə olunur.

­ NUL - sıfır və ya boş qurğu. Tez-tez proqramçılar tərəfindən bir proqramı sazlamaq üçün istifadə olunur. Ayrı bir fayl yaratmaqdan qaçmağa imkan verir. Məlumatı çıxarmaq üçün ondan istifadə edildikdə, məlumat heç bir yerə çıxarılmır, lakin çıxışın uğurlu olduğu bildirilir.

Fayllara giriş.İstənilən vaxt proqram yalnız əlçatandır cari fayl mövqeyi göstəricisi tərəfindən istinad edilən bir fayl elementi. O, faylda verilənlərin oxunduğu və ya yazıldığı yeri müəyyənləşdirir. Fayl açarkən və ya yaratarkən göstərici onun əvvəlində yerləşdirilir. Göstərici mətni redaktə edərkən hərəkət edərkən həmişə cari vəziyyəti göstərən kursor kimi davranır. Fayldan verilənləri oxuyarkən göstərici nəticədə faylın sonuna çatacaq. Elementlərə daxil olma üsuluna görə fərqləndirirlər ardıcıl və ya birbaşa giriş faylları.

Qiymətli kağızlar və ya kriptovalyuta sikkələri ticarət platformalarında treyderlərə təqdim edilməzdən əvvəl onlar mürəkkəb seçim prosesindən keçməli və siyahıya daxil edilməlidir. Gəlin sadə dillə birjada listinqin nə olduğunu anlayaq – həm fond, həm də kriptovalyuta birjalarında, siyahıda olmaq üçün hansı əsas mərhələləri tamamlamaq lazımdır, şirkətin əldə etdiyi əsas üstünlüklər və delistinqin mahiyyəti nədir .

Siyahı nədir

Listinq anlayışına həyatımızın müxtəlif sahələrində rast gəlinir:

  • Fond və kriptovalyuta birjaları– onlar bu məqalənin mövzusu olacaqlar. Burada qiymətli kağızların və ya kriptokoinlərin ticarət platformalarının siyahılarına əlavə edilməsindən söhbət gedir.
  • Ticarətdə- bu, müəyyən bir istehsalçının məhsullarını mağazanın çeşidinə əlavə etmək deməkdir.
  • Proqramlaşdırmada– bu proqramın mənbə kodudur (mətnidir), kompilyator vasitəsilə icra olunan koda çevrilir.
  • Daşınmaz əmlakda– burada əmlakın sahibi ilə onu komissiya qarşılığında satan satış agenti arasında listinq müqavilələri bağlanır.

Son iki sənayeni nəzərdən keçirməyəcəyik. Biz kriptovalyutası kimi siyahıda maraqlıyıq.

Qiymətli kağızların listinqi və delistinqi

Siyahı leksikonumuzda ingilis dilindən “siyahı” kimi tərcümə olunan söz siyahısından çıxdı. Birjada qiymətli kağızların listinqi platformada kotirovka edilən alətlər siyahısına şirkətlərin səhm və istiqrazlarının əlavə edilməsi prosedurudur. Bundan sonra onlar alqı-satqı üçün əlçatan olurlar.

Listinq prosedurundan keçdikdən sonra qiymətli kağızlar birjanın ticarət siyahısına daxil edilir

Bazar iştirakçıları çox vaxt siyahının özünə siyahı kimi istinad edirlər. Üstəlik, hər saytın öz siyahısı var.

Listinqin təşəbbüskarı çox vaxt emitent şirkətdir, lakin nadir hallarda birjanın özü müəyyən qiymətli kağızları qeyri-rəsmi kanallar vasitəsilə treyderlər arasında böyük tələbat olduqda öz siyahısına daxil etmək istəyini ifadə edə bilər.

Şirkətlər üçün birjada listinq çoxlu üstünlüklərə malikdir və buna görə də şirkətlərin bu prosedurdan keçmək üçün çox səy göstərməsi təəccüblü deyil.

Birja siyahısını IPO ilə qarışdırmamaq vacibdir. Birinci halda, şirkət müəyyən bir ticarət platformasının kotirovka siyahısına daxil olmağa çalışır. IPO isə şirkətin ictimaiyyətə çevrilməsini və onun qiymətli kağızlarının investorlara təkcə vasitəsilə deyil, həm də digər kanallar vasitəsilə, məsələn, filialları vasitəsilə əlçatan olmasını nəzərdə tutur.

Siyahı mərhələləri

Listinq proseduru emitent şirkətin qiymətli kağızları investorların ixtiyarına verilməzdən əvvəl keçməli olduğu bir neçə mərhələni əhatə edir.

  1. Hər şey ərizə təqdim etməklə başlayır. Bu, ya emitentin özü, ya da şirkətin maraqlarını təmsil edən şəxs tərəfindən həyata keçirilə bilər.
  2. Növbəti imtahan mərhələsi gəlir. Birja nümayəndələri həm qiymətli kağızları, həm də şirkət haqqında mövcud olan bütün məlumatları təhlil edirlər. Müəssisənin gəlirliliyi və onun aktivlərinin likvidliyi yoxlanılır. Şirkətdən son bir neçə il ərzində toplanmış bütün maliyyə hesabatlarını təqdim etmək tələb olunur.
  3. Xüsusi komissiya ekspertizaların nəticələrinə baxır və qiymətli kağızların listinqinə əlavə edilməsi və ya müraciətin rədd edilməsi barədə qərar qəbul edir.
  4. Qərar müsbət olarsa, hər iki tərəf - şirkət və birja müqavilə bağlayır.

Prosedur, orta hesabla, təxminən 1-2 ay çəkir. Siyahıda qalmaq üçün emitent adətən rübdə bir dəfə zəruri məlumatları birjaya təqdim etməlidir.

Ticarət platformalarının şirkətlərə tətbiq etdiyi siyahı qaydaları dəyişir. Bəziləri yalnız kapitallaşması ən azı 50 milyon dollar olan və bazarda ən azı 3 il iştirak edən müəssisələr üçün siyahıya icazə verə bilər. Digərləri bu və digər tələblər üzrə barı qaldıra və ya azalda bilər.

Bütün şərtlər yerinə yetirilmirsə, lakin qiymətli kağızlar birja üçün maraqlıdırsa, onlar qiymətli kağızların ilkin siyahısına daxil edilir - buna da deyilir. ilkin siyahı. İnvestorlar da bu səhmlərlə ticarət edə bilərlər, lakin birjanın divarları xaricində və ticarət platforması onlara görə məsuliyyət daşımır.

Siyahı səviyyələri

Əsasən, birjalar bir neçə səviyyəli siyahıya malikdir. Əvvəlcə mükafat yüksək etibarlılıq səviyyəsinə malik ən likvid qiymətli kağızlar daxildir.

Şirkətlərə ikinci səviyyə Artıq tələblər o qədər də yüksək deyil. Üçüncüsü üçün müraciət edən müəssisələr üçün ən aşağı, sözdə sitatsız siyahı. Bu səviyyəli şirkətlərin qiymətli kağızlarını alan investorlar müstəqil olaraq onların etibarlılığını diqqətlə təhlil etməlidirlər.

Məsələn, Əsas və Alternativ saytlar etibarlı deyil. Birincisi iki səviyyəyə bölünür: “Standart” və “Premium”. Alternativ bazar sadələşdirilmiş qaydada buraya daxil olan kiçik və orta inkişafda olan müəssisələr üçün nəzərdə tutulub.

Platformalar zaman zaman istiqrazların və səhmlərin listinq səviyyələrini artıra və ya əksinə azalda, hətta onları tamamilə ləğv edə bilər.

Siyahı növləri

Əsas və ikinci dərəcəli siyahılar var.

İlkin siyahı səhmlərin şirkətin qeydiyyatdan keçdiyi ölkə daxilində birjada investorların istifadəsinə verilməsini nəzərdə tutur.

At ikinci dərəcəli siyahı qiymətli kağızlar beynəlxalq bazarlara çıxarılır və xarici platformaların siyahılarına daxil edilir. Bu, yalnız ilkin siyahı mərhələsi başa çatdıqda edilə bilər.

da var ikiqat siyahı,şirkət ardıcıl olaraq öz ölkəsindəki bir neçə ticarət platformasının kotirovka siyahılarına daxil olmağa çalışır.

çarpaz siyahı– bu halda şirkət müxtəlif ölkələrdəki bir neçə mübadilə platformasının siyahısına əlavə edilmək üçün ərizələr göndərir. Üstəlik, onlardan biri qiymətli kağızların əlavə edilməsinə razılıq verərsə, digərlərində şirkət sadələşdirilmiş sxem üzrə listinq prosedurunu tamamlamaq imkanı əldə edir. Bu, təkcə maddi xərcləri deyil, həm də ərizəyə baxılması üçün tələb olunan vaxtı azaldır.

Emitentin üstünlükləri nələrdir

Səbəbsiz deyil ki, şirkətlər birjalarda siyahıya düşmək üçün səy göstərirlər, çünki bu, onlara bir sıra üstünlüklər vəd edir. Birincisi, onların investisiya cəlbediciliyi artır və nəticədə gələcək inkişaf üçün vəsait cəlb etmək asanlaşır. Üstünlüklərə də daxildir:

  • buraxılmış qiymətli kağızlara tələbatın artması ilə müəssisənin kapitallaşmasının artması;
  • işgüzar dairələrdə görmə və etibarın artırılması;
  • səhm və istiqrazların likvidliyinin artırılması;
  • xarici valyuta siyahılarına əlavə etmək imkanı;
  • bəzi hallarda vergi güzəştləri tələb edə bilərsiniz.

Bununla belə, unutmamalıyıq ki, bundan sonra şirkətin fəaliyyətinə diqqət artırılacaq və hər hansı bir hərəkət dərhal səhmlərin dəyərinə təsir edəcəkdir. Bundan əlavə, siyahıya alma proseduru pulsuz deyil. Bütün aparılan müayinələr pula başa gəlib.

Bu investorlara nə verir?

Əsas odur ki, inamdır. İnvestorlar şirkətin səhmlərinə investisiya qoyarkən bilirlər ki, onun etibarlılığı peşəkarlar tərəfindən yoxlanılıb. Birja listinqində olması onları müəssisənin etibarlılığını müstəqil yoxlamaqdan xilas edir.

Delistinq nədir

Qiymətli kağızlar birjaya çıxarılsa belə, orada əbədi qalacağına zəmanət yoxdur. Müəyyən şərtlər altında sayt onları oradan silə bilər. Bu, məsələn, emitent birjanın şərtlərinə əməl etməyi dayandırdıqda, öhdəliklərini yerinə yetirmədikdə, özünü müflis elan etdikdə və s.

Zamanla artmayan, aşağı tələbi göstərən səhm qiyməti də delistinqə səbəb ola bilər. Belə olur ki, delistinqin təşəbbüskarı şirkətin özüdür, məsələn, müəssisələrin birləşməsi zamanı.

Kriptovalyuta siyahısı

Listing tez-tez kriptovalyuta mühitində müzakirə olunur. Burada rəqəmsal sikkələr və ya tokenlər mübadilə platformalarının ticarət siyahısında görünür.

Kriptovalyuta layihələri məşhur birjalarda yer almağa çalışır

Kriptovalyuta birjalarında listinq tələbləri dəyişir. Böyük tanınmış saytlara daxil olmaq kiçik saytlardan daha çətindir. Buna görə əksər layihələr kiçik ticarət platformalarından başlayır.

Buraxılış qiyməti

Əsas məsələlərdən biri də xərcdir. . Az tanınan birjalar kriptovalyutaları pulsuz siyahıya sala bilər. Tanınmış platformaların siyahılarına daxil olmaq minlərlə, hətta on minlərlə dollara başa gələ bilər - siyahıya düşməzdən əvvəl sikkənin təhlili üçün pul tələb edirlər. Baxmayaraq ki, istisnalar var.

Məsələn, Binance bu payızda elan etdi ki, listinq haqları xeyriyyə məqsədlərini maliyyələşdirmək üçün istifadə olunacaq. Eyni zamanda, sabit qiymətlər yoxdur - tərtibatçılar siyahıya görə nə qədər ödəmək istədiklərini özləri müəyyənləşdirirlər. Poloniex rəhbərliyi siyahıya görə heç bir pul tələb etmədiyini iddia edir.

İlin əvvəlində Business Insider jurnalistləri məqalə dərc etdilər ki, ona görə ICO layihələri üçün kriptovalyuta birjalarında listinq üçün minimum hədd 50 min dollardır, bəzi hallarda isə 1 milyon dollara çata bilər.

Birja rəhbərliyinin siyahıya sikkələrin daxil edilməsinə görə rüşvət alarkən yaxalanması halları da olub. Buna misal olaraq Coinnest birjasını göstərmək olar - onun əməliyyat və texniki direktorlarına S-coin kriptovalyutasını ticarət siyahısına əlavə etmək üçün təxminən 890 min dollar ödənilib.

Bu necə işləyir

Bir nişanın siyahıya alınması üçün, çox vaxt seçilmiş saytda bir ərizə təqdim etməli və bir forma doldurmalısınız. Bununla belə, məşhur mübadilə sikkələri layihə qrupunun bunu təklif etməsini gözləmədən öz-özünə siyahıya alına bilər. Məsələn, hər birjada Bitcoin (BTC) və bir qayda olaraq Ethereum (ETH) olmalıdır.

Anketdə ən çox hansı suallara rast gəlinir:

  • sikkənin adı və təsviri;
  • əsas şəbəkənin işə salınma tarixi, həmçinin platformanın özü;
  • Github linki;
  • layihənin Ağ Kitabına keçid;
  • sosial şəbəkələrə keçidlər;
  • şəbəkədə mədən işlərinin olub-olmaması və əvvəlcədən qazma olub-olmaması;
  • maksimum sikkə buraxılışı və s.

Birjalar tez-tez istifadəçiləri arasında müsabiqələr keçirirlər - onlar təklif olunan kriptovalyutalara səs verirlər və qalib sikkə kotirovka siyahısına əlavə olunur.

2018-ci ilin yayının sonunda Huobi Global kriptovalyutaların avtomatik siyahısı üçün platformanı işə saldı. Onun köməyi ilə birja ticarət siyahısına tokenlərin əlavə edilməsi prosesini sürətləndirmək və onu şəffaflaşdırmaq niyyətindədir.

Əhəmiyyətli nüanslar

Birjaların baxdığı ilk şey sikkənin dəyəri, cəmiyyət üçün faydalılığıdır. İkinci yerdə layihənin təhlükəsizliyi dayanır, çünki kriptovalyuta şəbəkəsi sındırılsa, mübadilə də zərər görəcək. Onları mütləq peşəkarlıq, eləcə də komandanın nüfuzu maraqlandırır.

Məsələn, Bittrex-də ərizəyə ilkin baxılma mərhələsi və dərin bir mərhələ var. Əgər şirkətin mütəxəssisləri ilkin mərhələdə sikkənin birjada siyahıya salınmağa layiq olduğunu hesab etsələr, onun texniki xüsusiyyətləri, innovativ imkanları və platformanın tələblərinə uyğunluğu hərtərəfli öyrənilməyə başlayır.

Birjalar qiymətli kağızlar kimi tanınan sikkələri əlavə etməməyə çalışırlar. Məsələn, Poloniex dərhal tərtibatçıları tokenin bu meyarlara cavab verib-vermədiyini müəyyən etmək üçün Howey testi ilə tanış olmağa dəvət edir.

Böyük platformalar arasında bir istisna müvafiq tənzimləyici təsdiqi almış və qiymətli kağızların xüsusiyyətlərinə malik tokenlərlə rəsmi fəaliyyət göstərə bilən Coinbase mübadiləsidir.

Maraqlıdır ki, əgər aktiv müəyyən ölkənin qanunlarına ziddirsə, o, müəyyən yurisdiksiyalardan olan istifadəçilər üçün əlçatan olmaya bilər.

"Mübadilə effekti"

Siyahılara məşhur kriptovalyuta birjalarını əlavə etdikdən sonra sikkələrin dəyəri, bir qayda olaraq, kəskin şəkildə - orta hesabla 25-30% artır. Bu nümunə hətta “mübadilə effekti” adlanır. Bu, daha çox istifadəçinin sikkə haqqında məlumat əldə etməsi, tanınması və ona tələbatın artması səbəbindən baş verir. Ancaq çox vaxt bu yüksəliş qısamüddətli olur və tezliklə dəyər azalmağa başlayır.

Birjaların ticarət siyahılarına daxil edildikdən sonra tokenlərin qiymətinin əksinə düşdüyü vəziyyətlər də var. Bu, tez-tez layihə dərhal sonra siyahıya alındıqda baş verir və token satışı zamanı sərmayə qoyan investorlar sikkəni aktiv şəkildə birjaya ataraq tez əlavə pul qazanmağa çalışırlar.

Kripto sikkələr bir sıra səbəblərə görə siyahıdan çıxarılır:

  • treyderlərdən aşağı faiz;
  • qanunvericilikdə dəyişikliklər;
  • kriptovalyuta şəbəkəsinin blok zəncirinin sındırılması;
  • tərtibatçıların sikkəni daha da dəstəkləməkdən imtina etməsi;
  • istifadəçi şikayətləri.

Tokenlər, bir qayda olaraq, dərhal silinmir - birja treyderlərə mövqeləri bağlamaq və öz pul kisələrinə vəsait çıxarmaq üçün bir neçə həftə vaxt verir.

Ticarətdə siyahı

Listinq anlayışı ticarət sahəsində də mövcuddur. Təchizatçı məhsullarının, məsələn, böyük bir pərakəndə satış şəbəkəsinin rəflərində satılmasını istədikdə, ilk növbədə, məhsulunu siyahıya əlavə etmək üçün şirkət rəhbərliyi ilə razılaşmalıdır.

Əgər məhsula müştərilər arasında tələbat yoxdursa, o, həm də siyahıdan çıxarılma prosedurundan keçə bilər və bu halda o, mağaza rəflərindən yoxa çıxır.


Kateqoriyalar