Page 60 - Demo
P. 60
TEMATIKA 2 ALGORITMIKA DHE PROGRAMIMIfaktorial (4) # thirrja e parë, argumenti 44 * faktorial (3) # thirrja e dytë, argumenti 34 * 3 * faktorial (2) # thirrja e tretë, argumenti 24 * 3 * 2 * faktorial (1) # thirrja e katërt, argumenti 14 * 3 * 2 * 1 # return nga thirrja e katërt kthen 14 * 3 * 2 # return nga thirrja e tretë4 * 6 # return nga thirrja e dytë24 # return nga thirrja e parëe rekursivitetit. Dimë se 5!=5*4*3*2*1, pra n!është prodhimi i numrave të njëpasnjëshëm nga 1 deri në numrin e kërkuar n. Zbatimi i kodit dhe mënyra se si funksionon thirrja e funksionit faktorial(num), duke ndjekur hapat e rekursivitetit, jepen në figurat 3, 4.Çdo thirrje funksioni zbërthehet në formën numër*faktorial(num-1), derisa të mbërrihet te faktoriali i numrit 1, i cili e ka rezultatin 1. Ky quhet kushti bazë dhe është pikërisht ai kusht, i cili sinjalizon përfundimin e thirrjes rekursive, ndaj është shumë e rëndësishme që të përcaktohet që në krye të funksionit. Ndër përparësitë e rekursivitetit mund të përmendim që këto lloj funksionesh ofrojnë një kod të strukturuar mirë. Po ashtu, një detyrë komplekse mund të ndahet në nëndetyra më të thjeshta. Vështirësitë që hasen me përdorimin e rekursivitetit janë: ndonjëherë është e vështirë të ndiqet logjika e tij; thirrjet rekursive shpenzojnë shumë kohë dhe hapësirë në kujtesë; kodi i tyre është më i vështirë për t’u bërë debug (kontroll për gabime).Funksioni anonim. Një tjetër karakteristikë interesante që ofron Python-i është funksioni anonim (pa emër), referuar ndryshe me emrin Lambda. Ndërsa funksionet standarde përcaktohen me fjalën kyçe def, funksionet pa emër përcaktohen me fjalën kyçe lambda. Sintaksa e përdorimit të funksionit anonim është lambda argumente: instruksion, ku numri i argumenteve nuk është i kufizuar, por duhet të ketë vetëm një udhëzim. Udhëzimi ekzekutohet dhe funksioni kthen vlerë. Shembulli i dhënë në figurën 5 realizon kthimin e dyfishit të vlerës argument.Është e nevojshme që vlera që kthen funksioni lambda, t’i jepet një objekti (dyfish në rastin tonë) dhe mënyra si thirret funksioni është duke thirrur emrin e objektit me vlerën e argumentit që duam (dyfish(5)). Provoni të shkruani një program, i cili merr argument një listë dhe kthen një listë të re me katrorin e secilit prej elementëve të listës në hyrje.PROVO VETEN1. Shkruaj një program në Python, që kontrollon nëse një numër është i thjeshtë apo jo. Zhvilloje më tej programin duke shfaqur të gjithë numrat e thjeshtë në një interval numrash.2. Shkruaj programin në Python, i cili llogarit fuqinë e një numri, kur dihen në hyrje baza dhe eksponenti, duke përdorur një funksion rekursiv.Fig. 4Fig. 558

