Komputery Okna Internet

Rejestracja ofert programów. Listing programu głównego Co to jest listing w programowaniu

Wykaz programu „demol.c” pokazano na rys. 6.7. Programista wymyśli nazwę programu. Wymagane jest rozszerzenie „.c”. Tekst wpisuje się w edytorze „Programmer's Notepad 2” (w skrócie PN2), który zamiast powłoki graficznej jest zawarty w pakiecie WinAVR. Zajmuje się również tworzeniem projektów, korekcją błędów, kompilacją programów, a nawet programowaniem MK.

Ryż. 6.7. Listing programu "demol.c".

Ryż. 6.8. Wygląd programu PN2.

Edytor PN2 to samodzielny projekt z własną stroną internetową. Menu główne PN2 pokazano na rys. 6.8.

Procedura.

1.3 Uruchom w celu wykonania plik "WlnAVR-20100110-install.exe" (29 MB) znajdujący się na dostarczonej płycie CD-ROM. Plik ten w razie potrzeby można bezpłatnie pobrać z Internetu. Zainstaluj WlnAVR domyślnie w folderze C:\WinAVR-20100110\.

2. Otwórz edytor PN2: "Start - Programy - WinAVR-20100110 - Programista Notatnik". Włącz numerację wierszy: „Narzędzia – Opcje – Ogólne – Domyślne –<поставить «галочку» возле «Show Line Numbers»>- OK".

3. Utwórz nowy plik C w edytorze PN2: "Plik - Nowy - C/C++". Wprowadź tekst programu z klawiatury zgodnie z rys. 6.7 i zapisz go na dysku twardym: "Plik - Zapisz jako ... -<ввести путь и имя файла, например, для однозначности C:\1001\demol.c>- OK".

W dalszej części zrzuty ekranu (zrzuty ekranu) będą wyświetlane tylko w najważniejszych punktach akcji, aby zaoszczędzić miejsce. Pozostałe zrzuty ekranu w trybie krok po kroku można zobaczyć w samouczkach wideo na załączonej płycie CD.

Wyjaśnienia dotyczące aukcji.

Linia 1 zaczyna się komentarzami, które są oddzielone z lewej strony dwoma ukośnymi liniami ukośnika. Cały tekst po znakach „//” może dotyczyć czegokolwiek, w dowolnym języku, z dowolnymi swobodami i skrótami. To arbitralna informacja, którą programista pisze dla siebie, swojej ukochanej, aby za miesiąc lub dwa przypomnieć sobie, o czym tak naprawdę było dyskutowane. Zazwyczaj wskazuje się krótką nazwę programu i autorstwo.

Wiersz 2 również zawiera komentarze, ale o charakterze technicznym. Oto schemat obwodu do podłączenia wskaźnika HL1 i przycisku SB1 do określonych linii portów MK. Nazwy sygnałów odpowiadają układowi z kreski na MHKpocxeMyATmega48A (ryc. 6.9).

Ryż. 6.9. Układ sygnału MKATmega48A.

Praktyka tekstowego opisu prostych diagramów w „główce” programu jest powszechna w społeczności programistów, którzy leniwie rysują i stosują diagramy graficzne, wierząc, że „i tak wszystko jest jasne”.

Linia 3 określa parametry dla "makefile". Dla porównania, normalne działanie kompilatora AVR-GCC jest możliwe z dwoma wymaganymi plikami. Pierwszy to plik listingu z rozszerzeniem ".c", drugi to plik dyrektywy systemowej "makefile" bez rozszerzenia. „Makefile” jest tworzony przez narzędzie „MFile” (rys. 6.10, JoergWunsch, Niemcy) zawarte w WinAVR.

Ryż. 6.10. Wygląd programu MFile.

Procedura.

1. Uruchom narzędzie "MFile" do wykonania: "Start - Programy - WinAVR-2010010 - MFile".

2. Wypełnij pola szablonu w następujący sposób (rys. 6.11):

W pozycji "Makefile - Nazwa pliku głównego... - Plik główny" wpisz nazwę tworzonego projektu "demol" i kliknij OK;

W pozycji "Makefile - typ MCU - ATmega" wybierz MK "atmega48a";

W pozycji "Makefile - Poziom optymalizacji" ustaw poziom optymalizacji na "2". Inne możliwości: "0" - brak optymalizacji, "s" - minimalna długość kodów, cyfry "1" ... "3" to trzy różne metody optymalizacji, a cyfra "3" nie oznacza najlepszej opcji, to wszystko zależy od konkretnego programu C ...

Nie ma potrzeby poprawiania pozostałych klauzul szablonu "makefile", niech pozostaną domyślnymi.

Ryż. 6.11. Wypełnianie pól w programie MFile.

Dla każdego nowego projektu i nowego typu MK musisz skomponować własny "makefile", podczas gdy nazwa projektu i typ MK ulegną zmianie.

Linia 4 zawiera komentarze określające szesnastkowe liczby bajtów Low, High i Ext konfiguracji. Wartości te będą potrzebne później podczas programowania bezpieczników MK.

С «ктг5 jest informacyjnie pusty. Wizualnie oddziela tekst komentarza od reszty programu. Zamiast jednej możesz wstawić dwie puste linie, co nie jest ważne. Głównym celem jest poprawa widoczności. Nie wpływa to na długość kodów oprogramowania układowego MK.

Projekt zewnętrzny listingu wymyślił sam programista, na podstawie własnych wyobrażeń o pięknie obrazu i wygodzie prezentowania informacji. Często po stylu nagłówka, wyliczaniu linijek i komentarzy można zidentyfikować autora programu lub skomponować jego portret psychologiczny. Interesujące uwagi na ten temat zawiera monografia Alaina Goluba.

Linia 6 jest obsługiwana przez preprocesor kompilatora. To nie jest stwierdzenie w języku C ani komentarz. Nazwa jest złożona, ale znaczenie jest proste. Preprocesor (preprocesor) wyszukuje w programie wiersze zaczynające się od znaku „#”. Ponadto w zależności od słowa kluczowego wykonuje określoną akcję, np. „zdefiniuj” – przypisuje wartości do stałych, „jeśli zdefiniowano” – sprawdza warunek, „inC1ude” – łączy bibliotekę funkcji itp.

Dla pierwszego znajomego wystarczy wiedzieć, że biblioteka funkcji to zbiór plików, które zawierają teksty standardowych lub często powtarzanych procedur. W tym przypadku dyrektywa „# inC1ude” (przetłumaczona z angielskiego „Include”) aktywuje bibliotekę systemową „avr/io.h”, która odpowiada za działanie portów I/O. Ta biblioteka ma inną nazwę w różnych kompilatorach, ale istota jest taka sama, bez niej nie można sterować żadną linią portów MK. Dlatego podłączenie biblioteki I/O jest obowiązkowe dla wszystkich programów C mikrokontrolera.

Linia 7 jest również przetwarzana przez preprocesor kompilatora, ale zawiera słowo kluczowe „define”. Dlatego deklaruje stałą INI i przypisuje jej stałą wartość 255. Komentarze wskazują konwersję 255 na szesnastkowy 0xFF i binarny 0bl 1111111. Różnica między nimi polega na literach „x” i „b” po obowiązkowej cyfrze „0”. Zgodność liczb w różnych systemach podana jest w tabeli. 6.3.

Tabela 6.3. Konwersja liczb z szesnastkowych na binarne i odwrotnie

Jeśli gdzieś w „ciele” programu napotkamy stałą INI, to kompilator bez wahania podstawi zamiast niej wartość liczbową podaną w wierszu 7, tj. 255. Jest to bardzo wygodne dla programistów podczas poprawiania dużych listingów, gdy stałe są rozrzucone po całym tekście. Ponadto sama nazwa stałej może nieść ładunek semantyczny i służyć jako wskazówka słowna. W szczególności INI to skrót od angielskiego słowa „initialization”, co oznacza pewną wartość początkową.

Znaczenie umieszczenia stałej w „nagłówku” programu polega na prostocie jej wyszukiwania i szybkości wprowadzania zmian. Na przykład, poprawiając liczbę „255” raz, możesz być pewien, że w każdym miejscu tekstu zostanie ona automatycznie (i bezbłędnie!) wprowadzona przez stałą lNI.

Programista wymyśla nazwę stałej w oparciu o zdrowy rozsądek i ludzkie preferencje. Zgodnie z długą tradycją nazwy stałych pisane są wielkimi literami. Pierwsza w nazwie musi być literą, na przykład I2CBUS, T34. Cyrylica jest niedozwolona.

Deklarację stałej INI można zapisać na dwa inne równoważne sposoby: "#define INI OxFF" lub "#define INI Obl 1111111".

Linia 8 zawiera operator opisujący zmienną "a". Zmienną można przedstawić w przenośni jako pudełko (pudełko, pudełko, piórnik), w którym przechowywana jest pewna liczba elementów (koraliki, ziarna, zapałki). Aby „pudełka” różniły się od siebie, są one oznaczone różnymi napisami na obudowie, w tym przypadku literą „a”. Jeżeli numer początkowy nie jest podany w opisie zmiennej, to uważa się, że "pudełko" jest puste i jest inicjowane zerem (a = 0). W trakcie programu można dodawać elementy do „pudełka” i usuwać je z niego, tj. zwiększać i zmniejszać wartość zmiennej.

Objętość „pudełka” zależy od jego pierwotnej deklaracji. Tabela. 6.4 pokazuje limity akceptowane w kompilatorze AVR-GCC. Jak widać deklaracja „unsigned char” pozwala na umieszczenie 255 pozycji w „pudełku”. Razem z wartością zerową (puste "pudełko") będzie łącznie 256 stanów lub 256 bajtów. Zmienna z deklaracją „unsigned long” nie jest już jak szkatułka, ale cały pociąg, który jest przeznaczony na 4,2 mld sztuk.

Tabela 6.4. Wymiar zmiennych przyjętych w АУК-ВСС

Ponieważ MK nie ma opracowanych narzędzi do pracy z liczbami ujemnymi, na początku, aby się nie pomylić, lepiej używać w programach tylko liczb dodatnich, tj. zawierające „niepodpisaną” deklarację.

„Ojcowie-dowódcy” języka Od czasów starożytnych ustanowili niewypowiedziany porządek, zgodnie z którym nazwa zmiennej nie powinna składać się z więcej niż 8 znaków. W kompilatorze AVR-GCC ta reguła jest ignorowana, a zmienna może zawierać tyle znaków, ile chcesz, ale bez fanatyzmu. Jedyną rzeczą jest to, że pierwsza litera w nazwie musi koniecznie być literą alfabetu łacińskiego, po niej mogą następować litery, cyfry, symbole. Cyrylica jest niedozwolona.

Zmienna, w przeciwieństwie do stałej, zawiera pewną zmienną (nie stałą) liczbę. Aby odróżnić zmienne od stałych, pisane są małymi literami. Zwykle starają się, aby nazwa pasowała do znaczenia, na przykład „liczba” dla licznika, „dane” dla danych, „opóźnienie” dla opóźnienia. Chociaż czasami prostsze, bardziej znane i bardziej zwarte zmienne jednoliterowe, dobrze znane ze szkolnej algebry, wyglądają a, b, c, d, i, j, k, x, y, z.

Jaki wymiar określić dla danej zmiennej określa programista. Ponieważ zmienna „a” w tym zestawieniu jest repozytorium do zbierania informacji z cyfrowego 8-bitowego portu „C”, oznacza to, że powinna zawierać bajty „od dwóch do ósmej potęgi”, tj. od 0 do 255.

Interesujące jest to, że kompilator nie wygeneruje błędu, jeśli potraktujesz go bezpiecznie i zadeklarujesz zmienną z marginesem jako „unsigned long a;”. To prawda, że ​​prowadzi to do niepotrzebnego zwiększenia rozmiaru kodu ze 114 do 126 bajtów i odpowiednio do nieznacznego zmniejszenia szybkości wykonywania programu.

Drugą skrajnością jest niedoszacowanie wymiaru, gdy np. zamiast deklarowania „unsigned int” stosuje się „unsigned char”. Jeżeli w takiej zmiennej wpiszesz liczbę większą niż 255, to tylko reszta z dzielenia przez 256 zostanie zapisana, a wiodąca część zostanie bezpowrotnie utracona. Mówiąc obrazowo, przedmioty wylewa się z „pudełka”. Kompilator nie reaguje na takie błędy, zakładając, że programista jest w odpowiednim stanie i rozumie, co robi. Prawidłowe i bezbłędne określenie wymiaru zmiennych zwykle przychodzi wraz z doświadczeniem.

Linia 9 jest pusta dla informacji, podobnie jak linia 5. To, czy wstawić ją do listingu, zależy od woli programisty.

Linia 10 jest wypełniona komentarzami, ale dla urozmaicenia są one w innym formacie. Mianowicie, tekst podkreślony jest z lewej strony znakami „/*”, a z prawej – znakami „*/”.Styl ten wywodzi się z najstarszych wersji języka C. Później w komentarzach zastosowano symbole „//”, co jest typowe dla języka C++. W WinAVR obie opcje mają równe prawo do istnienia. „Nowa” pisownia jest prostsza i jaśniejsza, a „stara” w niektórych miejscach jest jedyną możliwą, jeśli chcesz skomentować początek operatora.

Linia 11 zawiera typowe wywołanie funkcji „głównej” zgodnie z zasadami amerykańskiego National Standards Institute (ANSI). Wyrażenia skrócone są dozwolone, ale nie zalecane: "int main()", "main()", "main (void)". Czasami piszą nawet „unieważnij główne (unieważnij)”, podkreślając całkowity brak parametrów odebranych i przekazanych. W przypadku prostych MK, które nie obsługują systemów operacyjnych czasu rzeczywistego, nie będzie żadnych negatywnych konsekwencji. Jeśli jednak myślisz o przyszłości, lepiej od razu zapamiętać pełną formę pisania, co ułatwi w przyszłości przenoszenie programów w C na nowocześniejsze platformy mikrokontrolerowe.

Linia 12 przechodzi pod pierwszą otwartą nawiasem klamrowym. To nie przypadek, że otrzymała taki zaszczyt. Kompilator C, wykonując wiersz 12, wykonuje początkową inicjalizację rejestrów MK, instalację stosu i przydzielanie przestrzeni adresowej. Nie ma potrzeby poznawania mechaniki tego procesu jubilerskiego (w przeciwieństwie do programów w Assemblerze!).

Dla programisty najważniejsze jest prawidłowe nauczenie się dwóch rzeczy, które są automatycznie tworzone przez kompilator zawarty w WinAVR:

Na początku programu wszystkie przerwania są wyłączone;

Wszystkie linie portu MK są skonfigurowane jako wejścia bez rezystorów podciągających.

Wiersz 13. W końcu pojawiła się pierwsza wykonywalna komenda programu w formie instrukcji przypisania. Objaśnienie symboli:

„DDRB” to konwencjonalna nazwa ośmiobitowego rejestru DDR portu „B”;

"=" - znak zapisu danych do rejestru DDRB;

„ОЬ” – oznacza, że ​​kolejne 8 cyfr będzie w kodzie binarnym;

„11111111” - bity liczby binarnej zapisane w rejestrze DDRB, ułożone w kolejności 7, 6, 5, 4, 3, 2, 1, 0 (najbardziej znaczący bit po lewej, najmniej znaczący bit po Prawidłowy).

W wyniku wykonania tego operatora wszystkie linie portu „B” są ustawiane w tryb wyjścia, ponieważ wszystkie cyfry zawierają jednostki.

Oświadczenie w wierszu 13 jest wcięte dwa odstępy od lewej. Jest to konwencja formatowania tekstu, której przestrzega wielu programistów. Kompilator "będzie milczeć", jeśli zaczniesz tekst w pierwszej lub siódmej kolumnie od lewej, jak chcesz. Jest tylko jedno zalecenie: „Lista programu w języku C powinna być łatwa do przeglądania”. Następnie w przyszłości wszystkie teksty będą sformatowane tak, aby nawiasy klamrowe znajdowały się w nieparzystych kolumnach pionowo (1, 3, 5 itd.), a w każdej kolumnie będzie tylko jeden otwór u góry i jeden zamykający szelki na dole.

Określona kolejność nie jest dogmatem, ale sposobem na skrócenie aukcji w szerokości i długości bez utraty treści informacyjnej. Programista "w domu" w swoich zestawieniach ma prawo wpisać dowolną ilość spacji, pustych linii itp.

Linia/4 działa w połączeniu z linią 13, ponieważ o konkretnym stanie linii portu w kontrolerach AVR decyduje wiązka dwóch rejestrów DDRx i PORTx, gdzie „x” to litera porządkowa portu, np. B, C lub D. Biorąc pod uwagę, że każdy rejestr zawiera 8 bitów o numerach od 0 do 7 (warunkowo „z”), ogólny układ wzdłuż linii portów wygląda następująco:

DDRx.z = 1, PORTx.z = 1 - wyjście wysokiego poziomu;

DDRx.z = 1, PORTx.z = 0 - wyjście LOW;

DDRx.z = 0, PORTx.z = 1 - wejście z rezystorem „podciągającym”;

DDRx.z = 0, PORTx.z = 0 - wejście bez rezystora podciągającego.

Podsumowując wiersze 13 i 14: DDRB.0 ... DDRB.7 = 1, PORTB.O = 0, PORTB.l = 1, PORTB.2 ... PORTB.7 = 0, zatem wiersze 0, 2 .. 7 portu „B” zostanie skonfigurowanych jako wyjścia LOW, a linia 1 jako HIGH. Ponieważ wskaźnik HL1 jest podłączony do linii PB1 (styk 15 mikroukładu DD1 na ryc. 6.3), zostanie zgaszony. Okazuje się, że wstępna część zadania technicznego zakończyła się sukcesem.

Linie 15, 16 są podobne do linii 13, 14, ale dla portu „C”. Dla odmiany stosuje się stałe podstawienie lNI. Po wykonaniu linii 15 i 16 wszystkie linie portu „C”, nawet te, które nie są bezpośrednio zaangażowane w pracę, zostaną skonfigurowane jako wejścia z rezystorami typu „pull-up”. Jest to standardowa technika inicjowania portów w celu aktywacji wewnętrznych rezystorów podciągających, które zapobiegają zawieszaniu się wejść CMOS linii MCU w powietrzu i eliminują wszelkiego rodzaju szumy i ścieżki odbioru.

Linia 17 jest podobna do linii 13, 14 i 15, 16, ale dla portu „D”. W ogóle nie jest używany w obwodzie elektrycznym, ale należy go przyjąć jako zasadę - inicjalizację wszystkich portów bez wyjątku na początku programu. Ich bezczynne linie muszą być skonfigurowane jako wejścia rezystora podciągającego lub jako wyjścia HIGH / LOW. W przyszłości taki automatyzm pozwoli uniknąć kolizji i nieporozumień.

Cechą szczególną jest przypisanie rejestru PORTD do wartości wcześniej przypisanej w linii 13 do rejestru DDRB, tj. liczba binarna Obl 1111111. Zrobiono to w celach edukacyjnych, bo mogło być łatwiej: "PORTD = OxFF;".

Kolejnym szczegółem jest brak zapisu do rejestru DDRD. Nie jest to literówka, a celowe skrócenie wpisu o jedną linijkę, ponieważ po włączeniu zasilania, zgodnie z kartą katalogową, wszystkie rejestry DDRx, PORTx są automatycznie wypełniane zerami, czyli nie jest konieczne dodatkowe kasowanie rejestru DDRD.

Linia 18 zawiera instrukcję pętli „while”. Dla pierwszego znajomego wystarczy pamiętać, że wyrażenie „while (1)” oznacza sekwencyjne wykonywanie instrukcji w wierszach 19…21 w nieskończonej pętli.

Linia 19 zawiera otwarty nawias i instrukcję przypisania. Ta kombinacja jest dozwolona przez zasady języka C, co sprawia, że ​​listing ma bardziej zwartą wysokość.

Po wykonaniu linii 19 zmienna "a" przechowa bajt statusu ośmiu linii portu "C", który został odczytany z rejestru PINC. Jeśli przycisk SB1 nie jest wciśnięty, to „a = OxFF”, a jeśli wciśnięty, to „a = OxFE”.

Linia 20 przesuwa zawartość zmiennej "a" o jeden bit w lewo. Możliwe są dwie opcje: jeśli „a” było wcześniej OxFF, to stanie się OxFE, a jeśli było OxFE, stanie się OxFD. Dlaczego tak się dzieje, powie ci następny wiersz programu.

Linia 21 zawiera operator przypisania, ale w porównaniu z linią 19, zmienna "a" i rejestr portu są odwrócone. W języku C taka roszada powoduje zastąpienie operacji odczytu z portu operacją zapisu do portu. W sumie kod 0xFE (jeśli przycisk SB1 nie jest wciśnięty) lub kod 0xFD (jeśli przycisk SB1 jest wciśnięty) zostanie wyprowadzony na port „B”. W pierwszym przypadku wskaźnik HL1 zgaśnie, w drugim będzie się świecił, co było wymagane do osiągnięcia zgodnie z zakresem zadań.

Linie 22, 23 zawierają zamykające nawiasy klamrowe. Jeśli w myślach narysujesz z nich dwie pionowe linie „od dołu do góry”, to wskazują one bezpośrednio na nawiasy otwierające w wierszach 19 i 12. Nawias w wierszu 22 oznacza powtórzenie pętli w wierszach 19 ... 21. Nawias w wierszu 23 zaczyna się na pierwszej pozycji od lewej, więc osiągnięto koniec funkcji „main”, a więc programu głównego.

Linia 24 zawiera uwagi dotyczące numeru wersji WinAVR i długości kodów oprogramowania układowego, co jest bardzo przydatne podczas kompilowania programu przez innych użytkowników. Wiadomo, że wersje WinAVR nie są ze sobą w 100% kompatybilne, na co istnieją ilustracyjne przykłady. W związku z tym długość skompilowanego kodu tego samego wpisu może się różnić w zależności od wydania. Praktyczny wniosek jest taki, że najpierw należy skompilować program z pakietem WinAVR wskazanym w linii 24, a dopiero potem na starszej lub nowszej wersji, sprawdzając długość otrzymanego kodu jako sumę kontrolną.

Uważny czytelnik ma prawo zauważyć, że na etapie kompilowania listingu programu w C nie można było z góry obliczyć, ile kodów zajmują w pamięci MK. Szczerze mówiąc, napis „114 bajtów (2,8%)” został dodany później, po skompilowaniu programu. Istnieje wyraźny przykład samego sprzężenia zwrotnego, które na schemacie strukturalnym na ryc. 6.1 oznaczono linią przerywaną między blokami „K” i „L”.

Linia 25 jest całkowicie pusta, ale w przeciwieństwie do linii 5 i 9 oznacza fizyczny koniec listy. Bez tej końcowej linii kompilator wydaje łagodne, ale wciąż ostrzeżenie: "Ostrzeżenie: brak nowej linii na końcu pliku".

Var n1, n2: Longint;

Funkcjonować Ilość (x: Longint): Bajt;

Var k: bajt;

Podczas gdy x<>0 Do

Rozpocząć

Kończyć się;

Ilość: = k;

Rozpocząć

Writeln („Wprowadź dwie liczby”);

k1: = Ilość (n1);

(liczba cyfr pierwszego numeru)

k2: = Ilość (n2);

(liczba cyfr drugiej liczby)

Writeln („Ta sama liczba cyfr”)

Jeśli k1> k2 Wtedy

Writeln („W pierwszej liczbie jest więcej cyfr”)

Writeln ("Druga liczba zawiera więcej cyfr");

Wykład nr 17. Nietradycyjne wykorzystanie podprogramów zdefiniowanych przez użytkownika. Rekurencja

W wielu algorytmach rozwiązywania problemów wymagane jest wywołanie podprogramu z sekcji instrukcji tego samego podprogramu.

Rekurencja to sposób organizacji procesu obliczeniowego, w którym procedura lub funkcja podczas wykonywania operatorów składowych odwołuje się do siebie. Za pomocą rekurencja Zwróć szczególną uwagę aby wyjść z podprogramu we właściwym czasie. Rekurencja jest przydatna, gdy zadanie musi zostać podzielone na podzadania. Korzystając z procedury rekurencyjnej i funkcji, na początku należy umieścić linię

jeśli naciśnięty klawisz to zatrzymaj; - przerwać zawieszenie, jeśli w ogóle. Naciśnięty klawisz Jest funkcją, która zwraca wynik prawda, jeśli klawisz został naciśnięty na klawiaturze i fałszywe- Inaczej.

Przykład 1. Rozważ program do obliczania elementów szeregu Fibonacciego za pomocą rekursywny procedury.

procedura fibon (n, fn1, fn: liczba całkowita);(procedura rekurencyjna)

jeśli n> 0 to

napisane (fn1 + fn);

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

zmn, a, b: liczba całkowita;

napisz ("wpisz liczbę elementów szeregu Fibonacciego:");

napisz ("... po dwóch podanych cyfrach:");

Fibon (n, a, b);

Przykład 2. Program, który drukuje cyfry dodatniej liczby całkowitej w odwrotnej kolejności.

rekursy programowe2;

odwrócona procedura (n: liczba całkowita);(procedura rekurencyjna)

Jeśli zostanie naciśnięty klawisz, zatrzymaj się;

Napisz (n mod 10);

jeśli (n dział 10)<>0 wtedy

Rewers (n dział 10);

napisane ("vvedi chislo<= : ", maxint);

Rewers (n);

Wykład nr 18. Wejście - wyjście danych. Pliki

Plik to zbiór danych przechowywanych w zewnętrznej pamięci komputera pod określoną nazwą.

Każdy plik ma trzy charakterystyczne cechy:

1. Plik ma nazwę, która umożliwia równoczesną pracę programu z kilkoma plikami.

2. Plik zawiera komponenty tego samego typu. Typ komponentu pliku może być dowolnego typu.

3. Długość nowo tworzonego pliku nie jest w żaden sposób określana podczas jego deklarowania i jest ograniczona jedynie pojemnością zewnętrznych nośników pamięci.

Aby program znalazł żądany plik, musisz znać ścieżkę lub trasę do pliku.

Ścieżka to lista nazw podkatalogów oddzielonych od siebie ukośnikiem odwrotnym, po którym następuje rzeczywista nazwa pliku.

Na przykład:

c: \ katalog1 \ katalog2 \ plik1.txt.

Każda nazwa katalogu odpowiada wpisowi do podkatalogu o tej nazwie. Znak „..” odpowiada wpisowi do nadkatalogu. Maksymalna dozwolona długość ścieżki to 79 znaków.

W programie TP nazwa pliku jest określona jako stała tekstowa ujęta w apostrofy, która może być wartością zmiennej łańcuchowej:

"\ turbo\ pas \ table.txt".

Urządzenia. Wykorzystanie plików w TP spowodowane było koniecznością wymiany danych z otoczeniem komputera, jego sprzętem: wyświetlaczem, klawiaturą, drukarką, kanałami wejścia-wyjścia. Wszystkie z nich są traktowane w TP jako pliki, z którymi można pracować w taki sam sposób, jak ze zwykłymi plikami. Pliki na urządzeniach zewnętrznych są często nazywane pliki fizyczne lub zewnętrzne ... Urządzenia są adresowane za pomocą specjalnych nazw, których nie wolno używać w przypadku zwykłych plików – tzw nazwy urządzeń logicznych komputera.

­ KON - konsola ... Za pomocą konsoli informacje wyjściowe są wysyłane na ekran wyświetlacza, a informacje wejściowe są odbierane z klawiatury;

­ PRN - to imię drukarka ... Jeśli do komputera podłączonych jest kilka drukarek, dostęp do nich uzyskuje się za pomocą nazw logicznych: LPT1, LPT2, LPT3.

­ COM1, COM2, COM3 - to są urządzenia łączące się z Porty szeregowe ... Służy do komunikacji z innymi komputerami i podłączenia myszy.

­ NUL- zero lub pusty urządzenie. Często używany przez programistów do debugowania programu. Unika tworzenia osobnego pliku. Podczas używania go do wyświetlania informacji informacje nie są nigdzie wyświetlane, ale zgłaszane jest, że dane wyjściowe zakończyły się powodzeniem.

Dostęp do plików. W dowolnym momencie program ma dostęp tylko do jeden element pliku, do którego odwołuje się wskaźnik do bieżącej pozycji pliku... Określa lokalizację w pliku, skąd lub gdzie dane są odczytywane lub zapisywane. Podczas otwierania lub tworzenia pliku wskaźnik jest umieszczony na jego początku... Wskaźnik zachowuje się jak kursor, który poruszając się podczas edycji tekstu, zawsze pokazuje aktualną pozycję. Podczas odczytu danych z pliku wskaźnik prędzej czy później dotrze do swojego końca. Poprzez dostęp do elementów są one rozróżniane pliki o dostępie sekwencyjnym lub bezpośrednim.

Wykazy opracowanych przez studenta programów należy umieścić w osobnych załącznikach z obowiązkowymi odnośnikami do nich.

Do kodu programu należy dołączyć komentarze. Zaleca się korzystanie z możliwości samodokumentowania kodu.

W głównej części pracy, dla zilustrowania prezentowanego materiału teoretycznego, należy zamieścić wykazy fragmentów programu, które należy umieścić bezpośrednio po tekście, w którym są one wymienione po raz pierwszy. Wszystkie aukcje muszą zawierać odniesienia w tekście pracy.

Projektując zestawienia stosuj czcionkę Courier New, rozmiar - 12 pt, interlinia - pojedyncza. Zaleca się oddzielanie bloków semantycznych pustymi liniami, a także wizualne oznaczanie zagnieżdżonych konstrukcji za pomocą wcięć.

Zaleca się, aby słowa kluczowe i komentarze były wyróżniane różnymi krojami pisma. W ten sam sposób tekst główny pracy powinien wskazywać nazwy bibliotek, podprogramów, stałych, zmiennych, struktur danych, klas, ich pól i metod.

Ogłoszenia powinny być kolejno ponumerowane w każdej sekcji. Numer wpisu powinien składać się z numeru sekcji i numeru kolejnego wpisu, oddzielonych kropką, na przykład: „Listing 3.2” - drugie zestawienie trzeciej sekcji. Jeśli praca zawiera tylko jeden wpis, jest oznaczony jako „Lista 1”. Odnosząc się do wpisu, należy wpisać słowo „oferta” ze wskazaniem jego numeru.

Tytuł wpisu jest drukowany taką samą czcionką jak tekst główny i jest umieszczony nad wpisem po lewej stronie, bez wcięć akapitu poprzez myślnik po numerze wpisu.

Przykład projektu pokazano na listingu 3.1.

Listing 3.1 — „Witaj świecie!”

#włączać

// Wypisz ciąg na standardowe wyjście

Cout<< "Hello World!";

Przygotowanie do obrony i obrony prac semestralnych, prac dyplomowych i raportów z praktyki licencjackiej studentów

Do obrony dopuszczane są wyłącznie prace semestralne, sprawozdania z praktyk licencjackich oraz prace dyplomowe, sporządzone w ścisłej zgodności z powyższymi wymogami. Za treść i projekt pracy dyplomowej (pracy dyplomowej), sprawozdanie z praktyki przeddyplomowej, podjęte w niej decyzje, poprawność wszystkich danych i wyciągniętych wniosków, student - autor pracy dyplomowej (pracy dyplomowej) - jest odpowiedzialny.

Zajęcia, raport z praktyki licencjackiej

Praca zaliczeniowa (sprawozdanie z praktyki przeddyplomowej) jest broniona na posiedzeniu komisji roboczej utworzonej przez wydział, do której student jest z pracą zaliczeniową (sprawozdanie z praktyki przeddyplomowej). Sprawozdanie z pracy na kursie (sprawozdanie z praktyki przeddyplomowej) podawane jest do 10 minut. Do raportu może być dołączony materiał ilustracyjny (plakaty, prezentacja komputerowa i/lub demonstracja oprogramowania na komputerze).

Na podstawie wyników realizacji i obrony pracy kursowej wystawiana jest ocena z wpisem do transkrypcji i arkusza egzaminacyjnego oraz w dziale „Projekt kursu” w transkrypcji studenta.

Przy wystawianiu ocen za pracę semestralną brane są pod uwagę:

- stopień rozwiązania zadania;

- stopień samodzielności i inicjatywy ucznia;

- umiejętność posługiwania się przez studenta źródłami literackimi;

- stopień zgodności noty wyjaśniającej z wymaganiami dotyczącymi jej projektu;

- możliwość wykorzystania uzyskanych wyników w praktyce.

Praca dyplomowa

Ukończoną pracę dyplomową przedstawia się promotorowi, który sporządza na jej podstawie recenzję. W recenzji kierownika pracy magisterskiej należy zwrócić uwagę na:

- trafność tematu,

- stopień realizacji zadania,

- stopień samodzielności i inicjatywy ucznia,

- umiejętność posługiwania się przez studenta literaturą specjalistyczną,

- zdolność studenta do pracy inżynierskiej i badawczej,

- możliwość wykorzystania uzyskanych wyników w praktyce,

- możliwość przypisania absolwentowi odpowiednich kwalifikacji.

Praca dyplomowa i opinia kierownika są przedstawiane kierownikowi katedry, który decyduje o możliwości dopuszczenia studenta do obrony pracy dyplomowej. Aby rozwiązać ten problem, na wydziale tworzy się komisję roboczą (komisje), która wysłuchuje przesłania studenta na temat pracy dyplomowej, ustala zgodność pracy dyplomowej z zadaniem i stwierdza gotowość studenta do obrony.

O dopuszczeniu studenta do obrony ustala się podpisem kierownika katedry na karcie tytułowej pracy.

Jeżeli kierownik wydziału, na podstawie wniosków komisji roboczej, nie uzna za możliwe dopuszczenie studenta do obrony, sprawa ta jest rozpatrywana na posiedzeniu wydziału z udziałem kierownika pracy dyplomowej. W przypadku negatywnego rozstrzygnięcia wydziału protokół z posiedzenia jest przekazywany za pośrednictwem dziekana wydziału do zatwierdzenia rektorowi, po czym student zostaje poinformowany, że nie może bronić swojej pracy dyplomowej.

Praca dyplomowa, dopuszczona przez wydział do obrony, przesyłana jest do recenzji kierownikowi wydziału.

Recenzentów prac dyplomowych zatwierdza dziekan wydziału na wniosek kierownika katedry spośród kadry dydaktycznej innych wydziałów, specjalistów produkcji i instytucji naukowych, kadry dydaktycznej innych uczelni.

Przegląd powinien zawierać:

- trafność tematu pracy;

- stopień zgodności pracy dyplomowej z zadaniem;

- spójność konstrukcji części opisowej pracy;

- obecność krytycznego przeglądu literatury na temat pracy magisterskiej, jej kompletność i kolejność analizy;

- kompletność opisu metodyki obliczeń lub przeprowadzonych badań, przedstawienie własnych wyników obliczonych, teoretycznych i eksperymentalnych, ocenę wiarygodności uzyskanych wyrażeń i danych;

- obecność uzasadnionych wniosków opartych na wynikach pracy;

- praktyczne znaczenie pracy magisterskiej, możliwość wykorzystania uzyskanych wyników;

- braki i słabości pracy;

- uwagi dotyczące projektu części opisowej pracy i stylu prezentacji materiału;

- ocena pracy dyplomowej (zgodnie z przyjętym systemem oceniania).

Recenzent ma prawo zażądać od studenta - autora pracy dyplomowej dodatkowych materiałów dotyczących istoty wykonanej pracy. Student musi zapoznać się z recenzją przed obroną pracy w GEC. Podpisy kierowników i recenzentów niebędących pracownikami VSU muszą być poświadczone przez dział HR organizacji, w której pracują.

Tryb obrony pracy dyplomowej określa Regulamin Państwowych Komisji Egzaminacyjnych.

Na sprawozdanie z pracy dyplomowej przeznacza się do 15 minut, podczas którego należy krótko, jasno i jasno określić temat i cel pracy, uzasadnić jej trafność i wagę, metodologię badań, wyniki i wnioski. Jednocześnie nie zaleca się czytania tekstu przemówienia przed komisją.

Z reguły do ​​raportu dołączany jest materiał ilustracyjny (tabele, wzory, wykresy, diagramy itp.), do którego wykorzystuje się plakaty, slajdy i inne środki prezentacji, komputerową demonstrację opracowanego oprogramowania.

Po sporządzeniu sprawozdania konieczne jest udzielenie odpowiedzi na pytania członków komisji egzaminacyjnej dotyczące meritum wykonanej pracy.

Obrona kończy się przekazaniem studentowi ostatniego słowa, w którym wyraża on swój stosunek do zaleceń i uwag.

Praca dyplomowa po obronie jest przechowywana na uczelni, gdzie była wykonywana przez pięć lat.

załącznik A
Przykładowy projekt strony tytułowej pracy semestralnej

Załącznik B
Przykładowy projekt okładki raportu z praktyki przemysłowej

Załącznik B
Przykładowy projekt strony tytułowej pracy magisterskiej

Dodatek D
Forma zadania do pracy dyplomowej (kursowej)

EE „Witebski Uniwersytet Państwowy im PO POŁUDNIU. Maszerow ”

ĆWICZENIE
za pracę magisterską

____ kursant

Nazwisko I.O.

1. Temat pracy

2. Termin wykonania wykonanej przez studenta pracy

3. Dane wyjściowe do pracy

4. Lista pytań do rozwinięcia w pracy lub streszczenie pracy:

5. Lista materiałów graficznych lub programowych (z dokładnym wskazaniem wymaganych rysunków) lub modułów programu

6. Konsultanci do pracy ze wskazaniem sekcji z nimi związanych

7. Data wydania zlecenia „___” ____________ 20___.

Nadzorca ______________ / ____________ /

podpis Nazwisko I.O.

Cesja została przyjęta do realizacji „___” ___________ 20___.

________________________________

podpis ucznia

Dodatek D
Przykład streszczenia pracy magisterskiej

PRACA PISEMNA

Praca dyplomowa, 56 stron, 4 ilustracje, 2 tabele, bibliografia. 16.

KOMPLEKSOWE SYSTEMY, MODELOWANIE MATEMATYCZNE I SYMULACYJNE, OPTYMALIZACJA, STABILNOŚĆ, STOCHASTYKA, ROZKŁAD, KOMBINATORY

Przedmiotem badań są procesy i systemy obliczeniowe i informacyjne. Celem pracy jest opracowanie teoretycznych podstaw modelowania, analizy i efektywnej organizacji procesów i systemów obliczeniowych i informacyjnych.

Metody badawcze - metody rachunku prawdopodobieństwa, statystyki matematyczne, kolejkowanie i rzetelność, metody logiczno-kombinatoryczne, symulacja.

Wynikiem badań są modele i metody analizy stabilnych procesów stochastycznych, stabilność oszacowań statystycznych regresji oraz statystyczne reguły decyzyjne w obecności niejednorodności parametrycznej, metody dekompozycji grafów submodularnych w zastosowaniu do porządkowania procesów obliczeniowych, metody obliczanie i wyprowadzanie cech do opisywania obszarów tematycznych.

Obszarem zastosowania są procesy automatycznej analizy i syntezy złożonych systemów.

Dodatek E
Przykładowa lista symboli i skrótów

Symbole i skróty

LSI - układ scalony o dużej skali

IC — układ scalony

VLSI - układ scalony o bardzo dużej skali

PLM - programowalna tablica logiczna

GSP - generator losowych sekwencji

GPP - generator sekwencji pseudolosowych

SLN - środki lokalizacji uszkodzeń

Dodatek G
Przykładowe opisy wykorzystanych źródeł

Tabela G.1 – Przykłady opisów niezależnych publikacji

Charakterystyka źródła Przykład rejestracji
Jeden, dwóch lub trzech autorów Orłow SA - Technologie tworzenia oprogramowania: Podręcznik dla uczelni / S.А. Orłow. - SPb .: Piotr, 2002 .-- 464 s.
Biyachuev, T.A. Bezpieczeństwo sieci korporacyjnych / T.A. Bijaczujew; wyd. LG Osowieckiego. - SPb: SPb GU ITMO, 2004 .-- 161 s.
Deytel, H.M. Jak programować w C++ / H.M. Deytel, PJ Daytel. - M .: Binom, 2001 .-- 1152 s ..
Mitchell M. Programowanie dla Linuksa. Profesjonalne podejście. / M. Mitchell, J. Ouldem, A. Samuel. - M .: Wydawnictwo „Williams”, 2003. - 288 s.
Bakhvalov, N.S. Metody numeryczne: podręcznik. instrukcja dla fiz-mat. specjalności uczelni / N.S. Bakhvalov, N.P. Żidkow, G.M. Kobiełkow; pod sumą. wyd. N.I. Tichonow. - wyd. 2 Moskwa: Fizmatlit, 2002 .-- 630 s.
Czterech lub więcej autorów Techniki projektowania obiektowego. Wzorce projektowe / E. Gamma [i in.]. - SPb .: Piotr, 2008 .-- 366 s.
Mechanika stosowana: podręcznik. dodatek / AT Skoybeda [i inne]; pod sumą. wyd. W. Podniebne łóżko. - Mińsk: Szkoła Wyższa, 1997 .-- 522 s.
Wydanie wielotomowe Archangielski, A. Ya. C++ Builder 6: Przewodnik referencyjny: w 2 tom. / I JA. Archangielski. - M.: Binom-Press, 2002. - 2 książki.
Knut, D. Sztuka programowania komputerowego: w 3 tomach / D. Knut. - M .: Mir, 1976-1978. - 3 tony.
Oddzielny tom w wydaniu wielotomowym Archangielski, A. Ya. C++ Builder 6: Przewodnik referencyjny: w 2 tom. Książka. 1. Język C++ / A.Ya. Archangielski. - M .: Binom-Press, 2002 .-- 544 s.

Kontynuacja tabeli G.1

Archangielski, A. Ya. C++ Builder 6: Przewodnik referencyjny: w 2 tom. Książka. 2. Klasy i komponenty / A.Ya. Archangielski. - M .: Binom-Press, 2002 .-- 528 s.
Zbiór artykułów, prac Innowacyjne technologie w procesie edukacyjnym UO „VSU im. PO POŁUDNIU. Maszerow ”: Sob. Sztuka. / Wit. stan im. PO POŁUDNIU. Maszerow; Redakcja AV Rusetsky (redaktor naczelny) [i inni]. - Witebsk, 2006 .-- 111 s.
Nowoczesne technologie informatyczne: zbiór artykułów. naukowy. Art.: godz. 14.00 / Grodn. stan im. I. Kupały; redakcja: rano Kadan (redaktor naczelny) [i inni]. - Grodno, 2008 .-- 2 godz.
Materiały konferencyjne Informatyzacja nauczania matematyki i informatyki: aspekty pedagogiczne: materiały o zasięgu międzynarodowym. naukowy. konf., dedykowana. Do 85. rocznicy Białorusi. stan Uniwersytet, Mińsk, 25-28 października. 2006 / białoruski. stan un-t; redakcja.: I.A. Novik (redaktor naczelny) [i inni]. - Mn., 2006 .-- 499 s.
II Czytania Maszerowskie: materiały o regionalnym charakterze naukowym i praktycznym. por. studenci, studenci i doktoranci, Witebsk, 24-25 kwietnia. 2007: w 2 tomach / Wit. stan nie-t. - Witebsk, 2007 .-- 2 t.
Standard GOST 19.701-90. Zunifikowany system dokumentacji programu. Schematy algorytmów, programów, danych i systemów. Symbole i zasady wykonania. - Zamiast GOST 19.002–80, GOST 19.003–80; weszła 01.01.1992. - M .: Wydawnictwo norm, 1991. - 26 s.
GOST R 50922-2006. Ochrona informacji. Podstawowe pojęcia i definicje. - Zamiast GOST R 50922-96; weszła 02.01.2008. - M .: Standartinform, 2008 .-- 7 s.
Zasoby elektroniczne Microsoft Visual Studio [Zasoby elektroniczne]: Express Edition / Microsoft Corporation, ComputerPress. - Elektron. dan., elektron. dane tekstowe. i progr. - 1 e-mail Hurt dysk.
Biblioteka MSDN [Zasoby elektroniczne]: System pomocy. - Microsoft Corporation, 2004. - 3 e-maile. Hurt płyta (CD-ROM).
Świat PC [Zasoby elektroniczne]. - M.: Systemy otwarte. - Dodatek do PC World (magazyn). - 2006r. - nr 2. - 1 e-mail Hurt płyta (CD-ROM).

Kontynuacja tabeli G.1

Tabela G.2 - Przykłady opisów części składowych publikacji

Charakterystyka źródła Przykład rejestracji
Część książki Liberty, D. Analiza i projektowanie programów obiektowych / D. Liberty // Master C++ we własnym zakresie w 21 dni / D. Liberty. - M .: Williams, 2000. - S. 561-595.
Swierdłow, S.Z. Języki i ewolucja technologii programowania / S.Z. Swierdłow // Języki programowania i metody tłumaczenia: podręcznik. podręcznik. / S.Z. Swierdłow. - SPb.: Piotr, 2007. - S. 17-205.
Rozdział z książki Virt, N. Dynamiczne struktury informacyjne / N. Virt // Algorytmy + struktury danych = programy / N. Virt. - M .: Mir, 1985. - Ch. 4. - s. 189-318.
Henderson, K. Budowanie aplikacji do pracy z bazami danych / K. Henderson // Borland C++ Builder / K. Reisdorf, K. Henderson. - M.: Binom, 1998. - Ch. 18. - str. 583–595.
Część kolekcji Rusetsky, A.V. Głównym zadaniem jest wprowadzenie nowych technologii edukacyjnych / A.V. Rusetsky // Innowacyjne technologie w procesie edukacyjnym placówki edukacyjnej „VSU im. PO POŁUDNIU. Maszerow ”: Sob. Sztuka. / Wit. stan im. PO POŁUDNIU. Maszerow; Redakcja AV Rusetsky (redaktor naczelny) [i inni]. - Witebsk, 2006. - S. 3-4.
Buza, MK Równoległe przetwarzanie jednej klasy wyrażeń arytmetycznych / M.K. Buza, Liu Jiahui // Nowoczesne technologie informatyczne: zbiór artykułów. naukowy. Art.: godz. 14.00 / Grodn. stan im. I. Kupały; redakcja: rano Kadan (redaktor naczelny) [i inni]. - Grodno, 2008. - Część 1. - str. 7-9.

Kontynuacja tabeli G.2

Artykuł ze zbiorów abstraktów i materiałów konferencyjnych Smolak, W.A. Komputerowe modele automatów komórkowych / V.A. Smolak // II Odczyty Maszerowskie: materiały regionalne naukowe i praktyczne. por. studenci, studenci i doktoranci, Witebsk, 24-25 kwietnia. 2007: w 2 tomach / Wit. stan nie-t. - Witebsk, 2007. - T. 1. - s. 116–117.
Artykuł w czasopiśmie Muravyov, I. CMS Drupal i jego funkcje / Ilya Muravyov // Rozwiązania sieciowe. - 2007 r. - nr 5. - str. 26-30.
Yarmolik, S.V. Steganograficzne metody ochrony informacji / S.V. Yarmolik, Yu.N. Listopad // Informatyzacja edukacji. - 2005. - nr 1. - str. 64-74.
Artykuł w gazecie Stankevich, V. Dwa modele JSP / V. Stankevich // Wiadomości komputerowe. - 2008 .-- 30 października. - S. 23.
Artykuł z encyklopedii, słownik Pierszykow i W.I. Program / V.I. Pierszykow, W.M. Savinkov // Wyjaśniający słownik informatyki. - M .: Finanse i statystyka, 1991. - S. 296-303.
Komputer // Słownik wyjaśniający systemów komputerowych / Wyd. V. Illingworth [i inni]. - M .: Inżynieria mechaniczna, 1991 .-- S. 92.
Zasoby dostępu zdalnego Przegląd SQL Server Express // Microsoft TechNet [zasób elektroniczny] / Microsoft Corporation. - 2008. - Tryb dostępu: http://technet.microsoft.com/ru-ru/library/ms165588(SQL.90) .aspx. - Data dostępu: 15.01.2009.
Jones, J. Abstract Syntax Tree Implementation Idioms / Joel Jones // 10th Conference on Pattern Languages ​​of Programs 2003. - 2003. - Tryb dostępu: http://jerry.cs.uiuc.edu/~plop/plop2003/Papers/Jones-ImplementingASTs.pdf. - Data dostępu: 15.01.2009.

Dodatek I
Przykład opisu zawartości nośnika elektronicznego

Na nośniku elektronicznym znajdują się następujące katalogi i pliki:

- Plik „Pełna nazwa-kurs-temat.doc” jest dokumentem tekstowym zawierającym pracę zaliczeniową, pracę dyplomową lub raport z praktyki przeddyplomowej.

- Katalog „Software” zawiera oprogramowanie wymagane do uruchomienia projektu.

- Katalog „Hello World Project” zawiera kod źródłowy projektu Hello World.

- Katalog „Final Build 31-01-2009” zawiera ostateczną wersję plików wykonywalnych projektu Hello World.

- Katalog „Instrukcja obsługi” zawiera instrukcję obsługi i informacje referencyjne.

- Katalog „Prezentacja” zawiera prezentację dla ochrony.

- Plik „Readme.txt” zawiera opis zawartości mediów elektronicznych.

Zanim moneta zabezpieczona lub kryptowaluta będzie dostępna dla traderów na parkietach giełdowych, musi przejść przez złożony proces selekcji i znaleźć się na giełdzie. Przeanalizujmy w prostych słowach, czym jest notowanie na giełdzie – zarówno na giełdzie, jak i w kryptowalutach, jakie są główne etapy, które należy przejść, aby znaleźć się na liście, główne korzyści, jakie firma otrzymuje w tym przypadku, jakie istota usuwania z listy.

Co to jest aukcja

Pojęcie wpisu znajduje się w różnych obszarach naszego życia:

  • Giełdy akcji i kryptowalut- będą tematem tego artykułu. Chodzi o dodawanie papierów wartościowych lub monet kryptograficznych do notowań platform transakcyjnych.
  • W handlu- oznacza to dodanie produktów jednego lub drugiego producenta do asortymentu sklepu.
  • W programowaniu- jest to kod źródłowy (tekst) programu, który za pomocą kompilatora jest tłumaczony na kod wykonywalny.
  • W nieruchomości- tutaj są podpisane umowy wystawienia między właścicielem nieruchomości a pośrednikiem, który sprzedaje ją za prowizję.

Nie będziemy brać pod uwagę dwóch ostatnich branż. Interesują nas notowania, a także kryptowaluty.

Notowanie i wycofywanie papierów wartościowych z notowań

Wykaz pojawił się w naszym leksykonie z listy słów, które z języka angielskiego tłumaczone jest jako „lista”. Notowanie papierów wartościowych na giełdzie to procedura dodawania akcji, obligacji spółek do listy instrumentów, które są notowane na platformie. Następnie stają się dostępne do kupowania i sprzedawania na nim.

Po przejściu procedury notowań papiery wartościowe są umieszczane na liście giełdowej.

Często uczestnicy rynku nazywają samą listę notowaniem. Co więcej, każda witryna ma swoją własną listę.

Inicjatorem notowań jest najczęściej firma emitująca, ale w rzadkich przypadkach sama giełda może wyrazić chęć umieszczenia określonych papierów wartościowych na swojej liście, jeśli już są one bardzo poszukiwane wśród traderów poprzez kanały nieformalne.

Dla firm wejście na giełdę ma wiele zalet, dlatego nie dziwi fakt, że przedsiębiorstwa wkładają wiele wysiłku, aby przejść przez tę procedurę.

Notowanie giełdowe jest ważne, aby nie mylić z IPO. W pierwszym przypadku firma stara się dostać na listę notowań pewnej platformy transakcyjnej. IPO oznacza, że ​​firma przekształca się w spółkę publiczną, a jej papiery wartościowe stają się dostępne dla inwestorów nie tylko za pośrednictwem, ale także innymi kanałami, na przykład poprzez jej oddziały.

Etapy wystawiania na aukcję

Procedura notowania przewiduje kilka etapów, które musi przejść firma emitująca, zanim jej papiery wartościowe staną się dostępne dla inwestorów.

  1. Wszystko zaczyna się od złożenia wniosku. Może tego dokonać zarówno sam emitent, jak i osoba reprezentująca interesy spółki.
  2. Potem przychodzi etap egzaminów. Przedstawiciele giełdy analizują zarówno papiery wartościowe, jak i wszelkie dostępne dane o spółce. Badana jest rentowność przedsiębiorstwa i płynność jego aktywów. Firma jest zobowiązana do przedstawienia wszystkich sprawozdań finansowych zebranych w ciągu ostatnich kilku lat.
  3. Specjalna komisja rozpatruje wyniki egzaminów i podejmuje decyzję o dodaniu papierów wartościowych do swojego notowania lub odrzuceniu wniosku.
  4. Jeśli decyzja jest pozytywna, obie strony - spółka i giełda zawierają porozumienie.

Zabieg trwa średnio około 1-2 miesięcy. Aby pozostać na liście, emitent co do zasady będzie musiał przekazywać na giełdę wymagane dane raz na kwartał.

Zasady wystawiania notowań stosowane przez parkiety giełdowe wobec firm są różne. Niektórzy mogą jedynie przyznać się do notowania spółek, których kapitalizacja wynosi co najmniej 50 mln USD, a czas ich obecności na rynku to co najmniej 3 lata. Inni mogą podnieść lub obniżyć poprzeczkę dla tych i innych wymagań.

Jeśli nie wszystkie warunki są spełnione, ale papiery wartościowe są przedmiotem zainteresowania giełdy, otrzymują wstępną listę papierów wartościowych – nazywa się to również wstępne wystawianie... Inwestorzy mogą również handlować tymi akcjami, jednak poza murami giełdy i parkietu nie ponoszą za nie odpowiedzialności.

Poziomy aukcji

Przeważnie istnieje kilka poziomów notowań na giełdach. Najpierw premia uwzględniono najbardziej płynne papiery wartościowe o wysokim poziomie niezawodności.

Do firm drugi poziom wymagania nie są tak wysokie. A najniższa dla przedsiębiorstw ubiegających się o trzecią tzw lista nienotowana... Inwestorzy nabywający papiery wartościowe spółek tego poziomu powinni we własnym zakresie dokładnie przeanalizować ich wiarygodność.

Na przykład witryny główne i alternatywne są ważne dla. Pierwszy jest podzielony na dwa poziomy: „Standard” i „Premium”. Rynek alternatywny przeznaczony jest dla małych i średnich rozwijających się przedsiębiorstw, które są tu przyjmowane w uproszczonej procedurze.

Od czasu do czasu platformy mogą podnieść lub odwrotnie obniżyć poziomy notowań obligacji, akcji, a nawet całkowicie je usunąć.

Typy aukcji

Rozróżnij listę pierwotną i drugorzędną.

Lista główna oznacza, że ​​akcje są dostępne dla inwestorów na parkiecie giełdowym w kraju, w którym spółka jest zarejestrowana.

Na wtórny wpis papiery trafiają na rynki międzynarodowe i umieszczane są na listach platform zagranicznych. Można to zrobić tylko po zaliczeniu wstępnego etapu wystawiania na aukcję.

Jest wciąż podwójna lista, w którym firma konsekwentnie stara się dostać na listy notowań kilku parkietów giełdowych swojego rodzimego kraju.

I lista krzyżowa- w tym przypadku firma wysyła aplikacje w celu dodania do list kilku platform giełdowych w różnych krajach. Co więcej, jeśli jeden z nich wyrazi zgodę na dodanie papierów wartościowych, drugi zyskuje możliwość przeprowadzenia procedury notowania według uproszczonego schematu. Zmniejsza to nie tylko koszty materiałów, ale także czas na rozpatrzenie wniosku.

Jakie są zalety emitenta

Nie bez powodu firmy starają się wejść na giełdy, co obiecuje im szereg korzyści. Po pierwsze, wzrasta ich atrakcyjność inwestycyjna, dzięki czemu łatwiej jest pozyskać środki na dalszy rozwój. Do plusów należą również:

  • wzrost kapitalizacji spółki przy wzroście popytu na emitowane papiery wartościowe;
  • zwiększenie widoczności i zaufania w środowisku biznesowym;
  • zwiększenie płynności akcji, obligacji;
  • możliwość dodania do list walut obcych;
  • w niektórych przypadkach możesz ubiegać się o ulgi podatkowe.

Nie zapominaj jednak, że od teraz działania firmy będą cieszyły się coraz większą uwagą, a wszelkie działania od razu wpłyną na wartość akcji. Ponadto procedura wystawiania aukcji nie jest bezpłatna. Wszystkie badania eksperckie kosztują.

Co daje inwestorom

Najważniejsze jest zaufanie. Inwestorzy inwestujący w akcje spółki wiedzą, że jej wiarygodność została zweryfikowana przez profesjonalistów. Ich obecność na giełdzie chroni ich przed samodzielną kontrolą wiarygodności firmy.

Co to jest usuwanie?

Jeżeli papiery wartościowe znajdują się na liście notowań giełdy, nie ma gwarancji, że pozostaną tam na zawsze. Pod pewnymi warunkami witryna może je z niej usunąć. Dzieje się tak w przypadku, gdy np. emitent przestaje przestrzegać warunków giełdy, nie wywiązuje się ze swoich zobowiązań, ogłasza upadłość itp.

Również cena akcji, która nie rośnie w czasie, może prowadzić do wycofania z giełdy, co wskazuje na niski popyt. Zdarza się, że inicjatorem skreślenia jest sama spółka np. w przypadku połączenia przedsiębiorstw.

Lista kryptowalut

Listing jest często omawiany również w środowisku kryptowalut. Tutaj cyfrowe monety lub tokeny zwykle pojawiają się na liście transakcyjnej platform giełdowych.

Projekty kryptowalutowe dążą do wejścia na listy popularnych giełd

Wymagania dotyczące notowania na giełdach kryptowalut są różne. Dużo trudniej jest dostać się do dużych, znanych witryn niż do małych. Dlatego większość projektów zaczyna się od małych platform transakcyjnych.

Cena emisji

Jednym z głównych problemów jest koszt . Mało znane giełdy mogą bezpłatnie dodawać kryptowaluty do aukcji. Dostanie się na listy znanych platform może kosztować tysiące, a nawet dziesiątki tysięcy dolarów – pieniądze są pobierane na analizę monety przed umieszczeniem na liście. Są jednak wyjątki.

Binance, na przykład, ogłosił jesienią tego roku, że opłaty za wystawienie aukcji zostaną przeznaczone na finansowanie projektów charytatywnych. Jednocześnie nie ma sztywnych cen – deweloperzy sami określają, ile chcą zapłacić za ogłoszenie. Kierownictwo Poloniexu twierdzi, że w ogóle nie pobiera pieniędzy za aukcję.

Na początku roku dziennikarze Business Insider opublikowali artykuł, zgodnie z którym minimalny próg notowania giełd kryptowalut dla projektów ICO wynosi 50 000 USD, a w niektórych przypadkach może osiągnąć 1 mln USD.

Zdarzały się również przypadki, kiedy kierownictwo giełd natrafiało na łapówki za umieszczenie monet na liście. Przykładem jest giełda Coinnest – jej dyrektorom operacyjnym i technicznym zapłacono około 890 tys. dolarów za dodanie kryptowaluty S-coin do listy handlowej.

Jak to działa

Aby token znalazł się najczęściej na wybranej stronie należy złożyć wniosek i wypełnić ankietę. Popularne monety giełdy można jednak umieścić na liście samodzielnie, bez czekania, aż zespół projektowy zaproponuje to. Na przykład bitcoin (BTC) jest obowiązkowy na każdej giełdzie i z reguły Ethereum (ETH).

Jakie pytania najczęściej pojawiają się w kwestionariuszu:

  • nazwa i opis monety;
  • data uruchomienia głównej sieci, a także samej platformy;
  • link do Github;
  • link do Białej Księgi projektu;
  • linki do sieci społecznościowych;
  • czy w sieci jest wydobycie i czy doszło do wydobycia wstępnego;
  • maksymalna emisja monet itp.

Często giełdy organizują również konkursy wśród swoich użytkowników – głosują na proponowane kryptowaluty, a zwycięska moneta jest dodawana do listy notowań.

Huobi Global uruchomiło zautomatyzowaną platformę notowania kryptowalut późnym latem 2018 roku. Z jego pomocą giełda zamierza przyspieszyć proces dodawania tokenów do listy handlowej i uczynić go przejrzystym.

Ważne niuanse

Pierwszą rzeczą, na którą zwracają uwagę giełdy, jest wartość monety, jej użyteczność dla społeczności. Na drugim miejscu jest bezpieczeństwo projektu, ponieważ w przypadku zhakowania sieci kryptograficznej ucierpi również giełda. Z pewnością zainteresuje ich profesjonalizm, a także reputacja zespołu.

Na przykład w Bittrex jest wstępny etap rozpatrywania wniosku i etap dogłębny. Jeśli specjaliści firmy na wstępnym etapie uznają, że moneta zasługuje na notowanie na giełdzie, rozpoczyna się dokładne badanie jej parametrów technicznych, innowacyjnych możliwości i zgodności z wymaganiami platformy.

Monety, które można uznać za papiery wartościowe, giełdy starają się nie dodawać... Na przykład Poloniex od razu zaprasza programistów do zapoznania się z testem Howiego, aby ustalić, czy token może spełnić te kryteria, czy nie.

Wyjątkiem wśród głównych platform jest giełda Coinbase, która uzyskała odpowiednią zgodę regulatora i może oficjalnie obsługiwać tokeny, które mają właściwości papierów wartościowych.

Co ciekawe, jeśli zasób jest sprzeczny z prawem danego kraju, może nie być dostępny dla użytkowników z niektórych jurysdykcji.

„Efekt wymian”

Po dodaniu popularnych krypto-giełd do ofert, koszt monet z reguły gwałtownie wzrasta - średnio o 25-30%. Ten wzór został nawet nazwany „efektem giełdowym”. Dzieje się tak dzięki temu, że więcej użytkowników dowiaduje się o monecie, staje się ona rozpoznawalna i zwiększa na nią popyt. Jednak najczęściej ten start jest krótkotrwały i wkrótce koszt zaczyna spadać.

Zdarzają się również sytuacje, w których cena tokenów po wejściu na listy transakcyjne giełd wręcz przeciwnie spada. Dzieje się tak najczęściej, gdy projekt jest notowany zaraz po tym, a inwestorzy, którzy zainwestowali podczas sprzedaży tokena, mają tendencję do szybszego zarabiania dodatkowych pieniędzy na monecie, aktywnie łącząc ją na giełdzie.

Kryptocoiny są wycofywane z giełdy z kilku powodów:

  • niskie zainteresowanie ze strony handlowców;
  • zmiany w prawodawstwie;
  • włamywanie się do łańcucha bloków sieci kryptograficznej;
  • odmowa deweloperów dalszego wspierania monety;
  • skargi użytkowników.

Tokeny zwykle nie są usuwane od razu – giełda daje traderom kilka tygodni na zamknięcie pozycji i wypłatę środków do własnych portfeli.

Notowanie w handlu

Pojęcie notowania jest również obecne w dziedzinie handlu. Kiedy dostawca chce, aby jego produkty były sprzedawane na przykład na półkach dużej sieci detalicznej, najpierw musi uzgodnić z kierownictwem firmy, aby dodać swój produkt do aukcji.

Jeśli produkt nie jest poszukiwany przez kupujących, może również przejść procedurę usunięcia z listy, w którym to przypadku znika z półek sklepowych.

Spotkanie

Kod źródłowy jest albo używany do tworzenia kodu wynikowego, albo jest wykonywany przez interpreter. Zmiany nigdy nie są dokonywane w kodzie wynikowym, tylko w oryginalnym, po czym następuje ponowna konwersja do kodu wynikowego.

Innym ważnym celem kodu źródłowego jest opis programu. Korzystając z tekstu programu, możesz przywrócić logikę jego zachowania. Komentarze służą do ułatwienia zrozumienia kodu źródłowego. Istnieją również narzędzia, które pozwalają na automatyczne pobieranie dokumentacji z kodu źródłowego — tzw. generatory dokumentacji.

Ponadto kod źródłowy ma wiele innych zastosowań. Może być używany jako narzędzie dydaktyczne; Początkujący programiści mogą uznać za pomocne zbadanie istniejącego kodu źródłowego w celu poznania technik programowania i metodologii. Jest również używany jako narzędzie komunikacji między doświadczonymi programistami ze względu na swój (idealnie) zwięzły i jednoznaczny charakter. Współdzielenie kodu między programistami jest często wymieniane jako czynnik przyczyniający się do poprawy doświadczenia programistycznego.

Programiści często przenoszą kod źródłowy z jednego projektu do drugiego, co nazywa się ponownym użyciem kodu ( Możliwość ponownego wykorzystania oprogramowania).

Kod źródłowy jest niezbędnym elementem w procesie przenoszenia oprogramowania na inne platformy. Bez kodu źródłowego jakiegokolwiek oprogramowania przenoszenie jest albo zbyt trudne, albo niemożliwe.

Organizacja

Kod źródłowy jakiejś części oprogramowania (modułu, komponentu) może składać się z jednego lub kilku plików. Kod programu niekoniecznie jest napisany tylko w jednym języku programowania. Na przykład, często programy napisane w C, dla celów optymalizacji, zawierają wstawki kodu języka asemblerowego. Możliwe są również sytuacje, w których niektóre komponenty lub części programu są napisane w różnych językach, a następnie asemblowane w jeden wykonywalny moduł przy użyciu technologii zwanej linkowaniem bibliotek ( łączenie bibliotek).

Skomplikowane oprogramowanie wymaga do zbudowania dziesiątek, a nawet setek plików źródłowych. W takich przypadkach, aby uprościć kompilację, zwykle używane są pliki projektu, które opisują zależności między plikami z kodem źródłowym i opisują proces kompilacji. Pliki te mogą również zawierać inne parametry kompilatora i środowiska programistycznego. Różne środowiska projektowe mogą używać różnych plików projektu, a w niektórych środowiskach pliki te mogą mieć format tekstowy odpowiedni do bezpośredniej edycji przez programistę przy użyciu uniwersalnych edytorów tekstu, w innych środowiskach obsługiwane są specjalne formaty, a pliki są tworzone i modyfikowane przy użyciu specjalnych narzędzi programy. Pliki projektu są powszechnie nazywane kodem źródłowym. W zdecydowanej większości nowoczesnych środowisk językowych pliki projektu są koniecznie używane, niezależnie od złożoności innego kodu źródłowego zawartego w projekcie. Kod źródłowy często odnosi się do plików zasobów zawierających różne dane, na przykład grafikę potrzebną do zbudowania programu.

Aby ułatwić pracę z kodem źródłowym, do wspólnej pracy nad kodem przez zespół programistów wykorzystywane są systemy kontroli wersji.

Jakość

W przeciwieństwie do ludzi, nie ma „dobrze napisanego” lub „źle napisanego” kodu dla komputera. Ale sposób, w jaki napisany jest kod, może mieć ogromny wpływ na proces utrzymania. Jakość kodu źródłowego można ocenić na podstawie następujących parametrów:

  • czytelność kodu (w tym obecność lub brak komentarzy do kodu;
  • łatwość wsparcia, testowania, debugowania i naprawiania błędów, modyfikacji i przenoszenia;
  • niska złożoność;
  • niskie zużycie zasobów - pamięć, procesor, miejsce na dysku;
  • kompilator nie wyświetla komentarzy;
  • brak "śmieci" - nieużywane zmienne, nieosiągalne bloki kodu, niepotrzebne przestarzałe komentarze itp.