User Tools

Site Tools


laboratoare:laborator-02

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
laboratoare:laborator-02 [2015/10/23 18:57]
razvan.deaconescu [2.[20p] Microsoft Visual Studio: from C to assembly]
laboratoare:laborator-02 [2015/10/23 19:05] (current)
razvan.deaconescu [4. [40p] C: GOTOs]
Line 1: Line 1:
 ====== Laborator 02: Toolchain ====== ====== Laborator 02: Toolchain ======
 +
 În acest laborator, vom trece prin fiecare nivel de procesare a unui limbaj de nivel înalt și prin toolchain-ul pe care îl vom folosi de acum încolo. În acest laborator, vom trece prin fiecare nivel de procesare a unui limbaj de nivel înalt și prin toolchain-ul pe care îl vom folosi de acum încolo.
  
 ===== C basics: GOTOs ===== ===== C basics: GOTOs =====
 +
 Un concept mai puțin abordat în tutoriale de C este instrucțiunea **goto**. Un concept mai puțin abordat în tutoriale de C este instrucțiunea **goto**.
 Prin instrucțiunea **goto**, un program poate sări în puncte intermediare în cadrul unei funcții. Prin instrucțiunea **goto**, un program poate sări în puncte intermediare în cadrul unei funcții.
-Aceste puncte intermediare se numesc **label**-uri (etichete).\\ +Aceste puncte intermediare se numesc **label**-uri (etichete). 
 Un exemplu de cod: Un exemplu de cod:
 <code c> <code c>
Line 279: Line 282:
 </​note>​ </​note>​
  
-Pentru a adăuga un fișier nou în cadrul proiectului mergeți cu mouse-ul în  zona ''​Solution Explorer''​ (din partea dreapta sus a ecranului) și apoi folosiți click dreapta pe intrarea ''​Source files'',​ apoi folosiți '​Add''​ și apoi, după caz, ''​New Item''​ sau ''​Existing Item''​. Adăugați un fișier nou în **cadrul proiectului**,​ numit ''​main.cpp''​ și adăugați următorul cod în fișier:+Pentru a adăuga un fișier nou în cadrul proiectului mergeți cu mouse-ul în  zona ''​Solution Explorer''​ (din partea dreapta sus a ecranului) și apoi folosiți click dreapta pe intrarea ''​Source files'',​ apoi folosiți ​''​Add''​ și apoi, după caz, ''​New Item''​ sau ''​Existing Item''​. Adăugați un fișier nou în **cadrul proiectului**,​ numit ''​main.cpp''​ și adăugați următorul cod în fișier:
 <code c> <code c>
 #define DATA_LEN 100  #define DATA_LEN 100 
Line 356: Line 359:
 ==== 4. [40p] C: GOTOs ==== ==== 4. [40p] C: GOTOs ====
  
-Implementați algoritmii de mai jos în C **fără a folosi apeluri de funcţii (exceptând //scanf()// şi //​printf()//​)elseforwhiledo {} while; ​și construcțiile ​cu if nu pot conține return**. Adică va trebui să folosiți multe instrucțiuni ''​goto''​. +<note important>​ 
-  ​- ​maximul dintr-un vector [20p] + 
-  - căutare binară ​[20p]+Când scrieți cod cu etichete (label-uri) țineți cont de următoarele recomandări de indentare:​ 
 +  * Nu indentați etichetele (label-urile). "​Lipiți-le"​ de marginea din stânga a ecranului de editare. 
 +  * O etichetă este singură pe linie. Nu există cod după etichetă. 
 +  * Nu țineți cont de indentare în indetarea codului. Codul trebuie indendat în același mod și cu etichete și fără etichete. 
 +  * Puneți o linie liberă înaintea linie care conține o etichetă. 
 + 
 +</​note>​ 
 + 
 +Pentru ​algoritmii de mai jos scrieți cod în C **fără** a folosi
 +  * apeluri de funcţii (exceptând //scanf()// şi //​printf()//​) 
 +  * else 
 +  * for 
 +  * while 
 +  * do {} while; 
 +  * construcțiile ​''​if''​ care conțin return 
 + 
 +Adică va trebui să folosiți ''​if''​ și multe instrucțiuni ''​goto''​. 
 + 
 +**[20p]** Implementați ​maximul dintr-un vector ​folosind cod C și constrângerile de mai sus. 
 + 
 +**[20p]** Implementați ​căutare binară ​folosind cod C și constrângerile de mai sus.
  
 <note warning> <note warning>
laboratoare/laborator-02.1445615839.txt.gz · Last modified: 2015/10/23 18:57 by razvan.deaconescu