Basic abc-doar



Yüklə 1,91 Mb.
səhifə20/20
tarix06.08.2018
ölçüsü1,91 Mb.
#67460
1   ...   12   13   14   15   16   17   18   19   20

-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
Yüklə 1,91 Mb.

Dostları ilə paylaş:
1   ...   12   13   14   15   16   17   18   19   20




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin