DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Język BASIC (aka BASIC, aka BASIC) jest członkiem rodziny języków programowania wysokiego poziomu.

PODSTAWOWY to skrót oznaczający: beginner's ZAll-cel Symboliczny jabudowa doode to ogólny symboliczny kod instrukcji dla początkujących).

Język programowania BASIC został opracowany w 1964 roku. Pomysł polegał na stworzeniu języka, z którym uczniowie bez umiejętności programowania mogliby samodzielnie tworzyć, aby rozwiązywać swoje problemy.

Język ten był kiedyś bardzo popularny i rozpowszechnił się na całym świecie komputerów w postaci różnych dialektów, głównie takich jak język komputerów domowych.

Od samego początku Basic był wielokrotnie udoskonalany i skomplikowany, zgodnie z prawami współczesnego programowania. Z tego powodu stracił już (w porównaniu z pierwszymi wersjami) swoją prostotę. Chociaż nawet mając to na uwadze, współczesny Basic nadal pozostaje stosunkowo prostym językiem w porównaniu z takimi językami jak np.

Od lat 60. komputery stają się coraz bardziej przystępne cenowo. Na komputerach mogli pracować nie tylko programiści, ale także uczniowie i studenci, którzy nie byli programistami. Jednak ci uczniowie i studenci mieli już problemy, które trzeba było rozwiązać przy pomocy komputerów.

Nie było wtedy prawie żadnych gotowych programów. Dlatego do każdego zadania należało stworzyć osobny program. A na komputerach tamtych lat było to bardzo trudne, używając dostępnych wówczas języków programowania (po części dlatego języki programowania powstawały wcześniej, aby rozwiązywać konkretne problemy, np. PROLOG był nastawiony na tworzenie systemów z sztuczna inteligencja, FORTRAN - do pracy ze wzorami matematycznymi w obliczeniach naukowych i inżynierskich itp.).

Nic więc dziwnego, że ktoś wpadł na pomysł, aby stworzyć język programowania tak prosty, jak to tylko możliwe, aby osoby zupełnie nieobeznane z programowaniem mogły tworzyć choćby proste programy do rozwiązywania niektórych problemów na komputerach (pomysł ten został wcielony w życie chociaż późniejsi krytycy za te cechy obwiniali BASIK).

W rezultacie w 1964 roku język Basic został wymyślony przez nauczycieli Dartmouth College Johna Kemeny'ego i Thomasa Kurtza, a pod ich kierownictwem został wdrożony przez zespół studentów. Z biegiem czasu, gdy zaczęły pojawiać się inne dialekty, oryginalna implementacja została nazwana Dartmouth BASIC.

BASIC został wymyślony i wykonany tak, aby studenci mogli stosunkowo łatwo tworzyć swoje programy. Basic skierowany był do użytkowników, dla których szybkość wykonania programu nie była zbyt ważna, a dla których dużo ważniejsza była możliwość korzystania z komputera do rozwiązywania swoich problemów w zasadzie bez specjalnego szkolenia (pamiętajmy, że gotowych programów nie było wtedy prawie).

Podczas opracowywania języka podstawowego zastosowano osiem następujących zasad:

  1. Język powinien być łatwy w użyciu i zrozumiały dla początkujących.
  2. Powinien to być język programowania ogólnego przeznaczenia (nie specjalny, jak na przykład wspomniane powyżej Fortran i Prolog).
  3. Język powinien zapewniać możliwość rozszerzenia funkcjonalności dostępnej dla doświadczonych programistów.
  4. Język musi być interaktywny, to znaczy wykonywać polecenia użytkownika.
  5. Język powinien zapewniać jednoznaczne i zrozumiałe komunikaty o błędach.
  6. Język powinien działać szybko na małych programach.
  7. Język nie powinien być powiązany ze sprzętem i nie powinien wymagać od programisty zrozumienia działania tego właśnie sprzętu.
  8. Język powinien chronić użytkownika przed systemem operacyjnym (lub system operacyjny przed użytkownikiem - jak chcesz))).

Podczas tworzenia Basic jako podstawę przyjęto część Fortran II i część Algol 60. Początkowo Basic został zaimplementowany na komputerze mainframe GE-265 z obsługą wielu terminali (mainframe to duży wysokowydajny serwer odporny na uszkodzenia).

Pomimo tego, że język był już używany na kilku mini-komputerach, jego prawdziwy rozpowszechnienie rozpoczęło się wraz z wprowadzeniem na mikrokomputer Altair 8800.

Wiele języków programowania było zbyt obszernych, aby zmieścić się w małej pamięci, na którą mogli sobie pozwolić użytkownicy takich komputerów. W przypadku maszyn z wolnymi nośnikami, takimi jak taśma papierowa (później kaseta z taśmą) i bez odpowiedniego edytora tekstu, najlepszym rozwiązaniem był mały język, taki jak BASIC.

W 1975 roku Microsoft (wtedy było ich tylko dwóch - i Paul Allen z udziałem Monte Davidov) wypuścił Altair BASIC. Potem jego wersje pojawiły się na innej platformie na licencji i wkrótce w użyciu były już miliony kopii i różnych wariantów. Jeden z wariantów, Applesoft BASIC, stał się językiem standardowym w. Dla systemu operacyjnego CP / M powstał dialekt BASIC-80, który znacznie wyprzedzał swoje czasy.

Nawiasem mówiąc, Bill Gates powiedział, że jego ulubionym językiem programowania jest BASIC.

Basic rozwijał się najszybciej i najskuteczniej w latach 70-tych i wczesnych 80-tych. W tej chwili prawie wszyscy komputery osobiste miał własny interpreter języka BASIC, często podłączony bezpośrednio do ROM. W najprostszych komputerach służył nawet jako system operacyjny.

Praktycznie wszystkie mocniejsze komputery miały również interaktywne systemy BASIC. Stworzono kilka nowych wersji BASIC-a na platformę IBM PC i kompatybilne. Firma Microsoft sprzedawała BASIC dla MS-DOS / PC DOS, w tym BASICA, GW-BASIC (modyfikacja BASICA, która nie wymagała oprogramowania układowego IBM) i QuickBASIC.

Szeroko znana firma Borland (z którą po raz pierwszy weszła na rynek) w 1985 roku wypuściła system Turbo Basic 1.0 oparty na tym samym środowisku programowym (jego następców sprzedawała następnie inna firma pod nazwą PowerBASIC).

Pod koniec lat osiemdziesiątych komputery osobiste stały się znacznie bardziej wydajne i zapewniły nowe możliwości (takie jak graficzny interfejs użytkownika). Korzystanie z tych nowych możliwości w języku BASIC nie było już tak łatwe i wygodne. Ponadto pojawiły się niedrogie kompilatory bardziej zaawansowanych języków (jak Pascal i C), które zresztą miały ochotę na tamte czasy i dodatkowe biblioteki z gotowymi (np. Borland Pascal z biblioteką Turbo Vision).

BASIC zaczął tracić popularność, chociaż ogromna liczba wersji była nadal w użyciu i sprzedawana. Równocześnie rozpoczęło się stopniowe przechodzenie BASIC-a w kierunku uznanych języków strukturalnych: poszerzenie słownictwa i zestawu konstrukcji językowych, złożone gałęzie, nazwane podprogramy i funkcje, pojawiły się długie nazwy zmiennych.

Cechy języka BASIC

Wczesne wersje języka BASIC (takie jak BASICA, GW-BASIC) bardzo różnią się od współczesnych dialektów i obecnie praktycznie nie są używane. Co więcej, różnią się tak bardzo, że początkujący programista nie będzie w stanie przetłumaczyć każdego programu ze starego BASIC-a na nowoczesny BASIC.

Struktura programu we wczesnych wersjach języka BASIC została w dużej mierze ukształtowana z uwzględnieniem faktu, że był on przeznaczony dla środowiska programistycznego z edytorem liniowym. W takim edytorze użytkownik nie mógł wyświetlić całego tekstu na ekranie (w oknie), nie mógł poruszać się po nim w żadnym kierunku za pomocą klawiatury i / lub myszy. W edytorach wierszowych, aby zmienić wiersz tekstu, użytkownik musi wydać polecenie zmiany wiersza o podanym numerze, a następnie wprowadzić nowy tekst podanej linii (tak było z życia programistów))).

Aby wstawić nowy wiersz, musisz wydać polecenie wstawiania, ponownie określając liczbę. Wprowadzone linie są wyświetlane na ekranie sekwencyjnie (niezależnie od numerów). Aby zobaczyć wprowadzone zmiany, używane jest polecenie text output, które wyświetla wiersze we właściwej kolejności (rosnąco).

Dlatego w starym języku BASIC każdy wiersz zaczynał się od numeru. Po wejściu do edytora linia pojawiła się w kodzie źródłowym programu na pozycji odpowiadającej jej numerowi. Aby wstawić nowy wiersz, konieczne było dołączenie wiersza z liczbą znajdującą się w zakresie między numerami pozostałych dwóch wierszy.

Niemożliwe było "przesunięcie" wierszy, jeśli konieczne było wstawienie nowego wiersza między wiersze z sąsiednimi numerami, konieczne było ponowne wpisanie tych wierszy z innymi numerami w celu przerwania numeracji (lub użycie specjalnego polecenia RENUM, które zmieniało numery wszystkich już wprowadzonych wierszy ze stałym krokiem) ...

Jak możesz sobie wyobrazić, podczas tworzenia mniej lub bardziej złożonego programu prawie niemożliwe jest przewidzenie, ile będzie zawierał wierszy iw jakiej kolejności będą następować.

Dlatego, aby zapewnić późniejszą edycję programu, zwyczajem stało się numerowanie linii krokiem 10 (a czasem nawet więcej). W większości przypadków pozwalało to na bezproblemowe wstawianie nowych wierszy bez zmiany wcześniej wprowadzonych numerów wierszy.

Przykład rozważymy nieco później, kiedy zapoznamy się ze składnią języka BASIC.

PODSTAWOWA składnia języka

Terminator to koniec linii. Aby umieścić kilka operatorów w jednej linii, musisz wstawić między nimi dwukropek (nie było to dozwolone we wszystkich implementacjach języka).

Najprostszy program w języku BASIC:

10 PRINT „Hello, WORLD!”

W języku podstawowym nie ma rozróżniania wielkości liter. Oznacza to, że w przypadku Basic słowa PRINT i print są tym samym. Dotyczy to nie tylko słów kluczowych, ale także nazw zmiennych. Chociaż niektóre implementacje języka uwzględniają wielkość liter w całości lub w części (na przykład Liberty BASIC).

Nazwy zmiennych muszą zaczynać się od litery i mogą składać się z łacińskich liter i cyfr. Aby utworzyć zmienną typu string, trzeba było dodać po nazwie znak dolara ($).

Na przykład:

X \u003d 100 ‘Zmienna numeryczna X $ \u003d„ Witaj ”‘ Zmienna łańcuchowa

Wyrażenia są podobne do wyrażeń w większości innych proceduralnych języków programowania, ale było ich sporo we wczesnych wersjach języka BASIC. W najwcześniejszych wersjach liczba słów kluczowych była mniejsza niż 20 (na tym polega piękno języka BASIC)).

Nie musisz deklarować prostych zmiennych. Po prostu piszemy nazwę zmiennej w dowolnym miejscu programu i to wszystko. Jednak tablice muszą być zadeklarowane.

Poniżej przedstawiono najbardziej podstawowe konstrukcje językowe, które zostały zaimplementowane w prawie każdym systemie BASIC późnych lat siedemdziesiątych (wiele z tych konstrukcji jest obsługiwanych przez nowoczesne implementacje języka Basic):

LISTA
Wyjście do monitora tekstu programu w prawidłowej kolejności wierszy.

BIEGAĆ
Bieganie aktualny program od pierwszego operatora wiersza o najniższym numerze.

REM
Komentarz. Tekst po słowie kluczowym i na końcu linii to komentarz. Wielu tłumaczy popiera również pojedynczy cudzysłów jako początek komentarza. ”Niektórzy tłumacze akceptują słowo REM tylko wtedy, gdy znajduje się ono na samym początku wiersza.

WEJŚCIE
Wyświetla tekst monitu na monitorze i czeka, aż użytkownik wprowadzi wartość, i naciśnij klawisz ENTER.

WYDRUKOWAĆ
Wyświetla dane na monitorze (tekst i wartości zmienne).

CLS
Czyści ekran.

CIEMNY
Opis tablicy. W przeciwieństwie do zwykłych zmiennych tablice wymagają wcześniejszej deklaracji.

GOTO Label
Bezwarunkowe polecenie skoku do etykiety.

JEŚLI NASTĘPNIE ...
Zwykły operator rozgałęziania. Po IF umieszczany jest warunek logiczny, a po THEN - operator, który musi zostać wykonany, jeśli ten warunek jest prawdziwy.

KONIEC
Koniec wykonywania programu. System wychodzi do tłumacza, a użytkownik jest proszony o wprowadzenie poleceń.

ZAPISAĆ
Interaktywne polecenie, które zapisuje bieżący program do pliku na nośniku zewnętrznym.

ZAŁADUJ
Interaktywne polecenie ładujące program do pamięci z pliku na nośniku zewnętrznym. Zwykle powoduje to usunięcie wcześniej załadowanego programu i danych z pamięci.

Przykład programu w języku BASIC:

10 CLS "Wyczyść ekran 20 PRINT" Hello WORLD !!! "30 X \u003d 100" Przypisz 100 do zmiennej X 40 INPUT "Wpisz liczbę:"; Y 50 PRINT Y; "*"; X; "\u003d"; X * Y 60 KONIEC

Podstawowi tłumacze

Jednym z najbardziej znanych tłumaczów języka BASIC jest QBasic firmy Microsoft. Przez wiele lat był dostarczany bezpłatnie z systemami operacyjnymi MS-DOS i Windows. QBasic miał wówczas dobre możliwości graficzne i dźwiękowe. Dlatego nawet gry powstały na QBasic (zrobił to jeden z moich znajomych - nie to, co jest na obrazku, ale coś takiego))).

Późniejsze wersje BASIC (począwszy od Turbo Basic i Visual Basic) bardzo różnią się od wcześniejszych implementacji. W rzeczywistości jest to nowy język, który już bardziej przypomina Fortran lub Pascal niż oryginalny BASIC (chociaż obsługiwanych jest wiele konstrukcji).

BASIC otrzymał swoje drugie życie wraz z pojawieniem się Visual Basic firmy Microsoft. Jednak pomimo swojej popularności, w 2001 roku Microsoft zrezygnował z dalszego wsparcia dla Visual Basic (jeśli się nie mylę, ostatnia wersja Visual Basic to 6.5) na rzecz całkowicie nowego języka Visual Basic .NET, gdzie język został ponownie „przerysowany” i „zmieniony” koncentruje się na technologii wieloplatformowej .NET iw obecnym stanie praktycznie pokrywa się w zestawie funkcji z językiem C #. Jedyne różnice dotyczą składni i słów kluczowych.

W ten sposób Basic ewoluował od nieprofesjonalnego narzędzia do tworzenia oprogramowania do pełnoprawnego narzędzia do tworzenia oprogramowania.

Oprócz pisania pełnoprawnych programów, BASIC jest szeroko stosowany jako podstawa dla różnych języków skryptowych (na przykład makra w pakiecie Microsoft Office są napisane w dialekcie VBA, język skryptowy VBScript jest używany w systemach SCADA i innych podobnych programach).

Ile osób, tyle opinii

Nawet w swoich najlepszych czasach (1970 ... 1980) BASIC był poddawany ostrej krytyce (jednak jak prawie wszystkie inne języki programowania - uwielbiamy krytykować).

Oczywiście Basic miał wiele wad. Ale on też był tak poczęty! Tak, z wadami. Ale z drugiej strony jest to proste i zrozumiałe nawet dla nauk humanistycznych.

Zasadniczo zawodowi programiści rozwalili BASIC-a na drobne kawałki za to, że jego prostota i brak struktury powoduje, że początkujący programiści, dążąc do skrócenia czasu tworzenia programów, całkowicie zapominają o „poprawnym” podejściu do programowania. Jest to dopuszczalne w przypadku pisania prostych programów, ale prawie zawsze prowadzi do niepowodzenia podczas pracy nad poważnymi dużymi projektami.

Wielu profesjonalistów również stanowczo sprzeciwiało się używaniu Basic do nauczania początkujących. Znany w świecie programistów autorytet Edsger Dijkstra powiedział, że nauczenie studentów, którzy wcześniej uczyli się dobrego programowania w języku BASIC, jest prawie niemożliwe. I że jako potencjalni programiści są psychicznie sparaliżowani bez nadziei na wyzdrowienie.

Mimo autorytetu Dijkstry nie zgadzam się z nim w tej sprawie. To, co przypisuje się niedociągnięciom BASICa, to w rzeczywistości jego zalety. Wady języka BASIC (jeśli mamy na myśli wczesne dialekty) pojawiają się, gdy próbujesz profesjonalnie tworzyć na nim złożone i duże programy i używasz go jako podstawowego języka do nauczania programistów, ale dla żadnej z tych aplikacji dany język nie był przeznaczony. Jego głównym zadaniem było zapewnienie studentom niebędącym programistami możliwości samodzielnego pisania najprostszych programów na własne potrzeby po minimalnym przeszkoleniu, tak aby nie przeszkadzać specjalistom w tej pracy. Język całkiem skutecznie rozwiązuje ten problem.

Jeśli mówimy o współczesnych dialektach i implementacjach języka BASIC, to odeszły one tak daleko od oryginalnej formy języka, że \u200b\u200btrudno uznać wszystkie powyższe za związane z nimi. Współczesne dialekty języka BASIC są językami dość ustrukturyzowanymi, są porównywalne pod względem możliwości z językami takimi jak C, Pascal itp.

Język Basic (nawet jego pierwsze implementacje, takie jak QBasic) jest całkiem odpowiedni do nauki, ponieważ z mojego punktu widzenia nie ma absolutnie żadnych problemów, jeśli to konieczne, naucz się innego języka. Może w latach 60. ubiegłego wieku to był problem - nie wiem (urodziłem się w 1969). Ale teraz - nie.

Ponadto dzisiaj tak naprawdę nie musisz się ponownie szkolić, ponieważ możesz tworzyć własne fajne programy, na przykład w Visual Basic.

Pod ich kierunkiem został on wdrożony przez zespół studentów. Z biegiem czasu, gdy zaczęły pojawiać się inne dialekty, zaczęto nazywać oryginalną implementację Dartmouth BASIC.

BASIC został zaprojektowany tak, aby uczniowie mogli bez trudu pisać programy przy użyciu terminali z podziałem czasu. Przeznaczony był dla bardziej „prostych” użytkowników, zainteresowanych nie tyle szybkością wykonywania programów, co po prostu możliwością wykorzystania komputera do rozwiązywania swoich problemów bez specjalnego szkolenia.

Język został zaprojektowany zgodnie z następującymi ośmioma zasadami. Nowy język musiał:

  1. być łatwy w użyciu dla początkujących;
  2. być językiem programowania ogólny cel;
  3. dać szansę rozszerzanie funkcjonalnościdostępne dla doświadczonych programistów;
  4. być interaktywny;
  5. przedstawiać jasne komunikaty o błędach;
  6. szybko pracować nad małymi programami;
  7. nie wymagają zrozumienia działania sprzętu;
  8. chronić użytkownika przed systemem operacyjnym.

Język został oparty częściowo na Fortranie II, a częściowo na Algolu 60, z dodatkami ułatwiającymi dzielenie czasu, a później przetwarzanie tekstu i arytmetykę macierzy. BASIC został pierwotnie zaimplementowany na komputerze mainframe GE-265 z obsługą wielu terminali. Wbrew powszechnemu przekonaniu w chwili powstania był to język kompilowany.

Wzrost

Pomimo tego, że język był już używany na kilku mini-komputerach, jego prawdziwy rozpowszechnienie zaczęło się wraz z pojawieniem się na mikrokomputerze Altair 8800. Wiele języków programowania było zbyt dużych, aby zmieścić się w małej pamięci, na którą mogli sobie pozwolić użytkownicy takich maszyn. Dla maszyn tak powolnych jak taśma papierowa (później kaseta audio) i bez odpowiedniego edytora tekstu, język tak mały jak BASIC był świetnym znaleziskiem.

Dojrzałość

Okres największego rozkwitu i rozwoju oryginalnego BASICa można uznać za koniec lat 70-tych - pierwszą połowę lat 80-tych. W tym okresie prawie wszystkie komputery osobiste miały własny interpreter języka BASIC, często podłączony do pamięci ROM, który w najprostszych komputerach często pełnił funkcje systemu operacyjnego. Praktycznie wszystkie mocniejsze komputery miały również interaktywne systemy BASIC. Co charakterystyczne, praktycznie nie było kompilatory BASIC, zdecydowana większość implementacji była standardową hybrydą edytora liniowego i interpretera. Niezadowolenie z prymitywizmu oryginalnego BASICa spowodowało próby udoskonalenia podstawowych środków języka, co doprowadziło do pojawienia się w niektórych implementacjach złożonych operatorów rozgałęzień, dodatkowych typów pętli, nazwanych procedur z parametrami.

Na platformę IBM PC stworzono kilka nowych wersji BASICa. Microsoft sprzedał BASIC dla MS-DOS / PC DOS, w tym BASICA, GW-BASIC (modyfikacja BASICA, która nie wymagała oprogramowania układowego IBM) i QuickBASIC. Borland, który pierwotnie wszedł na rynek ze swoim słynnym Turbo Pascalem, wypuścił Turbo Basic 1.0 w oparciu o to samo środowisko oprogramowania w 1985 roku (jego następcy byli później sprzedawani przez inną firmę pod nazwą PowerBASIC). Kilka innych języków wykorzystało dobrze znaną składnię BASIC jako podstawę, na której zbudowano zupełnie inny system (patrz na przykład GRASS). Chęć zwiększenia wydajności programów w języku BASIC doprowadziła do powstania pełnoprawnych kompilatorów (takich jak np. Wspomniany Turbo Basic), a także systemów „hybrydowych”, w których, zachowując interpretację jako główną metodę wykonywania programu, zaimplementowano częściową kompilację „w locie”, np. kompilacja krótkich pętli. Ponadto, przynajmniej na platformie IBM, rozpowszechniła się pseudokompilacja programów w języku BASIC, kiedy tłumacz przetłumaczył program BASIC na pseudokod (często odwracalny) i utworzył program wykonywalny z modułu obiektowego interpretera i zakodowanego modułu z tekstem programu. Taki program był uruchamiany i wykonywany jako normalny skompilowany program obiektowy, chociaż zasadniczo pozostawał interpretowany.

W połowie lat osiemdziesiątych BASIC stał się głównym językiem w wyrafinowanych modelach programowalnych kalkulatorów, które do tego czasu osiągnęły moc pełnoprawnego języka wysokiego poziomu. Sam fakt, że wielu producentów bez słowa wybrało BASIC jako podstawę kalkulatorów JAVU, najlepiej świadczy o rozpowszechnieniu i popularności tego języka w określonym czasie. Tak więc BASIC został wbudowany w radziecki kalkulator „Electronics MK-85” i wszystkie jego późniejsze modele. Użycie języka BASIC jako głównego JLU programowalnych kalkulatorów trwa do dziś; obecnie jest to „kalkulator” BASIC, który jest najbardziej podobny do oryginalnej wersji z lat 60.-80., np. implementacja kalkulatorów CITIZEN zawiera tylko 14 słów kluczowych (nie licząc funkcji matematycznych) i dopuszcza tylko jednoznakowe nazwy zmiennych.

Pod koniec lat 80-tych komputery osobiste stały się znacznie potężniejsze i zapewniały możliwości (takie jak graficzny interfejs użytkownika), które nie były już tak łatwe w użyciu w języku BASIC. Ponadto pojawienie się na komputerach klasy „edukacyjnej” i „domowej” niedrogich tłumaczy języków przemysłowych (głównie Pascal i C), w połączeniu z wygodnymi środowiskami programistycznymi i użytecznymi bibliotekami (np. Borland Pascal z biblioteką Turbo Vision) stworzyło silną konkurencję dla BASICa. BASIC zaczął tracić na popularności, pomimo faktu, że ogromna liczba jego wersji była nadal w użyciu i sprzedawana. W tym samym czasie rozpoczęła się szybka zmiana w wyglądzie tych systemów BASIC, które nadal działały. Nastąpiło stopniowe „dryfowanie” w kierunku uznanych języków strukturalnych: poszerzono słownictwo i zestaw konstrukcji językowych, pojawiły się złożone rozgałęzienia, nazwane podprogramy i funkcje, długie nazwy zmiennych. Dodatkowo, zwiększone możliwości komputerów osobistych pozwoliły odejść od charakterystycznych cech języka BASIC, wprowadzonych w celu zapewnienia efektywnej interaktywnej pracy na terminalu tekstowym: numerycznych etykiet dla każdej linii i edycji linii.

Opis

Składnia języka przypomina Fortran i wiele elementów jest z niego wyraźnych zapożyczeń. Język został stworzony do nauczania, więc jego konstrukcje są tak proste, jak to tylko możliwe. Podobnie jak w przypadku innych języków programowania, słowa kluczowe są pobierane z języka angielskiego... Istnieją dwa główne typy danych: łańcuchy i liczby. Wraz z pojawieniem się wersji Visual Basic, a także jej różnymi modyfikacjami (np. VBA) w języku pojawiło się wiele innych typów danych i dodatków, które są typowe dla współczesnych języków programowania (np. Jak np. Model obiektowy). Deklaracje zmiennych nie wymagają specjalnej sekcji (w przeciwieństwie do Pascala). Zadeklarowanie zmiennej jest jej pierwszym użyciem.

Wczesne wersje języka BASIC (takie jak BASICA, GW-BASIC) znacznie różnią się od współczesnych dialektów i obecnie praktycznie nie są używane.

Wczesne wersje

Pojawienie się programów we wczesnych wersjach BASICa było w dużej mierze zdeterminowane faktem, że był on przeznaczony dla środowiska programistycznego z liniowym edytorem tekstu. W takim edytorze użytkownik nie miał możliwości wyświetlenia całego tekstu na ekranie (w oknie), poruszania się po nim w dowolnym kierunku za pomocą klawiatury i / lub myszy. W edytorach wierszowych, aby zmienić wiersz tekstu, użytkownik musi wydać polecenie zmiany wiersza o podanym numerze, a następnie wprowadzić nowy tekst określonej linii. Aby wstawić nowy wiersz, musisz wydać polecenie wstawiania, ponownie określając liczbę. Wprowadzone linie są wyświetlane na ekranie sekwencyjnie (niezależnie od numerów). Aby zobaczyć wprowadzone zmiany, używane jest polecenie text output, które wyświetla wiersze we właściwej kolejności (rosnąco).

Wszystko to znalazło odzwierciedlenie w BASICu. Każda linia zaczynała się liczbą. Po wejściu do edytora linia pojawiła się w kodzie źródłowym programu na pozycji odpowiadającej jej numerowi. Aby wstawić nowy wiersz, konieczne było dołączenie wiersza z liczbą znajdującą się w zakresie między numerami pozostałych dwóch wierszy. Niemożliwe było "przesunięcie" wierszy, jeśli konieczne było wstawienie nowego wiersza między wiersze z sąsiednimi numerami, konieczne było ponowne wprowadzenie tych wierszy z innymi numerami w celu przerwania numeracji (lub użycie specjalnego polecenia RENUM, które przenumerowało wszystkie już wprowadzone linie stałym krokiem, synchronicznie zmiana wszystkich poleceń przejścia). Aby uprościć edycję programu w trybie on-line, rozwinęła się praktyka numerowania wierszy z krokiem 10 - umożliwiło to w prawie wszystkich przypadkach wstawianie nowych wierszy bez zmiany wcześniej wprowadzonych numerów. Na przykład, aby dodać trzecią linię między wierszami 20 i 30, trzeba było napisać wiersz 25. Typowa linia z programu w języku BASIC wyglądała następująco:

10 PRINT "Hello, World!"

Ręczna zmiana numerów istniejących wierszy była niebezpieczna, ponieważ liczby służyły jako etykiety dla instrukcji GOTO. Wcześniej w języku BASIC dozwolone były tylko etykiety numeryczne dla tego operatora, a obecność unikalnej liczby w każdym wierszu umożliwiała bezwarunkowe przeskakiwanie do dowolnego z nich. Etykiety numeryczne i aktywne użycie GOTO były nieuniknione podczas programowania w języku BASIC, co przyczyniło się do słabej struktury kodu oraz w dużych projektach doprowadziło do zamieszania samych autorów. Ukuli nawet żartobliwy termin „kod spagetti”, ponieważ logika programu z częstymi skokami GOTO przypomina talerz spaghetti.

Koniec operatora był końcem linii. Aby umieścić kilka operatorów w jednym wierszu, musisz wstawić między nimi dwukropek (nie było to dozwolone we wszystkich implementacjach języka). Nazwy zmienne w większości dialektów mogły składać się tylko z jednej litery, po której można było dodać jedną cyfrę, co również nie poprawiało zrozumienia kodu. Aby utworzyć zmienną typu string, trzeba było dodać po nazwie znak dolara ($). Zmienna bez tego znaku była numeryczna (zmiennoprzecinkowa). Było jeszcze kilka modyfikatorów związanych z typem liczbowym: znak procentu (%) - typ całkowity, wykrzyknik (!) - dokładność regularna, octotorp (#) - podwójna precyzja (dla danych zmiennoprzecinkowych, czyli ułamki dziesiętne). W niektórych wersjach modyfikatory liczbowe mogą nie mieć zastosowania lub nie wszystkie. W zdecydowanej większości programów używano tylko podstawowego typu numerycznego

Wyrażenia są podobne do większości innych proceduralnych języków programowania, ale w pierwszych wersjach Basic ich zestaw był raczej ubogi. W najwcześniejszych wariantach liczba słów kluczowych nie sięgała nawet 20. Oto zestaw podstawowych konstrukcji programistycznych i poleceń interaktywnych, które zostały zaimplementowane w prawie każdym systemie BASIC z późnych lat siedemdziesiątych:

  • LISTA - Wyprowadzanie do monitora tekstu programu w prawidłowej kolejności wierszy. W zależności od implementacji, komenda obsługiwała parametry - zakres wyświetlanych wierszy. Czasami obsługiwana była opcja LLIST - wyjście do urządzenia drukującego.
  • RUN - Uruchom bieżący program od pierwszej instrukcji w linii o najniższym numerze. Parametr mógłby być obsługiwany - numer linii, od której ma się rozpocząć wykonywanie.
  • REM - Komentarz. Tekst po słowie kluczowym i do końca wiersza nie miał wpływu na wykonanie programu. Wielu tłumaczy poparło również pojedynczy cytat „jako znak początku komentarza”.
  • INPUT „Prompt:”, Variable - wyprowadza do monitora tekst „Prompt:” i poczekaj, aż użytkownik wprowadzi wartość i naciśnie klawisz Enter. Następnie wprowadzona wartość zostanie zapisana w zmiennej. W najprostszych implementacjach podpowiedź do INPUT nie była obsługiwana i musiała być wyświetlana w oddzielnym operatorze PRINT (patrz poniżej).
  • PRINT "Tekst"; Zmienna; Zmienna; "Tekst" - Wyświetlanie na monitorze kolejno wyświetlanych obiektów (tekst i wartości zmiennych). W zależności od implementacji separatory były postrzegane w różny sposób: w niektórych przypadkach separator powodował wyświetlenie co najmniej jednej spacji, w innych wartości były wyświetlane w rzędzie, a separatory trzeba było dodawać ręcznie. Separator ";" pełnił również funkcję tłumienia tłumaczenia do następnej linii.
  • CLS - czyści ekran terminala. W zależności od implementacji, konstrukcji i trybu pracy terminala, kursor tekstowy został przesunięty w lewy górny lub lewy dolny róg.
  • LET - przypisanie (format „LET Variable \u003d Value”). W zdecydowanej większości wersji operator LET był obsługiwany, ale był opcjonalny - przypisania do zmiennych zapisywano bez LET).
  • DIM - Opis tablicy. W przeciwieństwie do zwykłych zmiennych tablice wymagały opisu. Maksymalna liczba wymiarów tablicy została określona tylko przez implementację
  • DANE - zbiór danych umieszczanych bezpośrednio w tekście programu (analogia stałej lub stałej tablicy).
  • READ - Polecenie odczytu ze zbioru DANYCH.
  • GOTO Lbl - Polecenie bezwarunkowego skoku do etykiety Lbl.
  • ON… GOTO - polecenie Computed branch - po ON powinno być wyliczone wyrażenie lub zmienna, a po GOTO - zestaw etykiet oddzielonych przecinkami. Wartość wyrażenia wskazuje numer etykiety, do której należy przejść.
  • JEŚLI… TO… - Zwykły operator odgałęzienia. Po IF umieszczany jest warunek logiczny, a po THEN - operator, który musi zostać wykonany, jeśli ten warunek jest prawdziwy. Aby skrócić notację, wiele implementacji wspierało tę konwencję - jeśli TO następuje po liczbie, to jest to etykieta, do której należy przejść, to znaczy forma „JEŻELI ... TO 150” jest równoważna z „JEŻELI ... WTEDY GOTO 150”. Formularze „IF ... GOTO ...” również mogą być obsługiwane
  • Zmienna pętli FOR \u003d wartość początkowa do wartości końcowej STEP Krok - nagłówek pętli z krokiem. Inicjuje pętlę, w której zmienna sekwencyjnie przechodzi przez serię wartości od StartValue do EndValue w przyrostach Step. Ciało pętli jest oddzielone nagłówkiem i słowem kluczowym NEXT. Część STEP można pominąć - w tym przypadku krok był równy jeden. Gdy zmienna LoopVariable przekracza określone granice, rozgałęzia się poza odpowiednią instrukcję NEXT.
  • DALEJ - Uzupełnienie treści pętli krokiem. Operator wskazuje, że konieczne jest przejście do tytułu bieżącego pliku wykonywalnego dla pętli i kontynuuj pracę. W bardziej zaawansowanych implementacjach NEXT mógłby zawierać rozdzieloną przecinkami listę zmiennych pętli - oznaczało to, że w danym punkcie programu kończy się ciało nie jednej, ale kilku pętli. Używanie NEXT ze zmienną również zabezpieczało przed naruszeniem logiki programu, ponieważ powodowało błąd wykonania, jeśli podczas wykonywania tego polecenia okazało się, że pętla była aktywna na innej zmiennej, której nazwa została określona.
  • Warunek WHILE - nagłówek pętli z warunkiem wstępnym. Pętla kończyła się, jeśli warunek był fałszywy. W tym przypadku instrukcja WEND odpowiadająca nagłówkowi została przeskoczona.
  • WEND - Uzupełnienie treści pętli WHILE. Analogowy NEXT, ale dla pętli z warunkiem wstępnym.
  • GOSUB Label - Skocz do podprogramu zaczynającego się od Label. Zwrot następuje po osiągnięciu instrukcji RETURN. Rekurencyjne wywołania procedur były generalnie zabronione i powodowały błąd w czasie wykonywania.
  • RETURN - instrukcja powrotu podprogramu. Wykonywany jest bezwarunkowy skok do instrukcji następującej po komendzie GOSUB, która przeskoczyła do podprogramu.
  • END - koniec wykonywania programu. System wychodzi do tłumacza, a użytkownik jest proszony o wprowadzenie poleceń.
  • ŁAŃCUCH - ładowanie szeregu wierszy programu z nośnika zewnętrznego.
  • OPEN - Otwiera plik danych na nośniku zewnętrznym.
  • ZAMKNIJ - Zamknięcie pliku danych na nośniku zewnętrznym.
  • GET - Sekwencyjne odczytywanie wartości określonych zmiennych z pliku, przesuwanie wskaźnika pliku poza ostatni odczytany znak.
  • PUT - sekwencyjne zapisywanie wartości określonych zmiennych do pliku, przesuwanie wskaźnika pliku poza ostatni zapisany znak.
  • DELETE - Polecenie trybu interaktywnego - kasowanie linii o podanym numerze.
  • ZAPISZ - Polecenie trybu interaktywnego - zapisywanie bieżącego programu do pliku na nośniku zewnętrznym.
  • LOAD - komenda trybu interaktywnego - wczytanie programu do pamięci z pliku na nośniku zewnętrznym. Z reguły domyślnie prowadził do zniszczenia wcześniej załadowanego programu i danych.
  • RENUM - Polecenie trybu interaktywnego - przenumerowanie wszystkich lub określonego zakresu wierszy programu począwszy od określonej liczby z określonym krokiem. Domyślnie wszystkie linie programu są numerowane ze skokiem co 10.

Operator warunkowy (IF..THEN) miał początkowo tylko jedną gałąź - gałąź ELSE była w niej nieobecna i był modelowany za pomocą bezwarunkowego skoku. Tak więc w poniższym programie wykonywana jest elementarna operacja - wpisanie liczby i wyświetlenie komunikatu „Liczba ujemna” lub „Liczba dodatnia lub zero” w zależności od jej wartości:

10 INPUT I 20 IF I\u003e \u003d 0 THEN PRINT "Liczba dodatnia lub zerowa": GOTO 40 30 PRINT "Liczba ujemna" 40 END

Na wyliczanej etykiecie ON..GOTO (odziedziczonej z podobnej konstrukcji Fortrana) znajdował się operator skoku - w nim po ON wskazano wyrażenie numeryczne, a po GOTO listę numerów linii. Nastąpiło przejście do wiersza, którego numer na liście odpowiadał wartości wyrażenia. Istnieją również pętle (pętla z licznikiem FOR i pętla z warunkiem wstępnym WHILE).

Korzystanie z funkcji zdefiniowanych przez użytkownika (fragmentów kodu do wielokrotnego użytku) było możliwe na dwa sposoby: funkcje zdefiniowane i podprogramy.

Podprogramy nie były analogiczne do funkcji w językach takich jak C czy Pascal, ponieważ nie miały nazw i nie mogły przyjmować i / lub zwracać parametrów. Parametry i wyniki były przekazywane przez zmienne globalne (wszystkie zmienne we wczesnych wersjach BASIC były globalne). Podprogramy były zwykle pisane na końcu modułu, z numeracją oczywiście większą niż planowana liczba wierszy (na przykład numeracja bloku podprogramu mogła zaczynać się od 5000, nawet jeśli program miał kilkaset wierszy). Podprogramy nie miały nagłówków ani nazw i nie różniły się od innych fragmentów kodu. Podprogram został wywołany przy użyciu słowa kluczowego GOSUB<метка> ... Jest to praktycznie klon GOTO, z wyjątkiem jednej rzeczy: powrót do ostrzegacza nastąpił automatycznie po osiągnięciu słowa kluczowego RETURN w podprogramie. GOSUB, podobnie jak GOTO, przyczynił się tylko do złej struktury kodu, ponieważ trudno było prześledzić wykonanie programu zawierającego dużą liczbę bezwarunkowych gałęzi i podprogramów. Rekursja nie była dozwolona.

Brak możliwości nadania nazw podprogramom (i przekazania kontroli nad nimi), niemożność przekazywania parametrów, brak zmiennych lokalnych, użycie tylko etykiet numerycznych w dużych projektach spowodowało zamieszanie w kodzie i bardzo utrudniło debugowanie.

W niektórych dialektach języka BASIC można było załadować plik z kodem bezpośrednio podczas wykonywania programu (bieżący był wyładowywany) za pomocą operatora CHAIN. Była to jedna z najbardziej przydatnych funkcji języka, ponieważ pozwalała na podzielenie dużego projektu na moduły, wywołując je w razie potrzeby.

Krytyka

W okresie swojej świetności (1970-1980) BASIC był mocno krytykowany. Oprócz stwierdzenia oczywistych niedociągnięć języka związanych z ubóstwem składniowym wczesnych wersji oraz brakiem wielu uznanych i wygodnych konstrukcji i mechanizmów, BASIC był krytykowany za to, że jego prostota i brak struktury zachęca do stosowania wadliwych metod programowania i przyczynia się do rozwoju niebezpiecznych nawyków programistycznych, które czasami mogą być odpowiednie, gdy szybko tworzyć małe programy dla bieżących potrzeb, ale może prowadzić do upadku dużych projektów.

Wszechobecna podstawowa edukacja programowania oparta na języku BASIC została ostro skrytykowana. Jedną z „wizytówek” Edsgera Dijkstry było stwierdzenie:

Nauczenie dobrego programowania studentów, którzy wcześniej uczyli się na poziomie Basic, jest prawie niemożliwe. Jako potencjalni programiści są psychicznie kalekimi bez nadziei na wyzdrowienie.

Oryginalny tekst (Język angielski)

Praktycznie niemożliwe jest nauczenie dobrego programowania uczniów, którzy mieli wcześniej kontakt z BASICem: jako potencjalni programiści są psychicznie okaleczeni bez nadziei na regenerację

W odpowiedzi na krytykę, zwolennicy BASIC zauważają, że krytycy przypisują językowi negatywne aspekty, które należy przypisać jego niewłaściwemu użyciu. Wady języka BASIC (jeśli mamy na myśli wczesne dialekty) przejawiają się, gdy próbuje się profesjonalnie tworzyć na nim złożone i duże programy oraz gdy używa się go jako podstawowego języka do nauczania programistów, ale ten język nie był przeznaczony do żadnej z tych aplikacji; jego głównym zadaniem było zapewnienie studentom nie-programistów okazja po minimum nauka samodzielnego pisania pierwotniaki programy na własne potrzebyaby nie rozpraszać specjalistów do tej pracy. Język jest dość zgodny z tym zadaniem.

Jeśli mówimy o współczesnych dialektach i implementacjach języka BASIC, to odeszły one tak daleko od oryginalnej formy języka, że \u200b\u200btrudno uznać wszystkie powyższe za związane z nimi. Współczesne dialekty języka BASIC są językami dość ustrukturyzowanymi, są porównywalne pod względem możliwości z językami takimi jak C, Pascal itp.

Producenci

W różnych okresach tłumacze języka BASIC były produkowane przez różne organizacje, firmy, firmy:

Radziecki:

  • Uniwersytet Wileński - Wilno
  • Centrum Obliczeniowe SB AS ZSRR - Nowosybirsk
  • Lobachevsky State University of Niżny Nowogród - Niżny Nowogród

Realizacja

  • Visual Basic (VBA, VBS, .NET)
  • Rapid-Q basic

Napisz recenzję artykułu „Podstawowe”

Uwagi

Literatura

  • Dyakonov V., Munerman V., Samoylova T., Yemelchenkov Ye. Rewolucyjny przewodnik po QBASIC. - Birmingham: Wrox Press Ltd, 1996. - 578 str.
  • Dyakonov V.P. Podręcznik dotyczący algorytmów i programów w języku BASIC dla komputerów osobistych. - M .: Nauka, Fizmatlit, 1987 - 240 str.
  • Dyakonov V.P. Korzystanie z komputerów osobistych i programowanie w języku BASIC. - M .: Radio i komunikacja, 1989. - 288 str.
  • Dyakonov V.P. Nowoczesne zagraniczne mikrokalkulatory. - M.: SOLON-R, 2002. - 400 str.
Normy
  • ANSI X3.60-1978 "FOR MINIMAL BASIC"
  • ISO / IEC 6373: 1984 „PRZETWARZANIE DANYCH - JĘZYKI PROGRAMOWANIA - MINIMALNE PODSTAWY”
  • ANSI X3.113-1987 „JĘZYKI PROGRAMOWANIA FULL BASIC”
  • GOST 27787-88 „BASIC Programming Language” (zawiera normę ISO 6373: 1984)
  • ANSI X3.113 INTERPRETATIONS-1992 „PODSTAWOWY BIULETYN INFORMACJI TECHNICZNYCH NR 1 INTERPRETACJE ANSI 03.113-1987”

Spinki do mankietów

  • Andrey Kolesov. Wersja autorska. z drobnymi poprawkami literackimi w czasopiśmie „Science and Life” nr 10/2000, s. 18-20.
  • Dartmouth College Preprint 1 października 1964.
  • Thomas E. Kurtz. , 1977.
  • (Język angielski)

PODSTAWOWY fragment

Tak dziwnie nagle dla Nataszy wydał się jego cichy, delikatny, uduchowiony głos.
- Nie będziemy mówić, przyjacielu, wszystko mu powiem; ale o jedno was proszę - uważajcie mnie za przyjaciela, a jeśli potrzebujecie pomocy, rady, wystarczy, że wylejecie na kogoś swoją duszę - nie teraz, ale kiedy będzie to jasne w waszej duszy - pamiętajcie o mnie. Wziął i pocałował jej dłoń. - Będę szczęśliwy, jeśli będę mógł ... - Pierre był zażenowany.
- Nie mów tak do mnie: nie jestem tego wart! Natasha krzyczała i chciała wyjść z pokoju, ale Pierre trzymał ją za rękę. Wiedział, że potrzebuje czegoś innego, by jej powiedzieć. Ale kiedy to powiedział, był zaskoczony własnymi słowami.
„Przestań, przestań, całe twoje życie jest przed tobą”, powiedział jej.
- Dla mnie? Nie! Dla mnie wszystko minęło - powiedziała ze wstydem i samooceną.
- Wszystko stracone? On powtórzył. - Gdybym nie był sobą, ale najpiękniejszy, najmądrzejszy i najlepsza osoba na świecie i byłbym wolny, byłbym w tej chwili na kolanach po twoją rękę i twoją miłość.
Po raz pierwszy od wielu dni Natasza zapłakała łzami wdzięczności i czułości i patrząc na Pierre'a wyszła z pokoju.
Pierre również prawie pobiegł za nią do holu, powstrzymując łzy wzruszenia i szczęścia, które uciskały mu gardło, nie wpadając w rękawy, włożył futro i usiadł na saniach.
- Gdzie teraz zamówisz? Zapytał woźnica.
"Gdzie? - zadawał sobie pytanie Pierre. Gdzie możesz teraz iść? Czy to dla klubu czy dla gości? ” Wszyscy ludzie wydawali się tak żałosni, tak biedni w porównaniu z uczuciami czułości i miłości, których doświadczył; w porównaniu ze złagodzonym, wdzięcznym spojrzeniem, które ostatnio na niego patrzyła z powodu łez.
- Dom - powiedział Pierre, mimo dziesięciu stopni mrozu, rozpinając niedźwiedzi płaszcz na szerokiej, radośnie oddychającej piersi.
Było mroźno i jasno. Nad brudnymi, na wpół ciemnymi ulicami, nad czarnymi dachami było ciemne, rozgwieżdżone niebo. Pierre, patrząc tylko w niebo, nie czuł obraźliwej podłości wszystkiego, co ziemskie, w porównaniu z wysokością, na której znajdowała się jego dusza. Przy wejściu na plac Arbat przed oczami Pierre'a otwierała się ogromna przestrzeń rozgwieżdżonego, ciemnego nieba. Niemal na środku tego nieba, nad Bulwarem Prechistenskim, otoczona, usiana gwiazdami ze wszystkich stron, ale różniąca się od wszystkich bliskością ziemi, białym światłem i długim, odwróconym ogonem, stała ogromna jasna kometa z 1812 roku, ta sama kometa, która zapowiadała jak mówili, wszelkiego rodzaju okropności i koniec świata. Ale u Pierre'a ta jasna gwiazda z długim, promiennym ogonem nie wzbudziła żadnego strasznego uczucia. Naprzeciwko Pierre patrzył radośnie, z oczami mokrymi od łez, na tę jasną gwiazdę, która jakby z niewypowiedzianą prędkością przelatującą niezmierzone przestrzenie wzdłuż parabolicznej linii, nagle, jak strzała wbijająca się w ziemię, wbiła się w wybrane przez siebie miejsce, na czarnym niebie, i zatrzymała się, jej ogon uniósł się energicznie, świecąc i bawiąc się białym światłem między niezliczonymi innymi migoczącymi gwiazdami. Pierreowi wydawało się, że ta gwiazda w pełni odpowiada temu, co było w jego duszy, co rozkwitło w nowe życie, zmiękczone i zachęcające.

Od końca 1811 r. Rozpoczęto zintensyfikowane zbrojenie i koncentrację sił Europy Zachodniej, aw 1812 r. Siły te - miliony ludzi (w tym tych, którzy transportowali i karmili armię) przeniosły się z Zachodu na Wschód, w granice Rosji, do której w ten sam sposób od 1811 r. rok, w którym siły Rosji zostały zebrane razem. 12 czerwca siły Europy Zachodniej przekroczyły granice Rosji i rozpoczęła się wojna, czyli wydarzenie sprzeczne z ludzkim rozumem i całą ludzką naturą. Miliony ludzi popełniły przeciwko sobie tak nieskończoną liczbę okrucieństw, oszustw, zdrady, kradzieży, fałszerstw i wydawania fałszywych banknotów, rabunków, podpaleń i morderstw, które przez wieki nie zostaną zebrane w kronice wszystkich sądów świata i dla których w tym okresie ludzie ci, którzy je popełnili, nie uważali ich za zbrodnie.
Co spowodowało to niezwykłe wydarzenie? Jakie były tego przyczyny? Historycy z naiwną pewnością twierdzą, że przyczyną tego wydarzenia była zniewaga księcia Oldenburga, nieprzestrzeganie systemu kontynentalnego, żądza władzy Napoleona, stanowczość Aleksandra, błędy dyplomatyczne itp.
W rezultacie Metternich, Rumyantsev lub Talleyrand, między wyjściem a recepcją, musieli tylko postarać się i napisać bardziej poszukiwaną kartkę papieru lub napoleonowi napisać do Aleksandra: Monsieur mon frere, je consens a rendre le duche au duc d "Oldenbourg, [Mój drogi bracie, zgadzam się zwrócić księstwo księciu Oldenburga.] - a wojny nie będzie.
Oczywiste jest, że tak właśnie się wydawało współczesnym. Jest jasne, że Napoleonowi wydawało się, że przyczyną wojny były intrygi Anglii (jak to powiedział na wyspie św. Helena); jasne jest, że członkom Domu Angielskiego wydawało się, że przyczyną wojny była żądza władzy Napoleona; że księciu Oldenburga wydawało się, że przyczyną wojny była przemoc wobec niego; że kupcy myśleli, że przyczyną wojny był system kontynentalny, który spustoszył Europę, że starzy żołnierze i generałowie uważali, że głównym powodem była potrzeba wykorzystania ich w biznesie; ówczesnych legitymistów, że trzeba było przywrócić les bons principes [dobre zasady], a ówcześni dyplomaci, że wszystko się wydarzyło, ponieważ sojusz Rosji z Austrią w 1809 r. nie był umiejętnie ukryty przed Napoleonem i że memorandum zostało napisane niezręcznie Nie. 178. Jest oczywiste, że te i wciąż niezliczone, nieskończone liczby powodów, których liczba zależy od niezliczonej różnicy punktów widzenia, wydawały się współczesnym; ale dla nas - potomków, rozważających w całym zakresie ogrom wydarzenia, które miało miejsce i zagłębiających się w jego proste i straszne znaczenie, te powody wydają się niewystarczające. Jest dla nas niezrozumiałe, że miliony chrześcijan zabijały i torturowały się nawzajem, ponieważ Napoleon był żądny władzy, Aleksander był stanowczy, polityka Anglii była przebiegła, a książę Oldenburga był obrażony. Nie można zrozumieć, jaki związek mają te okoliczności z samym faktem morderstwa i przemocy; dlatego, ze względu na obrazę księcia, tysiące ludzi z drugiego końca Europy zabijały i rujnowały ludność prowincji smoleńskiej i moskiewskiej oraz ginęły przez nich.
Dla nas, potomków, a nie historyków, którzy nie dają się porwać procesowi badań i dlatego z niezachwianym zdrowym rozsądkiem kontemplującym wydarzenie, jego przyczyny przedstawiane są w niezliczonych ilościach. Im bardziej zagłębiamy się w poszukiwanie powodów, tym bardziej otwierają się one dla nas, a każdy wzięty powód lub cały szereg powodów wydaje nam się równie sprawiedliwy sam w sobie i równie fałszywy w swej nieistotności w porównaniu z ogromem zdarzenia i równie fałszywy w swej nieważności ( bez udziału wszystkich innych zbieżnych powodów) w celu spowodowania zaistniałego zdarzenia. Z tego samego powodu, co odmowa Napoleona wycofania swoich wojsk przez Wisłę i oddania księstwa Oldenburga, wydaje nam się chęć lub niechęć pierwszego kaprala francuskiego do podjęcia drugiej służby: bo gdyby nie chciał iść do służby i nie chciał innego, trzeci i tysięczny kapral i żołnierze, więc mniej ludzi byłoby w armii Napoleona, a wojna nie mogłaby być.
Gdyby Napoleon nie poczuł się urażony żądaniem wycofania się za Wisłę i nie rozkazał wojskom posunąć się naprzód, nie byłoby wojny; ale gdyby wszyscy sierżanci nie chcieli pełnić dodatkowej służby, nie byłoby też wojny. Nie byłoby też wojny, gdyby nie było intryg Anglii, nie byłoby księcia Oldenburga i poczucia zniewagi w Aleksandrze, nie byłoby władzy autokratycznej w Rosji, nie byłoby rewolucji francuskiej i wynikającej z niej dyktatury i imperium, i tak dalej. która dała początek rewolucji francuskiej i tak dalej. Bez jednego z tych powodów nic nie mogłoby się wydarzyć. Dlatego wszystkie te powody - miliardy powodów - zbiegły się w celu stworzenia tego, co było. I dlatego nic nie było wyłączną przyczyną tego zdarzenia, a zdarzenie powinno było nastąpić tylko dlatego, że musiało się wydarzyć. Miliony ludzi musiało, wyrzekając się swoich ludzkich uczuć i rozumu, udać się na wschód z Zachodu i zabić swoich, tak jak kilka wieków temu tłumy ludzi wędrowały ze Wschodu na Zachód, zabijając swoich.
Działania Napoleona i Aleksandra, na których słowach wydawało się, że wydarzenie się wydarzy, lub nie, były tak samo mało arbitralne, jak działania każdego żołnierza, który wziął udział w kampanii w drodze losowania lub rekrutacji. Nie mogło być inaczej, ponieważ aby wola Napoleona i Aleksandra (tych ludzi, od których zdawało się zależeć wydarzenie) została spełniona, niezbędny był zbieg okoliczności, bez których wydarzenie nie mogłoby się wydarzyć. Konieczne było, aby miliony ludzi, w których rękach była prawdziwa siła, żołnierze strzelający, niosący prowiant i broń, zgodzili się spełnić tę wolę ludzi izolowanych i słabych i byli do tego prowadzeni przez niezliczone złożone, różnorodne przyczyny.
Fatalizm w historii jest nieunikniony w wyjaśnianiu nieracjonalnych zjawisk (czyli takich, których racjonalności nie rozumiemy). Im bardziej staramy się racjonalnie wyjaśniać te zjawiska w historii, tym bardziej stają się one dla nas nierozsądne i niezrozumiałe.
Każdy żyje dla siebie, wykorzystuje wolność do osiągania osobistych celów i całym sobą czuje, że może teraz wykonać takie działanie lub nie; ale gdy tylko to zrobi, to działanie, dokonane w pewnym momencie, staje się nieodwracalne i staje się własnością historii, w której nie ma wolnego, ale z góry określonego znaczenia.
W każdym człowieku są dwie strony życia: życie osobiste, które jest bardziej wolne, tym bardziej abstrakcyjne są jego interesy, oraz życie spontaniczne, rojowe, w którym człowiek nieuchronnie wypełnia przypisane mu prawa.
Człowiek świadomie żyje dla siebie, ale służy jako nieświadomy instrument osiągania historycznych, uniwersalnych celów ludzkich. Czyn doskonały jest nieodwracalny, a jego działanie, zbiegające się w czasie z milionami działań innych ludzi, nabiera znaczenia historycznego. Im wyżej dana osoba znajduje się na drabinie społecznej, tym więcej osób jest z nią związanych, im większą ma władzę nad innymi, tym bardziej oczywiste jest z góry ustalenie i nieuchronność każdego jego działania.
„Serce Carewa jest w ręku Boga”.
Król jest niewolnikiem historii.
Historia, to znaczy nieświadome, powszechne, rojne życie ludzkości, wykorzystuje każdą minutę życia królów dla siebie jako narzędzie do własnych celów.
Napoleon, mimo że bardziej niż kiedykolwiek, teraz, w 1812 roku, wydawało się, że verser or not verser le sang de ses peuples [przelać lub nie przelać krwi swoich narodów] zależał od niego (jak w ostatnim liście, który do niego napisałem) Aleksander) nigdy bardziej niż teraz nie podlegał tym nieuniknionym prawom, które zmuszały go (działając w stosunku do siebie, jak mu się wydawało, według własnego uznania) do czynienia dla wspólnej sprawy, dla historii, tego, co powinno się wydarzyć.
Ludzie z Zachodu wyruszyli na wschód, aby się pozabijać. I zgodnie z prawem zbieżności przyczyn tysiące drobnych przyczyn tego ruchu i wojny zbiegły się z tym wydarzeniem: wyrzuty za nieprzestrzeganie systemu kontynentalnego i księcia Oldenburga oraz przemieszczenie wojsk do Prus, podjęte (jak się zdawało Napoleonowi) tylko po to, by osiągnąć zbrojny pokój, miłość i przyzwyczajenie cesarza francuskiego do wojny, zbiegające się z dyspozycją jego ludu, fascynacją wielkością przygotowań i kosztami przygotowań oraz potrzebą zdobycia takich korzyści, które pokryłyby te koszty, upajające zaszczyty w Dreźnie i negocjacje dyplomatyczne, które, zgodnie z poglądem współczesnych, kierowały się szczerym pragnieniem osiągnięcia pokoju i które tylko zraniły dumę jednej i drugiej strony oraz miliony innych powodów, fałszując wydarzenie, które miało nastąpić, zbiegające się z nim.
Kiedy jabłko jest dojrzałe i spada, dlaczego spada? Czy to dlatego, że grawituje na ziemi, bo pręt wysycha, bo wysycha na słońcu, bo robi się ciężki, bo nim wstrząsa wiatr, bo chłopak stojący na dole chce go zjeść?
Nic nie jest powodem. Wszystko to jest tylko zbiegiem okoliczności, w jakich zachodzi jakiekolwiek istotne, organiczne, elementarne wydarzenie. I botanik, który odkryje, że jabłko spada, ponieważ błonnik się rozkłada i tym podobne będą tak samo dobre i tak samo złe, jak dziecko stojące poniżej, które mówi, że jabłko spadło, ponieważ chciał zjeść go i że modlił się o to. Tak samo dobrze, jak i źle będzie ten, kto powie, że Napoleon pojechał do Moskwy, ponieważ tego chciał i ponieważ umarł, ponieważ Aleksander chciał swojej zagłady: jak dobry i zły będzie ten, który mówi, że ten, który spadł na milion pudów wykopana góra runęła, ponieważ ostatni robotnik uderzył pod nią po raz ostatni kilofem. W wydarzeniach historycznych tak zwani wielcy ludzie to etykiety, które nadają wydarzeniom nazwy, które podobnie jak etykiety mają najmniejszy związek z samym wydarzeniem.
Każde ich działanie, które wydaje im się samowolne, jest w sensie historycznym mimowolne, ale wiąże się z całym biegiem historii i jest odwieczne.

29 maja Napoleon opuścił Drezno, gdzie przebywał przez trzy tygodnie, otoczony dworem złożonym z książąt, książąt, królów, a nawet jednego cesarza. Przed wyjazdem Napoleon łaskawie traktował książąt, królów i cesarza, który na to zasługiwał, karcił królów i książąt, z których nie był w pełni zadowolony, przedstawiał własne, to znaczy wzięte od innych królów, perły i diamenty cesarzowej Austrii i czule obejmując cesarzową Marię Luizę, jak mówi jego historyk, zostawił ją z rozpaczliwym rozstaniem, którego ona - ta Marie Louise, uważana za jego żonę, mimo że inna żona pozostała w Paryżu - wydawała się nie do zniesienia. Pomimo tego, że dyplomaci nadal mocno wierzyli w możliwość pokoju i pilnie pracowali w tym kierunku, pomimo faktu, że sam cesarz Napoleon napisał list do cesarza Aleksandra, nazywając go Monsieur mon frere [suwerenny brat] i szczerze zapewniając, że nie chce wojnę i że zawsze będzie go kochał i szanował - jechał do wojska i wydawał nowe rozkazy na każdej stacji, aby pospieszyć armię z zachodu na wschód. Jechał bryczką ciągniętą przez szóstkę, otoczoną stronami, adiutantami i eskortą, drogą do Poznania, Ciernia, Gdańska i Królewca. W każdym z tych miast tysiące ludzi witało go z niepokojem i zachwytem.
Armia przemieszczała się z zachodu na wschód, a zmienne biegi przenosiły go tam. 10 czerwca dogonił wojsko i spędził noc w lesie Vilkovis w przygotowanym dla niego mieszkaniu na majątku polskiego hrabiego.
Następnego dnia Napoleon, wyprzedziwszy wojsko, podjechał powozem pod Niemen i w celu zbadania rejonu przeprawy przebrał się w polski mundur i zjechał na brzeg.
Widząc po drugiej stronie Kozaków (les Cosaques) i rozciągające się stepy (les Steppes), pośrodku których znajdowała się Moscou la ville sainte, [Moskwa, święte miasto], stolica tego podobnego państwa scytyjskiego, dokąd udał się Aleksander Wielki - Napoleon, nieoczekiwanie dla wszystkich i wbrew względom strategicznym i dyplomatycznym rozkazał ofensywę, a następnego dnia jego wojska zaczęły przekraczać Niemen.
12-go wczesnym rankiem wyszedł z namiotu rozbitego tego dnia na stromym lewym brzegu Niemna i spojrzał przez teleskop na strumienie swoich żołnierzy wypływające z lasu Vilkovis, rozlewające się po trzech mostach zbudowanych na Niemenie. Żołnierze wiedzieli o obecności cesarza, patrzyli na niego wzrokiem, a kiedy znaleźli na górze przed namiotem postać w surducie i kapeluszu, która oderwała się od jego świty, rzucili czapki, krzyczeli: „Vive l” Empereur! [Niech żyje cesarz!] - i jeden za inne wypływały bez zmęczenia, wszystko wypływało z ogromnego lasu, który ich dotychczas ukrywał i sfrustrowany przeszedł przez trzy mosty na drugą stronę.
- Na fera du chemin cette fois ci. O! quand il s "en mele lui meme ca chauffe ... Nom de Dieu ... Le voila! .. Vive l" Empereur! Les voila donc les Steppes de l "Asie! Vilain pays tout de meme. Au revoir, Beauche; je te Reserve le plus beau palais de Moscou. Au revoir! Bonne szansa ... L" as tu vu, l "Empereur? Vive l" Empereur! .. preur! Si on me fait gouverneur aux Indes, Gerard, je te fais ministre du Cachemire, c "est arrete. Vive l" Empereur! Vive! ożyj! ożyj! Les gredins de Cosaques, comme ils filent. Vive l "Empereur! Le voila! Le vois tu? Je l" ai vu deux fois comme jete vois. Le petit caporal ... Je l "ai vu donner la croix al" un des vieux ... Vive l "Empereur! .. [A teraz chodźmy! Och, jak on sam to weźmie, sprawa się zagotuje. Na Boga ... Oto on ... Hurra, cesarzu! oto one, azjatyckie stepy ... Ale paskudny kraj. Do widzenia, Boche. Zostawię ci najlepszy pałac w Moskwie. Do widzenia, życzę powodzenia. Widziałeś cesarza? Hurra! Jeśli uczynią mnie gubernatorem Indii, uczynię cię ministrem Kaszmiru ... Hurra! Cesarz Oto on! Widzicie go? Widziałem go dwa razy jak ty. Mały kapralu ... Widziałem, jak zawiesił krzyż jednemu ze starców ... Hurra, cesarzu!] - przemawiały głosy starych i młodych ludzi, najróżniejszych postaci i stanowisk w społeczeństwie. wszystkie twarze tych ludzi miały jeden wspólny wyraz radości na początku długo wyczekiwanego marszu oraz zachwyt i oddanie człowiekowi w szarym surducie stojącemu na górze.
13 czerwca Napoleon otrzymał małego, rasowego konia arabskiego, który usiadł i pojechał galopem do jednego z mostów przez Niemen, nieustannie ogłuszany entuzjastycznymi okrzykami, które najwyraźniej znosił tylko dlatego, że nie można było powstrzymać ich przed wyrażeniem swojej miłości do niego tymi okrzykami; ale te okrzyki, towarzyszące mu wszędzie, przygniatały go i odwracały jego uwagę od wojskowej troski, która go ściskała od chwili wstąpienia do armii. Przejechał przez jeden z mostów kołysząc się łódkami na drugą stronę, skręcił ostro w lewo i pogalopował w kierunku Kowna, poprzedzony przez rozentuzjazmowanych strażników konnych, zamarzających ze szczęścia, torujących drogę galopującym przed nim żołnierzom. Zbliżając się do szerokiej rzeki Wilii, zatrzymał się obok stojącego na brzegu polskiego pułku ułanów.
- Vivat! - krzyczeli też entuzjastycznie Polacy, przewracając front i miażdżąc się nawzajem, żeby go zobaczyć. Napoleon zbadał rzekę, zsiadł z konia i usiadł na kłodzie leżącej na brzegu. Na znak bez słów podano mu trąbkę, położył ją na odwrocie szczęśliwej kartki, która podbiegła i zaczęła patrzeć w drugą stronę. Potem zagłębił się w zbadanie arkusza mapy rozłożonego między kłodami. Nie podnosząc głowy, coś powiedział i dwóch jego adiutantów pogalopowało w stronę polskich ułanów.
- Co? Co on powiedział? - usłyszałem w szeregach ułanów polskich, gdy galopował do nich jeden adiutant.
Po znalezieniu brodu rozkazano przejść na drugą stronę. Polski pułkownik ułanów, przystojny starzec, zarumieniony i zmieszany słowami z podniecenia, zapytał adiutanta, czy mógłby przepłynąć rzekę ze swoimi ułanami bez szukania brodu. On, z wyraźnym strachem przed odmową, jak chłopiec proszący o pozwolenie na dosiadanie konia, w oczach cesarza poprosił o pozwolenie na przekroczenie rzeki. Adiutant powiedział, że prawdopodobnie cesarz nie byłby niezadowolony z tej nadmiernej gorliwości.
Gdy tylko adiutant to powiedział, stary, wąsaty oficer o radosnej twarzy i błyszczących oczach, unosząc miecz do góry, krzyknął: „Vivat! - i rozkazując ułanom iść za nim, oddał ostrogi konia i pogalopował do rzeki. Ze złością pchnął konia, który spadł pod nim i spadł do wody, kierując się w głąb lądu w kierunku rwącego prądu. Pogalopowały za nim setki ułanów. W środku i na gwałtownym nurcie było zimno i niesamowicie. Lansjerzy przylgnęli do siebie, spadli z koni, niektóre konie utonęły, ludzie utonęli, inni próbowali pływać, niektórzy na siodle, niektórzy trzymając się grzywy. Próbowali przepłynąć na drugą stronę i pomimo tego, że na pół mili było przeprawa, byli dumni, że pływali i tonęli w tej rzece pod okiem człowieka siedzącego na kłodzie i nawet nie patrząc na to, co robią. Kiedy powracający adiutant, wybierając dogodny moment, pozwolił sobie zwrócić uwagę cesarza na oddanie Polaków swojej osobie, mały człowieczek w szarym surducie wstał i, wzywając go do Berthiera, zaczął chodzić z nim po brzegu, wydając mu rozkazy i od czasu do czasu spoglądając z niezadowoleniem. na tonących ułanów, którzy przykuwali jego uwagę.
Nie było dla niego nowością przekonanie, że jego obecność na wszystkich krańcach świata, od Afryki po stepy moskiewskie, w równym stopniu uderza i pogrąża w szaleństwie samozapomnienia. Rozkazał przynieść sobie konia i pojechał na swój parking.
Czterdziestu ułanów utonęło w rzece, pomimo łodzi wysłanych na pomoc. Większość spłynęła z powrotem na ten brzeg. Pułkownik i kilka osób przepłynęło przez rzekę iz trudem przeszło na drugą stronę. Ale gdy tylko wysiedli w mokrej sukience, spryskali się na nich, spływając strumieniami, krzyczeli: „Vivat!”, Z entuzjazmem spoglądając na miejsce, w którym stał Napoleon, ale tam, gdzie go już nie było, iw tej chwili uważali się za szczęśliwych.
Wieczorem Napoleon, między dwoma rozkazami - jednym, aby jak najszybciej dostarczyć przygotowane fałszywe banknoty rosyjskie do importu do Rosji, a drugim strzelać do Sasa, w którego przechwyconym liście znaleziono informacje o rozkazach dla armii francuskiej, - złożył trzecie zamówienie - o rozliczeniu polskiego pułkownika, który niepotrzebnie rzucił się do rzeki, do kohorty honorowej (Legion d "honneur), której Napoleon był na czele.
Qnos vult perdere - dementat. [Kto chce zniszczyć - pozbawi go rozumu (łac.)]

Tymczasem rosyjski cesarz mieszkał w Wilnie już ponad miesiąc, dokonując przeglądów i manewrów. Nic nie było gotowe na wojnę, której wszyscy się spodziewali, i na przygotowania, do których cesarz przybył z Petersburga. Nie było ogólnego planu działania. Wahanie, który z proponowanych planów przyjąć, nasiliło się dopiero po miesięcznym pobycie cesarza w głównym apartamencie. Każda z trzech armii miała oddzielnego dowódcę naczelnego, ale nie było dowódcy generalnego nad wszystkimi armiami, a cesarz nie objął tego stopnia.
Im dłużej cesarz mieszkał w Wilnie, tym mniej przygotowywany do wojny, zmęczony czekaniem. Wydawało się, że wszystkie aspiracje ludzi otaczających władcę miały na celu jedynie sprawienie, by władca, dobrze się bawiąc, zapomniał o nadchodzącej wojnie.
Po wielu balach i świętach u polskich magnatów, u dworzan i u samego władcy, w czerwcu jeden z polskich generałów adiutantów suwerena wpadł na pomysł, by w imieniu jego adiutantów generalnych wydać panu obiad i bal. Pomysł ten został z radością przyjęty przez wszystkich. Cesarz wyraził zgodę. General Adjutants zbierał pieniądze w formie subskrypcji. Do roli gospodyni balu zaproszono osobę, która mogła być najprzyjemniejsza dla władcy. Hrabia Bennigsen, właściciel ziemski prowincji wileńskiej, zaoferował swój wiejski dom na te święta, a 13 czerwca zaplanowano obiad, bal, pływanie łódką i sztuczne ognie w Zakret, wiejskim domu hrabiego Bennigsena.
Tego samego dnia, w którym Napoleon wydał rozkaz przekroczenia Niemna i jego wysuniętych wojsk, odpierając Kozaków, przekroczył granicę rosyjską, Aleksander spędził wieczór na daczy Bennigsena - na balu wydanym przez adiutantów generała.
To były wesołe, wspaniałe wakacje; eksperci stwierdzili, że tak wiele piękności rzadko gromadzi się w jednym miejscu. Hrabina Bezuchowa wraz z innymi rosyjskimi damami, które przybyły po cesarza z Petersburga do Wilna, była na tym balu, zaciemniając wyrafinowane polskie damy swą ciężką, tak zwaną rosyjską urodą. Została zauważona, a cesarz zaszczycił ją tańcem.
Borys Drubetskoy, en garcon (kawaler), jak powiedział, zostawiając żonę w Moskwie, również był na tym balu i choć nie był adiutantem generalnym, uczestniczył za dużą sumę w abonamencie na bal. Borys był teraz bogatym człowiekiem, daleko zaszczytnym w zaszczytach, nie szukającym już ochrony, ale stojącym na równych nogach z najwyższymi ze swoich rówieśników.
O dwunastej rano nadal tańczyli. Helena, która nie miała godnego dżentelmena, sama ofiarowała Borysowi mazurka. Usiedli w trzeciej parze. Boris, patrząc chłodno na lśniące, nagie ramiona Heleny wystające z ciemnej gazy i złotej sukienki, opowiadał o starych znajomych, a jednocześnie niezauważony przez siebie i innych, ani przez sekundę nie przestawał obserwować władcy, który był w tym samym pokoju. Władca nie tańczył; stanął w drzwiach i zatrzymał jedno lub drugie tymi łagodnymi słowami, które tylko on mógł wypowiedzieć.
Na początku mazurka Borys zobaczył, że gen. Adiutant Balashev, jedna z najbliższych mu osób, podszedł do niego i stał nieruchomo blisko władcy, który rozmawiał z Polką. Po rozmowie z panią władca spojrzał pytająco i najwyraźniej zdając sobie sprawę, że Balashev zrobił to tylko z ważnych powodów, lekko skinął pani głową i zwrócił się do Balasheva. Gdy tylko Balashev zaczął mówić, na twarzy cesarza pojawiło się zdziwienie. Wziął Balasheva za ramię i przeszedł z nim przez korytarz, nieświadomie oczyszczając sążnie po obu stronach trzech szerokich ścieżek, które stały przed nim. Borys zauważył poruszoną twarz Arakczejewa, podczas gdy cesarz poszedł z Balashevem. Arakczejew, spoglądając na władcę i prychając czerwonym nosem, wyszedł z tłumu, jakby spodziewał się, że władca zwróci się do niego. (Borys zdał sobie sprawę, że Arakczejew był zazdrosny o Balasheva i był niezadowolony z faktu, że niektóre, oczywiście ważne, wiadomości nie zostały przekazane władcy przez niego.)
Ale cesarz i Balashev przeszli, nie zauważając Arakcheeva, przez drzwi wyjściowe do oświetlonego ogrodu. Arakczejew, trzymając miecz i rozglądając się ze złością, przeszedł za nimi dwadzieścia kroków.
Podczas gdy Borys nadal tworzył figury mazurka, dręczyła go myśl, jakie wiadomości przyniósł Balaszew i jak je poznać, zanim ktokolwiek inny.
Na figurze, na której musiał wybierać panie, szeptem do Heleny, że chce zabrać hrabinę Potocką, która wydawała się wychodzić na balkon, zsunął nogi po parkiecie, wybiegł drzwiami wyjściowymi do ogrodu i zauważył, że władca wchodził z Balaszewem na taras. , wstrzymany. Car i Balashev zmierzali do drzwi. Borys w pośpiechu, jakby nie mając czasu na odejście, z szacunkiem przycisnął się do nadproża i pochylił głowę.
Cesarz, z podekscytowaniem osobiście obrażonej osoby, zakończył słowami:
- Wjedź do Rosji bez wypowiadania wojny. Zawiążę pokój tylko wtedy, gdy na mojej ziemi nie pozostanie ani jeden uzbrojony wróg - powiedział. Borysowi wydawało się, że cesarz z przyjemnością wyraził te słowa: był zadowolony z formy wyrażania swoich myśli, ale był nieszczęśliwy, że Borys je usłyszał.
- Żeby nikt nic nie wiedział! Dodał cesarz marszcząc brwi. Borys zdał sobie sprawę, że dotyczy to go, i zamykając oczy, lekko przechylił głowę. Władca ponownie wszedł do sali i spędził na balu około pół godziny.
Borys jako pierwszy dowiedział się o przeprawie wojsk francuskich przez Niemen i dzięki temu miał okazję pokazać niektórym ważnym osobom, że wiele z nich przed innymi ukrywał, a przez to miał okazję wznieść się wyżej w opinii tych osób.

Nieoczekiwana wiadomość o francuskim przekroczeniu Niemna była szczególnie nieoczekiwana po miesiącu niespełnionych oczekiwań i na balu! Władca w pierwszej minucie odbioru wiadomości, pod wpływem oburzenia i zniewagi, uznał to, co później stało się sławne, powiedzenie, które sam lubił iw pełni wyrażał swoje uczucia. Wracając z balu do domu, władca o drugiej nad ranem wysłał po sekretarza Szyszkowa i kazał mu napisać rozkaz dla żołnierzy i reskrypt do feldmarszałka księcia Saltykowa, w którym z pewnością zażądał umieszczenia w nim słów, że nie zawrze pokoju do co najmniej jednego. uzbrojony Francuz pozostanie na rosyjskiej ziemi.
Następnego dnia do Napoleona został napisany następujący list.
„Monsieur mon frere. J "ai Appris hier que malgre la loyaute avec laquelle j" ai maintenu mes Engagements envers Votre Majeste, ses troupes ont franchis les frontieres de la Russie, et je recois al "instant de Petersbourg une par laquelle le comte Lauriston, pour Caus de cette agression, annonce que Votre Majeste s "est consideree comme en etat de guerre avec moi des le moment ou le prince Kourakine a fait la demande de ses passeports. Les motifs sur lesquels le duc de Bassano fondait son refus de les lui delivrer, n "auraient jamais pu me faire suposer que cette demarche servirait jamais de pretexte a l" agression. En effet cet ambassadeur n "y a jamais ete autorise comme il l" a decre lui meme, et aussitot que j "en fus informe, je lui ai fait connaitre combien je le desapprouvais en lui donnant l" ordre de rester a son poste. Si Votre Majeste n "est pas intennenee de verser le sang de nos peuples pour un malentendu de ce genre et qu" elle zgodye a retirer ses troupes du territoire russe, je refererai ce qui s "est passe comme non avenu, et un accomement entre nous sera possible.Dans le cas contraire, Votre Majeste, je me verrai force de repousser une attaque que rien n "a provoquee de ma part. Il depend encore de Votre Majeste d "eviter a l" humanite les calamites d "une nouvelle guerre.
Je suis itp.
(signe) Alexandre. "
[„Suwerenny brat! Wczoraj dotarło do mnie, że pomimo szczerości, z jaką wypełniałem swoje zobowiązania wobec Waszej Cesarskiej Mości, Wasze wojska przekroczyły granice Rosji i dopiero teraz otrzymały z Petersburga notatkę, w której hrabia Lauriston zawiadamia mnie o tej inwazji: że Wasza Wysokość uważa, że \u200b\u200butrzymuje ze mną wrogie stosunki od czasu, gdy książę Kurakin zażądał paszportów. Powody, na których książę Bassano odmówił wydania tych paszportów, nigdy nie mogły skłonić mnie do przypuszczenia, że \u200b\u200bpretekstem do ataku był akt mojego ambasadora. W rzeczywistości nie otrzymał ode mnie polecenia, jak sam zapowiedział; a gdy tylko się o tym dowiedziałem, natychmiast wyraziłem niezadowolenie księciu Kurakinowi, nakazując mu wypełnienie powierzonych mu obowiązków jak poprzednio. Jeśli Wasza Wysokość nie będzie skłonna przelać krwi naszych poddanych z powodu takiego nieporozumienia i jeśli zgodzisz się wycofać swoje wojska z posiadłości rosyjskich, to zignoruję wszystko, co się wydarzyło, a porozumienie między nami będzie możliwe. W przeciwnym razie będę zmuszony odeprzeć atak, który nie został zainicjowany przez nic z mojej strony. Wasza Wysokość, nadal masz możliwość uratowania ludzkości przed plagą nowej wojny.
(podpis) Alexander ”. ]

13 czerwca o godzinie drugiej nad ranem władca wezwał Balasheva i przeczytawszy mu list do Napoleona, nakazał mu odebrać ten list i osobiście przekazać go cesarzowi francuskiemu. Wysyłając Balasheva, władca powtórzył mu swoje słowa, że \u200b\u200bnie zawrze pokoju, dopóki przynajmniej jeden uzbrojony wróg pozostanie na rosyjskiej ziemi, i rozkazał mu bezbłędnie przekazać te słowa Napoleonowi. Cesarz nie zapisał tych słów w swoim liście, ponieważ swoim taktem czuł, że słowa te były niewygodne do przekazania w chwili, gdy podejmowano ostatnią próbę pojednania; ale z pewnością rozkazał Balashevowi osobiście przekazać je Napoleonowi.
Wyjeżdżając w nocy z 13 na 14 czerwca, Balashev w towarzystwie trębacza i dwóch Kozaków dotarł o świcie do wsi Rykonty, do francuskich przyczółków po tej stronie Niemna. Został zatrzymany przez wartowników francuskiej kawalerii.
Francuski podoficer husarski, w szkarłatnym mundurze i kudłatym kapeluszu, krzyknął na zbliżającego się Balasheva, nakazując mu się zatrzymać. Balashev nie zatrzymał się od razu, ale kontynuował krok po kroku wzdłuż drogi.
Podoficer, marszcząc brwi i narzekając na jakieś przekleństwo, ruszył klatką piersiową konia na Balasheva, wziął swoją szablę i krzyknął niegrzecznie na rosyjskiego generała, pytając go, czy jest głuchy, że nie słyszy, co do niego mówi. Balashev przedstawił się. Podoficer wysłał żołnierza do oficera.
Nie zwracając uwagi na Balasheva, podoficer zaczął rozmawiać ze swoimi towarzyszami o swoich sprawach pułkowych i nie patrzył na rosyjskiego generała.
Niezwykle dziwne było, że Balashev, po bliskości z najwyższą władzą i władzą, po rozmowie trzy godziny temu z władcą i ogólnie przyzwyczajonym do zaszczytów w jego służbie, zobaczyć tutaj, na rosyjskiej ziemi, ten wrogi i, co najważniejsze, lekceważący stosunek brutalnej siły do \u200b\u200bsiebie.
Słońce właśnie zaczynało wschodzić zza chmur; powietrze było świeże i wilgotne. Po drodze wypędzono stado z wioski. Na polach jeden po drugim, jak bąbelki w wodzie, skowronki spryskały się brzękiem.
Balashev rozejrzał się wokół, spodziewając się przybycia oficera z wioski. Rosyjscy kozacy, trębacz i francuscy husaria od czasu do czasu spoglądali na siebie w milczeniu.
Francuski pułkownik husarii, najwyraźniej właśnie wstający z łóżka, opuścił wioskę na pięknym, dobrze odżywionym siwym koniu w towarzystwie dwóch husarii. Oficer, żołnierze i ich konie wyglądali na zadowolonych i z polotem.
To był pierwszy raz w kampanii, kiedy wojska były nadal w dobrym stanie, prawie dorównującym obserwacjom, pokojowym działaniom, tylko z odrobiną eleganckiej wojowniczości w ubraniu i moralnym akcentem tej zabawy i przedsiębiorczości, które zawsze towarzyszą początkowi kampanii.
Francuski pułkownik z trudem powstrzymał ziewnięcie, ale był uprzejmy i najwyraźniej rozumiał pełne znaczenie Balasheva. Prowadził go obok swoich żołnierzy za łańcuch i powiedział, że jego pragnienie, by zostać przedstawionym cesarzowi, prawdopodobnie zostanie natychmiast spełnione, ponieważ apartament cesarski, o ile wiedział, nie był daleko.
Przejechali obok wsi Rykonty, obok francuskich huzarów, wartowników i żołnierzy salutujących pułkownikowi iz zaciekawieniem oglądających rosyjski mundur, po czym przejechali na drugą stronę wioski. Według pułkownika, dowódca dywizji znajdował się dwa kilometry dalej, który miał przyjąć Balasheva i eskortować go do celu.
Słońce już wzeszło i wesoło oświetliło jasną zieleń.
Właśnie wyszli z tawerny na górze, gdy spod góry pojawiła się grupa jeźdźców, przed którą na czarnym koniu z lśniącą w słońcu uprzężą jechał wysoki mężczyzna w kapeluszu z piórami i czarnymi włosami zwiniętymi do ramion, w czerwonej szacie i długie nogi wystające do przodu, jak we francuskiej jeździe. Ten człowiek pędził galopem w stronę Balasheva, błyszcząc i trzepocząc w jasnym czerwcowym słońcu piórami, kamieniami i złotymi warkoczami.
Balashev był już o dwa konie dalej od jeźdźca w bransoletach, piórach, naszyjnikach i złotym galopie galopującym ku niemu z poważną teatralną twarzą, kiedy francuski pułkownik Yulner szepnął z szacunkiem: „Le roi de Naples”. [Król Neapolu]. Rzeczywiście, był to Murat, obecnie nazywany królem Neapolu. Chociaż było zupełnie niezrozumiałe, dlaczego był królem Neapolu, tak go nazywano, a on sam był o tym przekonany i dlatego miał bardziej uroczysty i ważny wygląd niż wcześniej. Był tak pewien, że jest naprawdę neapolitańskim królem, że kiedy w przeddzień wyjazdu z Neapolu, podczas spaceru z żoną ulicami Neapolu, kilku Włochów krzyczało do niego: „Viva il re!” [Niech żyje król! (Włoski)] zwrócił się do żony ze smutnym uśmiechem i powiedział: „Les malheureux, ils ne savent pas que je les quitte demain! [Nieszczęśliwi, nie wiedzą, że jutro ich opuszczam!]
Ale pomimo tego, że mocno wierzył, że jest królem neapolitańskim i że żałował smutku swoich poddanych, którzy ich opuszczali, niedawno, po tym, jak otrzymał polecenie ponownego wstąpienia do służby, a zwłaszcza po spotkaniu z Napoleonem. w Gdańsku, kiedy dostojny szwagier powiedział do niego: „Je vous ai fait Roi pour regner a maniere, mais pas a la votre”, [uczyniłem cię królem, aby panować nie po swojemu, ale moim zdaniem.] - zaczął wesoło w interesach mu znanych i jak koń, który został zjedzony, ale nie miał nadwagi, zdatny do służby, wyczuwający się w uprzęży, bawił się w szybach i wypuszczał tak jasno i kosztownie, jak to możliwe, wesoły i zadowolony, galopował, nie wiedząc gdzie i dlaczego, po drogach Polska.
Widząc rosyjskiego generała, odrzucił do tyłu głowę z włosami zwiniętymi do ramion w królewski, uroczysty sposób i spojrzał pytająco na francuskiego pułkownika. Pułkownik z szacunkiem przekazał swemu majestatowi znaczenie Balaszewa, którego imienia nie potrafił wymówić.

Sekcja jest bardzo łatwa w użyciu. W proponowanym polu wpisz żądane słowo, a my podamy Ci listę jego znaczeń. Chciałbym zauważyć, że nasza strona zawiera dane z różnych źródeł - słowniki encyklopedyczne, objaśniające, pochodne. Również tutaj możesz zapoznać się z przykładami użycia wpisanego słowa.

Znaczenie słowa podstawowy

bASIC w słowniku krzyżówek

podstawowy

Słownik encyklopedyczny, 1998

podstawowy

BASIC (BASIC; od pierwszych liter angielskich słów Beginners - for beginners, All-Purpose - Universal, Symbolic - symbolic, Instruction - Educational, Code - code) to język programowania nastawiony na nauczanie podstaw programowania. Służy głównie do programowania na komputerach osobistych.

Wikipedia

PODSTAWOWY

Podstawowy (z PODSTAWOWY, skrót od - uniwersalny symboliczny kod instrukcji dla początkujących) - rodzina języków programowania wysokiego poziomu.

Został opracowany w 1964 roku przez profesorów Dartmouth College Thomasa Kurza i Johna Kemeny'ego.

Język powstał jako narzędzie, za pomocą którego studenci niebędący programistami mogli samodzielnie tworzyć programy komputerowe do rozwiązywania swoich problemów. Rozpowszechnił się w postaci różnych dialektów, głównie jako język komputerów domowych. Do tej pory przeszedł znaczące zmiany, znacznie odchodząc od prostoty charakterystycznej dla pierwszych wersji, granicząc z prymitywizmem i zmieniając się w dość zwyczajny język wysokiego poziomu z typowym zestawem możliwości. Jest używany jako niezależny język do tworzenia aplikacji, głównie działających pod różnymi wersjami systemu operacyjnego Windows. Jest również szeroko stosowany jako język wbudowany w systemy oprogramowania użytkowego do różnych celów oraz jako język programowalnych kalkulatorów.

PODSTAWOWY (ujednoznacznienie)

PODSTAWOWY, Podstawowy:

  • Podstawowy angielski to międzynarodowy sztuczny język oparty na języku angielskim.
  • BASIC to język programowania wysokiego poziomu.
  • BASIC to radziecki komputer domowy z początku lat 90., klon ZX Spectrum.
  • BASIC Vilnius to implementacja języka programowania BASIC dla komputerów 16-bitowych z procesorami PDP-11.

Przykłady użycia słowa BASIC w literaturze.

Spacje w ciągu znaków są uwzględniane wyłącznie dla wygody programisty - PODSTAWOWY ignoruje je.

Zwróć na to uwagę PODSTAWOWY ma własną zmienną, która przechowuje bieżącą pozycję kursora.

Jeśli włączysz procedurę asemblera, która zmienia położenie kursora, to PODSTAWOWY zignoruje nową pozycję kursora po zwróceniu kontroli.

Zwróć na to uwagę PODSTAWOWY zwykle wyłącza kursor podczas uruchamiania programu.

O ile PODSTAWOWY nie zezwala na liczby binarne, do określenia atrybutów wymagana jest pewna manipulacja.

Kiedy PODSTAWOWY konwertuje znak do postaci szesnastej, a następnie zwraca tylko jedną cyfrę, jeśli pierwsza była wartością , więc usunięta wartość null musi zostać przywrócona, aby ta metoda działała poprawnie.

Języki wysokiego poziomu, takie jak kapk PODSTAWOWYtworzyć te obszary automatycznie.

Domyślna PODSTAWOWY ustawia liczbę buforów na 8, ale możesz zmienić tę liczbę na inną z 4 na 15.

PODSTAWOWY, automatycznie wykonaj prace przygotowawcze do operacji na plikach.

Języki wysokiego poziomu, takie jak PODSTAWOWY, wstaw te znaki automatycznie, podczas gdy programy asemblerowe muszą zadbać o wstawianie tych znaków po zapisaniu każdej zmiennej do pliku.

Chociaż w niektórych przypadkach PODSTAWOWY wybacza niezamknięte pliki, ale tak nie jest.

W plikach bezpośredniego dostępu PODSTAWOWY traktuje wszystkie zmienne - w tym numeryczne - jako łańcuchy.

Można jednak ustawić obsługę błędów tak, aby w przypadku wystąpienia błędu krytycznego PODSTAWOWY automatycznie postępował zgodnie z utworzoną procedurą odzyskiwania po awarii.

Podczas wykonywania tej procedury PODSTAWOWY przenosi kontrolę z sekwencji instrukcji składających się na program do PODSTAWOWYe, do miejsca, w którym przechowywane są instrukcje, które mogą być dekodowane na sekwencję instrukcji języka asemblera.

Typowym rozwiązaniem tego problemu jest umieszczenie procedury w tych adresach pamięci, do których PODSTAWOWY brak dostępu.

Cel lekcji:

    Zapoznanie studentów z podstawami języka BASIC. Sprawdź wiedzę z poprzedniej lekcji. Wspieranie umiejętności słuchania nauczyciela. Rozwój zainteresowań poznawczych.

Plan lekcji:

Sprawdzenie pracy domowej. Wyjaśnienie nowego materiału. Podstawowe pojęcia dotyczące języka Zadanie domowe. Podsumowując lekcję.

Podczas zajęć

Sprawdzenie pracy domowej.

Wyznaczanie celów lekcji.

Wyjaśnienie nowego materiału.

Podstawowy język programowania został stworzony w 1964 roku przez dwóch profesorów z University of Dartmoon, Johna Kenemy i Thomasa Kurtza. BASIC to pierwsza litera angielskich słów Uniwersalny symboliczny kod instrukcji dla początkujących. Obecnie istnieje wiele wersji tego języka, czasem bardzo różniących się od siebie. W przypadku instytucji edukacyjnych najpopularniejszymi wersjami jest MSX , po raz pierwszy zaimplementowany na japońskim komputerze „Yamaha”, oraz wersja Microsoftu na komputery IBM. Ponadto w naszym kraju popularna jest wersja Turbo-Basic Borlanda. Bez przesady można powiedzieć, że dziś BASIC jest najbardziej rozpowszechnionym językiem programowania. Po pojawieniu się potężnych kompilatorów Visual Basic, ten język stał się popularny wśród profesjonalnych programistów. BASIC odnosi się do języków programowania wysokiego poziomu, podobnie jak inne języki, ten język ma alfabet, składnię, semantykę.

Alfabet języka. Alfabet podstawowy to tablica znaków ASCII. Pierwsza połowa tej tabeli (znaki o kodzie 0-127) jest standardowa. Druga połowa (znaki o kodzie 128-255) jest specyficzna dla każdego kraju. W tej tabeli każdy znak ma 8-bitowe oznaczenie. Tak więc alfabet języka podstawowego zawiera wszystkie wielkie i małe litery alfabetu angielskiego i rosyjskiego, cyfry, a także zestaw znaków specjalnych dostępnych na klawiaturze komputera.

Zmienne. W języku BASIC wyróżnia się zmienne następujących typów:

    zmienne numeryczne; zmienne symboliczne; zmienne typu niestandardowego (rekordy); zmienne tablicowe.

Zmienna to wartość, która może się zmieniać podczas wykonywania programu. Oprócz wskazanych w tabeli w zapisie ekspozycji zapisywane są również liczby całkowite, na przykład

2,55,105 \u003d 2,55E5; 7,15,10-7 \u003d 7,15E-7

Program w języku BASIC przetwarza dane dwóch typów - numeryczne i symboliczne. Każda liczba jest reprezentowana w maszynie przez jakąś kombinację bitów. Dowolną liczbę można przedstawić na różne sposoby w samochodzie:

Liczba całkowita z zakresu od -32768 do 32768; długa liczba całkowita z zakresu od - do; liczby rzeczywiste o zwykłej precyzji; liczby rzeczywiste o podwójnej precyzji;

Dane mogą być reprezentowane przez zmienne i stałe.

Zmienne. Znasz już pojęcie zmiennej z lekcji algebry. Na przykład w prostej równości algebraicznej c \u003d f + 2b - 5 wartość zmienna z zależy od wartości zmiennej f i b wskazanej po prawej stronie równości. Na przykład dla f \u003d 2 i b \u003d 6, c \u003d 9 .

Tę samą równość można zapisać w programie w języku BASIC.

c \u003d f + 2 * b - 5

Pod względem języka BASIC do , fa i b Są nazwami zmiennych. Takie imiona są również nazywane identyfikatory.

Identyfikatory... W języku BASIC identyfikator to dowolny zestaw znaków, który może zawierać od 1 do 40 znaków, a pierwszy znak musi być literą łacińską, a pozostałe muszą być łacińskimi literami lub cyframi lub symbolami, takimi jak @, #,% i. itp.

Przykład :

A, Ds, SodRan, k1, n123, dlina!

Typ identyfikatora w języku BASIC jest rozpoznawany po ostatnim znaku w nazwie zmiennej.

% jest liczbą całkowitą;
& jest długą liczbą całkowitą;
! - rzeczywista liczba zwykłej precyzji;
# - liczba rzeczywista podwójnej precyzji;
$ to typ znaku.

W BASIC-u istnieje inny sposób opisania typów zmiennych (qbasic). Jeśli umieścisz polecenie: DEFINT I - L na początku programu, to wszystkie zmienne, których nazwy zaczynają się od litery I i leżą w zakresie do litery L, będą uważane za liczby całkowite (INTEGER).

Ogólny format polecenia opisu typu to:

DEFINT X-X (liczby całkowite) DEFLNG X-X (długie długie liczby całkowite) DEFSNG X-X (liczby rzeczywiste, pojedyncze) DEFDBL X-X (liczby rzeczywiste) DEFSTR X-X (ciąg znaków)

Stałe. Stałe, zarówno numeryczne, jak i symboliczne, to wartości, które nie zmieniają się podczas wykonywania programu.

Na przykład:

p \u003d 3,1415
T $ \u003d "Szkoła Skorodnianskaya"
A \u003d 9575
m $ \u003d "Harmonogram tygodniowy"

Zapisane stałe są czasami nazywane dosłowne. Jeśli chodzi o stałe, pamiętaj o zasadach:

Separatorem jest przecinek dziesiętny; wartości stałych znakowych są ujęte w cudzysłów.

Liczby mogą być wpisywane wykładniczyformularz, na przykład:

0,0285 \u003d 2,85E-2 lub 0,0285 \u003d 2,85 D-2
784,527 \u003d 7,84E + 2
lub 784,527 \u003d 7,84 D + 2

Liczby zapisane w formie wykładniczej przedstawiają iloczyn mantysy o rząd wielkości, to znaczy o 10 do potęgi –2, +2 itd. Litera E jest używana do liczb rzeczywistych o zwykłej precyzji, a litera D do liczb rzeczywistych o podwójnej precyzji.

Nazwane stałe. Jeśli przypiszesz wartość do zmiennej (numerycznej lub symbolicznej) i nie zmieniasz tych wartości w przyszłości, na przykład:

F3 \u003d 60, n% \u003d 15

CONST <имя_переменной = константа, имя переменной = константе>

Na przykład: CONST F2 \u003d 60, n% \u003d 15

Wyrażenia i operacje. Wywoływana jest sekwencja operacji, które należy wykonać na danych, aby uzyskać wymaganą wartość wyrażenie.W BASICu istnieje pięć kategorii operacji:

Działania arytmetyczne; Operacje na relacjach; Operacje logiczne; Operacje funkcjonalne; Operacje na łańcuchach.

Działania arytmetyczne.

Nazwa operacji

znak
w mat.

zaloguj się BASIC

Przykład w
matematyka.

Przykład w
PODSTAWOWY

Potęgowanie

-

^

25

2^5

Dodanie

+

+

5+10

5+10

Odejmowanie

-

-

a-b

a-b

Mnożenie

x; ...

*

2.5

2*5

Podział

:

/

10:2

10/2

Operacje na relacjach.

Funkcjonować jest predefiniowaną operacją na danych. W BASICu istnieją dwa rodzaje funkcji: wbudowane i zdefiniowane przez użytkownika.

Wbudowane funkcje matematyczne

Nazwa funkcji

Pisanie z matematyki

Nagrywanie PODSTAWOWE

Przykład w języku BASIC

Całkowita wartość

Wystawca

Naturalny logarytm.

Reszta z dzielenia liczb całkowitych (MOD)

19 MOD 6.7

Pierwiastek kwadratowy

Zatoka

SIN (3,14)

Cosinus

Tangens

Arctangent

Znak wyrażenia liczbowego

Wszystkie inne funkcje trygonometryczne, a także funkcje hiperboliczne, są określane przez dobrze znane wzory matematyczne, na przykład ARCSIN (X) \u003d ATN (X / SQR (1-X ^ 2)) .

Podczas rozwiązywania problemów bardzo często używane są dwie dodatkowe funkcje.

1.RND (1) - generator liczb losowych, który ustawia liczby losowe z przedziału od 0 do 1.

Przykład:

Wpisz losową liczbę od 1 do 100. (liczba naturalna).

N \u003d (RND (1) * 100 + 1)

2. INT (wyrażenie numeryczne) - funkcja ta odrzuca część ułamkową podczas dzielenia liczb.

Przykład:

W pierwszym przykładzie liczby N od 1 do 100 muszą być naturalne.

N \u003d INT (RND (1) * 100 + 1)

Funkcja użytkownika.

W przypadkach, gdy funkcja nie jest elementarna lub ma kilka argumentów, wygodnie jest użyć funkcji użytkownika: DEF FN.Nazwa funkcji musi zawsze zaczynać się od liter FN. DEF FN nie może być rekurencyjny (nie może wywoływać samego siebie) i musi być zdefiniowany przed użytkownikiem.

Przykład:

Niech X i Y będą liczbami naturalnymi. R to reszta z dzielenia X przez Y. Wyraź R (X, Y) - funkcja R X i Y.

R \u003d X - INT (X / Y) * Y - pozostała część podziału X na Y
DEF FN R (X, Y) \u003d X-Y * INT (X / Y)

W tym przykładzie R (X, Y) jest funkcją dwóch argumentów.

Pisanie wyrażeń matematycznych w języku BASIC.

Każde wyrażenie matematyczne w języku BASIC jest zapisywane jako łańcuch. Aby ocenić to wyrażenie, po prostu napisz PRINT lub?

Oblicz:

https://pandia.ru/text/78/020/images/image003_37.gif "alt \u003d" (! LANG: Formuła" width="121" height="42 src=">!}

DRUKUJ (SIN (47 * PI / 180) -COS (78 * PI / 180) ^ 2) / (EXP (1.5) -SIN (13 * PI / 180))

Zapisz następujące wyrażenia w języku BASIC:

  • Programowanie dla systemu Windows
  • DONKEY.BAS. Dołączony do IBM PC w 1981 roku. Współautorstwo: Bill Gates

    Nazwa BASIC pochodzi od uniwersalnego symbolicznego kodu instrukcji dla początkujących, co dosłownie oznacza „uniwersalny symboliczny język instrukcji dla początkujących”. Dzieje się tak w przypadku, gdy dosłowne tłumaczenie dokładnie oddaje istotę. nie tylko jego prostota, ale także umiejętność znajdowania rozwiązań problemów w trybie dialogu z komputerem.

    Dla wielu komputerów późnych lat 60-tych BASIC był jedynym językiem programowania ogólnego przeznaczenia wysokiego poziomu, co z czasem doprowadziło do pojawienia się różnych jego modyfikacji. Punktem zwrotnym w rozwoju języka było pojawienie się Visual Basic.

    tło

    W połowie lat 50. rola programowania w kodach maszynowych zaczęła się zmniejszać. Pojawiły się języki wyższego poziomu - Fortran, Algol, Cobol i tak dalej.

    Pierwszym z nich i jednym z najczęstszych był FORTRAN (od FORmula TRANslator - tłumacz formuł), opracowany przez grupę programistów iBM w 1954 roku (pierwsza wersja). W tym języku skoncentrowano się na obliczeniach naukowych i technicznych o charakterze matematycznym.

    Nazwa języka Algol (ALGOrithmic Language), którego pierwsza wersja pojawiła się w 1958 roku, podkreśla fakt, że jest on przeznaczony do pisania algorytmów. Ze względu na swoją przejrzystą strukturę logiczną stał się Algol standardowe środki zapisy algorytmów w literaturze naukowej i technicznej.

    W tamtych czasach języki programowania wysokiego poziomu charakteryzowały się orientacją przedmiotową. Ponadto takie języki były zbyt trudne dla początkujących programistów, zwłaszcza jeśli nie byli inżynierami. Dlatego jest rzeczą naturalną, że z czasem pojawił się język programowania dla „zwykłych śmiertelników”.

    PODSTAWOWY. Po prostu BASIC

    Z pomysłem stworzenia tego języka programowania związana jest słynna historia o angielskim misjonarzu.
    W XIX wieku angielski misjonarz, który szukał możliwości ułatwienia i uproszczenia kontaktu z tubylcami, wpadł na genialny pomysł - wyodrębnić z języka angielskiego jego najprostszą jego część, która praktycznie nie ma gramatyki i zawiera około 300 najczęściej używanych słów. Ten okrojony podgatunek języka angielskiego nazwano BASIC ENGLISH i jak pokazała praktyka, okazał się bardzo łatwy do nauczenia i szybko zyskał popularność nie tylko wśród rdzennej ludności, ale także wśród imigrantów, dla których angielski nie był ich językiem ojczystym.
    Sto lat później podobną drogą poszli pracownicy wydziału matematyki Dartmouth College. Postanowili ułatwić interakcję między komputerem a laikiem za pomocą „uproszczonego” języka programowania.

    W 1964 roku Thomas Kurtz i John Kameni stworzyli specjalistyczny język programowania składający się z prostych angielskich słów. Nowy język został nazwany BASIC.

    Używali go, aby uczyć studentów umiejętności programowania. Język okazał się na tyle prosty i zrozumiały, że po pewnym czasie zaczęli go używać w innych placówkach edukacyjnych.

    Poważny wpływ na BASIC miały Fortran II i Algol 60. Dodatkowo programiści zaimplementowali mechanizmy pracy z systemami z podziałem czasu, a także przetwarzanie tekstu i arytmetykę macierzową. Kompilator języka został pierwotnie napisany dla mainframe'a GE-265.

    Kwitnący

    W latach 70. pojawiły się bardziej kompaktowe komputery (komputery PC). Bill Gates i Paul Allen, założyciele Microsoft, wykorzystali tę okoliczność.

    Stworzyli nową wersję BASICa dla pierwszych komputerów Altair (MITS Altair), zdolnych do pracy w 4 KB pamięci RAM. Z biegiem czasu ta wersja stała się jednym z najpopularniejszych języków programowania na świecie.


    Altair

    Okres największego rozkwitu i rozwoju oryginalnego BASICa można uznać za późne lata siedemdziesiąte - pierwszą połowę lat osiemdziesiątych. Jego wersje pojawiły się na innych platformach i wkrótce zaczęły się rozchodzić w milionach egzemplarzy z różnego rodzaju zmianami i ulepszeniami. Jedną z najpopularniejszych wersji był Applesoft BASIC, który stał się standardowym językiem w Apple II.

    Applesoft BASIC został napisany przez Microsoft jako zamiennik systemu Integer BASIC używanego w pierwszym Apple II i miał bardzo ograniczone możliwości. Applesoft BASIC został wgrany do ROM wszystkich modeli Apple II od czasu Apple II + i wszystkich klonów Apple II. Również wcześniejsza, okrojona wersja Applesoft BASIC była dostępna na kasetach dla pierwszego modelu Apple II.

    Dla systemu operacyjnego CP / M powstał dialekt BASIC-80, który przez długi czas determinował rozwój języka.

    Kiedy pojawiły się pierwsze komputery osobiste IBM PC, to on stał się standardem w programowaniu, ale już w postaci GW-Basic.

    W połowie lat osiemdziesiątych język BASIC stał się dominującym językiem w wyrafinowanych modelach programowalnych kalkulatorów, które do tego czasu osiągnęły moc pełnego języka wysokiego poziomu. BASIC został wbudowany w radziecki kalkulator MK-85 Electronics i wszystkie jego późniejsze modele.

    Również w 1985 roku pojawiło się IDE Quick Basic - zintegrowane środowisko programistyczne i kompilator języka programowania BASIC, opracowane przez Microsoft w latach 1985-1988. Były wersje dla DOS i Mac OS. Używany dialekt BASIC był oparty na ulepszonym dialekcie GW-BASIC: zaimplementowano obsługę typów zdefiniowanych przez użytkownika, strukturalne konstrukcje programistyczne, a także znacznie rozszerzono obsługę operacji graficznych i dyskowych.

    Robert „Bob” Zeil stworzył Turbo Basic w 1987 roku w oparciu o swoje wieloletnie prace nad BASIC / Z, a następnie sprzedał go firmie Borland. Został uznany za jeden z najważniejszych produktów tego roku przez magazyn Infoworld.

    W przeciwieństwie do większości implementacji BASIC z tamtego okresu, Turbo Basic był kompletnym kompilatorem, który generował natywny kod MS-DOS.

    Pomimo ogromnej liczby wersji języka BASIC, przy tworzeniu nowej wersji języka zawsze zachowywano zgodność z poprzednimi wersjami: z programem napisanym dla wcześniejszych wersji całkiem możliwe (czasem z niewielkimi zmianami) była praca w kolejnych wersjach tego języka.

    Drugie życie

    Na początku lat 90. pojawił się system operacyjny Microsoft Windows z nowym graficznym interfejsem użytkownika.

    Tworzyć prosty program, programiści musieli napisać kilka stron kodu: napisać obszerne bloki kodu dla menu i okien, czcionki, wyczyścić pamięć, przyciski „rysuj” itp. Jednak zalety nowego interfejsu były dość mocne, a Windows miał realne szanse stać się popularnym wszędzie.

    Microsoft zrozumiał, że trzeba było w jakiś sposób ułatwić życie programistom. Dlatego firma uruchomiła kilka równoległych projektów, aby stworzyć nowy język programowania i środowisko programistyczne dla systemu Windows.

    BASIC otrzymał swoje drugie życie, gdy Microsoft wypuścił Visual Basic. Stał się logicznym zakończeniem ewolucji języka i pomimo zachowania zwykłych słów kluczowych, pod względem struktury i zestawu możliwości był bliższy Pascalowi niż oryginalnemu BASICowi.

    W 1991 roku została wydana pierwsza wersja nowego środowiska Microsoft Visual Basic IDE. Jednak w tamtym momencie Microsoft raczej skromnie oceniał możliwości tego systemu, kierując go jednak na kategorię programistów początkujących i nieprofesjonalnych.

    Oczywiście był to dopiero pierwszy krok, gdyż firma Billa Gatesa planowała umocnić pozycję Windowsa na rynku. A byłoby to bardzo trudne, pozostawiając komercyjnych programistów bez skutecznych narzędzi do tworzenia aplikacji dla MS Windows.

    System programowania stworzony przez twórców Visual Basic umożliwił abstrahowanie od wewnętrznej struktury Windows. Menu, okna, listy, przyciski, pola tekstowe i inne elementy interfejsu Windows zostały dodane do programu za pomocą najprostszych operacji przeciągnij i upuść, a większość kodu do ich inicjalizacji i konfiguracji została wygenerowana automatycznie.

    Programiści VB mogli stworzyć swój pierwszy program w ciągu kilku minut po rozpoczęciu nauki tego języka. Co więcej, Visual Basic pozwolił programistom na tworzenie nowych elementów interfejsu graficznego, które mogłyby być również używane w programach obok standardowych.

    Pomimo faktu, że wielu programistów C nie traktowało poważnie prób Microsoftu stworzenia prostego i zrozumiałego narzędzia do tworzenia programów Windows, reszta społeczności IT wiązała duże nadzieje z Visual Basic.

    W 1994 roku firma wydała Visual Basic for Applications. W tym czasie, po włączeniu VBA do pakietu Microsoft Office, Basic stał się jednym z głównych standardów programowania dla systemu Windows.

    Początkowo pomyślany jako zabawka, Visual Basic firmy Microsoft niesamowicie szybko podbił świat programowania. Jego popularność wynika z dwóch powodów: względnej prostoty i produktywności.

    Programy VB były wolniejsze niż ich odpowiedniki w C / C ++, ale nadal są wystarczająco szybkie do wielu celów biznesowych i wymagają znacznie mniej czasu na rozwój. Formularze były bardzo oszczędną abstrakcją, którą VB oferował programistom Windows.

    VB IDE umożliwiło graficzne projektowanie okien poprzez przeciąganie i upuszczanie elementów sterujących, takich jak przyciski i listy, z paska narzędzi na formularz. Po zadowalającym wyglądzie i działaniu formularza można przejść do kodu związanego z kodem i napisać programy obsługi zdarzeń dla każdej kontrolki w formularzu.

    Tworzenie aplikacji w VB polegało więc na stworzeniu kilku formularzy, które współdziałały ze sobą.

    Z punktu widzenia pisania kodu istotną różnicą w stosunku do tego samego C ++ jest odrzucenie wskaźników. Tak więc Bill Gates zdecydował, nawet podczas opracowywania pierwszych wersji Microsoft BASIC. Chociaż wskaźniki są przydatne, ponieważ umożliwiają bezpośredni dostęp do pamięci pod dowolnym adresem, ich użycie jest podatne na błędy, jeśli są używane niewłaściwie. A ponieważ język został pierwotnie stworzony dla „zwykłych śmiertelników”, ta decyzja wydaje się całkiem uzasadniona.

    Główne wersje Visual Basic

    W pierwszej wersji (1991) Alan Cooper zaimplementował zasadę komunikacji między językiem a interfejsem graficznym.

    Począwszy od trzeciej wersji (1993), obsługa MS Access pojawiła się w VB.

    Visual Basic 4.0 (1995) - wersja, w której stało się możliwe tworzenie zarówno 32-bitowych, jak i 16-bitowych aplikacji Windows. Dodatkowo do języka zostały dodane zajęcia.

    Począwszy od wersji VB 5.0 (1997), stało się możliwe opracowywanie niestandardowych komponentów COM. Ponadto nowy maszyna wirtualnazaimplementowano w bibliotece dołączanej dynamicznie MSVBVM50.DLL. Kompilator VB używał do tłumaczenia wieloprzebiegowego, ale ostatecznie polegał na kompilatorze Microsoft C ++ do tworzenia wyjściowego kodu maszynowego po skompilowaniu do języka pośredniego. Wykorzystanie biblioteki uruchomieniowej i wewnętrznego interfejsu C ++ było punktem wyjścia do powstania technologii .NET.

    VB w wersji 6 jest już potężnym językiem, którego można używać do tworzenia aplikacji rozproszonych przy użyciu komponentów COM i Microsoft Transaction Server. Firma Microsoft zaproponowała trójwarstwowe podejście do architektur klient-serwer, w których cienka interfejsy użytkownika wchodził w interakcję ze zdalnymi komponentami VB w celu pobierania danych z bazy danych lub z innego komputera.

    Ponadto VB6 (1998) może być użyty do tworzenia formantów Active-X, które współpracują z Internet Explorerem.

    W 2002 roku ukazało się pierwsze wydanie Visual Basic .NET. Od tego czasu kompatybilność wsteczna z klasyczną wersją Visual Basic została zerwana.

    Od 2005 roku Visual Basic jest częścią IDE Microsoft Visual Studio 2005. Do dnia dzisiejszego język rozwija się wraz z IDE - do aktualnej wersji - MS Visual Studio 2015.

    Języki Basic i Visual Basic przeszły długą drogę i przeszły znaczące, można powiedzieć, nieodwracalne zmiany. Niewiele pozostaje z ich pierwotnej prostoty. W rezultacie VB stał się „zwykłym” zorientowanym obiektowo językiem programowania wysokiego poziomu.

    DZWON

    Są tacy, którzy czytają tę wiadomość przed tobą.
    Zapisz się, aby otrzymywać najnowsze artykuły.
    E-mail
    Imię
    Nazwisko
    Jak chcesz przeczytać The Bell
    Bez spamu