1 / 30

ALGORITMIKE

ALGORITMIKE. Leksion 1. Ne kete leksion…. Cfare eshte nje algoritem Paraqitja e algoritmeve Pseudokodi Veprimet Sekuenciale Veprimet Kushtezuese Veprimet Iterative Shembuj. Cfare eshte nje algoritem?. Cfare eshte nje algoritem? Nje varg instruksionesh qe zgjidhin nje problem

ishana
Download Presentation

ALGORITMIKE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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? • 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. Figure 8-8 Pseudokodi per tri format?

  10. A duhet t’i paraqesim algoritmet ne Gjuhe Natyrale ? • Shembull “Fillimisht, jepini variablitm 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 vektorevea 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, carryint [] 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

  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 • DoExecute set of statementsWhile [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. Versioni me cikel While Get the values for x and yset 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? Krahasimi i cikleve While dhe Do-While Marrim problemin e meposhtem: Te ngrihet x ne fuqi y (supozo qe y eshte jonegative)

  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” else print "Target was not found." endif

  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 Algoritmi 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

More Related