BASIC — разлика између измена

Садржај обрисан Садржај додат
#1Lib1Ref #1Lib1RefCEE
.
Ред 1:
{{рут}}{{Short description|Породица програмских језика}}
{{без извора}}
{{Инфокутија програмски језик
'''Бејсик''' ({{јез-ен|BASIC}}, скраћеница од -{'''''B'''eginner's '''A'''ll Purpose '''S'''ymbolic '''I'''nstruction '''C'''ode''}-) је назив више [[Програмски језик|програмских језика]] који су пројектовани да буду једноставни за коришћење.<ref>{{cite web |title=Бејсик или бејзик? |url=http://www.srpskijezickiatelje.com/nedoumice:bejsik |access-date=25. 1. 2021}}</ref>
| назив =
| слика = AtariBasic.png
| величина_слике = 250п
| опис = [[Atari BASIC|Атари Бејсик]] (1979) за [[Atari 600|Атари 8-битну фамилију]]
| оригинални_назив =
| изговор_на_српском =
| модел = [[Неструктуирано програмирање|Неструктурни]], касније [[Procedural programming|процедурални]], и затим [[Објектно-оријентисано програмирање|објектно-орјентисан]]
| настанак = {{Start date and age|1964|5|1}}
| аутори =
| дизајнери = {{plainlist|
* [[Џон Џорџ Кемени]]
* [[Thomas E. Kurtz|Томас Е. Курц]]
}}
| актуелна_верзија =
| датум_актуелне_верзије =
| типови =
| куцање =
| имплементације = {{flatlist|
* [[Dartmouth BASIC]]
* [[Tiny BASIC]]
* [[Applesoft BASIC]]
* [[Atari BASIC]]
* [[Sinclair BASIC]]
* [[Commodore BASIC]]
* [[BBC BASIC]]
* [[TI-BASIC]]
* [[Casio BASIC]]
* [[Microsoft BASIC]]
* [[QB64]]
* [[Liberty BASIC]]
* [[PowerBASIC]]
* [[QuickBASIC]]
}}
| дијалекти =
| утицаји = {{flatlist|
* [[ALGOL 60]]
* [[Fortran|FORTRAN II]]
* [[JOSS]]
}}
| утицао_на = {{flatlist|
* [[COMAL]]
* [[Visual Basic]]
* [[Visual Basic .NET]]
* [[GRASS (programming language)|GRASS]]
}}
| оперативни_системи =
| лиценца =
| веб-сајт =
| сајт_документације =
}}
 
'''Бејсик''' ({{јез-ен|BASIC}}, скраћеница од -{'''''B'''eginner's '''A'''ll Purpose '''S'''ymbolic '''I'''nstruction '''C'''ode''}-) је назив више [[Програмски језик|програмских језика]] који су пројектовани да буду једноставни за коришћење.<ref>{{cite web |title=Бејсик или бејзик? |url=http://www.srpskijezickiatelje.com/nedoumice:bejsik |access-date=25. 1. 2021}}</ref><ref>{{Cite book|url=http://bitsavers.trailing-edge.com/pdf/dartmouth/BASIC_Oct64.pdf|title=Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System|last1=Kemeny|first1=John G.|last2=Kurtz|first2=Thomas E.|date=1964|publisher=Dartmouth College Computation Center|location=Hanover, N.H.|language=en|edition=1st}}</ref>
 
Првобитна верзија овог [[Програмски језик|програмског језика]] развијена је на [[Дартмут колеџ]]у [[1964]]. под руководством [[Džon Džordž Kemeni|Џона Џорџа Кемења]] и Томаса Јуџина Керца. Имплементиран је за рачунаре серије ''G.E.225''. Требало је да буде једноставан језик за учење програмирања. Штавише, дизајнери су желели да постане први корак за студенте који треба да савладају моћније језике као што су [[фортран]] или [[алгол]].
Линија 71 ⟶ 123:
 
:<small>Опет исто.</small>
 
== Osnovne naredbe u programskom jeziku Basic ==
 
* '''PRINT''' je izlazna naredna koja služi za ispisivanje teksta (znakova i brojeva) u programu. Sintaksa ove naredbe je '''PRINT varijabla'''. Znači, da bi napisali ovu naredbu potrebno je napisati riječ PRINT, zatim naziv varijable, neki tekst ili broj. Ako želimo da namse ispiše neka već definisana varijabla, poslije riječi PRINT pišemo ime te varijable. Ako želimo ispisati u programu neki tekst, to ćemo učiniti tako što ćemo napisati riječ PRINT, pa pod navodnicima (" ") ispisati željeni tekst. Ako želimo ispisati neki broj, dovoljno je poslije riječi PRINT napisati taj broj. Ako želimo ispisati više od jedne varijable (teksta ili broja) u programu to ćemo učiniti tako što ćemo staviti zarez (,) ili tačku-zarez (;) poslije prve varijable (teksta ili broja), te taj postupak ponoviti nakon svake sljedeće. Da li će biti zarez ili tačka-zarez zavisi od veličine razmaka između te dvije varijable (teksta ili broja). Za manji razmak ćemo staviti tačku-zarez (;), a za veći zarez (,).
 
* '''INPUT''' naredba će od korisnika programa tražiti unos neke numeričke vrijednosti varijable. Njena sintaksa je '''INPUT varijabla'''. Isto tako je moguće staviti poslije riječi INPUT navodnike (" "), te pod navodnicima napisati tekst koji će se korisniku ispisati uz upit da se unese tražena varijabla. Želimo li omogućiti unos tekstualnih vrijednosti koristićemo naredbu '''INPUT$''' , njena sintaksa je '''INPUT$ varijabla$'''.
 
* '''REM''' naredba služi za dodavanje komentara pri pisanju programskog koda. Taj komentar će biti vidljiv samo u programskom kodu, dok ga korisnik tokom izvršavanja programa neće moći vidjeti. Sintaksa ove naredbe je '''REM tekst'''. Dati tekst ne mora biti stavljen pod navodnike.
 
* '''CLS''' je skraćenica od '''CL'''ear '''S'''creen. Obično se stavlja na početak programa i time postižemo da se sav tekst u programu, uključujući i prošle programe izbriše sa ekrana u kojem vidimo izvršenje programa. Tako, svaki novi program počinje od početka ekrana i podaci se ispisuju sve do nove upotrebe CLS, kada se svi podaci ponovo izbrišu.
 
* '''END''' se obično stavlja na kraj programa, mada nije obavezno. To čak ne spada u pravu vrstu naredbe, iako se stavlja na kraju programa, kako bi se potencijalni čitač programa lakše orijentisao. Također će služiti i kod naredbe bezuslovnog izlaska iz pod procedure, funkcije ili IF..THEN bloka.
 
=== Primjer 3 ===
 
Na lijevoj strani možete vidjeti programski kod, a na desnoj primjer izvršenja programa koji radi po napisanom kodu programa (dobija se pritiskom tipke F5).
 
[[Datoteka:Primjer BASIC-a (1).png|mini|centar|750px|Primjer korištenja naredbe '''PRINT''']]
[[Datoteka:Primjer BASIC-a (2).png|mini|centar|750px|Program koji sabira dva broja]]
 
== Uslovi ==
 
Uslovi u Basicu služe kako bi provjerili vrijednosti varijabli, uporedili ih, te efikasnije upravljali njima poslije ispitanog uslova. Postoji više načina postavljanja uslova, te su neki od njih upriložena u nastavku.
 
=== Prvi način postavljanja uslova ===
Uslov mora počinjati sa riječi '''IF''' (ako) i poslije te rječice se stavlja uslov koji program treba da ispita. Taj uslov mora sadržati dvije već postojeće varijable te neki od relacionih operatora(=,<,>,<=,>=,<>) koji treba staviti između njih. Znači uslov mora sadržati dvije varijable (vrijednosti), te relaciju između njih koju ispituje taj uslov. Također uslov može sadržati i logičke operatore (AND, OR, NOT). Nakon uslova slijedi posljedica, šta treba učiniti ako je uslov ispunjen (naredba '''THEN'''). Ključne riječi '''IF''' i '''THEN''' moraju biti u istom redu.
 
Drugi dio uslova sadrži posljedicu tj. šta će program učiniti ako se desi da je uslov ispunjen. Poslije rječice IF i napisanih varijabli, te relacije između njih koje program ispituje, obavezno se mora staviti rječica '''THEN''', te poslijedica koju će program učiniti ako je ispunjen svaki dio uslova (ili dio uslova preciziran logičkim operatorima). Ta posljedica obavezno mora sadržati neku od naredbi tj. šta će program učiniti sa željenom varijablom ako je uslov ispunjen.
Ako ćemo nakon ključne riječi za posljedicu ('''THEN''') koristiti samo jednu naredbu onda se i ona piše u istom redu ali ako treba izvršiti više naredbi onda se one pišu u novom redu (svaka) a blok IF..THEN se mora zaključati naredbom '''END IF'''
 
Treći dio uslova uključuje naredbu ELSE kojom je omogućeno izvršavanje posljedice kada je rezultat ptovjere uslova netačan (0). Iza rječice THEN i niza naredbi koje će se ispuniti u slučaju pozitivnog rezultata uslova, stavljamo rječicu '''ELSE''' te također niz naredbi koje će program izvršiti ukoliko se desi da je rezultat postavljenog uslova netačan. Ukoliko se ne stavi ovaj dio u uslov tj. ako programer ne definiše posljedicu negativnog rezultata postavljenog uslova, program će nastaviti izvršavanje programskog koda iz sljedećeg reda.
 
Trebamo li uvezati više uslova tako da rezultat bude jedinstven onda ćemo koristiti logičke operatore AND (I) ili OR (ILI).
{|
|Logičko kolo '''AND''' će imati rezultat "tačno" što programu daje vrijednost '''1''' samo ako su oba uslova (ili ako ih ima više onda svi uslovi) tačni.
| Tablica istinitosti logičkog kola AND (I)
uslov A uslov B rezultat
tačan tačan '''tačan'''
tačan netačan netačan
netačan tačan netačan
netačan netačan netačan
|-
|Logičko kolo '''OR''' će imati rezultat "tačno" što programu daje vrijednost '''1''' ako je bar jedan od uslova tačan inače ima vrijednost 0 (netačan).
| Tablica istinitosti logičkog kola AND (I)
uslov A uslov B rezultat
tačan tačan '''tačan'''
tačan netačan '''tačan'''
netačan tačan '''tačan'''
netačan netačan netačan
|}
 
Uz logičke operatore AND i OR BASIC podržava i ključnu riječ NOT, čime se pravi inverzija tj. svi rezultati koji su kod provjere uslova bili "tačno" postaju "netačno" i obrnuto.
 
== Sintaksa IF bloka ==
<syntaxhighlight lang="gwbasic">
'''1. Primjer'''
IF uslov THEN naredba posljedice
 
'''2. Primjer'''
IF uslov THEN
Naredba1
Naredba2
...
END IF
 
'''3. Primjer'''
IF uslov THEN
Naredba1
Naredba2
...
ELSE
Naredba1
Naredba2
...
END IF
</syntaxhighlight>
 
== Još neki od Blokova za provjeru uslova ==
'''WHILE.. WEND''' Ovaj blok će se izvršavati sve dok je tvrdnja u uslovu tačna a provjera se vrši na ulazu u blok. Njegova sintaksa je sledeća:
<syntaxhighlight lang="gwbasic">
WHILE uslov
naredba1
naredba2
...
WEND
</syntaxhighlight>
 
'''DO.. LOOP WHILE''' Ovaj blok će se izvršavati sve dok je tvrdnja u uslovu tačna a provjera se vrši na kraju bloka. Njegova sintaksa je sledeća:
<syntaxhighlight lang="gwbasic">
DO
Naredba1
Naredba2
...
LOOP WHILE uslov
</syntaxhighlight>
 
'''DO WHILE.. LOOP''' Ovaj blok će se izvršavati sve dok je tvrdnja u uslovu tačna a provjera se vrši na ulazu u blok. Njegova sintaksa je sledeća:
<syntaxhighlight lang="gwbasic">
DO WHILE uslov
Naredba1
Naredba2
...
LOOP
</syntaxhighlight>
 
'''DO.. LOOP UNTIL uslov''' Ovaj blok će se izvršavati sve dok se tvrdnja u uslovu ne ispuni (dok tvrdnja nije tačna) a provjera se vrši na kraju bloka. Njegova sintaksa je sledeća:
<syntaxhighlight lang="gwbasic">
DO
Nareba1
Naredba2
...
LOOP UNTIL uslov
</syntaxhighlight>
 
'''DO UNTIL uslov...LOOP''' Ovaj blok će se izvršavati sve dok tvrdnja u uslovu ne bude tačna a provjera se vrši na ulazu u blok. Njegova sintaksa je sledeća:
<syntaxhighlight lang="gwbasic">
DO UNTIL uslov
Naredba1
Naredba2
...
LOOP
</syntaxhighlight>
 
== Višestruki odabir ==
 
Umjesto da koristimo više blokova za provjeru moguće je koristiti ključne riječi '''SELECT CASE''' čime je omogućen višestruki izbor. Sintaksa je sledeća:
<syntaxhighlight lang="gwbasic">
SELECT CASE varijabla
CASE 1
naredba1
naredba2
...
CASE 2
naredba1
naredba2
CASE 4 TO 6
naredba1
naredba2
CASE IS >7
naredba1
END SELECT
</syntaxhighlight>
 
''-nadam se da komentar nije potreban i da je vidljivo iz priloženog kako funkcioniše ova struktura. Jasno da je i u okviru svakog slučaja (CASE) moguće dodavati nove blokove uslova, ubaciti prekid BREAK ..''
 
=== Naredba bezuslovnog skoka ===
 
Naredba '''GOTO''' je naredba (bez)uslovnog prelaska na definisani red. Često se koristi uz uslove i tada je uslovna.
 
Da bi korištenje ove naredbe bilo moguće red u koji se vrši skok mora početi brojem (biti numerisan).
Naredbu GOTO će programer koristiti kada želi da program, poslije pročitanog reda nekog programa, ne čita slijedeći red, nego uz pomoć naredbe GOTO, programer odluči koji će red slijedeće biti pročitan tj. odakle će program nastaviti čitati programski kod. Zbog toga nam je potrebna numeracija tog reda koda. Sintaksa ove naredbe je slijedeća:
 
''GOTO broj koda''
 
Znači poslije riječi GOTO stavljamo broj kojim smo numerisali red, od kojeg želimo da program nastavi čitati programski kod. Naredba GOTO često se upotrebljava kao posljedica (ne)ispunjavanja uslova. Npr. može se staviti da, ukoliko se uslov ispuni program nastavi čitati programski kod sa određene pozicije, a ako se ne ispuni, da se vrati na ponovno dodjeljivanje vrijednosti varijabli (pomoću znaka jednakosti ili naredbe INPUT).
 
== Слични језици ==
Линија 82 ⟶ 290:
* [[Амерички национални завод за стандардизацију|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")
 
== Референце ==
{{рефлист}}
 
== Литература ==
{{refbegin}}
* {{Cite book|title=Programming languages: history and fundamentals|last=Sammet|first=Jean E.|date=1969|publisher=[[Prentice-Hall]]|location=Englewood Cliffs, N.J.|language=en|oclc=819683527}}
* {{Cite encyclopedia |chapter-url = http://doi.acm.org/10.1145/800025.1198404
|chapter = BASIC
|encyclopedia = History of Programming Languages I
|last = Kurtz
|first = Thomas E.
|date = 1981
|publisher = [[Association for Computing Machinery|ACM]]
|isbn = 978-0127450407
|doi = 10.1145/800025.1198404<!-- (currently broken, reported to issuer) -->
|editor-last = Wexelblat
|editor-first = Richard
|location = New York
|pages = [https://archive.org/details/historyofprogram0000hist/page/515 515–537]
|title = History of programming languages
|url = https://archive.org/details/historyofprogram0000hist/page/515
}}
* {{Cite book|title=Back To BASIC: The History, Corruption, and Future of the Language|last1=Kemeny|first1=John G.|last2=Kurtz|first2=Thomas E.|date=1985|publisher=Addison-Wesley |isbn=9780201134339|oclc=11399298|pages=141}}
* {{Cite book|title=The Basic Handbook: Encyclopedia of the BASIC Computer Language|last=Lien|first=David A.|date=1986|publisher=Compusoft Publishing|isbn=9780932760333|oclc=12548310|edition=3rd}}
* {{cite magazine |magazine=Time |date=29 April 2014 |title= Fifty Years of BASIC, the Programming Language That Made Computers Personal |url=http://time.com/69316/basic/ |ref=CITEREFTime2014}}
{{refend}}
 
== Спољашње везе ==
{{Commonscat-inline|BASIC (programming language)}}
* {{dmoz|Computers/Programming/Languages/BASIC|BASIC}}
* {{YouTube|WYPNjSoDrqw|The Birth of Basic}}
 
{{Програмски језици}}
{{Authority control}}
 
[[Категорија:Програмски језик BASIC]]
Преузето из „https://sr.wikipedia.org/wiki/BASIC