You are on page 1of 37

ALGORITMIKE

Leksion 1

Perkufizim i algoritmit
Paraqitje te ndryshme te algoritmeve

MSc. Lisana Berberi

10/20/2013

NE KETE LEKSION
Cfare eshte nje algoritem
Paraqitja e algoritmeve

I.
II.

Pseudokodi
Veprimet Sekuenciale
Veprimet Kushtezuese
Veprimet Iterative

A.
B.
C.
D.
III.

Shembuj

MSc. Lisana Berberi

10/20/2013

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

MSc. Lisana Berberi

10/20/2013

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.

MSc. Lisana Berberi

10/20/2013

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?

MSc. Lisana Berberi

10/20/2013

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?

MSc. Lisana Berberi

10/20/2013

SI NDERTOHEN ALGORITMET?

Instruksione Sekuenciale
ekzekutohen

Instruksione Kushtezuese
ekzekutohen

ne rendin e dhene
nese plotesohet nje kondite

Instruksione Iterative
ekzekutohen

MSc. Lisana Berberi

derisa te plotesohet nje kondite

10/20/2013

Figura 1.1

Skema per tri format?

MSc. Lisana Berberi

10/20/2013

Figure 1.2

Pseudokodi per tri format?

MSc. Lisana Berberi

10/20/2013

A DUHET TI 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

MSc. Lisana Berberi

10/20/2013

10

A DUHET TI PARAQESIM
ALGORITMET NE TERMA TE
GJUHEVE FORMALE TE
Shembull
PROGRAMIMIT?

{ int i, m, carry
int [] a = new int[100];
int [] b = new int[100];
int [] c = new int[100];
m = Console.readInt();
for (int j = 0; j <= m-1; j++) {
}
Pro
+
+

Preiz 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

MSc. Lisana Berberi

10/20/2013

11

A DUHET TI 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?
MSc. Lisana Berberi

10/20/2013

12

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.

MSc. Lisana Berberi

10/20/2013

13

VEPRIMET KUSHTEZUESE
Zgjidh

nje bashkesi shprehjesh per tu


ekzekutuar, bazuar ne rezultatin verteterreme 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

MSc. Lisana Berberi

10/20/2013

14

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

MSc. Lisana Berberi

10/20/2013

15

VEPRIMET ITERATIVE (CIKLET)

Ekzekutojne nje bashkesi shprehjesh ne menyre te


perseritur
Tre forma te pergjithshme:
(1)
(2)
(3)

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)

MSc. Lisana Berberi

10/20/2013

16

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

Versioni me cikel Do 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

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

MSc. Lisana Berberi

10/20/2013

17

FUQIA E ALGORITMEVE
Kombinimi

kompleks

i shprehjeve mund te jete

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!

MSc. Lisana Berberi

10/20/2013

18

SHEMBULL I ZGJIDHJES
ALGORITMIKE TE PROBLEMIT:
KERKIMI
Problemi:

Gjeni vleren e dhene ne nje liste


vlerash (psh, nje emer ne nje numerator
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!

MSc. Lisana Berberi

10/20/2013

19

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?

MSc. Lisana Berberi

10/20/2013

20

SHEMBULL I ZGJIDHJES
ALGORITMIKE TE PROBLEMIT:
KERKIMI
(VAZHDIM)

Rishikohet strategjia e zgjidhjes: kerko listen ne


menyre sekuenciale dhe informo perdoruesin
nese vlera nuk gjendet
Jep vleren per i dhe vlerat e stringave N1..i
Jep vleren e stringes te objektivit (target)
Vendos num=1
Vendos ugjet=false
while (ugjet= false dhe num <= i)
if target = Nnum
vendos ugjet=true
else
rrit num me 1
endif
endwhile
if ugjet = true
Afisho Objektivi u gjet
else
AfishoObjektivi nuk u gjet."
endif

MSc. Lisana Berberi

10/20/2013

21

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 ti 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)

MSc. Lisana Berberi

10/20/2013

22

SHEMBULL: GJETJA E SHUMES


DHE E MESATARES SE VLERAVE
NE NJE LISTE (VAZHDIM)
Algoritmi

Jep vlerat per i dhe V1..i


Vendos 0 ne shuma
Vendos aktual me 1
while aktual<= i Do
shto Vaktual tek shuma
shto 1 tek aktual
endwhile

Afisho Shuma: " shuma


Afisho Mesatarja: shuma/ i
MSc. Lisana Berberi

10/20/2013

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

ne liste

i deshiruar: shuma dhe mesatarja e vlerave

Strategjia

e zgjidhjes

Vizito ne menyre sekuenciale do vlere ne liste, duke


mbajtur nje variabel shuma qe ruan shumen
Ne perfundim te ciklit, pjesto shumen me numrin e
elementeve te listes per te gjetur mesataren

MSc. Lisana Berberi

10/20/2013

24

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:
(numri i vlerave)
V1, , Vi (lista e vlerave)
i

Outputi
Lista

i Deshiruar:

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

MSc. Lisana Berberi

10/20/2013

25

ZGJIDHJA ALGORITMIKE E
PROBLEMEVE
Algoritmi
Jep vlerat per i dhe V1..i
Vendos aktual me 1
while aktual< i do
swap Vaktual with Vaktual+1
rrit vleren e aktual me 1
end while

MSc. Lisana Berberi

10/20/2013

26

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.

MSc. Lisana Berberi

10/20/2013

27

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

MSc. Lisana Berberi

10/20/2013

28

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

MSc. Lisana Berberi

10/20/2013

29

SHEMBULL- SEMAFORI

Fig. 1.3 Algoritmi logjik per kalimin e kembesorit ne nje


kryqezim

N praktik prdoret forma analitike e paraqitjes s


algoritmeve e shprehur
prmes nj numri hapash, t cilt kryhen sipas nj
radhe t fiksuar plotsisht.
Kshtu, shembulli i algoritmit t dhn n Fig.1.3, i
paraqitur n 10 hapa, do t duket si n Fig.1.4.

MSc. Lisana Berberi

10/20/2013

30

SHEMBULL- SEMAFORI
1. Fillimi
2. A ka semafor?
Nse JO, hapi i 6.
3. A punon semafori?
Nse JO, hapi i 6.
4. A sht paraqitur ngjyra e gjelbr?
Nse PO, hapi i 9.
5. Duhet pritur. Hapi i 4.
6. Shiko majtas e djathtas
7. A ka automjete?
Nse JO, hapi i 9.
8. Duhet pritur. Hapi i 6.
9. Kalo rrugn n vendkalim
10. Fundi.
Fig.1.4 Forma analitike e algoritmit pr
kalimin e rrugkryqit
MSc. Lisana Berberi

10/20/2013

31

SHEMBULL- SEMAFORI (VAZHD.)

Hapat e veant t ktij algoritmi kryhen me radh prej fillimi, derisa nuk
urdhrohet kaprcimi n nj hap t caktuar. Kshtu, p.sh., nse n rrugkryq ka
semafor dhe paraqitet ngjyra e gjelbr, vargu i hapave npr t cilt do t kalohet
gjat ekzekutimit t algoritmit t dhn sht: 1, 2, 3, 4, 9 dhe 10. Por, n
kushtet e kulturs s komunikacionit n hapsirat tona, kur shpesh ndodh q
automjetet e kalojn rrugkryqin kur n semafor sht e ndezur drita e kuqe, m
e sigurt pr kmbsorin sht nse hapi i katrt i algoritmit shkruhet kshtu:
4. A sht paraqitur ngjyra e gjelbr?
Nse PO, hapi i 6.
ashtu q para se t kalohet rrugkryqi, pavarsisht se pr kmbsor sht
paraqitur ngjyra e gjelbr, duhet t shikohet mos ndoshta kalon ndonj automjet.
Kshtu, pr rastin e prmendur m sipr, kur n rrugkryq ka semafor dhe sht
paraqitur ngjyra e gjelbr, vargu i hapave npr t cilt kalohet sht: 1, 2, 3, 4,
6, 7, 9 dhe 10.
Tek algaritmet numerike hapat e veant jan m t qart, sepse konsistojn
n operacione dhe n shprehje matematikore.

MSc. Lisana Berberi

10/20/2013

32

PARAQITJA GRAFIKE

Gjat paraqitjes analitike t algoritmeve, nse kemi t


bjm edhe me algoritme relativisht t komplikuara,
vshtir se mund t ndiqet rrjedhja e procesit
llogarits.
N praktik, algoritmet paraqiten prmes skemave
grafike, pr vizatimin e t cilave prdoren disa figura
gjeometrike, prkatsisht blloqe t formave t
ndryshme.
Forma gjeometrike e blloqeve q shfrytzohen gjat
prpilimit t skemave grafike tregon edhe natyrn e
operacioneve q kryhen brenda tyre.
Disa nga blloqet elementare q prdoren gjat
vizatimit t skemave grafike jan dhn n Fig.1.5

MSc. Lisana Berberi

10/20/2013

33

Blloku

Perdorimi
Tregon fillimin e algoritmit

Fillim
Lexohen vlerat e variablave t shnuara
n bllok

Lexo

Shtypen vlerat e variablave t shnuara


n bllok

Afisho

Kryhen veprimet ose llogaritjet, duke


shfrytzuar shprehjet e shnuara n bllok
Prcaktohet degzimi i veprimeve t
mtejshme, duke pasur parasysh konditat
shnuara n bllok
`

Tregon fundin e algoritmit

Fund

Fig. 1.5 Figurat gjeometrike elementare

MSc. Lisana Berberi

10/20/2013

34

Fig. 1.6 Bllokskema e algoritmit te semaforit ne nje


kryqezim
MSc. Lisana Berberi

10/20/2013

35

SHEMBUJ TE TJERE

Ndertoni nje algoritem qe gjen siperfaqen dhe


perimetrin e drejtkendeshit kur jepen dy brinjet e
tij a dhe b

Ndertoni nje algoritem nepermjet bllokskemes qe


gjen shumen e N numrave te pare natyrore.

MSc. Lisana Berberi

10/20/2013

36

PYETJE

MSc. Lisana Berberi

10/20/2013

37

You might also like