Përmbajtja ?????
description
Transcript of Përmbajtja ?????
![Page 1: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/1.jpg)
Universiteti Shtetëror i Tetovës
Fakulteti i Shkencave Matematike-NatyroreDepartamenti i Informatikës
PROGRAMIM ILigjerata 3
![Page 2: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/2.jpg)
Përmbajtja ?????
Mr. Fisnik Dalipi
Hyrje në algoritme Koncepti i algoritmit Shembuj të algoritmeve Përshkrimi i algoritmit Karakteristikat themelore të algoritmit
Principet e punës së kompjuterit Çka është kompjuteri? Pjesët kryesore të kompjuterit – hyrje, dalje, memoria Pjesa ekzekutive e kompjuterit – procesori Modeli i Von-Neumannit për kompjuterin
![Page 3: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/3.jpg)
Parashtrohet pyetje: “Si mund të përafrohen kompjuterët tek njerëzit me qëllim të shfrytëzimit të tyre edhe nga ana e njerëzve që nuk e njohin teknologjinë e programimit me gjuhë të makinës?”
Ideja themelore në përgjigjen e këtij problemi ka qenë që programuesit të shkruajnë/programojnë në një gjuhë të ngjashme me atë të njeriut.
Edhe pse gjuhët e larta programore janë artificiale, ata janë të ndërtuara në mënyrë të njëjtë si dhe ato natyrale.
Mr. Fisnik Dalipi
GJUHËT E LARTA PROGRAMORE
![Page 4: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/4.jpg)
Ndarja e gjuhëve programore Ndarja e tyre, në të shumtën e rasteve, bëhet
sipas fushës së zbatimit/aplikimit. Kështu, gjuhët programore mund ti ndajmë si vijon:
a) Gjuhë për përdorim të gjerë (për zgjidhjen e problemeve teknologjikoshkencore, ekonomike), siç janë: PASCAL, C, FORTRAN, BASIC, COBOL, PL/1 etj.
b) Gjuhë për inteligjencë artificiale (zgjidhja e detyrave logjike nga fusha e inteligjencës artificiale, konludimit logjik, robotikës dhe sistemeve eksperte), siç janë: PROLOG, LISP, FORT, COMIT etj.
Mr. Fisnik Dalipi
![Page 5: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/5.jpg)
Ndarja e gjuhëve programore c) Guhë për programim sistemor dhe paralel (për
programimin e softverëve sistemore edhe për programe që ekzekutohen njëkohësisht (paralelisht) në më shumë procesorë), siç janë: ADA, MODULA-2, OCCAM etj.
d) Gjuhë speciale (në të cilat bëjnë pjesë gjuhët për përshkrimin e algoritmeve që udhëheqin procese teknike, për simulimin e sistemeve, për kontrollin e sistemit operativ etj) siç janë: JCL, APT, GPSS etj.
e) Gjuhë të orientuara në objekte (gjuhë programore ku objektet shfrytëzohen si tip i posaçëm i të dhënave) siç janë: C++, Delphi, Java, Visual Basic etj.
Mr. Fisnik Dalipi
![Page 6: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/6.jpg)
TIPET DHE STRUKTURAT E TË DHËNAVE
Sipas operacioneve që mund të ekzekutohen mbi një bashkësi të caktuar të dhënash, dallojmë tipe të ndryshme të të dhënave. Me termin tip i të dhënave nenkuptojmë bashkësinë e të dhënave T={t1,t2,...,tn} mbi të cilat mund të zbatohen operacione të çardoshme nga bashkësia e operacioneve O={o1,o2,...,on}.
Për shembull, në gjuhën programore Pascal, bashkësia e numrave të plotë është
T={-32768, -32767, -32765, . . . , -1, 0, 2, . . . , 32767} dhe mbi të mund të ekzekutohen operacione nga bashkësia O={+, -, *, /, DIV, MOD}.
Mr. Fisnik Dalipi
![Page 7: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/7.jpg)
Ndarja e të dhënave
Mr. Fisnik Dalipi
![Page 8: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/8.jpg)
Tipet statike – linearisht të radhitura Tipet statike të të dhënave janë me madhësi
paraprakisht të definuar. Ato vendosen në lokacione fikse të memorjes dhe për këtë qasja ndaj tyre është shumë e shpejtë. Ato ndahen në të pastrukturuara dhe të strukturuara.
Tipe linearisht të radhitura të të dhënave janë: Tipet kardinale (ang. Cardinal) janë numra të plotë
pozitiv dhe zeroja,dmth. 0,1,2,3,...,124,...,856,... Numra të plotë (ang. Integer) janë numrat e plotë,
dmth: ...,-100,-99,...,-1,0,1,...258,259,... Karakterët (ang. Character) janë të dhënat tekstuale
brenda të cilave mund të ketë shkronja, shifra numerike dhe simbole tjera speciale. Psh. ‘!’,’%’,’/’,’1’,’A’,’@’,…
Logjike (ang. Logical) janë dy vlera të ,mundshme logjike, TRUE (e vërtetë) dhe FALSE (e pavërtetë)
Mr. Fisnik Dalipi
![Page 9: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/9.jpg)
Tipet statike – linearisht të radhitura Të numëruara (ang. Enumerated) janë
të dhëna që i definon shfrytëzuesi për numërim, si: (molla, dardha, kumbulla), ose (tresh, katërsh, pesë) etj.
Me intervale (ang. Subrange) janë të dhëna nga një interval të të dhënash, që shënohen me të dhënën e parë dhe të fundit, të ndarë me dy pika në mes tyre. Psh. 1..31, janar..dhjetor, ‘A’,’Z’ etj.
Mr. Fisnik Dalipi
![Page 10: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/10.jpg)
Tipet statike–linearisht të paradhitura Tipet reale (ang. Real) tipe, gjegjësisht
bashkësi e numrave real, si psh: 5.27, +0.0345, -127.083 etj. dhe
Tipet komplekse (ang. Complex) janë tipe që fitojnë vlera të numrave kompleks
Mr. Fisnik Dalipi
![Page 11: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/11.jpg)
Tipet statike-të strukturuara
Tipet statike të strukturuara janë tipe të komplikuara/përbëra të të dhënave, të cilat përbëhen prej njësive elementare dhe/ose të dhënave të pastrukturuara, të ndërlidhura në strukturë te definuar saktësisht.
Vargu i bitave (ang. bit string), janë vargje bitesh, dhe vendosen në apostrofë. Psh: ‘0011010’,’111010001110’ etj.
Vargu i karakterëve (ang. character string) janë vargje prej karakterëve dhe vendosen në apostrofë, Psh: ‘A05MXY7’,’INFORMATIKA’ etj.
Vargjet (ang. array) janë vargje të të njëjtit tip të dhënash, dhe vendosen në kllapa të vogla, si: (-2,5,7,3), (‘a’,’b’,’c’).
Bashkësitë (ang. set) tip i të dhënave prej bashkësive, dhe vendosen në kllapa të mesme, si: [A,B,C], [2,y,5] etj.,
Mr. Fisnik Dalipi
![Page 12: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/12.jpg)
Tipet statike-të strukturuara
Strukturat apo rekordet (ang. Struct apo record) janë tipe të dhënash që përmbajnë të dhëna prej tipeve të ndryshme të pastrukturuara.
Mr. Fisnik Dalipi
![Page 13: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/13.jpg)
Tipet dinamike
Tipet dinamike të të dhënave mund të jenë me madhësi të ndryshueshme dhe strukturë të pandryshueshme.
Tipet dinamike me madhësi të ndryshueshme kanë strukturë fikse, ndërsa madhësia iu ndryshohet gjatë përpunimit.
Psh. Struktura e bashkësisë M={a,r,g,l,w,q} mbetet e njëjtë (përsëri është bashkësi) me shtimin e elementeve t, u, dhe v, kurse madhësia e saj ndryshon dhe do të jetë M={a,r,g,l,w,q,t,u,v}.
Në këto tipe bëjnë pjesë tipet statike të strukturuara: vargu i bitave, vargu I karakterëve, vargjet dhe bashkësitë, të cilat mund të jenë ose statike ose dinamike, varësisht se si definohen.
Mr. Fisnik Dalipi
![Page 14: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/14.jpg)
Tipet dinamike me strukturë të pandryshueshme Kanë mënyrë të ndërtimit të strukturës
paraprakisht të definuar, kurse vet struktura konkrete dhe madhësia e saj ndryshojnë gjatë përpunimit, psh. Nëse në drurin binar në figurën 2.a I shtojmë edhe një degë, do të ndryshojë struktura dhe madhësia e tij si në figurën 2.b, por mënyra e ndërtimit të strukturës është paraprakisht e definuar: prej secilës nyje mund të dalin më së shumti dy degë.
Mr. Fisnik Dalipi
![Page 15: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/15.jpg)
Tipet dinamike me strukturë të pandryshueshme
Mr. Fisnik Dalipi
![Page 16: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/16.jpg)
Gjuha Programore C++
Programi në C++ paraqet një koleksion nënprogramesh, të quajtura funksione.
Nënprogrami apo funksioni është një koleksion urdhërash të cilat, kur aktivizohen (ekzekutohen), zgjedhin diçka.
Secili program në C++ e ka funksionin main.
Njësia më e vogël individuale e një programi e shkruar në një gjuhë quhet token.
Mr. Fisnik Dalipi
![Page 17: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/17.jpg)
Simbolet
Simbolet speciale
Mr. Fisnik Dalipi
+ -*/.;
?
,
<=
!=
==
>=
![Page 18: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/18.jpg)
Simbolet
Simbolet me fjalë: Fjalët e rezervuara, ose keywords (fjalë
kyçe) Ato janë:
int gloat double char void return
Mr. Fisnik Dalipi
![Page 19: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/19.jpg)
Identifikuesit
Përbëhen nga shkronja, shifra, dhe karakteri underscore apo nënvizues (_)
Duhet të fillojnë me shkronjë apo underscore
C++ është case sensitive Disa identifikues të paradefinuar janë cout
dhe cin Përkundër fjalëve të rezervuara,
identifikuesit e paradefinuar mund të redefinohen, por kjo nuk është ide e qëlluar
Mr. Fisnik Dalipi
![Page 20: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/20.jpg)
Identifikuesit e lejuar dhe jotë lejuar Identifikues të lejuar (legal) në C++
janë: first conversion payRate
Mr. Fisnik Dalipi
![Page 21: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/21.jpg)
Tipet e të dhënave në C++
Në C++ tipet e të dhënave mund të klasifikohe në tre kategori: Tipe të thjeshta të dhënave Tipe strukturore të dhënave Pointerët
Mr. Fisnik Dalipi
![Page 22: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/22.jpg)
Tipe të thjeshta të dhënave
Tre kategori të tipeve të thjeshta të dhënave Integrale: numrat e plote (integer) Me presje dhjetore Tipi i numërimit (Enumeration): tipe të
dhënash të definuara nga vetë shfrytëzuesi
Mr. Fisnik Dalipi
![Page 23: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/23.jpg)
Tipet e të dhënave int
Shembuj -3419 0 78
Numrat e plotë pozitiv nuk duhet ta kenë shenjën + përpara
Asnjë presje nuk përdoret për numrat e plotë
Presjet përdoren për ndarjen e gjërave(antarëve) nëpër lista
Mr. Fisnik Dalipi
![Page 24: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/24.jpg)
Tipet e të dhënave bool
Tipet bool Kanë dy vlera: true dhe false Manipulojnë me shprehjet logjike (Boolean)
true dhe false janë vlera logjike bool, true, dhe false janë fjalë të
rezervuara
Mr. Fisnik Dalipi
![Page 25: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/25.jpg)
Tipet e të dhënave char
Tipet më të vogla të dhënave integrale Përdoren për karakteret: shkronjat, shifrat,
dhe simbolet speciale Secili karakter është i mbyllur me apostrof Disa nga vlerat që u përkasin tipit të
dhënave char janë: 'A', 'a', '0', '*', '+', '$', '&'
Hapësira e zbrazët është po ashtu karakter dhe shënohet si ' ', duke lënë një hapësirë ndërmjet dy apostrofëve
Mr. Fisnik Dalipi
![Page 26: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/26.jpg)
Tipet e të dhënave me presje dhjetore C++ përdor notacion shkencor për ti
paraqitur numrat real (floating-point notation)
Mr. Fisnik Dalipi
![Page 27: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/27.jpg)
Tipet e të dhënave me presje dhjetore float: paraqet çdo numër real
Intervali: -3.4E+38 to 3.4E+38 Alokimi në memorie për tipin float është 4 bajt double: paraqet çdo numër real
Intervali: -1.7E+308 to 1.7E+308 Alokimi në memorie për tipin float është 8 bajt Në shumicën e kompilatorëve (compilers),
tipet e të dhënave double dhe long double janë të njëjta
Mr. Fisnik Dalipi
![Page 28: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/28.jpg)
Tipet e të dhënave me presje dhjetore Numri maksimal i shifrave signifikante
(vende decimale) për vlerat float është 6 apo 7
Vlerat float quhen single precision Numri maksimal i shifrave signifikante
(vende decimale) për vlerat double është 6 apo 7
Vlerat double quhen double precision Precision = numri maksimal i shifrave
signifikanteMr. Fisnik Dalipi
![Page 29: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/29.jpg)
Operatorët aritmetikor Operatorët në C++
+ mbledhja - zbritja * shumëzimi / pjesëtimi % mbetja nga pjesëtimi
+, -, *, dhe / mund të përdoren me tipet e të dhënave integrale dhe me presje dhjetore
Operator unar – ka një operand Operator binar- me dy operand
Mr. Fisnik Dalipi
![Page 30: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/30.jpg)
Prioriteti i operacioneve
Të gjitha operacionet që janë brenda () trajtohen (ekzekutohen) të parët
*,/, dhe % janë në nivelin e njëjtë të prioritetit dhe trajtohen pastaj pas operacionit në ()
+ dhe – kanë nivelin e njëjtë të prioritetit dhe trajtohen në fund
Kur operatorët janë të nivelit të njëjtë atëherë ekzekutohen (trajtohen) nga ana e majtë te ana e djathtë
Mr. Fisnik Dalipi
![Page 31: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/31.jpg)
Shprehjet
Nëse të gjithë operandët janë numra të plotë Shprehja quhet një shprehje integrale
Nëse të gjithë operandët janë numra me presje Shprehja quhet shprehje me presje dhjetore
Shpreshja integrale jep rezultat integral Shprehja me numra me presje jep rezultat
me presje dhjetore (floating-point result)
Mr. Fisnik Dalipi
![Page 32: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/32.jpg)
Shprehjet e përziera
Shprehja e përziera: Ka operandë të tipit të ndryshëm të
dhënave Përmban integer (numra të plotë) dhe
floating-point (numra me presje dhjetore) Shembuj me shprehje të përziera
2+4.9 6/4+3.5 5.4*2-13.6+18/6
Mr. Fisnik Dalipi
![Page 33: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/33.jpg)
Ekzekutimi i shprehjeve të përziera Nëse operatori ka tipin e njëjtë të
operandëve Bëhet ekzekutimi sipas tipit të operandëve
Nëse operatori i ka të dy tipet e operandëve Integer ndryshohet në floating-point Ekzekutohet operatori Rezultati është floating-point
Mr. Fisnik Dalipi
![Page 34: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/34.jpg)
Ekzekutimi i shprehjeve të përziera E tërë shprehja ekzekutohet sipas
rregullës së prioritetit: Shumëzimi, pjesëtimi dhe mbetja
ekzekutohen përpara mbledhjes dhe zbritjes
Operatorët që kanë nivelin e njëjtë të prioritetit ekzekutohen nga ana e majtë deri te e djathta
Për sqarim më të mirë lejohet edhe grupimi
Mr. Fisnik Dalipi
![Page 35: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/35.jpg)
Konvertimi i tipit (Casting)
Sforcimi implicit i tipit: kur vlera e një tipi automatikisht konvertohet në një tip tjetër
Operatorët cast japin konvertim të tipit eksplicit
Përdorni formën vijuese: static_cast<dataTypeName>(expression)
Mr. Fisnik Dalipi
![Page 36: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/36.jpg)
Mr. Fisnik Dalipi
![Page 37: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/37.jpg)
Tipi i të dhënave string
Tip i definuar nga programuesi e që ndodhet në librari standarde
Është sekuencë e zeros dhe disa karakterëve
Vlera e string futet në thonjëza Null=string me asnjë karakter Secili karakter ka pozitë relative në string Pozita e karakterit të parë është 0, pozita e
të dytit është 1, etj. Gjatësia=numri i karakterëve në string
Mr. Fisnik Dalipi
![Page 38: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/38.jpg)
Input (Hyrja)
Të dhënat së pari ngarkohen në memorien kryesore përpara se të manipulohen
Vendosja e të dhënave në memorie është proces me dy hapa:1. I jepet urdhër kompjuterit të alokoj (ndaj)
memorie2. Jepen urdhërat për vendosjen e të
dhënave në memorien e alokuar (ndarë)
Mr. Fisnik Dalipi
![Page 39: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/39.jpg)
Alokimi i memories
Konstanta e emëruar: lokacion në memorie përmbajtja e të cilit nuk mund të ndryshoj gjatë ekzekutimit
Sintaksa për deklarimin e konstantës së emëruar:
Në C++ const është fjalë e rezervuar
Mr. Fisnik Dalipi
![Page 40: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/40.jpg)
Variablat (ndryshoret)
Variabla=lokacion në memorie përmbajtja e të cilit mund të ndryshoj gjatë ekzekutimit.
Sintaksa për deklarimin e një apo më shumë variablave është:
Shembull:
Mr. Fisnik Dalipi
tipi_i_të_dhënave identifikues, identifikues, ... ;
![Page 41: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/41.jpg)
Urdhëresa për shoqërim
Urdhëresa për shoqërim e ka formën:variabla=shprehja;
Shprehja ekzekutohet dhe vlera e saj i shoqërohet variablës së shënuar në anën e majtë.
Në C++ operatori për shoqërim është =
Mr. Fisnik Dalipi
![Page 42: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/42.jpg)
Urdhëresa për shoqërim
Në C++ formulimi i mëposhtëm:i = i + 2;
E ekzekuton çka është në i, ia rrit vlerën për 2, dhe e shoqëron vlerën e re në lokacionin e memories i.
Mr. Fisnik Dalipi
![Page 43: Përmbajtja ?????](https://reader035.fdocument.pub/reader035/viewer/2022062221/568147d6550346895db50e30/html5/thumbnails/43.jpg)
PYETJE?