përmbajtja
DESCRIPTION
Universiteti Shtet ëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM I Ligjerata 2 [email protected] gazmendxh.wordpress.com. Përmbajtja. Hyrje në algoritme Koncepti i algoritmit Shembuj të algoritmeve Përshkrimi i algoritmit - PowerPoint PPT PresentationTRANSCRIPT
Universiteti Shtetëror i Tetovës
Fakulteti i Shkencave Matematike-NatyroreDepartamenti i Informatikës
PROGRAMIM ILigjerata 2
Gazmend Xhaferi
Përmbajtja
Hyrje në algoritme Koncepti i algoritmit Shembuj të algoritmeve Përshkrimi i algoritmit Karakteristikat themelore të algoritmit
Principet e punës së kompjuterit Çka është kompjuteri? Pjesët kryesore të kompjuterit – hyrje, dalje, memoria Pjesa ekzekutive e kompjuterit – procesori Modeli i Von-Neumannit për kompjuterin
Hyrje në algoritme
Çka është algoritmi? Algoritmi = metodë, procedurë, rregullore për zgjidhjen e një problemi
apo arritjen e një qëllimi.
Ky nuk është definicion preciz në kuptimin matematikor.
Procedura asocon me një varg hapash të fundshëm të cilët duhet të kryhen për zgjedhjen e një problemi.
Metoda shpesh përdoret në matematikë, por zakonisht e përfshin edhe “procedurën” e pafund – e cila jep zgjidhje vetëm te limitet (analiza matematikore, matematika numerike).
Hyrje në algoritme (vazhdim)
Përse është e nevojshme ta dimë çka është algoritmi?
Detyra kryesore: zhvillimi i algoritmeve të saktë dhe efikas
Intuitivisht është e qartë se efikas d.m.th i shpejtë, kurse i saktë d.m.th zgjidhja (rezultati) të jetë afër zgjidhjes së vërtetë.
Ekziston edhe definicion i saktë matematikor për algoritmin, por ai nuk është aq i thjeshtë – kjo iu duhet atyre që merren me vetitë e algoritmeve.
Shembuj të algoritmeve
Shembuj standard të algoritmeve
Receptët e gatimit (përgatitja e ushqimeve),
Receptët për përgatitjen e pijeve dhe koktejeve,
Udhëzuesi i përdorimit të secilit aparat,
Zgjidhja e detyrave matematikore.
Përshkrimi i algoritmeve
Në përgjithësi, si duhet të duken instruksionet dhe nga se përbëhen? Paraqitja e përgjithshme e tyre është:
hapi 1hapi 2 ...
hapi n (i fundit) Me fjalë të tjera algoritmi përbëhet nga një varg hapash, të cilat janë të
fundme, e të cilat po ashtu duhet të ekzekutohen me qëllim të arritjes së qëllimit, respektivisht, të zgjidhet problemi.
Secili hap i veçantë i algoritmit paraqet instruksion apo urdhëresë (komandë) e cila duhet të ekzekutohet.
Paraqitja dhe ekzekutimi i algoritmit
Zakonisht, instruksionet Shënohen njëri pas tjetrit, Ekzekutohen sipas asaj radhitjeje.
Por, ekzistojnë edhe instruksione që e ndryshojnë radhitjen standarde të ekzekutimit. Shembuj: Nëse kemi një kusht “a dhe b” atëherë kalo tek hapi “x dhe
y” Përsëriti “disa hapa” deri sa të plotësohet kushti “x dhe y” Përsëriti “disa hapa” për disa herë.
Llojet e instruksioneve
Instruksionet kanë formë të njëjtë, dhe përbëhen nga dy pjesë: Çka duhet të bëjë = operacioni Ku duhet të ekzekutohet = objekti mbi të cilin kryhet operacioni
Siç e mësuam, kemi katër lloje të instruksioneve për kontrollimin e ekzekutimit të operacioneve: të sekuencës të selektimit të përsëritjes të nënprogrameve
Sekuencës – një seri urdhërash që ekzekutohen njëra pas tjetrës Selektimit - strukturë kontrolluese me kusht, ekzekuton urdhëra të ndryshëm
mvarësisht nga kushti Përsëritjes – ekzekutimi përsëritet derisa plotësohen kushtet e parapara. Nënprogramet – shërbejnë për struktuimin e kodit duke e ndarë në njësi më të
vogla.
Përshkrimi i algoritmit Algoritmi duhet të punojë mbi të dhënat e përgjithshme, me rëndësi
është që të punojë sipas procedurës së njëjtë.
Për shembull, më lehtë është që shkruhet algoritmi i cili e gjen zgjidhjen për barazimet e përgjithshme katrore ax2 + bx + c = 0
Për a, b, c R, ku a≠0, se sa algoritmi që e gjen zgjidhjen e barazimit ∈konkret
x2 − 3x + 2 = 0.
Zgjidhja për barazimin katror arrihet me formulën
Kush janë këtu instruksionet?
Karakteristikat e algoritmeve
Pra, te algoritmet kemi disa operacione që aplikohen mbi disa të dhëna në formë të disa hapave e që japin ndonjë rezultat (zgjidhje).
Figurativisht:
Karakteristikat e algoritmit: Ka (ose nuk ka) të dhëna hyrëse Ka të dhëna dalëse Mbaron për një kohë të fundme Gjithmonë është i definuar të mos jetë i paqartë Duhet të jetë efikas (të mbaroj në një kohë të arsyeshme)
ALGORITËMHYRJE DALJE
Hyrje/Dalje
Hyrje:
Secili algoritëm ka 0 ose më shumë, por përfundimisht shumë të dhëna hyrëse.
Ato duhet ti zgjedhim nga një klasë e objekteve hyrëse
Algoritmet me 0 hyrje nuk janë të shpeshtë, por ekzistojnë. Këto provojnë
(testojnë) ndonjë procedurë fikse. Psh: provo nëse 327 është numër i thjesht,
ose zgjidhe barazimin katror konkret.
Nëse algoritmi ka më shumë objekte të ndryshme në hyrje, themi se është i
përgjithshëm, pasi e zgjidh të gjithë klasën e problemit. Psh. Barazimi katror
me parametrat a, b, dhe c.
Hyrje/Dalje (vazhdim)
Dalje: Secili algoritëm duhet të ketë së paku një dalje, ndryshe do të
duket se nuk ka zgjidhur ndonjë problem të caktuar
Pra, deri më tani flasim për objekte që ndodhen në hyrje dhe dalje, por nuk dihet se kalohet nga njëri te tjetri.
ALGORITËMHYRJE DALJE
Mbarimi (Fundshmëria)
Mbarimi
Secili algoritëm duhet të mbarojë pas disa hapave të fundme për
çdo hyrje.
Tek programet çdoherë duhet të shihet nëse hyrja është dhënë pa
gabim. Psh, te barazimi katror koeficienti a mund të jetë 0, kurse
nga formula e zgjidhjes del se kemi pjesëtim me 0.
Në praktikë duhet të parashihen të gjitha kufizimet reale dhe duhet
që atyre tu largohemi. Psh, te programi i cili lexon temperaturën T
të ujit, duhet të kemi kufizimin 0 ≤ T ≤ 100.
Përcaktueshmëria & Qartësia
Kur projektojmë një algoritëm, nuk e dimë menjëherë në fillim se prej cilave hapa përbëhet procedura e zgjidhjes së problemit.
Zakonisht problemi ndahet në disa tërësi më të mëdha, të cilat i zgjedhim duke pasur parasysh varshmërinë e tyre reciproke. Nëse tërësitë janë të mëdha, atëherë bëjmë ndarjen e tyre në njësi më të vogla. Kjo metodë quhet rafinimi hap pas hapi (eng. Stepwise refinement).
Deri kur duhet të zbatohet rafinimi hap pas hapi? Varet nga ekzekutimi i algoritmit (cilat instruksione ai i njeh dhe cilat mund ti ekzekutojë).
Algoritmi përbëhet nga një varg me instruksione themelore (elementare, primitive) dhe duhet të jetë qartë i definuar për ekzekutuesin e algoritmit.
Efikasiteti Algoritmi duhet që të mbarojë për një kohë të arsyeshme, që është më me rëndësi
sesa fundshmëria e tij.
Të themi, 500 vjet nuk është kohë e arsyeshme!
A ka algoritme të tillë? Ka!
Për problemet e klasës së kompleksitetit NP-komplete nuk ekzistojnë algoritme
efikase. Psh. Udhëtari tregtar.
Ekzistojnë probleme për të cilët nuk ekzistojnë algoritme për zgjidhjen e tyre –
ato quhen probleme algoritmikisht të pazgjidhshme. (kërko në Google: List of
unsolved problems in computer science)
Ndërtimi dhe funksionimi I kompjuterit
1.Çka është kompjuteri? Kompjuteri = makinë për ekzekutimin e algoritmeve
Ashtu si ka çdo algoritëm hyrje dhe dalje, ashtu edhe kompjuteri duhet të ketë pjesët hyrëse dhe dalëse.
Pjesa hyrëse: i lexon të dhënat nga një medium Pjesa dalëse: mekanizëm që i shkruan të dhënat në ndonjë
medium.
Që të mundet një algoritëm të ekzekutoj ndonjë instruksion në kompjuter, na duhet memorie ku duhet të shënohen dhe lexohen ato. Na duhet edhe procesor që të ekzekutohen këto instruksione.
Modeli logjik i një kompjutori modern
Njësitë hyrëse
Njësitë dalëse
Memorja operative apo kryesore
Procesori
Kanalet komunikuese
Memorjet externe apo sekundare
Modeli logjik=Modeli i Von Neumannit
Modeli logjik=Modeli i Von Neumannit
Njësia qendrore në princip përbëhet nga një memori kryesore dhe një procesor, kurse
Procesori nga ana tjetër përbëhet nga një njësi aritmetiko-logjike për kryerjen e detyrave të parashtruara dhe një njësie kontrolluese për koordinimin e rrjedhave ndërmjet tgjitha elementeve e sistemit kompjuterik sëbashku
Procesori
Cpu- central processing unit, miroprocesor –apo njësia qëndrore- miliona tranzistor mikroskopik të ndërlidhur mes veti në disa njësi funksionale dhe të paketuara në një çip.
realizon përpunimin e të dhënave në kuptim të ngusht të fjalës respektivisht detyra kryesore e CPU është ti realizon urdhërat (instrukcionet) me qëllim të përpunimt të të dhënave
Lloji i Procesorit
Numri i transistorëv
e
Viti i zhvillimit
(prodhimit)
Intel 4004 2.300 1971
Intel Pentium (P5) 3.100.000 1993
Intel Core 2 (Yorkfield) pro Die
410.000.000 2006
Intel Itanium 2 Montecito
1.720.000.000 2007
Faktorët që ndikojnë në performansat e procesorit
Frekufenca punuese (takti punues) i procesorit
Numri i biteve me të cilët procesori mundet njëkohësisht të
manipulon – gjatësia e fjalës (word length:32,64)
Gjërësia e magjistralës e cila i lidhë procesorin dhe
memorjen (bus width)
Largësia mes tranzistorëve në Çip (line width;0.18,0.13
mikron)
Memoria
Sasia dhe lloji i memorjes që e shfrytëzon kompjuteri, në sasi të madhe varet nga dedikimi i tij
Dy kategori kryesore të memorieve:
a) memoria primare - shërben për ruajtjen e një numri relativisht të vogël të të dhënave të cilat i shfrytëzon procesori
- e përfshirë në më shumë Çipe, fizikisht të vendosura sa më afër Procesorit
b) memoria sekundare – shërben për ruajtjenë e sasive më të mëdha të të dhënave dhe informatave në periudhë më të gjatë kohore
Memoria
Fjala (word) është tërësia themelore për një të dhënë. Thënë më thjesht, fjala është sasia e bitëve e paramenduar për paraqitjen e numrave të plotë, ose më saktë, fjala është sasia e bitëve e nevojshme për paraqitjen e instruksionit dhe adresës së makinës. Sot, në përgjithësi, fjala është një tërësi bitësh e paramenduar për paraqitjen e një simboli (shenje), pra fjala = 1 Byte.
Memoria është një varg linear me fjalë, dhe secila fjalë e ka adresën e vet, dmth pozitën apo vendin në varg.
Shikuar matematikisht, vargu me n anëtarë paraqitet si
x1, x2, . . . , xn. Por te memoriet numërimi fillon nga pozita 0.
Memoria
Skica e memories me n fjalë duket kështu:
Themi se fjalak ndodhet në pozitën k ose ndodhet në adresën k.
Memoria – hapësira adresuese
Adresa e të dhënave është pjesa kyçe e instruksionit e cila bën diçka
me të dhënat.
Madhësia e hapësirës adresuese = numri i biteve i paramenduar për
adresë.
Nëse kemi m bite për të rezervuar adresë, atëherë mund të paraqiten
saktësisht 2m adresa të ndryshme: prej në 0 deri në 2m – 1.
Kjo e përcakton edhe sasinë maksimale të memories (më shumë nuk
mund të adresohet).
Adresat si zakonisht shënohen në formën heksadecimale.
Mr. Fisnik Dalipi
Memoria primare
Lloje të memorjes Primare - Regjistrat – pjes të procesorit; posedojnë kapacitet më të vogël dhe
shërbejnë për ruajtjen e një sasie shumë të kufizuar të instrukcioneve dhe të dhënave, dhe atë vetëm direkt(aty për aty) para dhe pas përpunimit.
Memorja me qasje të drejpërdrejtë (random access memory – RAM)
Kesh-memorja (cache memory) –ndërmjetëson ndërmjet procesorit dhe memorjes primare. Aty vendosen instruksionet përkohësisht.
Memorja nga e cila vetëm mundet të lexohet (read only memory – ROM)
PYETJE?