Differences

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

Link to this comparison view

cpl-atm:laboratoare:laborator2 [2013/10/18 10:20]
alexandru.radovici
cpl-atm:laboratoare:laborator2 [2013/10/31 08:01] (current)
alexandru.radovici
Line 1: Line 1:
-====== Laborator 2 ======+====== Laborator 2 - Introducere in NodeJS ​======
  
 Introducere in NodeJS Introducere in NodeJS
Line 8: Line 8:
 ==== Windows ==== ==== Windows ====
 Pentru Windows, instalarea se face folosind un kit care se poate descarca de pe pagina [[http://​www.nodejs.org/​download/​|NodeJS]]. Trebuie doar sa alegeti varianta corespunzatoare sistemului de operare (32 sau 64 de biti). Aveti nevoie de parola de administrator doar la instalare. Pentru Windows, instalarea se face folosind un kit care se poate descarca de pe pagina [[http://​www.nodejs.org/​download/​|NodeJS]]. Trebuie doar sa alegeti varianta corespunzatoare sistemului de operare (32 sau 64 de biti). Aveti nevoie de parola de administrator doar la instalare.
 +
 +Reporniti calculatorul dupa instalarea NodeJS.
  
  
Line 36: Line 38:
 export PATH=$HOME/​local/​bin:​$PATH export PATH=$HOME/​local/​bin:​$PATH
 </​code>​ </​code>​
 +
 +===== Instalarea pachetelor =====
 +NodeJS este doar compilatorul si cateva biblioteci pentru programare. Pentru a adauga functionalitati,​ trebuie sa instalati biblioteci suplimentare. Acesta se face folosind comanda //npm//. Sintaxa este urmatoarea:
 +
 +<​code>​
 +npm [-g] install nume_biblioteca
 +</​code>​
 +
 +Instalarea bibliotecilor se face intr-un director numit //​node_modules//​. Acesta este fie directorul global al NodeJS (daca parametrul //-g// este specificat) fie in directorul curent.
 +
 +Pentru laboratorul de astazi avem nevoie de biblioteca //dict//. Vom instala biblioteca in directorul curent la momentul potrivit.
 +
 +<​code>​
 +npm install dict
 +</​code>​
 +
 +===== IDE =====
 +NodeJS este doar compilatorul,​ asa ca pentru scrierea programelor aveti nevoie de un alt program. Puteti folosi orice program, noi recomandam:
 +
 +  * SublimeText
 +  * Nodepad++
 +  * Vim
 +
 +===== Rularea programelor =====
 +Aveti nevoie de un terminal pentru a rula programele. NodeJS este similar cu //python// in acest sens. Un program se porneste folosind comanda:
 +
 +<​code>​
 +node fisier_program.js
 +</​code>​
 +
 +In Windows, proniti un terminal folosind comanda cmd.exe (atentie, nu rulati direct node.exe, acesta nu va executa un program, va pornit doar NodeJS in modul interactiv - adica asteapta instructiuni de javascript).
 +
 +===== Limbajul =====
 +Sintaxa limbajului este similara cu cea din C. Variabilele au tip dinamic, adica tipul lor se schimba in functie de ce anume memoreaza.
 +==== Scrierea pe ecran ====
 +Pe ecran se poate afisa folosind functiile //​console.log()//​ si //​console.error ()//. Care este diferenta dintre acestea doua?
 +<​hidden>​
 +console.log afiseaza pe stdout
 +console.error afiseaza pe stderr
 +</​hidden>​
 +
 +Exemplu:
 +<code javascript>​
 +console.log ('​Hello from NodeJS'​);​
 +</​code>​
 +
 +==== Declararea variabilelor ====
 +Variabilele se declara folosind cuvantul cheie //var//.
 +
 +<code javascript>​
 +var a;
 +var b;
 +</​code>​
 +
 +==== Valorile speciale ale variabilelor ====
 +In Javascript exista trei tipuri de valori speciale, diferite una de alta.
 +
 +  * //​undefined//​ - este valoarea unei variabile care nu a primit niciodata valoare
 +  * //null// - este valoarea echivalenta cu NULL din C, insa este diferita de valoarea 0 sau valoarea //​undefined//​
 +  * //false// - este valoarea falsa din C, diferita de 0, //null// si //​undefined//​
 +  * //true// - este valoarea adevarata
 +
 +<​note>​
 +//false// != //null// != //​undefined//​ != 0
 +</​note>​
 +
 +==== Siruri de caractere ====
 +Sirurile de caractere se scriu intre ghilimele //"// sau aprostroafe //'//. Acestea se pot concatena folosind //+//.
 +
 +Exemplu:
 +<code javascript>​
 +var a = '​Programam in';
 +var b = a + " Javascript";​
 +
 +console.log (b);
 +</​code>​
 +
 +==== Declararea functiilor ====
 +Functiile sunt similare cu cele din C, insa nu au un tip de intoarcere bine definit. O functie se declara folosind cuvantul cheie //​function//​ urmat de numele functiei, paranteza deschisa, lista de parametrii, paranteza inchisa urmata de coldul functiei intre acolade.
 +
 +
 +Exemplu:
 +<code javascript>​
 +function egale (a, b)
 +{
 +  if (a==b) return true;
 +  else return false;
 +}
 +</​code>​
 +
 +O functie poate intoarce orice tip de valoare. In functie de ce tip este scris dupa cuvantul //return//, functia va intoarce un tip sau altul. De asemenea, o functie intoarce mereu o valoare. Daca nu este folosit cuvantul //return// nicaieri, functie va intoarce //​undefined//​.
 +
 +Exemplu:
 +<code javascript>​
 +function afiseaza ()
 +{
 +  console.log ('​afiseaza'​);​
 +}
 +
 +var n = afiseaza ();
 +</​code>​
 +
 +Variabila n va avea valoarea //​undefined//​.
 +
 +==== Siruri ====
 +Sirurile sunt alocate dinamic in Javascript. Realizarea unui sir nou se face prin folosirea parantezelor drepte. Elementele dintr-un sir pot fi de tipuri diferite.
 +
 +Exemplu:
 +<code javascript>​
 +// un sir vid
 +var n = [];
 +
 +// un sir cu elemente omogene
 +var n = [1,2,3];
 +
 +// un sir cu elemente neomegene
 +var n = [1, '​caractere',​ 10.5];
 +</​code>​
 +
 +Sirurile pot fi folosite ca stive prin folosirea functiilor //push// si //pop//.
 +
 +  * push adauga un element in sir
 +  * pop scoate ultimul element din sir
 +
 +Dimensiunea sirului poate fi obtinuta prin variabila //length//.
 +
 +Exemplu:
 +<code javascript>​
 +var a = [1,2,3];
 +
 +a.push (4); // adauga 4 la in sir
 +console.log (a);
 +
 +var x=a.pop (); // scoate ultimul element din sir
 +console.log (x);
 +console.log (a);
 +
 +console.log ('​Sirul are '​+a.length+'​ elemente'​);​
 +</​code>​
 +
 +TODO matrici
 +
 +==== Structuri ====
 +Spre deosebire de C, unde sructurile au un sablon prestabilit,​ in javascript structurile sunt dinamice. Acestea se declara folosind acolade. Se pot adauga si sterge dinamic membrii.
 +
 +Exemplu:
 +<code javascript>​
 +var faraelemente = {};
 +
 +var masa = 
 +{
 +  numarPicioare:​ 4,
 +  tip: '​lemn',​
 +  culoare: '​verde',​
 +  eticheta: ''​
 +};
 +
 +console.log (faraelemente);​
 +console.log (masa);
 +</​code>​
 +
 +Am declarat doua structuri: //​faraelemente//​ este o structura fara membrii si //masa// o structura ce defineste o masa. Putem acum adauga membrii noi amandurora:
 +
 +<code javascript>​
 +faraelemente.membru = '​membru';​
 +masa.lungime= 300;
 +console.log (faraelemente);​
 +console.log (masa);
 +
 +delete masa.eticheta;​
 +
 +console.log (masa);
 +</​code>​
 +
 +O structura poate contine ca mebrii siruri sau alte structuri:
 +
 +<code javascript>​
 +var scaun
 +{
 +  tapiterie: ['​albastru','​galben','​verde'​],​
 +  culoare: '​portocaliu',​
 +  vazator: ​
 +     {
 +        firma: '​firma',​
 +        pret: 299
 +     }
 +};
 +</​code>​
 +
 +===== Exercitii =====
 +  - Scrieti un program care va afiseaza numele pe ecran. ​
 +  - Scrieti un program care defineste un sir si afiseaza sirul pe ecran.
 +  - Scrieti un program care defineste un sir si o functie care afiseaza sirul pe ecran.
 +  - Scrieti un program in care definiti o structura si ii afisati componentele.
 +  - Scrieti un program care defineste un dictionar si afiseaza componentele sale.
cpl-atm/laboratoare/laborator2.1382080820.txt.gz · Last modified: 2013/10/18 10:20 by alexandru.radovici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0