Upload
lungu-nicoleta
View
225
Download
0
Embed Size (px)
Citation preview
7/23/2019 Algoritmi - Notiuni Introductive
1/7
AlgoritmiNoiuni introductive
7/23/2019 Algoritmi - Notiuni Introductive
2/7
1.Noiunea de algoritm.
Defini ie : Prin algoritm se nelege o metod de soluionare a unei clase deprobleme, reprezentat de o succesiune finit de operaii bine definite, numite
instruciuni.
Primul algoritm se considera algoritmul lui Euclid (utilizat pentru determinareacelui mai mare divizor comun a doua numere naturale). Termenul de algoritmpoate fi neles n sens larg nefiind neaprat legat de rezolvarea uneiproleme cu caracter !tiinific" ci doar pentru a descrie ntr#o manierordonat activiti care constau n parcurgerea unei succesiuni de pa!i (cumeste de e$emplu utilizarea unui telefon pulic sau a unui ancomat).
%n matematic e$ist o serie de algoritmi: cel al rezolvrii ecuaiei de graduldoi" algoritmul lui Eratostene (pentru generarea numerelor prime mai mici
dec&t o anumita valoare)" sc'ema lui orner (pentru determinarea c&tului !irestului mpririi unui polinom la un inom) etc.
oluia prolemei se oine prin execuia algoritmului. Algoritmul poate fie$ecutat pe o ma!in formal (n faza de proiectare !i analiz) sau pe oma!in fizic (calculator) dup ce a fost codificat ntr#un lima* de programare.
7/23/2019 Algoritmi - Notiuni Introductive
3/7
2. Caracteristicile unui algoritm
Generalitate. +n algoritm destinat rezolvrii unei proleme treuie s permitoinerea rezultatului pentru orice date de intrare !i nu numai pentru dateparticulare de intrare.
Finitudine.Adic se termin dup un numr finit de pa!i" indiferent c&t de muli.
Claritate. Prelucrrile algoritmului treuie specificate riguros" fr amiguiti. %norice etap a e$ecuiei algoritmului treuie s se !tie e$act care este urmtoareaetap ce va e$ecutat.
Eficien.Algoritmii pot fi efectiv utilizai doar dac folosesc resurse de calculnvolum acceptail.
Prin resurse de calcul se nelege volumul de memorie !i timpul necesar pentrue$ecuie.
7/23/2019 Algoritmi - Notiuni Introductive
4/7
Exemple
,. Nu orice problem poate rezolat algoritmic.
a. -iind dat un numr n s se determine toi divizorii si.
Pentru aceast prolem se poate scrie un algoritm foarte u!or.
. -iind dat un numr n s se determine toi multiplii si.
Pentru aceast prolem nu se poate scrie un algoritm deoarece nucunoa!tem un criteriu de oprire a operaiilor.
. !n algoritm trebuie s funcioneze pentru orice date de intrare.
-iind date numerele a, b, cs se afi!eze ma$imul dintre ele.
/ posiil soluie ar fi:
se compar acu b!i c !i dac e mai mare se afi!eaz a" iar apoise compar bcu a!i c !i dac e mai mare se afi!eaz b" iar apoi
se compar ccu b!i a !i dac e mai mare se afi!eaz c
Algoritmul nu funcioneaz dac valori sunt identice !i de valoare ma$im.
7/23/2019 Algoritmi - Notiuni Introductive
5/7
Exemple
". !n algoritm trebuie sa se opreasc.
e consider urmtoarea secven de prelucrri:Pas ,. Atriuie variailei xvaloarea ,0
Pas . 1reste valoarea lui xcu 0Pas 2. 3aca xeste egal cu ,44 atunci se opre!te prelucrarea altfel se reia de laPas .
Este usor de oservat cax nu va lua niciodat valoarea ,44" deci succesiuneade prelucrri nu se termin niciodat. 3in acest motiv nu poate considerat un
algoritm corect.
#. Prelucrrile dintr$un algoritm trebuie s fie neambigue.
5onsideram urmtoarea secven de prelucrri:
Pas ,. Atriuie variaileix
valoarea 40Pas . Fie se mre!te xcu , fie se mic!oreaz xcu ,0Pas 2. 3aca x aparine 6#,4% ,47 se reia de la Pas " altfel se opre!te algoritmul.
7/23/2019 Algoritmi - Notiuni Introductive
6/7
Exemple
&. !n algoritm trebuie s se opreasc dup un interal rezonabil de timp.
-iind dat un numr nse cere s se determine de c&te ori a aprut o cifr
cn reprezentarea tuturor numerelor naturale mai mici ca n.
/ rezolvare simpl ar fi s lum toate numere mai mici ca n!i s vedemde c&te ori apare cifra cn fiecare dinte ele. oluia e simpl !i pentruvalori mici ale lui n algoritmul se termin ntr#un interval de timprezonail" dar pentru valori mari timpul de terminare al algoritmului cre!te
nepermis de mult.
7/23/2019 Algoritmi - Notiuni Introductive
7/7
Pa!ii realizrii unui algoritm
,. 5itirea cu atenie a enunului prolemei.
. 8dentificarea datelor de intrare !i a celor de ie!ire.
2. 9ezolvarea propriu#zis a prolemei pe cazuri particulare !i reprezentative. %nacest moment nuse ncearc scrierea programului ci doar determinarea
metodei de rezolvare" generalizarea !i nelegerea acesteia.
. 3escrierea n lima* natural a soluiei prolemei.3ac nu suntei capaili s descriei metoda folosit n lima* natural e puinproail s o putei face ntr#un lima* de programare care e mai restrictiv dec&tlima*ul natural.
;. crierea programului ntr#un lima* de programare.