Welcome to C++ ! KAPITULLI – I Dr. Gloria Tyxhari Hyrje • C++ është një gjuhë programimi komplekse dhe e fuqishme e përshtatshme për njerëz me ose pa eksperiencë në gjuhë programimi. • Kapitujt e parë përmbajnë konceptet bazë për kompjuterat, programet kompjuterike dhe programimin në C++. o Në to shpjegohet programimi i strukturuar dhe programimi i orientuar nga objektet. Harware dhe Software • Kompjuterat kryejne llogaritje dhe marrin vendime llogjike shume me shpejt se sa njerezit. • Kompjuterat Personal te sotem kryejne biliona llogaritje ne nje sekonde – (Aq sa nje njeri mund te kryeje gjate gjithe jetes se tij. ) • Superkompjuterat aktualisht egzekutojne mijera trilionash instruksione ne sekonde. Harware dhe Software • Kompjuterat procesojne te dhena nen kontrollin e nje sekuence instruksionesh te quajtura “Programe Kompjuterike”. • Keto programe udheheqin kompjuterin nepermjet veprimeve te organizuara qe specifikohen nga njerez te quajtur “Programues”. • Programeve qe ekzekutohen ne kompjuter ju referohemi me termin “Software”. • Ne kete lende do te mesoni nje metodologji kyce ne programim qe thekson produktivitetin e programuesve, dhe si rrjedhoje uljen e kostove per zhvillimin e softwareve – programimin object-oriented. Harware dhe Software • Kompjuteri perbehet nga shume pajisje te cilave ju referohemi si “Hardware” ▫ (p.sh. Tastiera, mausi, disku i ngurte, kujtesat, njesite procesuese etj.) • Kostot e llogaritjeve komjuterike po bien dramatikisht, per shkak te zhvillimeve ne hardware dhe software. • Dekada me pare kompjuterat kane mbushur dhoma te medha dhe kushtonin miliona dollare, sot jane te “gdhendura” ne chip silikoni me te vogla se thoi i nje gishti dhe qe kushtojne mbase disa dollare. • Teknologjia e chip-eve te silikonit i ka bere llogaritjet kompjuterike aq ekonomike sa kompjuterat sot jane kthyer ne komoditet. Organizimi i kompjuterit • • • • • • Njësia hyrëse - pjesa “marrëse” e kompjuterit Njësia dalëse - pjesa “dërguese” e kompjuterit Njësia e kujtesës – kujtesa primare ALU - pjesa “manifakturuese” e kompjuterit CPU - pjesa “administrative” e kompjuterit. Njësia e kujtesës sekondare Hierarkia e te dhenave Hierarkia e te dhenave • Bit - (Binary Digit) ▫ Njesia me e vogel e informacionit ne kompjuter, merr vleren 1 ose 0. • Karakteret ▫ Perfshijne shifrat (0–9), germat (A–Z and a–z) dhe simbolet (p.sh. $, @, %, &, *, (, ), –, +, ", :, ? and /) ▫ Grupi i karaktereve te kompjuterit eshte bashkesia e gjithe karaktereve te perdorura per te shkruar programe dhe qe perfaqesojne data items. ▫ Kompjuterat procesojne vetem 0 dhe 1, ndaj nje set karakteresh kompjuterike perfaqeson cdo karakter si nje varg 0 dhe 1. • Hierarkia e te dhenave • Fushat ▫ Ashtu si karakteret kompozohen nga bits, edhe fushat kompozohen nga karaktere ose bytes . ▫ Nje fushe eshte nje grup karakteresh ose bytes qe permbajne nje kuptim. Permban germa kapitale ose te vogla (p.sh. Emri i nje personi Permban shifra decimale (p.sh Numri i telefonit) Hierarkia e te dhenave • Rekordet - Krijohen nga lidhja e disa fushave. ▫ Ne sistemin e pagave, p.sh. Rekordi i nje punonjesi mund te permbaje fushat: ID - (numer ) Emer Mbiemer – (nje string karakteresh) Adresa – (nje string karakteresh) Paga per ore – (numer dhjetor) Oret e punes – (numer dhjetor) Etj ▫ Kompania ka shume punonjes dhe si rrjedhoje mban rekorde per secilin. Hierarkia e te dhenave • Skedaret – jane si nje grup rekordesh te lidhura. ▫ Nuk eshte e pazakonte per nje organizate qe te kete shume skedare. Disa prej tyre permbajne edhe biliona apo triliona karaktere. • Databaza – eshte nje koleksion i te dhenave te organizuara per lehtesi ne akses dhe manipulim. ▫ Modeli me popullor eshte databaza relacionale. Te dhenat ruhen ne tabela te thjeshta. Nje tabele permban rekorde dhe fusha. Mund te kerkoni, renditni, manipuloni te dhenat bazuar ne lidhjen e tabelave ose databazave. Hierarkia e te dhenave • Big Data – sasia e te dhenave te prodhuara ne mbare boten (eshte e pamase dhe rritet me ritme te shpejta) ▫ Sipas IBM, afersisht 2.5 kuintilion bytes krijohen cdo dite. ▫ Sipas Salesforce.com, 90% e te dhenave boterore u krijua vetem ne muajt e fundit. ▫ Sipas nje studimi te IDC, furnizimi global i te dhenave do te arije 40 zettabytes (baraz me 40 trilion gigabytes) ne vit deri ne 2020. ▫ Aplikimet Big data meren me sasi te medha te te dhenave. Matja e Byte-ve Gjuhët e programimit • Gjuhët makinë ▫ Stringje numrash 0 dhe 1 ▫ Varen nga lloji i kompjuterit – (kupton vetem gjuhen e vet makine) ▫ Të ngadalshme, të lodhshme, pre e gabimeve • Gjuhët assembley ▫ Përdorin shkurtime të fjalëve – perfaqesojne operacionet elementare ▫ Përdorin asambler për konvertim. Gjuhët e programimit • Gjuhët e nivelit të lartë ▫ Një instruksion për një punë të vetme ▫ Përdorin kompilator për konvertim ▫ Përdorin interpreter për të ekzekutuar direkt gjuhët e nivelit të lartë. Historia e C dhe C++ • • • • • C++ rrjedh nga C C rrjedh nga gjuhët BCPL and B. BCPL u krijua në 1967 nga Martin Richards Ken Thompson modeloi gjuhën B njësoj si BCPL. C rrjedh nga B dhe u krijua në vitin 1972 nga Dennis Ritchie. • C përdor shumë funksione të BCPL dhe B ndërkohë që shton të dhëna dhe shumë funksionalitete të tjera. • C është i pavarur nga hardware Historia e C dhe C++ • Përdorimi i gjerë i C solli krijimin e varianteve të ndryshme. ▫ Kishte afrimitet por shpesh dhe jokompatibilitet. • Standartizimi i gjuhës C në 1990 nga ANSI dhe ISO • C11 është standarti i fundit ANSI për gjuhën e programimit C. ▫ Pershtatja e gjuhes C per te suportuar ritmet e rritjes se fuqise hardwerike dhe kerkesave gjithmone e me shume ne rritje te perdoruesve. ▫ E ben C me shume konsistent me C++. Historia e C dhe C++ • C++ U krijua nga Bjarne Stroustrup më 1980 në laboratorët Bell. • C++ ofroi një numër funksionalitetesh (përmirësim i gjuhës C) kryesisht programim e orientuar nga objektet. • Programet e orientuara nga objektet janë shumë më të thjeshta: • për tu kuptuar, korigjuar dhe modifikuar. • C++ është gjuhë hibride, programohet si në stilin e C, në stilin e orientuar nga objektet ose në të dyja stilet së bashku Historia e C dhe C++ Ken Thompson dhe Dennis Ritchie, krijues te gjuhes C. Bjarne Stroustrup, krijues i gjuhes C++. C dhe C++ Linku: https://www.linkedin.com/pulse/c23-next-c-standard-rainer-grimm Gjuhe te nivelit te larte • FORTRAN, krijuar nga IBM, më 1950. • COBOL , krijuar nga prodhues kompjuterash, më 1950. • BASIC (Beginer’s All-purpouse Symbolic Instruction Code) - zhvilluar më 1960. • Paskal , u dizenjua nga proffesori Niklaus Wirth më 1971. • Ada, zhvilluar nga DoD më 1980. • Objective-C, krijuar më 1980. Gjuhe te nivelit te larte • • • • Swift – 2014 (gjuhe programimi per Apple) Java – 1991 (Sun Microsystem) Microsoft Visual Basic - Prezantuar me 1990. Visual C# (gjuhë e re bazuar në C++ dhe Java, zhvilluar qëllimisht për platformën .NET). • Python – 1991 (object oriented scripting language) Libraria Standarte • Programet në C++ ndërtohen nga: ▫ klasa dhe funksione. • Ka dy pjesë që duhen mësuar nga bota e C++. ▫ të mësuarit e vetë gjuhës së C++ ▫ si të përdorësh klasat dhe funksionet në librarinë standarte. • Avantazhet e vetë krijimit të klasave dhe funksioneve : ▫ dini ekzaktësisht si funksionojnë ▫ mund të kontrolloni kodin e C++. • Disavantazhi është se: ▫ harxhon shumë kohë dhe përpjekje në dizenjim, zhvillim dhe mirëmbajtje. 2023 Pse C++ ? Pse programojmë në C++ • C++ lejon të shprehurin e ideve abstrakte. • C++ mësohet dhe përdoret gjerësisht (komunite i madh) • Suporti i mjeteve te punes eshte masiv • Ka librari masive • C++ lejon akoma programuesit të kenë kontroll në nivelet më të ulta • C++ ka standarte kombetare (ANSI) Kompanite qe perdorin C++ Visit this link: https://www.bestcolleges. com/bootcamps/guides/w ho-uses-c-plus-plus/ Brousera te shkruar ne C++ Software te shkruar ne C++ Visit this link: https://boosthigh.com/10-extremelypowerful-apps-written-in-cpp/ Lojera kompjuterike te shkruar ne C++ Programe te tjera te shkruara ne C++ Spirit rover – robot ne Mars, projekti u planifikua te ishte funksional vetem per 3 muaj por vazhdoi te funksiononte per 6 vjet F – 35 Lightning II (Joint Strike Fighter), mbeshtetet fuqimisht ne gjuhen C++. Bazat e mjedisit tipik të C++ • Programimi në C++ normalisht kalon në 6 faza për tu ekzekutuar: ▫ ▫ ▫ ▫ ▫ ▫ Editimi Preproçesimi Kompilimi Linkimi Loadimi Ekzekutimi Disk Programi krijohet ne editor dhe regjistrohet ne disk. Disk Programi i priprocesorit processon kodin. Compiler Disk Kompaileri krijon kodin”objekt” dhe e regjistron ne disk. Linker Disk Loader Primary Memory Editor Preprocessor Disk CPU .. .. .. Primary Memory .. .. .. Linker lidh objektet, librarite, kodet qe mungojne dhe krijon nje imazh te ekzekutueshem, dhe e regjistron ate ne disk. Loader vendos programin ne kujtese. CPU merr secilin instruksion dhe e ekzekuton. Sipas procesit duke rruajtur te dhena te reja ne gjate ekzekutimit te programit. Bazat e mjedisit tipik të C++ Faza 1: Krijimi i një programi ▫ konsiston në editimin e një skedari ▫ Skedarët e C++ kanë prapashtesën .cpp, .cxx, .cc ose .C ▫ Dy editorët më të përdorshëm në sistemin UNIX janë: VI dhe Emacs. ▫ Ndërsa dy editorët për Microsoft Windows janë: Microsoft Visual C++ dhe Code Gear C++ Builder. ▫ Gjithashtu mund të përdoret një tekst editor i thjeshtë si Notepad në Windows. Bazat e mjedisit tipik të C++ Faza 1: Krijimi i një programi • Editoret me popullore: ▫ Microsoft® Visual Studio 2015 Community Edition ▫ NetBeans, Eclipse, Apple’s Xcode, CodeLite, Clion ▫ etj. Bazat e mjedisit tipik të C++ Faza 2 & 3: Priproçesimi dhe Kompilimi i programit ▫ Në fazën e dytë jepet komanda për të kompiluar programin. ▫ Në një sistem C++, priproçesimi ekzekutohet automatikisht përpara se kompilatori të fillojë fazën e përkthimit. Priproçesori i C++ u bindet disa komandave (direktiva priproçesori). Këto tregojnë se disa veprime të tjera duhet të kryhen para se të fillojë kompilimi. Veprimet e tjera konsistojnë në përfshirjen e skedarëve të tjerë text për tu kompiluar, dhe të kryejë disa zëvendësime teksti. ▫ Në fazën e tretë kompiluesi përkthen programin C++ në kodin e gjuhës makinë. Bazat e mjedisit tipik të C++ Faza 2 & 3: Priproçesimi dhe Kompilimi i programit Bazat e mjedisit tipik të C++ Faza 4: Linkimi ▫ Programi i C++ përmban referenca të funksioneve të Librarive Standarte ose ato të krijuara nga vetë programuesi. Një link - lidh kodin e krijuar makinë me kodin e funksioneve që mungojnë për të krijuar një imazh të ekzekutueshëm. Bazat e mjedisit tipik të C++ Faza 4: Linkimi Bazat e mjedisit tipik të C++ Faza 5: Lodimi ▫ Para ekzekutimit programi duhet të vendoset fillimisht në kujtesë. ▫ Ky proçes kryhet nga loduesi i cili merr imazhin e ekzekutueshëm nga disku dhe e transferon në kujtesë. ▫ Komponente të tjera shtesë nga librari të gatshme që suportojnë programin lodohen në po të njëjtin hap. Bazat e mjedisit tipik të C++ Faza 5: Lodimi Bazat e mjedisit tipik të C++ Faza 6: Ekzekutimi ▫ Kompjuteri nën kontrollin e CPU, ekzekuton programin duke i marrë instruksionet një nga një me rradhë. ▫ Disa arkitektura kompjuterike moderne shpesh ekzekutojne disa instruksione ne parallel. Bazat e mjedisit tipik të C++ Faza 6: Ekzekutimi