Sunteți pe pagina 1din 17

CAPITOLUL 7

ALGORITMI I TEHNICI DE
REPREZENTARE
Cuprins
7.1. ETAPELE REZOLVRII PROBLEMELOR
ECONOMICE.....2
7.2 ALGORITMI: DEFINIIE, PROPRIETI, OPERAIUNI DE BAZ6
7.2.1. Noiunea de algoritm..6
7.2.2. Propietile algoritmilor.7
7.2.3. Operaiuni de baz n algoritmi8
7.3 TEHNICI DE REPREZENTARE A ALGORITMILOR ..9

7.3.1 Scheme logice..10


7.3.1.1 Prezentare generala, tipuri de scheme logice...10
7.3.1.2 Structuri de baza in schemele logice12
7.4 Tabele17
7.5 Ecuatii18
7.6 Figuri..18

7.1. ETAPELE REZOLVRII PROBLEMELOR


ECONOMICE
Pentru ca o problem s fie rezolvat cu ajutorul calculatorului trebuie s avem n vedere
ndeplinirea a dou condiii:

s existe un program care s descrie algoritmul de rezolvare a problemei ntr-un


limbaj accesibil calculatorului. Se vor preciza operaiunile prin care, de la datele de intrare, se
ajunge la rezultate.

programului

s existe datele structurate ntr-un anumit mod, pentru a fi accesibile

Calculatoarele actuale gestioneaz date, fr a lua n considerare semnificaia lor.


Identificarea datelor reprezentate se realizeaz prin amplasarea simbolurilor n memoria intern, n
anumite zone de pe suport, dup cum sunt definite prin programele de prelucrare. De aici
necesitatea organizrii datelor, deci a structurrii lor conform logicii programelor.
ntruct n starea iniial problemele de rezolvat, inclusiv cele din domeniul
economic, nu rspund contiiilor specificate anterior este necesar parcurgerea anumitor etape
pentru ca problema s fie adaptat prelucrrilor informatice. Distingem urmtoarele concepii in
modelarea problemelor n vederea prelucrrilor informatice: concepia tradiional( clasic),
concepia utilizatorului final ( prin folosirea de instrumente softwere specializate), achiziionarea
de produse program.
n concepia tradiional se parcurg urmtoarele etape (vezi fig. nr. 7.1.):

analiza problemei i definirea modelului de prelucrare. Se stabilesc astfel

algoritmul de prelucrare i structurile de date.

transpunerea modelului obinut ntr-un model accesibil calculatorului utiliznd

un limbaj de programare. Este etapa de scriere a programului i de transpunere a acestuia n format


executabil.

prelucrarea propriu-zis este ultima etap n care programul n format executabil


este ncrcat i pus n execuie. La execuie programul solicit datele de intrare i furnizeaz
rezultatele.

Problema de rezolvat

Analiza si proiectare

Model de prelucrare
automata:
Algoritmi
Model de date
prelucrare
automata:
Algoritmi
date

Programare

Model de format executabil

Date de
intrare

Rezultate
EXECUTIE

Fig. Nr. 7.1 Concepia tradiional

n concepia tradiional 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 pn la


realizarea i exploatarea programului se structureaz n anumite etape, subsumate criteriului
eficien. Criteriul de eficien are o sfer larg de cuprindere, fiind aplicat att la fiecare etap n
parte ct i global, la nivelul clasei de probleme rezolvate, cu implicarea ntregii game de resurse
utilizate (hardware, software, personal, resurse financiare).
Varianta 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;

obinerea programului n format executabil;

testarea i corectarea programului;

documentarea programului;
exploatarea i ntreinerea.
Definirea i analiza problemei. n aceast etap se expune imaginea conceptual
complet, coerent, i neambigu a problemei luate in studio. Dup formularea problemei n
termini concreti i clari urmeaz analiza tuturor aspectelor privind datele de intrare i rezultatele(
natur, form, mod de prezentare, mod de organizare), precum i precizarea transformrilor
suferite de de datele de intrare pentru a obine rezultatele dorite. Dup stabilirea acestor elemente
se poate ntocmi, ca o sintez a etapei, schema de sistem, Daca problema de rezolvat aparine unui
sistem informatics n proiectare, atunci analiza se deruleaza pe baza documentaiei ntocmite de
analistul de sistem.
Elaborarea algoritmului de rezolvare i repartizarea acestuia. Se detaliaz
prelucrrile pn la nivelul operaiunilor elementare de efectuat, lund in considerare toate
restriciile identificate in faza de analiz. Reprezentarea algoritmului se face prin tehnicile
cunoscute: schema logica, pseudocod etc.
Codificarea algoritmului ]ntru-un limbaj de programare. Dup alegerea limbajului de
programare adecvat se scrie programul surs i se introduce n sistem ntr-un fiier n format text.
Obinerea programului n fomat executabil. Majoritatea limbajelor de programare
actuale reprezint medii de programare fiind prevzute cu editor de texte pentru introducerea
programului surs, cu module de traducere ( interpretare, compilatoare) , cu editoare de legaturi,
cu module de deplasare etc.
Tastarea i corectarea programului. Progaramul pregatit pentru exploatarea curent
trebuie s fie corect din punct de vedere al logicii de rezolvare a clasei de probleme. n acest scop
se folosesc date de text, respectiv date de intrare pentru care cunoatem rezultatele.
Documentarea programului. Programele sunt folosite n exploatarea curent de alte
persoane decat cele care le-au ntomit. De aceea este necesar precizarea instruciunilor de
utilizare, a explicaiilor si exemplelor care s conduc la o utilizare corect. n acest scop se
intocmerste documentaia inclus n dosarul de programare care va cuprinde: descrierea problemei,
schema de sistem, schemele logice, programul sursa, instructiunile de utilizare, exemple de
utilizare etc.
Exploatarea i ntreinerea. Este vorba de utilizarea curent a programului n rezolvarea
cazurilor concrete din clasa de probleme pentru care a fost proiectat. ntreinerea programului are

att un aspect corectiv, nlturnd eventualelel erori care au mai aprut, ct i un aspect evolutiv,
ce ine de seama de dinamica clasei de probleme rezolvate.
Concepia utilizatorului final recurge la instrumente software specializate care apropie
utilizatorul de calculator i elimin faza de programare ( vezi fig. Nr. 7.2. ) . Asemenea
instrumentere software specializate sunt limbaje de programare din generaia 4 ( programe de
calcul tabelar, programe de graphic[, sisteme de gestiune a bazelor de date etc) care permit
definirea unui model de rezolvare a problemei apropiat de informaia utilizatorului.

Problema de rezolvat

Analiza, proiectare,
construire MODEL

Model executabil cu
instrumente software
specializate

Instrument software
specializat

Instrument
software
specializat

Date de intrare

EXECUTIE
Rezultate

Fig,nr. 7.2 Conceptia utilizatorului final

Achiziionarea de produse-program. Pentru aplicaiile curente din domeniul economic (


productie, stocuri, contabilitate generala etc. ) societi specializate n producia de software pun la
dispozitie, pe pia, produse-program adecvate. Firmele interesate pot achiziiona asemenea
produse-program dupa analiza atent a cerinelor de prelucrare. Ulterior utilizatorul trebuie s-i
adapteze structura datelor de intrare la cerinele produsului-program ( vezi fig.nr.7.3 )

Problema de rezolvat

Analiza cerintelor
pentru achizitionarea
produsului-program
Analiza cerintelor pentru
achizitionarea produsuluiprogram

Model in format
executabil

Produsprogram

Date de intrare

EXECUTIE

Rezultate
Rezultate

Fig.nr7.3 Solutia achizitionarii de produse-program

7.2 ALGORITMI: DEFINIIE, PROPRIETI,


OPERAIUNI DE BAZ
7.2.1. Noiunea de algoritm
Realizarea unui program fiabil, de bun calitate, necesit o activitate complex care
implic parcurgerea unor etape distincte, bine definite. Analiza, n profunzime, a problemei supuse
ateniei programatorului, a datelor, i n special, a logicii de prelucrare a acestora, necesit i

constituie o condiie impus n vederea obinerii, n viitor, a unui program cu performane ridicate.
Pe aceast baz se trece la elaborarea algoritmului de rezolvare.
Algoritmul este abordat in diferite accepiuni in DEX algoritmul este deschis in dou
moduri :

ansamblu de simboluri folosite in matematic i logic , permind gsirea in

mod mecanic (prin calcul) a unor rezultate;

succesiunde de operaii necesare n rezolvarea unor probleme oarecare


n dicionarul de informatic algoritmul este prezentat ca un concept folosit n mod
intuitiv pentru a desemna o mulime finit de operaii (instruciuni,comenzi) cunoscute,care
executate ntr-o ordine bine stabilit, pornind de la un set de valori (intrri),produc n timp finit,un
alt set de valori (iesiri.
Cu toate c algoritmii sunt o realitate incontestabil,pn in prezent nu exist o definiie
riguroas de la care s se dezvolte o teorie.De aceea ne mulumim cu urmtoarea descriere a
noiunii de algoritm: ansamblu de operaii impreun cu ordinea n care se aplic asupra datelor de
intrare ale unei clase de probleme pentru a obine rezultatele.Cu alte cuvinte algoritmii precieaz
modul de rezolvare a problemei. Pentru ca problema s fie rezolvat cu ajutorul calculatorului
algoritmul trebuie exprimat n formatul acceptat de aceasta, deci in cod-masin.Acest lucru ar fi
deosebit de dificil i totodat puin eficient.Soluia o reprezint limbajele de programare care pot
face descrierea algoritmilor ntr-un format oarecum apropiat factorului uman. In cazul in
problemelor complexe descrierea direct ntr-un limbaj de programare necesit efort de
programare deosebit i in plus , solicit cunoaterea detaliat a limbajului de programare. De aceea
se prefer trecerea treptat spre program,prin descrieri intermediare,simplificate,concise i uor de
urmrit (scheme logice, pseudocod, tabele de decizie etc.)

7.2.2. Propietile algoritmilor


Pentru a fi programabil,orice algoritm trebuie s ndeplineasc cumulativ anumite
condiii(propieti) : generalitate , determinism, realizabilitate, finitudine, eficien.
Generalitate(universitate). Algoritmul trebuie s se refere la o clas de probleme i nu
la o problem singular. Ex.: Algoritmul de determinare a stocului maxim va lua in considerare
n produse.
Determinism(claritate). n fiecare moment al execuiei se cunoate cu exactitate
urmtoarea operaiune ce trebuie executat. De asemenea, algoritmul trebuie s prevad modul de
soluionare a tuturor situaiilor posibile care pot aparea n rezolvarea problemei, intr-o manier fr
ambiguiti sau neclariti.
Realizabilitate(efectivitate). Fiecare din operaiunile elementare prezente n algoritm
trebuie s poat fi executat intr-un timp finit.
Finitudine. Operaiunile trebuie astfel concepute nct algoritmul s se termine intr-un
numr finit de pai, cunoscut sau necunoscut.
Eficien. Aceast carcteristic ia in considerare procesorul care execut algoritmul. Se
are in vedere evaluarea a dou funcii:

complexitatea-timp, respectiv intervalul de timp cerut pentru executarea tuturot


pailor din algoritm;

complexitatea-spaiu, respectiv resursele necesare pentru execuie (spaiu de

memorie, numar de regitri etc.)


Din pcate, avnd in vedere caracteristica de generalitate, este foarte greu de determinat
eficiena algoritmilor.
Algoritmizarea unei probleme presupune parcurgerea urmtoarelor etape4:

definirea unui enun precis al problemei;

transformarea acestui enun in enun algoritmic;

reprezentarea enunului algoritmic cu ajutorul instruciunilor specifice

(organigrame,tabele de decizie,limbaje algoritmice etc ) ;

programarea propoiu-zis utiliznd un limbaj de programare.

Trebuie fcut precizarea c aceiai problem poate fi algoritmizat sub mai multe forme.
Obinerea unui algoritm este un act creativ care face apel la inteligen intuiie i experien.

7.2.3. Operaiuni de baz n algoritmi


Operaiunile 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 operaiuni: operaiuni de atribuire, operaiuni de decizie,
operaiuni de intrare /ieire, alte operaiuni.
Operaiuni de atribuire. Prin atribuire se asociaz unei variabile o anumit valoare
definit printr-o constant, printr-o alt variabil sau printr-o expresie. Tot aici se includ
operaiunile de calcul definite pe mulimea numerelor reale: adunare, scdere, nmulire, mprire,
ridicare la putere, funcii etc.
Exemple:
Nota : = 10
Medie : = (Nota1 + Nota2) / 2
Nume : = "Nicolescu"
Operaiuni de decizie. Prin operaiunea de decizie se determin valoarea logica a unei
propoziii (condiii): adevrat sau fals. n redactarea condiiilor se utilizeaz variabile, constante,
expresii, operatori relaionali (=, #, >, <, >=, <=) i, eventual, operatori logici (NOT, AND, OR).
Exemplu:
DACA tip_cont= A OR tip_cont= a
ATUNCI
SFD:=SID+RD-RC
ALTFEL
SFC:=SIC+RC-RD
SFARSIT_DACA
Operaiuni de intrare /ieire. Operaiunile de intrare /ieire precizeaz fie introducerea
datelor n memoria interna (citire), fie extragerea rezultatelor din memoria intern (scriere) pentru
a putea fi stocate sau vizualizate i interpretate.
Alte operaiuni. Includem aici operaiunile de salt, operaiunile de apel a unei procedure
etc.

7.3 TEHNICI 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.3.1 Scheme logice


7.3.1.1 Prezentare generala, tipuri de scheme logice
Schemele logice sunt reprezentri grafice ale fluxului general de date i a algoritmului de
prelucrar
Utiliznd anumite simboluri predefinite. Simbolurile folosite in schemele logice au fost
standardizate prin standardul X35 din 1870 aprobat de ANSI (American National Standard
Institute) , conform cu recomandrile R1028/1969 ale ISo ( International Standard Organization).
Forma simbolurilor este definit prin configuraia geometric i raportul inlime/lime
(dreptunghi : 2/3; romb: diagonal mic/diagnonal mare = 2.3;parallelogram:
inlime/lime=2/3, unghi ascuit=75) Liniile folosite trebuie s aib aceeai grosime indifferent
de dimensiunea simbolului.Direcia normal a fluxlui de prelucrare este de la stanga la dreapta i de
sus in jos. Cand direcia este din sens opus se folosesc vrfuri de sgeat fa de direcia liniei de
flux.Pentru mai mult claritate muli programatori folosesc vrfuri de sgeat in toate
cazurile.Standardul nu specifica modul cum se localizeaz i cum se scrie textul in interiorul unui
symbol pentru descrierea operaiei de executat.
Distingem dou tipuri de scheme logice: scheme logice de sistem,scheme logice de
program.
Schemele logice de sistem( vezi fig. nr. 7.4.) numite prescurtat scheme de sistem,au rolol
de a indica resursele afectate pentru obinerea rezultatelor scontate. Se schematizeaz relaiile
dintre date i suporturile tehnice de inregistrare precum i fluxul general de prelucrare.n cadrul
schemelor de sistem exist unul sau mai multe blocuri de prelucrare ce reprezint procedure
independente de prelucrare, deci programe diferite.
Simbolurile standard utilizate n realizarea schemelor logice de sistem sunt prezentate in
fig. nr.7.5. De asemenea, se utilizeaz i simboluri nestandardizate ( vezi fig.nr.7.6).

FDISC

FBAND
PROGRAM
TI:

FIMP

Fig. 7.4. Exemplu de schem logic de sistem

Schemele logice de program sintetizeaz succesiunea etapelor de rezolvare a unei


problem constituind o reprezentare grafic a algoritmului proiectat. n cadrul acesor scheme se
folosesc simbolurile standard din fig. nr. 7.5.

SIMBOLURI PENTRU SCHEME LOGICE DE SISTEM

SIMBOLURI PENTRU SCHEME LOGICE DE PROGRAM

SIMBOLURI PARTICULARE

Pachet de
cartele

Cartela
perforat

SIMBOLURI PARTICULARE

Simbol general
pentru prelucrare
si atribuire
Subprogram (modul

Band
perforat

Tambur
magnetic
Intrare-iesire

Disc
magnetic

Caseta
magnetic

Disc
magnetic

Band
magnetic

Decizie

SIMBOLURI PARTICULARE

Simbol general

SIMBOLURI PARTICULARE

Inceput-Sfrit, intrerupere

Sistem,subsistem
unitate functie
unitate de
prelucrare

Sensul prelucrrii
Operaie
manual

Intrare
consol

Separare
Fuziune

Sortare

Interclasare

Conector
obisnuit

Telecomunicatii

Fig.nr. 7.5. Simboluri ANSI folosite in schemele logice

Conector
pagin

Comentarii

Schema logic reprezint,in final, un graf orientat care ndeplinete urmtoarele condiii:

conine un singur bloc START i un singur bloc STOP;


oricare arc este etichetat cu una din informaiile:
o START sau STOP;
citire sau scriere date;
decizie;
atribuire;
orice arc face parte din cel puin un drum care ncepe cu blocul START i se termina cu
blocul; STOP.
O schem logic n care sunt respectate condiiile de mai sus este o schema logic

structurat.

SIMBOLURI NESTANDARDIZATE
Floppy disc

Afisaj video

Fig. 7.6. Simboluri nestandardizate folosite in schemele logice.

7.3.1.2. Structuri de baz n schemele logice


Ordinea n care instruciunile programului sunt executate constituie structura de control
a acestuia.
Structurile de control,in general, se impart in doua categorii:

structure secventiale;

structure nesecventiale;
Structuri secveniale. Structura secvenial este folosit n cazul programelor

simple, n care, ordinea execuiei instruciunilor sau a modulelor de instruciuni coincide cu


ordinea sintactic a acestora.
In programele complexe, aceasta structura se poate regasi doar pentru anumite parti ale
acestora: ( P=M1: M2 ; M3,., Mn).Sintetizat, structura seventiala pentru programul P care este
format din modulele M1, M2, , M se prezinta astfel (vezi fig. nr. 7.7)

Fig. 7.7 Structura secvenial


Un exemplu de schema logica de program in care se regaseste numai structura secventiala
este prezentata mai jos

M1

M2
.
.

Mn

START

Deschide FISIERE

INITIALIZARE

Citeste ARTICOL

CALCULEAZA

Scrie ARTICOL

Inchide ARTICOL

STOP

Sturcturi nesecveniale. Structurile nesecveniale apar n cazul n care

instruciunile se execut numai n anumite condiii i/sau se repet. n funcie de rezultatul


evalurii unor condiii.Rezult c structurile secveniale pot fi:
o structuri alternative(numite i de decizile sau de selecie)
o structuri repetitive(iterative)
o structuri mixte.
Structura alternativ este acea structur n care se efectueaz un bloc de operaiuni sau
altul se execut n funcie de o anumit conditie ( C )impus de logica de rezolvare a problemei.
Condiia se poate referi la:

verificarea coninutului i a naturii unor zone de memorie;

verificarea coninutului unui contor, a cprui valoare poate crete sau descrete,

verificarea corectitudinii unor date de intrare etc.

Cazul general de program ( P ) cu structur alternativ este de forma :


P=M, { M daca C= DA sau M daca C= NU }, M4.

n care M1,M2,M3,M4 sunt modulele programului P iar (C ) condiia evaluate.


Derularea programului se realizeaz astel:

Sub forma P=M1; M2; M4 cand condiia ( C) este indeplinit sau

Sub forma P=M1;M3,M4, cand condiia ( C) nu este indeplinit


Schematic structura alternativ ( IF THEN-ELSE) se prezint astfel (fig. Nr. 7.8)

INCEPUT

SFARSIT

Fig. 7.8 Structura alternativa IF-THEN-ELSE


n particular, atunci cnd modulul M3 nu conine nici o instrucie se obine o structur
alternativ cu o ramura vid (pseudoalternativ ). Se recomand scrierea condiiei n aa fel ncat
modulul de instruciuni ce va fi executat s fie subordonat valorii de adevr ( IF THEN).
Derularea programului se reazieaz astfel:
P= M1; M2; M4 daca C=DA
P= M1; atunci M4 daca C = NU
Schematic aceastra structur se reprezinta asftel (fig. Nr. 7.9)

INCEPUT

C
M

SFARSIT

Fig.7.9 Structura de control de tip IF-THEN


Structurile alternative prezentate mai sus au fost generalizate de C.A.R Hoare sub forma
unei structuri cu n ramuri (DO-CASE sau SELECT-CASE) care permit selectia intre mai multe
ramuri de instructiuni
.Intr-o secventa de programe Sp in care o structura alternativa generalizata (selectia
multipla) se executa numai modulul pentru care rezultatul evaluarii conditiei (C) este
adevarat.Fiecarui modul de instructiuni ii este asociata o conditie.Secventiala se evalueaza fiecare
conditie in parte.Prima conditie care este adevarata,determina executia modulului aferent
acesteia.Modulele care urmeaza in structura sunt ignorate,controlul fiind predat instructiunilor din
urmatoarea secventa de program.
Derularea prelucrrilor se realizeaz astfel :

INCEPUT

C
1

C1

C2

Ci

Cn

M1

M2

...

Mj

SFARSIT

Fig. Nr .7.10 Structura alternativ generalizat

Mn

7.4 TABELE
Tabelul nr. 1 Situaia produselor
Nr.
Crt.

Cod
produs

Denumire
produs

34501
34511
34512
34521
34531
34502
Total

Rochie AC-218
Sacou AC-226
Sacou AC-227
Sarafan AC-243
Bolero AC-245
Rochie AC -219

UM
BUC
BUC
BUC
BUC
BUC
BUC

7.5 ECUAII
H(X) = (p,p,...p) = - p log pk
N
7.6 FIGURI

Pret
Cantitate
Unitar

Valoare

250
310
360
120
105
162

500,000
775,000
1,285,200
540,000
262,500
32,400
3,395,100

2000
2500
3570
4500
2500
200

S-ar putea să vă placă și