Programim 1 - Seanca 03.pdf

46
Seanca Seanca 3: 3: Shprehjet Shprehjet dhe dhe Interaktiviteti Interaktiviteti Seanca Seanca 3: 3: Shprehjet Shprehjet dhe dhe Interaktiviteti Interaktiviteti Literatura Kryesore Literatura Kryesore: : Starting Out with C++ Early Objects Starting Out with C++ Early Objects Starting Out with C++ Early Objects Starting Out with C++ Early Objects nga nga Tony Gaddis, Judy Walters, Tony Gaddis, Judy Walters, dhe dhe Godfrey Godfrey Muganda Muganda Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit

description

Programim c++

Transcript of Programim 1 - Seanca 03.pdf

Page 1: Programim 1 - Seanca 03.pdf

SeancaSeanca 3: 3: ShprehjetShprehjet dhedhe InteraktivitetiInteraktivitetiSeancaSeanca 3: 3: ShprehjetShprehjet dhedhe InteraktivitetiInteraktiviteti

Literatura KryesoreLiteratura Kryesore: :

Starting Out with C++ Early Objects Starting Out with C++ Early Objects Starting Out with C++ Early Objects Starting Out with C++ Early Objects

nganga Tony Gaddis, Judy Walters, Tony Gaddis, Judy Walters, nganga Tony Gaddis, Judy Walters, Tony Gaddis, Judy Walters, dhedhe Godfrey Godfrey MugandaMuganda

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit

Page 2: Programim 1 - Seanca 03.pdf

TematikaTematikaTematikaTematika

3.1 Objekti cincin3.1 Objekti cincin

3.2 Shprehje Matematikore3.3 Kthim i Nënkuptuar (Implicit) i Tipit3.3 Kthim i Nënkuptuar (Implicit) i Tipit3.4 Kthim i Qartë (Explicit) i Tipit3.5 Overflow dhe Underflow3.6 Emërtimi i Konstanteve3.6 Emërtimi i Konstanteve

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-2

Page 3: Programim 1 - Seanca 03.pdf

TematikaTematika (V(Vazhdimazhdim ))TematikaTematika (V(Vazhdimazhdim ))

3.7 Përcaktim i Shumëfishtë dhe i Kombinuar3.7 Përcaktim i Shumëfishtë dhe i Kombinuar3.8 Formatimi i Daljes3.9 Puna me Objekte të tipit Karakter dhe3.9 Puna me Objekte të tipit Karakter dhe

String3.10 Përdorimi i C-Strings3.11 Funksione të tjera nga Libraria3.11 Funksione të tjera nga Libraria

Matematikore3.12 Hyrje në Skedare

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-3

3.12 Hyrje në Skedare

Page 4: Programim 1 - Seanca 03.pdf

3.1 3.1 ObjeObjekktt i i cincin3.1 3.1 ObjeObjekktt i i cincin

• Objekti Standard inputinput• Njëlloj si coutcout, kërkon skedarin iostreamiostream

• Përdoret për të lexuar hyrjen nga tastiera• Përdoret për të lexuar hyrjen nga tastiera• Si punon cin >> v :

– Kapërcen hapësirat e bardha (spaces, tabs, line – Kapërcen hapësirat e bardha (spaces, tabs, line feeds)

– Lexon karakteret e hyrjes të pajtueshme me tipin e deklaruar të ve deklaruar të v

– Ndalon ekzaktësisht pasi lexohen këto karaktere.– Asgje nuk lexohet gjersa të kalohet një line feed

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-4

– Asgje nuk lexohet gjersa të kalohet një line feed

Page 5: Programim 1 - Seanca 03.pdf

ObjeObjekktt i i cincinObjeObjekktt i i cincin

• Hyrja e përdoruesit shkon nga tastiera në • Hyrja e përdoruesit shkon nga tastiera në një buffer hyrje, në të cilin ruhet si një varg karaktereshkarakteresh

•• cincin shndërron këtë varg karakteresh në një tip që përshtatet me ndryshoren: tip që përshtatet me ndryshoren:

int lartesi;cout << « Sa e lartë është dhoma ? ";cout << « Sa e lartë është dhoma ? ";cin >> lartesi; // pret një int

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-5

Page 6: Programim 1 - Seanca 03.pdf

ObjeObjekktt i i cincin

• Mund të përdoret për hyrje të vlerave të shumëfishta

ObjeObjekktt i i cincin

shumëfishtacin >> lartesi >> gjeresi;

• Vlerat e shumëfishtë nga tastiera duhet të ndahen • Vlerat e shumëfishtë nga tastiera duhet të ndahen me hapësirë ose [Enter]

• Duhet shtypur [Enter] pas shtypjes së vlerës së • Duhet shtypur [Enter] pas shtypjes së vlerës së fundit

• Vlerat e shumëfishtë nuk është e nevojshme të • Vlerat e shumëfishtë nuk është e nevojshme të jenë të të njejtit tip

• Rradha është e rendësishme; vlera që kalon e para

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-6

• Rradha është e rendësishme; vlera që kalon e para ruhet në ndryshoren e parë, e kështu me rradhë.

Page 7: Programim 1 - Seanca 03.pdf

3.2 3.2 Shprehje Shprehje MatematiMatemati keke3.2 3.2 Shprehje Shprehje MatematiMatemati keke

• Një shprehje mund të jetë një konstante, • Një shprehje mund të jetë një konstante, një ndryshore, ose një kombinim konstantedhe ndryshore të kombinuar me operatorëdhe ndryshore të kombinuar me operatorë

• Mund të krijohen shprehje komplekse duke përdorur operatorë të shumtë matematikorëpërdorur operatorë të shumtë matematikorë

• Shembuj shprehjesh matematike:2 2 lartesia + b / c

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-7

a + b / c

Page 8: Programim 1 - Seanca 03.pdf

Duke Përdorur Shprehje Duke Përdorur Shprehje MatematiMatemati kekeDuke Përdorur Shprehje Duke Përdorur Shprehje MatematiMatemati keke

• Mund të përdoren në instruksione përcaktimi, • Mund të përdoren në instruksione përcaktimi, me coutcout, dhe tipe të tjera instruksionesh

• Shembuj:

siperfaqe = 2 * PI * r eze ;

Kjo është një shprehje

siperfaqe = 2 * PI * r eze ;cout << «kufiri është: " << (2*(l+w));

Këto janë shprehje

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-8

Page 9: Programim 1 - Seanca 03.pdf

RradhaRradha e Veprimevee VeprimeveRradhaRradha e Veprimevee VeprimeveNë një shprehje me më shumë se 1 operatorë, vlerësojmë me këtë rradhë:vlerësojmë me këtë rradhë:

( )( ) veprimet brenda kllapaveKryejmë së pari ( )( ) veprimet brenda kllapave

-- (mohimin unar) me rradhë,nga e majta në të djathtë

Kryejmë së pari

Kryejmë Pastajnga e majta në të djathtë

* /* / % % me rradhë, nga emajta në të djathtë

Kryejmë Pastajmajta në të djathtë

++ -- me rradhë, nga e majtanë të djathtë

Kryejmë së fundi

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-9

në të djathtë

Page 10: Programim 1 - Seanca 03.pdf

Vlerësimi i Vlerësimi i RradhesRradhes në një Shprehjenë një ShprehjeVlerësimi i Vlerësimi i RradhesRradhes në një Shprehjenë një Shprehje

( 4 – 6 + 3) * 2 – 3 * 5 // kryejmë kllapat( 4 – 6 + 3) * 2 – 3 * 5 // kryejmë kllapat

( -2 + 3 ) * 2 – 3 * 5 // nga e majta në// të majtë

( 1 ) * 2 – 3 * 5( 1 ) * 2 – 3 * 5

1 * 2 – 3 * 5

2 – 3 * 5 // ** ka përparësi

2 - 15

-13

SEKRETI: Krahaso operatorin më majtas me atë që vjen për përparësi. Për përparësi të njejtë -> shoqërohe t,zakonisht nga e majta në të djathtë .

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-10

zakonisht nga e majta në të djathtë .

Page 11: Programim 1 - Seanca 03.pdf

Shoqërimi i Shoqërimi i OperatorOperator ëveëveShoqërimi i Shoqërimi i OperatorOperator ëveëve

•• -- (mohimi unar) shoqëron nga e djathta në të majtë•• -- (mohimi unar) shoqëron nga e djathta në të majtë•• ** / % + / % + -- të gjitha shoqërohen nga e

majta në të djathtëmajta në të djathtë•• (( )) kllapat mund të përdoren për ndryshimin e

rradhës së veprimeverradhës së veprimeve2 + 2 * 2 – 2 = 4

(2 + 2) * 2 – 2 = 6(2 + 2) * 2 – 2 = 6

2 + 2 * (2 – 2) = 2

(2 + 2) * (2 – 2) = 0

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-11

(2 + 2) * (2 – 2) = 0

Page 12: Programim 1 - Seanca 03.pdf

Shprehjet Shprehjet AlgAlg jjebriebri kkeeShprehjet Shprehjet AlgAlg jjebriebri kkee

• Shumëzimi kërkon një operator • Shumëzimi kërkon një operator Siperfaqe = lw shkruhet si Siperfaqe = l * w;

• Nuk ka operator të ngritjes në fuqi• Nuk ka operator të ngritjes në fuqiSiperfaqe= s2 shkruhet si Siperfaqe = pow(s, 2);

(shenim: pow kërkon skedarin e kokës cmath )(shenim: pow kërkon skedarin e kokës cmath )

• Kllapat mund të nevojiten për të ruajtur rradhën e veprimeveveprimeve

shkruhet sim = (y2 - y1)/(x2 - x1);12

12

xx

yym

−−=

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-12

m = (y2 - y1)/(x2 - x1);12 xx −

Page 13: Programim 1 - Seanca 03.pdf

3.3 3.3 KthimKthim i Nënkuptuari Nënkuptuar (Implicit) i Tipit(Implicit) i Tipit3.3 3.3 KthimKthim i Nënkuptuari Nënkuptuar (Implicit) i Tipit(Implicit) i Tipit

• Veprimet kryhen gjithmonë midis operandeve të të njejtit tipoperandeve të të njejtit tip

• Nëse nuk janë të të njejtit tip, C++ do të shndërrojë automatikisht njerin në tipin e shndërrojë automatikisht njerin në tipin e tjetrit

• Kjo mund të ndikojë mbi rezultatin e kalkulimeve

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-13

kalkulimeve

Page 14: Programim 1 - Seanca 03.pdf

HierarHierar kiakia e Tipit të e Tipit të tëtë DDhënavehënaveHierarHierar kiakia e Tipit të e Tipit të tëtë DDhënavehënave

Më i larti long doubleMë i larti long doubledoublefloatfloatunsigned longlonglongunsigned intint

Më i ulëti

I vlerësuar nga numri më i madh që mund të mbajë

intchar

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-14

I vlerësuar nga numri më i madh që mund të mbajë

Page 15: Programim 1 - Seanca 03.pdf

ShtrengimShtrengim TTiipp iiShtrengimShtrengim TTiipp ii

•• ShtrengimShtrengim : kthim automatik i një operandi •• ShtrengimShtrengim : kthim automatik i një operandi nga një tip të dhënash në një tjetër

•• PromoPromo vimvim : kthim në një tip më të lartë•• PromoPromo vimvim : kthim në një tip më të lartë

– Zakonisht automatikisht– Zakonisht automatikisht

•• UljeUlje : kthim në një tip më të ulët

– Jo automatikisht – përdoret cast për ta bërë.

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-15

Page 16: Programim 1 - Seanca 03.pdf

RRregullaregulla ShtrengimiShtrengimiRRregullaregulla ShtrengimiShtrengimi

1) charchar , shortshort , unsigned shortunsigned short1) charchar , shortshort , unsigned shortunsigned shortpromovohen automatikisht në intint

2) Kur operojmë mbi vlera të tipeve të ndryshme të të dhënave, më ivoglipromovohet tek tipi më i lartë.promovohet tek tipi më i lartë.

3) Kur përdorim operatorin ==, tipi i 3) Kur përdorim operatorin ==, tipi i shprehjes në të djathtë do të kthehet në tipin e ndryshores në të majtë

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-16

Page 17: Programim 1 - Seanca 03.pdf

3.4 Kthim i Qartë (Explicit) i Tipit3.4 Kthim i Qartë (Explicit) i Tipit3.4 Kthim i Qartë (Explicit) i Tipit3.4 Kthim i Qartë (Explicit) i Tipit

• Quhet gjithashtu type casting• Quhet gjithashtu type casting

• Përdoret për shndërrime manuale të tipit të të dhënavetë dhënave

• Sintaksastatic_cast< tipi>( shprehje)

• Shembull: • Shembull: cout << static_cast<char>(65);

// Afishon 'A'

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-17

// Afishon 'A'

Page 18: Programim 1 - Seanca 03.pdf

Shembuj të Tjerë me Kthime TipiShembuj të Tjerë me Kthime TipiShembuj të Tjerë me Kthime TipiShembuj të Tjerë me Kthime Tipi

char ch = 'C';

cout << ch << " ruhet si "

<< static_cast<int>(ch);

double siperf;sasia = static_cast<int>( siperf /500);sasia = static_cast<int>( siperf /500);

int shuma, nr;

double mes;double mes;

mes = static_cast<double>(shuma)/nr;

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-18

Page 19: Programim 1 - Seanca 03.pdf

Kthim Tipi Sipas Stilit të VjetërKthim Tipi Sipas Stilit të VjetërKthim Tipi Sipas Stilit të VjetërKthim Tipi Sipas Stilit të Vjetër

double V el li mi = 21.58;double V el li mi = 21.58;int intVell1, intVell2;intVell1 = (int) Vellimi;

// Stili - C i kthimit// Stili - C i kthimitintVel2 = int (Volume);

// Stili p restandard C++ i kthimit// Stili p restandard C++ i kthimit

• Sipas StilitStilit--CC , kthimi përdor shënim me prefix• Sipas pprestandardrestandard itit C++C++, kthimi përdor shënim • Sipas pprestandardrestandard itit C++C++, kthimi përdor shënim

funksional•• static_caststatic_cast është standardi aktual

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-19

Page 20: Programim 1 - Seanca 03.pdf

3.5 Overflow d3.5 Overflow d hehe UnderflowUnderflow3.5 Overflow d3.5 Overflow d hehe UnderflowUnderflow

• Ndodhin kur jepet një vlerë që është shumë e madhe (overflow) ose shumë e vogële madhe (overflow) ose shumë e vogël(underflow) për t’u mbajtur nga një ndryshore

• Ndryshorja përmban vlerë që «mbështillet • Ndryshorja përmban vlerë që «mbështillet rreth» bashkësisë së vlerave të mundshme

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-20

Page 21: Programim 1 - Seanca 03.pdf

8 Bit Overflow dhe Underflow: -128..127 rangu i një char

0-1 01

2

3

-1-2

-3

-4

additionsubtraction MbledhjeZbritje

3

4

...-126

...

-4

...

125

126

127-128

-127

-126

127-128

overflowunderflow

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-21

Page 22: Programim 1 - Seanca 03.pdf

Shembull me Shembull me OverflowOverflowShembull me Shembull me OverflowOverflow

// Krijoni një short int të ini c ializ uar// Krijoni një short int të ini c ializ uar//në vlerën më të madhe që mund të mbajë

short int numri = 32767;

cout << num ri ; // Afishon 32767 cout << num ri ; // Afishon 32767 numri = numri + 1;cout << num ri ; // Afishon - 32768cout << num ri ; // Afishon - 32768

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-22

Page 23: Programim 1 - Seanca 03.pdf

Menaxhimi iMenaxhimi i OverflowOverflow ddhehe UnderflowUnderflowMenaxhimi iMenaxhimi i OverflowOverflow ddhehe UnderflowUnderflow

Sistemet e ndryshme e menaxhojnë Sistemet e ndryshme e menaxhojnë problemin ndryshe. Ato mund

– të afishojnë paralajmërim / mesazh gabimi– të afishojnë paralajmërim / mesazh gabimi

– të afishojnë një dritare dialoguese dhe të pyesin çfarë të bëjnëpyesin çfarë të bëjnë

– të ndalojnë programin

– të vazhdojnë ekzekutimin me vlerat jo korrekte

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-23

Page 24: Programim 1 - Seanca 03.pdf

3.6 3.6 Emërtimi iEmërtimi i KKonstantonstant eveeve3.6 3.6 Emërtimi iEmërtimi i KKonstantonstant eveeve

• Quhen gjithashtu ndryshore konstante• Quhen gjithashtu ndryshore konstante

• Ndryshoret përmbajtja e të cilavenuk mund të ndryshohet gjatë ekzekutimit të programittë ndryshohet gjatë ekzekutimit të programit

• Përdoren për pasqyrimin e vlerave konstante me emra përshkrues

const double R_TAKSES = 0.0675;const double R_TAKSES = 0.0675;const int NUM_SHTETEVE = 50;

• Zakonisht emërtohen me shkronja të mëdha

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-24

• Zakonisht emërtohen me shkronja të mëdha

Page 25: Programim 1 - Seanca 03.pdf

constconst vs. vs. #define#defineconstconst vs. vs. #define#define

#define#define#define#define– Emërtimi i konstanteve sipas Stilit-C

#define NUM_STATES 50këtu këtu nnukuk

vihetvihet ;;#define NUM_STATES 50

– Interpretohet nga para-përpunuesi dhe jo nga kompilatori

– Nuk zë vend në kujtesë si një ndryshore konstante e përcaktuar me constconst

– Në vend të saj, bën që të ndodhë një zëvendë-sim tekstual. Në shembullin e mësipërm, çdondëshje e NUM_STATESnë program do të zëve-

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-25

ndëshje e NUM_STATESnë program do të zëve-ndësohet nga 50

Page 26: Programim 1 - Seanca 03.pdf

3.7 3.7 DeklarDeklarimim ii ShumëfishtëShumëfishtëdhedhe ii KombinuarKombinuardhedhe ii KombinuarKombinuar

• Operatori i dhënies së vlerës (=) mund të përdoret më shumë se një herë në të përdoret më shumë se një herë në të njëjtën shprehjex = y = z = 5;x = y = z = 5;

• Shoqëron nga e djathta në të majtëx = (y = (z = 5));x = (y = (z = 5));

Kryhet i Kryhet i Kryhet i3-ti 2-ti 1-ri

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-26

3-ti 2-ti 1-ri

Page 27: Programim 1 - Seanca 03.pdf

Përcaktim i KPërcaktim i K ombinombin uaruarPërcaktim i KPërcaktim i K ombinombin uaruar

• Zbaton një veprim aritmetik në një ndry-shore dhe rezultatin e tij e përcakton si shore dhe rezultatin e tij e përcakton si vlerë të re të ndryshores

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

• Shembull: shuma += sasia;

është shkurtim përshuma = s huma + sasia ;

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-27

shuma = s huma + sasia ;

Page 28: Programim 1 - Seanca 03.pdf

Shembuj të tjerëShembuj të tjerë

x += 5; nënkupton x = x + 5;x += 5; nënkupton x = x + 5;

x -= 5; nënkupton x = x – 5;

x *= 5; nënkupton x = x * 5;x *= 5; nënkupton x = x * 5;

x /= 5; nënkupton x = x / 5;

x %= 5; nënkupton x = x % 5;x %= 5; nënkupton x = x % 5;

Vlerësohet kompletë ana e djathtë para se të kryhet veprimi i përcaktimit të kombinuar.Vlerësohet kompletë ana e djathtë para se të kryhet veprimi i përcaktimit të kombinuar.

x *= a + b; nënkupton x = x * (a + b);

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-28

x *= a + b; x = x * (a + b);

Page 29: Programim 1 - Seanca 03.pdf

3.8 3.8 FormatiFormati mi i Daljesmi i Daljes3.8 3.8 FormatiFormati mi i Daljesmi i Daljes

• Për kontrollin e paraqitjes së Daljes për të • Për kontrollin e paraqitjes së Daljes për të dhëna numerike dhe të tipit string mund të kontrollohetkontrollohet– madhësia (size)– pozicioni– pozicioni– numri i shifrave

• Nevojitet skedari i kokës iomanipiomanip• Nevojitet skedari i kokës iomanipiomanip

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-29

Page 30: Programim 1 - Seanca 03.pdf

ManipulatorManipulator ë Rrjedhe (ë Rrjedhe ( StreamStream ))ManipulatorManipulator ë Rrjedhe (ë Rrjedhe ( StreamStream ))

• Përdoret për kontrollin e veçorive të daljes • Përdoret për kontrollin e veçorive të daljes së një fushe

• Disa ndikojnë vetëm mbi afishimin e vlerës • Disa ndikojnë vetëm mbi afishimin e vlerës pasardhëse– setw ( x) : Printon një fushë në të paktën– setw ( x) : Printon një fushë në të paktën xx

hapësira gjerësi. Përdor më shumë hapësira nëse gjerësia e fushës së përcaktuar nuk është nëse gjerësia e fushës së përcaktuar nuk është mjaft e madhe.

• Nevojitet #include < iomanip >

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-30

• Nevojitet #include < iomanip >

Page 31: Programim 1 - Seanca 03.pdf

ManipulatorëManipulatorë RrjedheRrjedhe (Stream)(Stream)ManipulatorëManipulatorë RrjedheRrjedhe (Stream)(Stream)

Disa ndikojnë mbi vlerat gjer sa të ndryshohen përsëripërsëri–– fixedfixed : Përdor shënimin decimal (jo shenimin-E) për

vlera me pikë të levizshme (floating-point).vlera me pikë të levizshme (floating-point).

–– setprecisionsetprecision(x) (x) :• Kur përdoret me fixedfixed , printon vlerat floating-point duke • Kur përdoret me fixedfixed , printon vlerat floating-point duke

përdorur x shifra pas pikës dhjetore.• Pa fixedfixed , printon vlerën floating-point duke përdorur x shifra

të rendësishme.

–– showpointshowpoint : Printon gjithmonë dhjetorë për vlerafloating-point.

–– left, rightleft, right : drejtvendosje e vlerës në të majtë-,

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-31

–– left, rightleft, right : drejtvendosje e vlerës në të majtë-,në të djathtë

Page 32: Programim 1 - Seanca 03.pdf

Shembuj Shembuj ManipulManipul imiimiShembuj Shembuj ManipulManipul imiimi

const float e = 2.718;

float vlera = 18.0; Afishoncout << setw(8) << e << endl; ^^^2.718

cout << left << setw(8) << e

<< endl; 2.718^^^<< endl; 2.718^^^cout << setprecision(2);

cout << e << endl; 2.7cout << e << endl; 2.7

cout << fixed << e << endl; 2.72

cout << setw(6) << vlera ; ^18.00

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-32

cout << setw(6) << vlera ; ^18.00

Page 33: Programim 1 - Seanca 03.pdf

3.9 Puna me Objekte të tipit3.9 Puna me Objekte të tipitKarakter dhe StringKarakter dhe StringKarakter dhe StringKarakter dhe String

• char : mban një karakter të vetëm

• string : mban një sekuencë karakteresh

• Të dy mund të përdoren në instruksione • Të dy mund të përdoren në instruksione përcaktimi

• Të dy mund të afishohen me coutcout dhe <<<<

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-33

Page 34: Programim 1 - Seanca 03.pdf

Hyrje me Hyrje me StringStringHyrje me Hyrje me StringString

Leximi në një objekt të tipit stringstring str;string str;

cin >> str; // Lexon në një string // pa hapësira boshe// pa hapësira boshe

getline(cin, str); // Lexon në një string// që mund të

getline(cin, str);// që mund të // përmbajë hap. boshe

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-34

Page 35: Programim 1 - Seanca 03.pdf

Hyrje KHyrje K araarakkterter iiHyrje KHyrje K araarakkterter ii

Leximi i një karakteri

char ch;char ch;

cin >> ch; // Lexon çdo karakter jo-boshcin >> ch; // Lexon çdo karakter jo-bosh

cin.get(ch); // Lexon çdo karakter

cin.ignore(); // Kapërcen mbi karakterin// tjetër të buferit të hyrjes

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-35

Page 36: Programim 1 - Seanca 03.pdf

OperatorOperatorë për Vargjet (ë për Vargjet (StringStrings)s)

== jep një vlerë në një vargstring fjalet ;string fjalet ;fjalet = "i shijshem";

++ Bashkon dy vargje së bashkustring s1 = "Hot", s2 = "dog";string ushqim = s1 + s2;

// ushqim = "hotdog"

+=+= Lidh një varg në fund të një tjetriushqim += fjalet ;

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-36

ushqim += fjalet ;// ushqim tani = "Hotdog i shijshem"

Page 37: Programim 1 - Seanca 03.pdf

3.10 3.10 PërdorimiPërdorimi ii CC--StringsStrings3.10 3.10 PërdorimiPërdorimi ii CC--StringsStrings

• C-string ruhen si matrica karakteresh• Programuesi duhet të japë numrin maksimal të • Programuesi duhet të japë numrin maksimal të

karakterëve gjatë deklarimitconst int MADHESI = 5;const int MADHESI = 5;char temp[MADHESI] = "Hot";

• Karakteri NULL (NULL ( \\00 ) ) vendoset pas karakterit të fundit për të shenuar fundin e vargutfundit për të shenuar fundin e vargut

• Programuesi duhet të sigurohet që matrica është H o t \0

• Programuesi duhet të sigurohet që matrica është mjaft e madhe për përdorimin e deshirueshëm; temp mund të mbajë gjer në 4 karaktere plus \\ 00 .

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-37

temp mund të mbajë gjer në 4 karaktere plus \\ 00 .

Page 38: Programim 1 - Seanca 03.pdf

Hyrje në një Hyrje në një CC--StringString• Leximi në një C-string

const int MADHESI = 10;

char Cstr[MADHESI];

cin >> Cstr; // Lexon në një C-string pa karaktere// boshe. Do të shkruajë pas fundit// boshe. Do të shkruajë pas fundit// të matricës nëse vargu i karaktereve// të hyrjes është shumë i gjatë.

cin.getline ( Cstr , 10);cin.getline ( Cstr , 10);

// Lexon në një C-string që mund të// përmbajë karaktere boshe. Garanton// që do të lexohen <= 9 karaktere.// që do të lexohen <= 9 karaktere.

• Për të kontrolluar gjerësinë e fushave të hyrjes mund të përdoret gjithashtu setwsetw()() dhe width()width()

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-38

Page 39: Programim 1 - Seanca 03.pdf

IniIni cc ializatiializati mimi vs. vs. Caktimit të Caktimit të CC--String String IniIni cc ializatiializati mimi vs. vs. Caktimit të Caktimit të CC--String String

• Një C-string mund të inicializohet gjatë kohës së krijimit të tij, njëlloj si një objekt stringkrijimit të tij, njëlloj si një objekt stringconst int MADHESI = 10;

char month[MADHESI] = "Prill";

• Megjithatë, një C-string nuk mund t’i jepet më vonë vlerë me operatorin =; për këtë duhet të vonë vlerë me operatorin =; për këtë duhet të përdoret funksioni strcpystrcpy()()

char m uaji [ MADHESI];char m uaji [ MADHESI];muaji = "Prill" // gabim!strcpy (muaji , " Prill "); // sak t ë

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-39

strcpy (muaji , " Prill "); // sak t ë

Page 40: Programim 1 - Seanca 03.pdf

3.11 Fun3.11 Funksksionione të Tjerë të e të Tjerë të LibrarLibrar isëisë MatematiMatemati kekeLibrarLibrar isëisë MatematiMatemati keke

• Për këto nevojitet skedari i kokes cmathcmath• Për këto nevojitet skedari i kokes cmathcmath• Merr si argumente doubledouble dhe kthen një

doubledoubledoubledouble

• Funksionet më të përdorshme janë

abs Vlera Absoluteabs Vlera Absolutesin Sinusicos Kosinusitan Tangjentjatan Tangjentjasqrt Rrënja katrorelog Logaritmi natyror (e)

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-40

log Logaritmi natyror (e)

Page 41: Programim 1 - Seanca 03.pdf

FunksioneFunksione tëtë TjerëTjerë tëtëLibrarisëLibrarisë MatematikeMatematikeLibrarisëLibrarisë MatematikeMatematike

• Për këto nevojitet skedari i kokës cstdlib• Për këto nevojitet skedari i kokës cstdlib

•• randrand

– Kthen një numër të rastit midis 00 dhe numrit më të madh që mund të mbajë kompjuteri

– Kthen një numër të rastit midis 00 dhe numrit më të madh intint që mund të mbajë kompjuteri

– Me të njejtën farëfarë, sa herë që ekzekutohet programi, do të japë të njejtën sekuencëprogrami, do të japë të njejtën sekuencënumrash

•• srandsrand (x)(x)•• srandsrand (x)(x)

– Inicializon gjeneratorin e numrave të rastit meunsigned unsigned intint xx

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-41

Page 42: Programim 1 - Seanca 03.pdf

3.12 3.12 Hyrje në Hyrje në skedareskedare3.12 3.12 Hyrje në Hyrje në skedareskedare

• Në vend të tastierës, për hyrje në program • Në vend të tastierës, për hyrje në program mund të përdorët skedar

• Në vend të ekranit, për dalje në program mund të përdorët përsëri skedar

• Skedaret ruhen në mjete ruajtëse sekondare, si p.sh diskusi p.sh disku

• Ato lejojnë ruajtjen e të dhënave midis ekzekutimeve të programit

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-42

ekzekutimeve të programit

Page 43: Programim 1 - Seanca 03.pdf

Çfarë duhet për Përdorimin e Çfarë duhet për Përdorimin e SkedareveSkedareveÇfarë duhet për Përdorimin e Çfarë duhet për Përdorimin e SkedareveSkedareve

1. Përfshirja e skedarit të kokës fstreamfstream1. Përfshirja e skedarit të kokës fstreamfstream

2. Përcaktimi i një objekti rrjedhe për skedarin•• ifstreamifstream për hyrje nga një skedar•• ifstreamifstream për hyrje nga një skedar

ifstream inSkedar;

•• ofstreamofstream për dalje në një skedar

ofstream outSkedar ;ofstream outSkedar ;

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-43

Page 44: Programim 1 - Seanca 03.pdf

Hapja e SkedaritHapja e SkedaritHapja e SkedaritHapja e Skedarit3. Për hapjen e një Skedari:• Përdoret funksioni anëtar openopen

inSkedar.open("inventari.dat");out Skedar .open("r aport.txt");out Skedar .open("r aport.txt");

• Emri i skedarit mund të përfshijë njesinë, dhe informacion për pathin.dhe informacion për pathin.

• Nëse është e nevojshme do të krijohet skedari i daljes; më parë do të fshihet skedari i daljes; më parë do të fshihet skedari ekzisues i daljes

• Për të funksionuar openopen duhet të

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-44

• Për të funksionuar openopen duhet të ekzistojë skedari i hyrjes

Page 45: Programim 1 - Seanca 03.pdf

Përdorimi i SkedaritPërdorimi i SkedaritPërdorimi i SkedaritPërdorimi i Skedarit

4. Përdorimi i skedarit4. Përdorimi i skedarit• Për të dërguar të dhëna në skedar mund të

përdoret objekti i skedarit të daljes dhe <<<<përdoret objekti i skedarit të daljes dhe <<<<outSkedar <<<< «Raport Inventari";

• Për të kopjuar të dhëna nga skedari në ndryshore mund të përdoret objekti i ndryshore mund të përdoret objekti i skedarit të hyrjes dhe >>>>in Skedar >>>> nrSerise ;

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-45

in Skedar >>>> nrSerise ;inSkedar >>>> sasNeStok >>>> sasNePorosi;

Page 46: Programim 1 - Seanca 03.pdf

Mbyllja e SkedaritMbyllja e SkedaritMbyllja e SkedaritMbyllja e Skedarit

5. Mbyll skedarin• Përdoret funksioni anëtar closeclose

in Skedar .close();in Skedar .close();outSkedar.close();

• Gjatë përfundimit të programit mos prisni sistemin operativ për të mbyllur skedaretsistemin operativ për të mbyllur skedaret

– Ndoshta ka kufi në numrin e skedareve të hapurhapur

– Ndoshta ka të dhëna te buferi i daljes që presin të dërgohen në skedar dhe mund të

Pergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e LibritPergatiti: M.Sc. Roland Vasili – Bazuar në Slidet e Librit 3-46

presin të dërgohen në skedar dhe mund të humbasin