Beginners' All-purpose Symbolic Instruction Code : code d'instructions tout usages pour débutants.

Besoin

Fournir un langage de programmation simple et généraliste.

Conception

BASIC est un langage procédural, généralement interprété.

Ses lignes d'instructions sont numérotées, ce qui permet des branchements divers.

Implémentation

Syntaxe BASIC
Domaine Commentaire
Structures de données Enumérations Non
Numériques Entiers INT var
Flottants
Caractères Unique var$
Chaîne var$
Tableaux DIM tab(taille) DIMension
Structures de contrôle Condition IF condition THEN action1 ELSE action2
Boucle Itération FOR var=début TO fin:action:NEXT
Suite NEXT var
Stop
Branchement GOTO Va à
Sous-programme GOSUB Va à sous-routine
Retour de sous-programme RETURN
Ecran Effacement CLS CLear Screen
Affichage Expression PRINT expression Imprime
Tabulation TAB(n)
Positionnement LOCATE ligne,colonne
Clavier Lecture Chaîne var=CHR$ Lit
Touche var=INKEY$
READ var
Commentaire REM commentaire, ' commentaire REMark
Aléatoire RND(max) RaNDom
Code ASCII ASC(var)

Exemples

Des exemples de BASIC sont :

  • Locomotive Basic
  • BASICA / GW-BASIC
  • Borland Turbo Basic
  • Quick Basic
  • Visual Basic

Un exemple de code source BASIC est :

10 REM ZOO Création aléatoire, sur poême de M. Butor 07/24/86
30 CLS:CLEAR:DEFSTR A-H:DEFINT I-T
40 DIM A(2),B(14),C(14),L(14),M(14)
50 A(1)="A la tombée de la nuit":A(2)="Quand se sont refermées les grilles"
60 FOR I=1 TO 14:READ B(I):NEXT
70 FOR I=1 TO 14:READ C(I):NEXT
80 FOR J1=1 TO 14:L(J1)=J1:NEXT
90 FOR J2=1 TO 14:M(J2)=J2:NEXT
100 PRINT TAB(30)"ZOO":PRINT TAB(30) STRING$(9,"="):PRINT
110 PRINT A(1):PRINT A(2)
120 FOR I=1 TO 14
130 J1=RND(14):IF L(J1)<1 THEN 130
140 J2=RND(14):IF M(J2)<1 THEN 140
150 IF J1=14 THEN D1="rêvent " ELSE D1="rêve "
160 IF J2=13 THEN D2="aux " ELSE D2="à "
170 PRINT B(J1);" ";D1;D2;C(J2)
180 L(J1)=0:M(J2)=0
190 NEXT I
200 PRINT:PRINT TAB(40)"Autre création ?":GOSUB 10000
210 IF H<>"O" THEN 220 ELSE CLS : GOTO 80
220 CLS:END
10000 IF INKEY$<>"" THEN 10010
10010 H=INKEY$:IF H="" THEN 10010 ELSE IF ASC(H)>95 THEN H=CHR$(ASC(H)-32)
10020 RETURN
10100 GOSUB 10000:IF ASC(H)>57 THEN S=ASC(H)-55 ELSE S=ASC(H)-48 10110 RETURN

Notes

Créé en .

Limitations

  • Les branchements de type GOTO ligne produisent du "code spaghetti"
  • Pas de notion de constantes