Al-Forums.Com ™ - Discussions. Forum Virtual Shqiptar,
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Al-Forums.Com ™ - Discussions. Forum Virtual Shqiptar,

wWw.Al-Forums.Com ™ - Discussions. Forum Virtual Shqiptar, Vendi i duhur pėr tė gjithė shqiptarėt anembanė. Diskutime tė ndryshme rreth shoqerisė dhe tema tė tjera.
 
ChatForumKėrkoLatest imagesRegjistrohuidentifikimiGallery mIRC ScriptsAlbania Chat MOTI  Filma ShqiptarTop Albania Radio

Chat Shqip - Bisedo Shqip - chat shqip , albania chat , chato ... | Albania Chat Mibbit - Webchat - Java IRC - Online Chatt

 

 Programim / Koncepte

Shko poshtė 
AutoriMesazh
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:34

Gjurmimi i tė dhėnave [ang. Data Mining]
Programim / Koncepte - 18/09/2007 -
Shkruar nga:
Astrit DESKU - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:,
kėtė punim nė mėnyrė te shkurtėr pėrshkruhet procesi i gjurmimit tė tė
dhėnave (ang. Data Mining). Me theks te veēanet shpjegohet rėndėsia e
pėrdorimit te gjurmimit tė tė dhėnave pėr tė fituar informata tė
dobishme gjatė kryerjes sė punėve nė lėmi tė ndryshme jetėsore. Nė
veēanti potencohen pėrfitimet tė cilat mund ti sigurojnė ndėrmarrjet
afariste me pėrdorimin e gjurmimit tė tė dhėnave.
Nė vazhdim pėrshkruhen disa metoda dhe teknika pėrmes te cilave
realizohet gjurmimi i tė dhėnave. Nė pjesėn e fundit tė punimit
tregohen kompanitė dhe produktet softuerike tė zhvilluara nga ato
kompani, me tė cilat mundėsohet gjurmimi i tė dhėnave.



Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:34

Ditari i ngjarjeve - njė shembull i plotė nė PHP dhe MySQL
Programim / Koncepte - 13/06/2007 -
Shkruar nga:
Ridvan BUNJAKU - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:, Ky
material ėshtė pėrshtatur edhe pėrkthyer nga libri "SAMS Teach Yourself
PHP4 in 24 Hours" i autorit Matt Zandstra. Libri pėrbėhet nga 24 orė.
Kėtu janė 2 orėt e fundit nė tė cilat pėrpunohen njohuritė e shpjeguara
nė 22 orėt e mėhershme.



Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:34

Gjenerimi i vargjeve tė rastit me shpėrndarje tė njėtrajstshme
Programim / Koncepte - 13/06/2007 -
Shkruar nga:
Besnik DURIQI - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:,
kėtė shkrim flitet pėr numrat e rastit. Kėtu mund tė lexoni pėr
statistikėn aplikative, nė tė cilėn fushė numrat e rastit pėrdoren
shpesh. Pėr shkak se shumė metoda statistikore mbėshteten nė shembuj tė
rastit, statisticientėt aplikativ shumė shpesh kanė nevojė pėr njė
burim tė “numrave tė rastit”. Ky shkrim flet se si mund tė gjenerohen
numrat e rastit pėrmes kompjuterit.



Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:35

AJAX - Teknologjia e WEB 2.0 (pjesa I)
Programim / Koncepte - 20/11/2006 -
Shkruar nga:
Sidrit TRANDAFILI - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:, Nė kėtė punim flitet pėr gjuhėn AJAX, dhe pėr pėrdorimin e saj nė internet. AJAX apo Asynchronous JavaScript dhe XML (Javascript e PaSinkronizuar dhe XML) ėshtė njė teknikė pėr tė zhvilluar aplikacione Web interaktive e dinamike duke pėrdorur njė kombinim t


Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:35

Zhvillimi i softuerit nė ekip: Koncepte themelore (pėrmbledhje informative)
Programim / Koncepte - 24/08/2006 -
Shkruar nga:
Ridvan BUNJAKU - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:,
kėtė pėrmbledhje tė koncepteve janė pėrfshirė parimet themelore tė
zhvillimit tė softuerit nė grup. Softueret bashkėkohore janė sisteme
komplekse qė kėrkojnė punė me pėrkushtim tė lartė dhe nė kohė tė gjatė
tė shumė njerėzve. Funksionimi i mirė i ekipit ėshtė ndėr sfidat mė tė
mėdha pėr ekipin dhe ėshtė faktor kryesor pėr suksesin e tij nė
arritjen e qėllimit: zhvillimin e njė solucioni stabil qė do t’i
plotėsonte tė gjitha kėrkesat e klientit.
Njė strategji efikase pėr arritjen e kėtij qėllimi ėshtė Microsoft
Solutions Framework, bazat e sė cilės paraqiten nė kėtė dokument. Pjesa
kryesore e kėtij dokumenti ėshtė marrė nga libri “Analyzing
Requirements and Defining Microsoft
.NET Solution Architectures”. Kėtu janė paraqitur pėrmbledhjet e
kapitujve tė kėtij libri. Ndėrsa nė fund janė paraqitur Parimet
themelore tė MSF dhe Rolet e ekipeve tė MSF nėpėr faza, qė janė marrė
nga libri “Microsoft Solutions Framework Essentials”.



Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:36

Pyetėsit (Queries)
Programim / Koncepte - 27/06/2006 -
Shkruar nga:
Visar KASTRATI - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:,
kėtė shkrim flitet pėr Pyetėsit (Queries) qė pėrdoren pėr krijimin e
tabelave tė pėrkohshme duke i shfrytėzuar tė dhėnat nga tabelat e
bazės. Nė kėtė shkrim flitet pėr Pyetėsit (Queries) e bėrė nė programin
pėr bazė tė dhėnave: Microsoft Access. Poashtu flitet edhe pėr dizejnimin e pyetėsorėve dhe kategoritė nė tė cilat ato pėrfshihen.



Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:37

Konceptet bazė tė XML-it
Programim / Koncepte - 29/11/2005 -
Shkruar nga:
Burim ALIJAJ - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:, Nė kėtė punim flitet pėr defnicionin dhe prejardhjen e XML. Kėtu poashtu mund tė gjeni paraqitjetet e XML-it (text, DOM, SAX). XSLT, si punojnė, si tė shkruajm XML kode, pėr ēka ėshtė i dobishėm dhe ēka mundė tė bėjė.


Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:37

Strukturat e tė dhėnave nė C++
Programim / Koncepte - 15/09/2005 -
Shkruar nga:
Ridvan BUNJAKU - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:, Materiali
nė kėtė punim i paraqet disa teknika themelore pėr prezentimin e
bashkėsive tė fundme dinamike dhe pėr manipulimin e tyre nė kompjuter,
si dhe implementimin e tyre nė gjuhėn programuese C++.
Kodi, si zakonisht, do tė jetė i organizuar nėpėr fajlla ballinė (.h)
tė cilėt i pėrmbajnė deklarimet e klasėve, dhe fajlla burimorė (.cpp)
tė cilėt i pėrmbajnė implementimet e klasėve pėrkatėse. Nė kėtė punim,
do tė prezentohen edhe programet pėrkatėse qė e verifikojnė
korrektėsinė e deklarimit dhe implementimit tė klasėve.



Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:39

ASP.NET Kontrollat
Programim / Koncepte - 06/07/2005 -
Shkruar nga:
Ardian IBRAJ - Programim / Koncepte Gjenero_eposten


Programim / Koncepte Email Shkarko PDF

Koment:, ASP.NET-i (Active Server Pages), ėshtė teknologji pėr tė zhvilluar web aplikacione dhe ofron zgjidhjen shumė tė nevojshme pėr njė problem shumė tė vjetėr - kontrollat e HTML formave. Nė kėtė punim mund tė lexoni gjėrėsisht lidhur me HTML Server kontrollat, ASP
Server kontrollat, Kontrollat e Validimit si dhe Kontrollat e
kostumizuara. Ky punim ėshtė mbrojtur nė Fakultetin e Inxhinierisė
Elektrike dhe Kompjuterike tė UP, Prishtinė.



Shkarko punimin si PDF
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:41

Analizimi i Algoritmeve
Programim / Koncepte - 01/06/2005 -
Shkruar nga:
Betim DEVA - Programim / Koncepte Gjenero_eposten

Programim / Koncepte Shtype Pėr shtypės

Koment:, Ky
shkrim shpjegon mėnyra tė ndryshme se si tė bėhet analizimi i
algoritmeve duke gjetur funksionin e rritjes. Poashtu spjegohet teorema
Master dhe pėrdorimi i saj. Shkrimi pėrmban shembuj qė i korrespondojnė
teoremave.

Problemet e ndryshme mund tė zgjidhen nė mėnyra tė ndryshme. Varėsisht nga algoritmi qė pėrdoret, i njėjti problem mund tė zgjidhet brenda kohėve tė ndryshme, po ashtu edhe hapėsira qė shfrytėzohet pėr memorie
mund tė ndryshojė. Me analizė tė algoritmeve nėnkuptohet parashikimi i
resurseve qė i kėrkon algoritmi pėr ta zgjidhur njė problem tė caktuar
si p.sh. koha, memoria, brezi i gjerėsisė sė komunikimit, hardueri.
Mirėpo karakteristika kryesore qė brengosemi ėshtė koha e ekzekutimit.
Kohėve tė fundit, memoria ėshtė e lire dhe jo aq problematike.

Para se tė analizojmė algoritmin na duhet njė model teorik qė nė fakt
ėshtė makinė nė tė cilin do ti bazojmė analizat tona. Model i njohur
ėshtė random-access machine (RAM), tė cilin do ta pėrdorim nė kėtė shkrim dhe i ka kėto karakteristika:
- Instruksionet ekzekutohen njėri pas tjetrit
- Ka numėr tė pafundmė regjistrash
- Ka hapėsirė tė pakufizuar
- Jo dy instruksione ekzekutohen nė tė njėjtėn kohė
- Nuk pėrmban memorie cache apo virtuale
- Ėshtė i pavarur nga arkitektura
- Koha pėr tė cilin ekzekutohet ēdo instruksion ėshtė e njėjtė (psh,
mbledhja, zbritja, transferimi i vlerės prej njė variabėl nė tjetrėn,
etj)
etj.

Lidhur me analizėn e algoritmeve njihemi me nocionet si “kompleksiteti
kohor” (Ang: time complexity) dhe “kompleksiteti hapėsinor” (Ang: space
complexity).

Kompleksiteti kohor – ėshtė numri i hapave qė duhet tė
ekzekutohen si funksion i pėrmasave tė hyrjeve. d.m.th. koha e
ekzekutimit varret nga hyrja (Ta keni parasysh kėtu qė nuk flasim pėr
kohėn reale pėr tė cilėn kryhet programi, sepse ajo mund tė ndryshojė
prej kompjuterit nė kompjuter).

Kompleksiteti hapėsinor – ėshtė madhėsia e memories e cila pėrdoret si funksion i pėrmasave tė hyrjeve.

Zakonisht koha pėr tė cilin zgjidhet problemi rritet me rritjen e
pėrmasave tė hyrjeve (Ang: input size). Pėrmasat e hyrjeve definohen nė
bazė tė problemit. Pėr shumicėn e problemeve (algoritmet pėr radhitje,
seritė, vargjet etj) numri i hyrjeve ėshtė numri n
i elementeve tė matricės, pėr disa tė tjera numri i hyrjeve ėshtė numri
i bitave etj. Koha ekzekutimit (Ang: running time) ėshtė numri i
instruksioneve qė bėhen pėr tu ekzekutuar programi. Ta kemi parasysh
kėtu qe flasim pėr hapat e instruksioneve tė pseudo-kodit e jo ato nė
nivelin asembli. D.m.th i eliminojmė dallimet e arkitekturės sė procesorėve duke u bazuar nė modelin RAM.

Marrim njė shembull fillestar ku si hyrje do tė jetė vektori A me n
elemente. Dhe dėshirojmė t’i shtypim tė gjitha vlerat. Ta kemi parasysh
qė Nė shembujt e ardhshėm, vektorėt (array) apo matrica fillojnė prej
indeksit 1. Pseudokodi vijon:

for i:=1 to length(A)
print
A[i]
Pra do tė bėhen n krahasime pėr tė shtypur tė gjithė elementet e matricės, si dhe njė krahasim mė shumė nė unazėn e fundit, atėherė kur i=n+1 d.m.th gjithsejt n+1, ku ne do ta shėnojmė si O(n),
pasi qė numri 1 ėshtė pothuajse i parėndėsishėm kur kemi tė bėjmė me
numra tė mėdhenj. Pra e tėra qė na intereson ėshtė numri i krahasimeve
pėr vlera tė mėdha tė n.

Rritja e funksioneve

Zakonisht me rritjen e n rritet edhe kohėzgjatja e
ekzekutimit tė programit. Varėsisht nga hyrjet, i njėjti program mund
tė ekzekutohet pėr njė kohė tė shkurtėr apo tė gjatė. Nė tė shumtėn e
rasteve neve na intereson se si sillet algoritmi nė skenarin mė tė pa
favorshėm (Ang: worst case scenario).
Qe t’i krahasojmė dy algoritme, ne duhet ta dimė se sa shpejtė rriten
ato algoritme. Pėr ketė arsye njihemi me simbolin O e madhe (Ang: Big-O
notation) i cili pėrkufizohet kėshtu:

Definicion:
Le tė jenė f dhe g funksione prej bashkėsisė sė numrave tė plotė apo real nė bashkėsinė e numrave real. Ne themi qė f(x) = O(g(x)) nėse ekzistojnė konstantet C dhe k ashtu qė
|f(x)| <= C|g(x)| , ku x > k
dhe lexohet f(x) ėshtė O(g(x))

Do tė thotė qė nėse gjejmė njė pikė C, atėherė algoritmi me
kompleksitetin kohor g(x) do tė jetė gjithmonė kufiri i lartėm i
algoritmit f(x).


Shembull:
Vėrtetoni se f(n) = n2 + 2n +1 ėshtė O(n2)

Nė shembullin e mėsipėrm nevojitet tė gjendet se pėr ēdo n>1, ekziston njė konstantė C ashtu qė |f(n)|<= C|g(n)|.

n2 + 2n + 1 e dimė qė ėshtė mė e vogėl qė n2 + 2n2 + n2 = 4n2
dmth 4n2 <= Cn2. Kjo ėshtė e saktė sa herė qe C=4 dhe k>=1
dmth n2 + 2n + 1 ėshtė O(n2)


Do ti vizatojmė kėto lakore
Programim / Koncepte Nxerr_skedarin
Rritja e funksioneve tė algoritmeve
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:42

Ne vėrtetuam nė mėnyrė algjebrike qė n2 + 2n + 1 ėshtė O(n2).
Ne gjetėm konstantėn C=4 ashtu qė funksionet do tė jenė tė barabarta
(Shihet nė figurė ku funksionet priten), Dhe prej asaj pike funksioni n2, do tė jetė gjithmonė mė i madh sesa qė n2 + 2n + 1.

Nėse i vizatojmė lakoret qė i korrespondojnė kohės sė ekzekutimit. Aq
mė shpejtė funksioni qė rritet, aq mė e pjerrėt do tė jetė lakorja, pėr
ēdo rritje tė n qė do tė thotė qė algoritmi do tė jetė aq mė i ngadalshėm.

Simboli O na mundėson qė tė bėjmė analiza e krahasime konkrete tė
algoritmeve. Algoritmet qė publikohen, zakonisht e bashkėngjisin
kompleksiteti kohor nė mėnyrė qė tė vlerėsohet efikasiteti.

Simboli O na tregon ku gjendet kufiri i sipėrm, mirėpo nuk na jep
informatė lidhur me kufirin e poshtėm. Kjo do tė thotė qe e dimė qe njė
algoritėm
kufizohet me njė lakore pėr sė larti, qė nuk do ta kalojė atė, mirėpo
nuk e dimė se cila ėshtė lakorja e poshtme qė do tė na kishte dhėnė
informatė mė tė saktė se ku shtrihet algoritmi. Kėtu vjen nė shprehje
simboli omega Ω qė ėshtė i ngjashėm me O dhe pėrkufizohet kėshtu.

Definicion:
Le tė jenė f dhe g funksione prej bashkėsisė sė numrave tė plotė apo real nė bashkėsinė e numrave real. Ne themi qė f(x) = Ω (g(x)) nėse ekzistojnė konstantet pozitive C dhe k ashtu qė
| f(x) | >= C| g(x) | , ku x > k
dhe lexohet f(x) ėshtė Ω (g(x))


Shembull:
Vėrtetoni se f(x) = 8x3+5x2+7 ėshtė Ω (g(x)), ku g(x) = x3.

Duhet tė vėrtetojmė qė 8x3+5x2+7 >= C x3
Kjo edhe shihet qė ėshtė e saktė pėr C>= 1 dhe x>=1.

Njė simbol tjetėr qė ka tė bėjė me O dhe Ω ėshtė θ qė nė fakt ėshtė kur
funksioni kufizohet edhe nga lartė edhe nga poshtė me njė funksion, dhe
pėrkufizohet kėshtu:

Definicion:
Le tė jenė f dhe g funksione prej bashkėsisė sė numrave tė plotė apo real nė bashkėsinė e numrave real. Ne themi qė f(x) = θ (g(x)) nėse
f(x) ėshtė O (g(x)) dhe f(x) ėshtė Ω (g(x)) dhe lexohet f(x) ėshtė θ (g(x)) apo f(x) i pėrket rendit g(x)

Shembull:
Vėrtetoni se f(x) = 3x2+8xlog(x) ėshtė θ (g(x)), ku g(x) = x2.
Duhet qė tė vėrtetojmė se f(x) ėshtė O(g(x)) dhe f(x) ėshtė Ω (g(x))

Vėrtetojmė qė
3x2+8xlog(x) <= C x2

3x2+8xlog(x) <= 3x2+8x2 = 11x2 <= C x2 sa herė qė C>=11, x>1 pra f(x) ėshtė O(g(x))

Nė anėn tjetėr vėrtetojmė qė
3x2+8xlog(x) >= C x2.
Kjo shihet qarė qė ėshtė e saktė pėr pėr C>=1 dhe x>1.


Tani do tė shohim ti analizojmė pseudo-kodet e algoritmeve, duke nxjerrė rendin e rritjes

Shembull: Algoritmi 1

Kosto Kohėt
----------------------------------------------------
for i := 1 to n C1 n + 1
print i; C2 n

for j := 1 to n C3 n + 1
print j; C4 n
Ēdo rresht e ka koston e vet qė shėnohet me ci. p.sh Rreshti parė do tė kontribuojė C1(n+1) nė kohėn e ekzekutimit tė pėrgjithshėm.
Pra
T(n) = C1(n + 1) + C2n + C3(n + 1) + C4n = (C1 + C2 + C3 + C4)n + (C1 + C3)
Kjo ėshtė formė lineare
kx + l , ku k= C1 + C2 + C3 + C4 dhe l = C1 + C3
Nuk brengosemi shumė pėr konstante, por pėr n sepse ajo do tė kontribuojė me sė shumti kur rritet. Kėshtu qė funksioni rritės do tė jetė O(n)


Marrim njė shembull tjetėr tė ngjajshėm
Shembull: Algoritmi 2

Kosto Kohėt
---------------------------------------------------------------------
for i := 1 to n C1 n + 1
for j := 1 to n C2 (n + 1) + (n + 1) +...+ (n + 1) = n(n + 1)
print j; C3 n

Rreshti i dytė si i veēantė do tė ishte C2(n + 1). Mirėpo ky ėshtė brenda unazės sė sipėrme dhe do tė ekzekutohet n herė. Dmth gjithsejt C2(n + 1)n

T(n) = C1(n + 1) + C2(n + 1)n + C3n = C2n2 + (C1 + C2 + C3)n + C1

Kjo ėshtė formė kuadratike ax2 + bx + d ku a= C3, b= C1 + C2 + C3 dhe d = C1. Termi qė do tė kontribuojė mė sė shumti ėshtė n2 Kėshtu qė funksioni rritės do tė jetė O(n2)

I Vizatojmė funksionet pėr kėto dy algoritme dhe do tė kemi duke i konsideruar konstantet 1 dhe do tė kemi:
Programim / Koncepte Nxerr_skedarin
Rritja e funksioneve tė algoritmeve
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:42

Siē shihet nė figurė me rritjen e n (boshti horizontal), Algoritmi i dytė rritet mė shpejtė se algoritmi i parė.


Mesiguri qė e vutė re se kur unazat janė tė futura njėra nė tjetrėn,
atėherė kompleksitetet shumėzohen, ndėrsa nėse ekzekutohen njėri pas
tjetrit, ato mblidhen.

Teoremė
Le tė jetė f1(x) me rend O(g1(x)); dhe f2(x) me rend O(g2(x)). Atėherė (f1 + f2)(x) ėshtė O(max(|g1(x)|,|g2(x)|)).


Teoremė
Le tė jetė f1(x) me rend O(g1(x)); dhe f2(x) me rend O(g2(x)). Atėherė (f1f2)(x) ėshtė O(g1(x)g2(x)).


Marrim njė shembull lidhur me kėto dy teorema:

Shembull
Gjeni rendin O, pėr f(n) = 3nlog(n!) + (n2 + 3)log(n).
Sė pari e gjejmė rendin pėr pjesėn 3nlog(n!)
log(n!) = log(1 * 2 * 3 ...n) <= log(n * n * n ...n) <= log(nn) = nlog(n)
Pra log(n!) ėshtė O(nlog(n))

Nė bazė tė teormės sė dytė 3nlog(n!) ėshtė O ( n*nlog(n)) = O(n2log(n))

Tani gjejmė rendin pėr pjesėn (n2 + 3)log(n).
(n2 + 3) ėshtė O(n2)
log(n) ėshtė O(log(n))
Nė bazė tė teoremės sė dytė (n2 + 3)log(n) ėshtė O(n2log(n))

Dhe e pėrgjitshmja nė bazė tė teoremės sė parė do tė jetė

f(n) = 3nlog(n!) + (n2 + 3)log(n) = O(max(n2log(n),n2log(n)) = O(n2log(n))





Tani do tė shohim se si tė gjejmė rendin e rritjes tė algoritmit pėr kėrkim i njohur si insertion-sort
Shembull:

Kosto Kohėt
------------------------------------------------------------------
insertion-sort(A)
for j := 2 to length(A) C1 n
do key := A[j] C2 n - 1
//Inserto A[j] ne vendin e caktuar 0
i := j -1 C4 n - 1
while i > 0 and A[ i ] > key C5 Σnj=2(tj)
do A[i + 1] := A[ i ] C6 Σnj=2(tj - 1)
i := i - 1 C7 Σnj=2(tj - 1)
A[i + 1] := key C8 n - 1

Ēdo rresht e ka koston e vet qė shėnohet me ci.
Poashtu ēdo rresht ekzekutohet x herė. P.sh. rreshti parė do tė
kontribuojė C1n nė kohėn e ekzekutimit tė pėrgjithshėm. Rreshti i tretė
ėshtė koment dhe nuk numėrohet

Llogarisim kohėn e ekzekutimit pėr ēdo rresht.

T(n) = C1n + C2(n-1) + C4(n-1) + C5(Σnj=2(tj)) + C6(Σnj=2(tj - 1)) + C7(Σnj=2(tj - 1)) + C8(n-1)

Siē e dimė nga seritė
Σnj=2(tj)
= 2 + 3 +...+ n
= (1 + 2 + 3 + ... + n) - 1
= n(n+1)/2 - 1

Ngjajshėm
Σnj=2(tj - 1)
= (2 - 1)+ (3 - 1) + ... (n - 1)
= 1 + 2 + 3 + ... n - 1
= (n-1)(n-1 + 1)/2
= n(n-1)/2


Pra
T(n) = C1n + C2(n-1) + C4(n-1) + C5(n(n+1)/2 - 1) + C6(n(n-1)/2) + C7(n(n-1)/2) +C8(n-1)
= (C5/2 + C6/2 + C7/2)n2 + (C1 + C2 + C4 + C5/2 - C6/2 - C7/2 + C8)n -(C2 + C4 + C5 + C8)

Ku shihet qė ėshtė e formės kuadratike an2 + bn + c
Kur n rritet pafund, termi qė kontribuon mė sė shumti ėshtė n2 prandaj skenari mė i pafavorshėm pėr insertion-sort ėshtė θ(n2)

Algoritmet Rekurzive "Divide and Conquer"

Tani do tė analizojme disa algoritme rekurzive tė tipit "Divide and
Conquer (D&C)" apo si i bie shqip "Pėrēaj e Sundo". Kėto janė
algoritme qė e ndajnė problemin e dhėnė nė dy apo mė tepėr nėn-probleme
tė tipit tė njejtė apo ngjajshėm nė mėnyrė rekurzive nė mėnyrė qė tė
zgjidhen lehtė dhe pastaj duke i kombinuar ato zgjidhje pėr tė gjetur
zgjidhjen e problemit tė dhėnė.

Shembull do tė jetė algoritmi i njohur si "binary search", i cili e
gjen pozitėn se ku gjindet njė numėr i caktuar nė vektorin i cili si
parakusht e ka qė tė ketė numrat tė renditur sipas madhėsisė. Vektori
ndahet nė dy pjesė dhe shikohet nėse numri i kėrkuar ėshtė nė mes, nėse
jo shikohet nėse ai numėr ėshtė mė i madh apo mė i vogėl se numri nė
mes. Nė bazė tė kėtij vendimi, vazhdohet nė pjesėn adekuate tė
vektorit, duke e ndarė edhe atė nė dy pjesė nėse ėshtė nevoja. Me kėtė
algoritėm shkojmė vetėm nė njė drejtim duke i eliminuar drejtimet tjerė.

binarySearch(a, nr , majtas, djathtas)
if djathtas < majtas
return "Nuk u gjet"
mes := floor((majtas+djathtas)/2)
if a[mes] = nr
return mes
else if nr < a[mes]
binarySearch(a, nr, majtas, mes-1)
else if nr > a[mes]
binarySearch(a, nr, mes+1, djathtas)

Kompleksiteti i kėtyre algoritmeve zgjidhet pėrmes relacioneve
pėrsėritėse D&C (Ang: D&C recurrence relations) ku forma e
pėrgjithshme ėshtė f(n) = af(n/b) + g(n)
ku a ėshtė numri i nėn-problemeve ndėrsa b
ėshtė madhėsia e nėn-problemeve. Dhe g(n) ėshtė kompleksiteti shtesė qė
i shtohet pėr tė bėrė punė si p.sh. kombinimin e nėn-problemeve pėr tė
gjetur problemin kryesor.
Nė algoritmin e mėsipėrm kemi tė bėjme me dy njė nėn-problem(a = 1.
Vėreni se vetėm njė herė thirret funksioni binarySearch pėr ēdo
thirrje, pasi qė thirrjet binarySearch janė tė ndara me strukturat
kontrolluese "if-else"),dhe ēdo nėnproblem e zvogėlon n pėr dy herė ( b =2).

pra numri i krahasimeve pėr binarySearch do tė jetė
T(n) = T(n/2) + 1

Ka mėnyra tė ndryshme se si tė zgjidhet ky relacion pėrsėritės. Ne do
ta shfrytėzojmė teoremėn Master (Ang: Master Theorem) pėr zgjidhjen e
kėtyre relacioneve. Tė shohim definimin e kėsaj teoreme
Teoremė:
Le tė jetė f njė funksion rritės qė pėrkrahė kėtė relacion pėrsėritės:
T(n) = aT(n/b) + cnk
Sa herė qė n = bk, ku k ėshtė numėr i plotė pozitiv, a >= 1, b ėshtė numėr i plotė, mė i madh se 1, ndėrsa c numėr real pozitiv dhe k numėr real jo-negativ. Atėherė:

{ O(nk) , nėse a < bk
T(n) = { O(nklog(n)) , nėse a = bk
{ O(nlogb(a)) , nėse a > bk


Kthehmi tash te detyra jonė ku T(n) = T(n/2) + 1 (pra b=2, a=1 dhe g(n) =1, pra k=0
Kjo i pėrket rastit a = bk
1 = 20
1 = 1

Qė do tė thotė qė

T(n) = O(n0log(n)) = O(log(n))

Marrim njė shembull tjetėr.

Shembull:
procedure DC(n)
if n <= 1 then
return
for i := 1 to 8 do
DC(n div 2)
for i := 1 to n^3 do
print i
a) Le tė gjindet rendi i T(n)
b) Ndryshoni pseudukodin ashtu qė nė unazėn e parė numri 8 ndryshohet nė 9, dhe gjeni rendin e T(n)
c) Ndryshoni pseudukodin ashtu qė nė unazėn e parė numri 8 ndryshohet nė 7, dhe gjeni rendin e T(n)

a) Relacioni pėrsėritės ėshtė: T(n) = 8 T(n/2) + f(n). Ku f(n) ėshtė O(n3) dhe a = 8, b = 2, dhe k = 3.
Pasi qė 8 = 23, kjo i pėrgjigjet O(n3log(n))
b) Relacioni pėrsėritės ėshtė: T(n) = 9 T(n/2) + f(n). Ku f(n) ėshtė O(n3) dhe a = 9, b = 2, dhe k = 3.
Pasi qė 9 > 23, kjo i pėrgjigjet O(nlog2(9))
b) Relacioni pėrsėritės ėshtė: T(n) = 7 T(n/2) + f(n). Ku f(n) ėshtė O(n3) dhe a = 7, b = 2, dhe k = 3.
Pasi qė 7 < 23, kjo i pėrgjigjet O(n3)

Kjo ishte njė hyrje mbi analizėn e algoritmeve.


Burimet:
Th.H.Cormen,Ch.E.Leiserso, R.L.Rivest,C. Stein. "Introduction to Algorithms". The MIT Press, second edition, 2001

Keneth H. Rosen. "Discrete Mathematics and its Applications". McGraw-Hill, fifth edition, 2003

Wikipedia.org http://en.wikipedia.org/wiki/Divide_and_conquer_%28computer_science%29
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:43

Operatorėt nė C++
Programim / Koncepte - 13/02/2005 -
Shkruar nga:
Burim ALIJAJ - Programim / Koncepte Gjenero_eposten

Programim / Koncepte Shtype Pėr shtypės

Koment:, Ky shkrim elaboron operatorėt nė C++, prioritetin e tyre. Shkrimi poashtu pėrmban shembuj lidhur me operacionet e rendėsishme.
Pasi
qė njohim ekzistencėn e konstanteve dhe variablave mund tė fillojmė qė
tė operojmė me to. Pėr atė arsye, C++ i ofron operatorėt, tė cilėt nė
kėtė gjuhė janė tė shumtė. Ėshtė mė rėndėsi t’i dijmė sepse janė baza e
gjuhės C++.

Operatori i barazimit(=)

Operatori i barazimit shėrben pėr t’ia caktuar njė vlerė variablės.

a=5;

ia jep vlerėn 5 variablės a. Pjesa e majtė prej operatorit = ėshtė e njohur si lvalue (vlera e majtė) dhe ajo nė tė djathtė rvalue (vlera e djathtė). lvalue
duhet gjithmonė tė jetė variabel ,ku ana e djathtė mund tė jetė
konstantė, variabėl. Rezultati i ndonjė operacioni ose i ndonjė
kombinimi tė tyre.

Ėshtė e nevojshme qė tė theksojmė se operatori i barazimit gjithmonė vepron nga e djathta kah e majta e kurrė nė tė kundėrten.

a = b;

vlerėn qė e ka variabla b do t’a marr edhe variabla a pavarėsisht se ēfarė vlere ka pasur me herėt. Nė kėtė rast ne jemi vetėm duke ndėrruar vlerėn e variablės a d.m.th nėse ndėrron me vonė vlera e variablės b nuk do tė thotė qė do tė ndėrrojė edhe vlera e variablės a.
P.sh nėse e vėshtrojmė kėtė kod:

int a, b; // a:? b:?
a = 10; // a:10 b:?
b = 4; // a:10 b:4
a = b; // a:4 b:4
b = 7; // a:4 b:7
do tė na jep rezultatin ashtu qė vlera e a-sė ėshtė 4 dhe ajo e b-sė ėshtė 7. Modifikimi final pėr b nuk ka patur efekte nė a, edhe pse me herėt kemi deklaruar se a = b; (rregullen nga e majta nė tė djathtė).

Njė pėrparėsi qė ka operatori i barazimit (assignation) nė C++ nė
krahasim me gjuhet e tjera ėshtė se mund tė pėrdoret nė anėn e djathtė
tė shprehjes. Pėr shembull:

a=2+(b=5);

prej nga kemi :

b=5;
a=2+b;
ēka do tė thotė se: sė pari variabla b merr vlerėn 5 dhe atėherė ia japim vlerėn 2 variablės a plus rezultatin qė e ka marrur variabla b (e cila ėshtė 5), duke pasur rezultatin pėr variablen 7. Prej nga rrjedhė edhe shprehja e cila ėshtė valide nė C++:

a=b=c=5;
ku tė njėjtėn vlerė e marrin tė tri variablat a,b dhe c.

Operatorėt aritmetik ( + , - , * . / . % )

Pesė operatorėt aritmetikorė tė pėrkrahur nga gjuha C++ janė:

+ mbledhja
- zbritja
* Shumėzimi
/ pjestimi
% mbtetja
Operatorėt e mbledhjes, zbritjes, shumėzimit dhe pjestimit janė mė se
tė qartė ,pasi qė funksioni i tyre lidhet me shenjėn e tyre
matematikore qė e kanė.

I vetmi operator i cili ėshtė i panjohur ėshtė ai i mbetjes %, i cili ėshtė paraqitur me shenjėn e pėrqindjes (%).
Operatori (%) jep vlerėn e cila mbetet pas pjestimit tė dy numrave
p.sh. nėse kemi a=11 % 3;, variabla do tė merr vlerėn 2 pasi qė 2 ėshtė
vlera e cila mbetet pas pjestimit tė 11 me 3.

Operatorėt e barazimit tė pėrzierė (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, I=)

Njė e risi e barazimit nė C++ ėshtė se ka mundėsuar operatorėt e
barazimit tė pėrzier(+=, -=, *= dhe /= disa tė tjerė), tė cilėt lejojnė
modifikimin e vlerės sė variablės me njėrin nga operatorėt :
themelor:

a += 1; ėshtė ekuivalent me a = a + 1;
a -= 5; ėshtė ekuivalnet me a = a – 5;
a /= b; ėshtė ekuivalenet me a = a / b;
a *= b+1; ėshtė ekuivalent me a = a*(b+1);

Operatorėt e rritjes dhe zbritjes

Njė mėnyrė tjetėr e shkurtimit tė kodit nė C++ ėshtė pėrdorimi i operatorėve rritės operatori (++) dhe operatori zbritės operatori (--). Ku ata janė tė njėjtė me
+=1 dhe -=1, respektivisht.

a++;
a+=1;
a=a+1;
prej ku tė gjithė janė tė njėjtė nė funksionin e tyre: tė tretė e rrisin vlerėn e variablės a pėr 1.

Karakteristikė e kėtij operatori ėshtė se mund tė pėrdoret si prefix ose sikur suffix.
Kjo do tė thotė se mund tė shkruhet pėrpara identifikuesit tė variablės
(++a) ose pas (a++), edhe pse shprehjet (a++) dhe (++a) e kanė tė
njėjtin kuptim. Mirėpo nė shprehjet e tjera kur tė kombinohen mund tė
kenė dallim nė mes veti. Kėtė mė sė miri do ta ilustrojmė me njė
shembull:

shembulli 1

B=3;
A=++B; // A ėshtė 4, B ėshtė 4

shembulli 2

B=3;
A=B++; // A ėshtė 3, B ėshtė 4
Nė shembullin 1, B ėshtė rritur para se tė ketė marrur vlerėn e variablės B ,variabla A .
Nė shembullin 2, variabla A e ka marrur vlerėn e variablės B para se tė jetė rritur ajo e variablės B.

Operatorėt relacional ( ==, !=, >, <, >=, <= )

Nė mėnyrė qė tė bėjmė krahasimin nė mes tė dy shprehjeve mund tė pėrdorim operatorėt relacional. Specifiukuar nga ANSI-C++ standart,rezultati i operatorėve relacional ėshtė njė vlerė bool vlerė e cila mund tė jetė true ose false, e cila rrjedhė nga rezultati i operatorit pėr krahasim.

Ne do tė donim qė tė krahasonim dy shprehje, pėr shembull, pėr tė ditur
se cila ėshtė mė e madhe se tjetra. Ja lista e njė numri tė operatorėve
relacional qė mund tė pėrdoren nė C++;
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:44

== Barabartė
!= Ndryshėm
> Me I madh
< Me I vogėl
>= Me I madh ose I barabartė
<= Me I vogėl ose I barabartė

Disa shembuj:


(7 == 5) //rezultati false.
(5 > 4) //rezultai true.
(3 != 2) //rezultati true.
(6 >= 6) //rezultati true.
(5 < 5) //rezultati false

Kėtu nė kėto shprehje pėrpos numrave, mund tė pėrdorim cilėndo shprehje valide, duke pėrfshirė edhe variabla.
Nėse a=2,b=3 dhe c=6,


(a == 5) //rezultati false.
(a*b >= c) //rezultati true pasi qė (2*3 >= 6).
(b+4 > a*c) //rezultati false pasi qė (3+4 > 2*6).
((b=2) == a) //rezultati true.
Duhet vėrejtur se operatori=(shenja e barazimit) nuk ėshtė e njėjtė me
==(dy shenja tė barazimit), operatori i parė ėshtė operatori i
barazimit i cili vlerėn e variablės nė anėn e majtė ia jep asaj nė anėn
e djathtė ndėrsa operatori == bėnė krahasimin e anės sė djathtė me atė
tė majtė se a janė tė barabartė. Prej nga nė shprehjen e fundit
(b=2)==a), sė pari kemi dhėnė vlerėn 2 variablės b dhe atėherė kemi
bėrė krahasimin e tyre, prej ku kemi marrė edhe rezultatin true.

Operatorėt logjik ( !, &&, || ).

Operatori ėshtė i njėjtė me boolean operatorin NOT,
ka vetėm njė operand nė anėn e majtė, dhe i vetmi funksion qė e kryen
ėshtė se e bėnė invertimin e vlerės sė operandit, duke treguar
rezultatin false nėse operandi ka vlerėn true dhe do tė tregojė
rezultatin true nėse operandi ka pasur vlerėn false.
p.sh

!(5==5) //rezultati false pasi qė nga shprehja (5==5) kemi rezultatin true
!(6<=4) //rezultati true pasi qė (6<=4) ėshtė false.
!true //rezultati false.
!false //rezultati true.
Operatori logjik && dhe || pėrdoren kur dėshirojmė tė vlerėsojmė dy shprehje dhe qė tė fitojmė njė rezultat tė vetem


--------------------------------------
| a | b | a && b | a || b |
-------------------------------------
|True |True |True |True |
|True |False |False |True |
|False |True |False |True |
|False |False |False |False |
--------------------------------------

Shembull:

( (5 == 5) && (3 > 6) ) //rezultati false ( true && false).
( (5 == 5) || (3 > 6)) //rezultati true ( true || false).

Bit operatorėt ( &, |, ^, ~, <<, >> ).

Bit operatorėt modifikojnė variablat duke pasur parasysh bitet qė i
pėrbėjnė ato nė vlerėn tė cilėn e ruajnė, kjo do tė thotė, formėn e
tyre binare


-------------------------------------------------
| op | Asm | pėrshkrimi |
| & | AND | Logjik AND |
| | OR | Logjik OR |
| ^ | XOR | Logjik ekskluziv OR |
| ~ | NOT | Komplementon (inverton bitat) |
| << | SHL | Zhvendosė Majtas |
| >> | SHR | Zhvendosė nė tė Djathtė |
-------------------------------------------------


Operatorėt kondicional (?)

Operatori kondicional e vlerėson njė shprehje dhe e kthen njė vlerė
tjetėr duke u nisur nga shprehja e vlerėsuar, duke e pasur parasysh se
a ka vlerėn true ose false. Forma e sė cilės ėshtė

kondita ? rezultati1 : rezultati

nėse kondita ėshtė true shprehja do tė jep rezultatini1, nėse jo atėherė do tė jep rezultati2.

Shembull:

7==5 ? 4:3 //rezultati 3 pasi qė 7 nuk ėshtė i barabartė me 5
7==5+2 ? //4:3 rezultati 4 pasi qė 7 ėshtė i barabartė me 5+2
5>3 ? a:b //rezultati a, pasi qė 5 ėshtė mė i madh se 3
a>b ? a:b //rezultai ėshtė mė i madhi, a ose b.


Operatori sizeof()

Ky operator e pranon njė parametėr, qė mund tė jetė tip variable ose vetėm variabėl dhe e kthen madhėsinė nė bajt tė atij tipi tė objektit:

a = sizeof (char);

Kjo do t’ia kthejė vlerėn 1 variablės a pasi qė char ėshtė 1 bajt i gjatė.
Kjo vlerė tė cilėn e kthen sizeof ėshtė konstante, pra ėshtė gjithmonė e pėrcaktuar para ekzekutimit tė programit.

Prioriteti i operatorėve

Kur tė shkruajm ndonjė shprehje komplekse me shumė operand mund tė
vijmė nė dyshim se cili operand do tė merret parasysh mė pėrpara. Pėr
shembull, nė kėtė shprehje:

a = 5 + 7 % 2

Mund tė dyshojmė nė kuptimin e saj:

a = 5 + (7 % 2 ) me rezultatin 6, ose
a = (5 + 7) % 2 me rezultatin 0
shprehja e saktė ėshtė ajo e dyta, me rezultatin 6. Nė C++ ėshtė rregulluar prioriteti i secilit operator.
E cila ėshtė e paraqitur nė tabelė:
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:44


_______________________________________________________________________________
|Prioriteti | Operatori | Pėrshkrimi | Asocijimi |
|_____________________________________________________________________________|
|1 | :: | Fushė | I majtė |
|_____________________________________________________________________________|
|2 | () [ ] -> . sizeof | | I majtė |
|_____________________________________________________________________________|
|3 | ++ -- | Rritės/zvogėlues | |
| |_________________________________________________| |
| | ~ | Komplemento nje bit | |
| |_________________________________________________| |
| | ! | Unary not | |
| |_________________________________________________|I djathtė |
| | & * | Referencė dhe Dereferencė| |
| | | (pointerėt) | |
| |_________________________________________________| |
| | + - |Unary mbledhja dhe zbritja| |
|_____________________________________________________________________________|
|4 | * / % | Operacionet aritmetikore | I Majtė |
|_____________________________________________________________________________|
|5 | + - | Operacionet aritmetikore | I Majtė |
|_____________________________________________________________________________|
|6 | << >> | Zhvendosja e bitave | I Majtė |
|_____________________________________________________________________________|
|7 | < <= > >= | Operatorėt relacional | I Majtė |
|_____________________________________________________________________________|
|8 | == != | Operatorėt relacional | I Majtė |
|_____________________________________________________________________________|
|9 | & ^ | | Bit operatorėt | I Majtė |
|_____________________________________________________________________________|
|10 | && || | Operatorėt logjik | I Majtė |
|_____________________________________________________________________________|
|11 | ?: | Kondicional | I Djathtė |
|_____________________________________________________________________________|
|12 | = += -= *= /= %= | | |
| | >>= <<= &= ^= |= | barazimit | I Djathte |
|_____________________________________________________________________________|
|13 | , | Presja , Ndarėsi | I Majtė |
|_____________________________________________________________________________|





Asocijimi definon nė rastin kur kemi shumė operator tė tė njėjtit nivel
dhe se i cili duhet qė tė llogaritet mė parė,i majti apo i djathti.

Nėse nuk e dimė prioritetin e operatorėve mėnyra mė e lehtė ėshtė qė tė pėrdorim kllapat ( ),
Si nė kėtė shembull:

A = 5 + 7 % 2;

Mund tė shkruhet nė dy mėnyra:


A = 5 + (7 % 2); ose
A = (5 + 7) % 2;
Varėsisht se ēfarė operacioni dėshirojmė tė kemi.
Pra nėse kemi tė shkruajmė ndonjė shprehje tė komplikuar dhe nuk e
dijmė prioritetin e operatorėve ėshtė mirė qė gjithmonė t’i pėrdorim
kllapat.




Mbingarkimi i operatorėve

Kur i pėrdorim klasat ėshtė e mundur tė definojmė njė kuptim tė ri pėr
operatorėt qė ekzistojnė brenda njė objekti tė klasės sė re. Kėto mund
tė definohen si anėtare tė funksionit. Por nuk duhet tė pėrdorim
mbingarkimin e operatorėve vetėm sepse mundemi. Por duhet t’i pėrdorim
vetėm pėr tė bėrė programin mė tė qartė.

Arsyja pse e bėjmė mbingarkimin e operatorėve.
Kur shkruajmė njė klasė, operacionet qė i definojmė do tė shkruhen me
njė rregull (funksione). Pėr shembull, pėr tė nxjerrė vlerėn nga njė
vektor, kemi definuar funksionin at ashtu qė mundemi tė shkruajmė x =
v.at (25).

Arsyja pse shpeshėherė bėhet mbingarkimi i operatorėve ėshtė se e bėnė
programin mė tė lexueshėm duke pėrdorur kuptime konvencionale pėr
operatorėt = =, [], +, ...
Me mbingarkimin e operatorit [] mund tė shkruajmė x =v[25] nė vėnd qė tė pėrdorim edhe at funksionin.

Se a e rritė lexueshmėrinė e programit apo shkakton me shumė konfuzion,
mbingarkimi i operatorėve ėshtė me shumė ēėshtje se me ēfarė teknike e
pėrdorim, si do qė tė jetė C++ programerėt pritet qė t’i pėrdorin.

Operatorėt tė cilėt mund tė mbingarkohen
Thuaj se tė gjithė operatorėt mund te ridefinohen, edhe pse nuk ėshtė e
mundur tė ndryshojnė vetitė e tyre. Nuk mund tė ridefinohen ::, sizeof,
?:, or.(dot). Nuk ėshtė e mudur tė krijohen operator tė ri, vetėm mund
tė mbingarkojmė ata ekzistues. Mbingarkimi i operatorit + nuk e
mbingarkon operatorin +=, dhe po ashtu disa operator tjerė tė barazimit.

Operatorėt =, [], {}, dhe -> duhet tė jenė anėtarė funksioni nėse
mbingarkohen ata. ++ dhe -- duhet tė kenė tretman special. Duhet tė
kemi parasysh disa probleme nėse e bėjmė mbingarkimin e operatorit tė
barazimit (=)

Shembull – definimi + pėr point
Duke pėrdorur klasėn point, mbledhja mund te definohet nė kėtė mėnyrė:


//=== Point.h file =============================
Point operator+(Point p) const;

//=== Point.cpp file ===========================
Point Point::operator+(Point p) const {
return Point(x+p.x, y+p.y);
}

//=== myprogram.cpp ============================
Point a(10, 20);
Point b(1, 2);
Point c = a + b;
Definojmė njė funksion i cili fillon me fjalėn “operator”
Dhe atėherė duhet paraprirė operatorit me fjalėn “operator”. Aty mund
tė kėtė hapėsirė nė mes tė operator dhe operator, por zakonisht janė tė
shkruara.

Operatorėt new() dhe delete()

C++ libraria pėr njė kohė te gjatė i ka pasur operatorėt new() dhe delet() nė caktimin dinamik tė memories,duhet cekur se ekziston dallim nė mes tė shprehjes:

New A[10];


dhe funksionit:

operator new(159)

I fundit jo vetėm qė ėshtė pėrdorur pėr tė caktuar njė hapėsirė, pėrmes
operatorit new(), por gjithashtu pėr aranzhimin e thirrjes sė
konstruktorit pėr objektet individuale nė varg

Ndėrsa operatori delete() pėrdoret pėr tė fshirė hapėsirėn e rezervuar.


Bibliografia:

1.Learn C++ for 21 day – Jesse Liberty
2.Turbo C/C++ - Herbert Schildt
3.C++ Unleashd 1999 – Jesse Liberty
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:46

Nivelet nė Kod dhe Hierarkia e Blloqeve tė Kodit
Programim / Koncepte - 23/10/2004 -
Shkruar nga:
Ridvan BUNJAKU - Programim / Koncepte Gjenero_eposten

Programim / Koncepte Shtype Pėr shtypės

Koment:, Shkruarja
e programeve tė bukura, tė lexueshme, tė qarta dhe tė kuptueshme ėshtė
art nė vete nė programim. Kėtu do ta prezentohet njė sistem i
nivelizimit tė kodit qė e bėn atė tė duket mirė e qartė.

Programi i shkruar mirė ėshtė i lexueshėm nė atė masė qė tė shihet algoritmi
drejtpėrdrejt nga kodi. Shkruarja e programeve tė bukura, tė lexueshme,
tė qarta dhe tė kuptueshme ėshtė art nė vete nė programim. Kėtu do ta
prezentojmė njė sistem tė nivelizimit tė kodit qė e bėn atė tė duket
mirė e qartė.
Pėr t'i dalluar pjesėt e programit (klasėt, metodat, urdhėrat) ndėrmjet vete, kodi organizohet nė nivele.
Niveli i parė ėshtė niveli i klasės. Klasėt shkruhen nė fillim tė
rreshtit, pa u futur fare 'brenda', dmth. pa u shtyrė fare djathtas:


/** TopLevizes e modelon nje top qe leviz */
public class TopLevizes
{

}

Niveli i dytė, qė ėshtė njė Tab (ose dy karakterė) brenda, ėshtė niveli
i metodave dhe i fushave tė klasės (ndryshoreve globale tė klasės):

/** TopLevizes e modelon nje top qe leviz */
public class TopLevizes
{ private int x_poz; // x-pozita e qendres se topit
private int y_poz; // y-pozita e qendres se topit
...
/** Konstruktori TopLevizes e konstrukton topin... */
public TopLevizes()
{

}

/** rrezjaE e kthen rrezen e topit */
public int rrezjaE()
{

}
}


Niveli i tretė ėshtė edhe njė Tab (ose dy karakterė) djathtas. Ky ėshtė
niveli i urdhėrave tė metodave, dmth. i trupave tė metodave:


/** TopLevizes e modelon nje top qe leviz */
public class TopLevizes
{ private int x_poz; // x-pozita e qendres se topit
private int y_poz; // y-pozita e qendres se topit
...
/** Konstruktori TopLevizes e konstrukton topin... */
public TopLevizes(int x_fillues, int y_fillues, int r, Kuti kutia)
{ x_poz = x_fillues;
y_poz = y_fillues;
rrezja = r;
permbajtesi = kutia;
}

/** rrezjaE e kthen rrezen e topit */
public int rrezjaE()
{ return rrezja; }
}
Qe njė grafikon qė e ilustron kėtė organizim:


|--------------------------------------------(niveli i klasės)
|
public class NdonjeKlase
{ |--------------------------- (niveli i metodave)
| |
| public NdonjeKlase()
| { |--- (niveli i trupave te metodave)
| | | ...
| | |---
| }
| |
| public void ndonjeMetode()
| { |--- (niveli i trupave te metodave)
| | | ...
| | | ...
| | |---
| }
| |
| |----------------------------
}
|----------------------------------------------------
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:46

Urdhėrat e Pėrbėrė

Urdhėra tė pėrbėrė kėtu i quajmė ata urdhėra qė nė vete mund tė
ngėrthejnė bllok urdhėrash. Tė tillė janė: if, while, for. Ideja e
pėrgjithshme ėshtė qė fjala kyēe e urdhėrit (if, while, pėrkatėsisht
for) tė mos ketė urdhėra tė trupit tė vet nėn tė, por qė trupi tė jetė
i shtyer djathtas mjaft. Me fjalėn 'trup', kėtu e quajmė bllokun e
urdhėrave, domethėnė urdhėrat qė ndodhen brenda kllapave gjarpėrore.

Urdhėri if

if ( ... )
{ |
|
...
|
}
Urdhėri if...else...

if ( ... )
{ |
|
...
|
}
else { |
|
...
|
}
Urdhėri while

while ( ... )
{ |
|
...
|
}
Urdhėri for

for ( ...; ...; ... )
{ |
|
...
|
}

Rregulla e njėjtė duhet tė ruhet edhe kur kemi urdhėr tė pėrbėrė pėrbrenda njė urdhėri tjetėr tė pėrbėrė:

if ( ... )
{ while ( ... )
{ |
|
...
|
}
}
else { for ( ...; ...; ... )
{ |
|
...
|
}
}
Ngjashėm veprohet pėr tė gjitha kombinimet e urdhėrave. Tash ėshtė mė e
qartė pse pėrdoren vetėm dy karakterė pėr t'i dalluar nivelet. Po tė
pėrdorim mė shumė, pėr shembull tre ose katėr karakterė, urdhėrat e
brendshėm na shkojnė shumė djathtas dhe na dalin prej pamjes. Dy
karakterė mjaftojnė pėr ta dalluar nivelin nga niveli.
Po pėrsėrisim edhe njėherė se kodi i shkruar bukur ėshtė i qartė,
vetė-shpjegues pėr tė gjithė ata qė e shikojnė, duke e pėrfshirė edhe
vetė autorin e tij.
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:47

PHP dhe MySQL (Rivizituar)
Programim / Koncepte - 05/09/2004 -
Shkruar nga:
Krenar KOMONI - Programim / Koncepte Gjenero_eposten

Programim / Koncepte Shtype Pėr shtypės

Koment:, PHP teknologjia pėr skriptim nga ana e serverit tė faqeve dinamike dhe programeve sė bashku me bazėn e shėnimeve MySQL
shumė mė shumė po pėrdoren nga profesionalistėt dhe korporatat pėr
zgjidhėn e shumė aspekteve. Ky shkrim do tė mbulon njė hyrje tė
shkurtėr mbi PHP, hyrje tė shkurtėr mbi MySQL, disa funksione nė PHP edhe nė MySQL, dhe bashkėpunimin mes PHP e MySQL.

Autorėt:

Betim Deva <Programim / Koncepte Gjenero_eposten>

Krenar Komoni <Programim / Koncepte Gjenero_eposten>

Hyrje

Mesiguri se jeni tė njohur me HTML dhe me mėnyrėn se si zhvillohen web faqet tė cilat informatat (tekstin) i ruajnė nė mėnyrė statike. Nė web faqet statike, informatat shkruhen brenda kodit tė HTML
nė mėnyrė manuale (ang. hardcode). Tek kėto web faqe, sa herė qė kishim
nevojė tė ndryshojmė diēka, edhe vetėm njė shkronjė tė vetme nė tekst,
ėshtė nevojitur tė bėhet ndryshimi i html skedarit nė mėnyrė manuale.
Kjo menyre shpesh herė ėshtė e mundimshme dhe e papėrshtatshme. Nė kėtė
shkrim tė shkurtėr, do tė bejme fjalė se si tė arrijmė tė bėjmė njė web
faqe dinamike, qė do tė thotė se teksti do tė nxirret dinamikisht nga
baza e shėnimeve dhe do tė shfaqet nė shfletuesin e webit (ang. web
browser) tuaj.
Esenca ėshtė qė tė krijohen skriptat tė cilat do tė lidhen pėr serverin
e bazave tė shėnimeve dhe tė nxerrin informatat e nevojshme. Ato
informata do tė futen nė tag-at e caktuar tė HTML dhe si tė tillė, do
tė paraqiten nė shfletuesin e klientit.

Nė kėtė shkrim, ne do tė bėjmė fjalė pėr gjuhėn skriptuese PHP dhe pėr bazen e shėnimeve MySQL, tė cilat sė bashku bėjnė njė kombinim perfekt sa i pėrket web aplikacioneve.

Ēka ėshtė PHP?

PHP (www.php.net) ėshtė gjuhė
skriptuese e dedikuar pėr tė zhvilluar web aplikacione. PHP (PHP ėshtė
shkurtese rekurzive e "Hypertext Preprocessor") ėshtė njėra ndėr gjuhet
mė tė pėrhapura skriptuese qė janė tė bazuara nė burimet e hapura (Open Source). Interpreteri i PHP-sė ėshtė i shkruar per shume sisteme operative si Linux, Unix (duke pėrfshirė HP-UX, Solaris dhe OpenBSD), Mac OS X, Novel, OS/2, e Windows,
qė do tė thotė se i njejti PHP kod do tė ekzekutohet nė tė gjithe
serverėt e lartepėrmendur pothuajse pa ndonjė ndryshim nė te. Fuqinė mė
tė madhe PHP e ka arritur nė web aplikacione. Kompanitė mė tė mėdhaja
qė janė tė bazuara nė burimet e hapura kanė migruar apo janė duke
migruar nė PHP. Nė kėtė shkrim do tė flasim prej perspektivės sė Linux-it,
edhe pse esenca ėshtė e njejtė pėr tė gjitha sistemet operative. Ajo
ēka e bėn PHP tė perhapur ėshtė se mund tė shkruhen aplikacione te
vyeshme me mė pak punė se gjuhet tjera qė bėjnė punė tė ngjajshme, si
dhe numri i madh e bazave te shėnimeve qė i perkrah si: MySQL, PostgreSQL, mSQL, MS-SQL, Sybase, Oracle, ODBC, dBase etj.

Ekzistojnė 3 fusha ku PHP mund te pėrdoret.

- Pėrdoret nė web servera ku kodi ekzekutohet nė server (ang. server
side scripting) dhe klientit i kthehen rrezultatet si html ne
shfletuesin e webit (ang. web browser).

- Me PHP mund tė shkruhen programe qė do te ekzekutohen nė "command
line", dmth e tėra qe na nevojitet ėshtė interpreteri dhe shelli. Njė
gjuhe skriptuese qė ėshtė e pėrshtatshme pėr kete punė ėshtė Perl.

- PHP pėrdoret edhe pėr shkruarjen e aplikacioneve me grafike (GUI)
qė pėrdoren nėpėr makina te klientėve. Aplikacionet e kryera jane
multi-platformike qė do tė thotė se punojnė nė shume sisteme operative
me pothuajse kurrėfare ndryshimi nė kod. Pėr tė bėrė kėtė nevojitet
PHP-GTK shtesa. Megjithatė PHP pėrdoret shumė pak sa i perket kėtij
drejtimi.

Ne do tė fokusohemi nė fushen e parė, dmth. do te perdorim PHP pėr tė shkruajtur web-aplikacione.
PHP ėshtė gjuhė interpretuese, qė do tė thotė se kėtu nuk ka nevojė qė
kodi tė kompilohet. Interpretimi i kodit bėhet nga interpreteri sa herė
qė ne e kėrkojmė faqen.
Qė tė testojmė programet e shkruara nė PHP, na nevojiten:
Web serveri qė e ka interpreterin ("PHP parser" si CGI apo modul i serverit, por zakonisht pėrdoret si modul) si dhe "web browser-i" (apo internet shfletuesi).

Interpreteri i PHP-sė e interpreton kodin e shkruar nė kėtė gjuhe. Qė
ta thjeshtojmė esencėn e kėsaj gjuhe do tė marrim njė shembull bazik.
Themi se e kemi nje skedar me emrin index.php nė web server. Nėse e
kėrkojmė kėtė skedar pėrmes web-it (psh. pėrmes protokollit HTTP):
http://serverijuaj/index.php atėherė web serveri sendin e parė qė do ta
ben ėshtė ta shikon mbaresėn qė nė kėtė rast ėshtė "php". Menjėherė pas
indentifikimit qė tipi i skedarit ėshtė "php", serveri ėshtė i gatshėm
ta interpretojė atė kod duke e pėrdorur modulin pėrkatės. Pasi qė kodi
interpretohet, tė gjitha rezultatet (nėse ka) do tė shfaqen nė "web
browser".

Pas ekzekutimit te kėtij kodi nga serveri, nė internet shfletuesin tonė do tė shfaqet teksti "Tung pr-tech"

Faktikisht funksioni "printf" e ka kryer punėn e vetė nė server dhe
neve na ka dėrguar vetėm "Tung pr-tech". Ketu ėshtė dallimi kyē i
gjuhėve qė ekzekutohen nė server (si PHP) me ato qė ekzekutohen nė
klient (si Javascript). Pra PHP bėn tė gjitha operacionet nė server,
dhe klientit ia dėrgon vetėm tekstin e dėshiruar, ndėrsa javascript
ekzekuton tė gjitha operacionet nė anėn e klientit. Tė ndalemi kėtu pak
dhe tė krahasojmė se ēfarė tė mira na sjellin gjuhėt qė ekzekutohen nė
server.

- Kodi ėshtė i centralizuar
- Kodi ėshtė i mbrojtur dhe klienti nuk ka qasje nė te.
- Nė server bėhen vendime se me ēka tė shėrbehet klienti.
- Tė gjitha ndryshimet qė bėhen nė kod, vėrehen te tė gjithe klientet nė tė njejtėn kohė.
- Shumė i dobishėm pėr baza tė shėnimeve

Gjuhėt qė ekzekutohen tek klienti siē ėshtė javascript nuk i pėrkahin
kėto mundėsi sepse kodi shkarkohet tek klienti dhe i gjithė ekzekutimi
bėhet nė "web browserin" e klientit

Sa i pėrket sintaksės, PHP sintaksėn e huazon prej gjuhėve si C, Java e Perl. Nėse keni punuar mė heret nė C me gjėrat bazike, llogariteni se 60% tė PHP e zotėroni.

Tė shohim njė shembull tė thjeshtė.
index.php
-------------------------------------

Koka

$a = 3;
$b = 5;
$c = $a + $b;
echo "$a + $b = $c";
?>



Pas ekzekutimit tė mesipėrm, nė "web browserin" (shfletuesin) tuaj do
tė paraqitet 3+5=8, apo nėse shikoni burimin e kėsaj php faqeje (nė
shfletuesin tuaj bėni "view source"), ju do tė shihni:

index.php tek klienti
-------------------------------------

Koka

3 + 5 = 8



Kjo ishte sa pėr tė dhėnė njė ide se ēfarė bėn PHP.

Ne do tė supozojmė se ju veē keni punuar me ndonjė gjuhė tjetėr
programuese kėshtuqė mė poshtė do tė njihemi shkurtimisht me kodin e
php.

Ēdo kod i php-sė duhet futur brenda "tag-ave"
, apo nėse planifikojmė qė ta integrojmė PHP nė XML atėherė kodin e fusim nė mes tė "tag-ave"
PHP ėshtė "case-sensitive" dmth. variabla $emri ėshtė e ndryshme nga $Emri;
Sikur edhe C, PHP-ja i injoron hapėsirat e zbrazėta (hapėsirat, rreshti i ri, tab-at) nė mes komandave.
Komentet e rreshtit nė PHP bėhen me "//"
Komentet qė perfshijnė me shumė rreshta futen nė mes tė "/*" dhe "*/"

/*
komenti 1
komenti 2
komenti 3
*/
$qyteti="Prishtina";
$vendi="Shqiptaria";

$qyteti="Prishtina" //Komenti

?>
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:47

Ēdo variabėl nė php pėrmban simbolin "$" pėrpara.
P.Sh.
$vendi = "Iliria";
$viti_i_lindjes_se_skenderbeut = 1405;
?>

Njė gjė qė po e vėreni ėshtė se nė PHP nuk ka nevojė tė deklarohet "data type" (tipi) i variablave si nė C.
Nėse vleren e fusim nė thonjėza si tek variabla $vendi, atėherė
menjėherė dihet se ajo variabėl pėrmban string, ndėrsa variabla
$viti_i_lindjes_se_skenderbeut identifikohet menjehere si integer
(numėr i plotė).

Kushtet

Sikur nė C, struktura IF ėshtė e njejtė
<html>
<
head><title>Kushtettitle>head>
<
body>
$numri1 = 11;
$numri2 = 5;
if(
$numri1 == $numri2){
printf("$numri1 dhe $numri2 jane te barabarte");
} else if(
$numri1 < $numri2) {
printf("$numri1 ėshtė me i vogel se $numri2");
} else {
printf("$numri1 ėshtė me i madh se $numri2");
}
?>


Pas ekzektutimit tė kodit, nė web shfletuesin tuaj do tė shfaqet:
11 ėshtė me i madh se 5

Unazat (Loops)

PHP pėrkrah "for","while" dhe "do - while" loop-at (unazat). PHP poashtu perkrahe "foreach" unazen ashtu si edhe Perl.
Qe njė shembull ku 3 loop-at japin rezultate tė njejta.

<html>
<
head><title>Unazattitle>head>
<
body>
echo
"Loopi(Unaza) 1
"
;
for(
$i=1; $i<= 10; $i++){
printf($i);
}
echo
"

Loopi(Unaza) 2
"
;
$i=1;
while(
$i<=10){
printf($i);
$i++;
}
echo
"

Loopi(Unaza) 3
"
;
$i=1;
do{
printf($i);
$i++;
}while(
$i<=10)
?>

Pas ekzektutimit tė kodit, nė web shfletuesin tuaj do tė shfaqet:
Loopi(Unaza) 1
12345678910

Loopi(Unaza) 2
12345678910

Loopi(Unaza) 3
12345678910

Matricat (Arrays)
Matricat si ne ēdo gjuhė tjetėr programuese, mbajnė shumė vlera brenda njė variable. Atyre vlerave i qasemi me indeks.

<html>
<
head><title>Matricattitle>head>
<
body>
$hero = array(); //deklarimi i matrices

/* E mbushin matricen tone me infromata */
$hero[0] = "Skenderbeu";
$hero[1] = "Mic Sokoli";
$hero[2] = "Bajram Curri";

/* shtypim informatat */
echo "Heronjet shqiptare:
"
;
for(
$i=0;$i<sizeof($hero);$i++){
echo
$hero[$i]."
"
;
}
?>


Pas ekzektutimit tė kodit, nė web shfletuesin tuaj do tė shfaqet:
Heronjet shqiptare:
Skenderbeu
Mic Sokoli
Bajram Curri

Ēka ėshtė MySQL?

Para se te analizojmė se ēka ėshtė MySQL, ne duhet tė dimė se ēka ėshtė
baza e shėnimeve. Baza e shėnimeve ėshtė njė vegėl bazė me te cilėn
kompjuteri i akumulon informatat edhe i organizon nė menyre qė tė jenė
tė gatshme pėr thirrje, pėrdorim, apo prezentim tė tyre. Sot, shumė
baza tė shėnimeve pėrdoren pėr organizimin e pėrmbajtjes sė webfaqeve.
Tė gjitha lajmet, ky shkrim edhe ēdo gjė qė shihni nė Pr-Tech ėshtė e
ruajtur nė bazėn e shėnimeve te tipit SQL. Pėr shkak tė buxhetit, 90%
te kompanive nė Amerike, por edhe vende tjera pėrdorin bazėn e
shėnimeve te ashtuquajtur MySQL.

MySQL ėshtė njė lloj i bazės sė shėnimeve Structured Query Language,
apo SQL. Kjo bazė e shėnimeve si edhe shumica e ka gjuhėn e vet me tė
cilėn pėrdoruesi komunikon pėr t'i thirrur tė dhėnat, apo pėr t'i
ruajtur ato. MySQL ėshtė po ashtu server (sherbyes) databazor. MySQL
ėshtė bazė e shėnimeve e pėrdorur nė botė, si burim tė hapur, ose open source. Kompanitė e njohura botėrore: Yahoo!, Google, Cisco, HP, edhe NASA kane parė qė mund te ruajnė shumė harxhime nėse perdorin MySQL. [1]

Si ta perdorim MySQL?


Para se te filloni ta perdorni MySQL-in, ju duhet tė shkarkoni sherbyesin per databazen MySQL. Kete mund ta beni tek: http://www.mysql.com.
Nese perdorni Linux, Unix, apo Widnows, atėhere aty mund ti gjeni tė
gjitha skedarėt ekzekutuese apo kodet pėr ta kompiluar shėrbyesin. Pasi
qė lexuat dokumentacionin edhe e instaluat MySQL tani mundeni qe tė
filloni tė krijoni pėrdorues (user), baza tė shėnimeve, dhe tabela pėr
nevojat e juaja.

Hyni nė direktoriumin bin ku mund tė gjeni skedarin ekzekutues mysql.
Pėr ta ekzekutuar atė skedar, vetėm shkruani 'mysql –u root' edhe
pastaj shtypni pullėn Enter nė tastjerė. Nė ekran ju do tė shihni kete:

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 7 to server version: 4.0.20a-nt

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql>

Krijimi i Pėrdoruesit

Tani ju keni hyrė nė shėrbyesin MySQL. Ketu ju mund tė krijoni baza tė shėnimeve, pėrdorues, tabela, e shume tė tjera.
Per ta krijuar njė pėrdorues ju mund te ekzekutoni kėtė komand nė mysql.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'emri_perdoruesit'@'localhost' IDENTIFIED BY 'passwordi_ketu' WITH GRANT OPTION;

Kjo komandė e krijon pėrdoruesin "emri_perdoruesit" i cili ėshtė i
lidhur me makinėn (ang. host) localhost edhe e ka fjalėkalimin
"passwordi_ketu". Pasi qė ky pėrdorues ka fjalėkalim, herėn tjetėr, kur
hyni ne mysql, duhet te shypni kėtė komandė:
mysql –u emri_perdoruesit –p.
Kjo komandė do t'ju pyes pėr password.

Krijimi i bazave tė shėnimeve

Pasi qė e krijuat njė pėrdorues tani ėshtė koha qė tė krijojme njė
bazė. Per ta krijuar databazen ju duhet tė hyni nė MySQL pėrsėri. Pra
ekzekutoni komandėn e sipėrme mysql –u emri_peroruesit –p. Pasi qė keni
hyrė nė databaze tani ekzekutoni kėtė komandė per tė krijuar databazėn
"personi"

mysql> CREATE DATABASE personi;
Query OK, 1 row affected (0.03 sec)

Kjo komandė do ta krijon databazėn e ashtuquajtur "personi". Ju mund
t'i jepni ēfarėdo emri kėsaj baze. Pasi qė keni krijuar bazėn
"personi", tani ju duhet qė ta pėrdorni kėtė pėr tė futur tabela dhe
informata tė tjera. Pėr ta bėrė kėtė, ju sė pari duhet tė zgjidhni
databazėn me komandėn:
mysql> USE personi;
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:48

Pas ekzekutimit, do tė pranoni tekstin: Database Changed.

Kjo tregon se tani ju gjendeni ne databazen personi. Pėr tė shikuar se
ēka gjindet nė databaze mund tė ekzekutoni komandėn SHOW TABLES.

mysql> SHOW TABLES;
Empty set (0.00 sec)

Ky ėshtė rezultati i atij ekzekutimi. Pra baza e shėnimeve "personi" nuk ka asgjė nė te.

Krijimi i Tabelave

Pėr ta krijuar njė tabelė nė kėtė bazė pėrdoreni kėtė komandė:

mysql> CREATE TABLE informatat (emri VARCHAR(20), mbiemri VARCHAR(20), gjinia VARCHAR(10), ditelindja DATE );
Query OK, 0 rows affected (0.14 sec)

Kjo komandė do ta krijon tabelėn informatat, e cila do ti ketė kėto
kolona: emri, mbiemri, gjinia edhe ditėlindja. Nė bazat e shėnimve tė
tipit SQL tė dhėnat do tė futen nė rreshta ndėrsa specifikimi i tė
dhėnave gjendet nė kolona: siē ishin emri, mbiemri etj. Kėto kolona
mbajnė lloje tė ndryshme tė tė dhenave. P.Sh. emri ėshtė variabėl i
llojit karakter (numri 20 tek VARCHAR pėrcakton se sa karaktera do t’i
kete emri mė sė shumti), ndėrsa ditelindja ėshtė lloj i tė dhėnės date.
Mėnyra qe ju mund ta futni ditėlindjen ėshtė ne kete format:
VVVV-MM-DD, ku V ėshtė viti, M ėshtė muaji, dhe D ėshtė dita e lindjės
sė personit.
Pėr ta vėrtetuar se tabela ėshtė krijuar, pėrdoreni komandėn SHOW TABLES;.
Nėse dėshironi qe t’ju jipet shpjegimi i tabelės "informatat" komanda DESCRIBE do t'ju ndihmojė.

mysql> DESCRIBE informatat;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| emri | varchar(20) | YES | | NULL | |
| mbiemri | varchar(20) | YES | | NULL | |
| gjinia | varchar(10) | YES | | NULL | |
| ditelindja | date | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
4 rows in set (0.03 sec)

Futja e sė Dhėnave

Pėr ta futur njė tė dhėnė nė kėtė tabelė, ju mund tė ekzekutoni kėtė komandė:

mysql> INSERT INTO informatat VALUES ('Teuta', 'Gashi', 'femer', '1983-11-14');
Query OK, 1 row affected (0.03 sec)

Pėr tė shikuar se ēka gjendet nė tabelė, ekzekutoni kėtė komandė

mysql> SELECT * FROM informatat;
+-------+----------+----------+------------+
| emri | mbiemri | gjinia | ditelindja |
+-------+----------+----------+------------+
| Teuta | Gashi | femer | 1983-11-14 |
| Valon | Kastrati | mashkull | 1981-03-03 |
+-------+----------+----------+------------+
2 rows in set (0.02 sec)

Siē e shihni kjo ėshtė tabela informatat, qė e keni krijuar nė bazėn
personi. Nė kėtė tabelė janė dy tė dhėna: njėra ėshtė e Teutės edhe
tjetra ėshtė e Valonit.
Nėse vėreni ndonje gabim pas futjes se informatave, ato mund tė
ndryshohen edhe mė vone. Komanda UPDATE ju lejon qė ta bėni ndyshimin e
duhur. Nese ditelindja e Valonit ėshtė 1984-05-19 atehere ju mund ta
ndryshoni ate ne kėtė mėnyre.

mysql> UPDATE informatat SET ditelindja='1984-05-19' WHERE emri='Valon';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT * FROM informatat;
+-------+----------+----------+------------+
| emri | mbiemri | gjinia | ditelindja |
+-------+----------+----------+------------+
| Teuta | Gashi | femer | 1983-11-14 |
| Valon | Kastrati | mashkull | 1984-05-19 |
+-------+----------+----------+------------+
2 rows in set (0.00 sec)

Pra siē po e vėreni, ndryshimi ėshtė ekzekutuar, dhe ditėlindja e Valonit ėshtė ndryshuar.

Per tė dalur nga MySQL perdorni komandėn [q].

mysql> q
Bye


Lidhja e PHP-sė me MySQL

Deri tani pamė se si shkruhen dhe ekzekutohen PHP skedarėt. Ne pamė se
si krijohen bazat e shėnimeve nė mysql dhe se si punojmė me rekorde.
Tani do tė shohim se si i komunikojne skriptat e PHP-sė me MySQL-in.
Sic e cekėm mė lartė, PHP pėrkrahė njė numėr tė madh tė bazave tė
shėnimeve, e nė rradhė tė parė MySQL. PHP disponon me njė numėr tė madh
tė funksioneve pėr mysql.
Para se tė shohim se kėto funksione, sė pari duhet tė sigurohemi nėse
PHP ėshtė kompiluar dhe instaluar me pėrkrahje te mysql-it. Pėr tė parė
kėtė, krijojmė njė skedar tė PHP-sė dhe e thėrrasim funksionin
phpinfo(). dmth.
info.php
Dhe e ekzekutojme kėtė skriptė psh. http://serverijuaj/info.php. Nėse
PHP ėshtė instaluar me pėrkrahje tė MySQL, atėherė nė pjesėn "Configure
Command" duhet tė shohim dicka si "--with-mysql=/usr" varėsisht se ku
ndodhet mysql-i.

Tė gjitha funksionet pėr mysql, fillojnė me fjalėn mysql_, p.sh.
mysql_connect - Hap lidhjen me MySQL serverin
mysql_select_db - Zgjedh bazėn nė server.
mysq_query - Dėrgon MySQL query.
mysql_fetch_array - Nxerr rrezultatin (rreshtin) si matricė.
mysql_close - mbyll lidhjen me server.
e shumė tė tjera.

Tani do tė shohim hap pas hapi se si tė lidhemi pėr MySQL pėrmes PHP
skriptave dhe se si do tė kemi mundėsi tė fusim informata nė MySQL
pėrmes HTML formave, dhe njėkohėsisht si t'i lexojme rekordet nga
MySQL-i dhe t'i shfaqim ato nė web-faqen tonė.

Kthehemi pak prapa dhe e analizojmė tabelėn "informatat" nė bazėn
"personi". Tani do tė dizajnojmė njė faqe ku kemi me pasė mundėsi tė
fusim informata nė atė tabelė duke pėrdorur format e HTML-sė. Duke e
analizuar tabelėn shohim se na nevoiten 4 tekst fusha (emri, mbiemri,
gjinia, ditelindja).
E krijojmė njė skedar shto.php me kėtė pėrmbajtje.
shto.php


Aplikacioni im - Shtimi




Emri


Mbiemri


Gjinia


Ditelindja
(viti-muaji-dita)








Pjesa e interfejsit pėrfundoi, Tani dėshirojmė qė pasi qė forma e
HTML-sė tė procesohet, shėnimet qė i dėrgojmė, tė futen nė tabelėn
"informatat". Pėr tė bėrė kėtė duhet tė perdorim funksionin
"mysql_connect" qė tė lidhemi pėr server, tė pėrdorim funksionin
"mysql_select_db" pėr tė zgjedhur bazėn personi, dhe funksionin
"mysql_query" pėr t’i futur shėnimet.
Kodin e mėsipėrm e bėjmė kėshtu:

shto.php
//Lidhja per server
mysql_connect("localhost","perdoruesi","fjalekalimi");
//Zgjedhja e bazes
mysql_select_db("personi");

$mesazhi ="";
//Teston nese ėshtė klikuar ne butonin "Shto"
if($_POST['shto'] == "Shto"){

//bejme query ne mysql
$q = mysql_query("INSERT INTO informatat SET
emri = '$_POST[emri]',
mbiemri = '$_POST[mbiemri]',
gjinia = '$_POST[gjinia]',
ditelindja = '$_POST[ditelindja]'"
);

if(
$q)
$mesazhi = "Informatat u shtuan me sukses";
else
$mesazhi = "Pati problem gjate shtimit";
}


?>



Aplikacioni im - Shtimi


echo $mesazhi; ?>

Emri


Mbiemri


Gjinia


Ditelindja
(viti-muaji-dita)








Nese e ekzekutojme skripten e mėsipėrme kėshtu
http://serverijuaj/shto.php do tė shfaqet forma. Pas shtypjes sė
informatave dhe shtypjes sė butonit "Shto", Shėnimet do tė futen nė
tabele.
Vėreni mė lartė qė e kemi pėrdorur metodėn HTTP
POST, kėshtuqė i ēasemi variablave me anė tė matricės super globale
$_POST. Bėni rregull qė nė raste tė tilla tė pėrdoren variablat super
globale $_POST apo $_GET nė vend tė $HTTP_POST_VARS apo $HTTP_GET_VARS
dhe asesi tė ju ēaseni direkt psh. $emri nė vend tė $_POST[emri] sepse
nė kėtė mėnyrė do t'ju ikni kokėēarjeve qė mund tė shkaktojnė serverat
e konfiguruar nė mėnyra tė ndryshme (register_globals direktiva nė
php.ini). Ky ishte njė shembull i thjeshtė i futjes sė informatave nė
tabelė. Nėse keni projekte serioze, kushtoni rėndėsi sigurisė ndaj SQL
injekcioneve ku sulmuesi mund tė shtyp komanda tė SQL-it nė vend tė
ditėlindjes tė cilat do tė bėhen pjėse e query-it nėse PHP nuk ėshtė e
konfiguruar si duhet.

Tani do tė shohim se si t'i lexojme informatat nga MySQL.

Nė shembullin e mėsipėrm e vėrejtėt se si njėri mund tė futen
informatat nė bazė tė shėnimeve pėrmes PHP-sė dhe Formave tė HTML-it.
Pėr t'i lexuar informatat nga baza e shėnimeve tė MySQL-it, ne pėrsėri
mund ta pėrdorim gjuhėn programuese PHP. Leximi i informatave nga MySQL
bėhet pėrmes query-it SELECT FROM.
lexo.php
//Lidhja per server
mysql_connect("localhost","perdoruesi","fjalekalimi");
//Zgjedhja e bazes
mysql_select_db("personi");

?>



Aplikacioni im - Leximi


PERSONI


//bejme query ne mysql
$q = mysql_query("SELECT * FROM informatat");

while (
$rreshti = mysql_fetch_array($q)){
//Ketu ruhen te gjitha variablat qe na duhen nga baza e shenimeve
$emri = $rreshti['emri'];
$mbiemri = $rreshti['mbiemri'];
$ditelindja = $rreshti['ditelindja'];
$gjinia = $rreshti['gjinia'];

echo
"Emri: $emri
"
;
echo
"Mbiemri: $mbiemri
"
;
echo
"Gjinia: $gjinia
"
;
echo
"Ditėlindja: $ditelindja
"
;
echo
"
"
;
}
?>



Siē e shihni mė lartė query nga baza e shėnimeve ruhet gjatė unazės
WHILE, e cila i ruan tė gjitha informacionet vazhdimisht nė vektorin
$rreshti . WHILE hyn nė ēdo rresht tė bazės sė shėnimeve dhe i ruan
kolonat nė $rreshti. Kolonat pastaj mund tė thirren kėshtu:
$rreshti[‘emri_i_kolones’].
Pėrveē SELECT * FROM informatat, ju mund tė jeni mė specifik dhe ta
kurseni procesorin e memorien e serverit. P.sh nėse vetėm ju nevojitet
kolona “emri” nga tabela “informatat” atėherė ju mund tė zėvendėsoni
variablėn $q me kėtė:

$q = mysql_query("SELECT informatat.emri FROM informatat");

Nėse dėshironi qė t’i zgjidhni tė gjithė personat nė tabelėn
“informatat” tė cilėt/cilat e kanė mbiemrin Gashi, atėherė ju pėrdoreni
kėtė variabėl $q:
$q = mysql_query("SELECT * FROM informatat WHERE mbiemri='Gashi'");

Pėrshkak se ju mund tė futni variablat $emri, $mbiemri, $gjinia, dhe
$ditelindja me tagat kudo nė kodin HTML, atėhere vetėm imagjinata juaj
mund tė ju ndaloj se si dėshironi tė i prezentoni ato variablat ndaj
klientit.

Konkludimi

PHP dhe MySQL pa dyshim janė dy vegla qė punojnė shumė nė mirė nė mes
vete. Kėto vegla janė tė bazuara nė burimet e hapura (ang. Open source)
dhe janė gratis pėr t'u shkarkuar nga PHP dhe MySQL.
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:49

Emėrtimi i elementeve tė kodit nė gjuhėn shqipe
Programim / Koncepte - 20/09/2004 -
Shkruar nga:
Ridvan BUNJAKU - Programim / Koncepte Gjenero_eposten

Programim / Koncepte Shtype Pėr shtypės

Koment:, Emėrtimi
i entiteteve tė programit (ndryshoret, fushat, metodat, klasėt) ėshtė
me rėndėsi tė bėhet nė mėnyrė tė pėrshtatshme. Kjo e lehtėson
programimin. Ky shkrim pėrmban kėshilla se si tė emertohen variablat,
klasat, metodat (funksionet) etj nė gjuhėn shqipe.
Shkrimi ėshtė i bazuar ne kodin e Java por njė praktikė e ngjajshme mund tė pėrdoret edhe nė gjuhėt tjera programuese.

Emėrtimi
i entiteteve tė programit (ndryshoret, fushat, metodat, klasėt) ėshtė
me rėndėsi tė bėhet nė mėnyrė tė pėrshtatshme. Kjo e lehtėson
programimin. Poashtu e lehtėson edhe lexueshmėrinė e kodit dhe e rritė
qartėsinė e tij. Programi, qė ka emra tė pėrshtatshėm tė entiteteve,
ėshtė shumė lehtė t'i kthehemi mė vonė qė ta zgjerojmė e avansojmė edhe
mė tej.
Po ēka do tė thotė t'i emėrojmė entitetet nė mėnyrė tė pėrshtatshme?
Sė pari po pėrmendim njė standard tė zakonshėm tė emėrtimit qė pėrdoret
nė literaturėn e programimit tė mirė. Ky standard mundėson qė t'i
dallojmė fare lehtė nė kod ndryshoret, metodat (funksionet) dhe klasėt
ndėrmjet vete. Nė vija tė trasha, sipas kėtij standardi:

- klasėt emėrtohen ashtu qė fillojnė me shkronjė tė madhe dhe
vazhdojnė me shkronja tė vogla. Nėse emri i klasės pėrbėhet prej mė
shumė se njė fjale, atėherė fjala dallohet ashtu qė fillohet me
shkronjė tė madhe. P.sh.

Katror, TopLevizes, ModelIKartes, LlogariEBankes etj.

- metodat, funksionetemėrtohen ashtu qė fillojnė me shkronjė tė
vogėl dhe vazhdojnė poashtu me shkronjė tė vogėl. Nėse emri ka mė shumė
se njė fjalė, atėherė fjala tjetėr dallohet duke filluar me shkronjė tė
madhe. Dhe, natyrisht, pas emrit vijnė kllapat me argumentet pėrkatėse
(nėse ka). P.sh.

depozito(), afishoBalansin(), vizatojeTopin(), gjejeHipotenuzen(kateta_1, kateta_2) etj.

Pėrjashtim prej kėsaj rregulle bėn vetėm konstruktori i klasės i cili, siē e dimė, e ka emrin e njėjtė me tė klasės sė vet, pra ai fillon me shkronjė tė madhe. P.sh.

Katror(brinja), TopLevizes(x, y, rrezja), ModelIKartes(ngjyra), LlogariEBankes(200) etj.

- ndryshoret nė program fillojnė me shkronjė tė vogėl dhe
shkruhen tėrėsisht me shkronja tė vogla. Nėse emri pėrbėhet prej dy ose
mė shumė fjalėsh, distanca midis fjalėve simulohet me 'vizė poshtė',
dmth. me '_'. P.sh.

brinja_a, siperfaqja_e_katrorit, gjeresia, lartesia etj.

Nė kodin qė ėshtė i shkruar sipas kėtyre rregullave, nė kod drejtpėrdrejt mund tė pėrcaktohet se ēka ėshtė 'filan emri'.
- Nėse fillon me shkronjė tė madhe dhe nuk ka kllapa, atėherė ėshtė klasė.
- Nėse fillon me shkronjė tė madhe por ka kllapa, atėherė ėshtė konstruktor.
- Nėse fillon me shkronjė tė vogėl dhe ka kllapa, ėshtė metodė,
funksion. Kėtu ndihmon edhe ajo se kur emri pėrbėhet dy a mė tepėr
fjalėve, fjala tjetėr fillon me tė madhe.
- Nėse emri ėshtė krejt me shkronja tė vogla dhe distancat eventuale
ndėrmjet fjalėve janė '_', atėherė kjo ėshtė ndryshore, variabėl, ose
fushė.

Si shembull pėr ilustrimin e kėtyre rregullave, do ta shqyrtojmė programin vijues nė Java:

import java.awt.*;
import javax.swing.*;
/** VizatimiC i vizaton tri veze nje-mbi-nje */
public class VizatimiC extends JPanel
{ int gjeresia = 200;
int lartesia = gjeresia * 2 / 3;

/** Konstruktori VizatimiC e konstrukton objektin */
public VizatimiC()
{
JFrame korniza_ime = new JFrame();
korniza_ime.getContentPane().add(this);
korniza_ime.setTitle("Vizatimi (c)");
korniza_ime.setSize(gjeresia, lartesia);
korniza_ime.setVisible(true);
}

/** paintComponent e kryen vizatimin: 3 veze nje mbi nje
* @param g - penda grafike */
public void paintComponent(Graphics g)
{
g.setColor(Color.white);
g.fillRect(0, 0, gjeresia, lartesia);
g.setColor(Color.yellow);
int qh = gjeresia / 2; // qendra horizontale
int qv = lartesia / 2; // qendra vertikale
int r1 = gjeresia / 10; // gjysme-diametri i pare (horizontal)
int r2 = lartesia / 10;// gjysme-diametri i dyte (vertikal)
g.fillOval(qh - r1, qv + r2, 2*r1, 2*r2);
g.fillOval(qh - r1, qv - r2, 2*r1, 2*r2);
g.fillOval(qh - r1, qv - 3*r2, 2*r1, 2*r2);
}

/** main per ta konstruktuar objektin */
public static void main(String[] args)
{ new
VizatimiC(); }
}
Kėtu, klasė ėshtė VizatimiC, me konstruktorin e vet VizatimiC(), pastaj JFrame dhe Graphics,
qė janė pėrkufizuar nė klasat e importuara (me urdhėrat import).
Vėrejmė se klasa dallohet nga konstruktori i vet me atė se konstruktori
i ka kllapat, e klasa jo.
Metoda (funksione) janė
paintComponent(Graphics
g), main(String[] args), getContentPane(), add(Component this),
setTitle(String titulli), setSize(int gjeresia, int lartesia),
setVisible(boolean duket), pastaj setColor(Color c), fillRect(int x1,
int y1, int gjeresia, int lartesia) dhe fillOval(int x1, int y1, int
gjeresia, int lartesia).
Ndėrsa fusha, ndryshore janė:
gjeresia, lartesia, korniza_ime, qh, qv, r1 dhe r2.
Vėrejmė se nuk kemi nevojė ta 'lodhim kokėn' shumė pėr ta kuptuar se
gjeresia ėshtė ndryshore e jo metodė bie fjala. (Po tė ishte metodė, do
tė kishte kllapa: gjeresia(), po tė ishte klasė do tė fillonte me shkronjė tė madhe: Gjeresia).

Disa specifika tė gjuhės shqipe rreth emėrtimit

Gjuhėt programuese zakonisht janė dizajnuar ashtu qė tė jetė e
pėrshtatshme tė shkruhet kod nė gjuhėn angleze. Anglishtja edhe ashtu
ka strukturė tė thjeshtė gramatikore: nuk ka rasa. Emri zakonisht e ka
vetėm njė trajtė. Kjo gjė nuk ndodh nė gjuhėn shqipe, ku emri i ka pesė
rasa. Nė shqip, emri ka edhe trajtė - mund tė jetė i shquar: topi, ose
i pashquar: top. (Nė anglisht trajta e shquar realizohet me 'the', por
emri nuk pėson ndryshim.)
Kėtu do tė japim disa kėshilla praktike se si tė emėrtohen entitetet nė
kod ashtu qė kodi tė jetė i kuptueshėm edhe kur pėrdorim emra shqip pėr
identifikatorė.

* Klasėt

Klasėt emėrtohen si emra nė trajtė tė pashquar. P.sh.

Top, Letėr, Vizatues, LlogariEBankės etj.

Pėrdorimi i kėtillė i jep kuptim kodit. P.sh. kodi

LlogariEBankės llogaria_ime;

ka kuptim dhe interpretohet kėshtu: llogaria_ime ėshtė LlogariEBankės.

Mė e paqartė do tė ishte,

LlogariaEBankės llogaria_ime;

Tash s'po kuptohet qartė se cila ėshtė llogaria (ndryshorja), e cila ėshtė klasa (tipi i ndryshores).

Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:49

* Metodat

Metodat emėrtohen si folje nė mėnyrėn urdhėrore. P.sh.

llogariteRrogen(), vizatojeKubin(5), afishoFjaline("Liza nė botėn e ēudirave"), pėrgjithėsisht: kryejePunen(...)

Kjo rregull ėshtė e pėrshtatshme sepse metodat, funksionet nėnkuptojnė
veprim, aksion qė duhet ta bėjė kompjuteri. Folja ėshtė ajo qė e
pėrshkruan veprimin, ndėrsa mėnyra urdhėrore i pėrshtatet asaj se ne e
urdhėrojmė kompjuterin ta kryejė njė funksion apo metodė.


* Ndryshoret, fushat

Ndryshoret, fushat emėrtohen si emra nė trajtė tė shquar. P.sh.

gjatėsia, gjerėsia, bilansi, ngjyra etj.

Kėtu trajta e shquar ėshtė mė e pėrshtatshme sesa trajta e pashquar. P.sh. do tė ishte e palogjikshme tė shkruajmė

gjatėsi = 5;

Nė kėtė mėnyrė, kodi i shkruar me identifikatorė nė gjuhėn shqipe do tė ishte i kuptueshėm qė nė shikim tė parė.

Shembuj tė kėqinj tė pėrdorimit tė emrave:

Klasė (gabim): Gabimi: Si duhet:
==============================================================================
Rrethi (ėshtė trajta e shquar, duhet tė jetė e pashquar) Rreth
bilans (shkronja e parė - e vogėl, duhet tė jetė e madhe) Bilans
Vizatoje (ėshtė folje, duhet tė jetė emėr) Vizatues

Metoda:
llogaritjaERroges()(ėshtė emėr, duhet tė jetė folje) llogariteRrogen()
gjeje_mesin() (distancė me '_') gjejeMesin()

Ndryshore:
Rrezja (fillon me tė madhe) (duhet: rrezja)
qendraERrethit (fjala tjetėr fillon me tė madhe) (duhet:qendra_e_rrethit)
ngjyrė (ėshtė trajtė e pashquar) (duhet: ngjyra)


Metodat standarde 'get' dhe 'set'

Shpesh nėpėr kode nevojitet tė mirret vlera e ndonjė fushe (tė dhėne
private). Kjo nė kodet standarde anglisht bėhet me metodat get. Ndėrsa
kur kėrkohet t'i jipet njė vlerė ndonjė fushe, pėrdoren metodat set. P.sh.

getColor(), getBalanse(), getSize() etj.

Shqip kėto metoda do tė emėrtoheshin:

merreNgjyren(), merreBalansin(), merreMadhesine()

Nganjėherė hasim edhe nė kėsi trajta tė ngjashme:

colorOf(), nameOf(), numberOf()

tė cilat shqip do tė mund tė shkruheshin si:

ngjyraE(), emriI(), numriI()

Pėr metodat set, ndoshta fjala mė e pėrshtatshme shqip do tė ishte: cakto.

setSize(...), setName(), setBalanse()

nė shqip do tė ishin:

caktoMadhesine(...), caktoEmrin(...), caktoBalansin(...)



Ja njė shembull i njė klase i shkruar sipas kėtij sistemi tė emėrtimit:


/** TopLevizes e modelon nje top qe leviz */
public class TopLevizes
{ private int x_poz; // x-pozita e qendres se topit
private int y_poz; // y-pozita e qendres se topit
private int rrezja; // rrezja e topit

private int x_shpejtesia = +5; // shpejtesia horizontale;
private int y_shpejtesia = +2; // shpejtesia vertikale;

private Kuti permbajtesi; // permbajtesi ku leviz topi

/** Konstruktori TopLevizes e konstrukton topin.
* @param x_fillues - qendra (hori.) e pozites filluese te topit
* @param y_fillues - qendra (vert.) e pozites filluese te topit
* @param r - rrezja e topit
* @param kutia - permbajtesi ne te cilin udheton topi */
public TopLevizes(int x_fillues, int y_fillues, int r, Kuti kutia)
{
x_poz = x_fillues;
y_poz = y_fillues;
rrezja = r;
permbajtesi = kutia;
}

/** xPozita e kthen poziten horizontale aktuale te topit */
public int xPozita()
{ return
x_poz; }

/** yPozita e kthen poziten vertikale aktuale te topit */
public int yPozita()
{ return
y_poz; }

/** rrezjaE e kthen rrezen e topit */
public int rrezjaE()
{ return
rrezja; }

/** leviz e leviz topin
* @param njesi_kohe - sasia e kohes prejse eshte levizur topi
* heren e fundit */
public void leviz(int njesi_kohe)
{
x_poz = x_poz + (x_shpejtesia * njesi_kohe);
if (
permbajtesi.neKontaktHorizontal(x_poz) )
{
x_shpejtesia = -x_shpejtesia; } // ktheje drejtimin
// horizontal mbrapa
y_poz = y_poz + (y_shpejtesia * njesi_kohe);
if (
permbajtesi.neKontaktHorizontal(y_poz) )
{
y_shpejtesia = -y_shpejtesia; } // ktheje drejtimin
// vertikal mbrapa
}

public static
void main(String[] args)
{
Kuti kutia = new Kuti(50); // me madhesi 50 me 50 (piksela)
TopLevizes topi_im = new TopLevizes(25, 25, 10, kutia);
// rrezja eshte 10 piksela
while ( true )
{
topi_im.leviz(1); // 1 njesi te kohes se kaluar
System.out.println("x = " + topi_im.xPozita()
+
"; y = " + topi_im.yPozita());
}
}
}
Vėrejtje: Shembulli nuk punon meqė ėshtė i lidhur me klasėn Kuti e cila pėr shkak tė hapėsirės nuk ėshtė paraqitur kėtu.


Literaturė:

David Schmidt:
Programming Principles in Java: Architectures and Interfaces

http://www.cis.ksu.edu/santos/schmidt/ppj/
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:50

Hyrje mbi "Regular Expressions" nė Perl
Programim / Koncepte - 04/09/2004 -
Shkruar nga:
Betim DEVA - Programim / Koncepte Gjenero_eposten

Programim / Koncepte Shtype Pėr shtypės

Koment:, Regular Expressions (regex) janė pjesė shumė e rendėsishme e Perl-it.
Regular Expressions nė rradhė tė parė pėrdoren per manipulim me tekste
(string parsing), gjė qė i nevoitet shumė *nix administratorėve. Ky
shkrim i pėrfshin elementet kryesore dhe bazike tė regular expressions.

Hyrja

Perl ėshtė gjuhė skriptuese shumė e vyeshme, sidomos per *nix administratorė tė cilėt janė tė varrur pėr Perl
krahas sintaksės sė vėshtirė e magjike tė tij. Jo rastėsisht, *nix
administratorėt e pėrdorin Perl-in pėr t'i kryer punėt. Pėrveē tjerash,
Perli disponon me shprehjet e quajtura "Regular Expressions" apo "regex" tė cilat nė rradhė tė parė pėrdoren per manipulim me tekste (string parsing), gjė qė i nevoitet shumė *nix administratorėve.
Regular Expressions janė fushė shumė e gjerė e Perlit, dhe ndonjėherė
din tė jenė shumė tė komplikueshme, por ne ne kėtė shkrim do tė kemi
mundėsi tė mėsojme se si t'i pėrdorim ato, ne menyrė qė tė kryejmė punė
tė mire e modeste.

Me Regular Expressions mund tė bėjmė:
- Kerkim tė llojlloshėm brenda njė teksti;
- Filtrimin e njė teksti;
- Zėvendėsimin e shkronjave apo pjesėve tė tekstit me diēka tjetėr;
E gati gjithēka qe ka tė bej me kėto.



Marrim njė shembull fillestar ku e testojmė njė fjali nėse e pėrmban fjalėn "Kosova"

#!/usr/bin/perl

$fjalia = "Kosova besohet qe i ka 2 milion banore";

if(
$fjalia =~ /Kosova/){
print
"Fjala u gjet";
}
Pas ekzekutimit, ne ekran do tė shtypet "Fjala u gjet";

Nė kėtė shembull verejmė operatorin =~ qė ėshtė operator i regular expressions. Testi i mėsipėrm kthen True, nėse janė plotėsuar kushtet nė mes tė simboleve "/" "/" qė nė kėtė rast ėshtė vetėm fjala Kosova.
Nė vijim paraqiten operatorė me tė cilet do tė punojmė mė poshtė:
=~ - Ky operator shfaqet nė mes tė string variablės qė po e krahasojmė dhe regular expres​sion(shprehjen) qė po e kėrkojmė.
psh.
$fjalia =~ /Kosova/ #Kthen true nes $fjalia PERMBAN fjalen Kosova

!~ - Ky operator ėshtė i njejtė sikir =~ vetėm qe e mohon(negate) rezultatin.
psh.
$fjalia !~ /Kosova/ #Kthen true nese $fjalia NUK PERMBAN fjalen Kosova

m - Ky ėshtė operator qė shikon nėse regex(mostra) po i pėrshtatet stringut (ang. match operator). Ky operator ėshtė opcional
psh.
$fjalia !~ /Kosova/ #Kthen true nese $fjalia PERMBAN fjalen Kosova
$fjalia !~ m/Kosova/ #Rrezultat I njejtė si me lartė

s - Ky ėshtė operator qė zevendeson nje regex(moster) me dicka tjeter.

tr - Ky ėshtė operator qė perkthen nje regex(moster) me dicka
tjeter. Per dallim nga "s" kjo bazohet ne shkronje per shkronje ne vend
se fraze per fraze.

^ - Ky paraqet fillimin e stringut
psh.
$fjalia !~ /^Kosova/ #Kthen true nese $fjalia FILLON me fjalen Kosova


$ - Ky operator paraqet kufirin e fundit
psh.
$fjalia !~ /Kosova$/ #Kthen true nese $fjalia MBARON me fjalen Kosova

sh.
$fjalia !~ /^Kosova$/ #Kthen true nese $fjalia PERMBAN VETEM fjalen Kosova

i - Ky operator e ben shprehjen te pavarrur nga shkronjat e medha apo te vogla (case insenzitive)
psh.
$fjalia !~ /kosova/i #Kthen true nese $fjalia PERMBAN fjalen Kosova apo kOsOVA etj

g - Ky operator e shtyn regex qe te gjen edhe pjeset e tjera, e jo te ndalet ne pjesen e pare te gjetur.

Po e verejmė nė shembujt e mesipėrm se fjalėt po i fusim brenda
simboleve "/" dhe "/", por nė vend tė tyre mund tė pėrdoren edhe kufiza
tė tjera
psh.
$fjalia !~ |Kosova| #Kthen true nese $fjalia PERMBAN fjalen Kosova

Karakterėt gjithėpėrfshirės (wildcards)
Nėse nuk e dimė fjalėn qė po e kėrkojmė por vetėm mostrėn (pattern) atėherė pėrdorim karakterėt gjithėpėrfshirės si vijojnė:

. -gjen cfarėdo simboli
\w - gjen njė karakter (alfanumerike plus "_")
\W - e kundėrta me \w, gjen karakter jo-alfanumerik apo jo "_"
\s - gjen karakter tė zbrazėtirave (witespace character)
\S - e kundėrta me \s, gjen karakter jo-tė zbraztirave (non-whitespace character)
\d - gjen karakter numėr (digit character)
\D - e kundėrta me \d, gjen karakter jo-numėr (non-digit character)
\t - gjen "tab"
\n - gjen rresht tė ri
\r - gjen "return"
\f - gjen "formfeed"
\a - gjen alarmin (bell, beep, etc)
\e - gjen "escape"
\04 - gjen karakter oktal ( nė kėtė rast 4 oktal)
\xdf - gjen karakter heksadecimal ( nė kėtė rast df heksadecimal)

Pėrsėritjet
Cdo karakter, karakter gjithėpėrfshirės, mostėr(pattern) mund tė pėrsėritet kur menjėherė pas tij pėrdoren:

* - gjen pjesėn paraprake 0 apo mė shumė herė.
+ - gjen pjesėn paraprake sė paku 1 herė.
? - gjen pjesėn paraprake 1 apo 0 herė.
{n} - gjen pjesėn paraprake n dhe vetėm n herė.
{n,} - gjen pjesėn paraprake sė paku n herė.
{n,m} - gjen pjesėn paraprake qė pėrsėritet n deri m herė duke pėrfshire edhe ato.


Mos u brengosni nėse kėto rregulla ju duken jo tė kuptueshme, sė shpejti do tė shohim se si t'i pėrdorim kėto.

Ja disa shembuj:
$fjalia =~ m/viti&#92;d{4}/
Kthen true nėse fjalia PERMBAN fjalėn "viti" dhe 4 numra pas tij, psh
zgjidhje valide do tė ishin "viti2004", "ky eshte viti viti2004"
etj.[/prog]
$fjalia =~ m/^viti&#92;d{4}$/
Kthen true nėse fjalia PERMBAN VETEM fjalėn "viti" dhe 4 numra pas tij, psh zgjidhje valide do tė ishin "viti2004", "viti0000"

$fjalia =~ m/^viti&#92;d{4}$/i
Kthen true nėse fjalia PERMBAN VETEM fjalėn "viti" dhe 4 numra pas
tij.INJORON shkronjat e vogla e te medha, psh zgjidhje valide do tė
ishin "viti2004", "vIti0000", "VITI1200"

$fjalia =~ m/^viti&#92;d{4}/
Kthen true nėse fjalia FILLON me fjalėn "viti" dhe 4 numra pas tij, psh
zgjidhje valide do tė ishin "viti2004", "viti0000muaji12"

$fjalia =~ m/^viti.{2,4}$/
Kthen true nėse fjalia FILLON me fjalėn "viti" dhe pastaj pėrmban 2
deri nė 4 karaktera tė cfarėdoshėm, psh zgjidhje valide do tė ishin
"viti20", "viti200" "viti2000", "vitiviti"

$fjalia =~ m/^viti&#92;.{2,4}$/
Kthen true nėse fjalia FILLON me fjalėn "viti" dhe pastaj pėrmban 2
deri nė 4 PIKA (vereni se tani pika e ka "escape character" pėrpara
kėshtuqė konsiderohet si karakter i thjeshtė), psh zgjidhje valide do
tė ishin vetėm "viti..", "viti..." dhe "viti...."
Mbrapsht nė krye Shko poshtė
Vizitor
Vizitor
Anonymous



Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty22.07.09 3:50

Pėrdorimi i Grupeve (kllapave te vogla)

Grupet kanė tė bėjnė me Regular Expressions karakterat tė futur brenda kllapave tė vogla "(" dhe ")".
Kjo pėrdoret pėr:
- Pėrdorimin e frazave alternative si psh. /(Linux|MS|BSD)/
- Poashtu pėr nxerrjen e tekstit tė vecantė nga mostra(paterni) pėr nevoja tė ndryshme.

Shembuj:

if($fjalia =~ /(K|k)osova/){
print
"Pranohet Kosova si dhe kosova";
}


if($fjalia =~ /(Shqiperia|Kosova)/i){
print
"Pranohen Shqiperia si dhe Kosova pa marre parasysh te vogla apo medha";
}

Pėrdorimi i Klasave (kllapave te mesme)
Klasat kanė tė bėjnė me me karaktera tė vetėm pėr dallim nga grupet.
Pėrparsitė e ketyre janė:
- Pėr sendin e njejtė mund tė shkruhen mė shkurtė sesa grupet psh [AEIOUY] nė vend tė (A|E|I|O|U|Y)
- Intervale tė karakterave psh. [A-Z] qė i pėrfshin shkonjat e mėdha prej A deri Z
etj.

Mbani mend se karakterat brenda kllapave te mesme "[" dhe "]" jane karaktera tė vetmuar e Jo si fjalė.

psh.

if($shkronja =~ /[AEIOUYaeiouy]/){
print
"shkronja eshte zanore";
}



if($shkronja =~ /[^AEIOUYaeiouy]/){
print
"shkronja NUK eshte zanore";
}
Vereni ne shembullin e fundi se simbolo ^ kur perdoret menjehere pas [
ka kuptimin e mohimit (negate) te karakterave brenda klases. Keni
kujdes se ky simbol kur perdoret menjehere pas kufizes ka kuptim tjeter
(Fillimin) qe eshte cekur me larte per dallim nga ketu qe e ka kuptimin
e Mohimit.



if($emri =~ m/^[B-L]/){
print
"$emri\n";
}
Shtyp emrin nese fillon me Shkonjen B,C,D,E....L


if($fjalia =~ m|^Ditelindjamerzit&#92;s*)(\d{2})/(\d{2})/(\d{4})$|i){
print "Formati valiud";
}
Kjo shprehje do te jete valide nese Fillon me "Ditelindja:", ka zero
apo me shume hapsira pas fjales, vazhdon me 2 numra dhe "/", vazhdon me
2 numra dhe "/", vazhdon dhe perfundon me 4 numra.
Format valid do te ishte psh:
Ditelindja: 01/01/1970


Zgjedhja e stringjeve qe na duhen (parsing)

Paramendoni nje liste te gjate te telefonave te shokeve tuaj. Doni qe
te nxerrni vetem listen e emrave duke i zhdukur numrat e telefonit dhe
vendin. psh

$emrat ="Artani 111-222 Prishtine
Iliri 112-223 Ulqin
Visari 321-431 Vlore
Korabi 211-321 Shkoder
Genci 421-123 Gjakove
Agroni 123-123 Shkup
Astriti 321-432 Presheve
"
;

Regular expressions na mundeson ta bejme kete shume lehte

#!/usr/bin/perl

$fjalia ="
Artani 111-222 Prishtine
Iliri 112-223 Ulqin
Visari 321-431 Vlore
Korabi 211-321 Shkoder
Genci 421-123 Gjakove
Agroni 123-123 Shkup
Astriti 321-432 Presheve
"
;

while(
$fjalia =~ m|(&#92;w*)(\s+)(.*)\n|ig){
print "$1\n"; # $1 eshte emri, $2 hapsira, $3 numri qyteti
}

Po e vereni operatorin "g" qe i tregon regex te vazhdon te kerkon per raste tjera, qe ne kete rast jane rreshtat tjere.
Po i vereni variablen $1 apo edhe $2, $3..., qe krijohen automatikisht
nga perl,dhe i korrespondon grupit perkates te regex. Ne kete rast $1
eshte emri, $2 eshte hapesira ne mes emrit dhe numrit, $3 eshte numri
hapesira dhe qyteti, mirepo neve po na duhet vetem emri.


Zevendesimet (Substitutions)

Zevendesimet perdorin operatorin "s". Kjo ben qe pjesa e gjetur te zevendesohet me dicka.
psh.

#!/usr/bin/perl

$fjalia ="Kosovo Kosova Kosovo";
$fjalia =~ s/Kosovo/Kosova/g;

print
$fjalia; #Shtypet "Kosova Kosova Kosova"
Kodi i mesiperm zevendeson te gjitha fjalet "Kosovo" ne "Kosova".
Vereni operatorin "g", Nese ai nuk ekziston atehere vetem rasti i pare i gjetur do te zevendesohet.


Perkthimet (Translations)

Perkthimet perdorin operatorin "s". Kjo ben qe pjesa e gjetur te
zevendesohet me dicka. Keto jane te njejta me zevendesimet vetem se
keto bazohen ne shkronje per shkronje ne vend se te zevendesojne frazat
me fraza
psh.
$string =~ tr/[a,e,i,o,u,y]/[A,E,I,O,U,Y]/;
Kthen zanoret e vogla ne ato te medha

$string =~ tr/[a-z]/[A-Z]/;
Kthen te gjitha shkronjat e vogla ne shkronja te medha



Burimet:
http://www.regular-expressions.info/
http://www.troubleshooters.com/codecorn/littperl/perlreg.htm
Mbrapsht nė krye Shko poshtė
Sponsored content





Programim / Koncepte Empty
MesazhTitulli: Re: Programim / Koncepte   Programim / Koncepte Empty

Mbrapsht nė krye Shko poshtė
 
Programim / Koncepte
Mbrapsht nė krye 
Faqja 1 e 1
 Similar topics
-
» Ndihme per programim

Drejtat e ktij Forumit:Ju nuk mund ti pėrgjigjeni temave tė kėtij forumi
Al-Forums.Com ™ - Discussions. Forum Virtual Shqiptar, :: Bota e Kompjuterit :: Sisteme Operative-
Kėrce tek:  


Copyright Al-Forums.Com ™ © 2011 |yougodec.com
Free forum | ©phpBB | Forum mbėshtetės | Report an abuse | Latest discussions