====== Lecția 1: Caracter. Șiruri de caractere. ====== ===== Tutorial ===== ==== 1. Ce sunt caracterele? ==== Un caracter poate fi reprezentat de: * o cifră: **0**,**1**,**2**,**3**,**4**,**5**,**6**,**7**,**8**,**9** * o literă: **A**,**B**,**C**,**D**,...,**X**,**Y**,**Z**,**a**,**b**,**c**,**d**,...,**x**,**y**,**z** * un semn de punctuaţie **?** , **.** , **,** , **!** , **"** , **'** , **-** * acoladă,paranteză dreaptă/rotundă: **{**,**}**,**[**,**]**,**(**,**)** * alte semne speciale folosite cel mai adesea pe calculator: **&**,**$**,**@**,**#**,**_**

M9_L1_ex1

Made using: Khan Academy Computer Science.

==== 2. Declararea unei variabile caracter. ==== Definiţia din dicționar pentru o variabilă este următoarea: ** VARIÁBILĂ ~e f. mat. Mărime care poate căpăta diferite valori ** Cu alte cuvinte, variabila poate lua valori pe care mai târziu le poate schimba. În Khan, variabila se declară folosind următoarea sintaxă: ''var x = 4;''

M9_L1_ex2

Made using: Khan Academy Computer Science.

==== 3. Caractere speciale ==== Caracterele speciale sunt acele caractere care pot fi incluse în şir-uri, dar făra a le tasta direct. ^ Caracter ^ Cod ^ |Linie nouă | \n | |Ghilimele simple| \' | |Ghilimele duble | \" | |Backslash | \ \ | Urmăriţi cu atenţie următoarele programe:

M9_L1_ex3

Made using: Khan Academy Computer Science.

Adauga informatiile tale la sfarsitul celor prezentate in Khan (Nume, prenume, clasa), pe randuri diferite.

M9_L1_ex4

Made using: Khan Academy Computer Science.

Cauta pe Google si adauga un alt citat celebru. ==== 4. Şirul ca vector de caractere. ==== Aţi învăţat că vectorii sunt utili la organizarea informaţiilor. Haide să facem legătura cu viaţa reală. Gândiţi-vă la cartea de telefoane! Ce s-ar fi întâmplat dacă în loc de carte, numerele de telefon veneau scrise pe bileţele separate. În loc să am o carte, aş fi avut bileţele. Care ar fi fost rezultatul, dacă aţi fi pierdut unul din bileţele pe care aparea numărul de telefon a lui Chuck Norris şi nu aţi fi stiut că l-aţi pierdut? Când v-aţi fi uitat printre bileţele şi aţi fi căutat Chuck Norris aţi fi observat că nu l-aţi găsit. Concluzia ar fi fost că Chuck Norris nu are telefon. Dar dacă s-ar fi schimbat ordinea între bileţele, cum le-aţi mai fi găsit într-un timp mai scurt de 2 ore? Pentru asta sunt utili vectorii. În loc să avem 100 de **variabile**/bileţele, mai bine le păstrăm într-un **vector**/cartea de telefoane. Ca să ne reamintim, în Khan, vectorii se declară folosind următoarea sintaxă: **var** vector = [elem_1, elem_2, …., elem_n]; **var** myfriends = ["John","Charles","Ariel"]; for (i = 0; i < n; i++) { doSomething(); } Atenţie: i şi n trebuie să fie declarate înainte de a le folosi! Acum hai să urmărim următorul exemplu:

M9_L1_ex5

Made using: Khan Academy Computer Science.

Super! Acum ştim să aflăm o persoană dintr-un vector, dar mi-a mai venit o idee. Dacă String-ul meu conţine un nume, cum aflu cu ce literă începe numele? Hai să vedem:

M9_L1_ex6

Made using: Khan Academy Computer Science.

==== 5. Concatenare şiruri ==== **Concatenarea** a două şiruri reprezintă **alăturarea** lor. Pentru a concatena două şiruri putem folosi operatorul ''+''. Exemplu pentru sintaxă: var sira = "Exemplu"; var sirb = "Concatenare"; var sir = sira + sirb; Adică **sir** va conţine "ExempluConcatenare". Acum, hai să testăm:

M9_L1_ex7

Made using: Khan Academy Computer Science.

==== 6. Alt exemplu ====

M9_L1_ex8

Made using: Khan Academy Computer Science.

===== Task-uri ===== ==== Task A ==== * Creaţi un vector care să se numească **ls** şi care să conţină următoarele cuvinte în ordinea dată: **Kids**,**la**,**.**,**este**,**Daca**,**Digital**,**mergem**,**sambata**,**,** * Creaţi variabila **proposition** şi folosind vectorul **ls**, iniţializaţi-o cu "Daca este samabata, mergem la Digital Kids." * Atenţie, **NU** aveţi voie sa scrieţi **proposition = "Daca este samabata, mergem la Digital Kids."**. Trebuie să vă folosiţi de vectorul **ls** * Afişaţi textul la poziţia **y=30** şi **x=20** * Setaţi culoarea textului pe **albastru** * Setaţi dimensiunea textului la **19** ==== Task B ==== * Urmăriţi cu atenţie și rezolvați comentariile din următorul program:

M9_L1_ex9

Made using: Khan Academy Computer Science.

==== Task C ==== * Creaţi un vector şi iniţializaţi-l cu numele a **5** oraşe din România. * Folosiţi un **for** pentru a afişa numele oraşelor. * După ce aţi terminat de afişat oraşele, pe o linie nouă afişaţi iniţialele oraşelor. * Exemplu: iniţiala pentru oraşul **D**robeta Turnu-Severin este **D** var vector = ["Bibliotecă", "Carte", "Stilou"]; text(vector[2],10,10); --va afişa __Stilou__ text(vector[1],30,30); --va afişa __Carte__ text(vector[2][0],50,50); --va afişa __S__ **Ştim că __vector[2]__ înseamnă __Stilou__, iar __vector[2][0]__ înseamna __prima literă__ a lui __vector[2]__ care este __S__** ==== Task D ==== Aveţi la dispoziţie un vector care conţine toate litere alfabetului. Creaţi o propoziţie. Intraţi pe adresa următoare: [[http://www.khanacademy.org/cs/m9_l1_ex10/5147940042571776|Exerciţiu Khan]] ===== Bonus ===== **ASCII** reprezintă o codificare a literelor/cifrelor/alte caractere. Astfel, putem transmite mesaje secrete prietenilor noştri pe care doar noi să le înţelegem, după anumite reguli. De exemplu: caracterul A este codificat ca 65 caracterul B este codificat ca 66 caracterul C este codificat ca 67 caracterul D este codificat ca 68 ................................. caracterul Z este codificat ca 90 --------------------------------- caracterul a este codificat ca 97 caracterul b este codificat ca 98 caracterul c este codificat ca 99 caracterul d este codificat ca 100 .................................. caracterul z este codificat ca 122 Cum putem afla codificarea unui caracter în Khan? Cum putem afla codificarea unui caracter în Khan? **var** codificare = 'A'.charCodeAt(0); **var** codificare = 'Z'.charCodeAt(0); Cum putem decodifica? **var** decodificare = **String**.fromCharCode(65); **var** decodificare = **String**.fromCharCode(66); Priviţi cu atenţie următorul tabel. Observaţi coloana **Chr** şi coloana **Dec**. După cum am spus mai sus, caracterului A îi corespune valoarea 65. {{:module:09-siruri-de-caractere:asciifull.gif|}} Acum urmăriţi cu atenţie:

M9_L1_ex11

Made using: Khan Academy Computer Science.

Urmatorul exerciţiu este să decodificaţi voi.

M9_L1_ex12

Made using: Khan Academy Computer Science.

===== Temă ===== Urmăriţi și rezolvați cu atenţie comentariile:

M9_L1_Homework

Made using: Khan Academy Computer Science.

===== Recapitulare ===== Declaraţi-vă şirul "Nicolae Grigorescu a pictat tabloul Car cu boi" Folosiţi-vă de un for şi afişaţi pe un rând nou fiecare literă din şir şi poziţia ei în index. Exemplu: N 0 i 1 c 2 o 3 l 4 a 5 e 6 7 G 8 r 9 i 10