 |
 |
CUPRINS> Obiectele interne String, Array |
INTRO |
|
|
 |
|
|
|
|
|
|
 |
 |
 |
 |
|
| |
Obiectul String. Aplicații |
|
|
| |
 |
|
|
|
 |
 |
 |
JavaScript stochează șirurile de caractere ca obiecte String. |
 |
|
 |
 |
Fișa obiectului String este prezentată în figura 4.2. |
 |
|
 |
| Figura 4.2 |
 |
 |
|
| Fisa obiectului String |
| Cum se creeaza obiectul? |
Constructorul String() |
Proprietati:
|
length |
| Metode: |
anchor(), big(), blink(), bold(), charAt(), charCodeAt(),
concat(), fixed(), fontcolor(), fontsize(), fromCharCode(), indexOf(), italics(),
lastindexOf(), link(), match(), replace(), search(), slice(), small(), split(),
strike(), sub(), substr(), substring(), sup(), toLowerCase(), toString(), toUpperCase() |
| Gestionarii de evenimente: |
- |
|
|
|
|
top |
|
|
|
 |
 |
 |
Constructorul String() creează un nou șir de caractere. |
 |
|
 |
 |
Constructorul String() este prezentat în detaliu în figura 4.3. |
 |
|
 |
| Figura 4.3 |
 |
 |
|
| |
Constructor |
Sintaxa |
| String() |
variabila=new String()
variabila=new String(sir)
variabila=sir |
| Descriere |
Se poate crea un sir de caractere
vid sau transmitând ca argument constructorului sirul de caractere care
va contine noul obiect String. Crearea sirurilor de caractere este de cele mai
multe ori implicita.
Constructorul String() poate fi de asemenea utilizat ca functie. În acest
caz el converteste valoarea în sir de caractere. Daca nici o valoare nu
este transmisa functiei, atunci acesta returneaza un sir vid. |
| Exemplu |
<script>
//creare implicita a sirurilor de caractere   anotimp="toamna";
  celebrul="702";
//String() utilizat ca functie   a=7;   b=FALSE;
  document.write(String(a)+"<br />");   document.write(String(b)+"<br
/>"); </script> |
|
|
|
|
 |
|
 |
 |
Proprietățile obiectului String sunt prezentate în detaliu în figura 4.4. |
 |
|
 |
| Figura 4.4 |
 |
 |
|
| |
Proprietate |
Sintaxa |
| length |
sir.length |
| Descriere |
Contine lungimea sirului de
caractere. |
| Exemplu |
<script>  
demo_sir="Învatati sa priviti dincolo de aparente!";  
lungime=demo_sir.length;   //afiseaza 40 </script> |
|
|
|
|
|
|
 |
 |
 |
 Metodele obiectului String |
 |
 |
Metodele obiectului String pot fi clasificate după cum urmează:
– Metode pentru formatarea șirurilor de caractere – big(), blink(), bold(), fontcolor(), fontsize(), italics(), small(), strike(), sub(), sup().
– Metode pentru manipularea șirurilor de caractere – anchor(), charAt(), charCodeAt(), concat(), fixed(), fromCharCode(), indexOf(), lastIndexOf(), link(), match(), replace(), search(), slice(), split(), substr(), substring(), toLowerCase(), toString(), toUpperCase().
|
 |
|
 |
|
 |
 |
Metodele obiectului String pentru formatarea șirurilor de caractere sunt prezentate în detaliu în figura 4.5. |
 |
|
 |
| Figura 4.5 |
 |
 |
|
| |
Metode |
Sintaxa |
| big() |
sir.big() |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <big>...</big>. |
| Exemplu |
<script>   demo_sir="Învatati
sa priviti dincolo de aparente!";   nou_demo_sir=demo_sir.big();
  document.write(nou_demo_sir); </script> |
| |
blink() |
sir.blink() |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <blink>...</blink>. |
| Exemplu |
<script>   demo_sir="Învatati
sa priviti dincolo de aparente!";   nou_demo_sir=demo_sir.blink();
  document.write(nou_demo_sir); </script> |
| |
bold() |
sir.bold() |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <bold>...</bold>. |
| Exemplu |
<script>   demo_sir=
"Învatati sa priviti dincolo de aparente!";   nou_demo_sir=demo_sir.bold();
  document.write(nou_demo_sir); </script> |
| |
fontcolor() |
sir.fontcolor(sir) |
| Descriere |
Atribuie sirului de caractere
culoarea indicata în tag-ul <font> de atributul color. |
| Exemplu |
<script>   demo_sir=
"Învatati sa priviti dincolo de aparente!";   nou_demo_sir=demo_sir.fontcolor("#FF0000");
  document.write(nou_demo_sir); </script> |
| |
fontsize() |
sir.fontsize(Valoare) |
| Descriere |
Atribuie sirului de caractere
dimensiunea indicata cu tag-ul <font> de atributul size. |
| Exemplu |
<script>   demo_sir=
"Învatati sa priviti dincolo de aparente!";   nou_demo_sir=demo_sir.fontsize(4);
  document.write(nou_demo_sir); </script> |
| |
italics() |
sir.italics(sir) |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <i>...</i>. |
| Exemplu |
<script>   demo_sir=
"Învatati sa priviti dincolo de aparente!";   nou_demo_sir=demo_sir.italics();
  document.write(nou_demo_sir); </script> |
| |
small() |
sir.small(sir) |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <small>...</small>. |
| Exemplu |
<script>   demo_sir=
"Învatati sa priviti dincolo de aparente!";   nou_demo_sir=demo_sir.small();
  document.write(nou_demo_sir); </script> |
| |
strike() |
sir.strike() |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <strike>...</strike>. |
| Exemplu |
<script>   demo_sir=
"Învatati sa priviti dincolo de aparente!";   nou_demo_sir=demo_sir.strike();
  document.write(nou_demo_sir); </script> |
| |
sub() |
sir.sub() |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <sub>...</sub>. |
| |
sup() |
sir.sup() |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <sup>...</sup>. |
|
|
|
|
 |
|
 |
 |
Metodele obiectului String pentru manipularea șirurilor de caractere sunt prezentate în detaliu în figura 4.6. |
 |
|
 |
| Figura 4.6 |
 |
 |
|
| |
Metode |
Sintaxa |
| anchor() |
sir.anchor(sir) |
| Descriere |
Converteste un sir de caractere
într-o ancora numita cu tag-ul <a> si atributul name. |
| |
charAt() |
sir.charAt(Valoare) |
| Descriere |
Returneaza caracterul pozitionat
în sirul de caractere. |
| Exemplu |
<script>   vocale="aeiou";
  r=vocale.charAt(3);   document.write(r);   //afiseaza
o </script> |
| |
charCodeAt() |
sir.charCodeAt(Valoare) |
| Descriere |
Returneaza valoarea codului
Unicode al caracterului situat în pozitia indicata în sirul de caractere. |
| |
concat() |
sir.concat(sir) |
| Descriere |
Adauga un nou sir de caractere
la sfârsitul unui alt sir de caractere. Metoda este echivalenta cu operatorul
+. |
| Exemplu |
<script>   sir_1=sir_1.concat("Felicitari
pentru rabdarea de a ne fi descoperit!");   document.write(sir_1);
</script> |
| |
fixed() |
sir.fixed() |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <tt>...</tt>. |
| |
fromCharCode() |
sir.fromCharCode(Valoare) |
| Descriere |
Returneaza codul Unicode corespunzator
caracterului indicat. |
| |
indexOf() |
sir.indexOf(Sir,Valoare) |
| Descriere |
Cauta un caracter într-un
sir de caractere si returneaza indexul primei aparitii (primul caracter are indexul
0). Metoda face diferenta între majuscule si minuscule. În caz contrar
metoda returneaza valoarea -1. |
| Exemplu |
<script>   email="ld@canaba.com";
  r=email.indexOf("@");   document.write(r);
  //afiseaza 2 </script> |
| Exemplu |
<script>   email="pepito@brazil.com";
  r=email.indexOf("i",6);   document.write(r);
  //afiseaza 11 </script> |
| Exemplu |
<script>   email="ld@canaba.com";
  r=email.indexOf("canaba");   document.write(r);
//afiseaza 3 </script> |
| |
lastIndexOf() |
sir.lastIndexOf(sir) |
| Descriere |
Cauta ultima aparitie a sirului
de caractere si returneaza indexul pozitiei sale. În caz de esec, se returneaza
valoarea -1. Metoda face deosebire între majuscule si minuscule.sup()sir.sup() |
| Exemplu |
<script>   email="ld@canaba.com";
  r=email.lastindexOf("@");   document.write(r);
  //afiseaza 2 </script> |
| |
link() |
sir.link(sir) |
| Descriere |
Încadreaza un sir de
caractere cu tag-urile <a>..</a>. |
| |
match |
sir.match(expresieregulata) |
| Descriere |
Cauta o expresie regulata într-un
sir de caractere si returneaza rezultatul într-o matrice. În caz de
esec, metoda returneaza valoarea null. |
| Exemplu |
<script>   model=/\d{1,3}/;
adresa="195.14.45.78";   document.write(adresa.match(model));
</script> |
| |
replace() |
sir.replace(expresieregulata,
sir) |
| Descriere |
Cauta o expresie regulata si
înlocuieste caracterele gasite prin sirul de caractere indicat în
cel de-al doilea argument. În caz de esec, înlocuirea nu se efectueaza. |
| Exemplu |
<script>   model=/ION/i;
  text="ion@yahoo.com";   r=text.replace(model."ION");
  document.write(r); //afiseaza yahoo.com </script> |
| |
search() |
sir.search(expresieregulata) |
| Descriere |
Cauta o expresie regulata într-un
sir de caractere si returneaza valoarea pozitiei primului caracter gasit. În
caz de esec, metoda returneaza valoarea -1. |
| Exemplu |
<script>   model=/pion/i;
  text="Nebunul si Pionul";   document.write(text.search(model));
  //afiseaza 11 </script> |
| |
slice() |
sir.slice(Valoare1,Valoare2) |
| Descriere |
Extrage o parte dintr-un sir
de caractere si returneaza sirul extras. |
| Exemplu |
<script>   text=liv@canaba.com;
  a=text.slice(4,100);   document.write(a);
  //afiseaza canaba.com </script> |
| Exemplu |
<script>   text="ion@yahoo.com";
  rezultat=text.slice(0,3);   document.write(rezultat);
  //afiseaza ion </script> |
| |
split() |
sir.split(sir) |
| Descriere |
Divizeaza un sir de caractere
în subsiruri si returneaza o matrice. Metoda recunoaste expresiile regulate. |
| |
substr() |
sir.substr(Valoare1,Valoare2) |
| Descriere |
Extrage o parte din sirurile
de caractere si returneaza sirul extras. |
| Exemplu |
<script>   text="ion@yahoo.com";
  r=text.substr(0,3);   document.write(r);
  //afiseaza ion </script> |
| |
substring() |
sir.substring(Valoare1,Valoare2) |
| Descriere |
Extrage o parte dintr-un sir
de caractere si returneaza sirul extras. |
| Exemplu |
<script>   email="ion@yahoo.com";
  r=email.substring(0,3);   document.write(r);
//afiseaza ion </script> |
| |
toLowerCase() |
sir.toLowerCase() |
| Descriere |
Converteste un sir de caractere
în minuscule. |
| Exemplu |
<script>   text="Mitica
si Petrica";   r=text.toLowerCase();   document.write(r);
  //afiseaza mitica si petrica </script> |
| |
toString() |
sir.toString() |
| Descriere |
Converteste o valoare numerica
sau booleana în sir de caractere. |
| Exemplu |
<script>   a=TRUE;
b=314;   document.write(a.toString()+",");   document.write(b.toString());
  //afiseaza TRUE,314 </script> |
| |
toUpperCase() |
sir.toUpperCase(sir) |
| Descriere |
Converteste un sir de caractere
în majuscule. |
| Exemplu |
<script>   email="ion@yahoo.com";
  rezultat=email.toUpperCase();   document.write(rezultat);
  //afiseaza ION@YAHOO.COM </script> |
|
|
|
|
top |
|
 |
 |
 |
 |
|
| |
Obiectul Array. Aplicații |
|
|
| |
 |
|
|
|
 |
 |
 |
Aplicațiile din conversațiile anterioare au fost construite pe tipuri de date simple cărora le-au fost asociate variabile simple.
Sunteți un ... gurmand de variabile? Dacă da, folosiți obiectul intern Array (matrice).
O matrice (array) este o listă de valori sau de referințe către alte obiecte. O matrice poate conține, de exemplu o listă de date numerice sau alfanumerice. |
 |
|
 |
 |
Fișa obiectului intern Array este prezentată în figura 4.7. |
 |
|
 |
| Figura 4.7 |
 |
 |
|
| Fisa obiectului Array |
| Cum se creeaza obiectul? |
constructorul Array() |
Proprietati:
|
length |
| Metode: |
concat(), join(), pop(), push(), reverse(), shift(),
slice(), sort(), splice(), toString(), unshift() |
| Gestionarii de evenimente: |
- |
|
|
|
|
top |
|
|
|
 |
 |
 |
Pentru a crea o nouă matrice, utilizați constructorul Array(). |
 |
|
 |
 |
Constructorul Array()este prezentat în detaliu în figura 4.8. |
 |
|
 |
| Figura 4.8 |
 |
 |
|
| |
Constructor |
Sintaxa |
| Array() |
variabila=new Array()
variabila=new Array(numar_elemente)
variabila=new Array(element1,element2,...)
variabila=[]
variabila=[,,,,]
variabila=[element1,element2,…] |
| Descriere |
Creeaza o noua matrice. Noua
matrice poate fi vida, dimensiunea sa (numarul de elemente) poate fi predefinita
sau poate fi, de asemenea initializata cu o lista de elemente. Numerotarea elementelor
unei matrici începe de la zero. Spre deosebire de majoritatea tipurilor
de variabile JavaScript, array-urile trebuie sa fie declarate înainte de
a fi utilizate. Începând cu versiunea 1.2 JavaScript, instructiunea
new Array() nu mai este indispensabila. Se pot utiliza, în mod simplu parantezele
drepte ([]). În limbajul JavaScript nu se pot crea matrici cu mai multe
dimensiuni, dar puteti imbrica mai multe matrici. Începeti prin a crea o
matrice clasica (cu o dimensiune) iar apoi, în fiecare element al vectorului
inserati câte un array. |
| Exemplu |
<script>   ListaCulori=new
Array();   ListaCulori=["rosu","galben","albastru"];
</script> |
| Exemplu |
<script>   ListaCulori=new
Array(7); </script> |
| Exemplu |
<script>   ListaCulori=new
Array("rosu","galben","albastru");
</script> |
| Exemplu |
<script>   ListaCulori=["rosu","galben"];
</script> |
| Exemplu |
<script>   culoare1="rosu";
  culoare2="galben";   culoare3="albastru";
  ListaCulori=[culoare1,culoare2, culoare3]; </script> |
| Exemplu |
| Tabelul 1 |
| a11 |
a12 |
a13 |
a14 |
| a21 |
a22 |
a23 |
a24 |
a31 |
a32 |
a33 |
a34 |
|
|
<script>   //creare matrice (vezi tabelul 1) cu
trei linii si patru coloane   linie=new Array(3);   linie[0]=new
Array("a11","a12","a13","a14");   linie[1]=new
Array("a21","a22","a23","a24");   linie[2]=new
Array("a31","a32","a33","a34");   document.write(linie[1][2]+"<br>");
//Se afiseaza a23   document.write(linie[0]);
//Se afiseaza a11, a12, a13, a14 </script> |
| Exemplu |
<script>   ListaCulori=new
Array("rosu","galben","albastru","verde");
  document write(ListaCulori+"<br />");
//Se afiseaza rosu, galben, albastru, verde   ListaCulori[1]="violet";
  document.write(ListaCulori);
//Se afiseaza rosu, violet, albastru, verde </script> |
| Exemplu |
<script>
/*Crearea unei matrici si modificarea celui de-al doilea element*/   mere=new
Array("ionatan","cretesti","dulci");   document.write(mere+"<br>");
//Se afiseaza ionatan, cretesti, dulci   mere[1]="parmen-auriu";
  document.write(mere); </script> |
| Exemplu |
<script>
/*Afisarea elementelor unei matrici cu o bucla for*/   student=new
Array("Alin","Bogdan","Catalin","Dan");
  for(i=0;i<4;i++){     document.write(student[i]+"<br>");
  } </script> |
|
|
|
|
 |
|
 |
 |
Proprietățile obiectului Array()sunt prezentate în detaliu în figura 4.9. |
 |
|
 |
| Figura 4.9 |
 |
 |
|
| |
Proprietate |
Sintaxa |
| length |
matrice.length |
| Descriere |
Contine numarul de elemente
al unei matrici. Puteti modifica valoarea acestei proprietati. Reducând
numarul de elemente, elementele se suprima pornind din dreapta matricii. |
| Exemplu |
<script>   lista_numere=new
Array(3,7,9,50,20,23,2);   document.write(lista_numere.length+"
numere");
//Se afiseaza 7 numere </script> |
| Exemplu |
<script>   lista_numere=new
Array(6,9,7,56,48);   document.write(lista_numere.length+"
numere <br>");   for(i=0;i<lista_numere.length,i++){
    document.write(lista_numere[i]+'-');   }
  lista_numere.length-=2;   document.write("<br>"+lista_numere.length+"
numere <br>");   for(i=0;i<lista_numere.length;i++){
    document.write(lista_numere[i]+" -");
  } </script> |
|
|
|
|
 |
|
 |
 |
Metodele obiectului Array sunt prezentate în detaliu în figura 4.10. |
 |
|
 |
| Figura 4.10 |
 |
 |
|
| |
Metoda |
Sintaxa |
| concat() |
matrice=matrice.concat(matrice)
matrice=matrice.concat(Element1, Element2,...) |
| Descriere |
Metoda este utilizata pentru
concatenarea a doua matrici. |
| Exemplu |
<script language="javascript"
type="text/javascript">   //concatenarea a doua
matrici   lista_numere1=new Array(6,9,7);   lista_numere2=new
Array(5,68);   lista_numere3=lista_numere1.concat(lista_numere2);
  document.write(lista_numere3.length+" numere <br />");
  for(i=0;i<lista_numere3.length;i++){     document.write(lista_numere3[i]+"-");
  } </script> |
| Exemplu |
<script language="javascript"
type="text/javascript">   //concatenarea a doua
matrici   lista_numere1=new Array(6,9,7);   lista_numere3=lista_numere1.concat(13,22);
  document.write(lista_numere3.length+" numere <br />");
  for(i=0;i<lista_numere3.length;i++){     document.write(lista_numere3[i]+"-");
  } </script> |
| |
join() |
matrice.join()
matrice.join("Separator") |
| Descriere |
Metoda este utilizata pentru
convertirea unei matrici într-un sir de caractere. Argumentul "Separator"
serveste la separarea elementelor in sir. Fara argument, metoda join() utilizeaza
virgula. |
| Exemplu |
<script>   subsir=new
Array (6,9,7);   sir=subsir.join();   document.write(sir+"<br
/>");   sir=subsir.join("*"); document.write(sir);
</script>
Rezultatele executiei script-ului
6,9,7   6*9*7 |
| |
pop() |
matrice.pop() |
| Descriere |
Metoda suprima ultimul element
al unei matrici. Proprietatea length este modificata în mod automat. Metoda
returneaza valoarea elementului suprimat. Metoda pop() nu cere nici un argument. |
| Exemplu |
<script language="javascript"
type="text/javascript">   lista=new Array(1,9,47);
  el_suprimat=lista.pop();   document.write("Elementul
suprimat: "+el_suprimat+"<br />");   document.write(lista);
</script> |
| |
push() |
matrice.push() |
| Descriere |
Metoda adauga noi elemente
la sfârsitul matricii. Proprietatea length este modificata în mod
automat. |
| Exemplu |
<script language="javascript"
type="text/javascript">   culori=new Array("rosu","galben");
  adauga=culori.push("albastru");   document.write("Numarul
de elemente: "culori.length+ "<br />");   document.write(culori);
</script> |
| |
reverse() |
matrice.reverse() |
| Descriere |
Metoda inverseaza ordinea elementelor
unei matrici (nu cere nici un argument). |
| Exemplu |
<script language="javascript"
type="text/javascript">   culori=new Array("rosu","galben","albastru");
  document.write(culori+"<br />");   culori_invers=culori.reverse();
  document.write(culori); </script> |
| |
shift() |
matrice.shift() |
| Descriere |
Metoda suprima primul element
al unei matrici. Elementul de rang 1 devine de rang 0, cel de rang 2 devine de
rang 1 s.a.m.d. Proprietatea length se modifica în mod automat. Metoda returneaza
valoarea elementului suprimat si nu cere nici un argument. |
| Exemplu |
<script language="javascript"
type="text/javascript">   lista_numere=new Array(13,20,22);
  suprim=lista_numere.shift();   document.write("Elementul
suprimat: "+suprim+"<br />");   document.write(lista_numere);
</script> |
| |
slice() |
matrice.slice(ValoareNumerica1,
ValoareNumerica2) |
| Descriere |
Metoda extrage elementele unei
matrici si returneaza o noua matrice care contine aceste elemente. Matricea initiala
nu este modificata. Elementele extrase depind de doua argumente: ValoareNumerica1
(indica rangul primului element care urmeaza a fi extras), ValoareNumerica2 (indica
rangul imediat urmator ultimului element care urmeaza a fi extras). Daca primul
argument este negativ, atunci rangul se calculeaza pornind de la sfârsitul
matricii. El este întotdeauna de rang 0. Daca cel de-al doilea argument
este negativ, el indica rangul (calculat, pornind de la sfârsitul matricii)
ultimului element care urmeaza a fi extras. Daca nu este mentionat, caracterele
sunt extrase începând cu rangul furnizat de primul argument pâna
la sfârsitul matricii. |
| Exemplu |
<script language="javascript"
type="text/javascript">   lista_numere=new Array(1,2,3,4,5,6,7,8);
  lista_1=lista_numere.slice(2,5);   document.write(lista_1+"<br
/>");   //se afiseaza 3,4,5   lista_2=lista_numere.slice(3);
  document.write(lista_2+"<br />");   //se
afiseaza 4,5,6,7,8   lista_3=lista_numere.slice(2,-1);
  document.write(lista_3+"<br />");   //se
afiseaza 3,4,5,6,7   lista_4=lista_numere.slice(-2);   document.write(lista_4+"<br
/>"); //se afiseaza 7,8 </script> |
| |
splice() |
matrice.splice(Rang,NumarElemente,
Element1,Element2,...) |
| Descriere |
Metoda suprima elementele unei
matrici si le înlocuieste cu altele. Rang-ul elementului de la care trebuie
sa înceapa suprimarea elementelor matricii este obligatoriu. Al doilea argument
(NumarElemente) precizeaza numarul elementelor ce urmeaza a fi suprimate. Argumentele
urmatoare (Element1,Element2,...) reprezinta elementele care urmeaza a fi inserate
în matrice începând cu rangul indicat pentru primul element.
Metoda returneaza lista elementelor suprimate. |
| Exemplu |
<script language="javascript"
type="text/javascript">   lista_numere=new Array(1,2,3,4,5,6,7,8);
  a=lista_numere.splice(2,2,35,36);   document.write("Numere:
"lista_numere+"<br />");   //se afiseaza
1,2,35,36,5,6,7,8 </script> |
| |
toString() |
matrice.toString() |
| Descriere |
Metoda returneaza continutul
unei matrici sub forma unui sir de caractere. |
| Exemplu |
<script language="javascript"
type="text/javascript">   culori=new Array("rosu","galben","albastru");
  a=culori.toString();   document.write(a);
  //se afiseaza rosu,galben,albastru </script> |
| |
unshift() |
matrice.unshift(Element1,Element2,..) |
| Descriere |
Metoda insereaza la începutul
matricii elementele pe care le mentionati. Proprietatea length este modificata
în mod automat. |
| Exemplu |
<script language="javascript"
type="text/javascript">   culori=new Array("rosu","galben","albastru");
  culori.unshift("verde","violet");   document.write(culori);
  //se afiseaza verde,violet,rosu,galben,albastru </script> |
| |
sort() |
matrice.sort()
matrice.sort(Functie) |
| Descriere |
matrice.sort() sau metoda sort
fara argument sorteaza elementele unei matrici care contine valori alfanumerice;
matrice.sort(Functie) permite sortarea valorilor numerice. Functie primeste doi
parametri si returneaza o valoare numerica. |
| Exemplu |
 |
| |
Rezultatele executiei script-ului: |
| |
 |
| Exemplu |
 |
| Exemplu |
 |
| Exemplu |
 |
| Exemplu |
 |
| Exemplu |
 |
| |
Rezultatele executiei script-ului: |
| |
 |
|
|
|
|
top |
|
|
|
 |
 |
 |
 |
 Formularea problemei |
 |
 |
Problema care se pune acum seamănă cu celelalte, dar ... este puțin mai complicată. Se citesc de la tastatură, într-o matrice livrările de benzină efectuate zilnic (luni, marți, miercuri, joi, vineri) din cele trei rezervoare (cilindrice echilaterale) R1, R2, R3. Se dorește ca, pentru fiecare rezervor în parte, să se afișeze, pe zile, cantitățile de benzină livrate beneficiarilor. Se va tipări, de asemenea, media livrărilor pe zile și pe rezervoare. La finele raportului se vor afișa maximul și minimul livrărilor, precizându-se atât rezervorul cât și ziua respectivă. |
 |
|
 |
|
 |
| Figura 4.12 |
 |
 |
|
|
Tabela de variabile |
| Variabile de intrare |
Variabile de stare |
Variabile de iesire |
a: matricea livrarilor pe zile si rezervoare
|
st: livrarile totale pe zile si rezervoare
s: sume partiale, livrari pe zile
z: vectorul numelor zilelor saptamânii
imax, imin, jmax, jmin: indicii livrarilor maxime si minime din matricea a
|
b: vectorul livrarilor medii zilnice
d: vectorul livrarilor medii pe rezervoare
max: maximul livrarilor
min: minimul livrarilor |
|
|
|
|
 |
| Figura 4.13 |
 |
 |
|
|
Specificatii de programare |
Descriere. Programul editeaza
situatia livrarilor de benzina efectuate zilnic din trei rezervoare cilindrice
echilaterale.
Livrarile, pe zile si pentru fiecare rezervor în parte, se citesc de la
tastatura. Programul mai afiseaza maximul si minimul livrarilor însotite
de rezervorul si ziua respective.
Intrari. Matricea livrarilor pe rezervoare si zile.
Iesiri. Lista cu situatia livrarilor.
Lista de functiuni ale script-ului |
1. Citeste livrarile zilnice
de benzina (luni, marti, miercuri, joi, vineri) pentru rezervorul R1.
2. Citeste livrarile zilnice de benzina (luni, marti, miercuri,
joi, vineri) pentru rezervorul R2.
3. Citeste livrarile zilnice de benzina (luni, marti, miercuri,
joi, vineri) pentru rezervorul R3.
4. Calculeaza media livrarilor pe zile.
5. Calculeaza media livrarilor pe rezervoare.
|
6. Calculeaza maximul livrarilor.
7. Calculeaza minimul livrarilor.
8. Afiseaza maximul livrarilor, numarul rezervorului si ziua.
9. Afiseaza minimul livrarilor, numarul rezervorului si ziua.
10. Trunchiaza media (livrarilor pe zile si pe rezervoare).
11. Stop |
|
|
|
|
 |
|
 |
 |
În figura 4.14 se prezintă pseudocodul, varianta formalizată. |
 |
|
 |
| Figura 4.14 |
 |
 |
|
|
Pseudocodul |
Exemplul5 BEGIN
//initializeaza vectorul Z cu numele zilelor
z=luni,marti,miercuri,joi vineri
//aloca spatiu de memorie si
//citeste livrarile pe fiecare rezervor
de la tastatura
LIVI FOR(i=0;i<3;i++)
LIVJ FOR(j=0;j<5;j++)
READ ai,j
LIVJ ENDFOR
LIV ENDFOR
// aloca spatiu de memorie pentru vectorul
b si d
// calculeaza mediile pe rezervoare
FORJ FOR(j=0;j<5;j++)
s=0
FORI FOR(i=0;i<3;i++)
s=s+ai,j
FORI ENDFOR
bj=s/3
FORJ ENDFOR
// calculul mediilor pe rezervoare
st=0
FORMEDII FOR(i=0;i<3;i++)
s=0
FORMEDIIJ FOR(j=0;j<5;j++)
s=s+ai,j
st=st+aij
FORMEDIIJ ENDFOR
di=s/5
FORMEDII ENDFOR
d3=s/15
// determinarea maximului si minimului
max=a0,0
min=a0,0
imax=0
imin=0
jmax=0
jmin=0
FORMAXI FOR(i=0;i<3;i++)
FORMAXJ FOR(j=0;j<5;j++)
IFMAX IF(max<ai,j)
max=aij
imax=i
jmax=j
IFMAX ENDIF
IFMIN IF(min>ai,j)
min=aij
imin=i
jmin=j
IFMIN ENDIF
FORMAXJ ENDFOR
FORMAXI ENDFOR
imin=imin+1
imax=imax+1
//afisare rezultate
WRITE "SITUATIA REZERVOARELOR R1 R2 R3"
WRITE "ZIUA R1 R2 R3 MEDIA"
FORK FOR(k=0;k<5;k++)
WRITE Z[k]
FORJ FOR(j=0;j<3;j++)
WRITE a[j][k]
FORJ ENDFOR
WRITE trunchiaza( b[k])
FORK ENDFOR
WRITE "MEDIA"
FORTRUNC FOR(j=0;j<4;j++)
WRITE trunchiaza(d[j])
FORTRUNC ENDFOR
WRITE "Livrarea maxima: " max
WRITE "s-a facut din rezervorul: R" imax
WRITE "in ziua de" Zjmax
WRITE "Livrarea minima:" min
WRITE " s-a facut din rezervorul: R"imin
WRITE " in ziua de "+Zjmin
Exemplul5 END
// transforma o valoare reala in sir de caractere
// si trunchiaza la doua zecimale
TRUNCHIAZA BEGIN
Parametrii:
x- valoare reala
s=transforma in sir de caractere x
i=pozitia punctului zecimal in sir
IFCOPY IF(i!=-1)
s=copiazasubsir(s,0,i+2)
IFCOPY ENDIF
RETURN s
TRUNCHIAZA END
|
|
|
|
|
 |
|
 |
 |
În figura 4.15 este prezentat documentul (X)HTML complet. |
 |
|
 |
| Figura 4.15 |
 |
 |
|
|
Codificarea în limbajul JavaScript |
<html>
<head>
<title>Exemplul 4</title>
<SCRIPT LANGUAGE="JavaScript">
<!---
var Z = new Array("Luni","Marti","Miercuri","Joi","Vineri");
a=new Array(3);
a[0]=new Array(5);
a[1]=new Array(5);
a[2]=new Array(5);
for(i=0;i<3;i++)
for(j=0;j<5;j++)
{k=i+1;
a[i][j]=parseFloat(prompt("Livrare din rezervorul R"+k+"
ziua:"+Z[j],0));
}
// -->
</SCRIPT>
</head>
<body>
<center>
<h3>SITUATIA LIVRARILOR DE BENZINA PENTRU
REZERVOARELE R1 R2 R3</h3>
<SCRIPT language="JavaScript">
function rotunjeste(x)
{
var s=""+x;
i=s.indexOf(".");
if(i!=-1){
s=s.substring(0,i+3);
}
return s;
}
// CALCULUL MEDIILOR PE ZILE
var i,j;
B = new Array(5);
for(j=0;j<5;j++)
{
S=0;
for(i=0;i<3;i++)
S=S+a[i][j];
B[j]=S/3;
}
// CALCULUL MEDIILOR PE REZERVOARE
D = new Array(4);
ST=0;
for(i=0;i<3;i++)
{
S=0;
for(j=0;j<5;j++){
S=S+a[i][j];
ST=ST+a[i][j];
}
D[i]=S/5;
}
D[3]=ST/15;
// DETERMINAREA MAXIMULUI SI MINIMULUI
max=a[0][0];
min=a[0][0];
imax=0;imin=0;
jmax=0;jmin=0;
for(i=0;i<3;i++){
for(j=0;j<5;j++){
if(max<a[i][j]){max=a[i][j];imax=i;jmax=j;}
if(min>a[i][j]){min=a[i][j];imin=i;jmin=j;}
}}
imin++;imax++;
//AFISARE REZULTATE
document.writeln("<center><table border=1
BGCOLOR=#EFEFFF><tr>");
document.writeln("<td><B>ZIUA</B><td><B>R1</B><td>
<B>R2</B><td><B>R3</B><td><B>MEDIA</B></td></tr>");
for(k=0;k<5;k++)
{
document.writeln("<tr><td>" + Z[k]+"</td>");
for(j=0;j<3;j++)
{
document.writeln("<td>" + a[j][k]+ "</td>");
}
document.writeln(" <td> " +rotunjeste( B[k])+ "</TD></Tr>");
}
document.writeln("<tr><td><B>MEDIA</B>");
for(j=0;j<4;j++)
document.writeln("<td><B>" + rotunjeste(D[j])+" </B></td>");
document.writeln("</TR>");
document.writeln("</Table></center><P><P>");
document.writeln("<Font size=+1 color=green>Livrarea maxima:
"+max+" s-a facut din rezervorul: R"+imax+" in ziua de "+Z[jmax]
+"</font>");
document.writeln("<P><Font size=+1 color=green>Livrarea minima:
"+min+" s-a facut din rezervorul: R"+imin+" in ziua de "+Z[jmin]
+"</font>");
</SCRIPT>
</body>
</html> |
|
|
|
|
 |
|
|
|
 |
|
 |
Remarcă
|
 |
 |
 |
În informatică, se desemnează prin abuz de limbaj sub numele de vector, mulțimea {V(1), V(2), …, V(n)}, unde V(1), V(2), …, V(n) sunt elementele vectorului. Așadar, un vector este o mulțime de elemente identificate prin poziția pe care acestea o ocupă. Prelucrările ce se efectuează asupra unui vector sunt funcție de valoarea unui indice de poziție (0<=i<=n). Acestuia i se fixează o valoare care, în general, corespunde primei poziții, iar prelucrarea se efectuează cât timp valoarea acestui indice nu depășește o valoare finală. |
|
|
 |
|
 |
 |
În figura 4.17, 4.18, 4.19 sunt prezentate: formatul datelor de ieșire, tabela de variabile, specificațiile de programare. |
 |
|
 |
| Figura 4.17 |
 |
 |
|
| Formatul datelor
de iesire |
| RAZA |
MASA |
xx
xx
.
xx
|
xxx.xx
xxx.xx
.
xxx.xx |
| MASA TOTALA= |
xxx.xx TONE |
|
|
|
|
 |
| Figura 4.18 |
 |
 |
|
|
Tabela de variabile |
| Variabile de intrare |
Variabile de stare |
Variabile de iesire |
n: numarul de rezervoare
r: vectorul razelor rezervoarelor
|
d: densitatea benzinei
i: indicele de pozitie (indexul)
v: volumul rezervorului
s: masa totala de benzina
m: cantitatea de benzina din rezervor
|
m: cantitatea de benzina din rezervor
s: masa totala de benzina |
|
|
|
|
 |
| Figura 4.19 |
 |
 |
|
|
Specificatii de programare |
Descriere. Script-ul calculeaza
si afiseaza cantitatea de benzina (s) dintr-un numar oarecare (n) de rezervoare
cilindrice echilaterale (acest numar este furnizat ca parametru). Script-ul citeste
valorile razelor rezervoarelor într-un vector de date (r) printr-o procedura
de introducere dinamica a datelor (razele cu valori negative nu se iau în
considerare!). Pentru raze cu valori negative, script-ul afiseaza mesajul: "Raza
negativa". Valoarea densitatii benzinei (d) se introduce în mod static.
Intrari. Se introduc de la tastatura numarul rezervoarelor cilindrice
echilaterale si valorile razelor acestora.
Iesiri. Masa de benzina (m) din fiecare rezervor si masa totala
(s) de benzina.
Lista de functiuni ale script-ului
1. Citeste numar rezervoare (n).
2. Initializeaza variabila (s).
3. Atribuie variabilei d valoarea 0.7 (densitatea
benzinei).
4. Afiseaza un rând de 30 de "=".
5. Afiseaza "raza, masa".
6. Pentru fiecare rezervor (cilindric echilateral):
6.1 Citeste valoarea razei
unui rezervor.
6.2 Valideaza datele introduse
dupa cum urmeaza: pentru fiecare articol se verifica daca valoarea razei citite
este negativa. Script-ul afiseaza mesajul: "Raza negativa".
7. Pentru fiecare rezervor (cilindric echilateral):
7.1 Calculeaza volumul rezervorului.
7.2 Calculeaza masa de benzina
din rezervor.
7.3 Însumeaza m în
s.
7.4 Afiseaza r, m
8. Afiseaza masa totala de benzina
9. Stop |
|
|
|
|
 |
|
 |
|
 |
|
 |
|
top |
|
|
|
 |
 |
Testați-vă cunostințele
|
 |
 |
 |
1. Care sunt obiectele interne (integrate) ale limbajului JavaScript?
2. Cum se creează obiectul String?
3. Care sunt proprietățile obiectului String?
4. Care sunt metodele pentru formatarea șirurilor de caractere?
5. Ce realizează următoarele metode ale obiectului String:
indexOf();
substr();
toLowerCase().
6. Cum se creează obiectul Array?
7. Ce realizează următoarele metode ale obiectului Array?
concat();
toString;
sort().
8. Se consideră șirul de caractere:
sir=”Protopopescu Augustin”;
Precizați ce valori returnează următoarele metode ale obiectului String:
alert(sir.charAt(3)); //afișează ...?...
alert(sir.charCodeAt(3)); //afișează ...?...
alert(sir.indexOf(”0”)); //afișează ...?...
alert(sir.indexOf(”0”,8)); //afișează ...?...
alert(sir.indexOf(”z”,8)); //afișează ...?...
9. Se consideră șirul de caractere:
sir=”abcdef”;
Precizați ce valori returnează următoarele metode ale obiectului String:
alert(sir.slice(0,3)); //afișează ...?...
alert(sir.slice(1,3)); //afișează ...?...
alert(sir.slice(3)); //afișează ...?...
alert(sir.slice(2,-1)); //afișează ...?...
alert(sir.slice(2,-2)); //afișează ...?...
alert(sir.slice(-2,-1)); //afișează ...?...
10. Se consideră șirul de caractere:
sir=”a,b,c,d,e,f”;
Precizați ce valori returnează următoarele metode ale obiectului String:
alert(sir.split(”,”)); //afișează ...?...
alert(sir.substr(2,2)); //afișează ...?...
alert(sir.substr(3)); //afișează ...?...
alert(sir.substr(-3,2)); //afișează ...?...
alert(sir.substr(0,2)); //afișează ...?...
11. Se consideră matricea:
g=[1,2,3];
Precizați ce valori returnează următoarele metode ale obiectului Array:
alert(g.concat(4,5)); //afișează ...?...
alert(g.concat([4,5])); //afișează ...?...
alert(g.concat([4,5],[6,7])); //afișează ...?...
alert(g.concat(4,[5,[6,7]])); //afișează ...?...
12. Se consideră matricea:
g=[1,2,3,4,5];
Precizați ce valori returnează următoarele metode ale obiectului Array:
alert(g.slice(0,3)); //afișează ...?...
alert(g.slice(3)); //afișează ...?...
alert(g.slice(1,-1); //afișează ...?...
alert(g.slice(-3,-2)); //afișează ...?...
13. Se consideră funcția:
function sortare(x,y){
return x-y;
}
și
var g=new array(7,5,100,21);
Precizați rezultatele obținute în urma execuției următoarelor metode:
alert(g.sort()); //afișează ...?...
alert(g.sort(sortare)); //afișează ...?...
14. Care este efectul metodei join()? Care este relația sa cu metoda split() a obiectului String?
15. Identificați erorile de sintaxă din următoarele script-uri:
Figura 11.3 (Conversația 11)
Figura 11.5 (Conversația 11). |
|
|
 |
|
|
|
top |
|
 |
 |
CUPRINS> Obiectele interne String, Array |
INTRO |
|
|
|