Kapitulli 2: Elementet bazike të C++

60  Download (0)

Full text

(1)

Kapitulli 2:

Elementet bazike të C++

(2)

Objektivat

• Ju do të njiheni me komponentët bazik të një programi C++

– Zbulojmë llojet e thjeshta të të dhënave – Si të përdorim operatorët aritmetik

– Si një program vlerëson shprehjet aritmetike – Çfarë është një deklarim dhe çfarë bën ai

– Si të fusim të dhënat në kujtesë

– Përdorimi i operatorëve rritës dhe zbritës

– Si të shfaqim rezultatet duke përdorur deklaratën output – Si të strukturojmë kodin dhe të përdorim komentet

– Si të kontrollojmë dhe të kuptojmë gabimet sintaksore

(3)

Një vështrim i shpejtë i një programi C ++

(4)

Një vështrim i shpejtë i një programi C ++

(Vazhdimi.)

• Shëmbull:

(5)

Një vështrim i shpejtë i një programi C ++

(Vazhdimi.)

(6)

Një vështrim i shpejtë i një programi C ++

(Vazhdimi.)

(7)

• Variabël: Një vënd në memorje përmbajtja e së cilës mund të ndryshohet

Figura 2-2 Memorja e ndarë

Një vështrim i shpejtë i një programi C ++

(Vazhdimi.)

(8)

Bazat e një programi C++

• Gjuhë Programimi: Një bashkësi rregullash, simbolesh, dhe fjalësh kyçe

• Rregullat e sintaksës: Rregulla që specifikojnë deklarata të ligjshme dhe të vlefshme

• Rregullat Sematike: Përcaktojnë kuptimin e rregullave

• Funksion (ose subprogramim): Një bashkësi

deklaratash; që kur ekzekutohen, realizojnë diçka

– Mund të jetë e përcaktuar ose standarte

(9)

Komentet

• Komentet janë për lexuesin, jo për kompilatorin

• Dy llojet:

– Rrjesht i vetëm: Fillon me //

// Ky është një program C++.

// Mirsevini në programimin C++.

– Rrjesht i shumëfishtë: Të vendosur midis /* dhe */

/*

Ju mund të perfshini komente që mund të zën disa rrjeshta.

*/

(10)

Dokumentimi

• Një program i dokumentuar mirë është më i lehtë për tu kuptuar dhe modifikuar

• Ju mund të përdorni komentet për të dokumentuar programet

• Komentet duhen të shfaqen në një program për të:

– Shpjeguar qëllimin e programit – Identifikuar kush e shkroi

– Shpjeguar qëllimin e disa deklaratave të veçanta

(11)

C++ tokens

simbole të veçanta, fjalë të përmbysura, identifikues

• Token: Njësia më e vogël individuale e një programi të shkruar në çdo gjuhë

• Token C++ përfshijnë simbole të veçanta, simbolet fjalë, dhe identifikues

• Simbolet e veçanta në C++ përfshijnë:

(12)

Fjalët e përmbysura (Fjalët kyç)

• Reserved word symbols (ose Fjalët kyç):

– Nje kuptim specifik u jepet këtyre fjalëve

– Ato nuk mund të përdoren për asgjë tjetër përveç përdorimit të tyre të synuar

Shëmbuj:

– int – float – if – for – char – const – void – return

(13)

Identifikues

• Identifikues: Emri i dhënë variablave dhe funksioneve.

– Përbëhet nga shkronja, numra, dhe karaktere të nënvizuar (_) – Duhet të filloj me një shkronjë ose nënvizim

• C++ është sensitive

– NUMËR nuk është njësoj si numër

• Dy identifikues të përcaktuar janë cout dhe cin

(14)

Identifikues (vazhdimi.)

• Identifikues të vlefshëm në C++:

– first

– conversion – payRate

Identifikues të pavlefshëm (jo të saktë)

(15)

Emërtimi i identifikuesve

• Identifikuesit mund të jenë vet dokumentues:

– CENTIMETERS_PER_INCH

• Shmang fjalët e shkruajtura sëbashku :

– shitjevjetore – Zgjidhje:

• Kapitalizo fillimin e çdo fjale të re: shitjeVjetore

• Vendosja e një nënvizimi para një fjale të re: shitje_vjetore

(16)

Whitespaces (Hapësirat boshe)

• Çdo program C ++ përmban hapësira boshe

– Përfshin hapësira, skedarë, dhe karaktere newline (rresht i ri)

• Përdoret për të ndarë token nga njëri-tjetri

• Përdorimi i duhur i hapësirave të bardha është i rëndësishëm

– Mund të përdoret për të bërë programin më të lexueshëm

(17)

Forma dhe Stili

• Konsideroni dy mënyra të deklarimit të variablave:

– Mënyra 1

int feet, inch;

double x, y;

– Mënyra 2

int feet,inch;double x,y;

• Të dyja janë të sakta; megjithatë, e dyta është më e vështirë për tu lexuar

(18)

Llojet e të dhënave

• Llojet e të dhënave: specifikon llojin e të dhënave që do përfaqsohen

• Llojet e të dhënave C++ ndahen në tre kategori :

– Lloji i thjeshtë i të dhënave – Lloji i strukturuar i të dhënave – Pointera (Shenjues)

(19)

Lloji i thjesht i të dhënave

• Tre kategoritë e lloji të thjeshtë të të dhënave

– Integral: numrat e plotë (numra pa presje dhjetore)

• Mund të kategorizohen më tej:

– char, short, int, long, bool, unsigned char, unsigned short, unsigned int,

unsigned long

– Floating-point: Numrat dhjetor

– Lloji Enumeration : lloji i të dhënave të përcaktuara nga përdoruesi (ne do t'i studiojmë ato në më shumë detaje pasi te paraqesim vektorët)

(20)

Lloji i thjeshtë i të dhënave (vazhdimi)

• Kompilator të ndryshëm mund të lejojnë rangje të ndryshme vlerash

(21)

Lloji i të dhënave int

• Shëmbuj:

-6728 0

78 +763

• Nuk mund të përdorim presje brënda një numri të plotë

– Presjet përdoren vetëm për ndarjen e artikujve në një listë

(22)

Lloji i të dhënave bool

• Tipi bool

– Dy vlera: e vërtetë (true) dhe false – Manipulon shprehjet logjike (Boolean)

• e vertetë dhe false

– Vlera llogjike

• bool, e vërtet, dhe false janë fjalë kyçe

(23)

Lloji i të dhënave char

• Lloji më i vogël i numrave të plotë të të dhënave

• Përdoren për karaktere të vetme: shkronja, shifra, dhe simbole të veçanta

• Çdo karakter është i mbyllur në thonjëza të vetme

– 'A', 'a', '0', '*', '+', '$', '&'

• Një hapsirë boshe është një karakter

– shkruar ‘ ‘ një hapësirë e lënë midis thonjëza të vetme)

(24)

Lloji i të dhënave Floating-Point

• C++ përdor shënime shkencore për të përfaqësuar numrat realë (floating-point notation)

(25)

Lloji i të dhënave Floating-Point (vazhdimi)

• float: përfaqëson çdo numër real

– Rangu: -3.4E+38 to 3.4E+38 (katër bytes)

• double: përfaqëson çdo numër real

– Rangu: -1.7E+308 to 1.7E+308 (tetë bytes)

• Vlerat minimale dhe maksimale të llojeve të të dhënave janë të varura nga sistemi

(26)

Lloji i të dhënave Floating-Point (vazhdimi)

• Numri maksimal i shifrave mbas pikës dhjetore për vlerat float është 6 ose 7

• Numri maksimal i shifrave mbas pikës dhjetore për double është 15

• Prandaj:

– Vlerat Float janë quajtur preçision i vetem – Vlerat Double janë quajtur preçision double

(27)

Tipi string

• Lloji i përcaktuar nga programuesi i siguruar në librarinë standarte C ++ ANSI / ISO

• Sekuenca e zero ose më shumë karaktereve të mbyllura në thonjëza dyshe

• Null (ose bosh): një string pa karaktere

• Çdo karakter ka një pozicion relativ në string

– Pozicioni i karakterit të parë është 0

• Gjatësia e një stringu është numri i karaktereve në të

(28)

Variablat, dhe Deklaratat e caktuara

• Çdo variabël duhet të deklarohet që hapësira në memorje të krijohet për atë variabël. Përdorimi i një variable të pa deklaruar gjeneron një gabim sintaksor.

• Sintaksa për deklarimin e variablave është :

dataType identifierName;

• Shëmbuj:

int counter; double interestRate;

char grade;

• Deklaratë e caktuar: emri i variables = konstante ose shprehje

(29)

Operatorët arithmetik, Operatoret Prioritar, dhe Shprehjet

• Operatorët arithmetik në C++ :

– + mbledhje – - zbritje

– * shumëzim – / pjestim

– % modulus(ose mbejes)

• +, -, *, dhe / mund të përdoren me integralin dhe me llojin e të dhënave floating-point

• Përdor % vetëm me llojet e të dhënave integral

(30)

Operatorët arithmetik, Operatorët Prioritar, dhe Shprehjet (vazhdimi.)

• Kur ti përdor / me llojet e të dhënave integral, rezultati i integralit është i shkurtër (pa

rrumbullakosje)

• Shprehjet Arithmetike: përmbajnë vlera dhe operator arithmetik

• Operandët: variablat mbi të cilët do të punojnë operatorët

• Operatorët mund të jenë unar (një operand) ose binar (dy operand)

(31)

Rendi i Prioritetit

• Të gjithë operatorët brënda () vlerësohen të parët

• *, /, dhe % janë në të njëjtin nivel përparësie dhe vlerësohen në vijim

• + dhe – kanë të njëjtin nivel përparësie dhe vlerësohen të fundit

• Kur operatorët janë në të njëjtin nivel:

– Performohet nga e majta në të djathë (associativity)

• 3 * 7 - 6 + 2 * 5 / 4 + 6 do të thotë

(((3 * 7) – 6) + ((2 * 5) / 4 )) + 6

(32)

Shprehjet

• Shprehje Integrale : Të gjithë operandët janë numëra të plotë

– Jep një rezultat integral – Shëmbull: 2 + 3 * 5

• Shprehtjet Floating-point : Të gjithë operandët janë floating-point (me presje dhjetore)

– Jep një rezultat floating-point

– Shëmbull: 12.8 * 17.5 - 34.50

(33)

Shprehjet e përbëra

• Shprehjet e përbëra:

– Ka operandë të llojeve të ndryshme të të dhënave

– Përmban numëra të plotë dhe floating-point (me presje)

• Shëmbuj të shprehjeve të përbëra:

2 + 3.5

6 / 4 + 3.9

5.4 * 2 – 13.6 + 18 / 2

(34)

Shprehjet e përbëra (vazhdimi.)

• Rregullat e vlerësimit:

– Nëse operatori ka të njëjtin lloj operandësh

• Vlerësohet sipas llojit të operandëve

– Nëse operatori ka të dyja llojet e operandëve

• Numrat e plotë kthehen në floating-point

• Operatori vlerësohet

• Rezultati është floating-point

– E gjithë shprehja vlerësohet sipas rregullave të përparësisë

(35)

Casting (Lloji Konversion) I

(36)

Casting (II)

int a=2,b=5;

float average;

average = (a+b) / 2; // rezultati është 3, megjithse është deklaruar float

average = (float) (a + b) / 2; // rezultati është 3.5 nga casting

(37)

Variablat, Deklaratat e caktuara, dhe Deklaratat Input

• Të dhënat duhen të ngarkohen në memorjen kryesore para se të manipulohen

• Ruajtja e të dhënave në memorje është një proces me dy hapa:

– Udhëzoni kompjuterin qe të ndajë memorie

– Përfshini deklarata për të vendosur të dhëna në memorje

(38)

Ndarja e kujtesës me Konstantet dhe Variabla

• Deklaroni një variabël konstante: Kur nuk dëshiron t’ja ndryshosh vlerën e saj ndërkohë që ekzekutohet.

• Sintaksa për të deklaruar një konstante:

• Në C++, const është një fjalë e përmbysur

(39)

Ndarja e kujtesës me Konstantet dhe Variabla(vazhdimi.)

• Variabël: Përbërja e saj mund të ndryshojë gjatë ekzekutimit

• Sintaksa për të deklaruar një variabël:

(40)

Deklaratat e Caktuara

• Deklaratat e Caktuara marrin formën:

• Shprehja vlerësohet dhe vlera e saj i është caktuar variablës në anën e majtë

• Në C++, = është quajtur operatori i caktimit (vlerëdhënies)

• Një variabël thuhet se inicializohet momentin e parë që vendoset një vlerë në të

(41)

Deklaratat e Caktuara (vazhdimi.)

(42)

Deklarimi & Inicializimi i Variablave

• Variablat mund të inicializohen kur janë deklaruar ose pasi deklarohet:

int first=13, second=10;

char ch=' ';

double x=12.6;

• Një detyrim:

Të gjitha variablat duhet të deklarohen para se të

përdoren.Të gjitha variablat duhet të inicializohen para se të përdoren.

– Por jo nevojshmërisht gjatë deklarimit

(43)

Operatorët Rrites dhe Zbritës

• Operatorët Rrites : variabla rritet me 1

– Pre-increment: ++variable – Post-increment: variable++

• Operatorët Zbritës : variabla zbritet me 1

– Pre-decrement: --variable – Post-decrement: variable—

• Cili është ndryshimi midis ushtrimeve të

mëposhtme? Cila është vlera e y në secilin rast?

(44)

Vendosja e të dhënave në Variabla

• Mënyrat për vendosjen e të dhënave në një variabël:

– Përdorni deklaratën e caktuar C ++ (a = 2;)

– Përdorni deklarata hyrëse (lexuese) (cin >> a;)

(45)

Deklarata hyrëse (lexuese)

• cin përdoret me >> për të mbledhur input

• Kjo quhet një deklaratë hyrëse (lexuese)

• Operatori stream extraction është >>

• Për shëmbull, nëse milje është një variabël double cin >> milje;

– Detyron kompjuterin që të marrë një vlerë të tipit double dhe ta vendosë atë në variablen milje

(46)

Deklarata hyrëse (lexuese)(vazhdimi.)

• Përdorimi i më shumë se një variable në cin lejon leximin e më shumë se një vlerë në një kohë

• Shëmbull: nëse feet dhe inches janë variabla të tipit int, ky deklarim:

cin >> feet >> inches;

– Fut dy integrues nga tastiera

– I vendos ato në variablat respektive feet dhe inches

(47)

Deklarata hyrëse (lexuese)(vazhdimi.)

(48)

Rrjeshtat Prompt

• Rrjeshtat Prompt: deklarata që informojnë përdoruesin se çfarë duhet të bëjë

cout << “Shtyp nje numer nga 1 ne 10 dhe "

<< “shtyp Enter” << endl;

cin >> num;

• Gjithmonë përfshini rrjeshtat prompt kur inputi është nevojshëm nga përdoruesit.

(49)

Outputi

• Sintaksa e cout dhe << është:

– Quhet deklarat output

• Operatori stream insertion është <<

• Shprehja e vlerësuar dhe vlera e saj është printuar në pozicionin aktual të kursorit në ekran

(50)

Outputi (vazhdimi.)

• Një manipulues përdoret për të formatuar outputin

– Shëmbull: endl bën që kursoir të zbresë në fillim të rreshtit tjetër

(51)

Outputi (vazhdimi.)

• Karakteri në rrjeshtin e ri është '\n'

– Mund të shfaqet kudo në string

cout << "Hello there.";

cout << "My name is James.";

Output:

Hello there.My name is James.

cout << "Hello there.\n";

cout << "My name is James.";

Output :

Hello there.

(52)

Outputi (vazhdimi.)

(53)

Direktivat e Priproçesorit

• Direktivat e Preproçesorit janë komanda që shërbejnë për programin e preproçesorit

• Të gjithë komandat e preproçesorit fillojnë me #

• Nuk ka pikëpresje në fund të këtyre komandave

• Këto direktiva shpesh përfshijnë librari, një bashkësi funksionesh të bëra nga njerëz të tjerë, gati që ne ti përdorim.

• Çdo librari ka një emër dhe referohet nga një dosje header

(54)

Direktivat e Priproçesorit(vazhdimi.)

• Shëmbull:

#include <iostream>

• Detyron preprocesorin të përfshijë një dosje header iostream në program

• Kjo librari përfshin funksionet bazike në lidhje me komunikimin në hyrje dhe dalje.

• Komandat e preprocesorit përpunohen para se programi të kalojë përmes kompilatorit.

(55)

Përdorimi i namespace , cin dhe cout ne një program

• cin dhe cout janë deklaruar në dosjen header iostream, por brënda std namespace

• Për të përdorur cin dhe cout në një program, përdorim dy deklaratat e mëposhtme:

#include <iostream>

using namespace std;

(56)

Stili programimit dhe Forma: Sintaks

• Rregullat e sintaksës : tregon se çfarë është e

ligjshme (vlefshme) dhe çfarë nuk është e ligjshme

• Gabimet sintaksore gjenden gjatë kompilimit

int x; //Line 1

int y //Line 2: error

double z; //Line 3

y = w + x; //Line 4: error

(57)

Debugging: Kuptimi dhe Rregullimi i gabimeve Sintaksore

• Kompilimi i një program

– Specifikon numrat e rreshtit ku ndodhin gabimet

Example2_Syntax_Errors.cpp

c:\chapter 2 source code\example2_syntax_errors.cpp(9) : error C2146: syntax error :

missing ';' before identifier 'num'

c:\chapter 2 source code\example2_syntax_errors.cpp(11) : error C2065: 'tempNum' :

undeclared identifier

(58)

Përdorimi i Semikolonave, Kllapave, dhe Presjeve

• Të gjitha deklaratat C++ përfundojn me një pikëpresje

– Të quajtura deklarata terminatore

• { dhe } nuk janë deklarata C++

– Mund të vlerësohet si delimitues

• Presjet ndajnë aktikujt në një listë

(59)

Semantikë

• Semantikë: Set rregullash që i japin kuptim një gjuhe

– Është e mundur të hiqni çdo gabim sintaksor në një program dhe prap të mos punojë

– Edhe nëse punon, sdo të bëjë atë që ti doje të bëje

• Shëmbull: 2 + 3 * 5 dhe (2 + 3) * 5

janë të dyja shprehje të sakta sintaksore, por kanë kuptime të ndryshme

(60)

Më tepër mbi Deklaratat e caktuara

• Dy format e caktuara

– E thjeshtë dhe komplekse

– Operatorët kompleks sigurojnë shënime më të përmbledhura

• Operatorët kompleks : +=, -=, *=, /=, %=

• Caktim i thjeshtë

x = x * y;

• Caktim kompleks

x *= y;

Figure

Figura 2-2 Memorja e ndarë

Figura 2-2

Memorja e ndarë p.7

References

Related subjects :