1 / 43

Përmbajtja ?????

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

arva
Télécharger la présentation

Përmbajtja ?????

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UniversitetiShtetëror i TetovësFakulteti i Shkencave Matematike-NatyroreDepartamenti i InformatikësPROGRAMIM ILigjerata 3fisnik.dalipi@unite.edu.mkfisnikd.wordpress.com

  2. Përmbajtja ????? • 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 Mr. Fisnik Dalipi

  3. GJUHËT E LARTA PROGRAMORE • 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

  4. Ndarja e gjuhëve programore • Ndarja e tyre, në të shumtën e rasteve, bëhetsipas fushës së zbatimit/aplikimit. Kështu, gjuhët programore mund ti ndajmë sivijon: • 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 einteligjencës artificiale, konludimit logjik, robotikës dhe sistemeveeksperte), siç janë: PROLOG, LISP, FORT, COMIT etj. Mr. Fisnik Dalipi

  5. Ndarja e gjuhëve programore • c) Guhë për programim sistemor dhe paralel (për programimin e softverëvesistemore 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 ealgoritmeve që udhëheqin procese teknike, për simulimin e sistemeve, përkontrollin e sistemit operativ etj) siç janë: JCL, APT, GPSS etj. • e) Gjuhë të orientuara në objekte (gjuhë programore ku objektetshfrytëzohen si tip i posaçëm i të dhënave) siç janë: C++, Delphi, Java,Visual Basic etj. Mr. Fisnik Dalipi

  6. 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ënavenenkuptojmë bashkësinë e të dhënave T={t1,t2,...,tn} mbi të cilat mund tëzbatohen operacione të çardoshme nga bashkësia e operacioneveO={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

  7. Ndarja e të dhënave Mr. Fisnik Dalipi

  8. Tipet statike – linearisht të radhitura • Tipet statike të të dhënave janë me madhësi paraprakisht të definuar. Atovendosen 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 mundtë 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

  9. Tipet statike – linearisht të radhitura • Të numëruara (ang. Enumerated) janë të dhëna që i definon shfrytëzuesipë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

  10. Tipet statike–linearisht të paradhitura • Tipet reale (ang. Real) tipe, gjegjësisht bashkësi e numrave real, sipsh:5.27, +0.0345, -127.083 etj. dhe • Tipet komplekse (ang. Complex) janë tipe që fitojnë vlera të numravekompleks Mr. Fisnik Dalipi

  11. 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ëvedhe vendosen në apostrofë, Psh: ‘A05MXY7’,’INFORMATIKA’ etj. • Vargjet (ang. array) janë vargje të të njëjtit tip të dhënash, dhe vendosennë 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

  12. Tipet statike-të strukturuara • Strukturat apo rekordet (ang. Struct apo record) janë tipe të dhënash që përmbajnë të dhëna prejtipeve të ndryshme të pastrukturuara. Mr. Fisnik Dalipi

  13. Tipet dinamike • Tipet dinamike të të dhënave mund të jenë me madhësi të ndryshueshme dhestrukturë të pandryshueshme. • Tipet dinamike me madhësi të ndryshueshme kanë strukturë fikse, ndërsa madhësiaiu 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, kursemadhë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 Ikarakterëve, vargjet dhe bashkësitë, të cilat mund të jenë ose statike osedinamike, varësisht se si definohen. Mr. Fisnik Dalipi

  14. 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

  15. Tipet dinamike me strukturë të pandryshueshme Mr. Fisnik Dalipi

  16. 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

  17. Simbolet • Simbolet speciale • + • - • * • / • . • ; • ? • , • <= • != • == • >= Mr. Fisnik Dalipi

  18. Simbolet • Simbolet me fjalë: • Fjalët e rezervuara, ose keywords (fjalë kyçe) • Ato janë: • int • gloat • double • char • void • return Mr. Fisnik Dalipi

  19. 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

  20. Identifikuesit e lejuar dhe jotë lejuar • Identifikues të lejuar (legal) në C++ janë: • first • conversion • payRate Mr. Fisnik Dalipi

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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 signifikante Mr. Fisnik Dalipi

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. Mr. Fisnik Dalipi

  37. 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

  38. 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: • I jepet urdhër kompjuterit të alokoj (ndaj) memorie • Jepen urdhërat për vendosjen e të dhënave në memorien e alokuar (ndarë) Mr. Fisnik Dalipi

  39. 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

  40. 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: tipi_i_të_dhënave identifikues, identifikues, ... ; Mr. Fisnik Dalipi

  41. 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

  42. 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

  43. PYETJE?

More Related