Пређи на садржај

BASIC

С Википедије, слободне енциклопедије
BASIC
МоделНеструктурни, касније процедурални, и затим објектно-оријентисан
Појавио се1. мај 1964.; пре 60 година (1964-05-01)
Дизајнер(и)
Имплементације
Утицаји
Утицао на

Бејсик (енгл. BASIC, скраћеница од Beginner's All Purpose Symbolic Instruction Code) је назив више програмских језика који су пројектовани да буду једноставни за коришћење.[1][2]

Првобитна верзија овог програмског језика развијена је на Дартмут колеџу 1964. под руководством Џона Џорџа Кемења и Томаса Јуџина Керца.[3] Имплементиран је за рачунаре серије G.E.225. Требало је да буде једноставан језик за учење програмирања. Штавише, дизајнери су желели да постане први корак за студенте који треба да савладају моћније језике као што су фортран или алгол.

Структура језика

[уреди | уреди извор]

У старијим верзијама овог језика користили су се позитивни цели бројеви за обележавање појединачних линија кода програма. Број, на почетку линије, био је обавезан. У каснијим верзијама језика ово остаје само као опција. Бројеви су, између осталог, служили као ознаке за гранање унутар програма. Касније верзије Бејсика омогућавају да се за гранање користе ознаке у облику речи.[4]

Синтакса

[уреди | уреди извор]

Бејсик језик има изузетно једноставну синтаксу, што му и име говори: Beginner's All-purpose...

Промењљиве

[уреди | уреди извор]

Име промењљиве може имати до 256 знакова (слова, бројева и тачки)


Постоји више врста промењљивих

  • integer - Цео број између -32 768 и 32 168
  • long - Цео број између -2 147 483 648 и 2 147 483 648
  • single - децимални број „једноструке прецизности"
  • double - децимални број „двоструке прецизности"
  • string - знакови који нису бројеви (слова, итд.)

Најчешће наредбе

[уреди | уреди извор]

Кратак преглед најчешћих наредби

PRINT - Исписује текст на екран

PRINT "Hello world!"

INPUT - Захтева да се упише текст који ће бити уписан у једну или више промењљивих

INPUT "Upiši dva broja:", x, y
x и y су имена промењљивих

IF-THEN-ELSE - Условна наредба. У преводу АКО-ОНДА-ИНАЧЕ

IF x > 10 THEN PRINT "Broj je veći od 10." ELSE PRINT "Broj je manji od 10."

FOR-NEXT петља:

FOR i = 1 TO 10
    PRINT i
NEXT i
Исписује бројеве од 1 до 10

DO-LOOP петља:

i = 1
DO
    PRINT i
    i = i + 1
LOOP UNTIL i > 10
Исто као и у претходном примеру
i = 1
DO
    PRINT i
    i = i + 1
LOOP WHILE i <= 10
Опет исто.

Основне наредбе у програмском језику Бејсик

[уреди | уреди извор]
  • PRINT је излазна наредба која служи за исписивање текста (знакова и бројева) у програму. Синтакса ове наредбе је PRINT варијабла. Да би написала ову наредба потребно је написати реч PRINT, затим назив варијабле, неки текст или број. Ако се жели да се испише нека већ дефинисана варијабла, након речи PRINT пише се име те варијабле. Ако се жели да се испише у програму неки текст, то се може учинити тако што ће се написати реч PRINT, па под наводницима (" ") исписати жељени текст. Ако се жели да се испише неки број, довољно је након речи PRINT написати тај број. Ако се жели да се испише више од једне варијабле (текста или броја) у програму то се може учинити тако што ће се ставити зарез (,) или тачку-зарез (;) после прве варијабле (текста или броја), те тај поступак поновити након сваке следеће. Да ли ће бити зарез или тачка-зарез зависи од величине размака између те две варијабле (текста или броја). За мањи размак се ставља тачку-зарез (;), а за већи зарез (,).
  • INPUT наредба ће од корисника програма тражити унос неке нумеричке вредности варијабле. Њена синтакса је INPUT варијабла. Исто тако је могуће ставити после речи INPUT наводнике (" "), те под наводницима написати текст који ће се кориснику исписати уз упит да се унесе тражена варијабла. Ако се жели да се омогући унос текстуалних вредности користи се наредбу INPUT$, њена синтакса је INPUT$ varijabla$.
  • REM наредба служи за додавање коментара при писању програмског кода. Тај коментар ће бити видљив само у програмском коду, док га корисник током извршавања програма неће моћи видети. Синтакса ове наредбе је REM текст. Дати текст не мора бити стављен под наводнике.
  • CLS је скраћеница од CLear Screen. Обично се ставља на почетак програма и тиме се постиже да се сав текст у програму, укључујући и прошле програме избрише са екрана у којем се види извршење програма. Тако, сваки нови програм почиње од почетка екрана и подаци се исписују све до нове употребе CLS, када се сви подаци поново избришу.
  • END се обично ставља на крај програма, мада није обавезно. То чак не спада у праву врсту наредбе, иако се ставља на крају програма, како би се потенцијални читач програма лакше оријентисао. Такође служи и код наредбе безусловног изласка из подпроцедуре, функције или IF..THEN блока.

На левој страни је приказан програмски код, а на десној пример извршења програма који ради по написаном коду програма (добија се притиском типке F5).

Пример кориштења наредбе PRINT
Програм који сабира два броја

Услови у Бејсику служе како би проверили вредности варијабли, упоредили их, те ефикасније управљали њима после испитаног услова. Постоји више начина постављања услова, те су неки од њих уприложена у наставку.

Први начин постављања услова

[уреди | уреди извор]

Услов мора почињати са речима IF (ако) и после те речице се ставља услов који програм треба да испита. Тај услов мора да садржи две већ постојеће варијабле те неки од релационих оператора(=,<,>,<=,>=,<>) које треба ставити између њих. Значи услов мора садржати две варијабле (вредности), те релацију између њих коју испитује тај услов. Такође услов може садржати и логичке операторе (AND, OR, NOT). Након услова следи последица, шта треба учинити ако је услов испуњен (наредба THEN). Кључне речи IF и THEN морају бити у истом реду.

Други део услова садржи последицу тј. шта ће програм учинити ако се деси да је услов испуњен. После речице IF и написаних варијабли, те релације између њих које програм испитује, обавезно се мора ставити речица THEN, те последица коју ће програм учинити ако је испуњен сваки део услова (или део услова прецизиран логичким операторима). Та последица обавезно мора садржати неку од наредби тј. шта ће програм учинити са жељеном варијаблом ако је услов испуњен. Ако се након кључне речи за последицу (THEN) користити само једна наредба онда се и она пише у истом реду али ако треба извршити више наредби онда се оне пишу у новом реду (свака) а блок IF..THEN се мора закључати наредбом END IF.

Трећи део услова укључује наредбу ELSE којом је омогућено извршавање последице када је резултат птовере услова нетачан (0). Иза речице THEN и низа наредби које ће се испунити у случају позитивног резултата услова, ставља се речицу ELSE те такође низ наредби које ће програм извршити уколико се деси да је резултат постављеног услова нетачан. Уколико се не стави овај део у услов тј. ако програмер не дефинише последицу негативног резултата постављеног услова, програм ће наставити извршавање програмског кода из следећег реда.

Ако је потребно да се уведе више услова тако да резултат буде јединствен онда се користе логички оператори AND (I) или OR (ILI).

Логичко коло AND ће имати резултат „тачно” што програму даје вредност 1 само ако су оба услова (или ако их има више онда сви услови) тачни. Таблица истинитости логичког кола AND (I)
услов А    услов Б    резултат
 тачан       тачан      тачан
 тачан      нетачан    нетачан
нетачан      тачан     нетачан
нетачан     нетачан    нетачан
Логичко кол OR ће имати резултат "тачно" што програму даје вредност 1 ако је бар један од услова тачан иначе има вредност 0 (нетачан). Таблица истинитости логичког кола AND (I)
услов А    услов Б    резултат
 тачан       тачан     тачан
 тачан      нетачан    тачан
нетачан      тачан     тачан
нетачан     нетачан    нетачан

Уз логичке операторе AND и OR Бејсик подржава и кључну реч NOT, чиме се прави инверзија тј. сви резултати који су код провере услова били „тачно” постају „нетачно” и обрнуто.

Синтакса IF блока

[уреди | уреди извор]
'''1. Пример'''
IF услов THEN наредба последице

'''2. Пример'''
 IF услов THEN 
  Наредба1
  Наредба2
    ...
 END IF

'''3. Пример'''
 IF услов THEN
  Наредба1
  Наредба2
    ...
 ELSE
  Наредба1
  Наредба2
    ...
 END IF

Још неки од блокова за проверу услова

[уреди | уреди извор]

WHILE.. WEND Овај блок ће се извршавати све док је тврдња у услову тачна а провера се врши на улазу у блок. Његова синтакса је следећа:

 
 WHILE услов
  наредба1       
  наредба2
    ...
 WEND

DO.. LOOP WHILE Овај блок ће се извршавати све док је тврдња у услову тачна а провера се врши на крају блока. Његова синтакса је следећа:

 DO
  Наредба1
  Наредба2
    ...
 LOOP WHILE услов

DO WHILE.. LOOP Овај блок ће се извршавати све док је тврдња у услову тачна а провјера се врши на улазу у блок. Његова синтакса је следећа:

 DO WHILE услов
  Наредба1
  Наредба2
    ...
 LOOP

DO.. LOOP UNTIL услов Овај блок ће се извршавати све док се тврдња у услову не испуни (док тврдња није тачна) а провера се врши на крају блока. Његова синтакса је следећа:

 DO
  Наредба1
  Наредба2
    ...
 LOOP UNTIL услов

DO UNTIL услов...LOOP Овај блок ће се извршавати све док тврдња у услову не буде тачна а провера се врши на улазу у блок. Његова синтакса је следећа:

 DO UNTIL услов
  Наредба1
  Наредба2
    ...
 LOOP

Višestruki odabir

[уреди | уреди извор]

Уместо да се користи више блокова за проверу могуће је користити кључне речи SELECT CASE чиме је омогућен вишеструки избор. Синтакса је следећа:

 SELECT CASE варијабла
   CASE 1
     наредба1
     наредба2
       ...
   CASE 2
     наредба1
     наредба2
   CASE 4 TO 6
     наредба1
     наредба2
   CASE IS >7
     наредба1
 END SELECT

-претпоставља се да коментар није потребан и да је видљиво из приложеног како функционише ова структура. Јасно да је и у оквиру сваког случаја (CASE) могуће додавати нове блокове услова, убацити прекид BREAK ..

Наредба безусловног скока

[уреди | уреди извор]

Наредба GOTO је наредба (без)условног преласка на дефинисани ред. Често се користи уз услове и тада је условна.

Да би кориштење ове наредбе било могуће ред у који се врши скок мора почети бројем (бити нумерисан). Наредба GOTO се користи када се жели да програм, након прочитаног реда неког програма, не чита следећи ред, него уз помоћ наредбе GOTO, пређе на наведени ред тј. одакле ће програм наставити да чита програмски код. Због тога је потребна нумерација тог реда кода. Синтакса ове наредбе је следећа:

GOTO број кода

После речи GOTO се ставља број којим је нумерисан ред, од којег се жели да програм настави да чита програмски код. Наредба GOTO често се употребљава као последица (не)испуњавања услова. Нпр. може се ставити да, уколико се услов испуни програм настави читати програмски код са одређене позиције, а ако се не испуни, да се врати на поновно додељивање вредности варијабли (помоћу знака једнакости или наредбе INPUT).

Слични језици

[уреди | уреди извор]

Стандарди

[уреди | уреди извор]
  • ANSI Standard for Minimal BASIC (ANSI X3.60-1978 "FOR MINIMAL BASIC")
  • ISO Standard for Minimal BASIC (ISO/IEC 6373:1984 "DATA PROCESSING - PROGRAMMING LANGUAGES - MINIMAL BASIC")

Референце

[уреди | уреди извор]
  1. ^ „Бејсик или бејзик?”. Приступљено 25. 1. 2021. 
  2. ^ Kemeny, John G.; Kurtz, Thomas E. (1964). Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System (PDF) (на језику: енглески) (1st изд.). Hanover, N.H.: Dartmouth College Computation Center. 
  3. ^ Мишић, Милан, ур. (2005). Енциклопедија Британика. А-Б. Београд: Народна књига : Политика. стр. 119. ISBN 86-331-2075-5. 
  4. ^ „Šta je BASIC programski jezik. Osnovni jezik. Glavne verzije Visual Basic-a”. Приступљено 25. 1. 2021. 

Литература

[уреди | уреди извор]

Спољашње везе

[уреди | уреди извор]

Медији везани за чланак BASIC на Викимедијиној остави