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:21]
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 40: Line 40:
  
 ===== Instalarea pachetelor ===== ===== Instalarea pachetelor =====
-NodeJS este doar compilatorul si cateva biblioteci pentru programare. Pentru a adauga functionalitati,​ trebuie sa instalati biblioteci suplimentare.+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.1382080896.txt.gz · Last modified: 2013/10/18 10:21 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