Algoritmike - 2011 - Leksion 1

download Algoritmike - 2011 - Leksion 1

of 30

Embed Size (px)

Transcript of Algoritmike - 2011 - Leksion 1

ALGORITMIKE

Leksion 1

1

Ne kete leksionI. Cfare eshte nje algoritem II. Paraqitja e algoritmeveA. B. C. D. Pseudokodi Veprimet Sekuenciale Veprimet Kushtezuese Veprimet Iterative

III.Shembuj

2

Cfare eshte nje algoritem?Cfare eshte nje algoritem?

Nje varg instruksionesh qe zgjidhin njeproblem

Pse jane algoritmet te rendesishem?

Nese mund te percaktojme nje algoritem,

mund te automatizojme zgjidhjen Nje agjent kompjuterik (robot, kompjuter) mund te interpretoje dhe te ekzekutoje instruksione per te zgjidhur problemin

3

Perkufizimi i AlgoritmitNje varg mire-renditur. . . veprimesh te mire-percaktuara (jo te dykuptimta) dhe qe mund te llogariten sakte. . . qe prodhon nje rezultat. . . dhe ndalon ne nje kohe te fundme.

4

A eshte ky nje Algoritem?Te shtohet miell derisa brumi te jete i forte Te perzihet dhe te pritet ne forma Te piqet ne nje furre me ngrohtesi mesatare derisa te marre nje ngjyre kafe te lehte. Te lihet te ftohet Jo! Pse? Ndihme: A eshte ai i mire-percaktuar?5

A eshte ky nje Algoritem?Vendosni nje sasi te vogel me shampo ne floke Masazhojeni koken per rreth nje minute Shperlarjeni mire Perseriteni Jo! Pse? Ndihme: A eshte ai i mire-renditur?6

Si ndertohen algoritmet?Instruksione Sekuenciale

ekzekutohen ne rendin e dheneInstruksione Kushtezuese

ekzekutohen nese plotesohet nje konditeInstruksione Iterative

ekzekutohen derisa te plotesohet njekondite

7

Figure 8-7

Skema per tri format?

8

Figure 8-8

Pseudokodi per tri format?

9

A duhet ti paraqesim algoritmet ne Gjuhe Natyrale ?ShembullFillimisht, jepini variablit m vleren 0 dhe variablit i vleren 0. Me pas, filloni ciklin derisa i te jete me i madh se m-1. Ne cikel, mbidhni vlerat e dy vektoreve a dhe b

Pro

Kunder

+ Familjar - Paraqitje verbale - I pasakte, mund te kete interpretime tendryshme

10

terma te Gjuheve Formale te Programimit?Shembull{ int i, m, carry int [] a = new int[100]; int [] b = new int[100]; int [] c = new int[100]; m = Consolte.readInt(); for (int j = 0; j = m-1

Pro

- Nje kompromis i mesem - Ngjan me disa gjuhe programimi popullore - I lexueshem - Relativisht i lire nga rregullat gramatikore - Perfshihen vetem shprehje te mire-percaktuara - Nje gjuhe programimi pa detaje Kunder?12

Veprimet sekuencialeVleredhenie variablash

Jepi a-se vleren b + 4

-a dhe b jane variabla, te cilet mund te mendohen si vende ne memorie per vlerat

Krijim dhe input variablash Output i variablave

Merr vlerat per a dhe b

Printo vleren e c-seinteger L1 Ln Shenim: L1 akseson elementin e pare te listes, L2 elementin e dyte, e keshtu me rradhe.13

Krijim i listave dhe inicializim i vlerave te tyre

Merr vleren n dhe listen e elementeve

Veprimet KushtezueseZgjidh nje bashkesi shprehjesh per tu ekzekutuar, bazuar ne rezultatin verteterreme te nje test:Nese [Kushti vertete-rreme eshte i vertete] Atehere Ekzekuto nje bashkesi shprehjesh Perndryshe Ekzekuto nje tjeter bashkesi shprehjesh

Shprehjet kushtezuese jane vertete te rendesishme sepse ato na lejojne te marrim vendime bazuar ne vlerat e variablave14

Operatoret Logjike perdoren ne Shprehjet KushtezueseOperatori = < >= and or Kuptimi I barabarte me I ndryshem nga Me i vogel se Me i vogel ose i barabarte me Me i madh se Me i madhe ose i barabarte me Dhe logjike Ose logjike

15

Veprimet Iterative (Ciklet)Ekzekutojne nje bashkesi shprehjesh ne menyre te perseritur Tre forma te pergjithshme:Execute set of statements While [true-false condition is true]

(1)For count = n to m do steps x to y (2)While [true-false condition is true] do steps x to y (3)Do

Cikli for eshte me pak fleksibel, me i thjeshti nga ana konceptuale Ciklet while dhe do-while jane me fleksibel dhe me te fuqishem; ndryshimi i vetem eshte se kur vleresohet kushti vertete-rreme: perpara apo pas ciklit) while count 0) set result to result * x set y to y 1 endwhile print result

Versioni me cikel Do whileGet the values for x and y set result to 1 do set result to result * x set y to y 1 while (y > 0) print result

Shenim: Ka nje gabim ne versionin me cikel do-while. Cili eshte?17

Fuqia e AlgoritmeveKombinimi i shprehjeve mund te jete kompleks

Ciklet dhe kushtezimet mund te nderfuten te

njeri-tjetri Blloqet e cikleve ose te shprehjeve kushtezuese mund te jene sekuenca te gjata shprehjesh komplekse

Prova te mirenjohura nga shkenca kompjuterike teorike tregojne qe nese nje problem mund te zgjidhet ne menyre algoritmike, ai mund te zgjidhet duke perdorur vetem veprime sekuenciale, kushtezuese dhe iterative!

Pseudokodi mund te llogarise do gje qe eshte ellogaritshme!18

Shembull i Zgjidhjes Algoritmike te Problemit: KerkimiProblemi: Gjeni vleren e dhene ne nje liste vlerash (psh, nje emer nje numrator telefonik) Inputi: Nje vlere e dhene (psh, Smith) dhe nje liste vlerash N1, N2, . . ., Ni. Outputi i Deshiruar: i vertete nese gjendet vlera e dhene dhe pozicioni i vleres se pare te gjetur ne liste, ose i rreme ne te kundert Percaktimi i nje strategjie zgjidhjeje quhet zbulim i algoritmit dhe eshte pjesa me sfiduese e ketij kursi!19

Shembull i Zgjidhjes Algoritmike te Problemit: Kerkimi (vazhdim)Strategji te mundshme zgjidhjeje: Kerko listen ne menyre sekuencialeGet the value of i and the string values of N1..i Get the string value of target set num to 1 set found to false while (found = false) if target = Nnum set found to true else add 1 to num endwhile print "the target was found A do te funksionoje kjo zgjidhje? Pse ose Pse jo?20

Shembull i Zgjidhjes Algoritmike te Problemit: Kerkimi (vazhdim)Rishikohet strategjia e zgjidhjes: kerko listen ne menyre sekuenciale dhe informo perdoruesin nese vlera nuk gjendetGet the value of i and the string values of N1..i Get the string value of target set num to 1 set found to false while (found = false and num