Movatterモバイル変換


[0]ホーム

URL:


Направо към съдържанието
УикипедияСвободната енциклопедия
Търсене

BASIC

от Уикипедия, свободната енциклопедия
BASIC
Atari BASIC (1979) за 8-битови компютри Atari
Парадигманеструктурен, по-къснопроцедурен, по-къснообектно ориентиран
Реализиране през1964
АвторДжон Ке́мени и Томас Курц
Програмни диалектиDartmouth BASIC, Tiny BASIC, Applesoft BASIC, Atari BASIC, Sinclair BASIC, Commodore BASIC, BBC BASIC, TI-BASIC, Casio BASIC, Microsoft BASIC,QB64,FreeBASIC, Liberty BASIC, PowerBASIC, QuickBASIC, YABASIC
Повлиян отALGOL 60,FORTRAN, JOSS
ПовлияваCOMAL,Visual Basic, Visual Basic .NET, GRASS Xojo
УебсайтQB64 official website,
FreeBASIC Wiki Manual
BASIC вОбщомедия

Бе́йсик (BASIC, съкращениенаанглийски:Beginner'sAll-purposeSymbolicInstructionCodeмногоцелеви език от символни инструкции за начинаещи) е семейство отезици за програмиране от високо ниво. Той е създаден през 1964 г. от професорите Джон Ке́мени (1926 – 1992) и Томас Курц (1928 – 2024) отКолежа „Дартмут“, които го публикуват на1 май1964 г.[1][2][3]

Синтаксис

[редактиране |редактиране на кода]

Синтаксисът на Бейсик се състои от прости команди (като PRINT – отпечатай, INPUT – въведи, IF – ако, GOTO – отиди на, и т.н.) и математически изрази.

Типични ключови думи на BASIC

[редактиране |редактиране на кода]

Манипулация с данни

[редактиране |редактиране на кода]
LET
присвоява стойност (която може да е резултат от израз) на променлива. В повечето диалекти на BASIC, LET е незадължителен и ред без друга идентифицируема ключова дума ще приеме, че ключовата дума е LET.
DATA
съдържа списък със стойности, които се присвояват последователно с помощта на командата READ.
READ
чете стойност от оператор DATA и я присвоява на променлива. Вътрешен указател следи последния прочетен елемент DATA и го премества с една позиция напред с всяко READ. Повечето диалекти позволяват множество променливи като параметри, като четат няколко стойности в една операция.
RESTORE
нулира вътрешния указател към първия оператор DATA, позволявайки на програмата да започне да ЧЕТЕ от първата стойност. Много диалекти позволяват незадължителен номер на ред или порядкова стойност, за да позволи на указателя да бъде нулиран до избрано място.
DIM
задава масив.

Контрол на потока на програмата

[редактиране |редактиране на кода]
IF ... THEN ... {ELSE}
се използва за извършване на сравнения или вземане на решения. Ранните диалекти позволяваха само номер на ред след THEN, но по-късните версии позволяваха следването на всяко валидно твърдение. ELSE не беше широко поддържан, особено в по-ранните версии.
FOR ... TO ... {STEP} ... NEXT
повтаря част от кода определен брой пъти. Променлива, която действа като брояч, „индексът“ е наличeн в цикъла.
WHILE ... WEND andREPEAT ... UNTIL
повтаря част от кода, докато зададеното условие е вярно. Условието може да бъде оценено преди всяка итерация на цикъла или след това. И двете команди се срещат предимно в по-късни диалекти.
DO ... LOOP {WHILE} or{UNTIL}
повтаря част от кода за неопределено време или докато/докато зададеното условие е вярно. Условието може да бъде оценено преди всяка итерация на цикъла или след това. Подобно на WHILE, тези ключови думи се срещат предимно в по-късни диалекти.
GOTO
прескача до номериран или етикетиран ред в програмата. Повечето диалекти позволяват и формата GO TO.
GOSUB ... RETURN
прескача до номериран или етикетиран ред, изпълнява кода, който намира там, докато не достигне команда RETURN, при която се връща към оператора след GOSUB, или след двоеточие, или на следващия ред. Това се използва за имплементиране на подпрограми.
ON ... GOTO/GOSUB
избира къде да се прескочи въз основа на зададените условия. Вижте оператори за разклонение за други форми.
DEF FN
Двойка ключови думи, въведени в началото на 60-те години на миналия век за дефиниране на функции. Оригиналните BASIC функции са моделирани по FORTRAN едноредови функции. BASIC функциите са един израз с променливи аргументи, а не подпрограми, със синтаксис по модела на DEF FND(x) = x*x в началото на програмата. Имената на функциите първоначално са били ограничени до FN, плюс една буква, т.е. FNA, FNB ...
LIST
показва пълния изходен код на текущата програма.

PRINT

показва съобщение на екрана или друго изходно устройство.
INPUT
изисква от потребителя да въведе стойността на променлива. Операторът може да включва съобщение за подкана.
TAB
използва се с PRINT за задаване на позицията, където следващият символ ще бъде показан на екрана или отпечатан на хартия. AT е алтернативна форма.
SPC
отпечатва определен брой интервали. Подобен по концепция на TAB, но се мести с определен брой допълнителни интервали от текущата колона, вместо да се мести в определена колона.

Математически функции

[редактиране |редактиране на кода]
ABS
Абсолютна стойност
ATN
Аркустангенс (резултат врадиани)
COS
Косинус (аргумент врадиани)
EXP
Експоненциална функция
INT
Цялочислена част (обикновенофункция скобка)
LOG
Натурален логаритъм
RND
Генериране на случайни числа
SIN
Синус (аргумент врадиани)
SQR
Корен квадратен
TAN
Тангенс (аргумент врадиани)
REM
съдържа коментар или REMark на програмист; често се използва за даване на заглавие на програмата и за идентифициране на целта на даден раздел от код.

USR ("Потребителска обслужваема рутина")

прехвърля програмния контрол към подпрограмамашинен език, обикновено въвеждана като буквено-цифровниз или в списък с DATA оператори.
CALL
алтернативна форма наUSR, срещана в някои диалекти. Не изисква изкуствен параметър за завършване на функционалноподобния синтаксис наUSR и има ясно дефиниран метод за извикване на различни рутини в паметта.
TRON /TROFF
включва показването на всеки номер на ред, докато се изпълнява ("TRAce ON"). Това беше полезно заотстраняване на грешки или коригиране на проблеми в програма. TROFF го изключва отново.
ASM
някои компилатори като Freebasic,[4] Purebasic,[5] и Powerbasic[6] също поддържат езикаасемблерна вложка, което позволява на програмиста да смесва код от високо и ниско ниво, обикновено с префикс "ASM" или "!".

Типове данни и променливи

[редактиране |редактиране на кода]

Минималните версии на BASIC имат само целочислени променливи и имена на променливи с една или две букви, което минимизира изискванията за ограничена и скъпа памет (RAM). По-мощните версии имат аритметика с плаваща запетая, а променливите можгат да бъдат обозначени с имена с дължина шест или повече знака. В ранните реализации има някои проблеми и ограничения; например, Applesoft BASIC позволява имената на променливите да бъдат с дължина от няколко знака, но само първите два са значими, като по този начин е възможно неволно да се напише програма с променливи "LOSS" и "LOAN", които ще се третират като еднакви; присвояването на стойност на "LOAN" тихомълком презаписва стойността, предназначена като "LOSS". Ключови думи не могат да се използват в променливи в много ранни BASIC; "SCORE" се интерпретира като "SC" OR "E", където OR е ключова дума. Низовите променливи обикновено се разграничават в много микрокомпютърни диалекти, като към името им се добавя суфикс $ катосигил,[7] а стойностите често се идентифицират като низове, като са разделени с „двойни кавички“. Масивите в BASIC могат да съдържат цели числа, променливи с плаваща запетая или низови променливи.

Някои диалекти на BASIC поддържатматрици и матрични операции, които могат да се използват за решаване на системи от едновременни линейни алгебрични уравнения. Тези диалекти биха поддържали директно матрични операции като присвояване, събиране, умножение (на съвместими матрични типове) и оценка на детерминанта. Много микрокомпютърни BASIC-ове не поддържат този тип данни; матричните операции все още са възможни, но трябва да се програмират изрично върху елементи от масив.

Комбинации от клавиши

[редактиране |редактиране на кода]

Едновременното натискане на клавишамашинен контрол и буквен клавиш дава следните команди:

МК +А0 – латиница
МК +А1 – кирилица
МК +E – ГОЛЕМИ СИМВОЛИ
МК +Rудебелени символи
МК +T – високи символи
МК +W – широки символи
МК +I,МК +U – повтаря символи
МК +H – връща символи
МК +J – движи маркера надолу
МК +K – движи маркера нагоре
МК +P – придвижва бавно нагоре цялата картина с 2 реда
МК +X – анулира текущия ред и минава на нов ред
МК +M (RETURN ) – нов ред
МК +L (HOME ) – изчиства екрана
МК +G – еднократен звук
МК +V – еднократен шум.

Примери

[редактиране |редактиране на кода]

При класическия BASIC всички редове са номерирани, тъй като в първоначалните версии на Бейсик програмата се е въвеждала в интерактивен режим. Т.е., ако преди кода няма номер на реда, то кодът се изпълнява веднага.

10INPUT"Кое е Вашето име?: ";U$20PRINT"Здравейте ";U$30REM40INPUT"Колко звезди искате: ";N50S$=""60FORI=1TON70S$=S$+"*"80NEXTI90PRINTS$100REM110INPUT"Искате ли още звезди? ";A$120IFLEN(A$)=0THENGOTO110130A$=LEFT$(A$,1)140IF(A$="D")OR(A$="d")THENGOTO40150IF(A$="Д")OR(A$="д")THENGOTO40160PRINT"Довиждане ";170FORI=1TO200180PRINTU$;" ";190NEXTI200PRINT

Полученият диалогов прозорец може да изглежда така:

Кое е Вашето име?: Михаил Здравей, Михаил Колко звезди искате: 7 ******* Искате ли още звезди? да Колко звезди искате: 3 ***Искаш ли още звезди? не Довиждане, Михаил

Синтаксисът на модерния BASIC почти не се различава от този на класическия. При модерния Бейсик обаче номерирането на редовете не е задължително, освен това се използва отместване на кода (познато от другите програмни езици катоPascal,C/C++,Fortran и др.), с което преглеждането на програмите на BASIC става по-лесно.

REM Пример за QuickBASICREM  Предварителна декларация – позволява на основния код да извикаREM    подпрограма, която е дефинирана по-късно в изходния код.DECLARESUBPrintSomeStars(StarCount!)REM  Следва основната програмаINPUT"Кое е Вашето име";UserName$PRINT"Здравейте ";UserName$DOINPUT"Колко звезди искате";NumStarsStars$=""Stars$=REPEAT$("*",NumStars)' <- ANSI BASIC--or--Stars$=STRING$(NumStars,"*")' <- MS   BASICPRINTStars$DOINPUT"Искате ли още звезди?";Answer$LOOPUNTILAnswer$<>""Answer$=LEFT$(Answer$,1)LOOPWHILEUCASE$(Answer$)="D"PRINT"Довиждане ";UserName$ENDREM Дефиниция на подпрограмаSUBPrintSomeStars(StarCount)REMТазипроцедураизползвалокалнапроменлива,нареченаStars$Stars$=STRING$(StarCount,"*")PRINTStars$ENDSUB

Външни препратки

[редактиране |редактиране на кода]

Източници и бележки

[редактиране |редактиране на кода]
  1. Mary Bellis.The History of the BASIC Programming Language//Dotdash Meredith,26 януари 2019. Архивиран оторигиналана7 август 2021.Посетен на19 март 2023.(на английски)
  2. Benj Edwards.The BASIC programming language turns 60//1 май 2024. Архивиран оторигиналана3 май 2024.Посетен на4 май 2024.(на английски)
  3. Павел Котов.Языку программирования BASIC исполнилось 60 лет//2 май 2024. Архивиран оторигиналана2 май 2024.Посетен на4 май 2024.(на руски)
  4. KeyPgAsm//Посетен на 2 август 2017 г.
  5. Inline x86 ASM//Посетен на 2 август 2017 г.
  6. Използване на асемблерен език във вашия код// Архивиран оторигиналана2 август 2017.Посетен на2 август 2017.
  7. В компютърното програмиране сигилът (/ˈsɪdʒəl/) е символ, прикрепен към име на променлива, показващ типа данни или обхвата на променливата, обикновено префикс, както в $foo, където $ е сигилът.
Взето от „https://bg.wikipedia.org/w/index.php?title=BASIC&oldid=12770209“.
Категории:

[8]ページ先頭

©2009-2026 Movatter.jp