Presentation is loading. Please wait.

Presentation is loading. Please wait.

ALGORITMIKE Leksion 1.

Similar presentations


Presentation on theme: "ALGORITMIKE Leksion 1."— Presentation transcript:

1 ALGORITMIKE Leksion 1

2 Ne kete leksion… Cfare eshte nje algoritem Paraqitja e algoritmeve
Pseudokodi Veprimet Sekuenciale Veprimet Kushtezuese Veprimet Iterative Shembuj

3 Cfare eshte nje algoritem?
Nje varg instruksionesh qe zgjidhin nje problem 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

4 Perkufizimi i Algoritmit
Nje 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.

5 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?

6 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?

7 Si ndertohen algoritmet?
Instruksione Sekuenciale ekzekutohen ne rendin e dhene Instruksione Kushtezuese ekzekutohen nese plotesohet nje kondite Instruksione Iterative ekzekutohen derisa te plotesohet nje kondite

8 Figure 8-7 Skema per tri format?

9 Pseudokodi per tri format?
Figure 8-8 Pseudokodi per tri format?

10 A duhet t’i paraqesim algoritmet ne Gjuhe Natyrale ?
Shembull “Fillimisht, 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 Familjar Kunder Paraqitje verbale I pasakte, mund te kete interpretime te ndryshme

11 A duhet t’i paraqesim algoritmet ne 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; j++) { … } Pro Preçiz dhe i mire-percaktuar Ne fund do te progamohet ne keto gjuhe programimi Kunder Mund te jete nivel teper i ulet (shume i detajuar) per dizenjim algoritmesh Detajet e sintakses jane te lodhshme

12 A duhet t’i paraqesim algoritmet ne Pseudokod?
Shembull Hapi 1: vendos vleren e carry ne 0 Hapi 2: vendos vleren e i ne 0 Hapi 3: merr vlerat e vektoreve a dhe b dhe gjatesine e tyre m Hapi 4: perserit hapat 5 dhe 6 derisa i >= 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?

13 Veprimet sekuenciale Vleredhenie 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 Merr vlerat per a dhe b Output i variablave Printo vleren e c-se Krijim i listave dhe inicializim i vlerave te tyre Merr vleren n dhe listen e elementeve integer L1 … Ln Shenim: L1 akseson elementin e pare te listes, L2 elementin e dyte, e keshtu me rradhe.

14 Veprimet Kushtezuese Zgjidh nje bashkesi shprehjesh per t’u ekzekutuar, bazuar ne rezultatin vertete-rreme 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 variablave

15 Operatoret Logjike perdoren ne Shprehjet Kushtezuese
Operatori 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 and Dhe logjike or Ose logjike

16 Veprimet Iterative (Ciklet)
Ekzekutojne nje bashkesi shprehjesh ne menyre te perseritur Tre forma te pergjithshme: For count = n to m do steps x to y While [true-false condition is true] do steps x to y Do Execute set of statements While [true-false condition is true] 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 <= 100 [statements] endwhile do [statements] while count < 100 (supozohet se variabli count rritet ne çdo cikel)

17 Krahasimi i cikleve While dhe Do-While
Marrim problemin e meposhtem: Te ngrihet x ne fuqi y (supozo qe y eshte jonegative) Versioni me cikel While Get the values for x and y set result to 1 while (y > 0) set result to result * x set y to y – 1 endwhile print result Versioni me cikel Do while Get 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?

18 Fuqia e Algoritmeve Kombinimi 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 e llogaritshme!

19 Shembull i Zgjidhjes Algoritmike te Problemit: Kerkimi
Problemi: 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!

20 Shembull i Zgjidhjes Algoritmike te Problemit: Kerkimi (vazhdim)
Strategji te mundshme zgjidhjeje: Kerko listen ne menyre sekuenciale Get 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?

21 Shembull i Zgjidhjes Algoritmike te Problemit: Kerkimi (vazhdim)
Rishikohet strategjia e zgjidhjes: kerko listen ne menyre sekuenciale dhe informo perdoruesin nese vlera nuk gjendet Get 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 <= i) if target = Nnum set found to true else add 1 to num endif endwhile if found = true print "Target was found” print "Target was not found."

22 Shembull i Zgjidhjes Algoritmike te Problemit: Kerkimi (vazhdim)
Pse e kerkuam listen ne menyre sekuenciale? A kerkohet keshtu nje emer ne nje numrator telefonik? Natyrisht qe jo! Nje numrator telefonik eshte i alfabetizuar dhe kjo ju mundeson qe t’i gjeni emrat me shpejt Cfare algoritmi perdoret per te kerkuar ne nje numrator telefonik? Eshte i ndryshem nga algoritmi sekuencial qe sapo pame dhe ndoshta me efikas Menyra se si jane organizuar te dhenat mund te percaktoje se cili lloj algoritmi eshte i pershtatshem Me vone do te shohim nje algoritem kerkimi me efikas qe perdoret ne lista te renditura (kerkimi binar)

23 Shembull: Gjetja e shumes dhe e mesatares se vlerave ne nje liste
Input: nje liste me vlera numra te plote pozitive N1, N2, . . ., Ni Outputi i deshiruar: shuma dhe mesatarja e vlerave ne liste Strategjia e zgjidhjes Vizito ne menyre sekuenciale çdo vlere ne liste, duke mbajtur nje variabel Sum qe ruan shumen Ne perfundim te ciklit, pjesto shumen me numrin e elementeve te listes per te gjetur mesataren

24 Shembull: Gjetja e shumes dhe e mesatares se vlerave ne nje liste (vazhdim)
Algoritmi Get the values of i and V1..i set sum to 0 set current to 1 while current <= i Do add Vcurrent to sum add 1 to current endwhile print “Sum: " and sum print “Average: “ and sum / i

25 Zgjidhja Algoritmike e Problemeve
Problemi: Zhvendosni vleren qe ndodhet ne pozicionin e pare te nje liste, ne pozicionin e fundit ne liste, duke i zhvendosur te gjitha vlerat me nje pozicion majtas Input: i (numri i vlerave) V1, … , Vi (lista e vlerave) Outputi i Deshiruar: Lista V ku Vi = V1, Vi-1 = Vi, Vi-2 =Vi-1, etj. Strategjia e zgjidhjes: Shkembe vendet e te dhenave fqinje ne menyre te njepasnjeshme

26 Zgjidhja Algoritmike e Problemeve
get the values of i and V1..i set current to 1 while current < i do swap Vcurrent with Vcurrent+1 add 1 to current end while

27 Permbledhje: Pseudokodi
Pseudokodi eshte nje gjuhe fleksibel per zgjidhjen algoritmike te problemeve Duket shume si gjuhe natyrale, por eshte me i strukturuar Duket pak si gjuhe programimi por eshte me fleksibel Si mund ta dini nese ajo qe keni shkruar eshte shkruar “sakte” ne pseudokod? Nese dikush tjeter mund ta lexoje ate qe keni shkruar dhe ta ekzekutoje ate hap-pas-hapi, atehere me siguri ai eshte “i vlefshem”.

28 Permbledhje: Variablat dhe Listat
Variablat jane hapesira ne memorie (kontenitoresh) qe ruajne vlerat Ato mund te mbushen me vlera ne dy menyra: Input nga perdoruesi (psh: “merr vleren e n-se”) Shprehje vleredhenieje (psh: “jepi n-se vleren n + 1”) Listat jane vargje hapesirash ne memorie qe mund te aksesohen nepermjet nje indeksi Per nje liste L me n qeliza, L1 akseson qelizen e pare, L2 qelizen e dyte, Ln akseson qelizen e n-te

29 Si behet zgjidhja algoritmike e problemeve: Nje Proces i Pergjithshem
Hapi 1: Percakto variablat e nevojshem dhe inicializoji ato, shpesh nepermjet inputit te perdoruesit Hapi 2: Kryej llogaritjet Hapi 3: Afisho rezultatet, shpesh nepermjet shprehjeve te printimit

30 Pyetje


Download ppt "ALGORITMIKE Leksion 1."

Similar presentations


Ads by Google