Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Both sides previous revision Previous revision Next revision | Previous revision | ||
module:09-siruri-de-caractere:lectie-01 [2014/03/07 16:46] fbratiloveanu |
module:09-siruri-de-caractere:lectie-01 [2016/02/27 21:53] (curent) gchelu [4. Şirul ca vector de caractere.] |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Lecția 1: Caracter. Șiruri de caractere. ====== | ====== Lecția 1: Caracter. Șiruri de caractere. ====== | ||
- | ==== Tutorial ==== | + | ===== Tutorial ===== |
- | **1. Ce sunt caracterele?** | + | ==== 1. Ce sunt caracterele? ==== |
- | === Un caracter poate fi reprezentat de: === | + | |
+ | Un caracter poate fi reprezentat de: | ||
* o cifră: **0**,**1**,**2**,**3**,**4**,**5**,**6**,**7**,**8**,**9** | * 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** | * o literă: **A**,**B**,**C**,**D**,...,**X**,**Y**,**Z**,**a**,**b**,**c**,**d**,...,**x**,**y**,**z** | ||
Linia 12: | Linia 13: | ||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex1/4666106205700096">M9_L1_ex1</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex1/4666106205700096/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex1/5085930646929408">M9_L1_ex1</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex1/5085930646929408/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
- | **2. Declararea unei variabile.** | + | ==== 2. Declararea unei variabile caracter. ==== |
- | === Definiţia în dex pentru o variabilă este următoarea: === | + | |
- | VARIÁBILĂ ~e f. mat. Mărime care poate căpăta diferite valori | + | <hidden> |
- | Cu alte cuvinte, variabila poate lua valori pe care mai târziu le poate schimba. | + | Definiţia din dicționar pentru o variabilă este următoarea: |
- | În Khan, variabila se declară folosind următoarea sintaxă: | + | |
- | <note> | + | ** VARIÁBILĂ ~e f. mat. Mărime care poate căpăta diferite valori ** |
- | **var** nume_variabila = valoare**;** | + | |
+ | 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;'' | ||
+ | </hidden> | ||
- | **var** nume = Popescu**;** | ||
- | </note> | ||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex2/4718159313502208">M9_L1_ex2</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex2/4718159313502208/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex2/6244251382841344">M9_L1_ex2</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex2/6244251382841344/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
- | **3. Caractere speciale** | + | ==== 3. Caractere speciale ==== |
Caracterele speciale sunt acele caractere care pot fi incluse în şir-uri, dar făra a le tasta direct. | Caracterele speciale sunt acele caractere care pot fi incluse în şir-uri, dar făra a le tasta direct. | ||
+ | |||
^ Caracter ^ Cod ^ | ^ Caracter ^ Cod ^ | ||
|Linie nouă | \n | | |Linie nouă | \n | | ||
Linia 38: | Linia 41: | ||
Urmăriţi cu atenţie următoarele programe: | Urmăriţi cu atenţie următoarele programe: | ||
+ | |||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex3/6551146128736256">M9_L1_ex3</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex3/6551146128736256/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex3/5154339543842816">M9_L1_ex3</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex3/5154339543842816/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex4/4869920238075904">M9_L1_ex4</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex4/4869920238075904/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | |
</html> | </html> | ||
- | **4. Şirul ca vector de caractere. ** | + | <note> |
+ | Adauga informatiile tale la sfarsitul celor prezentate in Khan (Nume, prenume, clasa), pe randuri diferite. | ||
+ | </note> | ||
+ | |||
+ | <html> | ||
+ | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex4/6146336865910784">M9_L1_ex4</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex4/6146336865910784/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | ||
+ | </html> | ||
+ | |||
+ | <note> | ||
+ | Cauta pe Google si adauga un alt citat celebru. | ||
+ | </note> | ||
+ | |||
+ | ==== 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ă. | Aţi învăţat că vectorii sunt utili la organizarea informaţiilor. Haide să facem legătura cu viaţa reală. | ||
Linia 49: | Linia 64: | ||
Gândiţi-vă la cartea de telefoane! | 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. | 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 | + | Î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. |
- | 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 | + | 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? |
- | 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 intre 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. | 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. | ||
- | În Khan, vectorii se declară folosind următoarea sintaxă: | + | |
+ | Ca să ne reamintim, în Khan, vectorii se declară folosind următoarea sintaxă: | ||
<note> | <note> | ||
+ | |||
**var** vector = [elem_1, elem_2, …., elem_n]; | **var** vector = [elem_1, elem_2, …., elem_n]; | ||
**var** myfriends = ["John","Charles","Ariel"]; | **var** myfriends = ["John","Charles","Ariel"]; | ||
+ | |||
</note> | </note> | ||
+ | |||
<note> | <note> | ||
for (i = 0; i < n; i++) { | for (i = 0; i < n; i++) { | ||
doSomething(); | doSomething(); | ||
} | } | ||
- | Atenţie: i şi n trebuie sa fie declarate înainte de a le folosi! | + | |
+ | Atenţie: i şi n trebuie să fie declarate înainte de a le folosi! | ||
</note> | </note> | ||
Acum hai să urmărim următorul exemplu: | Acum hai să urmărim următorul exemplu: | ||
+ | |||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex5/5074791335723008">M9_L1_ex5</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex5/5074791335723008/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex5/5984479412748288">M9_L1_ex5</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex5/5984479412748288/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
- | Super acum ştim să aflăm o persoană dintr-un vector, dar mi-a mai venit o idee. Dacă String-ul meu conţine numele meu, cum aflu cu ce literă începe numele meu? | + | |
+ | 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: | Hai să vedem: | ||
+ | |||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex6/5039981078773760">M9_L1_ex6</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex6/5039981078773760/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex6/6344753634344960">M9_L1_ex6</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex6/6344753634344960/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
- | **5. Concatenare şiruri** | + | |
- | **Concatenarea** a două şiruri reprezintă **alăturarea** lor. | + | |
- | Pentru a concatena două şiruri putem folosi operatorul **+** | + | ==== 5. Concatenare şiruri ==== |
+ | |||
+ | **Concatenarea** a două şiruri reprezintă **alăturarea** lor. Pentru a concatena două şiruri putem folosi operatorul ''+''. | ||
Exemplu pentru sintaxă: | Exemplu pentru sintaxă: | ||
+ | |||
<note> | <note> | ||
+ | <code> | ||
var sira = "Exemplu"; | var sira = "Exemplu"; | ||
var sirb = "Concatenare"; | var sirb = "Concatenare"; | ||
- | var **sir** = sira + sirb; | + | var sir = sira + sirb; |
+ | </code> | ||
Adică **sir** va conţine "ExempluConcatenare". | Adică **sir** va conţine "ExempluConcatenare". | ||
Linia 91: | Linia 119: | ||
Acum, hai să testăm: | Acum, hai să testăm: | ||
+ | |||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex7/5461065041182720">M9_L1_ex7</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex7/5461065041182720/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex7/6558291959218176">M9_L1_ex7</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex7/6558291959218176/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
- | **6. Alt exemplu** | + | ==== 6. Alt exemplu ==== |
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex8/4848869663834112">M9_L1_ex8</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex8/4848869663834112/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex8/6277705419980800">M9_L1_ex8</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex8/6277705419980800/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
- | ==== Task-uri ==== | + | ===== Task-uri ===== |
- | **Task A** | + | ==== 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 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." | * Creaţi variabila **proposition** şi folosind vectorul **ls**, iniţializaţi-o cu "Daca este samabata, mergem la Digital Kids." | ||
Linia 111: | Linia 141: | ||
- | **Task B** | + | ==== Task B ==== |
- | * Urmăriţi cu atenţie comentariile din următorul program | + | * Urmăriţi cu atenţie și rezolvați comentariile din următorul program: |
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex9/5150609772642304">M9_L1_ex9</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex9/5150609772642304/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex9/5623715044786176">M9_L1_ex9</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex9/5623715044786176/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
- | **Task C** | + | ==== Task C ==== |
* Creaţi un vector şi iniţializaţi-l cu numele a **5** oraşe din România. | * 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. | * Folosiţi un **for** pentru a afişa numele oraşelor. | ||
Linia 137: | Linia 167: | ||
| | ||
- | **Task D** | + | ==== Task D ==== |
Aveţi la dispoziţie un vector care conţine toate litere alfabetului. Creaţi o propoziţie. | 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/5216265863954432|Exerciţiu Khan]] | + | Intraţi pe adresa următoare: [[http://www.khanacademy.org/cs/m9_l1_ex10/5147940042571776|Exerciţiu Khan]] |
- | === Bonus === | + | ===== Bonus ===== |
- | - coduri ASCII pentru caractere | + | |
- | === Tema === | + | **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. |
- | - un schelet/set de siruri preexistente de la care sa porneasca pentru a face o poveste. | + | |
- | === Recapitulare === | + | <note> |
- | - un task care sa ii treaca prin toate task-urile care le-au facut (Feedback: Este vag, trebuie precizat mai explicit) | + | 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 | ||
+ | </note> | ||
+ | |||
+ | Cum putem afla codificarea unui caracter în Khan? | ||
+ | |||
+ | <note tip> | ||
+ | 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); | ||
+ | </note> | ||
+ | |||
+ | <note warning> | ||
+ | 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. | ||
+ | </note> | ||
+ | |||
+ | {{:module:09-siruri-de-caractere:asciifull.gif|}} | ||
+ | |||
+ | Acum urmăriţi cu atenţie: | ||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/concatenare-cuvinte/4772600351817728">Concatenare cuvinte</a></h2> <script src="http://www.khanacademy.org/cs/concatenare-cuvinte/4772600351817728/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex11/6160028902883328">M9_L1_ex11</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex11/6160028902883328/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
- | </html> | + | </html> |
+ | |||
+ | Urmatorul exerciţiu este să decodificaţi voi. | ||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/siruri-de-caractere/4676782416461824">Siruri de caractere</a></h2> <script src="http://www.khanacademy.org/cs/siruri-de-caractere/4676782416461824/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_ex12/6735501974306816">M9_L1_ex12</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_ex12/6735501974306816/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
+ | |||
+ | ===== Temă ===== | ||
+ | Urmăriţi și rezolvați cu atenţie comentariile: | ||
<html> | <html> | ||
- | <h2><a href="http://www.khanacademy.org/cs/coduri-ascii/6369546065674240">Coduri ASCII</a></h2> <script src="http://www.khanacademy.org/cs/coduri-ascii/6369546065674240/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> | + | <h2><a href="http://www.khanacademy.org/cs/m9_l1_homework/4549827191898112">M9_L1_Homework</a></h2> <script src="http://www.khanacademy.org/cs/m9_l1_homework/4549827191898112/embed.js?editor=yes&buttons=yes&author=yes&embed=yes"></script> <p>Made using: <a href="http://www.khanacademy.org/cs">Khan Academy Computer Science</a>.</p> |
</html> | </html> | ||
+ | |||
+ | ===== 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: | ||
+ | <code> | ||
+ | N 0 | ||
+ | i 1 | ||
+ | c 2 | ||
+ | o 3 | ||
+ | l 4 | ||
+ | a 5 | ||
+ | e 6 | ||
+ | 7 | ||
+ | G 8 | ||
+ | r 9 | ||
+ | i 10 | ||
+ | </code> |