Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
aa:lab:1 [2023/10/21 21:25] tpruteanu [Exerciții tryhard] |
aa:lab:1 [2024/10/16 23:21] (current) dmihai [Exerciții] |
||
---|---|---|---|
Line 56: | Line 56: | ||
- | ==== Exerciții basic ==== | + | - Scrieți o Mașină Turing care primește un șir binar și verifică dacă începe și se termină cu simboluri **distincte** (e.g. **1**0011011**0**). |
- | 1. Scrieți o Mașină Turing care primește un șir binar și verifică dacă începe și se termină cu simboluri **distincte**. | + | - Rezolvați exercițiul anterior pentru input în baza 10. |
- | Ex: "100110110" -> False | + | - Scrieți o Mașină Turing care primește un șir binar și verifică dacă are lungime impară și simbolul din mijloc este 0 (e.g. 1011**0**0011). |
+ | - Scrieți o Mașină Turing care primește un șir binar și lasă pe bandă complementul lui (e.g. "100110100" -> "011001011") | ||
+ | - Scrieți o Mașină Turing care curăță toată banda (atât la stânga cât și la dreapta) și apoi lasă scris doar "1". | ||
+ | - Scrieți o Mașină Turing care inversează cuvântul primit pe bandă. | ||
+ | - Scrieți o Mașină Turing care primește un șir de "X"-uri și verifică dacă lungimea acestuia este o putere a lui 2. | ||
+ | - Scrieți o Mașină Turing care primește un șir de paranteze "(", ")" și verifică dacă sunt echilibrate. | ||
+ | - Scrieți o Mașină Turing care primește un număr în baza 2 și verifică dacă e divizibil cu 5. | ||
+ | - Scrieți o Mașină Turing care primește un cuvânt binar, găsește primul simbol "0" și inserează un "1" în stânga lui (deci tot ce apare la dreapta va trebui mutat cu o poziție). | ||
+ | - Scrieți o Mașină Turing care primește două numere în baza 2, big-endian, separate de un # și lasă pe bandă suma lor (e.g. "1011#11001" -> "100100"). | ||
+ | - Scrieți o Mașină Turing care primește un șir binar și lasă pe bandă, după un caracter "#", numărul de 0-uri, în bază 2 (e.g. "100010110" -> "100010110#101"). | ||
- | 2. Scrieți o Mașină Turing care primește un șir binar și verifică dacă are lungime impară și simbolul din mijloc este 0. | ||
- | Ex: "101100011" -> True | ||
- | |||
- | 3. Scrieți o Mașină Turing care primește un șir binar și lasă pe bandă complementul lui. | ||
- | Ex: "000110111" -> "111001000" | ||
- | |||
- | 4. Scrieți o Mașină Turing care curăță toată banda (atât la stânga cât și la dreapta) și apoi lasă scris doar "1". | ||
- | |||
- | 5. Scrieți o Mașină Turing care inversează cuvântul primit pe bandă. | ||
- | |||
- | ==== Exerciții fun ==== | ||
- | 6. Alex ascultă muzică doar dacă numărul melodiilor din playlist este putere a lui 2. Dându-se un șir de "M"-uri, verifică dacă Alex poate asculta acest playlist sau nu. | ||
- | |||
- | 7. Cățelul Max dorește sa-și facă tema la SDA, dar, din păcate, ca orice alt câine, acesta este color blind și, deci, nu vede dacă anumite paranteze sunt roși. Ajută-l pe Max să-și dea seama dacă parantezele din codul său sunt echilibrate. | ||
- | Ex: ()((()())) -> True | ||
- | ()((()())( -> False | ||
- | |||
- | 8. Diana are in frigider doar conserve de mazăre("M") și sticle de lapte("L"). Aceasta a mai cumpărat lapte de la magazin și vrea să așeze câte o sticlă de lapte după fiecare conservă de mazăre, mutând restul conținutului din frigider la dreapta. | ||
- | Ex: "MML" -> "MLMLL" | ||
- | |||
- | 9. Johnny maimuța se afla la capătul unui șir format din banane("B") si mere("M"). Ajutați-l pe Johnny să numere bananele și, apoi, să fugă cu ele la capătul șirului. | ||
- | Ex: "JBBMBMBMB" -> "BBMBMBMBJ101" | ||
- | |||
- | ==== Exerciții tryhard ==== | ||
- | 10. Scrieți o Mașină Turing care primește două numere în baza 2, big-endian, separate de un # și lasă pe bandă suma lor. | ||
- | Ex: "1011#11001" -> "100100" | ||
- | | ||
<note> | <note> | ||
- | Soluțiile pentru exercițiile din laborator se pot găsi [[aa:lab:sol:1|aici]]. | + | Soluțiile pentru exercițiile din laborator, în format pentru simulatorul online și xlsx, se pot găsi [[aa:lab:sol:1|aici]]; (soluțiile nu sunt unice, există abordări corecte, total diferite de cele prezentate de noi). |
</note> | </note> |