|
Algoritmi si tehnici de reprezentare
1. Etapele rezolvarii problemelor economice
Pentru ca o problema sa fie rezolvata cu ajutorul calculatorului trebuie sa avem in vedere indeplinirea a doua conditii:
sa existe un program care sa descrie algoritmul de rezolvare a problemei intr-un limbaj accesibil calculatorului. Se vor preciza operatiunile prin care, de la datele de intrare, se ajunge la rezultate.
sa existe datele structurate intr-un anumit mod, pentru a fi accesibile programului.
Varianta clasica, discutata mai sus, poate fi detaliata. Astfel, se ajunge la urmatoarele etape:
definirea si analiza problemei;
elaborarea algoritmului de rezolvare si reprezentarea acestuia;
codificarea algoritmului intr-un limbaj de programare;
obtinerea programului in format executabil;
testarea si corectarea programului;
documentarea programului;
exploatarea si intretinerea.
Calculatoarele actuale gestioneaza date, fara a lua in considerare semnificatia lor. Identificarea datelor reprezentate se realizeaza prin amplasarea simbolurilor in memoria interna, in anumite zone de pe suport, dupa cum sunt definite prin programele de prelucrare. De aici necesitatea organizarii datelor, deci a structurarii lor conform logicii programelor.
In conceptia traditionala se parcurg urmatoarele etape (vezi fig. nr. 1.):
analiza problemei si definirea modelului de prelucrare. Se stabilesc astfel algoritmul de prelucrare si structurile de date.
transpunerea modelului obtinut intr-un model accesibil calculatorului utilizand un limbaj de programare. Este etapa de scriere a programului si de transpunere a acestuia in format executabil.
prelucrarea propriu-zisa este ultima etapa in care programul in format executabil este incarcat si pus in executie. La executie programul solicita datele de intrare si furnizeaza rezultatele.
In conceptia traditionala drumul de la problema la rezultate este relativ greoi, fiind necesara insusirea si utilizarea unui limbaj de programare. Etapele de analiza si programare dureaza, de obicei, mult timp si presupun costuri ridicate.
In rezolvarea problemelor cu ajutorul calculatorului electronic, drumul parcurs pana la realizarea si exploatarea programului se structureaza in anumite etape, subsumate criteriului eficienta. Criteriul de eficienta are o sfera larga de cuprindere, fiind aplicat atat la fiecare etapa in parte cat si global, la nivelul clasei de probleme rezolvate, cu implicarea intregii game de resurse utilizate (hardware, software, personal, resurse financiare).
2 Algoritmi: definitie, proprietati, operatiuni de baza
2.1. Notiunea de algoritm
Realizarea unui program fiabil, de buna calitate, necesita o activitate complexa care implica parcurgerea unor etape distincte, bine definite. Analiza, in profunzime, a problemei supuse atentiei programatorului, a datelor, si in special, a logicii de prelucrare a acestora, necesita si constituie o conditie impusa in vederea obtinerii, in viitor, a unui program cu performante ridicate. Pe aceasta baza se trece la elaborarea algoritmului de rezolvare.
2.3. Operatiuni de baza in algoritmi
Operatiunile prevazute in algoritmi utilizeaza date elementare si date structurate. Este vorba de constante, variabile, masive de date (tablouri), articole, fisiere. Asupra acestor marimi se pot defini urmatoarele categorii de operatiuni: operatiuni de atribuire, operatiuni de decizie, operatiuni de intrare /iesire, alte operatiuni.
Operatiuni de atribuire. Prin atribuire se asociaza unei variabile o anumita valoare definita printr-o constanta, printr-o alta variabila sau printr-o expresie. Tot aici se includ operatiunile de calcul definite pe multimea numerelor reale: adunare, scadere, inmultire, impartire, ridicare la putere, functii etc.
Exemple:
Nota : = 10
Medie : = (Nota1 + Nota2) / 2
Nume : = 'Nicolescu'
Operatiuni de decizie. Prin operatiunea de decizie se determina valoarea logica a unei propozitii (conditii): adevarat sau fals. In redactarea conditiilor se utilizeaza variabile, constante, expresii, operatori relationali (=, #, >, <, >=, <=) si, eventual, operatori logici (NOT, AND, OR).
Operatiuni de intrare /iesire. Operatiunile de intrare /iesire precizeaza fie introducerea datelor in memoria interna (citire), fie extragerea rezultatelor din memoria interna (scriere) pentru a putea fi stocate sau vizualizate si interpretate.
Alte operatiuni. Includem aici operatiunile de salt, operatiunile de apel a unei proceduri etc.
Algoritmul este abordat in diferite acceptiuni. In DEX algoritmul este descris in doua moduri:
ansamblu de simboluri folosite in matematica si logica, permitand gasirea in mod mecanic (prin calcul) a unor rezultate;
succesiune de operatii necesare in rezolvarea unor probleme oarecare.
In dictionarul de informatica algoritmul este prezentat ca un 'concept folosit in mod intuitiv pentru a desemna o multime finita de operatii (instructiuni, comenzi) cunoscute, care executate intr-o ordine bine stabilita, pornind de la un set de valori (intrari), produc in timp finit, un alt set de valori (iesiri)'.
Cu toate ca algoritmii sunt o realitate incontestabila, pana in prezent nu exista o definitie riguroasa de la care sa se dezvolte o teorie. De aceea ne multumim cu urmatoarea descriere a notiunii de algoritm: ansamblu de operatii impreuna cu ordinea in care se aplica asupra datelor de intrare ale unei clase de probleme pentru a obtine rezultatele.
3 Tehnici de reprezentare a algoritmilor
In 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.
3.1 Scheme logice
3.1.2. Structuri de baza in schemele logice
Ordinea in care instructiunile programului sunt executate constituie structura de control a acestuia.
Structuri secventiale. Structura secventiala este folosita in cazul programelor simple, in care, ordinea executiei instructiunilor sau a modulelor de instructiuni coincide cu ordinea sintactica a acestora.
Structura alternativa este acea structura in care se efectueaza un bloc de operatiuni sau altul se executa in functie de o anumita conditie (C) impusa de logica de rezolvare a problemei. Conditia se poate referi la:
verificarea continutului si a naturii unor zone de memorie;
verificarea continutului unui contor, a carui valoare poate creste sau descreste;
verificarea corectitudinii unor date de intrare etc.
Fig. 7 Structura secventiala
Un exemplu de schema logica de program in care se regaseste numai structura secventiala este prezentata mai jos.
structuri alternative (numite si de decizie sau de selectie);
structuri repetitive (iterative);
structuri mixte.
Cazul general de program (P) cu structura alternativa este de forma:
P = M1; ; M4.
in care M1, M2, M3, M4 sunt modulele programului P, iar (C) conditia evaluata.