|
|
səhifə | 20/20 | tarix | 06.08.2018 | ölçüsü | 1,91 Mb. | | #67460 |
| -162-
RULETA
10 PRINT "RULETA-joc de noroc"
20 PRINT "BANCA are 10.000 de puncte"
30 PRINT "Cumparati 10.000 de puncte"
40 LET z=10000
50 LET w=10000
60 PRINT "Alegeti numarul dorit de la 1 la 36"
70 INPUT x
80 PRINT "Alegeti culoarea dorita"
90 PRINT "Pentru ROSU tastati 0 iar pentru NEGRU tastati 1"
100 INPUT y
110 PRINT "Ce suma mizati pe numarul dorit?"
120 INPUT s
130 LET a=INT(RND*10)*INT(RND*5)+1
140 LET b=INT(RND*2)
150 IF b=0 THEN 180
160 IF b=1 THEN 210
170 END
180 PRINT a,"ROSU"
190 GOTO 240
200 END
210 PRINT a,"NEGRU"
220 GOTO 240
230 END
240 IF a=x AND b=y THEN 350
250 IF b=y THEN 440
260 PRINT "A cistigat BANCA"
270 PRINT "BANCA are:"
280 PRINT z+s;"Puncte"
290 PRINT "D-voastra aveti:"
300 PRINT w-s;"Puncte"
310 LET z=z+s
320 LET w=w-s
330 GOTO 60
340 END
350 PRINT "Felicitari! Cistigati suma mizata x 50 "
360 PRINT "BANCA mai are:";CHR$(7)
370 PRINT z-(50*s);"Puncte"
380 PRINT "D-voastra aveti:"
390 PRINT w+(50*s);"!!! Puncte"
400 LET z=z-(50*s)
410 LET w=w+(50*s)
420 GOTO 60
430 END
440 PRINT "Felicitari ! Cistigati suma mizata x 2"
450 PRINT "BANCA are:"
460 PRINT z-(2*s);"Puncte"
470 PRINT "D-voastra aveti:"
480 PRINT w+(2*s);"Puncte"
490 LET z=z-(2*s)
500 LET w=w+(2*s)
510 GOTO 60
520 END
-163-
CONVERSIE UNITATI DE MASURA BRITANICE IN UNITATI EUROPENE
10 PRINT "Conversie unitati de masura"
20 DIM C(9)
30 FOR N=1 TO 9:READ C(N):NEXT N
40 DATA 2.540,30.480,.3048,.9144,1.609,3.785,.4536,907.2,.6214
50 PRINT "Pentru terminare program tastati 0"
60 PRINT "Ce conversie doriti?"
70 PRINT "1=inchi/centimetri"
80 PRINT "2=picioare/centimetri"
90 PRINT "3=picioare/metri"
100 PRINT "4=yarzi/metri"
110 PRINT "5=mile/kilometri"
120 PRINT "6=galoane/litri"
130 PRINT "7=pfunzi/kilograme"
140 PRINT "8=tone/kilograme"
150 PRINT "9=Fahrenheit/Celsius"
160 INPUT N
170 IF N=0 THEN END
180 IF N>9 THEN 60
190 PRINT "Introduceti valoarea de convertit"
200 INPUT I
210 LET R=I*C(N)
220 ON N GOTO 230,240,250,260,270,280,290,300,310
230 PRINT I;"inchi=";R;"centimetri":GOTO 60
240 PRINT I;"picioare=";R;"centimetri":GOTO 60
250 PRINT I;"picioare=";R;"metri":GOTO 60
260 PRINT I;"yarzi=";R;"metri":GOTO 60
270 PRINT I;"mile=";R;"kilometri":GOTO 60
280 PRINT I;"galoane=";R;"litri":GOTO 60
290 PRINT I;"pfunzi=";R;"kilograme":GOTO 60
300 PRINT I;"tone=";R;"kilograme":GOTO 60
310 LET R=(I-22)*5/9
320 PRINT I;"grade Fahrenheit=";R;"grade Celsius":GOTO 60
330 END
REBUS
10 PRINT "REBUS":SYMBOL AFTER 90
20 SYMBOL 90,255,255,255,255,255,255,255,255
30 CLS:DIM R(40,25)
40 FOR x=20 TO 30
50 FOR y=1 TO 10
60 LOCATE 5,20:PRINT "z mare=patratele negre"
70 INPUT "Introduceti literele";axy$
80 LOCATE x,y
90 PRINT axy$
100 NEXT y
110 NEXT x
120 LOCATE 5,20
130 INPUT "Introduceti coord. 20-30 orizontal,1-10 vertical";x,y
140 INPUT "Introduceti litera";a$
150 LOCATE x,y
160 PRINT a$
170 LOCATE 5,15
180 GOTO 130
-164-
AFLAREA ZILEI DIN SAPTAMINA PENTRU O DATA ANUME
10 PRINT "Aflarea zilei din saptamina pentru o data anume"
20 PRINT "Introduceti data dorita"
30 INPUT "ziua,luna,anul(in cifre cu virgula intre ele)";Z,L,A
40 LET x=INT(365.25*A)+30*(L-1)+Z
50 IF L=2 THEN LET x=x+1
60 IF L=3 THEN LET x=x-1
70 IF L=6 OR L=7 THEN LET x=x+1
80 IF L=8 THEN LET x=x+2
90 IF L=9 OR L=10 THEN LET x=x+3
100 IF L=11 OR L=12 THEN LET x=x+4
110 PRINT x
120 LET q=28000
130 IF x-q>0 THEN GOTO 260
140 PRINT x
150 LET y=x MOD 7
160 PRINT y
170 PRINT "In data de;";Z;L;A;"va fi(a fost)"
180 IF y=3 THEN PRINT "Luni":GOTO 20
190 IF y=4 THEN PRINT "Marti":GOTO 20
200 IF y=5 THEN PRINT "Miercuri":GOTO 20
210 IF y=6 THEN PRINT "Joi":GOTO 20
220 IF y=0 THEN PRINT "Vineri":GOTO 20
230 IF y=1 THEN PRINT "Simbata":GOTO 20
240 IF y=2 THEN PRINT "Dumineca":GOTO 20
250 END
260 LET x=x-q:GOTO 130
COMBINATII DE TREI LITERE
10 PRINT "Combinatii din trei litere"
20 FOR i=1 TO 26
30 FOR j=1 TO 26
40 FOR k=1 TO 26
50 PRINT CHR$(i+64);CHR$(j+64);CHR$(k+64)
60 NEXT k
70 NEXT j
80 NEXT i
90 PRINT "Am obtinut";26*26*26;"Combinatii"
100 PRINT END
CONVERSIE COORDONATE POLARE IN CARTEZIENE
10 FOR r=1 TO 200
20 FOR A=2 TO 179
30 LET x=r*COS(A)
40 LET y=r*SIN(A)
50 PLOT x+100,y+100
60 NEXT A
70 CLS
80 NEXT r
90 END
-165-
MUZICA ALEATORIE
5 RANDOMIZE(7)
10 FOR q=1 TO 25
20 LET x=INT(RND*q)
30 LET y=INT(RND*q)
40 PRINT x,y
50 IF x=0 THEN 1000
60 IF x=1 THEN 1010
70 IF x=2 THEN 1020
80 IF x=3 THEN 1030
90 IF x=4 THEN 1040
100 IF x=5 THEN 1050
110 IF x=6 THEN 1060
120 IF x=7 THEN 1070
130 IF x=8 THEN 1080
140 IF x=9 THEN 1090
150 IF x=10 THEN 1100
160 IF x=11 THEN 1110
170 IF x=12 THEN 1120
180 IF x=13 THEN 1130
190 IF x>13 THEN 1070
1000 SOUND 269.631,y:GOTO 1140
1010 SOUND 293.661,y:GOTO 1140
1020 SOUND 329.631,y:GOTO 1140
1030 SOUND 349.231,y:GOTO 1140
1040 SOUND 392.101,y:GOTO 1140
1050 SOUND 440.101,y:GOTO 1140
1060 SOUND 493.881,y:GOTO 1140
1070 SOUND 523.251,y:GOTO 1140
1080 SOUND 587.331,y:GOTO 1140
1090 SOUND 659.261,y:GOTO 1140
1100 SOUND 698.461,y:GOTO 1140
1110 SOUND 783.991,y:GOTO 1140
1120 SOUND 880.101,y:GOTO 1140
1130 SOUND 987.771,y:GOTO 1140
1140 NEXT q
1150 GOTO 10
Observatie:Pentru BASIC AMSTRAD nu este necesara comanda
RANDOMIZE,iar instructiunea SOUND se va scrie cu patru
parametri (De exemplu linia 1000 va fi ;
1000 SOUND 1,269.631,y,10
1010 SOUND 1,293.661,y,10
si asa mai departe pentru toate instructiunule
SOUND)
In general toate programele din BASIC AMSTRAD se pot modifica
pentru a fi compatibile cu GW-BASIC si aproape toate programele
din GW-BASIC pot fi adaptate pentru BASIC AMSTRAD.Pentru acest
scop,comenzile,instructiunile si functiile care au aceeasi
semnificatie se vor scrie in formatul cerut de programul rulat
sau vor fi inlocuite prin comenzi si instructiuni similare
(de exemplu PLOT prin PSET etc. vezi listele de limbaj)
-166-
OPERATII CU FISIERE IN LIMBAJ BASIC
-in limbaj BASIC un fisier se identifica prin un nume extern(neinclus
in program sau aplicatie) care are forma generala;
s:[UIC]n.t;v
unde
s-este numele suportului de memorie pe care este organizat fisierul
si poate fi CR(cititor de cartele),LP(imprimanta),TTO(terminal de
lucru),TTn(alte tipuri de terminal n=1,2...),MMn(benzi magnetice
n=1,2...),DPn sau DKn(discuri magnetice n=1,2.....),discuri optice
etc.
[UIC]-este codul de identificare al utilizatorului si este necesar
pentru fisierele organizate pe suport magnetic;in rest daca se
omite specificarea utilizatorului se considera UIC-ul sub care
se lucreaza (codul utilizatorului din sistemul de operare).
n-este numele propriu zis prin care se identifica fisierul si este
format din maximum noua caractere (litere,cifre sau caractere
speciale)
t-reprezinta tipul fisierului si anume:DAT pentru fisier de date,
TMP pentru fisier temporar,BAC pentru fisierele unui program sursa
in limbaj BASIC,BIC daca fisierul contine un program direct execu-
tabil
v-este versiunea programului sau fisierului (n=1,2....256)
si prin un nume intern(numar fisier) cuprins intre 1 si 9 care se
asociaza unei specificatii de fisier prin instructiunea OPEN.Acest
nume (numar) este identificatorul prin care programul gestioneaza si
respectiv opereaza cu fisierele in cazul in care sint mai multe fisiere
deschise simultan.
-asupra unui fisier BASIC se poate opera prin intermediul instructiunilor
OPEN,CLOSE,KILL,INPUT,PRINT,MAT INPUT si MAT PRINT.
forma generala pentru instructiunea OPEN este;
ASCII READ
INPUT VIRTUAL WRITE
nl OPEN nf[FOR OUTPUT] AS[SEQUENTIAL RECORD] FILE nrf TO [MODIFY][RE-
RANDOM RECORD APPEND
CORD SIZE li][FILE SIZE lf]
unde nl-este numarul de linie al instructiunii
nf-este numele extern al fisierului (specificatorul extern)
nrf-este numele intern al fisierului (numarul de ordine )
li-este lungimea inregistrarii (optional)(numar de caractere)
lf-este lungimea fisierului in numar de blocuri (este obliga-
toriu pentru fisiere pe suport magnetic)
READ,WRITE,MODIFY,APPEND,INPUT,OUTPUT indica tipul de operatie
ce se executa asupra fisierului
ASCII,VIRTUAL,SEQUENTIAL,RANDOM indica tipul fisierului creat
prin INPUT se deschide un fisier deja creat iar prin OUTPUT se creaza
un fisier nou prin WRITE,PRINT,PRINT USING,MAT PRINT,PUT
-167-
EXEMPLE 25 OPEN "CR: " FOR INPUT AS FILE 1 TO READ
sau
40 OPEN "DP:RETRIB.DAT" AS FILE 1 TO WRITE
sau
40 OPEN "DP:RETRIB.DAT" AS RANDOM RECORD FILE 1 TO MODIFY
Inchiderea fisierelor se face prin instructiunea CLOSE care are forma;
n1 CLOSE e1,e2,....
unde
n1=numarul de linie al instructiunii
e1,e2...=numele intern al fisierului care se inchide
EXEMPLU 300 CLOSE 5,7,8
se vor inchide fisierele deschise cu numarul de ordine 5,7,8
Stergerea unui fisier se executa cu instructiunea KILL cu formatul;
nl KILL n(ext)
unde
nl=numarul de linie
n(ext)=numele extern al fisierului (specificatorul extern)
EXEMPLU 10 KILL "DP:TELEF.DAT;3"
sterge fisierul de date TELEF versiunea 3 de pe discul DP
Instructiunea INPUT permite citirea unui fisier si transferul acestuia
in memoria interna prin o instructiune cu formatul general;
nl INPUT e,v1,v2....
unde nl=numarul de linie
e=numele intern al fisierului
v1,v2...=sint variabile numerice sau siruri in care se memoreaza
cimpurile de inregistrare citite.
Instructiunea PRINT permite transferul datelor din memorie catre un fisier
deschis la iesire pentru WRITE(LP:TT:) sau pe alt tip de memorie externa
Formatul general este; nl PRINT e,l
unde nl=numarul de linie al instructiunii
e=numarul intern al fisierului in care se scrie (n=1-8)
l=lista de elemente formulate corect in limbaj BASIC si
despartite intre ele prin virgula sau prin punct si virgula al caror
continut se va scrie in fisier-datele trebuie separate intre ele prin
virgula.
Instructiunea PRINT USING are aceeasi semnificatie ca si PRINT dar datele
imprimate vor avea formatul de editare specificat prin instructiune.
Instructiunea MAT INPUT extrage(citeste) date dintr-un fisier sau dintr-un
dispozitiv de intrare si le memoreaza intr-o matrice.Formatul general este
nl MAT INPUT nf,a(d1,d2)
unde nl=numarul de linie al instructiunii
nf=numele extern al fisierului in cauza
a(d1,d2)=specifica tipul de matrice in care d1 este numarul de
linii iar d2 numarul de coloane iar a este variabila numarica
sau variabila sir de identificare a matricei.
Instructiunea MAT PRINT transfera elementele unei matrici pentru a fi
memorate sau tiparite intr-un fisier.Formatul general al instructiunii;
nl MAT PRINT nf,a(d1,d2)
unde nl,nf,a,d1 si d2 au aceeasi semnificatie ca si la MAT INPUT
-168_
Pentru varianta de GW-BASIC inclusa pe discheta,si pentru aplicatiile
ce o insotesc,fisierele se incarca prin comanda LOAD urmata de o cifra de
la 1 la 9 situata intre ghilimele("1").De exemplu comanda LOAD "1" dupa
lansarea programului GW-BASIC,imediat dupa prompter-ul OK va incarca in
memorie fisierul sau aplicatia cu numarul 1 inregistrata(salvata pe disc).
Pentru selectarea unui alt fisier,se va introduce comanda NEW si apoi se
va incarca fisierul dorit,de exemplu LOAD"2".Pentru stergerea definitiva
a unui fisier se va utiliza KILL (de exemplu KILL "1") dar numai dupa ce
va asigurati ca aveti o copie de siguranta sau renuntati definitiv la
fisierul respectiv.Este bine de exersat cu fisiere de exercitiu special
create.Pentru crearea de fisiere noi se va utiliza comanda SAVE urmata
de numarul fisierului,de exemplu SAVE "3" va salva fisierul dorit si va
putea fi accesat oricind cu LOAD "3".Pe o discheta nu se pot incarca mai
mult de 9 fisiere denumite prin cifre.Este bine ca pe fiecare discheta sa
existe si programul GW-BASIC,eventual in aceeasi director,sau folder,
pentru a evita confuziile(cind programul se afla pe alta unitate de
memorie,decit aplicatiile,daca unitatea nu este de acelasi tip pot apare
cunfuzii semnalate prin mesaj de eroare).Daca programul GW-BASIC se
incarca in memoria de RAM de pe o discheta,atunci se vor putea utiliza
fisiere de pe orice alta discheta.Daca programul GW-BASIC se lanseaza de
pe hard-disc atunci el va selectiona doar aplicatiile si fisierele scrise
pe aceeasi unitate de memorie(adica tot pe hard-disc).Pentru exercitiu,
pe o discheta goala,copiati programul GW-BASIC si apoi salvati si lansati
aplicatii de program sau fisiere create de d-voastra utilizind comenzile
SAVE,LOAD si NEW.Nu stergeti fisierele de pe discheta originala.Dupa ce
sinteti expert in lansarea fisierelor,incercati sa faceti un program care
sa selecteze un anumit fel de date din toate fisierele situate pe mai
multe dischete care se incarca succesiv.Este bine ca semnificatia fiecarei
aplicatii si a fiecarui fisier de pe discheta sa fie notata pe eticheta,
astfel incit sa fie usor de identificat.Pentru orice eventualitate,este
bine sa notati continutul dischetelor si intr-un carnetel sau pe fise,
pentru a evita glumele proaste sau accidentele prin care se schimba sau
se deterioreaza etichetele.
Comenzile de lucru cu fisiere se pot lansa si utilizind tastele
programabile F1-F12,conform cu rolul lor afisat in bara de titlu(pe linia
de jos a ecranului) sau conform cu semnificatia speciala a lor programata
de utilizator dupa bunul plac.Atunci cind exista orice fel de modificari
fata de standardul de utilizare a programului,este bine sa notati pe
discheta prin indicativul ver xxx (versiunea cu numarul xxx),varianta de
program sursa utilizata si este bine sa pastrati separat o notita scrisa
cu toate modificarile facute la programul sursa.Nu va bazati pe memorie.
Aproape toti programatorii "geniali" s-au blocat in propriile inovatii.
Eforturile prea mari pentru "secretizarea si securizarea" datelor nu isi
au rostul.In informatica nu exista confidentialitate absoluta.Calculatoa-
rele nu sint concepute pentru a pastra secrete strasnice ci pentru a
pastra si prelucra cit mai multe informatii in interesul cit mai multor
utilizatori.Valoarea programelor realizate de d-voastra va creste direct
proportional cu numarul de utilizatori.Dupa ce epuizati resursele si
facilitatile oferite de BASIC,avansati spre alte programe mai performante
sau mai versatile.Dar la fel ca prima invatatoare,BASIC ramine totusi
programul cel mai simplu si cel mai frumos.SUCCES!
BIBLIOGRAFIE SELECTIVA
Initiere in structura calculatoarelor electronice
Editura TEORA-1996 ISBN973-601-297-2
Programare in limbaj de asamblare
Editura TEORA-1996 ISBN 973-601-480-0
Calculatoare numerice HARDWARE-structura si proiectare
FREDERICK HILL ,GERALD PETERSON
Microprocesoare,Microcalculatoare,Minicalculatoare
Editura Tehnica 1977
Bazele electronicii moderne
PAUL GRAY,CAMPBELL SEARLE vol 1 si 2
Editura TEHNICA 1973
Invatam microelectronica interactiva
LIVIU DUMITRASCU vol 1 si 2
Editura Tehnica 1989
Sa invatam BASIC
HORIA DUMITRASCU Editura Albatros 1987
An introduction to microcomputer
OSBORNE A. 1980
Algoritmi fundamentali
KNUTH D.E. Editura Tehnica Bucuresti 1974
Cine esti tu BASIC?
MARIAN GHEORGHE Editura AGNI Bucuresti 1994
Hello BASIC
LUMINITA STATE Editura AGNI Bucuresti 1993
Compediu de programare a minicalculatoarelor
G.DODESCU,I.ODAGESCU,P.NASTASE,C.COPOS
Editura Enciclopedica Bucuresti 1993
Aplicatii in Q BASIC
LUCIAN VASIU Editura Tehnica 1994
Q BASIC 4.5 Mediu de programare,limbaj,aplicatii
Alexandru A.Popovici Editura Promedia Plus Computers CLUJ 1995
BASIC PLUS 2 Manual de programare si operare Sistem MIX
Institutul de cercetare stiintifica si inginerie tehnologica
pentru tehnica de calcul si informatica filiala Cluj-Napoca
Tipar 118-Intreprinderea Poligrafica CLUJ
BASIC pentru FELIX M118 Manual de utilizare
Introduction to BASIC
Digital Equipement Corporation Maynard Massachusetts 1978
Fundamentals of Computer Algorithms
E.HOROWITZ,S.SAHNI Computer Science Press 1978
Limbajul BASIC pentru microcalculatoare
LUMINITA STATE Editura AGNI Bucuresti 1992
Indrumator de limbaje de programare
JITARU,MACARIE,NICULESCU Editura Tehnica 1978
Programarea calculatoarelor
I.ROSCA Litografie ASE Bucuresti 1988
Programarea calculatoarelor electronice
I.VADUVA Editura Didactica si Pedagogica Bucuresti 1982
BASIC Programe de instruire
ADRIAN VLAD Editura Stiintifica si Enciclopedica Bucuresti 1989
***-IBM BASIC Handbook,General Programming Information -1984
***GW-BASIC Interpreter User's Guide
Dostları ilə paylaş: |
|
|