Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Structuri de control
- [a] Structura liniara
- ( bloc secventa de instructiuni )
- (a1) Pseudocod
- [
- instructiune_1;
- ...
- instructiune_n;
- ]
- (a2) Cod C/C++
- {
- instructiune_1;
- ...
- instructiune_n;
- }
- Obs :
- - Elementul ";" separator in lista de instructiuni
- Element sintactic mandatoriu ( obligatoriu )
- interpretat de compilator ca instructiune vida
- - Faze de dezvoltare/rulare a unei aplicatii
- cod_sursa ============> compilare ===========================> linkeditare
- ( plain text = text inteligibil executata de o aplicatie compilarea instrumentelor referite
- continand exprimari intr-un anumit "compilator" ( dependent de de codul obiect si includerea in codul
- limbaj mediu si limbaj ) obiect
- "traduce" codul sursa in cod binar
- ( in limbaj masina, cu stari REZULTAT : cod executabil
- doar 1 si 0, insemnad valoare logica
- intrerupator inchis/deschis al unui fisier .exe ( .com )
- circuit )
- de exemplu GNU GCC compiler
- Codeblocks <F9> <F9> compilare + linkeditare + lansare
- cod obiect NU POATE FI INCA RULAT/executat
- pentru ca codul obiect contine referiri
- catre functii din anumite biblioteci
- inca necompilate
- adica in codul obiect sunt referinte
- catre intrumente a caror descriere
- inca nu se cunoaste !
- - Codeblocks = IDE integrated developement engineering
- un instrumentar/o trusa pentru dezvolarea de aplicatii/software
- intr-un limbaj oarecare ( de exemplu C/C++ ) :
- itemi constituenti : editor plain text + compilator + ...
- [b] structura conditionala
- [b1] conditionala monoalternanta
- pseudocod
- daca (expresie) este adevarata atunci executa
- [
- instructiune_1;
- instructiune_2;
- ]
- cod C/C++
- if (expresie) {
- intructiune_1;
- ...
- instructiune_n;
- }
- OBS :
- 1) parantezele (expresie) sunt mandatorii=obligatorii sintactic
- si de fapt prezenta lor inseamna apel de functie care fuirnizeaza
- ca rezultat evaluarea expresiei
- 2) expresiilor conditionalelor sunt evaluate aritmetic astfel
- valoare 0 in sens aritmetic insemna FALSE ( corp ramura "then" nu se executa )
- valoare !=0 ( negativa sau pozitiva ) este asimilata cu valoare logica TRUE
- ( corp ramura "then" se executa )
- exemplu : if (x%2) { cout<<endl<<" Nu este numar par !"; }
- este echivalent cu a scrie
- if ((x%2)!=0) { cout<<endl<<" Nu este Numar par !"; }
- 3) expresiile sunt formulari de tipul :
- (operand_1 operator operand_2)
- unde operand poate fi :
- - valoare de un tip oarecare ( int , float , char , ... )
- - expresie
- operator poate fi :
- aritmetic +adunare,-scadere,*inmultire,/impartire,%restul_impartirii_intregi
- logic ==test_de egalitate, !=diferit , !not_logic
- relational <=mai_mic_sau_egal,<,>,>=
- special ++incrementare , =atribuire
- prefixata functioneaza
- postfixata left_valued
- [b2] conditionala bilaternanta
- cod C/C++
- if (expresie) {
- instructiune_1;
- ...
- instructiune_n;
- }
- else {
- instructiune_1';
- ...
- instructiune_n';
- }
- OBS :
- - in cauzl in care bloc secventa liniara este singleton= contine o singura
- instructiune parantezele delimitatori inceput sfarsit de bloc pot lipsi
- exemplu:
- #include<iostream> // "#" ca element sintactic anunta specificatii
- // directivelor de compilare
- // seteaza un anumit mod impus de rulare/executie
- // a compilatorului
- // in cazul #include am setat/am impus compilatorului
- // includerea in codul sursa a unui fisier
- // in cazul nostru biblioteca "iostream"
- // ce contine descrieri de functii de tipul
- // input output stream adica cu functii
- // referitoare la operatii cu lucrul cu dispozitivele
- // standard de intrare iesire : tastura , monitorul
- // din iostream apelam doar "cout" si "cin"
- // parametrii ( valori,nume de variabile ) se transmit
- // intr-un mod particular !
- // in cazul "cout" element sintactic utilizat pentru
- // trasmiterea parametrilor este "<<"
- // cout este o functie cu numar variabil de parametri
- //
- using namespace std;
- int main() {
- int x; // declar x variabila de tip integer
- // "//" in cod inseamna comentariu pana la sfarsit de linie
- // datele/variabilele de tip integer sunt alocate pe 32 biti
- // interval reprezentabil -2.147 mld , +2.147 mld
- cout<<"n="; // "cout" este o functie "console output" = consola/dispozitiv
- // standard de iesire = monitorul care primeste ca parametri
- // date care trebuie afisate/iesire pe eccran
- // "cout" in urma apelului nu produce o valoare rezultat al
- // unui calcul ci o actiune = o functie al carei apel
- // nu produce nici un rezultat ci o actiune = procedura
- // descrierea/modul de functionare al functiei "cout"
- // este descris/explicat in bliblioteca "iostream"
- // fisier plain text cu descireri in C/C++
- cin>>x;
- if (x%2) {
- cout<<"Numarul nu este par !";
- }
- else {
- cout<<"Numarul este par !;// restul impartirii intregi la 2
- // este numar par
- }
- }
- [b3] conditionala multialternanta
- switch (expresie)
- {
- case valoare_1: {
- ...
- }
- case valoare_n: {
- ...
- }
- default : {
- ...
- }
- }
- Expresia "switch" se evalueaza si se incearca indetificarea valorii expresiei
- cu una din ramurile "case"
- in cazul in care se patrunde pe una din ramuri si nu doresc tentative de
- a patrunde si pe alte ramuri inchei corp ramura cu cuvantul rezervat "break;"
- exemplu
- #include<iostream>
- using namespace std; // inseamna directiva de compilare pentru
- // stabilirea spatiului de referiri standard
- // adica renuntam voluntar la eventuale situatii admisibile de polimorfism
- // pentru a nu rezolutiona :: referintele catre functii/procedurile apelate
- int x;
- int main() // atunci cand execut codul ( dupa compilare + linkeditare )
- { // de fapt se lanseaza in excutie o functie = functia principala
- cout<<"x=";
- cin>>x;
- switch(x%2)
- {
- case 0 : { cout<<"Numarul este par !"; break; }
- default {
- cout<<"Numarul ese impar !";
- }
- }
- return 0; // rezultat al lui "main"
- }
- // sed.2 : structurile repetitive
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement