Ligjerata 2 - Dr. Fisnik Dalipi

Download Report

Transcript Ligjerata 2 - Dr. Fisnik Dalipi

Universiteti Shtetëror i Tetovës
Fakulteti i Shkencave Matematike-Natyrore
Departamenti i Informatikës
PROGRAMIM I
Ligjerata 2
[email protected]
fisnikd.wordpress.com
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
Mr. Fisnik Dalipi
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).
Mr. Fisnik Dalipi
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.
Mr. Fisnik Dalipi
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 i secilit aparat,
Zgjidhja e detyrave matematikore.
Mr. Fisnik Dalipi
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 1
hapi 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.
Mr. Fisnik Dalipi
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ë.
Mr. Fisnik Dalipi
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
Mr. Fisnik Dalipi
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?
Mr. Fisnik Dalipi
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:
HYRJE

ALGORITËM
DALJE
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)
Mr. Fisnik Dalipi
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.
Mr. Fisnik Dalipi
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.
HYRJE
ALGORITËM
DALJE
Mr. Fisnik Dalipi
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.
Mr. Fisnik Dalipi
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.
Mr. Fisnik Dalipi
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)
Mr. Fisnik Dalipi
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.
Mr. Fisnik Dalipi
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
Mr. Fisnik Dalipi
Modeli logjik=Modeli i Von
Neumannit
Mr. Fisnik Dalipi
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 aritmetikologjike 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
Mr. Fisnik Dalipi
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ëve
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
Mr. Fisnik Dalipi
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)
Mr. Fisnik Dalipi
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 enjë 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ë afer 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
Mr. Fisnik Dalipi
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.
Mr. Fisnik Dalipi
Memoria
Skica e memories me n fjalë duket kështu:
Themi se fjalak ndodhet në pozitën k ose ndodhet në adresën k.
Mr. Fisnik Dalipi
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)
Mr. Fisnik Dalipi
PYETJE?