Uploaded by King Simba

Kapitulli I CPP 2023

advertisement
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
Download