You are on page 1of 68

III.

Softuerë programimi

Tiranë, 2019
3. Përmbajtja e kapitullit
3.1 Algoritmi
3.2 Struktura të të dhënave
3.3 Tabela me një dimension (vektor)
3.4 Tabela me dy dimensione (matrice)
3.5 Funksioni, procedura
3.6 Skedarët
3.7 Gjuhë programimi
3.8 Projektimi i softuerëve

2 Informatikë. 2019
3.3 Tabela me një dimension
3.3.1 Hyrje
3.3.2 Objektivi
3.3.3 Koncepti i tabelës me një dimension
3.3.4 Kërkime në tabela
3.3.5 Renditja
3.3.6 Tabela të lidhuara
3.3.7 Agregimi (frekuencat)
3.3.8 Ndërfutja e elementëve
3.3.9 Largimi i elementeve

3 Informatikë. 2019
3.3.1 Hyrje

 Duam të llogarisim mesataren e 8 notave:


n1, n2,n3,n4,n5,n6,n7,n8

Një mundësi jepet nga formula:


mes=(n1+n2+n3+n4+n5+n6+n7+n8)/8

Po sikur të kishim 10000 vlera a do të ishte praktikisht i


mundshëm zbatimi i formulës së mësipërme?

4 Informatikë. 2019
Hyrje
Si do të regjistrohen në kujtesë p.sh shitjet javore, të cilat në
praktikë paraqiten në mënyrë të natyrshme në formë të një
tabele, e cila rendit në rreshta dhe në shtylla shitjet e
prodhimeve të ndryshme, në ditë të ndryshme?

Për të përpunuar bashkësi të tilla të dhënash ato së


pari duhet të organizohen në mënyrë të përshtatshme
që më pas aksesi të jetë i lehtë.

Një organizim i tillë është tabela


Tabelat shërbejnë për të rezervuar të dhëna

5 Informatikë. 2019
3.3.2 Objektivat
Të njohim konceptin e tabelës 1-dimensionale si një
strukturë abstrakte për të mbajtur të dhëna

Do të mësojmë se si të bredhim (iterate) në të gjithë


elementët e tabelës,
1. (i) duke i kapur ata një nga një për t’i përpunuar,
2. (ii) për të ndërfutur (insert) një element të ri në
një pozicion të caktuar,
3. (iii) për të zhdukur (delete) një element të
caktuar,
4. (iv) për të agreguar vlerat e dallueshme

6 Informatikë. 2019
7 Informatikë. 2019
3.3.3 Koncepti i tabelës
Tabela është një organizim i të dhënave në kujtesën
qëndrore të kompjutërit nëpërmjet të cilit mund t’i
referohemi një bashkësie vlerash të të njëjtit tip
me anë të një indeksi (koordinate) të vetëm

Tabela është një strukturë me akses të rastit mbasi


të gjithë elementët e saj mund të kapen në mënyrë
rastësore. Çdo element i tabelës aksesohet me të
njëjtën shpejtësi

Tabela është një strukturë statike, shtimi dhe fshirja


e vlerave janë në përgjithësi një proces jo i
menjëhershëm

8 Informatikë. 2019
Emërtimi i tabelës
 Tabela emërtohet me një emër

 Për formimin e emrave të tabelës aplikohen të


njëjtat rregulla që aplikohen për variablat e
thjeshtë

 Emra të rregullt: T, TAB, T1, VLERA, MUAJI

 Emra jo të rregullt: 1T, T AB

9 Informatikë. 2019
Tabela me një dimension

 Tabela duhet të deklarohet para përdorimit

 Deklarimi shërben për të përcaktuar sasinë e


elementëve që do të ketë tabela

Tani për tani nuk do të kryejmë proçesin e deklarimit të


tabelës. Forma e deklarimit është karakteristikë e gjuhës
së programimit. Sidoqoftë deklarimi duhet të bëhet para
se elementët e tabelës të përdoren

10 Informatikë. 2019
Tabela me një dimension
 Për të identifikuar dhe për të përdorur një
element individual të saj, përdoret emri i tabelës
pasuar nga një shënues, i quajtur indeks, i futur
në kllapa të rrumbullakta

 Tabela, elementët e të cilës tregohen me një


indeks të vetëm quhen tabela një dimensionale
ose tabela me një indeks ose vektor

 Një elementi i zgjedhur i tabelës quhet variabël


me indeks

 Në këtë cikël leksionesh, indeksi do të jetë një


vlerë numerike e plotë pozitive

11 Informatikë. 2019
Indeksi i tabelës
 Nga pikpamja e përdorimit indeksi mund
formohet nga:
 një konstante numerike
 një variabël
 një shprehje arithmetike

Në ciklin tonë të leksioneve vlera e çastit të indeksit


duhet të jetë ndërmjet 1 dhe numrit të deklaruar të
elementëve të tabelës

12 Informatikë. 2019
Indeksi i tabelës
Le të supozojmë se kemi deklaruar një tabelë
me 10 rreshta: T(1:10).

Në se variablat i, j, k kanë vlerat e çastit:


i=3, j=4, k=9 atëhere do të kemi:

a) Variabla me indeks të vlefshëm

T(10), T(i), T(i+j), T(k)

b) Variabla me indeks të pavlefshëm

T(1.5), indeksi është numër jo i plotë


T(-2), indeksi është negativ
T(j+k), indeksi është më i madh se vlera e lejuar

13 Informatikë. 2019
Organizimi fizik i tabelës

14 Informatikë. 2019
15 Informatikë. 2019
Të llogaritet s=∑ t(i)
 Jepet një tabelë me një dimension
 Të gjëndet shuma e elementëve të saj

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension

 Rezultate:
s, shuma e elementëve

16 Informatikë. 2019
Llogaritja e shumes se elementeve të një tabele

Fillim

Lexo
(n, t(n))

s=0

i=1

s = s+t(i)

i = i+1

Jo
i≤n
Po
Shtyp(s)

Fund

Informatikë. 2019 17
Të llogaritet s=∑ t(i), t(i)>0

 Jepet një tabelë me një dimension


 Të gjendet shuma e elementëve pozitive të saj të saj

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
 Rezultate:
s, shuma e elementëve pozitivë

18 Informatikë. 2019
Llogaritja e shumës vetëm për elementët pozitive në një tabelë

Fillim

Lexo
(n, t(n))

s=0

i=1

Jo Po
T(i) > 0

s = s+t(i)

i = i+1

Jo Po
i≤n

Shtyp(s)

Fund
Informatikë. 2019 19
Sasia e elementëve që plotësojnë një kusht
 Jepet një tabelë me një dimension
 Të gjëndet sasia e elementëve të barabartë me një
vlerë të dhënë të caktuar

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
vlc, vlera e caktuar
 Rezultate:
nel, numëri i elementëve të kërkuar

20 Informatikë. 2019
Sasia e elementëve të barabartë me një vlerë të caktuar

Fillim

Lexo (n, t(n),vlc)

nel = 0

i=1

Jo Po
t(i) = vlc
nel = nel + 1

i = i+1

Po Jo
i≤n

Shtyp (nel)

Fund

Informatikë. 2019 21
Kërkimi i një vlere të caktuar
 Jepet një tabelë me një dimension
 A ka ndërmjet vlerave të saj të paktën një element të
barabartë me një vlerë të kërkuar?

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
vk, vlera e kërkuar
 Rezultate:
mesazhi “Nuk ka “ në rast negativ
mesazhi “Ka” në rast pozitiv

22 Informatikë. 2019
Kerkimi i një vlere të caktuar

Fillim

Lexo
(n, t(n),vk)

i=1

Jo Po
t(i) = vk

Shtyp(“Ka”)

i = i+1
Fund
Po Jo
i≤n

Shtyp(“Nuk ka”)

Fund
Informatikë. 2019 23
Kërkimi i vlerës më të madhe
 Jepet një tabelë me një dimension
 Të gjëndet vlera më e madhe

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
 Rezultate:
vmm, vlera më e madhe

24 Informatikë. 2019
Kërkimi vlerës më të madhe në një tabelë

Fillim

Lexo
(n, t(n) )

vmm= t(1)

i=2

Jo Po
t(i) ≥ vmm
vmm= t(i)

i = i+1

Po Jo
i≤n

Shtyp(“vmm”)

Fund

Informatikë. 2019 25
Kërkimi vlerës më të madhe në një tabelë

Fillim

Lexo
(n, t(n) )

vmm= -∞

i=1

Jo Po
t(i) ≥ vmm
vmm= t(i)

i = i+1

Po Jo
i≤n

Shtyp(“vmm”)

Fund

Informatikë. 2019
26
Kërkimi i pozicionit të vlerës më të madhe

 Jepet një tabelë me një dimension


 Të gjëndet pozicioni i vlerës më të madhe

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
 Rezultate:
poz, pozicioni i vlerës më të madhe

27 Informatikë. 2019
Kërkimi i pozicionit të vlerës më të madhe në një tabelë

Fillim

Lexo (n, t(n) )

vmm = t(1)
poz = 1

i=2

Jo Po
t(i) = vmm
vmm = t(i)
poz = i

i = i+1
Po Jo

i≤n

Shtyp(“vmm”)

Informatikë. 2019 Fund 28


29 Informatikë. 2019
Renditja e tabelës një dimensionale
 Jepet një varg numrash:
a1, a2, … , an
 Të renditesh këtë varg do të thotë të përkëmbesh
përmbajtjet e tyre në mënyrë që të plotësohet një nga
relacionet e mëposhtëme:
 a1< a2 < … < an, rendi rritës
 a1≤ a2 ≤ … ≤ an, rendi jo zbritës
 a1> a2 > … > an, rendi zbritës
 a1≥ a2 ≥ … ≥ an, rendi jo rritës

30 Informatikë. 2019
Renditja e tabelës një dimensionale
 Renditja (sorting) e elementëve të një tabele, përbën
një algoritmat më të rëndësishëm të algoritmikës

 Në një tabelë të renditur kërkimi i vlerave dhe


përpunime të tjera realizohen lehtësisht

 Disa nga algoritmat e renditjes janë:


Selection sort, Insertion sort, Bubble sort,
Shell sort, Quicksort, Mergesort, Radix sort,
Heap sort, etj

31 Informatikë. 2019
Renditja e tabelës një dimensionale

 Në këtë kurs do të shohim vetëm më të thjeshtin


nga algoritmat e renditjes:
renditja me përzjedhje (selection sort)

 Ky algoritëm është eficent vetëm kur sasia e


elementëve që do të renditen është e vogël

32 Informatikë. 2019
Renditja e tabelës një dimensionale

 Jepet një tabelë me një dimension


 Të renditen elementët e saj në rendin rritës

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
 Rezultate:
t(1:n), e renditur

33 Informatikë. 2019
Renditja e tabelës një dimensionale
 Jepet: 45,122,12,3,21,78,64,53,89,28,84,46

 Algoritmi:
 Kërkohet elementi më i vogël duke filluar nga
elementi i parë. Gjëndet në pozicionin e 4-të.
Përkëmbëhet me elementin e parë:
3,122,12,45,21,78,64,53,89,28,84,46

 Rifillon kërkimi për elementin më të vogël duke


filluar nga pozicioni i dytë. Gjëndet në pozicionin
e 3-të. Përkëmbehet me elementin e dytë:
3,12,122,45,21,78,64,53,89,28,84,46

34 Informatikë. 2019
Renditja e tabelës një dimensionale

 Rifillon kërkimi për elementin më të vogël duke


filluar nga pozicioni i tretë. Gjëndet në pozicionin e
5-të. Përkëmbehet me elementin e tretë:
3,12,21,45,122,78,64,53,89,28,84,46

 Rifillon kërkimi për elementin më të vogël duke


filluar nga pozicioni i katërt. Gjëndet në pozicionin
e 10-të. Përkëmbehet me elementin e katërt:
3,12,21,28,122,78,64,53,89,45,84,46

 Duke zbatuar këtë procedurë do të kemi:


3,12,21,28,45,46,53,64,78,84,89,122

35 Informatikë. 2019
Renditja në rendin rritës

Fillim

Lexo (n, t(n) )

i=1

min=t(i)
pozmin = i

k = i+1

Jo Po
t(k) < min
min = t(k)
pozmin = k

k = k+1

Po Jo
k≤n
t(pozmin)=t(i)
t(i)=min

i=i+1

i ≤ n-1
Po Jo

Fund
Informatikë. 2019 36
Renditja në rendin rritës

Fillim

Lexo (n, t(n) )

i=1

k = i+1

Jo Po
t(k) < t(i)

temp = t(i)
t(i) = t(k)
t(k) = temp

k = k+1

Po Jo
k≤n

i=i+1

i ≤ n-1
Po Jo

Fund
Informatikë. 2019 37
Kopjimi i një tabele

 Jepet një tabelë me një dimension


 Të kopjohet kjo tabelë në një tabelë tjetër me të
njëjtin dimension me të njëjtën renditje të
elementëve

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
 Rezultate:
tr(1:n), tabela e re

38 Informatikë. 2019
Kopjimi i një tabele

Fillim

Lexo(n, t(n))

i=1

tr(i) = t(i)

i = i+1

Jo
i≤n
Po

Fund

Informatikë. 2019 39
Kopjimi i pjesshëm i një tabele
 Jepet një tabelë me një dimension dhe një vlerë e
caktuar e dhënë
 Të kopjohen në një tabele tjetër vetëm ata elementë të
tabelës së dhënë që janë më të vegjël se vlera e dhënë

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
vl, vlera e dhënë
 Rezultate:
tr(1:m), tabela e re

40 Informatikë. 2019
Kopjimi i pjesshëm i një tabele

Fillim

Lexo(n, t(n), vl)

k=0

i=1

Jo
t(i) ≤ vl
Po
k=k+1

tr(k) = t(i)

i = i+1

Jo Po
i≤n

Informatikë. 2019 Fund 41


A ka dy elementë të njëjtë?

 Jepet një tabelë me një dimension


 Të kontrollohet në se ka të paktën dy elementë me të
njëjtën vlerë

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
 Rezultate:
mesazh pohimi “Ka” ose mesazh mohimi “Nuk ka”

42 Informatikë. 2019
Ekzistenca e të paktën dy elementëve të njëjtë në tabelë

Fillim

Lexo( n, t(n) )

i =1

k = i+1

Jo Po
t(i) = t(k)
Shtyp (“Ka”)

k=k+1 Fund

k≤n
Po Jo

i = i+1

Jo Po
i ≤ n-1

Shtyp (“Nuk ka”)

Fund

Informatikë. 2019 43
Elementë të njëjtë të njëpasnjëshëm
 Jepet një tabelë me një dimension
 Të kontrollohet në se ka të paktën dy elementë të
njëpasnjëshëm me të njëjtën vlerë

 Emërtimi i variablave:
 Të dhëna fillestare:
n, madhësia e tabelës
t(1:n), tabela me një dimension
 Rezultate:
mesazh pohimi “Ka” ose mesazh mohimi “Nuk ka”

44 Informatikë. 2019
Ekzistenca e të paktën dy elementëve të njëpasnjëshëm të njëjtë në tabelë

Fillim

Lexo( n, t(n) )

i =1

Jo Po
t(i) = t(i+1)
Shtyp (“Ka”)

Fund

i = i+1

Jo Po
i ≤ n-1

Shtyp (“Nuk ka”)

Fund

Informatikë. 2019 45
46 Informatikë. 2019
Lidhja e elementëve në disa tabela

 Në shumë probleme karakteristikat e të njëjtit


objekt paraqiten në tabela të ndryshme
 Çdo rresht paraqet një objekt (rast - case)
 Elementët korespondues në këtë rast përcaktohen
nga rendi që kanë në tabela

 P.sh: elementët e parë të çdo tabele përcaktojnë


karakteristikat e objektit të parë; elementët e dytë
të çdo tabele përcaktojnë karakteristikat e objektit
të dytë; e kështu me rradhë.
 Njëra nga karakteristikat quhet çelës (key)

47 Informatikë. 2019
Lidhja e elementëve në disa tabela

Shembull. Le të supozohet se për një subjekt tregëtar


dihen të ardhurat dhe shpenzimet e realizuara gjatë
ditëve të një jave. Për këtë rast çelës do të quajmë
ditën e javës.

 Të dhënat do t’i vendosim në tre tabela


 Tabela e parë do të jetë një tabelë e tipit tekst që
do të përmbajë emrat e ditëve të javës (e hënë, …,
e dielë)
 Tabela e dytë do të përmbajë shpenzimet
 Tabela e tretë do të përmbajë të ardhurat

48 Informatikë. 2019
Lidhja e elementëve në disa tabela

Informatikë. 2019 49
Kërkim i shkallëzuar në dy tabela
 Jepet një tabelë me elementë të tipit tekst, te(1:n)
(tabela çelës) dhe një tabelë me vlera numerike
koresponduese tvl(1:n).

 Të kontrollohet në se elementi korespondues në


tabelën numerike i një vlere tekst të caktuar, tevl,
është i barabartë me një vlerë e caktuar, vl

50 Informatikë. 2019
Kërkim i shkallëzuar në dy tabela

Fillim

Lexo ( n, te(n), tvl(n), evl, vl )

i =1

Jo Po
te(i) = evl

i=i+1 poz = i

Po Jo Po Jo
i≤n tvl(poz) = vl

Shtyp (“Çelsi gabim”)

Shtyp Shtyp
(“I barabarte”) (“I ndryshem”)

51 Fund Informatikë. 2019


52 Informatikë. 2019
Agregimi

 Agregimi është procesi i formimit të tabelave të


reja pa përsëritje të vlerave çelës të tabelës bazë
(raw data).

 Dy nga llojet e agregimit janë:


 llogaritja e frekuencës dhe
 llogaritja e shumës së vlerave të takuara

53 Informatikë. 2019
Agregimi

54 Informatikë. 2019
Agregimi

 Jepet një tabelë bazë me n elementë, tk(1:n) dhe një


tabele korresponduese me vlera tv(1:n). Të gjendet
frekuenca e çdo vlere të tabelës tk si dhe shuma e
vlerave koresponduese nga tabela tv.

55 Informatikë. 2019
Agregimi, llogaritja e frekuences dhe shumes

Fillim

Lexo ( n, tk(1:n), tv(1:n) )

tpp(1)=tk(1)
tfr(1)=1: ts(1)=tv(1)

m=1

i=2

k=1

Jo Po
tk(i)=tpp(k)
k=k+1 tfr(k)=tfr(k)+1

Po Jo ts(k)=ts(k)+tv(i)
k≤m
m=m+1

tpp(m)=tk(i)

tfr(m)=1
ts(m)=tv(i)

i=i+1
Jo Po
i≤n
Informatikë. 2019 fund 56
57 Informatikë. 2019
Ndërfutja e vlerave

 Zakonisht ky proces ka vlerë kur përpunohen disa


tabela të lidhura me anë të një tabele çelës dhe
tabela çelës është e renditur

 Kërkohet që të ndërfuten një ose disa vlera në


mënyrë të tillë që të mos prishet renditja fillestare e
tabelave

 Nuk do të interesohemi për deklarimet e


përshtatshme të tabelave

58 Informatikë. 2019
Ndërfutja e një vlere në fillim të tabelës

Rast i veçantë
 Jepet një tabelë me n elementë, tk(1:n). Të ndërfutet
(të shtohet) para elementit të parë një vlerë e
caktuar e dhënë, vl.

59 Informatikë. 2019
Shtimi i një elementi në fillim të tabelës

Fillim

Lexo ( n, tk(1:n), vl )

i=n

tk(i+1)=tk(i)

i=i-1

Po Jo
i≥1

tk(1)=vl

fund

Informatikë. 2019 60
Ndërfutja e një vlere në tabelë
Rast i përgjithshëm
 Jepen dy tabela me n elementë: tabela çelës tk(1:n)
dhe tabela tv(1:n) e lidhur me të.
 Tabela çelës është e renditur sipas rendit rritës
 Të ndërfuten (të shtohen) në pozicionin e duhur (pa
prishur renditjen) një vlerë e caktuar e dhënë, vk
dhe koresponduesja e saj vl.

61 Informatikë. 2019
Ndërfutja e një elementi në një tabelë të renditur në rendin
rritës

Fillim

Lexo ( n, tk(1:n), tvl(1:n),vk,vl ) Është element më


i madh se çdo
element tjetër i
Gjetja e Jo Po
vk≥tk(n) tabeles
pozicionit
ne tabele
tk(n+1)=vk
i=1 tvl(n+1)=vl

Jo Po
vk ≥ tk(i) poz=i

i=i+1

Po Jo
i≤n

i=n

Zhvendosja e
elementeve tk(i+1)=tk(i)
tvl(i+1)=tvl(i)

i=i-1

Po
i≥poz
Jo
tk(poz)=vk
tvl(poz)=vl

Informatikë. 2019 62
fund
63 Informatikë. 2019
Largimi i vlerave nga tabela

 Zakonisht ky proces ka vlerë kur përpunohen disa tabela të


lidhura me anë të një tabele çelës

 Kërkohet që të largohen një ose disa vlera nga tabelat e lidhura

 Largimi i vlerave presupozon zhvendosjen e elementëve të tjere


në mënyrë që të mos lënë “boshllëk”

 Megjithëse përmasat e tabelës do të zvogëlohen ne nuk do të


interesohemi për deklarimet e përshtatshme të tabelave

64 Informatikë. 2019
Largimi i vlerave nga tabela

Algoritmi i parë:
1. Në një tabelë ndihmëse kopjohen të gjitha vlerat
e tabelës së dhënë që janë të ndryshme nga vlera që
do të largohet

2. Rikopjohen në tabelën kryesore vlerat që nga


tabela ndihmëse

65 Informatikë. 2019
Largimi i një elementi me anë të një tabele ndihmëse

Fillim

Lexo(n, t(n), vlc)

k=0 KOPJIMI NE NJË


TABELE NDIHMESE

i=1

Po Jo
t(i) = vlc

k = k+ 1

tr(k)=t(i)

i = i+1

Jo Po
i≤n
Jo Po
k=0
Shtyp
(“vlera nuk
gjendet”)
i=1

t(i)=tr(i) RIKOPJIMI I
VLERAVE
i = i+1 NE TABELËN BAZE

i≤k
Po Jo

Fund
66 Informatikë. 2019
Largimi i vlerave nga tabela

Algoritmi i dytë:
1. Gjëndet pozicioni i vlerës që do të largohet

2. Bëhet zhvendosja e vlerave të tjera në drejtim të


pozicionit të vlerës së larguar

67 Informatikë. 2019
Largimi i një elementi me ane të zhvendosjes

Fillim

Lexo(n, t(n), vlc)

GJETJA E
i=1 POOZICIONIT TË
VLERES

Jo Po
t(i) = vlc
poz = i

i = i+1

Jo Po
i≤n

Shtyp
ZHVENDOSJA E
(“vlera nuk
VLERAVE
gjendet”) poz=n
Po Jo

k=poz

t(k)= t(k+1)

k=k+1

k≤n-1
Jo Po

Fund
68 Informatikë. 2019

You might also like