Small Basic: Şiruri


Poate vă amintiţi: acum câteva zile am vorbit despre variabile. Spuneam că sunt “ca nişte containere sau cutiuţe capabile să conţină valori. Nu valori în sens de bijuterii, ci valori numerice sau text.” Când zicem localitate=”Timisoara” se creează variabila localitate (dacă nu a fost deja creată, iniţializată anterior) şi primeşte ca valoare un text: Timisoara. Acum vine ceva ce poate fi confuz pentru unii: aparent în codul de mai jos vedem o variabilă ce memorează mai multe valori deodată – e ca şi cum cutiuţa ar avea mai multe separeuri pentru ele. Vorbim însă de şiruri: un trenuleţ cu mai multe vagoane, fiecare cu câte o valoare.

localitate[1]="Cluj-Napoca"
localitate[2]="Bucuresti"
localitate[3]="Iasi"
localitate[4]="Oradea"
localitate[5]="Brasov"
For i=1 To 5
  TextWindow.WriteLine(localitate[i])
EndFor

Ca să identificăm vagoanele acestui tren (şir), fiecare are un indice numeric. Astfel primul vagon conţine valoarea Cluj-Napoca, al doilea Bucuresti… iar ultimul e vagonul numărul cinci cu valoarea Brasov. Codul de mai sus exemplifică şi atribuirea (“scrierea”) unei valori şi “citirea” ei. La modul cel mai generic: numesir[indice]=valoare. Un şir, ca şi o variabilă, nu trebuie iniţializat: aceasta se întâmplă automat la prima folosire. Şi… pe când lucrurile păreau clare să ajungem iarăşi în ceaţă… să mai spunem un lucru: indicii unui şir nu trebuie să fie nici consecutivi şi nici măcar numerici. Ar trebui să ne ajute să înţelegem şirurile cu indici nenumerici următorul cod:

persoana["nume"]="Popescu"
persoana["prenume"]="Ion"
persoana["varsta"]=34
TextWindow.WriteLine(persoana["prenume"]+" "+persoana["nume"]+" are "+persoana["varsta"]+" de ani.")

În fine, acum că aceste noţiuni au fost cât de cât explicate să vedem un exemplu ce evident se foloseşte de şiruri. Se generează mai multe numere aleatoare (sau în noua exprimare: un şir de numere aleatoare) şi trebuie aflat care este maximul.

For i=1 To 10
  sir[i] = Math.GetRandomNumber(100)
EndFor
TextWindow.WriteLine("Avem un sir de numere aleatoare.")
For i=1 To 10
  TextWindow.Write("sir["+i+"]="+sir[i]+" ")
EndFor
TextWindow.WriteLine("")
maxim=0
imaxim=0
For i=1 To 10
  If sir[i]>maxim Then
    maxim=sir[i]
    imaxim=i
  EndIf
EndFor
TextWindow.WriteLine("Cel mai mare numar din sir este al "+imaxim+"-lea, adica "+maxim+".")

În primele trei linii de cod am generat şirul. În liniile 5-7 am afişat şirul generat. În liniile 9 şi 10 am iniţializat cu 0 două variabile ce memorează maximul curent şi indicele maximului curent, aşa după cum sunt găsite în bucla ce începe în linia 11. La final, linia 17, afişăm rezultatul final. Cu aceasta am terminat partea de bază. Ceea ce ar urma ar fi clasele pe care le oferă Small Basic (altele decât cele pomenite), iar dintre ele în primul rând cele grafice.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *