Etapele rezolvării unei probleme cu ajutorul calculatorului

      Etapele rezolvării unei probleme cu ajutorul calculatorului  Să detaliem în continuare etapa de implementare. După analiza problemei şi stabilirea algoritmului, acesta trebuie tradus (implementat) într-un limbaj de programare.  –  Srierea (editarea) programului sursă. Programele sursă sunt fişiere text care conţin instrucţiuni (cu sintactica şi semantica proprii limbajului utilizat). Programul (fişierul) sursă este creat cu […]

Rezolvarea problemelor

TEORIA REZOLVĂRII PROBLEMELOR   Creşterea complexităţii problemelor supuse rezolvării automate (cu ajutorul calculatorului) a determinat ca activitatea de programare să devină, de fapt, un complex de activităţi. Pentru rezolvarea unei probleme trebuie parcurse următoarele etape: – Analiza problemei (înţelegerea problemei şi specificarea cerinţelor acesteia). Se stabileste ce trebuie să facă aplicaţia, şi nu cum. Se […]

algoritmi

ALGORITMI NOŢIUNI GENERALE Algoritmul este conceptul fundamental al informaticii. Orice echipament de calcul poate fi considerat o maşină algoritmică. Într-o definiţie aproximativă algoritmul este un set de paşi care defineşte modul în care poate fi dusă la îndeplinire o anumită sarcină. Exemplu de algoritm: algoritmul de interpretare a unei bucăţi muzicale (descris în partitură). Pentru […]

atribuiri de nume pentru tipuri de date

ATRIBUIRI DE NUME PENTRU TIPURI DE DATE         După cum ştim tipurile de bază ale limbajului C, numite şi tipuri predefinite se identifică printr-un cuvânt cheie (int, char, float, etc). Totodată prin instrucţiunea struct, programatorul poate să introducă un tip nou. Programatorul poate să atribuie un nume unui tip (predefinit sau utilizator) cu ajutorul […]

structuri si tipuri utilizator

STRUCTURI, TIPURI UTILIZATOR         Datele de acelaşi tip se pot grupa în tablouri. Limbajul C permite gruparea unor date de tipuri diferite sub alte forme de organizare numite structuri.       Tablourile au un tip şi anume tipul comun elementelor lor. Astfel, distingem tablouri de tip întreg, de tip caracter, de tip flotant, etc. În […]

recursivitate in C

RECURSIVITATE   Spunem că o funcţie C este recursivă dacă ea se autoapelează înainte de a se reveni din ea. Funcţia se poate reapela fie direct, fie indirect (prin intermediul altor funcţii). La fiecare apel al unei funcţii, parametrii şi variabilele locale se alocă pe stivă într-o zonă independentă. De asemenea, orice apel recursiv al […]

stiva

STIVA         Prin stivă (stack în engleză) înţelegem o mulţime ordonată de elemente la care accesul se realizează conform principiului ultimul venit primul servit. În engleză stiva se mai numeşte şi listă LIFO (Last In First Out). O modalitate simplă de a implementa o stivă este păstrarea elementelor ei într-un tablou unidimensional. În acest […]

modificatorul const in limbajul C

MODIFICATORUL const         Am văzut anterior că o constantă se defineşte prin caracterele care intră în compunerea ei. De asemenea, în acelaşi capitol s-a arătat că putem atribui un nume unei constante printr-o construcţie #define. Un astfel de nume se spune că este o constantă simbolică şi el se substituie prin şirul de caractere […]

pointeri spre functii in limbajul C

POINTERI SPRE FUNCŢII         Numele unei funcţii este un pointer spre funcţia respectivă. El poate fi folosit ca parametru efectiv la apeluri de funcţii. În felul acesta, o funcţie poate transfera funcţiei apelate un pointer spre o funcţie. Aceasta, la rândul ei, poate apela funcţia care i-a fost transferată în acest fel.  Exemplu: Un […]

alocarea dinamica a memoriei in limbajul C

ALOCAREA DINAMICĂ A MEMORIEI         Biblioteca standard a limbajului C pune la dispoziţia utilizatorului funcţii care permit alocarea de zone de memorie în timpul execuţiei programului. O astfel de zonă de memorie poate fi utilizată pentru a păstra date temporare. Zona respectivă poate fi eliberată în momentul în care nu mai sunt necesare datele […]