User Tools

Site Tools


ro:arrays

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ro:arrays [2016/01/01 22:48]
127.0.0.1 external edit
ro:arrays [2020/02/28 10:46] (current)
Line 1: Line 1:
-===== Matrici ===== +===== Tablouri ===== 
-Matricile sunt alocate folosind comanda DIM sau redimensionate folosind REDIM. Ele pot contine date numerice sau siruri. Accesarea unui element al matricii se face folosind paranteze patrate impreuna cu offset-ul elementului, incepand cu elementul zero.\\ Matricile pot sa aiba si doua dimensiuni.\\ +Tablourile sunt alocate folosind instrucțiunea [[DIM|DIM]] sau redimensionate folosind [[REDIM|REDIM]]. Ele pot conține date numerice sau șiruri de caractere. Accesarea unui element dintr-un tablou se face folosind paranteze drepte împreună cu numărul elementului din acel tablouîncepând cu zero. Tablourile pot să aibă și două dimensiuni.\\ 
-Dimensiunile matricilor pot fi extrase folosind [?] [?,] si [,?] la sfarsitul variabilei matricii.+[[arraylength|Dimensiunile variabilelor tablou]] pot fi extrase folosind [?] [?,] și [,?] la sfârșitul variabilei de tip tablou. 
 +==== Atribuirea de valori ==== 
 +Valorile pot fi atribuite unui tablou în unul din cele cinci moduri:
  
 +1. Prin utilizarea instrucțiunii [[dim|Dim]] pentru a rezerva spațiu în memoria calculatorului pentru tablou și apoi prin atribuirea de valori pentru fiecare element în parte:
 +<code>
 +dim a(10)
 +for t = 0 to a[?]-1
 +    a[t] = t
 +next t
 +</code>
 +2. Prin utilizarea unei [[lists|liste]] pentru a crea și a atribui valorile pentru un tablou printr-o singură comandă.
 +<code>
 +a = {{0,1,2},{3,4,5},{6,7,8}}
 +</code>
 +sau
 +<code>
 +b[] = {1,2,3,4}
 +</code>
 +3. Prin copierea unui tablou existent într-un alt tablou astfel creat (cu sau fără utilizarea instrucțiunii [[dim|dim]]).
 +<code>
 +a = {1,2,3,4}
 +dim b = a[]
 +c = a
 +</code>
 +4. Prin folosirea funcțiilor [[explode|Explode]] sau [[explodex|Explodex]] care au rolul de a împărți în bucăți un șir de caractere și de a le transforma într-un tablou.
 +<code>
 +a = explode("how now brown cow"," ")
 +</code>
 +5. Prin folosirea operatorului de atribuire [[fill|fill]] (cu sau fără utilizarea instrucțiunii [[dim|dim]])
 +<code>
 +dim c fill "stuff"
 +dim e[] fill 0
 +b fill ""
 +a[] fill -1
 +</code>
  
-==== Example ====+==== Convenții de notație ==== 
 +La punctul 2 din exemplele de mai sus am avut 2 variante:
 <code> <code>
-print myarray[4]+a = {{0,1,2},{3,4,5},{6,7,8}}
 </code> </code>
-va afisa pe ecran al cinci-lea element al matricii 'myarray'.+și 
 +<code> 
 +b[] = {1,2,3,4} 
 +</code> 
 +După cum se poate observa, în primul caz numele variabilei tablou nu a fost însoțit de paranteze drepte ''[ ]'' ca în cel de-al doilea caz. Ideea este că o variabilă tablou poate fi folosită la fel de bine fără paranteze drepte acolo unde sintaxa permite acest lucru, însă recomandăm folosirea acestora ca în cazul al doilea. Prin acesta codul scris devine mult mai ușor de citit pentru că utilizatorul va ști că numele variabilei se referă la un tablou și nu la o simplă variabilă și va reduce confuzia dintre o variabilă și un tablou de elemente. 
 + 
 +Mai mult, în exemplul 3 am avut: 
 +<code> 
 +dim b = a[] 
 +c = a 
 +</code> 
 +Aceste două linii puteau fi scrise în oricare din variantele: 
 +<code> 
 +dim b = a 
 +dim b = a[] 
 +dim b[] = a 
 +dim b[] = a[] 
 + 
 +c = a 
 +c = a[] 
 +c[] = a 
 +c[] = a[] 
 +</code> 
 + 
 +Totuși, în cazul în care se folosesc parantezele drepte în cazul variabilei ''a[]'', programul va face o verificare suplimentară ca să se asigure că numele variabilei se referă într-adevăr la un tablou și nu la o simplă variabilă. În cazul în care aceasta nu ar fi un tablou programul se oprește și va indica faptul că acea variabilă nu este un tablou, așa cum se aștepta. 
 + 
 +În același mod, în cazul în care se folosesc parantezele drepte în cazul variabilei ''c[]'', programul se va asigura de faptul că acesta va fi inițializată cu un tablou, nu cu o simplă variabilă. Astfel, în cazul în care variabila ''a'' nu ar fi un tablou, programul se oprește și va indica faptul că se aștepta la un tablou.
  
 +==== Istoric ====
 +|1.99.99.55|S-a adăugat posibilitatea copierii dintr-un tablou într-altul|
 +|1.99.99.57|S-a adăugat operatorul [[fill|fill]]|
  
ro/arrays.1451713738.txt.gz · Last modified: 2020/02/28 10:46 (external edit)