Pentru ca o problem s fie rezolvat cu ajutorul calculatorului trebuie s avem n vedere ndeplinirea a dou condi!ii" s e#iste un program care s descrie algoritmul de rezolvare a problemei ntr$un limbaj accesibil calculatorului. %e vor preciza opera!iunile prin care& de la datele de intrare& se ajunge la rezultate. s e#iste datele structurate ntr$un anumit mod& pentru a fi accesibile programului. 'arianta clasic& discutat mai sus& poate fi detaliat. Astfel& se ajunge la urmtoarele etape" definirea i analiza problemei( elaborarea algoritmului de rezolvare i reprezentarea acestuia( codificarea algoritmului ntr$un limbaj de programare( ob!inerea programului n format e#ecutabil( testarea i corectarea programului( documentarea programului( e#ploatarea i ntre!inerea. Calculatoarele actuale gestioneaz date& fr a lua n considerare semnifica!ia lor. )dentificarea datelor reprezentate se realizeaz prin amplasarea simbolurilor n memoria intern& n anumite zone de pe suport& dup cum sunt definite prin programele de prelucrare. *e aici necesitatea organizrii datelor& deci a structurrii lor conform logicii programelor. +n concep!ia tradi!ional se parcurg urmtoarele etape ,vezi fig. nr. 7.1.-" analiza problemei i definirea modelului de prelucrare. %e stabilesc astfel algoritmul de prelucrare i structurile de date. transpunerea modelului ob!inut ntr$un model accesibil calculatorului utiliz.nd un limbaj de programare. Este etapa de scriere a programului i de transpunere a acestuia n format e#ecutabil. prelucrarea propriu$zis este ultima etap n care programul n format e#ecutabil este ncrcat i pus n e#ecu!ie. /a e#ecu!ie programul solicit datele de intrare i furnizeaz rezultatele. +n concep!ia tradi!ional drumul de la problem la rezultate este relativ greoi& fiind necesar nsuirea i utilizarea unui limbaj de programare. Etapele de analiz i programare dureaz& de obicei& mult timp i presupun costuri ridicate. +n rezolvarea problemelor cu ajutorul calculatorului electronic& drumul parcurs p.n la realizarea i e#ploatarea programului se structureaz n anumite etape& subsumate criteriului eficien!. Criteriul de eficien! are o sfer larg de cuprindere& fiind aplicat at.t la fiecare etap n parte c.t i global& la nivelul clasei de probleme rezolvate& cu implicarea ntregii game de resurse utilizate ,hard0are& soft0are& personal& resurse financiare-. 7.1 Algoritmi" defini!ie& propriet!i& opera!iuni de baz 7.1.1. 2o!iunea de algoritm 3ealizarea unui program fiabil& de bun calitate& necesit o activitate comple# care implic parcurgerea unor etape distincte& bine definite. Analiza& n profunzime& a problemei supuse aten!iei programatorului& a datelor& i n special& a logicii de prelucrare a acestora& necesit i constituie o condi!ie impus n vederea ob!inerii& n viitor& a unui program cu performan!e ridicate. Pe aceast baz se trece la elaborarea algoritmului de rezolvare. 7.1.4. 5pera!iuni de baz n algoritmi 5pera!iunile prevzute n algoritmi utilizeaz date elementare i date structurate. Este vorba de constante& variabile& masive de date ,tablouri-& articole& fiiere. Asupra acestor mrimi se pot defini urmtoarele categorii de opera!iuni" opera!iuni de atribuire& opera!iuni de decizie& opera!iuni de intrare 6ieire& alte opera!iuni. 5pera!iuni de atribuire. Prin atribuire se asociaz unei variabile o anumit valoare definit printr$o constant& printr$o alt variabil sau printr$o e#presie. 7ot aici se includ opera!iunile de calcul definite pe mul!imea numerelor reale" adunare& scdere& nmul!ire& mpr!ire& ridicare la putere& func!ii etc. E#emple" 2ota " 8 19 :edie " 8 ,2ota1 ; 2ota1- 6 1 2ume " 8 <2icolescu< 5pera!iuni de decizie. Prin opera!iunea de decizie se determin valoarea logica a unei propozi!ii ,condi!ii-" adevrat sau fals. +n redactarea condi!iilor se utilizeaz variabile& constante& e#presii& operatori rela!ionali ,8& =& >& ?& >8& ?8- i& eventual& operatori logici ,257& A2*& 53-. 5pera!iuni de intrare 6ieire. 5pera!iunile de intrare 6ieire precizeaz fie introducerea datelor n memoria interna ,citire-& fie e#tragerea rezultatelor din memoria intern ,scriere- pentru a putea fi stocate sau vizualizate i interpretate. Alte opera!iuni. )ncludem aici opera!iunile de salt& opera!iunile de apel a unei proceduri etc. Algoritmul este abordat n diferite accep!iuni. +n *E@ algoritmul este descris n dou moduri" ansamblu de simboluri folosite n matematic i logic& permi!.nd gsirea n mod mecanic ,prin calcul- a unor rezultate( succesiune de opera!ii necesare n rezolvarea unor probleme oarecare. +n dic!ionarul de informatic algoritmul este prezentat ca un <concept folosit n mod intuitiv pentru a desemna o mul!ime finit de opera!ii ,instruc!iuni& comenzi- cunoscute& care e#ecutate ntr$o ordine bine stabilit& pornind de la un set de valori ,intrri-& produc n timp finit& un alt set de valori ,ieiri-<. Cu toate ca algoritmii sunt o realitate incontestabil& p.n n prezent nu e#ist o defini!ie riguroas de la care s se dezvolte o teorie. *e aceea ne mul!umim cu urmtoarea descriere a no!iunii de algoritm" ansamblu de operatii mpreun cu ordinea n care se aplic asupra datelor de intrare ale unei clase de probleme pentru a ob!ine rezultatele. 7.4 7ehnici de reprezentare a algoritmilor +n procesul de dezvoltare a programelor se folosesc diverse tehnici de reprezentare& din care cele mai utilizate sunt" schemele logice( pseudocodurile( diagramele arborescente( tabelele de decizii. 7.4.1 %cheme logice 7.4.1.1. %tructuri de baz n schemele logice 5rdinea n care instruc!iunile programului sunt e#ecutate constituie structura de control a acestuia. %tructuri secven!iale. %tructura secven!ial este folosit n cazul programelor simple& n care& ordinea e#ecu!iei instruc!iunilor sau a modulelor de instruc!iuni coincide cu ordinea sintactic a acestora. %tructura alternativ este acea structur n care se efectueaz un bloc de opera!iuni sau altul se e#ecut n func!ie de o anumit condi!ie ,C- impus de logica de rezolvare a problemei. Condi!ia se poate referi la" verificarea con!inutului i a naturii unor zone de memorie( verificarea con!inutului unui contor& a crui valoare poate crete sau descrete( verificarea corectitudinii unor date de intrare etc. . . M 1 M 2 M n Aig. 7.7 %tructura secven!ial Bn e#emplu de schem logic de program n care se regsete numai structura secven!ial este prezentat mai jos. structuri alternative ,numite i de decizie sau de selec!ie-( structuri repetitive ,iterative-( structuri mi#te. Cazul general de program ,P- cu structur alternativ este de forma" P 8 :1( C:1 dac C 8 *A sau :4 dac C 8 2BD( :E. n care :1& :1& :4& :E sunt modulele programului P& iar ,C- condi!ia evaluat.