Përmbajtja ?????

43
Universiteti Shtetëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM I Ligjerata 3 fisnik.dalipi@ unite.edu.mk fisnikd.wordpress.com

description

Universiteti Shtet ëror i Tetovës Fakulteti i Shkencave Matematike-Natyrore Departamenti i Informatikës PROGRAMIM I Ligjerata 3 fisnik.dalipi @ unite.edu.mk fisnikd.wordpress.com. Përmbajtja ?????. Hyrje në algoritme Koncepti i algoritmit Shembuj të algoritmeve Përshkrimi i algoritmit - PowerPoint PPT Presentation

Transcript of Përmbajtja ?????

Page 1: Përmbajtja  ?????

Universiteti Shtetëror i Tetovës

Fakulteti i Shkencave Matematike-NatyroreDepartamenti i Informatikës

PROGRAMIM ILigjerata 3

[email protected]

Page 2: Përmbajtja  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

Ndarja e të dhënave

Mr. Fisnik Dalipi

Page 8: Përmbajtja  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

Tipet dinamike me strukturë të pandryshueshme

Mr. Fisnik Dalipi

Page 16: Përmbajtja  ?????

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  ?????

Simbolet

Simbolet speciale

Mr. Fisnik Dalipi

+ -*/.;

?

,

<=

!=

==

>=

Page 18: Përmbajtja  ?????

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  ?????

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  ?????

Identifikuesit e lejuar dhe jotë lejuar Identifikues të lejuar (legal) në C++

janë: first conversion payRate

Mr. Fisnik Dalipi

Page 21: Përmbajtja  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

Mr. Fisnik Dalipi

Page 37: Përmbajtja  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

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  ?????

PYETJE?