Advertisement
Guest User

Untitled

a guest
Jul 18th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.06 KB | None | 0 0
  1. /*
  2. Structuri de control
  3.  
  4. [a] Structura liniara
  5.  
  6. ( bloc secventa de instructiuni )
  7.  
  8. (a1) Pseudocod
  9. [
  10. instructiune_1;
  11. ...
  12. instructiune_n;
  13. ]
  14. (a2) Cod C/C++
  15. {
  16. instructiune_1;
  17. ...
  18. instructiune_n;
  19. }
  20.  
  21. Obs :
  22. - Elementul ";" separator in lista de instructiuni
  23. Element sintactic mandatoriu ( obligatoriu )
  24. interpretat de compilator ca instructiune vida
  25. - Faze de dezvoltare/rulare a unei aplicatii
  26.  
  27. cod_sursa ============> compilare ===========================> linkeditare
  28. ( plain text = text inteligibil executata de o aplicatie compilarea instrumentelor referite
  29. continand exprimari intr-un anumit "compilator" ( dependent de de codul obiect si includerea in codul
  30. limbaj mediu si limbaj ) obiect
  31. "traduce" codul sursa in cod binar
  32. ( in limbaj masina, cu stari REZULTAT : cod executabil
  33. doar 1 si 0, insemnad valoare logica
  34. intrerupator inchis/deschis al unui fisier .exe ( .com )
  35. circuit )
  36. de exemplu GNU GCC compiler
  37. Codeblocks <F9> <F9> compilare + linkeditare + lansare
  38.  
  39. cod obiect NU POATE FI INCA RULAT/executat
  40.  
  41. pentru ca codul obiect contine referiri
  42. catre functii din anumite biblioteci
  43. inca necompilate
  44.  
  45. adica in codul obiect sunt referinte
  46. catre intrumente a caror descriere
  47. inca nu se cunoaste !
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54. - Codeblocks = IDE integrated developement engineering
  55. un instrumentar/o trusa pentru dezvolarea de aplicatii/software
  56. intr-un limbaj oarecare ( de exemplu C/C++ ) :
  57. itemi constituenti : editor plain text + compilator + ...
  58.  
  59. [b] structura conditionala
  60.  
  61. [b1] conditionala monoalternanta
  62. pseudocod
  63.  
  64. daca (expresie) este adevarata atunci executa
  65. [
  66. instructiune_1;
  67. instructiune_2;
  68. ]
  69.  
  70. cod C/C++
  71.  
  72. if (expresie) {
  73. intructiune_1;
  74. ...
  75. instructiune_n;
  76. }
  77.  
  78. OBS :
  79. 1) parantezele (expresie) sunt mandatorii=obligatorii sintactic
  80. si de fapt prezenta lor inseamna apel de functie care fuirnizeaza
  81. ca rezultat evaluarea expresiei
  82. 2) expresiilor conditionalelor sunt evaluate aritmetic astfel
  83. valoare 0 in sens aritmetic insemna FALSE ( corp ramura "then" nu se executa )
  84. valoare !=0 ( negativa sau pozitiva ) este asimilata cu valoare logica TRUE
  85. ( corp ramura "then" se executa )
  86.  
  87. exemplu : if (x%2) { cout<<endl<<" Nu este numar par !"; }
  88. este echivalent cu a scrie
  89. if ((x%2)!=0) { cout<<endl<<" Nu este Numar par !"; }
  90.  
  91. 3) expresiile sunt formulari de tipul :
  92.  
  93. (operand_1 operator operand_2)
  94.  
  95. unde operand poate fi :
  96. - valoare de un tip oarecare ( int , float , char , ... )
  97. - expresie
  98. operator poate fi :
  99.  
  100. aritmetic +adunare,-scadere,*inmultire,/impartire,%restul_impartirii_intregi
  101. logic ==test_de egalitate, !=diferit , !not_logic
  102. relational <=mai_mic_sau_egal,<,>,>=
  103. special ++incrementare , =atribuire
  104. prefixata functioneaza
  105. postfixata left_valued
  106.  
  107.  
  108. [b2] conditionala bilaternanta
  109.  
  110. cod C/C++
  111. if (expresie) {
  112. instructiune_1;
  113. ...
  114. instructiune_n;
  115. }
  116. else {
  117. instructiune_1';
  118. ...
  119. instructiune_n';
  120. }
  121.  
  122. OBS :
  123. - in cauzl in care bloc secventa liniara este singleton= contine o singura
  124. instructiune parantezele delimitatori inceput sfarsit de bloc pot lipsi
  125.  
  126. exemplu:
  127.  
  128. #include<iostream> // "#" ca element sintactic anunta specificatii
  129. // directivelor de compilare
  130. // seteaza un anumit mod impus de rulare/executie
  131. // a compilatorului
  132. // in cazul #include am setat/am impus compilatorului
  133. // includerea in codul sursa a unui fisier
  134. // in cazul nostru biblioteca "iostream"
  135. // ce contine descrieri de functii de tipul
  136. // input output stream adica cu functii
  137. // referitoare la operatii cu lucrul cu dispozitivele
  138. // standard de intrare iesire : tastura , monitorul
  139. // din iostream apelam doar "cout" si "cin"
  140. // parametrii ( valori,nume de variabile ) se transmit
  141. // intr-un mod particular !
  142. // in cazul "cout" element sintactic utilizat pentru
  143. // trasmiterea parametrilor este "<<"
  144. // cout este o functie cu numar variabil de parametri
  145. //
  146. using namespace std;
  147. int main() {
  148. int x; // declar x variabila de tip integer
  149. // "//" in cod inseamna comentariu pana la sfarsit de linie
  150. // datele/variabilele de tip integer sunt alocate pe 32 biti
  151. // interval reprezentabil -2.147 mld , +2.147 mld
  152. cout<<"n="; // "cout" este o functie "console output" = consola/dispozitiv
  153. // standard de iesire = monitorul care primeste ca parametri
  154. // date care trebuie afisate/iesire pe eccran
  155. // "cout" in urma apelului nu produce o valoare rezultat al
  156. // unui calcul ci o actiune = o functie al carei apel
  157. // nu produce nici un rezultat ci o actiune = procedura
  158. // descrierea/modul de functionare al functiei "cout"
  159. // este descris/explicat in bliblioteca "iostream"
  160. // fisier plain text cu descireri in C/C++
  161. cin>>x;
  162. if (x%2) {
  163. cout<<"Numarul nu este par !";
  164. }
  165. else {
  166. cout<<"Numarul este par !;// restul impartirii intregi la 2
  167. // este numar par
  168. }
  169. }
  170. [b3] conditionala multialternanta
  171.  
  172. switch (expresie)
  173. {
  174. case valoare_1: {
  175. ...
  176. }
  177.  
  178. case valoare_n: {
  179. ...
  180. }
  181.  
  182. default : {
  183. ...
  184. }
  185. }
  186.  
  187. Expresia "switch" se evalueaza si se incearca indetificarea valorii expresiei
  188. cu una din ramurile "case"
  189. in cazul in care se patrunde pe una din ramuri si nu doresc tentative de
  190. a patrunde si pe alte ramuri inchei corp ramura cu cuvantul rezervat "break;"
  191.  
  192. exemplu
  193. #include<iostream>
  194. using namespace std; // inseamna directiva de compilare pentru
  195. // stabilirea spatiului de referiri standard
  196. // adica renuntam voluntar la eventuale situatii admisibile de polimorfism
  197. // pentru a nu rezolutiona :: referintele catre functii/procedurile apelate
  198.  
  199.  
  200.  
  201. int x;
  202. int main() // atunci cand execut codul ( dupa compilare + linkeditare )
  203. { // de fapt se lanseaza in excutie o functie = functia principala
  204.  
  205. cout<<"x=";
  206. cin>>x;
  207. switch(x%2)
  208. {
  209. case 0 : { cout<<"Numarul este par !"; break; }
  210. default {
  211. cout<<"Numarul ese impar !";
  212. }
  213. }
  214. return 0; // rezultat al lui "main"
  215. }
  216.  
  217. // sed.2 : structurile repetitive
  218.  
  219. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement